diff --git a/README.md b/README.md index 74917d3..4645794 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,125 @@ Lambda functions for verifying phone numbers [Diagrams](./diagrams/README.md) -# Description -Nisaba provides user verification for the uPort ecosystem. +## Repository Basics + +### Description +Nisaba provides user verification to allow users to post requests to the lamba-sensui service, which pays for user transactions when using decentralized applications (based on the Ethereum blockchain). The Nisaba service utilizes the following resources: + +- **[Google Recaptcha]**(https://developers.google.com/recaptcha/intro), a user authentication API that leverages/verifies captchas to protect your service against spam and other types of automated abuse. + +- **[DID-JWT]**(https://github.com/uport-project/did-jwt), a library that allows you to sign and verify JSON Web Tokens (JWT) using ES256K or ES256K-R algorithms. Public keys are resolved using the Decentralized ID (DID) of the signing identity of the claim, which is passed as the iss attribute of the encoded JWT. + +- **[FunCaptcha]**(https://funcaptcha.com/), an interactive captcha service for applications to leverage to better authenticate their users + +- **[Nexmo]**(https://developer.nexmo.com/documentation), a text/Voice and Verification API suite + +### What is [AWS Lambda](https://aws.amazon.com/lambda/)? +AWS Lambda lets you run code without provisioning or managing servers. You pay only for the compute time you consume - there is no charge when your code is not running. + +With Lambda, you can run code for virtually any type of application or backend service - all with zero administration. Just upload your code and Lambda takes care of everything required to run and scale your code with high availability. You can set up your code to automatically trigger from other AWS services or call it directly from any web or mobile app. + +### What is [Serverless](https://serverless.com/learn/)? +Just like wireless internet has wires somewhere, serverless architectures still have servers somewhere. What ‘serverless’ really means is that, as a developer you don’t have to think about those servers. You just focus on code. + +### Serverless Architectures with AWS Lambda +Using AWS Lambda as the logic layer of a serverless application can enable faster development speed and greater experimentation – and innovation — than in a traditional, server-based environment. Many serverless applications can be fully functional with only a few lines of code and little else. + +Examples of fully-serverless-application use cases include: + +- Web or mobile backends – Create fully-serverless, mobile applications or websites by creating user-facing content in a native mobile application or static web content in an S3 bucket. Then have your front-end content integrate with Amazon API Gateway as a backend service API. Lambda functions will then execute the business logic you’ve written for each of the API Gateway methods in your backend API. +- Chatbots and virtual assistants – Build new serverless ways to interact with your customers, like customer support assistants and bots ready to engage customers on your company-run social media pages. The Amazon Alexa Skills Kit (ASK) and Amazon Lex have the ability to apply natural-language understanding to user-voice and freeform-text input so that a Lambda function you write can intelligently respond and engage with them. +- Internet of Things (IoT) backends – AWS IoT has direct-integration for device messages to be routed to and processed by Lambda functions. That means you can implement serverless backends for highly secure, scalable IoT applications for uses like connected consumer appliances and intelligent manufacturing facilities. +Using AWS Lambda as the logic layer of a serverless application can enable faster development speed and greater experimentation – and innovation — than in a traditional, server-based environment. + +To learn more about Serverless Architectures with AWS Lambda, check out [this publication](https://d1.awsstatic.com/whitepapers/serverless-architectures-with-aws-lambda.pdf) that goes through the whole build + +### So How Does this All Come Together w/ lambda-nisaba? +[To Be Continued] + +### How is the Repository Organized? +The following list breakdown the folder architecture within the repository, explaining where everything is at (and what those part of the repository are responsible for). Hopefully, through this explanation, you can localize different parts of the repository that you want to change/fix/enhance: + +1. **Serverless.yml** - Serverless.yml is the configuration the CLI uses to deploy your code to your provider of choice. The file denotes the entire architecture of the server, including the provider, the plugins, and the functions. The file is the outline (or the index) of your entire API and is the best reference to determine how your API will work. Here's a description of what each part of this file means: + +- **service** - The name of your API (or your `service`) + +- **provider** - The `provider` block defines where your service will be deployed. For AWS Lambda we need to be careful of which version of node.js we are running (the repo runs 6.10, but it seems that AWS Lambda can now run v8.10 as of 4/2/18). The repo sets the stage as development (as opposed to production) and sets the location of the server in the western region of the U.S. Every AWS Lambda function needs permission to interact with other AWS infrastructure resources within your account. These permissions are set via an AWS IAM Role. + +You can set permission policy statements within this role via the `provider.iamRoleStatements` property. The permissions we set in this service are allowing the operation of an S3 database instance and the use of `KMS:Decrypt`, which helps us encrypt and decrypt our service secrets (our mnemonic to our funding wallet, etc.). + +The `environment` property allows you to apply an environment variable configuration to all functions in your service. Environment variables configured at the function level are merged with those at the provider level, so your function with specific environment variables will also have access to the environment variables defined at the provider level. If an environment variable with the same key is defined at both the function and provider levels, the function-specific value overrides the provider-level default value. Here, we've set `SECRETS` as our global variable across all functions within the service as an authentication method for accessing the APIs capabilities. The `serverless-kms-secrets` npm resource is what allows us to conveniently encrypt and decrypt our service and pair that value with the `SECRETS` environment variable. + +The `plugins` property includes npm resources we need for the service to function correctly. We use the `serverless-webpack` +and `serverless-kms-secrets` npm resources. + +The `customs` property allows us to account for certain configurations required by our plugin features. + +The `functions` block defines what code to deploy. These are the methods of your API - or your API calls. + +2. **src folder** - all of the logic of the repo is stored here, particularly in the api_handler.js file. We will account for special files/folders in this path below: + +- **api_handler** - central file with all of service's core functions (that result in the development of api calls for different functions) + +- **src/lib folder** - contains all of the needed scripts to enable the 'handler' files to work properly. Many of these scripts take care of interacting with the ethereum blockchain. Take note that you will need to change the API endpoints referenced in the fuelTokenMgr.js to ensure that your token is referencing the correct endpoints (as uPort's API endpoints are currently within the codebase). The latter is inside the ```newToken``` and ```verifyToken``` methods. + +3. **Other Notable Files** + +- **SECRETS.md** - This file provides the kms commands that you need to use to both encrypt (and set) your SECRETS for your service and decrypt those secrets when needed. The structure of the secrets provided in this service is the following: +``` +{ + RECAPTCHA_SECRET_KEY, + FUEL_TOKEN_PRIVATE_KEY, //funder wallet private key + FUEL_TOKEN_PUBLIC_KEY, //funder wallet public key + FUNCAPTCHA_PRIVATE_KEY, //provide by funcaptcha api service + NEXMO_API_KEY, //provide by Nexmo api service + NEXMO_API_SECRET, //provide by Nexmo api service + NEXMO_FROM, //provide by Nexmo api service + PG_URL //database url endpoint +} +``` + +- **kms-secrets.develop.us-west-2.yml** - A file that is automatically generated once secrets are encrypted by the sls encryption command noted in the SECRETS.md file. This is for the develop stage service. Create a KMS key in AWS IAM service, under Encryption keys. Collect the key id, which is the remaining part of the key ARN. + +- **kms-secrets.master.us-west-2.yml** - A file that is automatically generated once secrets are encrypted by the sls encryption command noted in the SECRETS.md file. This is for the master stage service. Create a KMS key in AWS IAM service, under Encryption keys. Collect the key id, which is the remaining part of the key ARN. + +### Datastore Schema +The Nisaba service leverages a centralized, off-chain sotre in order to provide better consistency than querying the blockchain for past transactiond data. The service leverages an [AWS RDS PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.PostgreSQL.html) instance to save transaction and nonce data from transactions being passed through the service. The following are the two tables within the PostgreSQL database (given the initial repository codebase): + +**Table 1: Nexmo_Requests** + +- Column 1: request_id +- Column 2: device_key +- Column 3: request_status + +### How do we start this up? +1. Open your terminal and choose a folder path you'd like to store the project in + +2. Use the command 'git clone [github repo url here]' to clone the project in that folder + +3. Make sure that you have serverless on your computer if not, follow these steps: https://serverless.com/learn/quick-start/ + +4. Make sure that you have a AWS IAM account (if not follow the guide in step 3 to completion to get familiar). + +5. Go back to your terminal in the project folder and use `npm install` command make sure that `serverless-webpack` and `serverless-kms-secrets` npm resources are installed. + +6. Create a KMS key in AWS IAM service, under Encryption keys. Collect the key id, which is the remaining part of the key ARN. You need to create a key for each development stage of your service. + +7. Create a Nexmo account and get private key and secret + +8. Create a funcaptcha account and get account credentials + +9. Use the encryption command (on your terminal which should be in the folder path of the project) to set and encrypt you secrets for each of your development stage services via the following: + +``` +sls encrypt -n SECRET_VARIABLE_NAME -v SECRET_VARIABLE_VALUE -s STAGE_YOUR_SETTING_SECRET_FOR +``` + +Since you indicated which stage your encypting the secret for, it will determine which KMS key to use automatically from AWS. + +10. Make sure to re-name your service in the `serverless.yml` file to something relevant that your service does + +11. Create an endpoint that points to where your service lives using the command `sls deploy`. This will generate a url to use for calling the different endpoints indicated in your API. Remember, we indicated what these endpoints were in the `serverless.yml` file in the functions sub-sections called `events`, where we define the mapping of the API functions to the http endpoints # API diff --git a/SETUP.md b/SETUP.md new file mode 100644 index 0000000..bb2345e --- /dev/null +++ b/SETUP.md @@ -0,0 +1,146 @@ +# Local Setup +1. Check your node version + + ```node -v``` + + Make sure you use node 8.10 (I tried node 6, `npm test` fails with syntax error). + + I recommend using nvm (https://github.com/creationix/nvm) to manage different node.js versions (`nvm install 8.10; nvm use 8.10`). +2. Install serverless + + ```npm install -g serverless``` +3. Install all dependencies + + ```npm install``` + + run `npm test`, the tests should all pass. +4. Make sure you have an AWS account. Set up AWS credentials: https://serverless.com/framework/docs/providers/aws/guide/credentials/ + + In this step, make sure your `~/.aws/credentials` is setup correctly. And you exported your environment variables: + + ``` + export AWS_ACCESS_KEY=[AWS_ACCESS_KEY] + export AWS_SECRET_ACCESS_KEY=[AWS_SECRET_ACCESS_KEY] + ``` +5. In IAM management console, create a key for develop: https://console.aws.amazon.com/iam/home#/encryptionKeys/us-west-2 + + If you want to deploy to master too, create another key for master. + Make sure the keys you created are in the correct region (`us-west-2`). If you decide to create keys in another region, make sure to change region configuration in other places too. +6. Create reCaptcha account: https://www.google.com/recaptcha/admin, get `RECAPTCHA_SECRET_KEY` + + (You only need to set this up if you want to use the reCAPTCHA verification flow, not needed for phone verification flow) +7. Create fun captcha account: https://www.funcaptcha.com/setup, get `FUNCAPTCHA_PRIVATE_KEY`. + + (They currently ignore us after we fill in a form, skip this step for now; this is also not needed for phone verification flow) +8. Generate Fuel token private & public keys and address: `FUEL_TOKEN_PRIVATE_KEY`, `FUEL_TOKEN_PUBLIC_KEY`, `FUEL_TOKEN_ADDRESS`. + + Create an app e.g. nisaba on uport app manager: https://appmanager.uport.me/, you can see the ```address``` and ```public key``` (remove the `0x`) listed there. Click `click here for app code`, you can get the ```private key``` inside ```SimpleSinger```. +9. If you want the JWT payload aud to be another app rather than this one, you can create an app e.g. sensui on uport app manager: https://appmanager.uport.me/, get the ```address``` for ```AUDIENCE_ADDRESS```. + + Note: for step 8 and 9, you can also generate these keys using https://github.com/uport-project/uport-cli-client. If in doubt, you can append ```did:uport:``` to the ```address``` (mnid) and test it out in the uport did resolver: http://uportdid.radicalledger.com/. +10. Create nexmo account: https://dashboard.nexmo.com/getting-started-guide, get `NEXMO_API_KEY`, `NEXMO_API_SECRET`, `NEXMO_FROM` + + You can find `NEXMO_FROM` in the dashboard, 'Numbers -> Your numbers' section. +11. Setup PostgreSQL locally + + Start server: `pg_ctl -D /usr/local/var/postgres start &` + (Stop server: `pg_ctl -D /usr/local/var/postgres stop`) + + You need create a table `nexmo_requests`: + + ``` + CREATE TABLE public.nexmo_requests + ( + device_key VARCHAR(64), + request_id VARCHAR(32), + request_status VARCHAR(32) + ) + WITH ( + OIDS=FALSE + ); + ``` + + In this case `PG_URL=postgresql://localhost` +12. Delete the old `kms-secrets.develop.us-west-2.yml` and `kms-secrets.master.us-west-2.yml`. + + Generate your own using the following command: + + ```sls encrypt -n SECRETS:[variable] -v [value] [-k key_for_stage] [-s stage]``` + + Use the key you generated in step 5 to replace `key_for_stage`, and specify `develop` for `stage`. The first time you run the command, a file `kms-secrets.develop.us-west-2.yml` will be generated. + + If you want to deploy to master, use the other key you generated in step 5 to replace `key_for_stage`, and specify `master` for `stage`, a file `kms-secrets.master.us-west-2.yml` will be generated. + + You only need to specify `[-k key_for_stage]` the first time you run the command for each stage. + + You should encrypt the following `variable` and its corresponding `value`. If you followed step 6 to 10, you'll know what those values are. + ``` + RECAPTCHA_SECRET_KEY + FUNCAPTCHA_PRIVATE_KEY + FUEL_TOKEN_PRIVATE_KEY + FUEL_TOKEN_PUBLIC_KEY + FUEL_TOKEN_ADDRESS + AUDIENCE_ADDRESS + NEXMO_API_KEY + NEXMO_API_SECRET + NEXMO_FROM + PG_URL + ``` + + Run `sls decrypt` to check the encryption works correctly. +13. Now you can run locally + + ```sls invoke local -f [function] -d [data]``` + + + test the following **Phone Verification Flow** + + Use this to generate keys: https://github.com/uport-project/uport-cli-client + + After `uPort Identity Created!`, the console will print out a `UPortClient` object. Use `UPortClient.deviceKeys.address` as `deviceKey`. (remember `UPortClient.deviceKeys.privateKey` and `UPortClient.mnid`). + + - start verification: + + ```sls invoke local -f start -d '{"deviceKey": [deviceKey], "phoneNumber":[your phone number]}'``` + + Send a code through SMS or Call + + - continue verification + + (This step is optional, it is for user who has previously indicated they prefer to recieve a code via text-to-speech, you'll receive a phone call.) + + ```sls invoke local -f next -d '{"pathParameters": {"deviceKey": [deviceKey]}}'``` + + - verify code and get fuelToken + + ```sls invoke local -f check -d '{"deviceKey":[deviceKey], "code": [code you received]}'``` + you'll receive a fuelToken + - get new fuelToken with new deviceKey + + Once you already get a fuelToken, if you have a new deviceKey, you don't need to go through the above phone verification flow anymore, you can generate a new fuelToken with the old fuelToken and the new deviceKey. + + You'll need to generate a requestToken as follows: + ``` + const createJWT = require('did-jwt').createJWT; + const SimpleSigner = require('did-jwt').SimpleSigner; + + const signer = new SimpleSigner(UPortClient.deviceKeys.privateKey.slice(2)); + const issuer = UPortClient.mnid; + + const now = Math.floor(Date.now() / 1000); + const aud = secrets.AUDIENCE_ADDRESS; + + const requestToken = await createJWT( + { + aud, + exp: now + 300, + iat: now, + newDeviceKey: newDeviceKey + }, + { issuer, signer } + ); + ``` + + ```sls invoke local -f newDeviceKey -d '{"headers: {"Authorization": "bearer [old fuelToken]"}, requestToken": [requestToken]}'``` + + You'll get a new fuelToken. diff --git a/kms-secrets.develop.us-east-1.yml b/kms-secrets.develop.us-east-1.yml new file mode 100644 index 0000000..44a88be --- /dev/null +++ b/kms-secrets.develop.us-east-1.yml @@ -0,0 +1,3 @@ +secrets: + SECRETS: AQICAHjH8xwFV2lkoMyoePDOVwkG/DlRvAfnFsTNx1V0Gnos6wEIqNUzhkZmN/oHkfuk6W3CAAAC4jCCAt4GCSqGSIb3DQEHBqCCAs8wggLLAgEAMIICxAYJKoZIhvcNAQcBMB4GCWCGSAFlAwQBLjARBAwVCCO0arBpWgrIvNgCARCAggKViHw6aRK+p9htP3Ov1a2Rj+iatDZy0/nCvrkROB/+HfhM2/3TVLwsF6+f26p/XveD37bcipzidRuSSFjm2MLKFrsNYdENA+E+nfa9Gg66GO24XyZAlKNuPPpUDkGlGOvrAmWIAyZwkD0W21PQTIzhvb6p7VA5xcQ3VEBt/94HHVCBmV8euDjOQ4LQosXqcI21TwweW877/xDqMzG3Xef9GaNjl0Y2mdk2FkMjygFW4IriNa/AsqGYva5mmboPi5tcgBj/6EKZBY49jR1GsmLUZK00ql/m3Y9FwwT5NbQ3bbGJimtiE9lHaQsegGarTed9VtelJGEqR4s2va1PmFwMjMLjhsjFM1smo1L32jPRMQ1y+BgviJezqRILr73rQOGRVbPfmZRIDg6qV1YpdZZOhm9HgHJ7H+gJ4NsOYqGaDc3mRqV8BdOhnA4oe8J6t8DYais73cSmMv/q2Jra4iCXd+x+PH3boAVhJbjf/kFDEBopAhMpW9kwDufBekxmPDIxz7mBmiMyYrxBhYQXUixJ8eQhgzATuccG8nwsTxNCPqQyhY0LZUsVPSBlzRvgWn+XNoDj6GlEJ6GtQc4WUO80LaoJaJbHOa00qX6QaSaKhj22QY3jOLVRZpCs9oZxn1TJvjPz/4ZKk2jHWprEUsvB5noKpPphPRvKhFZi/2OkmJ9AjfsgKXBOVBx91iAfx1IF483T7XX7uKVrhtyjXb+LhUbr0ZENzCA0OeIe88TJe4zi+HQlwyKe2N88Q1PJA0FgZtIzYi/2xb5fb/0l/FIrxkoqxuUclf8VD0dcKqvAEjYHSzRP6a5ome/Wm5eEKy4CORqsciCBWMg+lTk8nbCLMoqTBaOOdAq4SuxKD8b9Ow8MvtZCSQ== +keyArn: 'arn:aws:kms:us-east-1:711302153787:key/056da528-260d-4019-8419-7df6c292710d' diff --git a/kms-secrets.develop.us-west-2.yml b/kms-secrets.develop.us-west-2.yml deleted file mode 100644 index aefb432..0000000 --- a/kms-secrets.develop.us-west-2.yml +++ /dev/null @@ -1,3 +0,0 @@ -secrets: - SECRETS: AQICAHjyi5WE3iUcZqWfrCZYvoKVXy72dRUpvbq82/YMFV/EsAH/EHuXjjUzmfdm6XTocpJmAAACazCCAmcGCSqGSIb3DQEHBqCCAlgwggJUAgEAMIICTQYJKoZIhvcNAQcBMB4GCWCGSAFlAwQBLjARBAxKagoxiefYM7K2m7ICARCAggIewQ0z8rtwS/Mf4o9aWsQKfUiVjS7HPYnGgiyeqY41oQgmX86cBPGd/4mgm2iq4gaLz0eqKd7vYlHuEEqMvbmFY0U+8cr6L5D0WOzgVxGEhja3u8Achl8m1YBb5HzLGGjJK1OGJEwWIdroEC564H5CkTLBGrsbyOH24aBoYA4FTA0jFlb1nsa3C5vaOYSfe3rVEBAC5S8mdfMOk0RRBWR0YKhq47AiizJzsyAdv7o+ZUcp2Lpmjssb/LGB5Y6sow7NLejuB0MsCuMFLBqJ/f5uLMYTfSXVKyyXm6ry51ILYfH04ep79cpmBbm5DfNlhmaQlO9pc4bWQ3yYpd0myi8GYc/eYtDVBl6C62FR0zbzJHawYEAFYVbURtBuVwhZVvBbJKFafWWhIZlQx1ZlGO/1KbeguOMhrJE4blp7Dl54zllsDK8ztNouSLCCbdWLgvm3wFBtrINXTRgm35/it+WhS0un4gLnSbDUubo0zw8XrwjJR3N21rhiohBkkOdWlRdqrxWkKOLj62lKYTDFrDyOASpFJVJRUcgyMawBIHsLRdEUYOaRJHrKi1uACztPC0g3HM8oZcsvGKXj831ARqa/H6rXPEQZVpkiKNesgW4UoeE7CNlSBfEsC1if2YkxSDLNBmsk1Dk8GwrICqhN4+vuhb09nIAnysSRLGttu/DAjTPjDSdxlzKgvPo5AnqD98RSn5VamuXpIFHQExg75dk= -keyArn: 'arn:aws:kms:us-west-2:113196216558:key/edd03ddb-c132-41d7-a82b-5d88e8e920d2' diff --git a/kms-secrets.master.us-west-2.yml b/kms-secrets.master.us-west-2.yml deleted file mode 100644 index 4069d0d..0000000 --- a/kms-secrets.master.us-west-2.yml +++ /dev/null @@ -1,3 +0,0 @@ -secrets: - SECRETS: AQICAHj4TGBrKUwM3m9cE5XTIC4Dy1R3l8f0FOi1DA4vq6VztgHCJKbMzdvYDWwQ7bI/30oKAAACajCCAmYGCSqGSIb3DQEHBqCCAlcwggJTAgEAMIICTAYJKoZIhvcNAQcBMB4GCWCGSAFlAwQBLjARBAwy8wC9rUaiKbPsmZICARCAggIdlafPkko5lhoovMLORFReMq78oUw4uPGgQrmw/TwHKInS9c4N7yOt9Wc2wNprpbGQAqAznQ4IhWENNVVb8C2b+iNlh6Yd5aUx/RGvglAOWjtaMfh+wG7txDFvTyZFI0NhHDf2RAxCquUtpbW1jD0TIQYoBMrA2pgzmoNdgvs8EP4uXNgMBSnQFFaTPiE7ENYeVEE1TxajkpYuwSG6Xvp1bWW7SM7hXOWNBqUToL38MuszjOYWjtit/NdZ2l5JLnyBMZm9IFDEqjln8onukBWLFFZfqPaPVoTwDo45tJF2UPOiAc3q3xs6Cr+WclVN8zayFVF1DITNsLkIoeZyFEuUtT2LGSCRNkYtEO7oX/2XgFdN0Fpvp/cKv56wuhpwRaoL1Q84mtz/H24nsw4+8ZI15XoxrPaBfH+JWsbdAokZ6N26vzXEfpSS4QjL7y7U9ZyqXBUAN/QhYcEUAG2WznZY3MUsj4BeXLNRvDBnJ5EphRKomX14diQ044UQM4TF80lVYwG7xHRpeM9+Y7tjKhITJMq6Sbt1FtNq4JL71HtXy50UpgNILXJ1inrthtK3UUCfE3h//UjUTzvAZO5XEysTu/oN0lapMn6VS/ZUCLwkMCE9yvbrfrzMsrWb3GSgNBr+VKKV2jE3WVjFHHMyAOFkqRUaOPqyzocln4+EHV2QmCezXg/OZ5SFFqpXEH34m6JL6HIEiMdH1qgDpflWKQ== -keyArn: 'arn:aws:kms:us-west-2:113196216558:key/6363a2e8-3fc2-4d5c-b26b-767d1c833e37' diff --git a/package-lock.json b/package-lock.json index b76f55d..29863fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { - "name": "lambda-nisaba", - "version": "1.1.1", + "name": "lambda-nisaba-si", + "version": "1.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -20,7 +20,7 @@ "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", "requires": { - "acorn": "4.0.13" + "acorn": "^4.0.3" }, "dependencies": { "acorn": { @@ -36,7 +36,7 @@ "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", "dev": true, "requires": { - "acorn": "4.0.13" + "acorn": "^4.0.4" }, "dependencies": { "acorn": { @@ -52,10 +52,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": { @@ -68,9 +68,9 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "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": { @@ -94,8 +94,9 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "anymatch": { @@ -103,8 +104,8 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", "requires": { - "micromatch": "3.1.9", - "normalize-path": "2.1.1" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, "append-transform": { @@ -113,43 +114,46 @@ "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^1.0.0" } }, "archiver": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/archiver/-/archiver-2.1.1.tgz", "integrity": "sha1-/2YrSnggFJSj7lRNOjP+dJZQnrw=", + "dev": true, "requires": { - "archiver-utils": "1.3.0", - "async": "2.6.0", - "buffer-crc32": "0.2.13", - "glob": "7.1.1", - "lodash": "4.17.5", - "readable-stream": "2.3.5", - "tar-stream": "1.5.5", - "zip-stream": "1.2.0" + "archiver-utils": "^1.3.0", + "async": "^2.0.0", + "buffer-crc32": "^0.2.1", + "glob": "^7.0.0", + "lodash": "^4.8.0", + "readable-stream": "^2.0.0", + "tar-stream": "^1.5.0", + "zip-stream": "^1.2.0" } }, "archiver-utils": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=", + "dev": true, "requires": { - "glob": "7.1.1", - "graceful-fs": "4.1.11", - "lazystream": "1.0.0", - "lodash": "4.17.5", - "normalize-path": "2.1.1", - "readable-stream": "2.3.5" + "glob": "^7.0.0", + "graceful-fs": "^4.1.0", + "lazystream": "^1.0.0", + "lodash": "^4.8.0", + "normalize-path": "^2.0.0", + "readable-stream": "^2.0.0" } }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -181,7 +185,8 @@ "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true }, "asn1": { "version": "0.2.3", @@ -193,9 +198,9 @@ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", "integrity": "sha1-ucK/WAXx5kqt7tbfOiv6+1pz9aA=", "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "assert": { @@ -214,7 +219,8 @@ "assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=" + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true }, "assign-symbols": { "version": "1.0.0", @@ -232,7 +238,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", "integrity": "sha1-YaKau2/MAm/qd+VtHG7FOnlZUfQ=", "requires": { - "lodash": "4.17.5" + "lodash": "^4.14.0" } }, "async-each": { @@ -251,25 +257,25 @@ "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=" }, "aws-sdk": { - "version": "2.209.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.209.0.tgz", - "integrity": "sha1-z+bKI3NvZlkystFMyOTknX6dIMw=", + "version": "2.259.1", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.259.1.tgz", + "integrity": "sha512-z2/t30caHNadSKeasUTS8trgIoHuWtmOKEhQK72Bqtbbgviqw2++sDG1Gkbj7n7yRihmg+yPNUE6i+JG3vfDrA==", "requires": { "buffer": "4.9.1", "events": "1.1.1", + "ieee754": "1.1.8", "jmespath": "0.15.0", "querystring": "0.2.0", "sax": "1.2.1", "url": "0.10.3", "uuid": "3.1.0", - "xml2js": "0.4.17", - "xmlbuilder": "4.2.1" + "xml2js": "0.4.17" }, "dependencies": { "uuid": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ=" + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" } } }, @@ -279,9 +285,9 @@ "integrity": "sha1-dpizuoL0k/cf8GCuISPNCAathnY=", "dev": true, "requires": { - "aws-sdk": "2.209.0", - "sinon": "1.17.7", - "traverse": "0.6.6" + "aws-sdk": "^2.3.0", + "sinon": "^1.17.3", + "traverse": "^0.6.6" } }, "aws-sign2": { @@ -300,9 +306,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": { @@ -317,11 +323,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" } }, "supports-color": { @@ -338,25 +344,25 @@ "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.8", - "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.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": { @@ -365,14 +371,14 @@ "integrity": "sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA=", "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": { @@ -389,9 +395,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": { @@ -400,10 +406,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-define-map": { @@ -412,10 +418,10 @@ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.5" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-explode-assignable-expression": { @@ -424,9 +430,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": { @@ -435,11 +441,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": { @@ -448,8 +454,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": { @@ -458,8 +464,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-optimise-call-expression": { @@ -468,8 +474,8 @@ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "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": { @@ -478,9 +484,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": { @@ -489,11 +495,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-helper-replace-supers": { @@ -502,12 +508,12 @@ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "dev": true, "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -516,8 +522,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-jest": { @@ -526,8 +532,8 @@ "integrity": "sha1-LOBZUZqTdKLEbyRVtvvvWtddhj4=", "dev": true, "requires": { - "babel-plugin-istanbul": "4.1.5", - "babel-preset-jest": "21.2.0" + "babel-plugin-istanbul": "^4.0.0", + "babel-preset-jest": "^21.2.0" } }, "babel-loader": { @@ -536,9 +542,9 @@ "integrity": "sha1-40Y5OL1ObVXRwXTFSF1AahiO0BU=", "dev": true, "requires": { - "find-cache-dir": "1.0.0", - "loader-utils": "1.1.0", - "mkdirp": "0.5.1" + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1" } }, "babel-messages": { @@ -547,7 +553,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -556,7 +562,7 @@ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-istanbul": { @@ -565,9 +571,9 @@ "integrity": "sha1-Z2DN2Xf0EdPhdbsGTyvDJ9mbK24=", "dev": true, "requires": { - "find-up": "2.1.0", - "istanbul-lib-instrument": "1.10.1", - "test-exclude": "4.2.1" + "find-up": "^2.1.0", + "istanbul-lib-instrument": "^1.7.5", + "test-exclude": "^4.1.1" } }, "babel-plugin-jest-hoist": { @@ -581,11 +587,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.1.1.tgz", "integrity": "sha512-1Q77Al4ydp6nYApJ7sQ2fmgz30WuQgJZegIYuyOdbdpxenB/bSezQ3hDPsumIXGlUS4vUIv+EwFjzzXZNWtARw==", "requires": { - "find-babel-config": "1.1.0", - "glob": "7.1.2", - "pkg-up": "2.0.0", - "reselect": "3.0.1", - "resolve": "1.7.1" + "find-babel-config": "^1.1.0", + "glob": "^7.1.2", + "pkg-up": "^2.0.0", + "reselect": "^3.0.1", + "resolve": "^1.4.0" }, "dependencies": { "glob": { @@ -593,12 +599,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "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" } }, "resolve": { @@ -606,7 +612,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } } } @@ -641,9 +647,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-arrow-functions": { @@ -652,7 +658,7 @@ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -661,7 +667,7 @@ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -670,11 +676,11 @@ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.5" + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-plugin-transform-es2015-classes": { @@ -683,15 +689,15 @@ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "dev": true, "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -700,8 +706,8 @@ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { @@ -710,7 +716,7 @@ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -719,8 +725,8 @@ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { @@ -729,7 +735,7 @@ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -738,9 +744,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-literals": { @@ -749,7 +755,7 @@ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -758,9 +764,9 @@ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -769,10 +775,10 @@ "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-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -781,9 +787,9 @@ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -792,9 +798,9 @@ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { @@ -803,8 +809,8 @@ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "dev": true, "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -813,12 +819,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-shorthand-properties": { @@ -827,8 +833,8 @@ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -837,7 +843,7 @@ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -846,9 +852,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-template-literals": { @@ -857,7 +863,7 @@ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -866,7 +872,7 @@ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -875,9 +881,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": { @@ -886,9 +892,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-regenerator": { @@ -897,7 +903,7 @@ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "dev": true, "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { @@ -906,8 +912,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-preset-env": { @@ -916,36 +922,36 @@ "integrity": "sha1-oYtWTMm5r99KrleuPBsNmRiOb0g=", "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-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "2.11.3", - "invariant": "2.2.4", - "semver": "5.5.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.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^2.1.2", + "invariant": "^2.2.2", + "semver": "^5.3.0" }, "dependencies": { "semver": { @@ -962,8 +968,8 @@ "integrity": "sha1-/50rzgir2Y6KNtmopRibkXO4Vjg=", "dev": true, "requires": { - "babel-plugin-jest-hoist": "21.2.0", - "babel-plugin-syntax-object-rest-spread": "6.13.0" + "babel-plugin-jest-hoist": "^21.2.0", + "babel-plugin-syntax-object-rest-spread": "^6.13.0" } }, "babel-register": { @@ -972,13 +978,13 @@ "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" + "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": { @@ -986,8 +992,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.5.3", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -996,11 +1002,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": { @@ -1009,15 +1015,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.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" } }, "babel-types": { @@ -1026,10 +1032,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": { @@ -1048,13 +1054,13 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", "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": { @@ -1062,7 +1068,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } } } @@ -1072,7 +1078,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", "integrity": "sha1-lMF4hzbaBl7bHWiAiGnjV8l3+nc=", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "base64-js": { @@ -1091,7 +1097,7 @@ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "big.js": { @@ -1105,11 +1111,13 @@ "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=" }, "bl": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", - "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", + "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", + "dev": true, "requires": { - "readable-stream": "2.3.5" + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" } }, "bluebird": { @@ -1127,7 +1135,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", "requires": { - "hoek": "4.2.1" + "hoek": "4.x.x" }, "dependencies": { "hoek": { @@ -1142,7 +1150,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -1151,18 +1159,18 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", "integrity": "sha1-cIbJE7TloI2+N6wO5qJQDEumkbs=", "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" + "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" }, "dependencies": { "define-property": { @@ -1170,7 +1178,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -1178,7 +1186,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "kind-of": { @@ -1203,21 +1211,22 @@ } }, "browser-stdout": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", - "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=" + "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 }, "browserify-aes": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", "integrity": "sha1-OLerVe24Bv8tzaGn8WIHc6R3xJ8=", "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "browserify-cipher": { @@ -1225,9 +1234,9 @@ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", "requires": { - "browserify-aes": "1.1.1", - "browserify-des": "1.0.0", - "evp_bytestokey": "1.0.3" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, "browserify-des": { @@ -1235,9 +1244,9 @@ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1" } }, "browserify-rsa": { @@ -1245,8 +1254,8 @@ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, "browserify-sign": { @@ -1254,13 +1263,13 @@ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "elliptic": "6.4.0", - "inherits": "2.0.3", - "parse-asn1": "5.1.0" + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" } }, "browserify-zlib": { @@ -1268,7 +1277,7 @@ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", "requires": { - "pako": "1.0.6" + "pako": "~1.0.5" } }, "browserslist": { @@ -1277,8 +1286,8 @@ "integrity": "sha1-/jYWeu0bvN5IJ+v+cTR6LMcLmbI=", "dev": true, "requires": { - "caniuse-lite": "1.0.30000814", - "electron-to-chromium": "1.3.37" + "caniuse-lite": "^1.0.30000792", + "electron-to-chromium": "^1.3.30" } }, "bser": { @@ -1287,7 +1296,7 @@ "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", "dev": true, "requires": { - "node-int64": "0.4.0" + "node-int64": "^0.4.0" } }, "buffer": { @@ -1295,21 +1304,44 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "requires": { - "base64-js": "1.2.3", - "ieee754": "1.1.8", - "isarray": "1.0.0" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" } }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "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-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, "buffer-writer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.1.tgz", @@ -1335,15 +1367,15 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", "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" } }, "callsites": { @@ -1373,44 +1405,48 @@ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "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.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": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", "integrity": "sha1-JQ3JawdJG/1gHmSNZt319gx6XGU=", + "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.3.0" }, "dependencies": { "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true }, "supports-color": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", "integrity": "sha1-WySsFduA+pJ89SJ6SjP9PEx2dsA=", + "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -1418,25 +1454,26 @@ "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true }, "chokidar": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.2.tgz", "integrity": "sha1-TcZROe6ycUl3c1tqNdBul7SU39c=", "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.1", - "fsevents": "1.1.3", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0", - "upath": "1.0.4" + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.0.0", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.0" } }, "ci-info": { @@ -1450,8 +1487,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "class-utils": { @@ -1459,10 +1496,10 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", "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": { @@ -1470,7 +1507,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "is-accessor-descriptor": { @@ -1478,7 +1515,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -1486,7 +1523,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -1496,7 +1533,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -1504,7 +1541,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -1514,9 +1551,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", "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": { @@ -1531,8 +1568,8 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "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" } }, @@ -1551,38 +1588,38 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "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": "sha1-wSYRB66y8pTr/+ye2eytUppgl+0=", + "dev": true, "requires": { - "color-name": "1.1.3" + "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=" + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "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" + "delayed-stream": "~1.0.0" } }, "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "requires": { - "graceful-readlink": "1.0.1" - } + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true }, "commondir": { "version": "1.0.1", @@ -1605,11 +1642,12 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz", "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=", + "dev": true, "requires": { - "buffer-crc32": "0.2.13", - "crc32-stream": "2.0.0", - "normalize-path": "2.1.1", - "readable-stream": "2.3.5" + "buffer-crc32": "^0.2.1", + "crc32-stream": "^2.0.0", + "normalize-path": "^2.0.0", + "readable-stream": "^2.0.0" } }, "concat-map": { @@ -1622,7 +1660,7 @@ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "requires": { - "date-now": "0.1.4" + "date-now": "^0.1.4" } }, "constants-browserify": { @@ -1660,15 +1698,17 @@ "crc": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/crc/-/crc-3.5.0.tgz", - "integrity": "sha1-mLi6fUiWZbo5efWbITgTdBAaGWQ=" + "integrity": "sha1-mLi6fUiWZbo5efWbITgTdBAaGWQ=", + "dev": true }, "crc32-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", + "dev": true, "requires": { - "crc": "3.5.0", - "readable-stream": "2.3.5" + "crc": "^3.4.4", + "readable-stream": "^2.0.0" } }, "create-ecdh": { @@ -1676,8 +1716,8 @@ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.0" + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" } }, "create-hash": { @@ -1685,10 +1725,10 @@ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "sha.js": "2.4.10" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -1696,12 +1736,12 @@ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.10" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "cross-spawn": { @@ -1709,9 +1749,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.2", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "cryptiles": { @@ -1719,7 +1759,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": { @@ -1727,7 +1767,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", "integrity": "sha1-XdnabuOl8wIHdDYpDLcX0/SlTgI=", "requires": { - "hoek": "4.2.1" + "hoek": "4.x.x" } }, "hoek": { @@ -1742,17 +1782,17 @@ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", "requires": { - "browserify-cipher": "1.0.0", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.0", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "diffie-hellman": "5.0.2", - "inherits": "2.0.3", - "pbkdf2": "3.0.14", - "public-encrypt": "4.0.0", - "randombytes": "2.0.6", - "randomfill": "1.0.4" + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" } }, "cssom": { @@ -1767,7 +1807,7 @@ "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", "dev": true, "requires": { - "cssom": "0.3.2" + "cssom": "0.3.x" } }, "d": { @@ -1775,7 +1815,7 @@ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "requires": { - "es5-ext": "0.10.40" + "es5-ext": "^0.10.9" } }, "dashdash": { @@ -1783,7 +1823,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": { @@ -1819,9 +1859,10 @@ "deep-eql": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "deep-is": { @@ -1836,7 +1877,7 @@ "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", "dev": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^2.0.0" }, "dependencies": { "strip-bom": { @@ -1845,7 +1886,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } } } @@ -1855,8 +1896,8 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" } }, "delayed-stream": { @@ -1869,8 +1910,8 @@ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "detect-indent": { @@ -1879,7 +1920,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "did-jwt": { @@ -1888,16 +1929,16 @@ "integrity": "sha512-86pGvhXtQ2D4ilNNmuAP1LaWIx9udt82ww/SqFZGJ1xkkQh3evioS6BexlJO+f7vU93j+Rr/ZPfqvp+AadJDqg==", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "base64url": "2.0.0", - "buffer": "5.1.0", - "did-resolver": "0.0.4", - "elliptic": "6.4.0", - "js-sha256": "0.9.0", - "js-sha3": "0.7.0", - "mnid": "0.1.1", - "uport-did-resolver": "0.0.2", - "uport-lite": "1.0.2" + "babel-runtime": "^6.26.0", + "base64url": "^2.0.0", + "buffer": "^5.1.0", + "did-resolver": "^0.0.4", + "elliptic": "^6.4.0", + "js-sha256": "^0.9.0", + "js-sha3": "^0.7.0", + "mnid": "^0.1.1", + "uport-did-resolver": "^0.0.2", + "uport-lite": "^1.0.2" }, "dependencies": { "buffer": { @@ -1906,8 +1947,8 @@ "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==", "dev": true, "requires": { - "base64-js": "1.2.3", - "ieee754": "1.1.8" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, "js-sha3": { @@ -1923,22 +1964,23 @@ "resolved": "https://registry.npmjs.org/did-resolver/-/did-resolver-0.0.4.tgz", "integrity": "sha512-EKjGg3affl0xVowQ/vWRUqQU1E4h4uuCqXXNVKHlPqRN/pu0mkqk66b8Fly1Z5CxhTuc1ImOob2YiBMhCrh4Nw==", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.26.0" } }, "diff": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz", - "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=" + "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=", + "dev": true }, "diffie-hellman": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, "domain-browser": { @@ -1952,7 +1994,7 @@ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "ecdsa-sig-formatter": { @@ -1960,8 +2002,8 @@ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz", "integrity": "sha1-S8kmJ07Dtau1AW5+HWCSGsJisqE=", "requires": { - "base64url": "2.0.0", - "safe-buffer": "5.1.1" + "base64url": "^2.0.0", + "safe-buffer": "^5.0.1" } }, "electron-to-chromium": { @@ -1975,13 +2017,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.3", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "emojis-list": { @@ -1992,9 +2034,10 @@ "end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "enhanced-resolve": { @@ -2002,10 +2045,10 @@ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "object-assign": "4.1.1", - "tapable": "0.2.8" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "object-assign": "^4.0.1", + "tapable": "^0.2.7" } }, "errno": { @@ -2013,7 +2056,7 @@ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", "integrity": "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=", "requires": { - "prr": "1.0.1" + "prr": "~1.0.1" } }, "error-ex": { @@ -2021,7 +2064,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es5-ext": { @@ -2029,8 +2072,8 @@ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.40.tgz", "integrity": "sha1-qz0heblDAIxenvJBvrJe9BQkx3Q=", "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1" } }, "es6-iterator": { @@ -2038,9 +2081,9 @@ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.40", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, "es6-map": { @@ -2048,12 +2091,12 @@ "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "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" + "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": { @@ -2061,11 +2104,11 @@ "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.40", - "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": { @@ -2073,8 +2116,8 @@ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.40" + "d": "1", + "es5-ext": "~0.10.14" } }, "es6-weak-map": { @@ -2082,16 +2125,17 @@ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.40", - "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" } }, "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=" + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true }, "escodegen": { "version": "1.9.1", @@ -2099,11 +2143,11 @@ "integrity": "sha1-264X75bI5L7bE1b0UE+kzC98t+I=", "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": { @@ -2126,10 +2170,10 @@ "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", "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" } }, "esprima": { @@ -2143,7 +2187,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=", "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -2283,15 +2327,15 @@ "resolved": "https://registry.npmjs.org/ethr-did-resolver/-/ethr-did-resolver-0.0.8.tgz", "integrity": "sha512-UfjsAX5ZQ1c9Uz71OoYk5yhFaEl4oKU4L7hBJ+NDCzZkfUzkd4NmAq0GP7Oird75/DSNqj9PvCCYNmyCSmMNzA==", "requires": { - "babel-plugin-module-resolver": "3.1.1", - "babel-runtime": "6.26.0", - "buffer": "5.1.0", - "did-resolver": "0.0.4", - "ethjs-abi": "0.2.1", - "ethjs-contract": "0.1.9", - "ethjs-provider-http": "0.1.6", - "ethjs-query": "0.3.6", - "ethr-did-registry": "0.0.2" + "babel-plugin-module-resolver": "^3.1.1", + "babel-runtime": "^6.26.0", + "buffer": "^5.1.0", + "did-resolver": "^0.0.4", + "ethjs-abi": "^0.2.1", + "ethjs-contract": "^0.1.9", + "ethjs-provider-http": "^0.1.6", + "ethjs-query": "^0.3.5", + "ethr-did-registry": "^0.0.2" }, "dependencies": { "buffer": { @@ -2299,8 +2343,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz", "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==", "requires": { - "base64-js": "1.2.3", - "ieee754": "1.1.8" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } } } @@ -2310,8 +2354,8 @@ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.40" + "d": "1", + "es5-ext": "~0.10.14" } }, "events": { @@ -2324,8 +2368,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.1" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "exec-sh": { @@ -2334,7 +2378,7 @@ "integrity": "sha1-FjuYpuiea2W0fCoo0hW8H2OYnDg=", "dev": true, "requires": { - "merge": "1.2.0" + "merge": "^1.1.3" } }, "execa": { @@ -2342,13 +2386,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "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": { @@ -2356,13 +2400,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "debug": "2.6.8", - "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": { @@ -2370,7 +2414,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -2378,7 +2422,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -2386,7 +2430,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -2394,7 +2438,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2404,7 +2448,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -2412,7 +2456,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2422,9 +2466,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", "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": { @@ -2440,7 +2484,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "2.2.3" + "fill-range": "^2.1.0" }, "dependencies": { "fill-range": { @@ -2449,11 +2493,11 @@ "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" } }, "is-number": { @@ -2462,7 +2506,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "isobject": { @@ -2482,12 +2526,12 @@ "integrity": "sha1-ADrCrHAFw8Kec7OKJy1K+t1tHXs=", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "jest-diff": "21.2.1", - "jest-get-type": "21.2.0", - "jest-matcher-utils": "21.2.1", - "jest-message-util": "21.2.1", - "jest-regex-util": "21.2.0" + "ansi-styles": "^3.2.0", + "jest-diff": "^21.2.1", + "jest-get-type": "^21.2.0", + "jest-matcher-utils": "^21.2.1", + "jest-message-util": "^21.2.1", + "jest-regex-util": "^21.2.0" } }, "extend": { @@ -2500,8 +2544,8 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -2509,7 +2553,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -2519,14 +2563,14 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", "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": { @@ -2534,7 +2578,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -2542,7 +2586,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -2574,7 +2618,7 @@ "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", "dev": true, "requires": { - "bser": "2.0.0" + "bser": "^2.0.0" } }, "filename-regex": { @@ -2589,8 +2633,8 @@ "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", "dev": true, "requires": { - "glob": "7.1.1", - "minimatch": "3.0.4" + "glob": "^7.0.3", + "minimatch": "^3.0.3" } }, "fill-range": { @@ -2598,10 +2642,10 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "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": { @@ -2609,7 +2653,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -2619,8 +2663,8 @@ "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.1.0.tgz", "integrity": "sha1-rMAQQ6Z0n+w0Qpvmtk9ULrtdY1U=", "requires": { - "json5": "0.5.1", - "path-exists": "3.0.0" + "json5": "^0.5.1", + "path-exists": "^3.0.0" } }, "find-cache-dir": { @@ -2629,9 +2673,9 @@ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "dev": true, "requires": { - "commondir": "1.0.1", - "make-dir": "1.2.0", - "pkg-dir": "2.0.0" + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" } }, "find-up": { @@ -2639,7 +2683,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "for-in": { @@ -2653,7 +2697,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "forever-agent": { @@ -2666,9 +2710,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" } }, "formatio": { @@ -2677,7 +2721,7 @@ "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=", "dev": true, "requires": { - "samsam": "1.1.2" + "samsam": "~1.1" } }, "fragment-cache": { @@ -2685,17 +2729,24 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, "fs-extra": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "3.0.1", - "universalify": "0.1.1" + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" } }, "fs.realpath": { @@ -2709,8 +2760,8 @@ "integrity": "sha1-EfgjGPX+e7LNIpZaEI6TBiCCFtg=", "optional": true, "requires": { - "nan": "2.9.2", - "node-pre-gyp": "0.6.39" + "nan": "^2.3.0", + "node-pre-gyp": "^0.6.39" }, "dependencies": { "abbrev": { @@ -2725,8 +2776,8 @@ "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "optional": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "ansi-regex": { @@ -2746,8 +2797,8 @@ "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "asn1": { @@ -2791,7 +2842,7 @@ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "block-stream": { @@ -2799,7 +2850,7 @@ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "boom": { @@ -2807,7 +2858,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "brace-expansion": { @@ -2815,7 +2866,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", "requires": { - "balanced-match": "0.4.2", + "balanced-match": "^0.4.1", "concat-map": "0.0.1" } }, @@ -2846,7 +2897,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "concat-map": { @@ -2869,7 +2920,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "dashdash": { @@ -2878,7 +2929,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "optional": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -2927,7 +2978,7 @@ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "extend": { @@ -2953,9 +3004,9 @@ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "optional": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "fs.realpath": { @@ -2968,10 +3019,10 @@ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, "fstream-ignore": { @@ -2980,9 +3031,9 @@ "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", "optional": true, "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" + "fstream": "^1.0.0", + "inherits": "2", + "minimatch": "^3.0.0" } }, "gauge": { @@ -2991,14 +3042,14 @@ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "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" + "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" } }, "getpass": { @@ -3007,7 +3058,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "optional": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -3023,12 +3074,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "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": { @@ -3048,8 +3099,8 @@ "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", "optional": true, "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "ajv": "^4.9.1", + "har-schema": "^1.0.5" } }, "has-unicode": { @@ -3063,10 +3114,10 @@ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "hoek": { @@ -3080,9 +3131,9 @@ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "optional": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "inflight": { @@ -3090,8 +3141,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -3110,7 +3161,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-typedarray": { @@ -3136,7 +3187,7 @@ "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "jsbn": { @@ -3157,7 +3208,7 @@ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "optional": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { @@ -3202,7 +3253,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", "requires": { - "mime-db": "1.27.0" + "mime-db": "~1.27.0" } }, "minimatch": { @@ -3210,7 +3261,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.7" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -3238,17 +3289,17 @@ "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", "optional": true, "requires": { - "detect-libc": "1.0.2", + "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", + "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" + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^2.2.1", + "tar-pack": "^3.4.0" } }, "nopt": { @@ -3257,8 +3308,8 @@ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "optional": true, "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npmlog": { @@ -3267,10 +3318,10 @@ "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", "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": { @@ -3295,7 +3346,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -3316,8 +3367,8 @@ "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", "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": { @@ -3354,10 +3405,10 @@ "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", "optional": true, "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "~0.4.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -3373,13 +3424,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", "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" + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" } }, "request": { @@ -3388,28 +3439,28 @@ "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "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" + "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" } }, "rimraf": { @@ -3417,7 +3468,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { @@ -3448,7 +3499,7 @@ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "sshpk": { @@ -3457,15 +3508,15 @@ "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", "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" + "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", + "jodid25519": "^1.0.0", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" }, "dependencies": { "assert-plus": { @@ -3481,9 +3532,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "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": { @@ -3491,7 +3542,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", "requires": { - "safe-buffer": "5.0.1" + "safe-buffer": "^5.0.1" } }, "stringstream": { @@ -3505,7 +3556,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -3519,9 +3570,9 @@ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "tar-pack": { @@ -3530,14 +3581,14 @@ "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", "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" + "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" } }, "tough-cookie": { @@ -3546,7 +3597,7 @@ "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", "optional": true, "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "tunnel-agent": { @@ -3555,7 +3606,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "optional": true, "requires": { - "safe-buffer": "5.0.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -3596,7 +3647,7 @@ "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { @@ -3614,7 +3665,8 @@ "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=" + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true }, "get-stream": { "version": "3.0.0", @@ -3631,20 +3683,21 @@ "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": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", + "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.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -3653,8 +3706,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" }, "dependencies": { "glob-parent": { @@ -3663,7 +3716,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "is-extglob": { @@ -3678,7 +3731,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } } } @@ -3688,8 +3741,8 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -3697,7 +3750,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -3713,15 +3766,11 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" - }, "growl": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", - "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=" + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true }, "growly": { "version": "1.3.0", @@ -3735,10 +3784,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": { @@ -3753,7 +3802,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -3768,8 +3817,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": { @@ -3778,22 +3827,23 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "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=" + "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", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "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": { @@ -3801,8 +3851,8 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "kind-of": { @@ -3810,7 +3860,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3820,7 +3870,7 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", "requires": { - "inherits": "2.0.3" + "inherits": "^2.0.1" } }, "hash.js": { @@ -3828,8 +3878,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", "integrity": "sha1-NA3tvmKQGHFRweodd3o0SJNd+EY=", "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" } }, "hawk": { @@ -3837,10 +3887,10 @@ "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", "integrity": "sha1-r02RTrBl+bXOTZ0RwcshJu7MMDg=", "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" }, "dependencies": { "hoek": { @@ -3853,16 +3903,17 @@ "he": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "1.1.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "hoek": { @@ -3876,16 +3927,17 @@ "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" } }, "homedir-polyfill": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "dev": true, "requires": { - "parse-passwd": "1.0.0" + "parse-passwd": "^1.0.0" } }, "hosted-git-info": { @@ -3899,7 +3951,7 @@ "integrity": "sha1-5w2EuU2lOqN14R/jo1G+ZkLKRvg=", "dev": true, "requires": { - "whatwg-encoding": "1.0.3" + "whatwg-encoding": "^1.0.1" } }, "http-signature": { @@ -3907,9 +3959,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" } }, "https-browserify": { @@ -3944,8 +3996,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -3964,7 +4016,7 @@ "integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=", "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -3977,7 +4029,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" }, "dependencies": { "kind-of": { @@ -3997,7 +4049,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -4010,7 +4062,7 @@ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-ci": { @@ -4019,7 +4071,7 @@ "integrity": "sha1-JH5BYueGDOu9rzC3dNawrH3P56U=", "dev": true, "requires": { - "ci-info": "1.1.3" + "ci-info": "^1.0.0" } }, "is-data-descriptor": { @@ -4027,7 +4079,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" }, "dependencies": { "kind-of": { @@ -4042,9 +4094,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", "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" }, "dependencies": { "kind-of": { @@ -4066,7 +4118,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -4085,7 +4137,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -4093,7 +4145,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-glob": { @@ -4101,7 +4153,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-hex-prefixed": { @@ -4114,7 +4166,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-odd": { @@ -4122,7 +4174,7 @@ "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", "integrity": "sha1-dkZiRnH9fqVYzNmieVGC8pWPGyQ=", "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { @@ -4137,7 +4189,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "is-posix-bracket": { @@ -4204,18 +4256,18 @@ "integrity": "sha1-TDsF0YwAFtECLgebmNyCxA9IiVQ=", "dev": true, "requires": { - "async": "2.6.0", - "compare-versions": "3.1.0", - "fileset": "2.0.3", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.2.0", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-report": "1.1.4", - "istanbul-lib-source-maps": "1.2.4", - "istanbul-reports": "1.3.0", - "js-yaml": "3.11.0", - "mkdirp": "0.5.1", - "once": "1.4.0" + "async": "^2.1.4", + "compare-versions": "^3.1.0", + "fileset": "^2.0.2", + "istanbul-lib-coverage": "^1.2.0", + "istanbul-lib-hook": "^1.2.0", + "istanbul-lib-instrument": "^1.10.1", + "istanbul-lib-report": "^1.1.4", + "istanbul-lib-source-maps": "^1.2.4", + "istanbul-reports": "^1.3.0", + "js-yaml": "^3.7.0", + "mkdirp": "^0.5.1", + "once": "^1.4.0" }, "dependencies": { "debug": { @@ -4233,11 +4285,11 @@ "integrity": "sha1-zHzK1hYp9O//ji94rbjFIsmXbsc=", "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" } }, "ms": { @@ -4260,7 +4312,7 @@ "integrity": "sha1-rlVv1aQabo76CxACseQW3+r5gWw=", "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^0.4.0" } }, "istanbul-lib-instrument": { @@ -4269,13 +4321,13 @@ "integrity": "sha1-cktLbKzrqGktPx+dByfiecQBr3s=", "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" }, "dependencies": { "semver": { @@ -4292,10 +4344,10 @@ "integrity": "sha1-6IbN9QXE672OCZ5DlqkNCijirLU=", "dev": true, "requires": { - "istanbul-lib-coverage": "1.2.0", - "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.1.2" } }, "istanbul-lib-source-maps": { @@ -4304,11 +4356,11 @@ "integrity": "sha1-IPtUsU4Us/tu22rKNXH9IUPbROY=", "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": { @@ -4334,7 +4386,7 @@ "integrity": "sha1-LzIugeHZUgdnWX3KPCCgzOiaNVQ=", "dev": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "jest": { @@ -4343,7 +4395,7 @@ "integrity": "sha1-yWTgtHODdooUOOPM88PUcDJ2BOE=", "dev": true, "requires": { - "jest-cli": "21.2.1" + "jest-cli": "^21.2.1" }, "dependencies": { "ansi-regex": { @@ -4358,7 +4410,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "array-unique": { @@ -4373,9 +4425,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" } }, "camelcase": { @@ -4390,9 +4442,9 @@ "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": { "ansi-regex": { @@ -4407,9 +4459,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": { @@ -4418,7 +4470,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -4429,7 +4481,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "extglob": { @@ -4438,7 +4490,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "glob": { @@ -4447,12 +4499,12 @@ "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", "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" } }, "is-extglob": { @@ -4467,7 +4519,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "jest-cli": { @@ -4476,35 +4528,35 @@ "integrity": "sha1-nFKLZinWUZERONIovbAzwVfsjAA=", "dev": true, "requires": { - "ansi-escapes": "3.0.0", - "chalk": "2.3.2", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "is-ci": "1.1.0", - "istanbul-api": "1.3.1", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-source-maps": "1.2.3", - "jest-changed-files": "21.2.0", - "jest-config": "21.2.1", - "jest-environment-jsdom": "21.2.1", - "jest-haste-map": "21.2.0", - "jest-message-util": "21.2.1", - "jest-regex-util": "21.2.0", - "jest-resolve-dependencies": "21.2.0", - "jest-runner": "21.2.1", - "jest-runtime": "21.2.1", - "jest-snapshot": "21.2.1", - "jest-util": "21.2.1", - "micromatch": "2.3.11", - "node-notifier": "5.2.1", - "pify": "3.0.0", - "slash": "1.0.0", - "string-length": "2.0.0", - "strip-ansi": "4.0.0", - "which": "1.3.0", - "worker-farm": "1.6.0", - "yargs": "9.0.1" + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "is-ci": "^1.0.10", + "istanbul-api": "^1.1.1", + "istanbul-lib-coverage": "^1.0.1", + "istanbul-lib-instrument": "^1.4.2", + "istanbul-lib-source-maps": "^1.1.0", + "jest-changed-files": "^21.2.0", + "jest-config": "^21.2.1", + "jest-environment-jsdom": "^21.2.1", + "jest-haste-map": "^21.2.0", + "jest-message-util": "^21.2.1", + "jest-regex-util": "^21.2.0", + "jest-resolve-dependencies": "^21.2.0", + "jest-runner": "^21.2.1", + "jest-runtime": "^21.2.1", + "jest-snapshot": "^21.2.1", + "jest-util": "^21.2.1", + "micromatch": "^2.3.11", + "node-notifier": "^5.0.2", + "pify": "^3.0.0", + "slash": "^1.0.0", + "string-length": "^2.0.0", + "strip-ansi": "^4.0.0", + "which": "^1.2.12", + "worker-farm": "^1.3.1", + "yargs": "^9.0.0" } }, "micromatch": { @@ -4513,19 +4565,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" } }, "pify": { @@ -4540,7 +4592,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "yargs": { @@ -4549,19 +4601,19 @@ "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", "dev": true, "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.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": "7.0.0" + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^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": "^7.0.0" } } } @@ -4572,7 +4624,7 @@ "integrity": "sha1-Xb7srUL12ItIIzSQLOHLptl5jSk=", "dev": true, "requires": { - "throat": "4.1.0" + "throat": "^4.0.0" } }, "jest-config": { @@ -4581,17 +4633,17 @@ "integrity": "sha1-x1hseerQvMHzjEAeVflk8TvypIA=", "dev": true, "requires": { - "chalk": "2.3.2", - "glob": "7.1.1", - "jest-environment-jsdom": "21.2.1", - "jest-environment-node": "21.2.1", - "jest-get-type": "21.2.0", - "jest-jasmine2": "21.2.1", - "jest-regex-util": "21.2.0", - "jest-resolve": "21.2.0", - "jest-util": "21.2.1", - "jest-validate": "21.2.1", - "pretty-format": "21.2.1" + "chalk": "^2.0.1", + "glob": "^7.1.1", + "jest-environment-jsdom": "^21.2.1", + "jest-environment-node": "^21.2.1", + "jest-get-type": "^21.2.0", + "jest-jasmine2": "^21.2.1", + "jest-regex-util": "^21.2.0", + "jest-resolve": "^21.2.0", + "jest-util": "^21.2.1", + "jest-validate": "^21.2.1", + "pretty-format": "^21.2.1" } }, "jest-diff": { @@ -4600,10 +4652,10 @@ "integrity": "sha1-RszLbKstAs6YvDFAEXZLuVsGW08=", "dev": true, "requires": { - "chalk": "2.3.2", - "diff": "3.2.0", - "jest-get-type": "21.2.0", - "pretty-format": "21.2.1" + "chalk": "^2.0.1", + "diff": "^3.2.0", + "jest-get-type": "^21.2.0", + "pretty-format": "^21.2.1" } }, "jest-docblock": { @@ -4618,9 +4670,9 @@ "integrity": "sha1-ONmYDIJZsqYI7CMt7uYommDZ1bQ=", "dev": true, "requires": { - "jest-mock": "21.2.0", - "jest-util": "21.2.1", - "jsdom": "9.12.0" + "jest-mock": "^21.2.0", + "jest-util": "^21.2.1", + "jsdom": "^9.12.0" } }, "jest-environment-node": { @@ -4629,8 +4681,8 @@ "integrity": "sha1-mMZ99WY8f74g9ueSrCJyx0DTuMg=", "dev": true, "requires": { - "jest-mock": "21.2.0", - "jest-util": "21.2.1" + "jest-mock": "^21.2.0", + "jest-util": "^21.2.1" } }, "jest-get-type": { @@ -4645,12 +4697,12 @@ "integrity": "sha1-E2PwqLtDOPJPABgGVx7/eksv89g=", "dev": true, "requires": { - "fb-watchman": "2.0.0", - "graceful-fs": "4.1.11", - "jest-docblock": "21.2.0", - "micromatch": "2.3.11", - "sane": "2.4.1", - "worker-farm": "1.6.0" + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.1.11", + "jest-docblock": "^21.2.0", + "micromatch": "^2.3.11", + "sane": "^2.0.0", + "worker-farm": "^1.3.1" }, "dependencies": { "arr-diff": { @@ -4659,7 +4711,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "array-unique": { @@ -4674,9 +4726,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" } }, "expand-brackets": { @@ -4685,7 +4737,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "extglob": { @@ -4694,7 +4746,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-extglob": { @@ -4709,7 +4761,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "micromatch": { @@ -4718,19 +4770,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" } } } @@ -4741,14 +4793,14 @@ "integrity": "sha1-nMb8EIrM+pfv684QxDCFSKTqdZI=", "dev": true, "requires": { - "chalk": "2.3.2", - "expect": "21.2.1", - "graceful-fs": "4.1.11", - "jest-diff": "21.2.1", - "jest-matcher-utils": "21.2.1", - "jest-message-util": "21.2.1", - "jest-snapshot": "21.2.1", - "p-cancelable": "0.3.0" + "chalk": "^2.0.1", + "expect": "^21.2.1", + "graceful-fs": "^4.1.11", + "jest-diff": "^21.2.1", + "jest-matcher-utils": "^21.2.1", + "jest-message-util": "^21.2.1", + "jest-snapshot": "^21.2.1", + "p-cancelable": "^0.3.0" } }, "jest-matcher-utils": { @@ -4757,9 +4809,9 @@ "integrity": "sha1-csgm6rpBoJOsK0Vl+GXrhHXeD2Q=", "dev": true, "requires": { - "chalk": "2.3.2", - "jest-get-type": "21.2.0", - "pretty-format": "21.2.1" + "chalk": "^2.0.1", + "jest-get-type": "^21.2.0", + "pretty-format": "^21.2.1" } }, "jest-message-util": { @@ -4768,9 +4820,9 @@ "integrity": "sha1-v+XUaSyEyCfR3PQYI3lVWPChrL4=", "dev": true, "requires": { - "chalk": "2.3.2", - "micromatch": "2.3.11", - "slash": "1.0.0" + "chalk": "^2.0.1", + "micromatch": "^2.3.11", + "slash": "^1.0.0" }, "dependencies": { "arr-diff": { @@ -4779,7 +4831,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "array-unique": { @@ -4794,9 +4846,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" } }, "expand-brackets": { @@ -4805,7 +4857,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "extglob": { @@ -4814,7 +4866,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-extglob": { @@ -4829,7 +4881,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "micromatch": { @@ -4838,19 +4890,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" } } } @@ -4873,9 +4925,9 @@ "integrity": "sha1-BokTrSumogIY5f0yRx84dABd46Y=", "dev": true, "requires": { - "browser-resolve": "1.11.2", - "chalk": "2.3.2", - "is-builtin-module": "1.0.0" + "browser-resolve": "^1.11.2", + "chalk": "^2.0.1", + "is-builtin-module": "^1.0.0" } }, "jest-resolve-dependencies": { @@ -4884,7 +4936,7 @@ "integrity": "sha1-niMeNx4ac2oa1OS5qEO8cr/gPQk=", "dev": true, "requires": { - "jest-regex-util": "21.2.0" + "jest-regex-util": "^21.2.0" } }, "jest-runner": { @@ -4893,16 +4945,16 @@ "integrity": "sha1-GUcy4+UYv7PXy/wP1YcSRsfhpGc=", "dev": true, "requires": { - "jest-config": "21.2.1", - "jest-docblock": "21.2.0", - "jest-haste-map": "21.2.0", - "jest-jasmine2": "21.2.1", - "jest-message-util": "21.2.1", - "jest-runtime": "21.2.1", - "jest-util": "21.2.1", - "pify": "3.0.0", - "throat": "4.1.0", - "worker-farm": "1.6.0" + "jest-config": "^21.2.1", + "jest-docblock": "^21.2.0", + "jest-haste-map": "^21.2.0", + "jest-jasmine2": "^21.2.1", + "jest-message-util": "^21.2.1", + "jest-runtime": "^21.2.1", + "jest-util": "^21.2.1", + "pify": "^3.0.0", + "throat": "^4.0.0", + "worker-farm": "^1.3.1" }, "dependencies": { "pify": { @@ -4919,23 +4971,23 @@ "integrity": "sha1-mdzhUwnGcEQu7i6+H/U6PL27tz4=", "dev": true, "requires": { - "babel-core": "6.26.0", - "babel-jest": "21.2.0", - "babel-plugin-istanbul": "4.1.5", - "chalk": "2.3.2", - "convert-source-map": "1.5.1", - "graceful-fs": "4.1.11", - "jest-config": "21.2.1", - "jest-haste-map": "21.2.0", - "jest-regex-util": "21.2.0", - "jest-resolve": "21.2.0", - "jest-util": "21.2.1", - "json-stable-stringify": "1.0.1", - "micromatch": "2.3.11", - "slash": "1.0.0", + "babel-core": "^6.0.0", + "babel-jest": "^21.2.0", + "babel-plugin-istanbul": "^4.0.0", + "chalk": "^2.0.1", + "convert-source-map": "^1.4.0", + "graceful-fs": "^4.1.11", + "jest-config": "^21.2.1", + "jest-haste-map": "^21.2.0", + "jest-regex-util": "^21.2.0", + "jest-resolve": "^21.2.0", + "jest-util": "^21.2.1", + "json-stable-stringify": "^1.0.1", + "micromatch": "^2.3.11", + "slash": "^1.0.0", "strip-bom": "3.0.0", - "write-file-atomic": "2.3.0", - "yargs": "9.0.1" + "write-file-atomic": "^2.1.0", + "yargs": "^9.0.0" }, "dependencies": { "arr-diff": { @@ -4944,7 +4996,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "array-unique": { @@ -4959,9 +5011,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" } }, "camelcase": { @@ -4976,9 +5028,9 @@ "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": { @@ -4987,9 +5039,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" } } } @@ -5000,7 +5052,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "extglob": { @@ -5009,7 +5061,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-extglob": { @@ -5024,7 +5076,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "micromatch": { @@ -5033,19 +5085,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" } }, "yargs": { @@ -5054,19 +5106,19 @@ "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", "dev": true, "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.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": "7.0.0" + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^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": "^7.0.0" } } } @@ -5077,12 +5129,12 @@ "integrity": "sha1-KeSfFiAkFuRzQ+dX5e/5SMB/17A=", "dev": true, "requires": { - "chalk": "2.3.2", - "jest-diff": "21.2.1", - "jest-matcher-utils": "21.2.1", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "pretty-format": "21.2.1" + "chalk": "^2.0.1", + "jest-diff": "^21.2.1", + "jest-matcher-utils": "^21.2.1", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^21.2.1" } }, "jest-util": { @@ -5091,13 +5143,13 @@ "integrity": "sha1-onSy9yawiXSU1pSmw9amGrgZu3g=", "dev": true, "requires": { - "callsites": "2.0.0", - "chalk": "2.3.2", - "graceful-fs": "4.1.11", - "jest-message-util": "21.2.1", - "jest-mock": "21.2.0", - "jest-validate": "21.2.1", - "mkdirp": "0.5.1" + "callsites": "^2.0.0", + "chalk": "^2.0.1", + "graceful-fs": "^4.1.11", + "jest-message-util": "^21.2.1", + "jest-mock": "^21.2.0", + "jest-validate": "^21.2.1", + "mkdirp": "^0.5.1" } }, "jest-validate": { @@ -5106,10 +5158,10 @@ "integrity": "sha1-zAy8plPNVJN7pPKhEXlndFMN08c=", "dev": true, "requires": { - "chalk": "2.3.2", - "jest-get-type": "21.2.0", - "leven": "2.1.0", - "pretty-format": "21.2.1" + "chalk": "^2.0.1", + "jest-get-type": "^21.2.0", + "leven": "^2.1.0", + "pretty-format": "^21.2.1" } }, "jmespath": { @@ -5122,10 +5174,10 @@ "resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz", "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=", "requires": { - "hoek": "2.16.3", - "isemail": "1.2.0", - "moment": "2.21.0", - "topo": "1.1.0" + "hoek": "2.x.x", + "isemail": "1.x.x", + "moment": "2.x.x", + "topo": "1.x.x" } }, "js-sha256": { @@ -5155,8 +5207,8 @@ "integrity": "sha1-WXwai9VxUvJtYizkEXhRpR9euu8=", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -5171,25 +5223,25 @@ "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=", "dev": true, "requires": { - "abab": "1.0.4", - "acorn": "4.0.13", - "acorn-globals": "3.1.0", - "array-equal": "1.0.0", - "content-type-parser": "1.0.2", - "cssom": "0.3.2", - "cssstyle": "0.2.37", - "escodegen": "1.9.1", - "html-encoding-sniffer": "1.0.2", - "nwmatcher": "1.4.3", - "parse5": "1.5.1", - "request": "2.85.0", - "sax": "1.2.1", - "symbol-tree": "3.2.2", - "tough-cookie": "2.3.4", - "webidl-conversions": "4.0.2", - "whatwg-encoding": "1.0.3", - "whatwg-url": "4.8.0", - "xml-name-validator": "2.0.1" + "abab": "^1.0.3", + "acorn": "^4.0.4", + "acorn-globals": "^3.1.0", + "array-equal": "^1.0.0", + "content-type-parser": "^1.0.1", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": ">= 0.2.37 < 0.3.0", + "escodegen": "^1.6.1", + "html-encoding-sniffer": "^1.0.1", + "nwmatcher": ">= 1.3.9 < 2.0.0", + "parse5": "^1.5.1", + "request": "^2.79.0", + "sax": "^1.2.1", + "symbol-tree": "^3.2.1", + "tough-cookie": "^2.3.2", + "webidl-conversions": "^4.0.0", + "whatwg-encoding": "^1.0.1", + "whatwg-url": "^4.3.0", + "xml-name-validator": "^2.0.1" }, "dependencies": { "acorn": { @@ -5227,7 +5279,7 @@ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "dev": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { @@ -5235,11 +5287,6 @@ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, - "json3": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=" - }, "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", @@ -5249,8 +5296,9 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "jsonify": { @@ -5264,11 +5312,11 @@ "resolved": "https://registry.npmjs.org/jsontokens/-/jsontokens-0.7.7.tgz", "integrity": "sha1-hBwsAEK/49dEP8CaosLffWYFTzY=", "requires": { - "asn1.js": "4.10.1", - "base64url": "2.0.0", - "elliptic": "6.4.0", - "key-encoder": "1.1.6", - "validator": "7.2.0" + "asn1.js": "^4.9.1", + "base64url": "^2.0.0", + "elliptic": "^6.3.2", + "key-encoder": "^1.1.6", + "validator": "^7.0.0" } }, "jsonwebtoken": { @@ -5276,11 +5324,11 @@ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-7.4.3.tgz", "integrity": "sha1-d/UCHeBYtgWheD+hKD6ZgS5kVjg=", "requires": { - "joi": "6.10.1", - "jws": "3.1.4", - "lodash.once": "4.1.1", - "ms": "2.1.1", - "xtend": "4.0.1" + "joi": "^6.10.1", + "jws": "^3.1.4", + "lodash.once": "^4.0.0", + "ms": "^2.0.0", + "xtend": "^4.0.1" } }, "jsprim": { @@ -5302,7 +5350,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.0.1" } }, "jws": { @@ -5310,9 +5358,9 @@ "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.4.tgz", "integrity": "sha1-+ei5M46KhHJ31kRLFGT2GIDgUKI=", "requires": { - "base64url": "2.0.0", - "jwa": "1.1.5", - "safe-buffer": "5.1.1" + "base64url": "^2.0.0", + "jwa": "^1.1.4", + "safe-buffer": "^5.0.1" } }, "key-encoder": { @@ -5320,9 +5368,9 @@ "resolved": "https://registry.npmjs.org/key-encoder/-/key-encoder-1.1.6.tgz", "integrity": "sha1-ATVYLNPQp+t5LZTso4e2gejloq0=", "requires": { - "asn1.js": "2.2.1", - "bn.js": "3.3.0", - "elliptic": "5.2.1" + "asn1.js": "^2.2.0", + "bn.js": "^3.1.2", + "elliptic": "^5.1.0" }, "dependencies": { "asn1.js": { @@ -5330,9 +5378,9 @@ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-2.2.1.tgz", "integrity": "sha1-yLpN1o6EQxKIEmIwyyBFvfqfv+E=", "requires": { - "bn.js": "2.2.0", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "bn.js": "^2.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" }, "dependencies": { "bn.js": { @@ -5352,10 +5400,10 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-5.2.1.tgz", "integrity": "sha1-+ilLZWPG3bybo9yFlGh66ECFjxA=", "requires": { - "bn.js": "3.3.0", - "brorand": "1.1.0", - "hash.js": "1.1.3", - "inherits": "2.0.3" + "bn.js": "^3.1.1", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "inherits": "^2.0.1" } } } @@ -5365,7 +5413,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { @@ -5377,8 +5425,9 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "dev": true, "requires": { - "readable-stream": "2.3.5" + "readable-stream": "^2.0.5" } }, "lcid": { @@ -5386,7 +5435,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "leven": { @@ -5401,8 +5450,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": { @@ -5410,10 +5459,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "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" } }, "loader-runner": { @@ -5426,9 +5475,9 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" } }, "locate-path": { @@ -5436,8 +5485,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -5445,65 +5494,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", "integrity": "sha1-maktZcAnLevoyWtgV7yPv6O+1RE=" }, - "lodash._baseassign": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", - "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", - "requires": { - "lodash._basecopy": "3.0.1", - "lodash.keys": "3.1.2" - } - }, - "lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=" - }, - "lodash._basecreate": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz", - "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=" - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=" - }, - "lodash.create": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz", - "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", - "requires": { - "lodash._baseassign": "3.2.0", - "lodash._basecreate": "3.0.3", - "lodash._isiterateecall": "3.0.9" - } - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" - }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "requires": { - "lodash._getnative": "3.9.1", - "lodash.isarguments": "3.1.0", - "lodash.isarray": "3.0.4" - } - }, "lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", @@ -5526,7 +5516,7 @@ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { @@ -5534,8 +5524,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", "integrity": "sha1-RSNLLm4vKzPaElYkxGZJKaAiTD8=", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "make-dir": { @@ -5544,7 +5534,7 @@ "integrity": "sha1-bWpJ7q1KrilsU7vzoaAIvWyJRps=", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" }, "dependencies": { "pify": { @@ -5558,7 +5548,8 @@ "make-error": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz", - "integrity": "sha1-GZeO1XX56VRdL/jBPjO10Ypn1TU=" + "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==", + "dev": true }, "makeerror": { "version": "1.0.11", @@ -5566,7 +5557,7 @@ "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", "dev": true, "requires": { - "tmpl": "1.0.4" + "tmpl": "1.0.x" } }, "map-cache": { @@ -5579,7 +5570,7 @@ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "md5.js": { @@ -5587,8 +5578,8 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" }, "dependencies": { "hash-base": { @@ -5596,8 +5587,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } } } @@ -5607,7 +5598,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "memory-fs": { @@ -5615,8 +5606,8 @@ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.5" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, "merge": { @@ -5630,19 +5621,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.9.tgz", "integrity": "sha1-FdyTF1rjnlLpMIeEcJbv/HPvz4k=", "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" + "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" }, "dependencies": { "kind-of": { @@ -5657,8 +5648,8 @@ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" } }, "mime-db": { @@ -5671,7 +5662,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", "integrity": "sha1-bzI/YKg9ERRvgx/xH9ZuL+VQO7g=", "requires": { - "mime-db": "1.33.0" + "mime-db": "~1.33.0" } }, "mimic-fn": { @@ -5694,7 +5685,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -5707,8 +5698,8 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", "integrity": "sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=", "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -5716,7 +5707,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -5734,9 +5725,9 @@ "resolved": "https://registry.npmjs.org/mnid/-/mnid-0.1.1.tgz", "integrity": "sha1-TjiZtHbwLaKfcbUMevU4Dccrh5o=", "requires": { - "base-x": "3.0.4", - "buffer": "5.1.0", - "js-sha3": "0.5.7" + "base-x": "^3.0.0", + "buffer": "^5.0.5", + "js-sha3": "^0.5.7" }, "dependencies": { "buffer": { @@ -5744,29 +5735,81 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz", "integrity": "sha1-yRPkNnjHy3yL0Wr7zdtsVQXo+f4=", "requires": { - "base64-js": "1.2.3", - "ieee754": "1.1.8" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } } } }, "mocha": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz", - "integrity": "sha1-HgSA/jbS2lhY0etqzDhBiybqog0=", - "requires": { - "browser-stdout": "1.3.0", - "commander": "2.9.0", - "debug": "2.6.8", - "diff": "3.2.0", + "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.1", - "growl": "1.9.2", + "glob": "7.1.2", + "growl": "1.10.5", "he": "1.1.1", - "json3": "3.3.2", - "lodash.create": "3.1.1", + "minimatch": "3.0.4", "mkdirp": "0.5.1", - "supports-color": "3.1.2" + "supports-color": "5.4.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" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "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.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "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" + } + } } }, "moment": { @@ -5790,18 +5833,18 @@ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", "integrity": "sha1-h59xUMstq3pHElkGbBBO7m4Pp8I=", "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": { @@ -5827,9 +5870,9 @@ "resolved": "https://registry.npmjs.org/nexmo/-/nexmo-2.2.0.tgz", "integrity": "sha1-J9IEWAcZFfDjuAkOr01cEq4FpTs=", "requires": { - "jsonwebtoken": "7.4.3", - "request": "2.85.0", - "uuid": "2.0.3" + "jsonwebtoken": "^7.1.9", + "request": "^2.83.0", + "uuid": "^2.0.2" } }, "node-int64": { @@ -5843,28 +5886,28 @@ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", "integrity": "sha1-X5QmPUBPbkR2fXJpAf/wVHjWAN8=", "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.2.0", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.2.0", - "events": "1.1.1", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^1.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.5", - "stream-browserify": "2.0.1", - "stream-http": "2.8.0", - "string_decoder": "1.0.3", - "timers-browserify": "2.0.6", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", + "url": "^0.11.0", + "util": "^0.10.3", "vm-browserify": "0.0.4" }, "dependencies": { @@ -5897,10 +5940,10 @@ "integrity": "sha1-+jE90I9VF9sOJQLldY1mSsafneo=", "dev": true, "requires": { - "growly": "1.3.0", - "semver": "5.5.0", - "shellwords": "0.1.1", - "which": "1.3.0" + "growly": "^1.3.0", + "semver": "^5.4.1", + "shellwords": "^0.1.1", + "which": "^1.3.0" }, "dependencies": { "semver": { @@ -5916,10 +5959,10 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "4.3.2", - "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": { @@ -5927,7 +5970,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "npm-run-path": { @@ -5935,7 +5978,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -5980,9 +6023,9 @@ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "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": { @@ -5990,7 +6033,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "is-accessor-descriptor": { @@ -5998,7 +6041,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-data-descriptor": { @@ -6006,7 +6049,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-descriptor": { @@ -6014,9 +6057,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", "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": { @@ -6033,7 +6076,7 @@ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" } }, "object.omit": { @@ -6042,8 +6085,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": { @@ -6051,7 +6094,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "once": { @@ -6059,7 +6102,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { @@ -6068,8 +6111,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.2" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "optionator": { @@ -6078,12 +6121,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": { @@ -6110,9 +6153,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I=", "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": { @@ -6137,7 +6180,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", "integrity": "sha1-DpK2vty1nwIsE9DxlJ3ILRWQnxw=", "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -6145,7 +6188,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -6168,11 +6211,11 @@ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", "requires": { - "asn1.js": "4.10.1", - "browserify-aes": "1.1.1", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.14" + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" } }, "parse-glob": { @@ -6181,10 +6224,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" }, "dependencies": { "is-extglob": { @@ -6199,7 +6242,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } } } @@ -6209,13 +6252,14 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true }, "parse5": { "version": "1.5.1", @@ -6263,24 +6307,25 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" } }, "pathval": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=" + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true }, "pbkdf2": { "version": "3.0.14", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", "integrity": "sha1-o14TxkeZsGzhUyD0WcIw5o5zut4=", "requires": { - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.10" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "performance-now": { @@ -6297,9 +6342,9 @@ "js-string-escape": "1.0.1", "packet-reader": "0.3.1", "pg-connection-string": "0.1.3", - "pg-pool": "2.0.3", - "pg-types": "1.12.1", - "pgpass": "1.0.2", + "pg-pool": "~2.0.3", + "pg-types": "~1.12.1", + "pgpass": "1.x", "semver": "4.3.2" } }, @@ -6318,10 +6363,10 @@ "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-1.12.1.tgz", "integrity": "sha1-1kCH45A7WP+q0nnnWVxSIIoUw9I=", "requires": { - "postgres-array": "1.0.2", - "postgres-bytea": "1.0.0", - "postgres-date": "1.0.3", - "postgres-interval": "1.1.1" + "postgres-array": "~1.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.0", + "postgres-interval": "^1.1.0" } }, "pgpass": { @@ -6329,7 +6374,7 @@ "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.2.tgz", "integrity": "sha1-Knu0G2BltnkH6R2hsHwYR8h3swY=", "requires": { - "split": "1.0.1" + "split": "^1.0.0" } }, "pify": { @@ -6349,7 +6394,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -6358,7 +6403,7 @@ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "2.1.0" + "find-up": "^2.1.0" } }, "pkg-up": { @@ -6366,7 +6411,7 @@ "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", "requires": { - "find-up": "2.1.0" + "find-up": "^2.1.0" } }, "posix-character-classes": { @@ -6394,7 +6439,7 @@ "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.1.1.tgz", "integrity": "sha1-rNsPiXtLHG5JbZ1OCoU+HEKPBvA=", "requires": { - "xtend": "4.0.1" + "xtend": "^4.0.0" } }, "prelude-ls": { @@ -6415,8 +6460,8 @@ "integrity": "sha1-rlQH888hBmzQEaobpfzntqLt2zY=", "dev": true, "requires": { - "ansi-regex": "3.0.0", - "ansi-styles": "3.2.1" + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" }, "dependencies": { "ansi-regex": { @@ -6453,11 +6498,11 @@ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "parse-asn1": "5.1.0", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1" } }, "punycode": { @@ -6486,8 +6531,8 @@ "integrity": "sha1-x6vpzIuHwLqodrGf3oP9RkeX44w=", "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": { @@ -6496,7 +6541,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -6506,7 +6551,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha1-0wLFIpSFiISKjTAMkytEwkIx2oA=", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.1.0" } }, "randomfill": { @@ -6514,8 +6559,8 @@ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=", "requires": { - "randombytes": "2.0.6", - "safe-buffer": "5.1.1" + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, "read-pkg": { @@ -6523,9 +6568,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "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": { @@ -6533,8 +6578,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "readable-stream": { @@ -6542,13 +6587,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz", "integrity": "sha1-tPhQA6k4y7bsvOKhJPsQEr0ag40=", "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" + "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": { @@ -6556,10 +6601,10 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.5", - "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" } }, "regenerate": { @@ -6579,9 +6624,9 @@ "integrity": "sha1-HkmWg3Ix2ot/PPQRTXG1aRoGgN0=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regex-cache": { @@ -6590,7 +6635,7 @@ "integrity": "sha1-db3FiioUls7EihKDW8VMjVYjNt0=", "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regex-not": { @@ -6598,8 +6643,8 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpu-core": { @@ -6608,9 +6653,9 @@ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "regjsgen": { @@ -6625,7 +6670,7 @@ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" } }, "remove-trailing-separator": { @@ -6649,7 +6694,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { @@ -6657,28 +6702,28 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.85.0.tgz", "integrity": "sha1-WgNhWkfGFCCz65m326IE+DYD4fo=", "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" + "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" }, "dependencies": { "uuid": { @@ -6693,10 +6738,10 @@ "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.2.tgz", "integrity": "sha1-0epG1lSm7k+O5qT+oQGMIpEZBLQ=", "requires": { - "bluebird": "3.5.1", + "bluebird": "^3.5.0", "request-promise-core": "1.1.1", - "stealthy-require": "1.1.1", - "tough-cookie": "2.3.4" + "stealthy-require": "^1.1.0", + "tough-cookie": ">=2.3.3" } }, "request-promise-core": { @@ -6704,7 +6749,7 @@ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", "requires": { - "lodash": "4.17.5" + "lodash": "^4.13.1" } }, "require-directory": { @@ -6743,7 +6788,7 @@ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -6752,7 +6797,7 @@ "integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=", "dev": true, "requires": { - "glob": "7.1.1" + "glob": "^7.0.5" } }, "ripemd160": { @@ -6760,8 +6805,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", "requires": { - "hash-base": "2.0.2", - "inherits": "2.0.3" + "hash-base": "^2.0.0", + "inherits": "^2.0.1" } }, "safe-buffer": { @@ -6774,7 +6819,7 @@ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "samsam": { @@ -6789,14 +6834,14 @@ "integrity": "sha1-KfmRIIzyhjZyDv3FhCk+f9ZmY6U=", "dev": true, "requires": { - "anymatch": "1.3.2", - "exec-sh": "0.2.1", - "fb-watchman": "2.0.0", - "fsevents": "1.1.3", - "minimatch": "3.0.4", - "minimist": "1.2.0", - "walker": "1.0.7", - "watch": "0.18.0" + "anymatch": "^1.3.0", + "exec-sh": "^0.2.0", + "fb-watchman": "^2.0.0", + "fsevents": "^1.1.1", + "minimatch": "^3.0.2", + "minimist": "^1.1.1", + "walker": "~1.0.5", + "watch": "~0.18.0" }, "dependencies": { "anymatch": { @@ -6805,8 +6850,8 @@ "integrity": "sha1-VT3Lj5HjyImEXf26NMd3IbkLnXo=", "dev": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "arr-diff": { @@ -6815,7 +6860,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "array-unique": { @@ -6830,9 +6875,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" } }, "expand-brackets": { @@ -6841,7 +6886,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "extglob": { @@ -6850,7 +6895,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-extglob": { @@ -6865,7 +6910,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "micromatch": { @@ -6874,19 +6919,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" } }, "minimist": { @@ -6908,69 +6953,75 @@ "integrity": "sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c=" }, "serverless-kms-secrets": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/serverless-kms-secrets/-/serverless-kms-secrets-1.0.2.tgz", - "integrity": "sha1-rJMAMKmB0bEX5smiQu3nWZdRSWY=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/serverless-kms-secrets/-/serverless-kms-secrets-1.0.3.tgz", + "integrity": "sha512-I4CTYCfe5e23KpbWo9p6ddB3BgI5115BnVd16IKfUD0l5AlcEoMyw4TxQdzkqcdQw9LL2V96o0mnisl56CY1rA==", + "dev": true, "requires": { - "aws-sdk": "2.209.0", - "bluebird": "3.5.1", - "chai": "4.1.2", - "fs-extra": "3.0.1", - "mocha": "3.5.3", - "yaml-edit": "0.1.3", - "yamljs": "0.2.10" + "aws-sdk": "^2.72.0", + "bluebird": "^3.5.0", + "chai": "^4.0.2", + "fs-extra": "^3.0.1", + "mocha": "^5.1.1", + "yaml-edit": "^0.1.3", + "yamljs": "^0.2.10" } }, "serverless-webpack": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/serverless-webpack/-/serverless-webpack-3.1.2.tgz", - "integrity": "sha1-8e5hZJQU4UGhZZzc4K1ilKQU1HA=", + "integrity": "sha512-Bqwrf56igwm1uXyuBoKtWAKiNSCoa8Ih2PVw6ErDa1DTLLUGJk+fQkBmxE73uZhtZjKIQbuAKVUwHX+WyJow1Q==", + "dev": true, "requires": { - "archiver": "2.1.1", - "bluebird": "3.5.1", - "fs-extra": "4.0.3", - "glob": "7.1.2", - "is-builtin-module": "1.0.0", - "lodash": "4.17.5", - "semver": "5.5.0", - "ts-node": "3.3.0" + "archiver": "^2.0.0", + "bluebird": "^3.5.0", + "fs-extra": "^4.0.2", + "glob": "^7.1.2", + "is-builtin-module": "^1.0.0", + "lodash": "^4.17.4", + "semver": "^5.4.1", + "ts-node": "^3.2.0" }, "dependencies": { "fs-extra": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha1-DYUhIuW8W+tFP7Ao6cDJvzY0DJQ=", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "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" } }, "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "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" } }, "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" + "graceful-fs": "^4.1.6" } }, "semver": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha1-3Eu8emyp2Rbe5dQ1FvAJK1j3uKs=" + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true } } }, @@ -6989,10 +7040,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=", "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": { @@ -7000,7 +7051,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7015,8 +7066,8 @@ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.10.tgz", "integrity": "sha1-sf3lzX0RpWJmOKB8YEq5Cc+jH5s=", "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shebang-command": { @@ -7024,7 +7075,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -7052,7 +7103,7 @@ "formatio": "1.1.1", "lolex": "1.3.2", "samsam": "1.1.2", - "util": "0.10.3" + "util": ">=0.10.3 <1" } }, "slash": { @@ -7066,14 +7117,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", "requires": { - "base": "0.11.2", - "debug": "2.6.8", - "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": { @@ -7081,7 +7132,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -7089,7 +7140,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -7097,7 +7148,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7105,7 +7156,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7115,7 +7166,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7123,7 +7174,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7133,9 +7184,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", "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": { @@ -7150,9 +7201,9 @@ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", "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": { @@ -7160,7 +7211,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } } } @@ -7170,7 +7221,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "sntp": { @@ -7178,7 +7229,7 @@ "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", "integrity": "sha1-LGzsFP7cIiJznK+bXD2F0cxaLMg=", "requires": { - "hoek": "4.2.1" + "hoek": "4.x.x" }, "dependencies": { "hoek": { @@ -7203,19 +7254,20 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", "integrity": "sha1-etD1k/IoFZjoVN+A8ZquS5LXoRo=", "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" + "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": { "version": "0.4.18", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=", + "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "source-map-url": { @@ -7228,8 +7280,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "integrity": "sha1-BaW01xU6GVvJLDxCW2nzsqlSTII=", "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": { @@ -7242,8 +7294,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", "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": { @@ -7256,7 +7308,7 @@ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", "integrity": "sha1-YFvZvjA6pZ+zX5Ip++oN3snqB9k=", "requires": { - "through": "2.3.8" + "through": "2" } }, "split-string": { @@ -7264,27 +7316,28 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", "requires": { - "extend-shallow": "3.0.2" + "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=" + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true }, "sshpk": { "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", - "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" } }, "static-extend": { @@ -7292,8 +7345,8 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -7301,7 +7354,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "is-accessor-descriptor": { @@ -7309,7 +7362,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7317,7 +7370,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7327,7 +7380,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7335,7 +7388,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7345,9 +7398,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", "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": { @@ -7367,8 +7420,8 @@ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.5" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, "stream-http": { @@ -7376,11 +7429,11 @@ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz", "integrity": "sha1-/YZUbaybHJGv+PxdKHuY+vtBvBA=", "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.5", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.3", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" } }, "string-length": { @@ -7389,8 +7442,8 @@ "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", "dev": true, "requires": { - "astral-regex": "1.0.0", - "strip-ansi": "4.0.0" + "astral-regex": "^1.0.0", + "strip-ansi": "^4.0.0" }, "dependencies": { "ansi-regex": { @@ -7405,7 +7458,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -7415,8 +7468,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", "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": { @@ -7434,7 +7487,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -7444,7 +7497,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "stringstream": { @@ -7457,7 +7510,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -7481,14 +7534,16 @@ "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=" + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true }, "supports-color": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", + "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } }, "symbol-tree": { @@ -7503,14 +7558,18 @@ "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=" }, "tar-stream": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz", - "integrity": "sha1-XK2Ed59FyDsfJQjZawnYjHIYr1U=", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.1.tgz", + "integrity": "sha512-IFLM5wp3QrJODQFPm6/to3LJZrONdBY/otxcvDIQzu217zKye6yVR3hhi9lAjrC2Z+m/j5oDxMPb1qcd8cIvpA==", + "dev": true, "requires": { - "bl": "1.2.1", - "end-of-stream": "1.4.1", - "readable-stream": "2.3.5", - "xtend": "4.0.1" + "bl": "^1.0.0", + "buffer-alloc": "^1.1.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.0", + "xtend": "^4.0.0" } }, "test-exclude": { @@ -7519,11 +7578,11 @@ "integrity": "sha1-36Ii8DSAvKaSB8pyizfXS0X3JPo=", "dev": true, "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.9", - "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": { "find-up": { @@ -7532,8 +7591,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": { @@ -7542,11 +7601,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" } }, "path-exists": { @@ -7555,7 +7614,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-type": { @@ -7564,9 +7623,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" } }, "read-pkg": { @@ -7575,9 +7634,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": { @@ -7586,8 +7645,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": { @@ -7596,7 +7655,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } } } @@ -7617,7 +7676,7 @@ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.6.tgz", "integrity": "sha1-JB52kn2coF9NlZgZAi9bNmS2S64=", "requires": { - "setimmediate": "1.0.5" + "setimmediate": "^1.0.4" } }, "tmpl": { @@ -7631,6 +7690,12 @@ "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" }, + "to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", + "dev": true + }, "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", @@ -7642,7 +7707,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -7650,10 +7715,10 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", "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": { @@ -7661,8 +7726,8 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, "topo": { @@ -7670,7 +7735,7 @@ "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "tough-cookie": { @@ -7678,7 +7743,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha1-7GDO44rGdQY//JelwYlwV47oNlU=", "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" } }, "tr46": { @@ -7703,23 +7768,25 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-3.3.0.tgz", "integrity": "sha1-wTxqMCTjC+EYDdUwOPwgkonUv2k=", + "dev": true, "requires": { - "arrify": "1.0.1", - "chalk": "2.3.2", - "diff": "3.2.0", - "make-error": "1.3.4", - "minimist": "1.2.0", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18", - "tsconfig": "6.0.0", - "v8flags": "3.0.2", - "yn": "2.0.0" + "arrify": "^1.0.0", + "chalk": "^2.0.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.0", + "tsconfig": "^6.0.0", + "v8flags": "^3.0.0", + "yn": "^2.0.0" }, "dependencies": { "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true } } }, @@ -7727,9 +7794,10 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-6.0.0.tgz", "integrity": "sha1-aw6DdgA9evGGT434+J3QBZ/80DI=", + "dev": true, "requires": { - "strip-bom": "3.0.0", - "strip-json-comments": "2.0.1" + "strip-bom": "^3.0.0", + "strip-json-comments": "^2.0.0" } }, "tty-browserify": { @@ -7742,7 +7810,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.0.1" } }, "tweetnacl": { @@ -7757,22 +7825,23 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "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": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=" + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true }, "uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "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": { @@ -7780,9 +7849,9 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "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" } } @@ -7799,9 +7868,9 @@ "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", "requires": { - "source-map": "0.5.7", - "uglify-js": "2.8.29", - "webpack-sources": "1.1.0" + "source-map": "^0.5.6", + "uglify-js": "^2.8.29", + "webpack-sources": "^1.0.1" } }, "union-value": { @@ -7809,10 +7878,10 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "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": { @@ -7820,7 +7889,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -7828,10 +7897,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "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" } } } @@ -7839,15 +7908,16 @@ "universalify": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", - "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=" + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "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=", "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -7855,9 +7925,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "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": { @@ -7887,13 +7957,13 @@ "resolved": "https://registry.npmjs.org/uport/-/uport-0.7.0-alpha-2.tgz", "integrity": "sha512-8MOZvJAFxR23Yy//0nxPxxP7zyUN++rqdbujpaOE3skm9wBDLqVIe0kKoVnTtDHNpi83XZOCMzXcNt3ncpRGGw==", "requires": { - "did-jwt": "0.0.7", - "did-resolver": "0.0.4", - "ethjs-util": "0.1.3", - "ethr-did-resolver": "0.0.7", - "mnid": "0.1.1", - "uport-did-resolver": "0.0.2", - "uport-lite": "1.0.2" + "did-jwt": "^0.0.7", + "did-resolver": "^0.0.4", + "ethjs-util": "^0.1.3", + "ethr-did-resolver": "^0.0.7", + "mnid": "^0.1.1", + "uport-did-resolver": "^0.0.2", + "uport-lite": "^1.0.2" }, "dependencies": { "did-jwt": { @@ -7901,15 +7971,15 @@ "resolved": "https://registry.npmjs.org/did-jwt/-/did-jwt-0.0.7.tgz", "integrity": "sha512-5PR39zJoBd+eK0SuS2cKd9J2ctdBtg2Jfqu9wZ3nOvPDNIfFpwZyBZe8mtJruEc2kZNrJCIAuN1iFLs2fctG0A==", "requires": { - "babel-runtime": "6.26.0", - "base64url": "2.0.0", - "did-resolver": "0.0.4", - "elliptic": "6.4.0", - "js-sha256": "0.9.0", - "js-sha3": "0.7.0", - "mnid": "0.1.1", - "uport-did-resolver": "0.0.2", - "uport-lite": "1.0.2" + "babel-runtime": "^6.26.0", + "base64url": "^2.0.0", + "did-resolver": "^0.0.4", + "elliptic": "^6.4.0", + "js-sha256": "^0.9.0", + "js-sha3": "^0.7.0", + "mnid": "^0.1.1", + "uport-did-resolver": "^0.0.2", + "uport-lite": "^1.0.2" } }, "ethr-did-resolver": { @@ -7917,14 +7987,14 @@ "resolved": "https://registry.npmjs.org/ethr-did-resolver/-/ethr-did-resolver-0.0.7.tgz", "integrity": "sha512-qOYDriFxniAmlXXszZSJEb5AqVqc18NXWoMvFRsSp1FvbLFB14d6FuGKNDqS112zHgGfgbSi4uLbNX5pBSn2+A==", "requires": { - "babel-plugin-module-resolver": "3.1.1", - "babel-runtime": "6.26.0", - "did-resolver": "0.0.4", - "ethjs-abi": "0.2.1", - "ethjs-contract": "0.1.9", - "ethjs-provider-http": "0.1.6", - "ethjs-query": "0.3.6", - "ethr-did-registry": "0.0.2" + "babel-plugin-module-resolver": "^3.1.1", + "babel-runtime": "^6.26.0", + "did-resolver": "^0.0.4", + "ethjs-abi": "^0.2.1", + "ethjs-contract": "^0.1.9", + "ethjs-provider-http": "^0.1.6", + "ethjs-query": "^0.3.5", + "ethr-did-registry": "^0.0.2" } }, "js-sha3": { @@ -7939,9 +8009,9 @@ "resolved": "https://registry.npmjs.org/uport-did-resolver/-/uport-did-resolver-0.0.2.tgz", "integrity": "sha512-QiW0340J6/JMQqbtArRqfZBNRQv9sRIaMcHfJigzcQy2G9EFUhhJAHtIe0nrQt4XQ4VGkZ0iwk1CE/P7+jr4FA==", "requires": { - "babel-runtime": "6.26.0", - "did-resolver": "0.0.4", - "uport-lite": "1.0.2" + "babel-runtime": "^6.26.0", + "did-resolver": "^0.0.4", + "uport-lite": "^1.0.2" } }, "uport-lite": { @@ -7949,8 +8019,8 @@ "resolved": "https://registry.npmjs.org/uport-lite/-/uport-lite-1.0.2.tgz", "integrity": "sha1-86ltjfUtVJbixsjsfP03e0MVE9Q=", "requires": { - "base-x": "3.0.4", - "xmlhttprequest": "1.8.0" + "base-x": "^3.0.0", + "xmlhttprequest": "^1.8.0" } }, "urix": { @@ -7979,7 +8049,7 @@ "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", "integrity": "sha1-FHFr8D/f79AwQK71jYtLhfOnxUQ=", "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { @@ -8015,11 +8085,12 @@ "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=" }, "v8flags": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.0.2.tgz", - "integrity": "sha1-rWp4ogprI9A6jevBEhHjzCMUlHc=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.1.tgz", + "integrity": "sha512-iw/1ViSEaff8NJ3HLyEjawk/8hjJib3E7pvG4pddVXfUg1983s3VGsiClDjhK64MQVDGqc1Q8r18S4VKQZS9EQ==", + "dev": true, "requires": { - "homedir-polyfill": "1.0.1" + "homedir-polyfill": "^1.0.1" } }, "validate-npm-package-license": { @@ -8027,8 +8098,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", "integrity": "sha1-gWQ7y+8b3+zUYjeT3EZIlIupgzg=", "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "validator": { @@ -8041,9 +8112,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" } }, "vm-browserify": { @@ -8060,7 +8131,7 @@ "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", "dev": true, "requires": { - "makeerror": "1.0.11" + "makeerror": "1.0.x" } }, "watch": { @@ -8069,8 +8140,8 @@ "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", "dev": true, "requires": { - "exec-sh": "0.2.1", - "minimist": "1.2.0" + "exec-sh": "^0.2.0", + "minimist": "^1.2.0" }, "dependencies": { "minimist": { @@ -8086,9 +8157,9 @@ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.5.0.tgz", "integrity": "sha1-Ix54Ovgwoi+JZvZcTEusyBQHLu0=", "requires": { - "chokidar": "2.0.2", - "graceful-fs": "4.1.11", - "neo-async": "2.5.0" + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" } }, "webidl-conversions": { @@ -8102,28 +8173,28 @@ "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.11.0.tgz", "integrity": "sha1-d9pFGx17SxF62vQaGpO1dC8k2JQ=", "requires": { - "acorn": "5.5.3", - "acorn-dynamic-import": "2.0.2", - "ajv": "6.2.1", - "ajv-keywords": "3.1.0", - "async": "2.6.0", - "enhanced-resolve": "3.4.1", - "escope": "3.6.0", - "interpret": "1.1.0", - "json-loader": "0.5.7", - "json5": "0.5.1", - "loader-runner": "2.3.0", - "loader-utils": "1.1.0", - "memory-fs": "0.4.1", - "mkdirp": "0.5.1", - "node-libs-browser": "2.1.0", - "source-map": "0.5.7", - "supports-color": "4.5.0", - "tapable": "0.2.8", - "uglifyjs-webpack-plugin": "0.4.6", - "watchpack": "1.5.0", - "webpack-sources": "1.1.0", - "yargs": "8.0.2" + "acorn": "^5.0.0", + "acorn-dynamic-import": "^2.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "async": "^2.1.2", + "enhanced-resolve": "^3.4.0", + "escope": "^3.6.0", + "interpret": "^1.0.0", + "json-loader": "^0.5.4", + "json5": "^0.5.1", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "mkdirp": "~0.5.0", + "node-libs-browser": "^2.0.0", + "source-map": "^0.5.3", + "supports-color": "^4.2.1", + "tapable": "^0.2.7", + "uglifyjs-webpack-plugin": "^0.4.6", + "watchpack": "^1.4.0", + "webpack-sources": "^1.0.1", + "yargs": "^8.0.2" }, "dependencies": { "ajv": { @@ -8131,9 +8202,9 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.2.1.tgz", "integrity": "sha1-KKarxJOiq+D7TIUHrK7bQ/pVBnE=", "requires": { - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "has-flag": { @@ -8146,7 +8217,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -8161,8 +8232,8 @@ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", "integrity": "sha1-oQHrrlnWUHNU1x2AE5UKOot6WlQ=", "requires": { - "source-list-map": "2.0.0", - "source-map": "0.6.1" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { @@ -8187,8 +8258,8 @@ "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", "dev": true, "requires": { - "tr46": "0.0.3", - "webidl-conversions": "3.0.1" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" }, "dependencies": { "webidl-conversions": { @@ -8204,7 +8275,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", "integrity": "sha1-/wS9/AEO5UfXgL7DjhrBwnd9JTo=", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -8228,7 +8299,7 @@ "integrity": "sha1-rsxAWXb6talVJhgIRvDboojzpKA=", "dev": true, "requires": { - "errno": "0.1.7" + "errno": "~0.1.7" } }, "wrap-ansi": { @@ -8236,8 +8307,8 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "string-width": { @@ -8245,9 +8316,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "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" } } } @@ -8263,9 +8334,9 @@ "integrity": "sha1-H/YVdcLipOjlENb6TiQ8zhg5mas=", "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" } }, "xhr2": { @@ -8284,8 +8355,8 @@ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=", "requires": { - "sax": "1.2.1", - "xmlbuilder": "4.2.1" + "sax": ">=0.6.0", + "xmlbuilder": "^4.1.0" } }, "xmlbuilder": { @@ -8293,7 +8364,7 @@ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=", "requires": { - "lodash": "4.17.5" + "lodash": "^4.0.0" } }, "xmlhttprequest": { @@ -8319,15 +8390,17 @@ "yaml-edit": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/yaml-edit/-/yaml-edit-0.1.3.tgz", - "integrity": "sha1-103V8F78QquRhSbAlPAJhiHOLXM=" + "integrity": "sha1-103V8F78QquRhSbAlPAJhiHOLXM=", + "dev": true }, "yamljs": { "version": "0.2.10", "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.2.10.tgz", "integrity": "sha1-SBzHwlynOvWfWR8MluPOVsdXpA8=", + "dev": true, "requires": { - "argparse": "1.0.10", - "glob": "7.1.1" + "argparse": "^1.0.7", + "glob": "^7.0.5" } }, "yargs": { @@ -8335,19 +8408,19 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.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": "7.0.0" + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^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": "^7.0.0" }, "dependencies": { "camelcase": { @@ -8360,9 +8433,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "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": { @@ -8370,9 +8443,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "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" } } } @@ -8384,7 +8457,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { @@ -8397,17 +8470,19 @@ "yn": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", - "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=" + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", + "dev": true }, "zip-stream": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz", "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=", + "dev": true, "requires": { - "archiver-utils": "1.3.0", - "compress-commons": "1.2.2", - "lodash": "4.17.5", - "readable-stream": "2.3.5" + "archiver-utils": "^1.3.0", + "compress-commons": "^1.2.0", + "lodash": "^4.8.0", + "readable-stream": "^2.0.0" } } } diff --git a/package.json b/package.json index 3dba4e0..b0bba20 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "lambda-nisaba", + "name": "lambda-nisaba-si", "version": "1.2.0", - "description": "uPort anti-sybil & fuel token generator service", + "description": "fuel token generator service", "main": "index.js", "scripts": { "test": "jest --verbose --runInBand", @@ -10,7 +10,7 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/uport-project/lambda-nisaba.git" + "url": "git+https://github.com/consensys/lambda-nisaba.git" }, "contributors": [ { @@ -28,15 +28,17 @@ ], "license": "MIT", "bugs": { - "url": "https://github.com/uport-project/lambda-nisaba/issues" + "url": "https://github.com/consensys/lambda-nisaba/issues" }, - "homepage": "https://github.com/uport-project/lambda-nisaba#readme", + "homepage": "https://github.com/consensys/lambda-nisaba#readme", "devDependencies": { "aws-sdk-mock": "^1.7.0", "babel-loader": "^7.1.2", "babel-preset-env": "^1.6.0", - "did-jwt": "^0.0.8", - "jest": "^21.2.0" + "did-jwt": "0.0.8", + "jest": "^21.2.0", + "serverless-kms-secrets": "^1.0.3", + "serverless-webpack": "^3.1.2" }, "dependencies": { "ethr-did-resolver": "^0.0.8", @@ -45,8 +47,6 @@ "pg": "^7.4.0", "request": "^2.83.0", "request-promise": "^4.2.2", - "serverless-kms-secrets": "^1.0.2", - "serverless-webpack": "^3.1.0", "uport": "^0.7.0-alpha-2", "uport-did-resolver": "^0.0.2", "webpack": "^3.6.0", diff --git a/sample_events/funcaptcha.event.json b/sample_events/funcaptcha.event.json deleted file mode 100644 index 95c28be..0000000 --- a/sample_events/funcaptcha.event.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "headers": { - "content-type": "application/json" - }, - "body": "{\"deviceKey\":\"0x1234\",\"funCaptchaToken\":\"https://funcaptcha.com/fc/v/?private_key=DF2EA6DC-FDEE-24D9-FA95-3CF9F717DA76&session_token=8205a12d9c3418ea8.83310539%7Cr=us-east-1%7Cmetabgclr=%23edf0f5%7Cguitextcolor=%23000000%7Cmetaiconclr=%23aebad3%7Cmeta=3%7Cpk=87A905BC-830E-6F0F-0202-B64D14CA6675%7Ccdn_url=https://cdn.funcaptcha.com/fc%7Csurl=https://funcaptcha.com\"}" -} \ No newline at end of file diff --git a/serverless.yml b/serverless.yml index 2dd044f..8524b52 100644 --- a/serverless.yml +++ b/serverless.yml @@ -1,10 +1,10 @@ -service: lambda-nisaba +service: lambda-nisaba-csi provider: name: aws - runtime: nodejs6.10 + runtime: nodejs8.10 stage: develop - region: us-west-2 + region: us-east-1 iamRoleStatements: - Effect: Allow Action: @@ -37,16 +37,6 @@ functions: - http: path: recaptcha method: post - funcaptcha: - handler: src/api_handler.funcaptcha - description: Validate Funcaptcha Code - events: - - http: - path: v3/funcaptcha #Legacy - method: post - - http: - path: funcaptcha - method: post newDeviceKey: handler: src/api_handler.newDeviceKey description: Get a new fuel token by sending a signed requestToken @@ -85,6 +75,3 @@ functions: - http: path: check method: post - - - diff --git a/src/__tests__/api_handler.test.js b/src/__tests__/api_handler.test.js index ab0ed3b..d60c35f 100644 --- a/src/__tests__/api_handler.test.js +++ b/src/__tests__/api_handler.test.js @@ -65,22 +65,4 @@ describe("apiHandler", () => { done(); }); }); - - test("funcaptcha()", done => { - apiHandler.funcaptcha({}, {}, (err, res) => { - expect(err).toBeNull(); - expect(res).not.toBeNull(); - - done(); - }); - }); - - test("recaptcha()", done => { - apiHandler.recaptcha({}, {}, (err, res) => { - expect(err).toBeNull(); - expect(res).not.toBeNull(); - - done(); - }); - }); }); diff --git a/src/api_handler.js b/src/api_handler.js index b1f1e5d..4d01b80 100644 --- a/src/api_handler.js +++ b/src/api_handler.js @@ -3,35 +3,28 @@ const AWS = require("aws-sdk"); const querystring = require("querystring"); require('ethr-did-resolver')() require('uport-did-resolver')() -const RecaptchaMgr = require("./lib/recaptchaMgr"); -const FuncaptchaMgr = require("./lib/funcaptchaMgr"); const AuthMgr = require("./lib/authMgr"); const FuelTokenMgr = require("./lib/fuelTokenMgr"); -const UPortMgr = require("./lib/uPortMgr"); +const RequestTokenMgr = require("./lib/requestTokenMgr"); const AttestationMgr = require("./lib/attestationMgr"); const PhoneVerificationMgr = require("./lib/phoneVerificationMgr"); -const RecaptchaHandler = require("./handlers/recaptcha"); -const FuncaptchaHandler = require("./handlers/funcaptcha"); const NewDeviceKeyHandler = require("./handlers/newDeviceKey"); const PhoneAttestationHandler = require("./handlers/phone_attestation"); const StartVerificationHandler = require("./handlers/start_verification"); const ContinueVerificationHandler = require("./handlers/continue_verification"); const CheckVerificationHandler = require("./handlers/check_verification"); -let recaptchaMgr = new RecaptchaMgr(); -let funcaptchaMgr = new FuncaptchaMgr(); -let authMgr = new AuthMgr(); -let fuelTokenMgr = new FuelTokenMgr(); -let uPortMgr = new UPortMgr(); -let attestationMgr = new AttestationMgr(); -let phoneVerificationMgr = new PhoneVerificationMgr(); +//instantiate manager services needed for methods +let authMgr = new AuthMgr(); //verifies authorization request to nisaba service +let fuelTokenMgr = new FuelTokenMgr(); //develops new JWT tokens for new users +let requestTokenMgr = new RequestTokenMgr(); // Generate and verify request token +let attestationMgr = new AttestationMgr(); // Create attestation for the subscriber +let phoneVerificationMgr = new PhoneVerificationMgr(); //Verify phone number code sent via text -let recaptchaHandler = new RecaptchaHandler(recaptchaMgr, fuelTokenMgr); -let funcaptchaHandler = new FuncaptchaHandler(funcaptchaMgr, fuelTokenMgr); let newDeviceKeyHandler = new NewDeviceKeyHandler( authMgr, - uPortMgr, + requestTokenMgr, fuelTokenMgr ); let phoneAttestationHandler = new PhoneAttestationHandler( @@ -45,35 +38,37 @@ let continueVerificationHandler = new ContinueVerificationHandler( phoneVerificationMgr ); let checkVerificationHandler = new CheckVerificationHandler( - phoneVerificationMgr + phoneVerificationMgr, + fuelTokenMgr ); -module.exports.recaptcha = (event, context, callback) => { - postHandler(recaptchaHandler, event, context, callback); -}; -module.exports.funcaptcha = (event, context, callback) => { - postHandler(funcaptchaHandler, event, context, callback); -}; +//Get a new fuel token by sending a signed requestToken module.exports.newDeviceKey = (event, context, callback) => { postHandler(newDeviceKeyHandler, event, context, callback); }; + +//Get a an attestation for the verified phone on the fuelToken module.exports.phone_attestation = (event, context, callback) => { postHandler(phoneAttestationHandler, event, context, callback); }; + +//Verify a phone number using Nexmo verification module.exports.start_verification = (event, context, callback) => { postHandler(startVerificationHandler, event, context, callback); }; + +//continues verification started in start_verification module.exports.continue_verification = (event, context, callback) => { postHandler(continueVerificationHandler, event, context, callback); }; + +//Verify device key and provided code & provides request token module.exports.check_verification = (event, context, callback) => { postHandler(checkVerificationHandler, event, context, callback); }; const postHandler = (handler, event, context, callback) => { if ( - !recaptchaMgr.isSecretsSet() || - !funcaptchaMgr.isSecretsSet() || !authMgr.isSecretsSet() || !fuelTokenMgr.isSecretsSet() || !phoneVerificationMgr.isSecretsSet() @@ -86,11 +81,10 @@ const postHandler = (handler, event, context, callback) => { .promise() .then(data => { const decrypted = String(data.Plaintext); - recaptchaMgr.setSecrets(JSON.parse(decrypted)); - funcaptchaMgr.setSecrets(JSON.parse(decrypted)); authMgr.setSecrets(JSON.parse(decrypted)); fuelTokenMgr.setSecrets(JSON.parse(decrypted)); phoneVerificationMgr.setSecrets(JSON.parse(decrypted)); + requestTokenMgr.setSecrets(JSON.parse(decrypted)); doHandler(handler, event, context, callback); }); } else { @@ -110,7 +104,7 @@ const doHandler = (handler, event, context, callback) => { }) }; } else { - //console.log(err); + console.log(err); let code = 500; if (err.code) code = err.code; let message = err; diff --git a/src/handlers/__tests__/check_verification.test.js b/src/handlers/__tests__/check_verification.test.js index 722a1df..af0761e 100644 --- a/src/handlers/__tests__/check_verification.test.js +++ b/src/handlers/__tests__/check_verification.test.js @@ -7,9 +7,12 @@ describe("CheckVerificationHandler", () => { return Promise.resolve({ data: "data" }, null); }) }; + let fuelTokenMgrMock = { + newToken: jest.fn() + }; beforeAll(() => { - sut = new CheckVerificationHandler(phoneVerificationMgrMock); + sut = new CheckVerificationHandler(phoneVerificationMgrMock, fuelTokenMgrMock); }); test("empty constructor", () => { diff --git a/src/handlers/__tests__/funcaptcha.test.js b/src/handlers/__tests__/funcaptcha.test.js deleted file mode 100644 index 7398209..0000000 --- a/src/handlers/__tests__/funcaptcha.test.js +++ /dev/null @@ -1,137 +0,0 @@ -const FuncaptchaHandler = require("../funcaptcha"); - -describe("FuncaptchaHandler", () => { - let sut; - let deviceKey = "0x123456"; - let funCaptchaToken = "12345679"; - let funcaptchaMgrMock = { - verifyToken: jest.fn() - }; - let fuelTokenMgrMock = { - newToken: jest.fn() - }; - - beforeAll(() => { - sut = new FuncaptchaHandler(funcaptchaMgrMock, fuelTokenMgrMock); - }); - - test("empty constructor", () => { - expect(sut).not.toBeUndefined(); - }); - - test("handle null body", done => { - sut.handle(undefined, null, (err, res) => { - expect(err).not.toBeNull(); - expect(err.code).toEqual(400); - expect(err.message).toEqual("no json body"); - done(); - }); - }); - - test("handle empty deviceKey", done => { - sut.handle( - { - funCaptchaToken: funCaptchaToken - }, - {}, - (err, res) => { - expect(err).not.toBeNull(); - expect(err.code).toEqual(400); - expect(err.message).toEqual("no deviceKey"); - done(); - } - ); - }); - - test("handle empty funCaptchaToken", done => { - sut.handle( - { - deviceKey: deviceKey - }, - {}, - (err, res) => { - expect(err).not.toBeNull(); - expect(err.code).toEqual(400); - expect(err.message).toEqual("no funCaptchaToken"); - done(); - } - ); - }); - - test("call funcaptchaMgr.verifyToken()", done => { - sut.handle( - { - deviceKey: deviceKey, - funCaptchaToken: funCaptchaToken - }, - {}, - (err, res) => { - expect(funcaptchaMgrMock.verifyToken).toBeCalled(); - expect(funcaptchaMgrMock.verifyToken).toBeCalledWith(funCaptchaToken); - done(); - } - ); - }); - - test("call fuelTokenMgr.newToken()", done => { - funcaptchaMgrMock.verifyToken.mockImplementation(() => { - return { - solved: true - }; - }); - sut.handle( - { - deviceKey: deviceKey, - funCaptchaToken: funCaptchaToken - }, - {}, - (err, res) => { - expect(fuelTokenMgrMock.newToken).toBeCalled(); - expect(fuelTokenMgrMock.newToken).toBeCalledWith(deviceKey); - done(); - } - ); - }); - - test("catch exception", done => { - funcaptchaMgrMock.verifyToken.mockImplementation(() => { - throw "throwed error"; - }); - sut.handle( - { - deviceKey: deviceKey, - funCaptchaToken: funCaptchaToken - }, - {}, - (err, res) => { - expect(funcaptchaMgrMock.verifyToken).toBeCalled(); - expect(err).not.toBeNull(); - expect(err).toEqual("throwed error"); - done(); - } - ); - }); - - test("catch exception (with message)", done => { - funcaptchaMgrMock.verifyToken.mockImplementation(() => { - throw { - message: "throwed error" - }; - }); - sut.handle( - { - deviceKey: deviceKey, - funCaptchaToken: funCaptchaToken - }, - {}, - (err, res) => { - expect(funcaptchaMgrMock.verifyToken).toBeCalled(); - expect(err).not.toBeNull(); - expect(err).toEqual({ - message: "throwed error" - }); - done(); - } - ); - }); -}); diff --git a/src/handlers/__tests__/newDeviceKey.test.js b/src/handlers/__tests__/newDeviceKey.test.js index ecc06f2..b9c2af2 100644 --- a/src/handlers/__tests__/newDeviceKey.test.js +++ b/src/handlers/__tests__/newDeviceKey.test.js @@ -3,11 +3,11 @@ const NewDeviceKeyHandler = require("../newDeviceKey"); describe("NewDeviceKeyHandler", () => { let sut; let authMgr = { verifyNisaba: jest.fn() }; - let uPortMgr = { verifyToken: jest.fn() }; - let fuelTokenMgr = { newToken: jest.fn() }; + let requestTokenMgr = { verifyToken: jest.fn() }; + let fuelTokenMgr = { newToken: jest.fn(), verifyToken: jest.fn() }; beforeAll(() => { - sut = new NewDeviceKeyHandler(authMgr, uPortMgr, fuelTokenMgr); + sut = new NewDeviceKeyHandler(authMgr, requestTokenMgr, fuelTokenMgr); }); test("empty constructor", () => { @@ -47,13 +47,13 @@ describe("NewDeviceKeyHandler", () => { }); }); - test("handle failed uPortMgr.verifyToken", done => { - uPortMgr.verifyToken.mockImplementation(() => { + test("handle failed requestTokenMgr.verifyToken", done => { + requestTokenMgr.verifyToken.mockImplementation(() => { throw { message: "failed" }; }); sut.handle({ requestToken: "request.token.fake" }, {}, (err, res) => { - expect(uPortMgr.verifyToken).toBeCalled(); - expect(uPortMgr.verifyToken).toBeCalledWith("request.token.fake"); + expect(requestTokenMgr.verifyToken).toBeCalled(); + expect(requestTokenMgr.verifyToken).toBeCalledWith("request.token.fake"); expect(err.code).toEqual(500); expect(err.message).toEqual("failed"); done(); diff --git a/src/handlers/__tests__/recaptcha.test.js b/src/handlers/__tests__/recaptcha.test.js deleted file mode 100644 index 1b482e4..0000000 --- a/src/handlers/__tests__/recaptcha.test.js +++ /dev/null @@ -1,103 +0,0 @@ -const RecaptchaHandler = require("../recaptcha"); - -describe("RecaptchaHandler", () => { - let sut; - let deviceKey = "0x123456"; - let reCaptchaToken = "12345679"; - let recaptchaMgrMock = { verifyToken: jest.fn() }; - let fuelTokenMgrMock = { newToken: jest.fn() }; - - beforeAll(() => { - sut = new RecaptchaHandler(recaptchaMgrMock, fuelTokenMgrMock); - }); - - test("empty constructor", () => { - expect(sut).not.toBeUndefined(); - }); - - test("handle null body", done => { - sut.handle(null, {}, (err, res) => { - expect(err).not.toBeNull(); - expect(err.code).toEqual(400); - expect(err.message).toEqual("no json body"); - done(); - }); - }); - - test("handle empty deviceKey", done => { - sut.handle({ reCaptchaToken: reCaptchaToken }, {}, (err, res) => { - expect(err).not.toBeNull(); - expect(err.code).toEqual(400); - expect(err.message).toEqual("no deviceKey"); - done(); - }); - }); - - test("handle empty reCaptchaToken", done => { - sut.handle({ deviceKey: deviceKey }, {}, (err, res) => { - expect(err).not.toBeNull(); - expect(err.code).toEqual(400); - expect(err.message).toEqual("no reCaptchaToken"); - done(); - }); - }); - - test("call recaptchaMgr.verifyToken()", done => { - sut.handle( - { deviceKey: deviceKey, reCaptchaToken: reCaptchaToken }, - {}, - (err, res) => { - expect(recaptchaMgrMock.verifyToken).toBeCalled(); - expect(recaptchaMgrMock.verifyToken).toBeCalledWith(reCaptchaToken); - done(); - } - ); - }); - - test("call fuelTokenMgr.newToken()", done => { - recaptchaMgrMock.verifyToken.mockImplementation(() => { - return { success: true }; - }); - sut.handle( - { deviceKey: deviceKey, reCaptchaToken: reCaptchaToken }, - {}, - (err, res) => { - expect(fuelTokenMgrMock.newToken).toBeCalled(); - expect(fuelTokenMgrMock.newToken).toBeCalledWith(deviceKey); - done(); - } - ); - }); - - test("catch exception", done => { - recaptchaMgrMock.verifyToken.mockImplementation(() => { - throw "throwed error"; - }); - sut.handle( - { deviceKey: deviceKey, reCaptchaToken: reCaptchaToken }, - {}, - (err, res) => { - expect(recaptchaMgrMock.verifyToken).toBeCalled(); - expect(err).not.toBeNull(); - expect(err).toEqual("throwed error"); - done(); - } - ); - }); - - test("catch exception (with message)", done => { - recaptchaMgrMock.verifyToken.mockImplementation(() => { - throw { message: "throwed error" }; - }); - sut.handle( - { deviceKey: deviceKey, reCaptchaToken: reCaptchaToken }, - {}, - (err, res) => { - expect(recaptchaMgrMock.verifyToken).toBeCalled(); - expect(err).not.toBeNull(); - expect(err).toEqual({ message: "throwed error" }); - done(); - } - ); - }); -}); diff --git a/src/handlers/check_verification.js b/src/handlers/check_verification.js index 1e0ba2e..8fab7e4 100644 --- a/src/handlers/check_verification.js +++ b/src/handlers/check_verification.js @@ -1,6 +1,23 @@ +/* +file - check_verification.js + +Function: +1. Verify device key +2. Provide request token + +inputs +- phoneVerificationMgr: Verify phone number code sent via text + +resources +- N/A + +resource description +- N/A +*/ class CheckVerificationHandler { - constructor(phoneVerificationMgr) { + constructor(phoneVerificationMgr, fuelTokenMgr) { this.phoneVerificationMgr = phoneVerificationMgr; + this.fuelTokenMgr = fuelTokenMgr; } debug(l) { @@ -43,14 +60,17 @@ class CheckVerificationHandler { try { //Verify & request token - this.phoneVerificationMgr.check(deviceKey, code).then((resp, err) => { + this.phoneVerificationMgr.check(deviceKey, code).then(async (resp, err) => { if (err) { throw { code: 500, message: err.message }; } - cb(null, { data: resp.data }); + + //Get fuel token + let fuelToken = await this.fuelTokenMgr.newToken(deviceKey); + cb(null, fuelToken); }); } catch (err) { cb({ diff --git a/src/handlers/continue_verification.js b/src/handlers/continue_verification.js index b28149e..be55a8d 100644 --- a/src/handlers/continue_verification.js +++ b/src/handlers/continue_verification.js @@ -1,3 +1,18 @@ +/* +file - continue_verification.js + +Function: +1. continues verification started in start_verification + +inputs +- phoneVerificationMgr: Verify phone number code sent via text + +resources +- N/A + +resource description +- N/A +*/ class ContinueVerificationHandler { constructor(phoneVerificationMgr) { this.phoneVerificationMgr = phoneVerificationMgr; diff --git a/src/handlers/funcaptcha.js b/src/handlers/funcaptcha.js deleted file mode 100644 index efc2f92..0000000 --- a/src/handlers/funcaptcha.js +++ /dev/null @@ -1,77 +0,0 @@ -class FuncaptchaHandler { - constructor(funCaptchaMgr, fuelTokenMgr) { - this.funCaptchaMgr = funCaptchaMgr; - this.fuelTokenMgr = fuelTokenMgr; - } - - async handle(event, context, cb) { - let body; - - if (event && !event.body) { - body = event; - } else if (event && event.body) { - try { - body = JSON.parse(event.body); - } catch (e) { - cb({ - code: 400, - message: "no json body" - }); - return; - } - } else { - cb({ - code: 400, - message: "no json body" - }); - return; - } - - //Check empty deviceKey - if (!body.deviceKey) { - cb({ - code: 400, - message: "no deviceKey" - }); - return; - } - //Check empty funCaptchaToken - if (!body.funCaptchaToken) { - cb({ - code: 400, - message: "no funCaptchaToken" - }); - return; - } - - try { - //Verify funCaptchaToken - let verificationResp = await this.funCaptchaMgr.verifyToken( - body.funCaptchaToken - ); - - if (!verificationResp.solved === true) { - console.error(verificationResp); - let message; - if (verificationResp.solved === false) { - message = "error verifying token: solved:false"; - } else { - message = "error verifying token: " + verificationResp.error; - } - throw { - code: 400, - message: message - }; - } - - //Get fuel token - let fuelToken = await this.fuelTokenMgr.newToken(body.deviceKey); - - cb(null, fuelToken); - } catch (err) { - cb(err); - } - } -} - -module.exports = FuncaptchaHandler; diff --git a/src/handlers/newDeviceKey.js b/src/handlers/newDeviceKey.js index bc1ec62..b9e4599 100644 --- a/src/handlers/newDeviceKey.js +++ b/src/handlers/newDeviceKey.js @@ -1,9 +1,28 @@ +/* +file - newDeviceKey.js + +Function: +1. Verify Request Token (based on uport standards) +2. Check if address on fuelToken (authToken) is the same as the one on the requestToken +3. If yes, Issue new fuelToken + +inputs +- authMgr: verifies authorization request to nisaba service +- uPortMgr: uport specific JWT token verification +- fuelTokenMgr: develops new JWT tokens for new users + +resources +- N/A + +resource description +- N/A +*/ import { toEthereumAddress } from "did-jwt/lib/Digest"; class NewDeviceKeyHandler { - constructor(authMgr, uPortMgr, fuelTokenMgr) { + constructor(authMgr, requestTokenMgr, fuelTokenMgr) { this.authMgr = authMgr; - this.uPortMgr = uPortMgr; + this.requestTokenMgr = requestTokenMgr; this.fuelTokenMgr = fuelTokenMgr; } @@ -55,9 +74,9 @@ class NewDeviceKeyHandler { //Verify Request Token let dRequestToken; try { - dRequestToken = await this.uPortMgr.verifyToken(body.requestToken); + dRequestToken = await this.requestTokenMgr.verifyToken(body.requestToken); } catch (err) { - console.log("Error on this.uPortMgr.verifyToken"); + console.log("Error on this.requestTokenMgr.verifyToken"); console.log(err); const errMsg = !err.message ? err : err.message; cb({ @@ -69,18 +88,21 @@ class NewDeviceKeyHandler { console.log(dRequestToken); console.log("dRequestToken publicKey", dRequestToken.doc.publicKey); - const pubKey = dRequestToken.doc.publicKey.find( - pub => pub.type === "Secp256k1VerificationKey2018" - ); + + // Don't know why only support "Secp256k1VerificationKey2018"??? + // const pubKey = dRequestToken.doc.publicKey.find( + // pub => pub.type === "Secp256k1VerificationKey2018" + // ); + const pubKey = dRequestToken.doc.publicKey[0]; const address = pubKey.ethereumAddress || toEthereumAddress(pubKey.publicKeyHex); console.log("REQ TOKEN ADDR : ", address); console.log("FUEL TOKEN ADDR : ", authToken.sub); - //Check if address on fuelToken (authToken) is the same as the one on the requesToken + //Check if address on fuelToken (authToken) is the same as the one on the requestToken if (address != authToken.sub) { - console.log("authToken.sub !== decodedRequestToken..address"); + console.log("authToken.sub !== decodedRequestToken.address"); cb({ code: 403, message: diff --git a/src/handlers/phone_attestation.js b/src/handlers/phone_attestation.js index 5cc4626..ce5c00d 100644 --- a/src/handlers/phone_attestation.js +++ b/src/handlers/phone_attestation.js @@ -1,3 +1,21 @@ +/* +file - phone_attestation.js + +Function: +1. Verify fuel token +2. Verifies that sub has a uPort ID +3. Creates attestation once everything checks out + +inputs +- attestationMgr: Create attestation for the subscriber +- fuelTokenMgr: develops new JWT tokens for new users + +resources +- N/A + +resource description +- N/A +*/ import { Credentials, SimpleSigner } from "uport"; class PhoneAttestationHandler { diff --git a/src/handlers/recaptcha.js b/src/handlers/recaptcha.js deleted file mode 100644 index 177517b..0000000 --- a/src/handlers/recaptcha.js +++ /dev/null @@ -1,75 +0,0 @@ -class RecaptchaHandler { - constructor(recaptchaMgr, fuelTokenMgr) { - this.recaptchaMgr = recaptchaMgr; - this.fuelTokenMgr = fuelTokenMgr; - } - - async handle(event, context, cb) { - let body; - - if (event && !event.body) { - body = event; - } else if (event && event.body) { - try { - body = JSON.parse(event.body); - } catch (e) { - cb({ - code: 400, - message: "no json body" - }); - return; - } - } else { - cb({ - code: 400, - message: "no json body" - }); - return; - } - - //Check empty deviceKey - if (!body.deviceKey) { - cb({ - code: 400, - message: "no deviceKey" - }); - return; - } - //Check empty reCaptchaToken - if (!body.reCaptchaToken) { - cb({ - code: 400, - message: "no reCaptchaToken" - }); - return; - } - - //TODO:Check remoteIp - - try { - //Verify reCaptchaToken - let verificationResp = await this.recaptchaMgr.verifyToken( - body.reCaptchaToken - ); - - if (!verificationResp.success === true) { - console.error(verificationResp); - let message = - "error verifying token: " + verificationResp["error-codes"]; - throw { - code: 400, - message: message - }; - } - - //Get fuel token - let fuelToken = await this.fuelTokenMgr.newToken(body.deviceKey); - - cb(null, fuelToken); - } catch (err) { - cb(err); - } - } -} - -module.exports = RecaptchaHandler; diff --git a/src/handlers/start_verification.js b/src/handlers/start_verification.js index 1c759d0..492d20c 100644 --- a/src/handlers/start_verification.js +++ b/src/handlers/start_verification.js @@ -1,3 +1,18 @@ +/* +file - start_verification.js + +Function: +1. Verify phone number using nexmo api + +inputs +- phoneVerificationMgr: Verify phone number code sent via text + +resources +- N/A + +resource description +- N/A +*/ class StartVerificationHandler { constructor(phoneVerificationMgr) { this.phoneVerificationMgr = phoneVerificationMgr; diff --git a/src/lib/__tests__/__snapshots__/uPortMgr.test.js.snap b/src/lib/__tests__/__snapshots__/requestTokenMgr.test.js.snap similarity index 97% rename from src/lib/__tests__/__snapshots__/uPortMgr.test.js.snap rename to src/lib/__tests__/__snapshots__/requestTokenMgr.test.js.snap index 5e84997..62f49a0 100644 --- a/src/lib/__tests__/__snapshots__/uPortMgr.test.js.snap +++ b/src/lib/__tests__/__snapshots__/requestTokenMgr.test.js.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`UportMgr verifyToken() happy path 1`] = ` +exports[`RequestTokenMgr verifyToken() happy path 1`] = ` Object { "doc": Object { "@context": "https://w3id.org/did/v1", diff --git a/src/lib/__tests__/fuelTokenMgr.test.js b/src/lib/__tests__/fuelTokenMgr.test.js index a3d83b1..ad45336 100644 --- a/src/lib/__tests__/fuelTokenMgr.test.js +++ b/src/lib/__tests__/fuelTokenMgr.test.js @@ -7,6 +7,8 @@ describe("FuelTokenMgr", () => { "278a5de700e29faae8e40e366ec5012b5ec63d36ec77e8a2417154cc1d25383f"; let ftPubKey = "03fdd57adec3d438ea237fe46b33ee1e016eda6b585c3e27ea66686c2ea5358479"; + let ftAddress = + "4a40d30db3bed8b02cff6666125a7f659ac1f601"; beforeAll(() => { sut = new FuelTokenMgr(); @@ -25,7 +27,8 @@ describe("FuelTokenMgr", () => { expect(sut.isSecretsSet()).toEqual(false); sut.setSecrets({ FUEL_TOKEN_PRIVATE_KEY: ftPrivKey, - FUEL_TOKEN_PUBLIC_KEY: ftPubKey + FUEL_TOKEN_PUBLIC_KEY: ftPubKey, + FUEL_TOKEN_ADDRESS: ftAddress }); expect(sut.isSecretsSet()).toEqual(true); }); diff --git a/src/lib/__tests__/funcaptchaMgr.test.js b/src/lib/__tests__/funcaptchaMgr.test.js deleted file mode 100644 index 0f08495..0000000 --- a/src/lib/__tests__/funcaptchaMgr.test.js +++ /dev/null @@ -1,50 +0,0 @@ -const FuncaptchaMgr = require("../funcaptchaMgr"); - -describe("FuncaptchaMgr", () => { - let sut; - - beforeAll(() => { - sut = new FuncaptchaMgr(); - }); - - test("empty constructor", () => { - expect(sut).not.toBeUndefined(); - }); - - test("is isSecretsSet", () => { - let secretSet = sut.isSecretsSet(); - expect(secretSet).toEqual(false); - }); - - test("verifyToken() no funCaptchaToken", done => { - sut - .verifyToken() - .then(resp => { - fail("shouldn't return"); - done(); - }) - .catch(err => { - expect(err).toEqual("no funCaptchaToken"); - done(); - }); - }); - - test("verifyToken() no funcaptchaPrivateKey set", done => { - sut - .verifyToken("faketoken") - .then(resp => { - fail("shouldn't return"); - done(); - }) - .catch(err => { - expect(err).toEqual("no funcaptchaPrivateKey set"); - done(); - }); - }); - - test("setSecrets", () => { - expect(sut.isSecretsSet()).toEqual(false); - sut.setSecrets({ FUNCAPTCHA_PRIVATE_KEY: "fakekey" }); - expect(sut.isSecretsSet()).toEqual(true); - }); -}); diff --git a/src/lib/__tests__/phoneVerificationMgr.test.js b/src/lib/__tests__/phoneVerificationMgr.test.js index a53598d..013fc56 100644 --- a/src/lib/__tests__/phoneVerificationMgr.test.js +++ b/src/lib/__tests__/phoneVerificationMgr.test.js @@ -99,7 +99,7 @@ describe("PhoneVerificationMgr", () => { test("start() happy path", done => { let params = { number: phoneNumber, - brand: "uPort", + brand: "NexmoVerifyTest", code_length: 6 }; diff --git a/src/lib/__tests__/recaptchaMgr.test.js b/src/lib/__tests__/recaptchaMgr.test.js deleted file mode 100644 index d310c74..0000000 --- a/src/lib/__tests__/recaptchaMgr.test.js +++ /dev/null @@ -1,13 +0,0 @@ -const RecaptchaMgr = require("../recaptchaMgr"); - -describe("RecaptchaMgr", () => { - let sut; - - beforeAll(() => { - sut = new RecaptchaMgr(); - }); - - test("empty constructor", () => { - expect(sut).not.toBeUndefined(); - }); -}); diff --git a/src/lib/__tests__/uPortMgr.test.js b/src/lib/__tests__/requestTokenMgr.test.js similarity index 91% rename from src/lib/__tests__/uPortMgr.test.js rename to src/lib/__tests__/requestTokenMgr.test.js index b865ade..84ee16d 100644 --- a/src/lib/__tests__/uPortMgr.test.js +++ b/src/lib/__tests__/requestTokenMgr.test.js @@ -1,13 +1,13 @@ -const UportMgr = require("../uPortMgr"); +const RequestTokenMgr = require("../requestTokenMgr"); -describe("UportMgr", () => { +describe("RequestTokenMgr", () => { let sut; //let eventToken='eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NksifQ.eyJpc3MiOiIyb3pzRlFXQVU3Q3BIWkxxdTJ3U1liSkZXekROQjI2YW9DRiIsImlhdCI6MTUxMzM1MjgwNiwiZXZlbnQiOnsidHlwZSI6IlNBVkVfRlVFTF9CQUxBTkNFIiwiYWRkcmVzcyI6IjJvenNGUVdBVTdDcEhaTHF1MndTWWJKRld6RE5CMjZhb0NGIiwiYmFsYW5jZSI6IjAifSwiZXhwIjoxNTEzNDM5MjA2fQ.hs0JTSiUe2CzaOm32v80862BFGi2dgvBCHG5yIA7tLKCjnON2e39LddywBpiNlCVVzR_qn-IsZ3xhHWjXVT0Yg' let eventToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NksifQ.eyJpc3MiOiIyb3pzRlFXQVU3Q3BIWkxxdTJ3U1liSkZXekROQjI2YW9DRiIsImlhdCI6MTUxMzM1MjgzNCwiZXZlbnQiOnsidHlwZSI6IlNUT1JFX0NPTk5FQ1RJT04iLCJhZGRyZXNzIjoiMm96c0ZRV0FVN0NwSFpMcXUyd1NZYkpGV3pETkIyNmFvQ0YiLCJjb25uZWN0aW9uVHlwZSI6ImNvbnRyYWN0cyIsImNvbm5lY3Rpb24iOiIweDJjYzMxOTEyYjJiMGYzMDc1YTg3YjM2NDA5MjNkNDVhMjZjZWYzZWUifSwiZXhwIjoxNTEzNDM5MjM0fQ.tqX5eEuaTEyYPUSgatK5zEsj_WpE-dIEHDc4ItpOvAZuBkSyV9_zbb0puNtDrZTVA7MlZ43FSSpf9CGIUxup-w"; beforeAll(() => { - sut = new UportMgr(); + sut = new RequestTokenMgr(); jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000; }); diff --git a/src/lib/attestationMgr.js b/src/lib/attestationMgr.js index e748752..fa02358 100644 --- a/src/lib/attestationMgr.js +++ b/src/lib/attestationMgr.js @@ -1,3 +1,12 @@ +/* +file - attestationMgr.js - Create attestation for the subscriber + +resources +- N/A + +resource description +- N/A +*/ import { Credentials, SimpleSigner } from "uport"; class AttestationMgr { diff --git a/src/lib/authMgr.js b/src/lib/authMgr.js index 32ab2ac..5bf479c 100644 --- a/src/lib/authMgr.js +++ b/src/lib/authMgr.js @@ -1,3 +1,13 @@ +/* +file - authMgr.js - verifies authorization request to nisaba service + +resources +- https://www.npmjs.com/package/jsontokens + +resource description +- jsontokens - node.js library for signing, decoding, and +verifying JSON Web Tokens (JWTs) +*/ import { decodeToken, TokenVerifier } from "jsontokens"; // import { verifyJWT } from "did-jwt" diff --git a/src/lib/fuelTokenMgr.js b/src/lib/fuelTokenMgr.js index c2f36e3..8a25942 100644 --- a/src/lib/fuelTokenMgr.js +++ b/src/lib/fuelTokenMgr.js @@ -1,51 +1,61 @@ +/* +file - fuelTokenMgr.js - this file manager sets signing secrets from the +funding account and develops new JWT tokens for new users that can be passaed +to sensui (and also check and verified) + +THIS FILE MUST BE CHANGED TO FIT YOUR FORKED API GIVEN THAT UPORT USES +THEIR SPECIFIC API ENDPOINTS + +resources +- did-jwt: https://github.com/uport-project/did-jwt + +resource description +- did-jwt: The did-JWT library allows you to sign and verify +JSON Web Tokens (JWT). Public keys are resolved using the +Decentralized ID (DID) of the iss claim of the JWT. +*/ import { createJWT, verifyJWT, SimpleSigner, decodeJWT } from "did-jwt"; class FuelTokenMgr { constructor() { this.signingKey = null; this.publicKey = null; + this.address = null; + this.aud = null; this.tokenSigner = null; } isSecretsSet() { - return this.signingKey !== null && this.publicKey !== null; + return this.signingKey !== null && this.publicKey !== null && this.address != null; } setSecrets(secrets) { this.signingKey = secrets.FUEL_TOKEN_PRIVATE_KEY; this.publicKey = secrets.FUEL_TOKEN_PUBLIC_KEY; + this.address = secrets.FUEL_TOKEN_ADDRESS; + // did-jwt doese not support aud to be an array + this.aud = secrets.AUDIENCE_ADDRESS || this.address; this.tokenSigner = SimpleSigner(this.signingKey); } + /* Uport specific - needs to be changed for other builds */ async newToken(deviceKey) { const signer = this.tokenSigner; - let now = Math.floor(Date.now() / 1000); + const now = Math.floor(Date.now() / 1000); return createJWT( { - aud: [ - "api.uport.me/nisaba", - "api.uport.me/unnu", - "api.uport.me/sensui" - ], + aud: this.aud, exp: now + 300, sub: deviceKey, iat: now }, - { issuer: "api.uport.me/nisaba", signer } - ).then(jwt => { - return jwt; - }); + { issuer: this.address, signer } + ); } + /* Uport specific - needs to be changed for other builds */ async verifyToken(fuelToken) { - let aud = [ - "api.uport.me/nisaba", - "api.uport.me/unnu", - "api.uport.me/sensui" - ]; - verifyJWT(fuelToken, { - audience: aud - }).then(({ payload, doc, did, signer, jwt }) => { - console.log(payload); + return verifyJWT(fuelToken, { + audience: this.aud }); } diff --git a/src/lib/funcaptchaMgr.js b/src/lib/funcaptchaMgr.js deleted file mode 100644 index c1985c5..0000000 --- a/src/lib/funcaptchaMgr.js +++ /dev/null @@ -1,34 +0,0 @@ -import rp from "request-promise"; - -class FuncaptchaMgr { - constructor() { - this.funcaptchaPrivateKey = null; - } - isSecretsSet() { - return this.funcaptchaPrivateKey !== null; - } - - setSecrets(secrets) { - this.funcaptchaPrivateKey = secrets.FUNCAPTCHA_PRIVATE_KEY; - } - - async verifyToken(funCaptchaToken) { - if (!funCaptchaToken) throw "no funCaptchaToken"; - if (!this.funcaptchaPrivateKey) throw "no funcaptchaPrivateKey set"; - //Verify token: - let verificationUrl = - "https://funcaptcha.com/fc/v/?private_key=" + - this.funcaptchaPrivateKey + - "&session_token=" + - funCaptchaToken; - - let options = { - method: "GET", - uri: verificationUrl - }; - let resp = await rp(options); - return JSON.parse(resp); - } -} - -module.exports = FuncaptchaMgr; diff --git a/src/lib/phoneVerificationMgr.js b/src/lib/phoneVerificationMgr.js index 1812f34..eeaabbf 100644 --- a/src/lib/phoneVerificationMgr.js +++ b/src/lib/phoneVerificationMgr.js @@ -1,3 +1,14 @@ +/* +file - phoneVerificationMgr.js - instantiates Nexmo service to verify +phone number code sent via text + +resources +- Nexmo - https://www.npmjs.com/package/nexmo +- Nexmo - https://developer.nexmo.com/documentation + +resource description +- Nexmo - Text/Voice and Verification API suite +*/ import Nexmo from "nexmo"; import { decodeToken, TokenVerifier } from "jsontokens"; import { Client } from "pg"; @@ -32,7 +43,7 @@ class PhoneVerificationMgr { }, { debug: false, - appendToUserAgent: "uPort/nisaba" + appendToUserAgent: "NexmoVerifyTest/nisaba" } ); } @@ -42,12 +53,22 @@ class PhoneVerificationMgr { if (!phoneNumber) throw "no destination phoneNumber"; if (!this.nexmo) throw "client is not initialized"; + //uport specifc [US1] let params = { number: phoneNumber, - brand: "uPort", + brand: "NexmoVerifyTest", code_length: 6 }; + /* + resource: https://developer.nexmo.com/api/verify#verify-request + required params + format - json The response format. Either json or xml + brand - The name of the company or App you are using Verify for + number - The mobile or landline phone number to verify + code_length - The length of the PIN. Possible values are 6 or 4 characters. + The default value is 4 + */ this.nexmo.verify.request(params, (err, resp) => { if (err) { console.log("error on nexmo.verify.request", err); @@ -135,7 +156,7 @@ class PhoneVerificationMgr { if (resp.status == "0") { this.deleteRequest(deviceKey); - return { data: resp.request_id }, null; + return null, { data: resp.request_id }; } else { return ( null, @@ -148,6 +169,15 @@ class PhoneVerificationMgr { }); } + /* + schema information for nexmo requests: + table: nexmo_requests + columns + - request_id + - device_key + - request_status + */ + async getNexmoRequest(deviceKey) { if (!deviceKey) throw "no device key"; if (!this.pgUrl) throw "no pgUrl set"; @@ -176,6 +206,7 @@ class PhoneVerificationMgr { if (!reqStatus) throw "no nexmo request status"; if (!this.pgUrl) throw "no pgUrl set"; + //you can use a connectionString or a normal connection const pgClient = new Client({ connectionString: this.pgUrl }); diff --git a/src/lib/recaptchaMgr.js b/src/lib/recaptchaMgr.js deleted file mode 100644 index a18fca1..0000000 --- a/src/lib/recaptchaMgr.js +++ /dev/null @@ -1,31 +0,0 @@ -import rp from "request-promise"; - -class RecaptchaMgr { - constructor() { - this.recaptchaSecretKey = null; - } - isSecretsSet() { - return this.recaptchaSecretKey !== null; - } - - setSecrets(secrets) { - this.recaptchaSecretKey = secrets.RECAPTCHA_SECRET_KEY; - } - - async verifyToken(reCaptchaToken) { - //Verify token: - let verificationUrl = "https://www.google.com/recaptcha/api/siteverify"; - let options = { - method: "POST", - uri: verificationUrl, - form: { - secret: this.recaptchaSecretKey, - response: reCaptchaToken - } - }; - let resp = await rp(options); - return JSON.parse(resp); - } -} - -module.exports = RecaptchaMgr; diff --git a/src/lib/requestTokenMgr.js b/src/lib/requestTokenMgr.js new file mode 100644 index 0000000..a6a6759 --- /dev/null +++ b/src/lib/requestTokenMgr.js @@ -0,0 +1,51 @@ +import { verifyJWT } from "did-jwt/lib/JWT"; + +class RequestTokenMgr { + constructor() { + this.aud = null; + } + + isSecretsSet() { + return this.aud != null; + } + + setSecrets(secrets) { + this.aud = secrets.AUDIENCE_ADDRESS || secrets.FUEL_TOKEN_ADDRESS; + } + + async verifyToken(token) { + if (!token) throw "no token"; + return verifyJWT(token, { + audience: this.aud + }); + /* + Background Information + - jwt String containing a JSON Web Tokens (JWT) yes + - options.auth Require signer to be listed in the authentication section + of the DID document (for Authentication of a user with DID-AUTH) + - options.audience The DID of the audience of the JWT no + - options.callbackUrl The the URL receiving the JWT no + The Input Flow + verifyJWT() --> resolveAuthenticator() --> normalizeDID() --> + sees if it has '/^did:/' in it or if it isMNID() --> puts error if no and + continues function if yest + Additional Information + where mnid stands for Multi Network Identifier (MNID), https://github.com/uport-project/mnid + ex DID: const did = `did:uport:${mnid}` + mnid is a base58 encoded result with various attributes like the following: + - network + - address + Expectations of the JWT + It needs to have the following: + const did = obj.did // DID of signer + * did DID of signer + * doc DID Document of signer + * signerKeyId ID of key in DID document that signed JWT + * jwt a JSON Web Token to verify + * auth Require signer to be listed in the authentication section of the DID document (for Authentication purposes) + * audience DID of the recipient of the JWT + * callbackUrl callback url in JWT + */ + } +} +module.exports = RequestTokenMgr; diff --git a/src/lib/uPortMgr.js b/src/lib/uPortMgr.js deleted file mode 100644 index 5bbbe8e..0000000 --- a/src/lib/uPortMgr.js +++ /dev/null @@ -1,9 +0,0 @@ -import { verifyJWT } from "did-jwt/lib/JWT"; - -class UportMgr { - async verifyToken(token) { - if (!token) throw "no token"; - return verifyJWT(token); - } -} -module.exports = UportMgr;