├── .babelrc ├── .editorconfig ├── .gitignore ├── .travis.yml ├── LICENSE.md ├── README.md ├── examples ├── .babelrc ├── .flowconfig ├── .gitignore ├── .watchmanconfig ├── App.js ├── App.test.js ├── README.md ├── app.json ├── index.tpl.html ├── package.json ├── src │ ├── AsyncConnectExample │ │ ├── react-native.js │ │ └── web.js │ ├── BasicExample │ │ ├── react-native.js │ │ └── web.js │ ├── __shell__ │ │ ├── BackButton.js │ │ └── ExamplesList.js │ └── index.js ├── webpack.config.js └── yarn.lock ├── issue_template.md ├── package-lock.json ├── package.json ├── src ├── react-native │ ├── WebView.js │ ├── connector.js │ ├── handler.js │ ├── hoc.js │ ├── index.js │ ├── remote-resolver.js │ └── remote.js ├── shared │ └── constants.js └── web │ ├── connector.js │ ├── index.js │ └── remote.js └── webpack.config.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["env", { 4 | "targets": { 5 | "browsers": ["last 2 versions", "safari >= 9"] 6 | } 7 | }] 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | dist 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "8" 4 | cache: 5 | yarn: true 6 | before_script: 7 | - "npm run examples:build" 8 | install: true 9 | deploy: 10 | provider: pages 11 | skip_cleanup: true 12 | github_token: $GITHUB_TOKEN 13 | on: 14 | branch: master 15 | local_dir: ${TRAVIS_BUILD_DIR}/examples/dist 16 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017-present Andrei Volchenko 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # React Native WebView Messaging 2 | 3 | React Native WebView extension with 2-way event-based communication API 4 | 5 | [![GitHub stars](https://img.shields.io/github/stars/lesnitsky/react-native-webview-messaging.svg?style=social)](https://github.com/lesnitsky/react-native-webview-messaging) 6 | [![Twitter Follow](https://img.shields.io/twitter/follow/lesnitsky_dev.svg?label=Follow%20me&style=social)](https://twitter.com/lesnitsky_dev) 7 | 8 | :warning: this is v2 branch which is not yet stable. Check out [v1 branch](https://github.com/R1ZZU/react-native-webview-messaging/tree/v1) for v1 docs 9 | 10 | ## Installation 11 | 12 | ```sh 13 | npm install react-native-webview-messaging@next 14 | ``` 15 | 16 | ## Examples 17 | 18 | [Examples](https://github.com/R1ZZU/react-native-webview-messaging/tree/master/examples) 19 | 20 | ## Usage 21 | 22 | ### React Native 23 | 24 | ```javascript 25 | import React, { Component } from 'react'; 26 | import { View, TouchableHighlight } from 'react-native'; 27 | import { connectToRemote, WebView } from 'react-native-webview-messaging'; 28 | 29 | export class ExampleView extends Component { 30 | render() { 31 | return ( 32 | 33 | { this.webview = webview; }} 35 | source={ require('./some-page.html') } 36 | /> 37 | 38 | Send message to WebView 39 | 40 | 41 | ) 42 | } 43 | 44 | async componentDidMount() { 45 | this.remote = await connectToRemote(this.webview); 46 | 47 | this.remote.on('text', text => console.log(text)); 48 | this.remote.on('json', json => console.log(json)); 49 | this.remote.on('custom-event-from-webview', eventData => console.log(eventData)); 50 | } 51 | 52 | sendMessageToWebView = () => { 53 | this.remote.sendJSON({ 54 | payload: 'JSON from RN' 55 | }); 56 | 57 | this.remote.send('plain text from RN'); 58 | 59 | this.remote.emit('custom-event-from-rn', { payload: 'Custom event from RN' }); 60 | } 61 | } 62 | ``` 63 | 64 | ### Web 65 | 66 | ```javascript 67 | import { connectToRemote } from 'react-native-webview-messaging/web'; 68 | 69 | connectToRemote() 70 | .then(remote => { 71 | remote.on('text', text => console.log(text)); 72 | remote.on('json', json => console.log(json)); 73 | remote.on('custom-event-from-rn', data => console.log(data)); 74 | 75 | remote.send('plain text from WebView'); 76 | remote.sendJSON({ 77 | payload: 'JSON from WebView' 78 | }); 79 | 80 | remote.emit('custom-event-from-webview', { payload: 'Custom event from WebView' }); 81 | }); 82 | ``` 83 | 84 | ## LICENSE 85 | 86 | MIT 87 | 88 | 89 | [![GitHub stars](https://img.shields.io/github/stars/lesnitsky/react-native-webview-messaging.svg?style=social)](https://github.com/lesnitsky/react-native-webview-messaging) 90 | [![Twitter Follow](https://img.shields.io/twitter/follow/lesnitsky_dev.svg?label=Follow%20me&style=social)](https://twitter.com/lesnitsky_dev) 91 | -------------------------------------------------------------------------------- /examples/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["babel-preset-expo"], 3 | "env": { 4 | "development": { 5 | "plugins": ["transform-react-jsx-source"] 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /examples/.flowconfig: -------------------------------------------------------------------------------- 1 | [ignore] 2 | ; We fork some components by platform 3 | .*/*[.]android.js 4 | 5 | ; Ignore templates for 'react-native init' 6 | /node_modules/react-native/local-cli/templates/.* 7 | 8 | ; Ignore RN jest 9 | /node_modules/react-native/jest/.* 10 | 11 | ; Ignore RNTester 12 | /node_modules/react-native/RNTester/.* 13 | 14 | ; Ignore the website subdir 15 | /node_modules/react-native/website/.* 16 | 17 | ; Ignore the Dangerfile 18 | /node_modules/react-native/danger/dangerfile.js 19 | 20 | ; Ignore Fbemitter 21 | /node_modules/fbemitter/.* 22 | 23 | ; Ignore "BUCK" generated dirs 24 | /node_modules/react-native/\.buckd/ 25 | 26 | ; Ignore unexpected extra "@providesModule" 27 | .*/node_modules/.*/node_modules/fbjs/.* 28 | 29 | ; Ignore polyfills 30 | /node_modules/react-native/Libraries/polyfills/.* 31 | 32 | ; Ignore various node_modules 33 | /node_modules/react-native-gesture-handler/.* 34 | /node_modules/expo/.* 35 | /node_modules/react-navigation/.* 36 | /node_modules/xdl/.* 37 | /node_modules/reqwest/.* 38 | /node_modules/metro-bundler/.* 39 | 40 | [include] 41 | 42 | [libs] 43 | node_modules/react-native/Libraries/react-native/react-native-interface.js 44 | node_modules/react-native/flow/ 45 | node_modules/expo/flow/ 46 | 47 | [options] 48 | emoji=true 49 | 50 | module.system=haste 51 | 52 | module.file_ext=.js 53 | module.file_ext=.jsx 54 | module.file_ext=.json 55 | module.file_ext=.ios.js 56 | 57 | munge_underscores=true 58 | 59 | module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub' 60 | 61 | suppress_type=$FlowIssue 62 | suppress_type=$FlowFixMe 63 | suppress_type=$FlowFixMeProps 64 | suppress_type=$FlowFixMeState 65 | suppress_type=$FixMe 66 | 67 | suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(5[0-6]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native_oss[a-z,_]*\\)?)\\) 68 | suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(5[0-6]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native_oss[a-z,_]*\\)?)\\)?:? #[0-9]+ 69 | suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy 70 | suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError 71 | 72 | unsafe.enable_getters_and_setters=true 73 | 74 | [version] 75 | ^0.56.0 76 | -------------------------------------------------------------------------------- /examples/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # expo 4 | .expo/ 5 | 6 | # dependencies 7 | /node_modules 8 | 9 | # misc 10 | .env.local 11 | .env.development.local 12 | .env.test.local 13 | .env.production.local 14 | 15 | npm-debug.log* 16 | yarn-debug.log* 17 | yarn-error.log* 18 | -------------------------------------------------------------------------------- /examples/.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /examples/App.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Text, View, Button, StyleSheet, ScrollView, TouchableOpacity, StatusBar } from 'react-native'; 3 | import * as Examples from './src'; 4 | import { ExamplesList } from './src/__shell__/ExamplesList'; 5 | import { BackButton } from './src/__shell__/BackButton'; 6 | 7 | export default class App extends React.Component { 8 | constructor() { 9 | super(); 10 | 11 | this.state = { 12 | example: null, 13 | examples: Object.keys(Examples) 14 | .map(key => ({ 15 | id: key, 16 | title: Examples[key].title, 17 | })), 18 | } 19 | } 20 | 21 | selectExample = (example) => { 22 | this.setState({ example }) 23 | } 24 | 25 | back = () => { 26 | this.selectExample(null); 27 | } 28 | 29 | render() { 30 | const Component = Examples[this.state.example]; 31 | 32 | return ( 33 | 34 | 50 | ); 51 | } 52 | } 53 | 54 | const styles = StyleSheet.create({ 55 | container: { 56 | flex: 1, 57 | }, 58 | header: { 59 | flex: 0, 60 | borderBottomWidth: 1, 61 | borderBottomColor: 'silver', 62 | padding: 10, 63 | flexDirection: 'row', 64 | backgroundColor: '#dedede', 65 | }, 66 | headerText: { 67 | fontSize: 20, 68 | }, 69 | }); 70 | -------------------------------------------------------------------------------- /examples/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import App from './App'; 3 | 4 | import renderer from 'react-test-renderer'; 5 | 6 | it('renders without crashing', () => { 7 | const rendered = renderer.create().toJSON(); 8 | expect(rendered).toBeTruthy(); 9 | }); 10 | -------------------------------------------------------------------------------- /examples/README.md: -------------------------------------------------------------------------------- 1 | # React Native WebView Messaging Examples 2 | 3 | ## Quick start guide 4 | ```sh 5 | git clone https://github.com/R1ZZU/react-native-webview-messaging.git 6 | cd ./react-native-webview-messaging/examples 7 | npm install 8 | npm run web:build 9 | npm run ios # or npm run android 10 | ``` 11 | 12 | # LICENSE 13 | MIT 14 | -------------------------------------------------------------------------------- /examples/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "expo": { 3 | "sdkVersion": "25.0.0" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /examples/index.tpl.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "examples", 3 | "version": "0.1.0", 4 | "private": true, 5 | "devDependencies": { 6 | "babel-preset-env": "^1.6.1", 7 | "html-webpack-inline-source-plugin": "^0.0.10", 8 | "html-webpack-plugin": "^3.1.0", 9 | "jest-expo": "25.0.0", 10 | "react-native-scripts": "1.11.1", 11 | "react-test-renderer": "16.2.0", 12 | "webpack": "^4.2.0", 13 | "webpack-cli": "^2.0.13" 14 | }, 15 | "main": "./node_modules/react-native-scripts/build/bin/crna-entry.js", 16 | "scripts": { 17 | "start": "react-native-scripts start", 18 | "eject": "react-native-scripts eject", 19 | "android": "react-native-scripts android", 20 | "ios": "react-native-scripts ios", 21 | "test": "exit 0", 22 | "web:build": "webpack --progress", 23 | "web:watch": "webpack -w" 24 | }, 25 | "jest": { 26 | "preset": "jest-expo" 27 | }, 28 | "dependencies": { 29 | "expo": "^25.0.0", 30 | "react": "16.2.0", 31 | "react-dom": "^16.2.0", 32 | "react-native": "0.52.0", 33 | "react-native-webview-messaging": "^2.0.0-alpha.4" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /examples/src/AsyncConnectExample/react-native.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Text, View, Button, StyleSheet } from 'react-native'; 3 | import { connectToRemote, WebView } from 'react-native-webview-messaging'; 4 | 5 | export class AsyncConnectExample extends React.Component { 6 | static title = 'Async connect'; 7 | 8 | constructor() { 9 | super(); 10 | 11 | this.state = { 12 | connected: false, 13 | connecting: false, 14 | } 15 | } 16 | 17 | render() { 18 | return ( 19 | 20 | 21 | { this.state.connecting ? Waiting response from WebView... : null } 22 | { this.state.connected ? 23 | Connected to WebView 🎉 : 24 | !this.state.connecting ? 25 | : 19 | null 20 | } 21 | 22 | ); 23 | } 24 | 25 | connect = () => { 26 | this.setState({ connecting: true }); 27 | 28 | connectToRemote() 29 | .then(remote => { 30 | this.remote = remote; 31 | 32 | this.setState({ 33 | connected: true, 34 | connecting: false, 35 | }); 36 | }) 37 | .catch(err => console.log(err)); 38 | } 39 | } 40 | 41 | render(, document.querySelector('#reactRoot')); 42 | -------------------------------------------------------------------------------- /examples/src/BasicExample/react-native.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Text, View, Button } from 'react-native'; 3 | import { connectToRemote, WebView } from 'react-native-webview-messaging'; 4 | 5 | export class BasicExample extends React.Component { 6 | static title = 'Basic example'; 7 | 8 | constructor() { 9 | super(); 10 | 11 | this.state = { 12 | message: null 13 | } 14 | } 15 | 16 | render() { 17 | return ( 18 | 19 | 20 | 21 | 22 | {this.state.message} 23 | 24 | 25 | 26 | 27 | 32 | 33 | 34 |
35 | 36 |
37 | 38 |
39 | 40 |
41 | 42 |

{ this.state.message ? this.state.message : null }

43 | 44 | ); 45 | } 46 | 47 | sendText = () => { 48 | this.remote.send('hello'); 49 | } 50 | 51 | sendJSON = () => { 52 | this.remote.sendJSON({ 53 | payload: 'hello' 54 | }); 55 | } 56 | 57 | emitEvent = () => { 58 | this.remote.emit('greetingFromWebview', { 59 | payload: 'hello' 60 | }); 61 | } 62 | } 63 | 64 | render(, document.querySelector('#reactRoot')); 65 | -------------------------------------------------------------------------------- /examples/src/__shell__/BackButton.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { TouchableOpacity, Text } from 'react-native'; 3 | 4 | export const BackButton = ({ onPress }) => ( 5 | 6 | Back 7 | 8 | ); 9 | 10 | const styles = { 11 | backButton: { 12 | paddingHorizontal: 10, 13 | marginRight: 10, 14 | alignItems: 'center', 15 | justifyContent: 'center', 16 | }, 17 | backButtonText: { 18 | fontSize: 16, 19 | color: '#2d7bf6', 20 | }, 21 | }; 22 | -------------------------------------------------------------------------------- /examples/src/__shell__/ExamplesList.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { TouchableOpacity, Text, ScrollView, StyleSheet } from 'react-native'; 3 | 4 | const Item = ({ title, id, onPress }) => ( 5 | onPress(id)} style={styles.listItem}> 6 | { title } 7 | 8 | ); 9 | 10 | export const ExamplesList = ({ examples, onPress }) => { 11 | const items = examples.map(example => ( 12 | 18 | )); 19 | 20 | return ( 21 | 22 | { items } 23 | 24 | ); 25 | }; 26 | 27 | const styles = StyleSheet.create({ 28 | listItem: { 29 | padding: 10, 30 | borderBottomWidth: 1, 31 | borderBottomColor: 'silver', 32 | }, 33 | listItemText: { 34 | fontSize: 16, 35 | }, 36 | }); 37 | -------------------------------------------------------------------------------- /examples/src/index.js: -------------------------------------------------------------------------------- 1 | export { BasicExample } from './BasicExample/react-native'; 2 | export { AsyncConnectExample } from './AsyncConnectExample/react-native'; 3 | -------------------------------------------------------------------------------- /examples/webpack.config.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | const HtmlWebpackPlugin = require('html-webpack-plugin'); 4 | const HtmlWebpackInlineSourcePlugin = require('html-webpack-inline-source-plugin'); 5 | 6 | const examples = fs.readdirSync('./src') 7 | .filter(entry => entry.indexOf('Example') !== -1); 8 | 9 | const entry = examples 10 | .reduce( 11 | (acc, example) => (acc[example] = ['babel-polyfill', `./src/${example}/web.js`], acc), 12 | {}, 13 | ); 14 | 15 | const plugins = examples.reduce( 16 | (plugins, example) => [ 17 | ...plugins, 18 | new HtmlWebpackPlugin({ 19 | chunks: [example], 20 | title: example, 21 | filename: `${example}.html`, 22 | template: './index.tpl.html', 23 | inlineSource: '.js', 24 | cache: false, 25 | }), 26 | new HtmlWebpackInlineSourcePlugin() 27 | ], 28 | [], 29 | ); 30 | 31 | 32 | module.exports = { 33 | entry, 34 | plugins, 35 | output: { 36 | path: path.join(__dirname, 'dist'), 37 | filename: '[name].bundle.js', 38 | }, 39 | module: { 40 | rules: [{ 41 | test: /\.js$/, 42 | exclude: /node_modules/, 43 | use: { 44 | loader: 'babel-loader', 45 | options: { 46 | presets: [ 47 | ['env', { 48 | targets: { 49 | browsers: ['last 2 versions', 'safari >= 9.3'] 50 | }, 51 | }] 52 | ], 53 | plugins: [ 54 | 'transform-async-to-generator', 55 | 'transform-class-properties', 56 | ], 57 | }, 58 | } 59 | }] 60 | }, 61 | mode: 'development', 62 | }; 63 | -------------------------------------------------------------------------------- /issue_template.md: -------------------------------------------------------------------------------- 1 | ### Platform 2 | 3 | - [ ] Android 4 | - [ ] iOS 5 | 6 | ### What react-native version are you using? 7 | 8 | ### Issue details 9 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-native-webview-messaging", 3 | "version": "1.2.2", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "acorn": { 8 | "version": "5.3.0", 9 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.3.0.tgz", 10 | "integrity": "sha512-Yej+zOJ1Dm/IMZzzj78OntP/r3zHEaKcyNoU2lAaxPtrseM6rF0xwqoz5Q5ysAiED9hTjI2hgtvLXitlCN1/Ug==", 11 | "dev": true 12 | }, 13 | "acorn-dynamic-import": { 14 | "version": "2.0.2", 15 | "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", 16 | "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", 17 | "dev": true, 18 | "requires": { 19 | "acorn": "4.0.13" 20 | }, 21 | "dependencies": { 22 | "acorn": { 23 | "version": "4.0.13", 24 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", 25 | "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", 26 | "dev": true 27 | } 28 | } 29 | }, 30 | "ajv": { 31 | "version": "4.11.8", 32 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", 33 | "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", 34 | "dev": true, 35 | "requires": { 36 | "co": "4.6.0", 37 | "json-stable-stringify": "1.0.1" 38 | } 39 | }, 40 | "ajv-keywords": { 41 | "version": "1.5.1", 42 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", 43 | "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=", 44 | "dev": true 45 | }, 46 | "align-text": { 47 | "version": "0.1.4", 48 | "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", 49 | "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", 50 | "dev": true, 51 | "requires": { 52 | "kind-of": "3.2.2", 53 | "longest": "1.0.1", 54 | "repeat-string": "1.6.1" 55 | } 56 | }, 57 | "ansi-regex": { 58 | "version": "2.1.1", 59 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 60 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 61 | "dev": true 62 | }, 63 | "ansi-styles": { 64 | "version": "2.2.1", 65 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 66 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 67 | "dev": true 68 | }, 69 | "anymatch": { 70 | "version": "1.3.2", 71 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", 72 | "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", 73 | "dev": true, 74 | "requires": { 75 | "micromatch": "2.3.11", 76 | "normalize-path": "2.1.1" 77 | } 78 | }, 79 | "arr-diff": { 80 | "version": "2.0.0", 81 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", 82 | "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", 83 | "dev": true, 84 | "requires": { 85 | "arr-flatten": "1.1.0" 86 | } 87 | }, 88 | "arr-flatten": { 89 | "version": "1.1.0", 90 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 91 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", 92 | "dev": true 93 | }, 94 | "array-unique": { 95 | "version": "0.2.1", 96 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", 97 | "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", 98 | "dev": true 99 | }, 100 | "asn1.js": { 101 | "version": "4.9.2", 102 | "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz", 103 | "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==", 104 | "dev": true, 105 | "requires": { 106 | "bn.js": "4.11.8", 107 | "inherits": "2.0.3", 108 | "minimalistic-assert": "1.0.0" 109 | } 110 | }, 111 | "assert": { 112 | "version": "1.4.1", 113 | "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", 114 | "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", 115 | "dev": true, 116 | "requires": { 117 | "util": "0.10.3" 118 | } 119 | }, 120 | "async": { 121 | "version": "2.6.0", 122 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", 123 | "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", 124 | "dev": true, 125 | "requires": { 126 | "lodash": "4.17.4" 127 | } 128 | }, 129 | "async-each": { 130 | "version": "1.0.1", 131 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", 132 | "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", 133 | "dev": true 134 | }, 135 | "babel-code-frame": { 136 | "version": "6.26.0", 137 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 138 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 139 | "dev": true, 140 | "requires": { 141 | "chalk": "1.1.3", 142 | "esutils": "2.0.2", 143 | "js-tokens": "3.0.2" 144 | } 145 | }, 146 | "babel-core": { 147 | "version": "6.26.0", 148 | "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", 149 | "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", 150 | "dev": true, 151 | "requires": { 152 | "babel-code-frame": "6.26.0", 153 | "babel-generator": "6.26.0", 154 | "babel-helpers": "6.24.1", 155 | "babel-messages": "6.23.0", 156 | "babel-register": "6.26.0", 157 | "babel-runtime": "6.26.0", 158 | "babel-template": "6.26.0", 159 | "babel-traverse": "6.26.0", 160 | "babel-types": "6.26.0", 161 | "babylon": "6.18.0", 162 | "convert-source-map": "1.5.1", 163 | "debug": "2.6.9", 164 | "json5": "0.5.1", 165 | "lodash": "4.17.4", 166 | "minimatch": "3.0.4", 167 | "path-is-absolute": "1.0.1", 168 | "private": "0.1.8", 169 | "slash": "1.0.0", 170 | "source-map": "0.5.7" 171 | } 172 | }, 173 | "babel-generator": { 174 | "version": "6.26.0", 175 | "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", 176 | "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", 177 | "dev": true, 178 | "requires": { 179 | "babel-messages": "6.23.0", 180 | "babel-runtime": "6.26.0", 181 | "babel-types": "6.26.0", 182 | "detect-indent": "4.0.0", 183 | "jsesc": "1.3.0", 184 | "lodash": "4.17.4", 185 | "source-map": "0.5.7", 186 | "trim-right": "1.0.1" 187 | } 188 | }, 189 | "babel-helper-call-delegate": { 190 | "version": "6.24.1", 191 | "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", 192 | "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", 193 | "dev": true, 194 | "requires": { 195 | "babel-helper-hoist-variables": "6.24.1", 196 | "babel-runtime": "6.26.0", 197 | "babel-traverse": "6.26.0", 198 | "babel-types": "6.26.0" 199 | } 200 | }, 201 | "babel-helper-define-map": { 202 | "version": "6.26.0", 203 | "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", 204 | "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", 205 | "dev": true, 206 | "requires": { 207 | "babel-helper-function-name": "6.24.1", 208 | "babel-runtime": "6.26.0", 209 | "babel-types": "6.26.0", 210 | "lodash": "4.17.4" 211 | } 212 | }, 213 | "babel-helper-function-name": { 214 | "version": "6.24.1", 215 | "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", 216 | "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", 217 | "dev": true, 218 | "requires": { 219 | "babel-helper-get-function-arity": "6.24.1", 220 | "babel-runtime": "6.26.0", 221 | "babel-template": "6.26.0", 222 | "babel-traverse": "6.26.0", 223 | "babel-types": "6.26.0" 224 | } 225 | }, 226 | "babel-helper-get-function-arity": { 227 | "version": "6.24.1", 228 | "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", 229 | "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", 230 | "dev": true, 231 | "requires": { 232 | "babel-runtime": "6.26.0", 233 | "babel-types": "6.26.0" 234 | } 235 | }, 236 | "babel-helper-hoist-variables": { 237 | "version": "6.24.1", 238 | "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", 239 | "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", 240 | "dev": true, 241 | "requires": { 242 | "babel-runtime": "6.26.0", 243 | "babel-types": "6.26.0" 244 | } 245 | }, 246 | "babel-helper-optimise-call-expression": { 247 | "version": "6.24.1", 248 | "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", 249 | "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", 250 | "dev": true, 251 | "requires": { 252 | "babel-runtime": "6.26.0", 253 | "babel-types": "6.26.0" 254 | } 255 | }, 256 | "babel-helper-regex": { 257 | "version": "6.26.0", 258 | "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", 259 | "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", 260 | "dev": true, 261 | "requires": { 262 | "babel-runtime": "6.26.0", 263 | "babel-types": "6.26.0", 264 | "lodash": "4.17.4" 265 | } 266 | }, 267 | "babel-helper-replace-supers": { 268 | "version": "6.24.1", 269 | "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", 270 | "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", 271 | "dev": true, 272 | "requires": { 273 | "babel-helper-optimise-call-expression": "6.24.1", 274 | "babel-messages": "6.23.0", 275 | "babel-runtime": "6.26.0", 276 | "babel-template": "6.26.0", 277 | "babel-traverse": "6.26.0", 278 | "babel-types": "6.26.0" 279 | } 280 | }, 281 | "babel-helpers": { 282 | "version": "6.24.1", 283 | "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", 284 | "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", 285 | "dev": true, 286 | "requires": { 287 | "babel-runtime": "6.26.0", 288 | "babel-template": "6.26.0" 289 | } 290 | }, 291 | "babel-loader": { 292 | "version": "7.1.2", 293 | "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", 294 | "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", 295 | "dev": true, 296 | "requires": { 297 | "find-cache-dir": "1.0.0", 298 | "loader-utils": "1.1.0", 299 | "mkdirp": "0.5.1" 300 | } 301 | }, 302 | "babel-messages": { 303 | "version": "6.23.0", 304 | "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", 305 | "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", 306 | "dev": true, 307 | "requires": { 308 | "babel-runtime": "6.26.0" 309 | } 310 | }, 311 | "babel-plugin-check-es2015-constants": { 312 | "version": "6.22.0", 313 | "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", 314 | "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", 315 | "dev": true, 316 | "requires": { 317 | "babel-runtime": "6.26.0" 318 | } 319 | }, 320 | "babel-plugin-transform-es2015-arrow-functions": { 321 | "version": "6.22.0", 322 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", 323 | "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", 324 | "dev": true, 325 | "requires": { 326 | "babel-runtime": "6.26.0" 327 | } 328 | }, 329 | "babel-plugin-transform-es2015-block-scoped-functions": { 330 | "version": "6.22.0", 331 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", 332 | "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", 333 | "dev": true, 334 | "requires": { 335 | "babel-runtime": "6.26.0" 336 | } 337 | }, 338 | "babel-plugin-transform-es2015-block-scoping": { 339 | "version": "6.26.0", 340 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", 341 | "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", 342 | "dev": true, 343 | "requires": { 344 | "babel-runtime": "6.26.0", 345 | "babel-template": "6.26.0", 346 | "babel-traverse": "6.26.0", 347 | "babel-types": "6.26.0", 348 | "lodash": "4.17.4" 349 | } 350 | }, 351 | "babel-plugin-transform-es2015-classes": { 352 | "version": "6.24.1", 353 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", 354 | "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", 355 | "dev": true, 356 | "requires": { 357 | "babel-helper-define-map": "6.26.0", 358 | "babel-helper-function-name": "6.24.1", 359 | "babel-helper-optimise-call-expression": "6.24.1", 360 | "babel-helper-replace-supers": "6.24.1", 361 | "babel-messages": "6.23.0", 362 | "babel-runtime": "6.26.0", 363 | "babel-template": "6.26.0", 364 | "babel-traverse": "6.26.0", 365 | "babel-types": "6.26.0" 366 | } 367 | }, 368 | "babel-plugin-transform-es2015-computed-properties": { 369 | "version": "6.24.1", 370 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", 371 | "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", 372 | "dev": true, 373 | "requires": { 374 | "babel-runtime": "6.26.0", 375 | "babel-template": "6.26.0" 376 | } 377 | }, 378 | "babel-plugin-transform-es2015-destructuring": { 379 | "version": "6.23.0", 380 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", 381 | "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", 382 | "dev": true, 383 | "requires": { 384 | "babel-runtime": "6.26.0" 385 | } 386 | }, 387 | "babel-plugin-transform-es2015-duplicate-keys": { 388 | "version": "6.24.1", 389 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", 390 | "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", 391 | "dev": true, 392 | "requires": { 393 | "babel-runtime": "6.26.0", 394 | "babel-types": "6.26.0" 395 | } 396 | }, 397 | "babel-plugin-transform-es2015-for-of": { 398 | "version": "6.23.0", 399 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", 400 | "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", 401 | "dev": true, 402 | "requires": { 403 | "babel-runtime": "6.26.0" 404 | } 405 | }, 406 | "babel-plugin-transform-es2015-function-name": { 407 | "version": "6.24.1", 408 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", 409 | "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", 410 | "dev": true, 411 | "requires": { 412 | "babel-helper-function-name": "6.24.1", 413 | "babel-runtime": "6.26.0", 414 | "babel-types": "6.26.0" 415 | } 416 | }, 417 | "babel-plugin-transform-es2015-literals": { 418 | "version": "6.22.0", 419 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", 420 | "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", 421 | "dev": true, 422 | "requires": { 423 | "babel-runtime": "6.26.0" 424 | } 425 | }, 426 | "babel-plugin-transform-es2015-modules-amd": { 427 | "version": "6.24.1", 428 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", 429 | "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", 430 | "dev": true, 431 | "requires": { 432 | "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", 433 | "babel-runtime": "6.26.0", 434 | "babel-template": "6.26.0" 435 | } 436 | }, 437 | "babel-plugin-transform-es2015-modules-commonjs": { 438 | "version": "6.26.0", 439 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", 440 | "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", 441 | "dev": true, 442 | "requires": { 443 | "babel-plugin-transform-strict-mode": "6.24.1", 444 | "babel-runtime": "6.26.0", 445 | "babel-template": "6.26.0", 446 | "babel-types": "6.26.0" 447 | } 448 | }, 449 | "babel-plugin-transform-es2015-modules-systemjs": { 450 | "version": "6.24.1", 451 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", 452 | "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", 453 | "dev": true, 454 | "requires": { 455 | "babel-helper-hoist-variables": "6.24.1", 456 | "babel-runtime": "6.26.0", 457 | "babel-template": "6.26.0" 458 | } 459 | }, 460 | "babel-plugin-transform-es2015-modules-umd": { 461 | "version": "6.24.1", 462 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", 463 | "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", 464 | "dev": true, 465 | "requires": { 466 | "babel-plugin-transform-es2015-modules-amd": "6.24.1", 467 | "babel-runtime": "6.26.0", 468 | "babel-template": "6.26.0" 469 | } 470 | }, 471 | "babel-plugin-transform-es2015-object-super": { 472 | "version": "6.24.1", 473 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", 474 | "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", 475 | "dev": true, 476 | "requires": { 477 | "babel-helper-replace-supers": "6.24.1", 478 | "babel-runtime": "6.26.0" 479 | } 480 | }, 481 | "babel-plugin-transform-es2015-parameters": { 482 | "version": "6.24.1", 483 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", 484 | "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", 485 | "dev": true, 486 | "requires": { 487 | "babel-helper-call-delegate": "6.24.1", 488 | "babel-helper-get-function-arity": "6.24.1", 489 | "babel-runtime": "6.26.0", 490 | "babel-template": "6.26.0", 491 | "babel-traverse": "6.26.0", 492 | "babel-types": "6.26.0" 493 | } 494 | }, 495 | "babel-plugin-transform-es2015-shorthand-properties": { 496 | "version": "6.24.1", 497 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", 498 | "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", 499 | "dev": true, 500 | "requires": { 501 | "babel-runtime": "6.26.0", 502 | "babel-types": "6.26.0" 503 | } 504 | }, 505 | "babel-plugin-transform-es2015-spread": { 506 | "version": "6.22.0", 507 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", 508 | "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", 509 | "dev": true, 510 | "requires": { 511 | "babel-runtime": "6.26.0" 512 | } 513 | }, 514 | "babel-plugin-transform-es2015-sticky-regex": { 515 | "version": "6.24.1", 516 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", 517 | "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", 518 | "dev": true, 519 | "requires": { 520 | "babel-helper-regex": "6.26.0", 521 | "babel-runtime": "6.26.0", 522 | "babel-types": "6.26.0" 523 | } 524 | }, 525 | "babel-plugin-transform-es2015-template-literals": { 526 | "version": "6.22.0", 527 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", 528 | "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", 529 | "dev": true, 530 | "requires": { 531 | "babel-runtime": "6.26.0" 532 | } 533 | }, 534 | "babel-plugin-transform-es2015-typeof-symbol": { 535 | "version": "6.23.0", 536 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", 537 | "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", 538 | "dev": true, 539 | "requires": { 540 | "babel-runtime": "6.26.0" 541 | } 542 | }, 543 | "babel-plugin-transform-es2015-unicode-regex": { 544 | "version": "6.24.1", 545 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", 546 | "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", 547 | "dev": true, 548 | "requires": { 549 | "babel-helper-regex": "6.26.0", 550 | "babel-runtime": "6.26.0", 551 | "regexpu-core": "2.0.0" 552 | } 553 | }, 554 | "babel-plugin-transform-regenerator": { 555 | "version": "6.26.0", 556 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", 557 | "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", 558 | "dev": true, 559 | "requires": { 560 | "regenerator-transform": "0.10.1" 561 | } 562 | }, 563 | "babel-plugin-transform-strict-mode": { 564 | "version": "6.24.1", 565 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", 566 | "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", 567 | "dev": true, 568 | "requires": { 569 | "babel-runtime": "6.26.0", 570 | "babel-types": "6.26.0" 571 | } 572 | }, 573 | "babel-preset-es2015": { 574 | "version": "6.24.1", 575 | "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", 576 | "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", 577 | "dev": true, 578 | "requires": { 579 | "babel-plugin-check-es2015-constants": "6.22.0", 580 | "babel-plugin-transform-es2015-arrow-functions": "6.22.0", 581 | "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", 582 | "babel-plugin-transform-es2015-block-scoping": "6.26.0", 583 | "babel-plugin-transform-es2015-classes": "6.24.1", 584 | "babel-plugin-transform-es2015-computed-properties": "6.24.1", 585 | "babel-plugin-transform-es2015-destructuring": "6.23.0", 586 | "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", 587 | "babel-plugin-transform-es2015-for-of": "6.23.0", 588 | "babel-plugin-transform-es2015-function-name": "6.24.1", 589 | "babel-plugin-transform-es2015-literals": "6.22.0", 590 | "babel-plugin-transform-es2015-modules-amd": "6.24.1", 591 | "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", 592 | "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", 593 | "babel-plugin-transform-es2015-modules-umd": "6.24.1", 594 | "babel-plugin-transform-es2015-object-super": "6.24.1", 595 | "babel-plugin-transform-es2015-parameters": "6.24.1", 596 | "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", 597 | "babel-plugin-transform-es2015-spread": "6.22.0", 598 | "babel-plugin-transform-es2015-sticky-regex": "6.24.1", 599 | "babel-plugin-transform-es2015-template-literals": "6.22.0", 600 | "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", 601 | "babel-plugin-transform-es2015-unicode-regex": "6.24.1", 602 | "babel-plugin-transform-regenerator": "6.26.0" 603 | } 604 | }, 605 | "babel-register": { 606 | "version": "6.26.0", 607 | "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", 608 | "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", 609 | "dev": true, 610 | "requires": { 611 | "babel-core": "6.26.0", 612 | "babel-runtime": "6.26.0", 613 | "core-js": "2.5.3", 614 | "home-or-tmp": "2.0.0", 615 | "lodash": "4.17.4", 616 | "mkdirp": "0.5.1", 617 | "source-map-support": "0.4.18" 618 | } 619 | }, 620 | "babel-runtime": { 621 | "version": "6.26.0", 622 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", 623 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", 624 | "dev": true, 625 | "requires": { 626 | "core-js": "2.5.3", 627 | "regenerator-runtime": "0.11.1" 628 | } 629 | }, 630 | "babel-template": { 631 | "version": "6.26.0", 632 | "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", 633 | "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", 634 | "dev": true, 635 | "requires": { 636 | "babel-runtime": "6.26.0", 637 | "babel-traverse": "6.26.0", 638 | "babel-types": "6.26.0", 639 | "babylon": "6.18.0", 640 | "lodash": "4.17.4" 641 | } 642 | }, 643 | "babel-traverse": { 644 | "version": "6.26.0", 645 | "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", 646 | "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", 647 | "dev": true, 648 | "requires": { 649 | "babel-code-frame": "6.26.0", 650 | "babel-messages": "6.23.0", 651 | "babel-runtime": "6.26.0", 652 | "babel-types": "6.26.0", 653 | "babylon": "6.18.0", 654 | "debug": "2.6.9", 655 | "globals": "9.18.0", 656 | "invariant": "2.2.2", 657 | "lodash": "4.17.4" 658 | } 659 | }, 660 | "babel-types": { 661 | "version": "6.26.0", 662 | "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", 663 | "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", 664 | "dev": true, 665 | "requires": { 666 | "babel-runtime": "6.26.0", 667 | "esutils": "2.0.2", 668 | "lodash": "4.17.4", 669 | "to-fast-properties": "1.0.3" 670 | } 671 | }, 672 | "babylon": { 673 | "version": "6.18.0", 674 | "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", 675 | "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", 676 | "dev": true 677 | }, 678 | "balanced-match": { 679 | "version": "1.0.0", 680 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 681 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 682 | "dev": true 683 | }, 684 | "base64-js": { 685 | "version": "1.2.1", 686 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", 687 | "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", 688 | "dev": true 689 | }, 690 | "big.js": { 691 | "version": "3.2.0", 692 | "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", 693 | "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", 694 | "dev": true 695 | }, 696 | "binary-extensions": { 697 | "version": "1.11.0", 698 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", 699 | "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", 700 | "dev": true 701 | }, 702 | "bn.js": { 703 | "version": "4.11.8", 704 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", 705 | "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", 706 | "dev": true 707 | }, 708 | "brace-expansion": { 709 | "version": "1.1.8", 710 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", 711 | "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", 712 | "dev": true, 713 | "requires": { 714 | "balanced-match": "1.0.0", 715 | "concat-map": "0.0.1" 716 | } 717 | }, 718 | "braces": { 719 | "version": "1.8.5", 720 | "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", 721 | "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", 722 | "dev": true, 723 | "requires": { 724 | "expand-range": "1.8.2", 725 | "preserve": "0.2.0", 726 | "repeat-element": "1.1.2" 727 | } 728 | }, 729 | "brorand": { 730 | "version": "1.1.0", 731 | "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", 732 | "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", 733 | "dev": true 734 | }, 735 | "browserify-aes": { 736 | "version": "1.1.1", 737 | "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", 738 | "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", 739 | "dev": true, 740 | "requires": { 741 | "buffer-xor": "1.0.3", 742 | "cipher-base": "1.0.4", 743 | "create-hash": "1.1.3", 744 | "evp_bytestokey": "1.0.3", 745 | "inherits": "2.0.3", 746 | "safe-buffer": "5.1.1" 747 | } 748 | }, 749 | "browserify-cipher": { 750 | "version": "1.0.0", 751 | "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", 752 | "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", 753 | "dev": true, 754 | "requires": { 755 | "browserify-aes": "1.1.1", 756 | "browserify-des": "1.0.0", 757 | "evp_bytestokey": "1.0.3" 758 | } 759 | }, 760 | "browserify-des": { 761 | "version": "1.0.0", 762 | "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", 763 | "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", 764 | "dev": true, 765 | "requires": { 766 | "cipher-base": "1.0.4", 767 | "des.js": "1.0.0", 768 | "inherits": "2.0.3" 769 | } 770 | }, 771 | "browserify-rsa": { 772 | "version": "4.0.1", 773 | "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", 774 | "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", 775 | "dev": true, 776 | "requires": { 777 | "bn.js": "4.11.8", 778 | "randombytes": "2.0.6" 779 | } 780 | }, 781 | "browserify-sign": { 782 | "version": "4.0.4", 783 | "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", 784 | "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", 785 | "dev": true, 786 | "requires": { 787 | "bn.js": "4.11.8", 788 | "browserify-rsa": "4.0.1", 789 | "create-hash": "1.1.3", 790 | "create-hmac": "1.1.6", 791 | "elliptic": "6.4.0", 792 | "inherits": "2.0.3", 793 | "parse-asn1": "5.1.0" 794 | } 795 | }, 796 | "browserify-zlib": { 797 | "version": "0.2.0", 798 | "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", 799 | "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", 800 | "dev": true, 801 | "requires": { 802 | "pako": "1.0.6" 803 | } 804 | }, 805 | "buffer": { 806 | "version": "4.9.1", 807 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", 808 | "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", 809 | "dev": true, 810 | "requires": { 811 | "base64-js": "1.2.1", 812 | "ieee754": "1.1.8", 813 | "isarray": "1.0.0" 814 | } 815 | }, 816 | "buffer-xor": { 817 | "version": "1.0.3", 818 | "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", 819 | "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", 820 | "dev": true 821 | }, 822 | "builtin-modules": { 823 | "version": "1.1.1", 824 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", 825 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", 826 | "dev": true 827 | }, 828 | "builtin-status-codes": { 829 | "version": "3.0.0", 830 | "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", 831 | "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", 832 | "dev": true 833 | }, 834 | "camelcase": { 835 | "version": "1.2.1", 836 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", 837 | "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", 838 | "dev": true 839 | }, 840 | "center-align": { 841 | "version": "0.1.3", 842 | "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", 843 | "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", 844 | "dev": true, 845 | "requires": { 846 | "align-text": "0.1.4", 847 | "lazy-cache": "1.0.4" 848 | } 849 | }, 850 | "chalk": { 851 | "version": "1.1.3", 852 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 853 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 854 | "dev": true, 855 | "requires": { 856 | "ansi-styles": "2.2.1", 857 | "escape-string-regexp": "1.0.5", 858 | "has-ansi": "2.0.0", 859 | "strip-ansi": "3.0.1", 860 | "supports-color": "2.0.0" 861 | } 862 | }, 863 | "chokidar": { 864 | "version": "1.7.0", 865 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", 866 | "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", 867 | "dev": true, 868 | "requires": { 869 | "anymatch": "1.3.2", 870 | "async-each": "1.0.1", 871 | "fsevents": "1.1.3", 872 | "glob-parent": "2.0.0", 873 | "inherits": "2.0.3", 874 | "is-binary-path": "1.0.1", 875 | "is-glob": "2.0.1", 876 | "path-is-absolute": "1.0.1", 877 | "readdirp": "2.1.0" 878 | }, 879 | "dependencies": { 880 | "is-extglob": { 881 | "version": "1.0.0", 882 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 883 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", 884 | "dev": true 885 | }, 886 | "is-glob": { 887 | "version": "2.0.1", 888 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 889 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 890 | "dev": true, 891 | "requires": { 892 | "is-extglob": "1.0.0" 893 | } 894 | } 895 | } 896 | }, 897 | "cipher-base": { 898 | "version": "1.0.4", 899 | "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", 900 | "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", 901 | "dev": true, 902 | "requires": { 903 | "inherits": "2.0.3", 904 | "safe-buffer": "5.1.1" 905 | } 906 | }, 907 | "cliui": { 908 | "version": "2.1.0", 909 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", 910 | "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", 911 | "dev": true, 912 | "requires": { 913 | "center-align": "0.1.3", 914 | "right-align": "0.1.3", 915 | "wordwrap": "0.0.2" 916 | } 917 | }, 918 | "co": { 919 | "version": "4.6.0", 920 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 921 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 922 | "dev": true 923 | }, 924 | "code-point-at": { 925 | "version": "1.1.0", 926 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 927 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", 928 | "dev": true 929 | }, 930 | "commondir": { 931 | "version": "1.0.1", 932 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", 933 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", 934 | "dev": true 935 | }, 936 | "concat-map": { 937 | "version": "0.0.1", 938 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 939 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 940 | "dev": true 941 | }, 942 | "console-browserify": { 943 | "version": "1.1.0", 944 | "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", 945 | "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", 946 | "dev": true, 947 | "requires": { 948 | "date-now": "0.1.4" 949 | } 950 | }, 951 | "constants-browserify": { 952 | "version": "1.0.0", 953 | "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", 954 | "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", 955 | "dev": true 956 | }, 957 | "convert-source-map": { 958 | "version": "1.5.1", 959 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", 960 | "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", 961 | "dev": true 962 | }, 963 | "core-js": { 964 | "version": "2.5.3", 965 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", 966 | "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", 967 | "dev": true 968 | }, 969 | "core-util-is": { 970 | "version": "1.0.2", 971 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 972 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 973 | "dev": true 974 | }, 975 | "create-ecdh": { 976 | "version": "4.0.0", 977 | "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", 978 | "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", 979 | "dev": true, 980 | "requires": { 981 | "bn.js": "4.11.8", 982 | "elliptic": "6.4.0" 983 | } 984 | }, 985 | "create-hash": { 986 | "version": "1.1.3", 987 | "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", 988 | "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", 989 | "dev": true, 990 | "requires": { 991 | "cipher-base": "1.0.4", 992 | "inherits": "2.0.3", 993 | "ripemd160": "2.0.1", 994 | "sha.js": "2.4.9" 995 | } 996 | }, 997 | "create-hmac": { 998 | "version": "1.1.6", 999 | "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", 1000 | "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", 1001 | "dev": true, 1002 | "requires": { 1003 | "cipher-base": "1.0.4", 1004 | "create-hash": "1.1.3", 1005 | "inherits": "2.0.3", 1006 | "ripemd160": "2.0.1", 1007 | "safe-buffer": "5.1.1", 1008 | "sha.js": "2.4.9" 1009 | } 1010 | }, 1011 | "crypto-browserify": { 1012 | "version": "3.12.0", 1013 | "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", 1014 | "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", 1015 | "dev": true, 1016 | "requires": { 1017 | "browserify-cipher": "1.0.0", 1018 | "browserify-sign": "4.0.4", 1019 | "create-ecdh": "4.0.0", 1020 | "create-hash": "1.1.3", 1021 | "create-hmac": "1.1.6", 1022 | "diffie-hellman": "5.0.2", 1023 | "inherits": "2.0.3", 1024 | "pbkdf2": "3.0.14", 1025 | "public-encrypt": "4.0.0", 1026 | "randombytes": "2.0.6", 1027 | "randomfill": "1.0.3" 1028 | } 1029 | }, 1030 | "date-now": { 1031 | "version": "0.1.4", 1032 | "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", 1033 | "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", 1034 | "dev": true 1035 | }, 1036 | "debug": { 1037 | "version": "2.6.9", 1038 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 1039 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 1040 | "dev": true, 1041 | "requires": { 1042 | "ms": "2.0.0" 1043 | } 1044 | }, 1045 | "decamelize": { 1046 | "version": "1.2.0", 1047 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 1048 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 1049 | "dev": true 1050 | }, 1051 | "des.js": { 1052 | "version": "1.0.0", 1053 | "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", 1054 | "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", 1055 | "dev": true, 1056 | "requires": { 1057 | "inherits": "2.0.3", 1058 | "minimalistic-assert": "1.0.0" 1059 | } 1060 | }, 1061 | "detect-indent": { 1062 | "version": "4.0.0", 1063 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", 1064 | "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", 1065 | "dev": true, 1066 | "requires": { 1067 | "repeating": "2.0.1" 1068 | } 1069 | }, 1070 | "diffie-hellman": { 1071 | "version": "5.0.2", 1072 | "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", 1073 | "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", 1074 | "dev": true, 1075 | "requires": { 1076 | "bn.js": "4.11.8", 1077 | "miller-rabin": "4.0.1", 1078 | "randombytes": "2.0.6" 1079 | } 1080 | }, 1081 | "domain-browser": { 1082 | "version": "1.1.7", 1083 | "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", 1084 | "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", 1085 | "dev": true 1086 | }, 1087 | "elliptic": { 1088 | "version": "6.4.0", 1089 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", 1090 | "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", 1091 | "dev": true, 1092 | "requires": { 1093 | "bn.js": "4.11.8", 1094 | "brorand": "1.1.0", 1095 | "hash.js": "1.1.3", 1096 | "hmac-drbg": "1.0.1", 1097 | "inherits": "2.0.3", 1098 | "minimalistic-assert": "1.0.0", 1099 | "minimalistic-crypto-utils": "1.0.1" 1100 | } 1101 | }, 1102 | "emojis-list": { 1103 | "version": "2.1.0", 1104 | "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", 1105 | "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", 1106 | "dev": true 1107 | }, 1108 | "enhanced-resolve": { 1109 | "version": "3.4.1", 1110 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", 1111 | "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", 1112 | "dev": true, 1113 | "requires": { 1114 | "graceful-fs": "4.1.11", 1115 | "memory-fs": "0.4.1", 1116 | "object-assign": "4.1.1", 1117 | "tapable": "0.2.8" 1118 | } 1119 | }, 1120 | "errno": { 1121 | "version": "0.1.6", 1122 | "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz", 1123 | "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==", 1124 | "dev": true, 1125 | "requires": { 1126 | "prr": "1.0.1" 1127 | } 1128 | }, 1129 | "error-ex": { 1130 | "version": "1.3.1", 1131 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", 1132 | "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", 1133 | "dev": true, 1134 | "requires": { 1135 | "is-arrayish": "0.2.1" 1136 | } 1137 | }, 1138 | "escape-string-regexp": { 1139 | "version": "1.0.5", 1140 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1141 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1142 | "dev": true 1143 | }, 1144 | "esutils": { 1145 | "version": "2.0.2", 1146 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 1147 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 1148 | "dev": true 1149 | }, 1150 | "events": { 1151 | "version": "1.1.1", 1152 | "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", 1153 | "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" 1154 | }, 1155 | "evp_bytestokey": { 1156 | "version": "1.0.3", 1157 | "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", 1158 | "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", 1159 | "dev": true, 1160 | "requires": { 1161 | "md5.js": "1.3.4", 1162 | "safe-buffer": "5.1.1" 1163 | } 1164 | }, 1165 | "expand-brackets": { 1166 | "version": "0.1.5", 1167 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", 1168 | "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", 1169 | "dev": true, 1170 | "requires": { 1171 | "is-posix-bracket": "0.1.1" 1172 | } 1173 | }, 1174 | "expand-range": { 1175 | "version": "1.8.2", 1176 | "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", 1177 | "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", 1178 | "dev": true, 1179 | "requires": { 1180 | "fill-range": "2.2.3" 1181 | } 1182 | }, 1183 | "extglob": { 1184 | "version": "0.3.2", 1185 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", 1186 | "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", 1187 | "dev": true, 1188 | "requires": { 1189 | "is-extglob": "1.0.0" 1190 | }, 1191 | "dependencies": { 1192 | "is-extglob": { 1193 | "version": "1.0.0", 1194 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 1195 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", 1196 | "dev": true 1197 | } 1198 | } 1199 | }, 1200 | "filename-regex": { 1201 | "version": "2.0.1", 1202 | "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", 1203 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", 1204 | "dev": true 1205 | }, 1206 | "fill-range": { 1207 | "version": "2.2.3", 1208 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", 1209 | "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", 1210 | "dev": true, 1211 | "requires": { 1212 | "is-number": "2.1.0", 1213 | "isobject": "2.1.0", 1214 | "randomatic": "1.1.7", 1215 | "repeat-element": "1.1.2", 1216 | "repeat-string": "1.6.1" 1217 | } 1218 | }, 1219 | "find-cache-dir": { 1220 | "version": "1.0.0", 1221 | "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", 1222 | "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", 1223 | "dev": true, 1224 | "requires": { 1225 | "commondir": "1.0.1", 1226 | "make-dir": "1.1.0", 1227 | "pkg-dir": "2.0.0" 1228 | } 1229 | }, 1230 | "find-up": { 1231 | "version": "2.1.0", 1232 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 1233 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 1234 | "dev": true, 1235 | "requires": { 1236 | "locate-path": "2.0.0" 1237 | } 1238 | }, 1239 | "for-in": { 1240 | "version": "1.0.2", 1241 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 1242 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 1243 | "dev": true 1244 | }, 1245 | "for-own": { 1246 | "version": "0.1.5", 1247 | "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", 1248 | "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", 1249 | "dev": true, 1250 | "requires": { 1251 | "for-in": "1.0.2" 1252 | } 1253 | }, 1254 | "fsevents": { 1255 | "version": "1.1.3", 1256 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", 1257 | "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", 1258 | "dev": true, 1259 | "optional": true, 1260 | "requires": { 1261 | "nan": "2.8.0", 1262 | "node-pre-gyp": "0.6.39" 1263 | }, 1264 | "dependencies": { 1265 | "abbrev": { 1266 | "version": "1.1.0", 1267 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", 1268 | "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", 1269 | "dev": true, 1270 | "optional": true 1271 | }, 1272 | "ajv": { 1273 | "version": "4.11.8", 1274 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", 1275 | "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", 1276 | "dev": true, 1277 | "optional": true, 1278 | "requires": { 1279 | "co": "4.6.0", 1280 | "json-stable-stringify": "1.0.1" 1281 | } 1282 | }, 1283 | "ansi-regex": { 1284 | "version": "2.1.1", 1285 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 1286 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 1287 | "dev": true 1288 | }, 1289 | "aproba": { 1290 | "version": "1.1.1", 1291 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", 1292 | "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", 1293 | "dev": true, 1294 | "optional": true 1295 | }, 1296 | "are-we-there-yet": { 1297 | "version": "1.1.4", 1298 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", 1299 | "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", 1300 | "dev": true, 1301 | "optional": true, 1302 | "requires": { 1303 | "delegates": "1.0.0", 1304 | "readable-stream": "2.2.9" 1305 | } 1306 | }, 1307 | "asn1": { 1308 | "version": "0.2.3", 1309 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", 1310 | "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", 1311 | "dev": true, 1312 | "optional": true 1313 | }, 1314 | "assert-plus": { 1315 | "version": "0.2.0", 1316 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", 1317 | "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", 1318 | "dev": true, 1319 | "optional": true 1320 | }, 1321 | "asynckit": { 1322 | "version": "0.4.0", 1323 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 1324 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", 1325 | "dev": true, 1326 | "optional": true 1327 | }, 1328 | "aws-sign2": { 1329 | "version": "0.6.0", 1330 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", 1331 | "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", 1332 | "dev": true, 1333 | "optional": true 1334 | }, 1335 | "aws4": { 1336 | "version": "1.6.0", 1337 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", 1338 | "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", 1339 | "dev": true, 1340 | "optional": true 1341 | }, 1342 | "balanced-match": { 1343 | "version": "0.4.2", 1344 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", 1345 | "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", 1346 | "dev": true 1347 | }, 1348 | "bcrypt-pbkdf": { 1349 | "version": "1.0.1", 1350 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", 1351 | "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", 1352 | "dev": true, 1353 | "optional": true, 1354 | "requires": { 1355 | "tweetnacl": "0.14.5" 1356 | } 1357 | }, 1358 | "block-stream": { 1359 | "version": "0.0.9", 1360 | "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", 1361 | "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", 1362 | "dev": true, 1363 | "requires": { 1364 | "inherits": "2.0.3" 1365 | } 1366 | }, 1367 | "boom": { 1368 | "version": "2.10.1", 1369 | "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", 1370 | "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", 1371 | "dev": true, 1372 | "requires": { 1373 | "hoek": "2.16.3" 1374 | } 1375 | }, 1376 | "brace-expansion": { 1377 | "version": "1.1.7", 1378 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", 1379 | "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", 1380 | "dev": true, 1381 | "requires": { 1382 | "balanced-match": "0.4.2", 1383 | "concat-map": "0.0.1" 1384 | } 1385 | }, 1386 | "buffer-shims": { 1387 | "version": "1.0.0", 1388 | "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", 1389 | "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", 1390 | "dev": true 1391 | }, 1392 | "caseless": { 1393 | "version": "0.12.0", 1394 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 1395 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", 1396 | "dev": true, 1397 | "optional": true 1398 | }, 1399 | "co": { 1400 | "version": "4.6.0", 1401 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 1402 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 1403 | "dev": true, 1404 | "optional": true 1405 | }, 1406 | "code-point-at": { 1407 | "version": "1.1.0", 1408 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 1409 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", 1410 | "dev": true 1411 | }, 1412 | "combined-stream": { 1413 | "version": "1.0.5", 1414 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", 1415 | "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", 1416 | "dev": true, 1417 | "requires": { 1418 | "delayed-stream": "1.0.0" 1419 | } 1420 | }, 1421 | "concat-map": { 1422 | "version": "0.0.1", 1423 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1424 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 1425 | "dev": true 1426 | }, 1427 | "console-control-strings": { 1428 | "version": "1.1.0", 1429 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", 1430 | "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", 1431 | "dev": true 1432 | }, 1433 | "core-util-is": { 1434 | "version": "1.0.2", 1435 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 1436 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 1437 | "dev": true 1438 | }, 1439 | "cryptiles": { 1440 | "version": "2.0.5", 1441 | "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", 1442 | "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", 1443 | "dev": true, 1444 | "requires": { 1445 | "boom": "2.10.1" 1446 | } 1447 | }, 1448 | "dashdash": { 1449 | "version": "1.14.1", 1450 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 1451 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 1452 | "dev": true, 1453 | "optional": true, 1454 | "requires": { 1455 | "assert-plus": "1.0.0" 1456 | }, 1457 | "dependencies": { 1458 | "assert-plus": { 1459 | "version": "1.0.0", 1460 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 1461 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 1462 | "dev": true, 1463 | "optional": true 1464 | } 1465 | } 1466 | }, 1467 | "debug": { 1468 | "version": "2.6.8", 1469 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", 1470 | "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", 1471 | "dev": true, 1472 | "optional": true, 1473 | "requires": { 1474 | "ms": "2.0.0" 1475 | } 1476 | }, 1477 | "deep-extend": { 1478 | "version": "0.4.2", 1479 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", 1480 | "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", 1481 | "dev": true, 1482 | "optional": true 1483 | }, 1484 | "delayed-stream": { 1485 | "version": "1.0.0", 1486 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 1487 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 1488 | "dev": true 1489 | }, 1490 | "delegates": { 1491 | "version": "1.0.0", 1492 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", 1493 | "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", 1494 | "dev": true, 1495 | "optional": true 1496 | }, 1497 | "detect-libc": { 1498 | "version": "1.0.2", 1499 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", 1500 | "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", 1501 | "dev": true, 1502 | "optional": true 1503 | }, 1504 | "ecc-jsbn": { 1505 | "version": "0.1.1", 1506 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", 1507 | "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", 1508 | "dev": true, 1509 | "optional": true, 1510 | "requires": { 1511 | "jsbn": "0.1.1" 1512 | } 1513 | }, 1514 | "extend": { 1515 | "version": "3.0.1", 1516 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", 1517 | "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", 1518 | "dev": true, 1519 | "optional": true 1520 | }, 1521 | "extsprintf": { 1522 | "version": "1.0.2", 1523 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", 1524 | "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", 1525 | "dev": true 1526 | }, 1527 | "forever-agent": { 1528 | "version": "0.6.1", 1529 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 1530 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", 1531 | "dev": true, 1532 | "optional": true 1533 | }, 1534 | "form-data": { 1535 | "version": "2.1.4", 1536 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", 1537 | "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", 1538 | "dev": true, 1539 | "optional": true, 1540 | "requires": { 1541 | "asynckit": "0.4.0", 1542 | "combined-stream": "1.0.5", 1543 | "mime-types": "2.1.15" 1544 | } 1545 | }, 1546 | "fs.realpath": { 1547 | "version": "1.0.0", 1548 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1549 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1550 | "dev": true 1551 | }, 1552 | "fstream": { 1553 | "version": "1.0.11", 1554 | "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", 1555 | "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", 1556 | "dev": true, 1557 | "requires": { 1558 | "graceful-fs": "4.1.11", 1559 | "inherits": "2.0.3", 1560 | "mkdirp": "0.5.1", 1561 | "rimraf": "2.6.1" 1562 | } 1563 | }, 1564 | "fstream-ignore": { 1565 | "version": "1.0.5", 1566 | "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", 1567 | "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", 1568 | "dev": true, 1569 | "optional": true, 1570 | "requires": { 1571 | "fstream": "1.0.11", 1572 | "inherits": "2.0.3", 1573 | "minimatch": "3.0.4" 1574 | } 1575 | }, 1576 | "gauge": { 1577 | "version": "2.7.4", 1578 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", 1579 | "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", 1580 | "dev": true, 1581 | "optional": true, 1582 | "requires": { 1583 | "aproba": "1.1.1", 1584 | "console-control-strings": "1.1.0", 1585 | "has-unicode": "2.0.1", 1586 | "object-assign": "4.1.1", 1587 | "signal-exit": "3.0.2", 1588 | "string-width": "1.0.2", 1589 | "strip-ansi": "3.0.1", 1590 | "wide-align": "1.1.2" 1591 | } 1592 | }, 1593 | "getpass": { 1594 | "version": "0.1.7", 1595 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 1596 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 1597 | "dev": true, 1598 | "optional": true, 1599 | "requires": { 1600 | "assert-plus": "1.0.0" 1601 | }, 1602 | "dependencies": { 1603 | "assert-plus": { 1604 | "version": "1.0.0", 1605 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 1606 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 1607 | "dev": true, 1608 | "optional": true 1609 | } 1610 | } 1611 | }, 1612 | "glob": { 1613 | "version": "7.1.2", 1614 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 1615 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 1616 | "dev": true, 1617 | "requires": { 1618 | "fs.realpath": "1.0.0", 1619 | "inflight": "1.0.6", 1620 | "inherits": "2.0.3", 1621 | "minimatch": "3.0.4", 1622 | "once": "1.4.0", 1623 | "path-is-absolute": "1.0.1" 1624 | } 1625 | }, 1626 | "graceful-fs": { 1627 | "version": "4.1.11", 1628 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 1629 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 1630 | "dev": true 1631 | }, 1632 | "har-schema": { 1633 | "version": "1.0.5", 1634 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", 1635 | "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", 1636 | "dev": true, 1637 | "optional": true 1638 | }, 1639 | "har-validator": { 1640 | "version": "4.2.1", 1641 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", 1642 | "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", 1643 | "dev": true, 1644 | "optional": true, 1645 | "requires": { 1646 | "ajv": "4.11.8", 1647 | "har-schema": "1.0.5" 1648 | } 1649 | }, 1650 | "has-unicode": { 1651 | "version": "2.0.1", 1652 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", 1653 | "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", 1654 | "dev": true, 1655 | "optional": true 1656 | }, 1657 | "hawk": { 1658 | "version": "3.1.3", 1659 | "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", 1660 | "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", 1661 | "dev": true, 1662 | "requires": { 1663 | "boom": "2.10.1", 1664 | "cryptiles": "2.0.5", 1665 | "hoek": "2.16.3", 1666 | "sntp": "1.0.9" 1667 | } 1668 | }, 1669 | "hoek": { 1670 | "version": "2.16.3", 1671 | "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", 1672 | "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", 1673 | "dev": true 1674 | }, 1675 | "http-signature": { 1676 | "version": "1.1.1", 1677 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", 1678 | "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", 1679 | "dev": true, 1680 | "optional": true, 1681 | "requires": { 1682 | "assert-plus": "0.2.0", 1683 | "jsprim": "1.4.0", 1684 | "sshpk": "1.13.0" 1685 | } 1686 | }, 1687 | "inflight": { 1688 | "version": "1.0.6", 1689 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1690 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1691 | "dev": true, 1692 | "requires": { 1693 | "once": "1.4.0", 1694 | "wrappy": "1.0.2" 1695 | } 1696 | }, 1697 | "inherits": { 1698 | "version": "2.0.3", 1699 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1700 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 1701 | "dev": true 1702 | }, 1703 | "ini": { 1704 | "version": "1.3.4", 1705 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", 1706 | "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", 1707 | "dev": true, 1708 | "optional": true 1709 | }, 1710 | "is-fullwidth-code-point": { 1711 | "version": "1.0.0", 1712 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 1713 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 1714 | "dev": true, 1715 | "requires": { 1716 | "number-is-nan": "1.0.1" 1717 | } 1718 | }, 1719 | "is-typedarray": { 1720 | "version": "1.0.0", 1721 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 1722 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 1723 | "dev": true, 1724 | "optional": true 1725 | }, 1726 | "isarray": { 1727 | "version": "1.0.0", 1728 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1729 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 1730 | "dev": true 1731 | }, 1732 | "isstream": { 1733 | "version": "0.1.2", 1734 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 1735 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", 1736 | "dev": true, 1737 | "optional": true 1738 | }, 1739 | "jodid25519": { 1740 | "version": "1.0.2", 1741 | "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", 1742 | "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", 1743 | "dev": true, 1744 | "optional": true, 1745 | "requires": { 1746 | "jsbn": "0.1.1" 1747 | } 1748 | }, 1749 | "jsbn": { 1750 | "version": "0.1.1", 1751 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 1752 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", 1753 | "dev": true, 1754 | "optional": true 1755 | }, 1756 | "json-schema": { 1757 | "version": "0.2.3", 1758 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 1759 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", 1760 | "dev": true, 1761 | "optional": true 1762 | }, 1763 | "json-stable-stringify": { 1764 | "version": "1.0.1", 1765 | "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", 1766 | "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", 1767 | "dev": true, 1768 | "optional": true, 1769 | "requires": { 1770 | "jsonify": "0.0.0" 1771 | } 1772 | }, 1773 | "json-stringify-safe": { 1774 | "version": "5.0.1", 1775 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 1776 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", 1777 | "dev": true, 1778 | "optional": true 1779 | }, 1780 | "jsonify": { 1781 | "version": "0.0.0", 1782 | "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", 1783 | "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", 1784 | "dev": true, 1785 | "optional": true 1786 | }, 1787 | "jsprim": { 1788 | "version": "1.4.0", 1789 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", 1790 | "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", 1791 | "dev": true, 1792 | "optional": true, 1793 | "requires": { 1794 | "assert-plus": "1.0.0", 1795 | "extsprintf": "1.0.2", 1796 | "json-schema": "0.2.3", 1797 | "verror": "1.3.6" 1798 | }, 1799 | "dependencies": { 1800 | "assert-plus": { 1801 | "version": "1.0.0", 1802 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 1803 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 1804 | "dev": true, 1805 | "optional": true 1806 | } 1807 | } 1808 | }, 1809 | "mime-db": { 1810 | "version": "1.27.0", 1811 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", 1812 | "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", 1813 | "dev": true 1814 | }, 1815 | "mime-types": { 1816 | "version": "2.1.15", 1817 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", 1818 | "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", 1819 | "dev": true, 1820 | "requires": { 1821 | "mime-db": "1.27.0" 1822 | } 1823 | }, 1824 | "minimatch": { 1825 | "version": "3.0.4", 1826 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1827 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1828 | "dev": true, 1829 | "requires": { 1830 | "brace-expansion": "1.1.7" 1831 | } 1832 | }, 1833 | "minimist": { 1834 | "version": "0.0.8", 1835 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 1836 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 1837 | "dev": true 1838 | }, 1839 | "mkdirp": { 1840 | "version": "0.5.1", 1841 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 1842 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 1843 | "dev": true, 1844 | "requires": { 1845 | "minimist": "0.0.8" 1846 | } 1847 | }, 1848 | "ms": { 1849 | "version": "2.0.0", 1850 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1851 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 1852 | "dev": true, 1853 | "optional": true 1854 | }, 1855 | "node-pre-gyp": { 1856 | "version": "0.6.39", 1857 | "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", 1858 | "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", 1859 | "dev": true, 1860 | "optional": true, 1861 | "requires": { 1862 | "detect-libc": "1.0.2", 1863 | "hawk": "3.1.3", 1864 | "mkdirp": "0.5.1", 1865 | "nopt": "4.0.1", 1866 | "npmlog": "4.1.0", 1867 | "rc": "1.2.1", 1868 | "request": "2.81.0", 1869 | "rimraf": "2.6.1", 1870 | "semver": "5.3.0", 1871 | "tar": "2.2.1", 1872 | "tar-pack": "3.4.0" 1873 | } 1874 | }, 1875 | "nopt": { 1876 | "version": "4.0.1", 1877 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", 1878 | "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", 1879 | "dev": true, 1880 | "optional": true, 1881 | "requires": { 1882 | "abbrev": "1.1.0", 1883 | "osenv": "0.1.4" 1884 | } 1885 | }, 1886 | "npmlog": { 1887 | "version": "4.1.0", 1888 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", 1889 | "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", 1890 | "dev": true, 1891 | "optional": true, 1892 | "requires": { 1893 | "are-we-there-yet": "1.1.4", 1894 | "console-control-strings": "1.1.0", 1895 | "gauge": "2.7.4", 1896 | "set-blocking": "2.0.0" 1897 | } 1898 | }, 1899 | "number-is-nan": { 1900 | "version": "1.0.1", 1901 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 1902 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 1903 | "dev": true 1904 | }, 1905 | "oauth-sign": { 1906 | "version": "0.8.2", 1907 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", 1908 | "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", 1909 | "dev": true, 1910 | "optional": true 1911 | }, 1912 | "object-assign": { 1913 | "version": "4.1.1", 1914 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1915 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 1916 | "dev": true, 1917 | "optional": true 1918 | }, 1919 | "once": { 1920 | "version": "1.4.0", 1921 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1922 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1923 | "dev": true, 1924 | "requires": { 1925 | "wrappy": "1.0.2" 1926 | } 1927 | }, 1928 | "os-homedir": { 1929 | "version": "1.0.2", 1930 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 1931 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 1932 | "dev": true, 1933 | "optional": true 1934 | }, 1935 | "os-tmpdir": { 1936 | "version": "1.0.2", 1937 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 1938 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 1939 | "dev": true, 1940 | "optional": true 1941 | }, 1942 | "osenv": { 1943 | "version": "0.1.4", 1944 | "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", 1945 | "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", 1946 | "dev": true, 1947 | "optional": true, 1948 | "requires": { 1949 | "os-homedir": "1.0.2", 1950 | "os-tmpdir": "1.0.2" 1951 | } 1952 | }, 1953 | "path-is-absolute": { 1954 | "version": "1.0.1", 1955 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1956 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1957 | "dev": true 1958 | }, 1959 | "performance-now": { 1960 | "version": "0.2.0", 1961 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", 1962 | "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", 1963 | "dev": true, 1964 | "optional": true 1965 | }, 1966 | "process-nextick-args": { 1967 | "version": "1.0.7", 1968 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 1969 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", 1970 | "dev": true 1971 | }, 1972 | "punycode": { 1973 | "version": "1.4.1", 1974 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 1975 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 1976 | "dev": true, 1977 | "optional": true 1978 | }, 1979 | "qs": { 1980 | "version": "6.4.0", 1981 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", 1982 | "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", 1983 | "dev": true, 1984 | "optional": true 1985 | }, 1986 | "rc": { 1987 | "version": "1.2.1", 1988 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", 1989 | "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", 1990 | "dev": true, 1991 | "optional": true, 1992 | "requires": { 1993 | "deep-extend": "0.4.2", 1994 | "ini": "1.3.4", 1995 | "minimist": "1.2.0", 1996 | "strip-json-comments": "2.0.1" 1997 | }, 1998 | "dependencies": { 1999 | "minimist": { 2000 | "version": "1.2.0", 2001 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 2002 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 2003 | "dev": true, 2004 | "optional": true 2005 | } 2006 | } 2007 | }, 2008 | "readable-stream": { 2009 | "version": "2.2.9", 2010 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", 2011 | "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", 2012 | "dev": true, 2013 | "requires": { 2014 | "buffer-shims": "1.0.0", 2015 | "core-util-is": "1.0.2", 2016 | "inherits": "2.0.3", 2017 | "isarray": "1.0.0", 2018 | "process-nextick-args": "1.0.7", 2019 | "string_decoder": "1.0.1", 2020 | "util-deprecate": "1.0.2" 2021 | } 2022 | }, 2023 | "request": { 2024 | "version": "2.81.0", 2025 | "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", 2026 | "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", 2027 | "dev": true, 2028 | "optional": true, 2029 | "requires": { 2030 | "aws-sign2": "0.6.0", 2031 | "aws4": "1.6.0", 2032 | "caseless": "0.12.0", 2033 | "combined-stream": "1.0.5", 2034 | "extend": "3.0.1", 2035 | "forever-agent": "0.6.1", 2036 | "form-data": "2.1.4", 2037 | "har-validator": "4.2.1", 2038 | "hawk": "3.1.3", 2039 | "http-signature": "1.1.1", 2040 | "is-typedarray": "1.0.0", 2041 | "isstream": "0.1.2", 2042 | "json-stringify-safe": "5.0.1", 2043 | "mime-types": "2.1.15", 2044 | "oauth-sign": "0.8.2", 2045 | "performance-now": "0.2.0", 2046 | "qs": "6.4.0", 2047 | "safe-buffer": "5.0.1", 2048 | "stringstream": "0.0.5", 2049 | "tough-cookie": "2.3.2", 2050 | "tunnel-agent": "0.6.0", 2051 | "uuid": "3.0.1" 2052 | } 2053 | }, 2054 | "rimraf": { 2055 | "version": "2.6.1", 2056 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", 2057 | "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", 2058 | "dev": true, 2059 | "requires": { 2060 | "glob": "7.1.2" 2061 | } 2062 | }, 2063 | "safe-buffer": { 2064 | "version": "5.0.1", 2065 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", 2066 | "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", 2067 | "dev": true 2068 | }, 2069 | "semver": { 2070 | "version": "5.3.0", 2071 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", 2072 | "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", 2073 | "dev": true, 2074 | "optional": true 2075 | }, 2076 | "set-blocking": { 2077 | "version": "2.0.0", 2078 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 2079 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 2080 | "dev": true, 2081 | "optional": true 2082 | }, 2083 | "signal-exit": { 2084 | "version": "3.0.2", 2085 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 2086 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 2087 | "dev": true, 2088 | "optional": true 2089 | }, 2090 | "sntp": { 2091 | "version": "1.0.9", 2092 | "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", 2093 | "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", 2094 | "dev": true, 2095 | "requires": { 2096 | "hoek": "2.16.3" 2097 | } 2098 | }, 2099 | "sshpk": { 2100 | "version": "1.13.0", 2101 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", 2102 | "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", 2103 | "dev": true, 2104 | "optional": true, 2105 | "requires": { 2106 | "asn1": "0.2.3", 2107 | "assert-plus": "1.0.0", 2108 | "bcrypt-pbkdf": "1.0.1", 2109 | "dashdash": "1.14.1", 2110 | "ecc-jsbn": "0.1.1", 2111 | "getpass": "0.1.7", 2112 | "jodid25519": "1.0.2", 2113 | "jsbn": "0.1.1", 2114 | "tweetnacl": "0.14.5" 2115 | }, 2116 | "dependencies": { 2117 | "assert-plus": { 2118 | "version": "1.0.0", 2119 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 2120 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 2121 | "dev": true, 2122 | "optional": true 2123 | } 2124 | } 2125 | }, 2126 | "string-width": { 2127 | "version": "1.0.2", 2128 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 2129 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 2130 | "dev": true, 2131 | "requires": { 2132 | "code-point-at": "1.1.0", 2133 | "is-fullwidth-code-point": "1.0.0", 2134 | "strip-ansi": "3.0.1" 2135 | } 2136 | }, 2137 | "string_decoder": { 2138 | "version": "1.0.1", 2139 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", 2140 | "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", 2141 | "dev": true, 2142 | "requires": { 2143 | "safe-buffer": "5.0.1" 2144 | } 2145 | }, 2146 | "stringstream": { 2147 | "version": "0.0.5", 2148 | "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", 2149 | "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", 2150 | "dev": true, 2151 | "optional": true 2152 | }, 2153 | "strip-ansi": { 2154 | "version": "3.0.1", 2155 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 2156 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 2157 | "dev": true, 2158 | "requires": { 2159 | "ansi-regex": "2.1.1" 2160 | } 2161 | }, 2162 | "strip-json-comments": { 2163 | "version": "2.0.1", 2164 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 2165 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 2166 | "dev": true, 2167 | "optional": true 2168 | }, 2169 | "tar": { 2170 | "version": "2.2.1", 2171 | "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", 2172 | "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", 2173 | "dev": true, 2174 | "requires": { 2175 | "block-stream": "0.0.9", 2176 | "fstream": "1.0.11", 2177 | "inherits": "2.0.3" 2178 | } 2179 | }, 2180 | "tar-pack": { 2181 | "version": "3.4.0", 2182 | "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", 2183 | "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", 2184 | "dev": true, 2185 | "optional": true, 2186 | "requires": { 2187 | "debug": "2.6.8", 2188 | "fstream": "1.0.11", 2189 | "fstream-ignore": "1.0.5", 2190 | "once": "1.4.0", 2191 | "readable-stream": "2.2.9", 2192 | "rimraf": "2.6.1", 2193 | "tar": "2.2.1", 2194 | "uid-number": "0.0.6" 2195 | } 2196 | }, 2197 | "tough-cookie": { 2198 | "version": "2.3.2", 2199 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", 2200 | "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", 2201 | "dev": true, 2202 | "optional": true, 2203 | "requires": { 2204 | "punycode": "1.4.1" 2205 | } 2206 | }, 2207 | "tunnel-agent": { 2208 | "version": "0.6.0", 2209 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 2210 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 2211 | "dev": true, 2212 | "optional": true, 2213 | "requires": { 2214 | "safe-buffer": "5.0.1" 2215 | } 2216 | }, 2217 | "tweetnacl": { 2218 | "version": "0.14.5", 2219 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 2220 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", 2221 | "dev": true, 2222 | "optional": true 2223 | }, 2224 | "uid-number": { 2225 | "version": "0.0.6", 2226 | "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", 2227 | "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", 2228 | "dev": true, 2229 | "optional": true 2230 | }, 2231 | "util-deprecate": { 2232 | "version": "1.0.2", 2233 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2234 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 2235 | "dev": true 2236 | }, 2237 | "uuid": { 2238 | "version": "3.0.1", 2239 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", 2240 | "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", 2241 | "dev": true, 2242 | "optional": true 2243 | }, 2244 | "verror": { 2245 | "version": "1.3.6", 2246 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", 2247 | "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", 2248 | "dev": true, 2249 | "optional": true, 2250 | "requires": { 2251 | "extsprintf": "1.0.2" 2252 | } 2253 | }, 2254 | "wide-align": { 2255 | "version": "1.1.2", 2256 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", 2257 | "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", 2258 | "dev": true, 2259 | "optional": true, 2260 | "requires": { 2261 | "string-width": "1.0.2" 2262 | } 2263 | }, 2264 | "wrappy": { 2265 | "version": "1.0.2", 2266 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2267 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2268 | "dev": true 2269 | } 2270 | } 2271 | }, 2272 | "get-caller-file": { 2273 | "version": "1.0.2", 2274 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", 2275 | "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", 2276 | "dev": true 2277 | }, 2278 | "glob-base": { 2279 | "version": "0.3.0", 2280 | "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", 2281 | "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", 2282 | "dev": true, 2283 | "requires": { 2284 | "glob-parent": "2.0.0", 2285 | "is-glob": "2.0.1" 2286 | }, 2287 | "dependencies": { 2288 | "is-extglob": { 2289 | "version": "1.0.0", 2290 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 2291 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", 2292 | "dev": true 2293 | }, 2294 | "is-glob": { 2295 | "version": "2.0.1", 2296 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 2297 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 2298 | "dev": true, 2299 | "requires": { 2300 | "is-extglob": "1.0.0" 2301 | } 2302 | } 2303 | } 2304 | }, 2305 | "glob-parent": { 2306 | "version": "2.0.0", 2307 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", 2308 | "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", 2309 | "dev": true, 2310 | "requires": { 2311 | "is-glob": "2.0.1" 2312 | }, 2313 | "dependencies": { 2314 | "is-extglob": { 2315 | "version": "1.0.0", 2316 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 2317 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", 2318 | "dev": true 2319 | }, 2320 | "is-glob": { 2321 | "version": "2.0.1", 2322 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 2323 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 2324 | "dev": true, 2325 | "requires": { 2326 | "is-extglob": "1.0.0" 2327 | } 2328 | } 2329 | } 2330 | }, 2331 | "globals": { 2332 | "version": "9.18.0", 2333 | "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", 2334 | "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", 2335 | "dev": true 2336 | }, 2337 | "graceful-fs": { 2338 | "version": "4.1.11", 2339 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 2340 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 2341 | "dev": true 2342 | }, 2343 | "has-ansi": { 2344 | "version": "2.0.0", 2345 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 2346 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 2347 | "dev": true, 2348 | "requires": { 2349 | "ansi-regex": "2.1.1" 2350 | } 2351 | }, 2352 | "has-flag": { 2353 | "version": "1.0.0", 2354 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", 2355 | "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", 2356 | "dev": true 2357 | }, 2358 | "hash-base": { 2359 | "version": "2.0.2", 2360 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", 2361 | "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", 2362 | "dev": true, 2363 | "requires": { 2364 | "inherits": "2.0.3" 2365 | } 2366 | }, 2367 | "hash.js": { 2368 | "version": "1.1.3", 2369 | "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", 2370 | "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", 2371 | "dev": true, 2372 | "requires": { 2373 | "inherits": "2.0.3", 2374 | "minimalistic-assert": "1.0.0" 2375 | } 2376 | }, 2377 | "hmac-drbg": { 2378 | "version": "1.0.1", 2379 | "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", 2380 | "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", 2381 | "dev": true, 2382 | "requires": { 2383 | "hash.js": "1.1.3", 2384 | "minimalistic-assert": "1.0.0", 2385 | "minimalistic-crypto-utils": "1.0.1" 2386 | } 2387 | }, 2388 | "home-or-tmp": { 2389 | "version": "2.0.0", 2390 | "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", 2391 | "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", 2392 | "dev": true, 2393 | "requires": { 2394 | "os-homedir": "1.0.2", 2395 | "os-tmpdir": "1.0.2" 2396 | } 2397 | }, 2398 | "hosted-git-info": { 2399 | "version": "2.5.0", 2400 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", 2401 | "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", 2402 | "dev": true 2403 | }, 2404 | "https-browserify": { 2405 | "version": "1.0.0", 2406 | "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", 2407 | "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", 2408 | "dev": true 2409 | }, 2410 | "ieee754": { 2411 | "version": "1.1.8", 2412 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", 2413 | "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", 2414 | "dev": true 2415 | }, 2416 | "indexof": { 2417 | "version": "0.0.1", 2418 | "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", 2419 | "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", 2420 | "dev": true 2421 | }, 2422 | "inherits": { 2423 | "version": "2.0.3", 2424 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 2425 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 2426 | "dev": true 2427 | }, 2428 | "interpret": { 2429 | "version": "1.1.0", 2430 | "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", 2431 | "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", 2432 | "dev": true 2433 | }, 2434 | "invariant": { 2435 | "version": "2.2.2", 2436 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", 2437 | "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", 2438 | "dev": true, 2439 | "requires": { 2440 | "loose-envify": "1.3.1" 2441 | } 2442 | }, 2443 | "invert-kv": { 2444 | "version": "1.0.0", 2445 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", 2446 | "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", 2447 | "dev": true 2448 | }, 2449 | "is-arrayish": { 2450 | "version": "0.2.1", 2451 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 2452 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 2453 | "dev": true 2454 | }, 2455 | "is-binary-path": { 2456 | "version": "1.0.1", 2457 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", 2458 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", 2459 | "dev": true, 2460 | "requires": { 2461 | "binary-extensions": "1.11.0" 2462 | } 2463 | }, 2464 | "is-buffer": { 2465 | "version": "1.1.6", 2466 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 2467 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", 2468 | "dev": true 2469 | }, 2470 | "is-builtin-module": { 2471 | "version": "1.0.0", 2472 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", 2473 | "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", 2474 | "dev": true, 2475 | "requires": { 2476 | "builtin-modules": "1.1.1" 2477 | } 2478 | }, 2479 | "is-dotfile": { 2480 | "version": "1.0.3", 2481 | "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", 2482 | "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", 2483 | "dev": true 2484 | }, 2485 | "is-equal-shallow": { 2486 | "version": "0.1.3", 2487 | "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", 2488 | "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", 2489 | "dev": true, 2490 | "requires": { 2491 | "is-primitive": "2.0.0" 2492 | } 2493 | }, 2494 | "is-extendable": { 2495 | "version": "0.1.1", 2496 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 2497 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 2498 | "dev": true 2499 | }, 2500 | "is-finite": { 2501 | "version": "1.0.2", 2502 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 2503 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 2504 | "dev": true, 2505 | "requires": { 2506 | "number-is-nan": "1.0.1" 2507 | } 2508 | }, 2509 | "is-fullwidth-code-point": { 2510 | "version": "1.0.0", 2511 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 2512 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 2513 | "dev": true, 2514 | "requires": { 2515 | "number-is-nan": "1.0.1" 2516 | } 2517 | }, 2518 | "is-number": { 2519 | "version": "2.1.0", 2520 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", 2521 | "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", 2522 | "dev": true, 2523 | "requires": { 2524 | "kind-of": "3.2.2" 2525 | } 2526 | }, 2527 | "is-posix-bracket": { 2528 | "version": "0.1.1", 2529 | "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", 2530 | "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", 2531 | "dev": true 2532 | }, 2533 | "is-primitive": { 2534 | "version": "2.0.0", 2535 | "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", 2536 | "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", 2537 | "dev": true 2538 | }, 2539 | "is-utf8": { 2540 | "version": "0.2.1", 2541 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 2542 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", 2543 | "dev": true 2544 | }, 2545 | "isarray": { 2546 | "version": "1.0.0", 2547 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2548 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 2549 | "dev": true 2550 | }, 2551 | "isobject": { 2552 | "version": "2.1.0", 2553 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 2554 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 2555 | "dev": true, 2556 | "requires": { 2557 | "isarray": "1.0.0" 2558 | } 2559 | }, 2560 | "js-tokens": { 2561 | "version": "3.0.2", 2562 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 2563 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 2564 | "dev": true 2565 | }, 2566 | "jsesc": { 2567 | "version": "1.3.0", 2568 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", 2569 | "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", 2570 | "dev": true 2571 | }, 2572 | "json-loader": { 2573 | "version": "0.5.7", 2574 | "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", 2575 | "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", 2576 | "dev": true 2577 | }, 2578 | "json-stable-stringify": { 2579 | "version": "1.0.1", 2580 | "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", 2581 | "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", 2582 | "dev": true, 2583 | "requires": { 2584 | "jsonify": "0.0.0" 2585 | } 2586 | }, 2587 | "json5": { 2588 | "version": "0.5.1", 2589 | "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", 2590 | "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", 2591 | "dev": true 2592 | }, 2593 | "jsonify": { 2594 | "version": "0.0.0", 2595 | "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", 2596 | "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", 2597 | "dev": true 2598 | }, 2599 | "kind-of": { 2600 | "version": "3.2.2", 2601 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2602 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2603 | "dev": true, 2604 | "requires": { 2605 | "is-buffer": "1.1.6" 2606 | } 2607 | }, 2608 | "lazy-cache": { 2609 | "version": "1.0.4", 2610 | "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", 2611 | "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", 2612 | "dev": true 2613 | }, 2614 | "lcid": { 2615 | "version": "1.0.0", 2616 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", 2617 | "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", 2618 | "dev": true, 2619 | "requires": { 2620 | "invert-kv": "1.0.0" 2621 | } 2622 | }, 2623 | "load-json-file": { 2624 | "version": "1.1.0", 2625 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 2626 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 2627 | "dev": true, 2628 | "requires": { 2629 | "graceful-fs": "4.1.11", 2630 | "parse-json": "2.2.0", 2631 | "pify": "2.3.0", 2632 | "pinkie-promise": "2.0.1", 2633 | "strip-bom": "2.0.0" 2634 | }, 2635 | "dependencies": { 2636 | "pify": { 2637 | "version": "2.3.0", 2638 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 2639 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 2640 | "dev": true 2641 | } 2642 | } 2643 | }, 2644 | "loader-runner": { 2645 | "version": "2.3.0", 2646 | "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", 2647 | "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", 2648 | "dev": true 2649 | }, 2650 | "loader-utils": { 2651 | "version": "1.1.0", 2652 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", 2653 | "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", 2654 | "dev": true, 2655 | "requires": { 2656 | "big.js": "3.2.0", 2657 | "emojis-list": "2.1.0", 2658 | "json5": "0.5.1" 2659 | } 2660 | }, 2661 | "locate-path": { 2662 | "version": "2.0.0", 2663 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 2664 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 2665 | "dev": true, 2666 | "requires": { 2667 | "p-locate": "2.0.0", 2668 | "path-exists": "3.0.0" 2669 | } 2670 | }, 2671 | "lodash": { 2672 | "version": "4.17.4", 2673 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", 2674 | "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", 2675 | "dev": true 2676 | }, 2677 | "longest": { 2678 | "version": "1.0.1", 2679 | "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", 2680 | "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", 2681 | "dev": true 2682 | }, 2683 | "loose-envify": { 2684 | "version": "1.3.1", 2685 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", 2686 | "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", 2687 | "dev": true, 2688 | "requires": { 2689 | "js-tokens": "3.0.2" 2690 | } 2691 | }, 2692 | "make-dir": { 2693 | "version": "1.1.0", 2694 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", 2695 | "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", 2696 | "dev": true, 2697 | "requires": { 2698 | "pify": "3.0.0" 2699 | } 2700 | }, 2701 | "md5.js": { 2702 | "version": "1.3.4", 2703 | "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", 2704 | "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", 2705 | "dev": true, 2706 | "requires": { 2707 | "hash-base": "3.0.4", 2708 | "inherits": "2.0.3" 2709 | }, 2710 | "dependencies": { 2711 | "hash-base": { 2712 | "version": "3.0.4", 2713 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", 2714 | "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", 2715 | "dev": true, 2716 | "requires": { 2717 | "inherits": "2.0.3", 2718 | "safe-buffer": "5.1.1" 2719 | } 2720 | } 2721 | } 2722 | }, 2723 | "memory-fs": { 2724 | "version": "0.4.1", 2725 | "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", 2726 | "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", 2727 | "dev": true, 2728 | "requires": { 2729 | "errno": "0.1.6", 2730 | "readable-stream": "2.3.3" 2731 | } 2732 | }, 2733 | "micromatch": { 2734 | "version": "2.3.11", 2735 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", 2736 | "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", 2737 | "dev": true, 2738 | "requires": { 2739 | "arr-diff": "2.0.0", 2740 | "array-unique": "0.2.1", 2741 | "braces": "1.8.5", 2742 | "expand-brackets": "0.1.5", 2743 | "extglob": "0.3.2", 2744 | "filename-regex": "2.0.1", 2745 | "is-extglob": "1.0.0", 2746 | "is-glob": "2.0.1", 2747 | "kind-of": "3.2.2", 2748 | "normalize-path": "2.1.1", 2749 | "object.omit": "2.0.1", 2750 | "parse-glob": "3.0.4", 2751 | "regex-cache": "0.4.4" 2752 | }, 2753 | "dependencies": { 2754 | "is-extglob": { 2755 | "version": "1.0.0", 2756 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 2757 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", 2758 | "dev": true 2759 | }, 2760 | "is-glob": { 2761 | "version": "2.0.1", 2762 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 2763 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 2764 | "dev": true, 2765 | "requires": { 2766 | "is-extglob": "1.0.0" 2767 | } 2768 | } 2769 | } 2770 | }, 2771 | "miller-rabin": { 2772 | "version": "4.0.1", 2773 | "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", 2774 | "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", 2775 | "dev": true, 2776 | "requires": { 2777 | "bn.js": "4.11.8", 2778 | "brorand": "1.1.0" 2779 | } 2780 | }, 2781 | "minimalistic-assert": { 2782 | "version": "1.0.0", 2783 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", 2784 | "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", 2785 | "dev": true 2786 | }, 2787 | "minimalistic-crypto-utils": { 2788 | "version": "1.0.1", 2789 | "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", 2790 | "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", 2791 | "dev": true 2792 | }, 2793 | "minimatch": { 2794 | "version": "3.0.4", 2795 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2796 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2797 | "dev": true, 2798 | "requires": { 2799 | "brace-expansion": "1.1.8" 2800 | } 2801 | }, 2802 | "minimist": { 2803 | "version": "0.0.8", 2804 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 2805 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 2806 | "dev": true 2807 | }, 2808 | "mkdirp": { 2809 | "version": "0.5.1", 2810 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 2811 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 2812 | "dev": true, 2813 | "requires": { 2814 | "minimist": "0.0.8" 2815 | } 2816 | }, 2817 | "ms": { 2818 | "version": "2.0.0", 2819 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 2820 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 2821 | "dev": true 2822 | }, 2823 | "nan": { 2824 | "version": "2.8.0", 2825 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", 2826 | "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", 2827 | "dev": true, 2828 | "optional": true 2829 | }, 2830 | "node-libs-browser": { 2831 | "version": "2.1.0", 2832 | "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", 2833 | "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", 2834 | "dev": true, 2835 | "requires": { 2836 | "assert": "1.4.1", 2837 | "browserify-zlib": "0.2.0", 2838 | "buffer": "4.9.1", 2839 | "console-browserify": "1.1.0", 2840 | "constants-browserify": "1.0.0", 2841 | "crypto-browserify": "3.12.0", 2842 | "domain-browser": "1.1.7", 2843 | "events": "1.1.1", 2844 | "https-browserify": "1.0.0", 2845 | "os-browserify": "0.3.0", 2846 | "path-browserify": "0.0.0", 2847 | "process": "0.11.10", 2848 | "punycode": "1.4.1", 2849 | "querystring-es3": "0.2.1", 2850 | "readable-stream": "2.3.3", 2851 | "stream-browserify": "2.0.1", 2852 | "stream-http": "2.7.2", 2853 | "string_decoder": "1.0.3", 2854 | "timers-browserify": "2.0.4", 2855 | "tty-browserify": "0.0.0", 2856 | "url": "0.11.0", 2857 | "util": "0.10.3", 2858 | "vm-browserify": "0.0.4" 2859 | } 2860 | }, 2861 | "normalize-package-data": { 2862 | "version": "2.4.0", 2863 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", 2864 | "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", 2865 | "dev": true, 2866 | "requires": { 2867 | "hosted-git-info": "2.5.0", 2868 | "is-builtin-module": "1.0.0", 2869 | "semver": "5.4.1", 2870 | "validate-npm-package-license": "3.0.1" 2871 | } 2872 | }, 2873 | "normalize-path": { 2874 | "version": "2.1.1", 2875 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 2876 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 2877 | "dev": true, 2878 | "requires": { 2879 | "remove-trailing-separator": "1.1.0" 2880 | } 2881 | }, 2882 | "number-is-nan": { 2883 | "version": "1.0.1", 2884 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 2885 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 2886 | "dev": true 2887 | }, 2888 | "object-assign": { 2889 | "version": "4.1.1", 2890 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2891 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 2892 | "dev": true 2893 | }, 2894 | "object.omit": { 2895 | "version": "2.0.1", 2896 | "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", 2897 | "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", 2898 | "dev": true, 2899 | "requires": { 2900 | "for-own": "0.1.5", 2901 | "is-extendable": "0.1.1" 2902 | } 2903 | }, 2904 | "os-browserify": { 2905 | "version": "0.3.0", 2906 | "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", 2907 | "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", 2908 | "dev": true 2909 | }, 2910 | "os-homedir": { 2911 | "version": "1.0.2", 2912 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 2913 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 2914 | "dev": true 2915 | }, 2916 | "os-locale": { 2917 | "version": "1.4.0", 2918 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", 2919 | "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", 2920 | "dev": true, 2921 | "requires": { 2922 | "lcid": "1.0.0" 2923 | } 2924 | }, 2925 | "os-tmpdir": { 2926 | "version": "1.0.2", 2927 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 2928 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 2929 | "dev": true 2930 | }, 2931 | "p-limit": { 2932 | "version": "1.2.0", 2933 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", 2934 | "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", 2935 | "dev": true, 2936 | "requires": { 2937 | "p-try": "1.0.0" 2938 | } 2939 | }, 2940 | "p-locate": { 2941 | "version": "2.0.0", 2942 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 2943 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 2944 | "dev": true, 2945 | "requires": { 2946 | "p-limit": "1.2.0" 2947 | } 2948 | }, 2949 | "p-try": { 2950 | "version": "1.0.0", 2951 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", 2952 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", 2953 | "dev": true 2954 | }, 2955 | "pako": { 2956 | "version": "1.0.6", 2957 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", 2958 | "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", 2959 | "dev": true 2960 | }, 2961 | "parse-asn1": { 2962 | "version": "5.1.0", 2963 | "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", 2964 | "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", 2965 | "dev": true, 2966 | "requires": { 2967 | "asn1.js": "4.9.2", 2968 | "browserify-aes": "1.1.1", 2969 | "create-hash": "1.1.3", 2970 | "evp_bytestokey": "1.0.3", 2971 | "pbkdf2": "3.0.14" 2972 | } 2973 | }, 2974 | "parse-glob": { 2975 | "version": "3.0.4", 2976 | "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", 2977 | "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", 2978 | "dev": true, 2979 | "requires": { 2980 | "glob-base": "0.3.0", 2981 | "is-dotfile": "1.0.3", 2982 | "is-extglob": "1.0.0", 2983 | "is-glob": "2.0.1" 2984 | }, 2985 | "dependencies": { 2986 | "is-extglob": { 2987 | "version": "1.0.0", 2988 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 2989 | "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", 2990 | "dev": true 2991 | }, 2992 | "is-glob": { 2993 | "version": "2.0.1", 2994 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 2995 | "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 2996 | "dev": true, 2997 | "requires": { 2998 | "is-extglob": "1.0.0" 2999 | } 3000 | } 3001 | } 3002 | }, 3003 | "parse-json": { 3004 | "version": "2.2.0", 3005 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 3006 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 3007 | "dev": true, 3008 | "requires": { 3009 | "error-ex": "1.3.1" 3010 | } 3011 | }, 3012 | "path-browserify": { 3013 | "version": "0.0.0", 3014 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", 3015 | "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", 3016 | "dev": true 3017 | }, 3018 | "path-exists": { 3019 | "version": "3.0.0", 3020 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 3021 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 3022 | "dev": true 3023 | }, 3024 | "path-is-absolute": { 3025 | "version": "1.0.1", 3026 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 3027 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 3028 | "dev": true 3029 | }, 3030 | "pbkdf2": { 3031 | "version": "3.0.14", 3032 | "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", 3033 | "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", 3034 | "dev": true, 3035 | "requires": { 3036 | "create-hash": "1.1.3", 3037 | "create-hmac": "1.1.6", 3038 | "ripemd160": "2.0.1", 3039 | "safe-buffer": "5.1.1", 3040 | "sha.js": "2.4.9" 3041 | } 3042 | }, 3043 | "pify": { 3044 | "version": "3.0.0", 3045 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 3046 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 3047 | "dev": true 3048 | }, 3049 | "pinkie": { 3050 | "version": "2.0.4", 3051 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 3052 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 3053 | "dev": true 3054 | }, 3055 | "pinkie-promise": { 3056 | "version": "2.0.1", 3057 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 3058 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 3059 | "dev": true, 3060 | "requires": { 3061 | "pinkie": "2.0.4" 3062 | } 3063 | }, 3064 | "pkg-dir": { 3065 | "version": "2.0.0", 3066 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", 3067 | "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", 3068 | "dev": true, 3069 | "requires": { 3070 | "find-up": "2.1.0" 3071 | } 3072 | }, 3073 | "preserve": { 3074 | "version": "0.2.0", 3075 | "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", 3076 | "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", 3077 | "dev": true 3078 | }, 3079 | "private": { 3080 | "version": "0.1.8", 3081 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", 3082 | "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", 3083 | "dev": true 3084 | }, 3085 | "process": { 3086 | "version": "0.11.10", 3087 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 3088 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", 3089 | "dev": true 3090 | }, 3091 | "process-nextick-args": { 3092 | "version": "1.0.7", 3093 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 3094 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", 3095 | "dev": true 3096 | }, 3097 | "prr": { 3098 | "version": "1.0.1", 3099 | "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", 3100 | "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", 3101 | "dev": true 3102 | }, 3103 | "public-encrypt": { 3104 | "version": "4.0.0", 3105 | "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", 3106 | "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", 3107 | "dev": true, 3108 | "requires": { 3109 | "bn.js": "4.11.8", 3110 | "browserify-rsa": "4.0.1", 3111 | "create-hash": "1.1.3", 3112 | "parse-asn1": "5.1.0", 3113 | "randombytes": "2.0.6" 3114 | } 3115 | }, 3116 | "punycode": { 3117 | "version": "1.4.1", 3118 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 3119 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", 3120 | "dev": true 3121 | }, 3122 | "querystring": { 3123 | "version": "0.2.0", 3124 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", 3125 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", 3126 | "dev": true 3127 | }, 3128 | "querystring-es3": { 3129 | "version": "0.2.1", 3130 | "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", 3131 | "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", 3132 | "dev": true 3133 | }, 3134 | "randomatic": { 3135 | "version": "1.1.7", 3136 | "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", 3137 | "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", 3138 | "dev": true, 3139 | "requires": { 3140 | "is-number": "3.0.0", 3141 | "kind-of": "4.0.0" 3142 | }, 3143 | "dependencies": { 3144 | "is-number": { 3145 | "version": "3.0.0", 3146 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 3147 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 3148 | "dev": true, 3149 | "requires": { 3150 | "kind-of": "3.2.2" 3151 | }, 3152 | "dependencies": { 3153 | "kind-of": { 3154 | "version": "3.2.2", 3155 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 3156 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 3157 | "dev": true, 3158 | "requires": { 3159 | "is-buffer": "1.1.6" 3160 | } 3161 | } 3162 | } 3163 | }, 3164 | "kind-of": { 3165 | "version": "4.0.0", 3166 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 3167 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 3168 | "dev": true, 3169 | "requires": { 3170 | "is-buffer": "1.1.6" 3171 | } 3172 | } 3173 | } 3174 | }, 3175 | "randombytes": { 3176 | "version": "2.0.6", 3177 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", 3178 | "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", 3179 | "dev": true, 3180 | "requires": { 3181 | "safe-buffer": "5.1.1" 3182 | } 3183 | }, 3184 | "randomfill": { 3185 | "version": "1.0.3", 3186 | "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz", 3187 | "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==", 3188 | "dev": true, 3189 | "requires": { 3190 | "randombytes": "2.0.6", 3191 | "safe-buffer": "5.1.1" 3192 | } 3193 | }, 3194 | "raw-loader": { 3195 | "version": "0.5.1", 3196 | "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", 3197 | "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", 3198 | "dev": true 3199 | }, 3200 | "read-pkg": { 3201 | "version": "1.1.0", 3202 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 3203 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 3204 | "dev": true, 3205 | "requires": { 3206 | "load-json-file": "1.1.0", 3207 | "normalize-package-data": "2.4.0", 3208 | "path-type": "1.1.0" 3209 | }, 3210 | "dependencies": { 3211 | "path-type": { 3212 | "version": "1.1.0", 3213 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 3214 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 3215 | "dev": true, 3216 | "requires": { 3217 | "graceful-fs": "4.1.11", 3218 | "pify": "2.3.0", 3219 | "pinkie-promise": "2.0.1" 3220 | } 3221 | }, 3222 | "pify": { 3223 | "version": "2.3.0", 3224 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 3225 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 3226 | "dev": true 3227 | } 3228 | } 3229 | }, 3230 | "read-pkg-up": { 3231 | "version": "1.0.1", 3232 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 3233 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 3234 | "dev": true, 3235 | "requires": { 3236 | "find-up": "1.1.2", 3237 | "read-pkg": "1.1.0" 3238 | }, 3239 | "dependencies": { 3240 | "find-up": { 3241 | "version": "1.1.2", 3242 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 3243 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 3244 | "dev": true, 3245 | "requires": { 3246 | "path-exists": "2.1.0", 3247 | "pinkie-promise": "2.0.1" 3248 | } 3249 | }, 3250 | "path-exists": { 3251 | "version": "2.1.0", 3252 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 3253 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 3254 | "dev": true, 3255 | "requires": { 3256 | "pinkie-promise": "2.0.1" 3257 | } 3258 | } 3259 | } 3260 | }, 3261 | "readable-stream": { 3262 | "version": "2.3.3", 3263 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", 3264 | "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", 3265 | "dev": true, 3266 | "requires": { 3267 | "core-util-is": "1.0.2", 3268 | "inherits": "2.0.3", 3269 | "isarray": "1.0.0", 3270 | "process-nextick-args": "1.0.7", 3271 | "safe-buffer": "5.1.1", 3272 | "string_decoder": "1.0.3", 3273 | "util-deprecate": "1.0.2" 3274 | } 3275 | }, 3276 | "readdirp": { 3277 | "version": "2.1.0", 3278 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", 3279 | "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", 3280 | "dev": true, 3281 | "requires": { 3282 | "graceful-fs": "4.1.11", 3283 | "minimatch": "3.0.4", 3284 | "readable-stream": "2.3.3", 3285 | "set-immediate-shim": "1.0.1" 3286 | } 3287 | }, 3288 | "regenerate": { 3289 | "version": "1.3.3", 3290 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", 3291 | "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", 3292 | "dev": true 3293 | }, 3294 | "regenerator-runtime": { 3295 | "version": "0.11.1", 3296 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", 3297 | "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", 3298 | "dev": true 3299 | }, 3300 | "regenerator-transform": { 3301 | "version": "0.10.1", 3302 | "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", 3303 | "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", 3304 | "dev": true, 3305 | "requires": { 3306 | "babel-runtime": "6.26.0", 3307 | "babel-types": "6.26.0", 3308 | "private": "0.1.8" 3309 | } 3310 | }, 3311 | "regex-cache": { 3312 | "version": "0.4.4", 3313 | "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", 3314 | "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", 3315 | "dev": true, 3316 | "requires": { 3317 | "is-equal-shallow": "0.1.3" 3318 | } 3319 | }, 3320 | "regexpu-core": { 3321 | "version": "2.0.0", 3322 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", 3323 | "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", 3324 | "dev": true, 3325 | "requires": { 3326 | "regenerate": "1.3.3", 3327 | "regjsgen": "0.2.0", 3328 | "regjsparser": "0.1.5" 3329 | } 3330 | }, 3331 | "regjsgen": { 3332 | "version": "0.2.0", 3333 | "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", 3334 | "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", 3335 | "dev": true 3336 | }, 3337 | "regjsparser": { 3338 | "version": "0.1.5", 3339 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", 3340 | "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", 3341 | "dev": true, 3342 | "requires": { 3343 | "jsesc": "0.5.0" 3344 | }, 3345 | "dependencies": { 3346 | "jsesc": { 3347 | "version": "0.5.0", 3348 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", 3349 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", 3350 | "dev": true 3351 | } 3352 | } 3353 | }, 3354 | "remove-trailing-separator": { 3355 | "version": "1.1.0", 3356 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", 3357 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", 3358 | "dev": true 3359 | }, 3360 | "repeat-element": { 3361 | "version": "1.1.2", 3362 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", 3363 | "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", 3364 | "dev": true 3365 | }, 3366 | "repeat-string": { 3367 | "version": "1.6.1", 3368 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 3369 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 3370 | "dev": true 3371 | }, 3372 | "repeating": { 3373 | "version": "2.0.1", 3374 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 3375 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 3376 | "dev": true, 3377 | "requires": { 3378 | "is-finite": "1.0.2" 3379 | } 3380 | }, 3381 | "require-directory": { 3382 | "version": "2.1.1", 3383 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 3384 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 3385 | "dev": true 3386 | }, 3387 | "require-main-filename": { 3388 | "version": "1.0.1", 3389 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", 3390 | "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", 3391 | "dev": true 3392 | }, 3393 | "right-align": { 3394 | "version": "0.1.3", 3395 | "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", 3396 | "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", 3397 | "dev": true, 3398 | "requires": { 3399 | "align-text": "0.1.4" 3400 | } 3401 | }, 3402 | "ripemd160": { 3403 | "version": "2.0.1", 3404 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", 3405 | "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", 3406 | "dev": true, 3407 | "requires": { 3408 | "hash-base": "2.0.2", 3409 | "inherits": "2.0.3" 3410 | } 3411 | }, 3412 | "safe-buffer": { 3413 | "version": "5.1.1", 3414 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 3415 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", 3416 | "dev": true 3417 | }, 3418 | "semver": { 3419 | "version": "5.4.1", 3420 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", 3421 | "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", 3422 | "dev": true 3423 | }, 3424 | "set-blocking": { 3425 | "version": "2.0.0", 3426 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 3427 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 3428 | "dev": true 3429 | }, 3430 | "set-immediate-shim": { 3431 | "version": "1.0.1", 3432 | "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", 3433 | "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", 3434 | "dev": true 3435 | }, 3436 | "setimmediate": { 3437 | "version": "1.0.5", 3438 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", 3439 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", 3440 | "dev": true 3441 | }, 3442 | "sha.js": { 3443 | "version": "2.4.9", 3444 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", 3445 | "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", 3446 | "dev": true, 3447 | "requires": { 3448 | "inherits": "2.0.3", 3449 | "safe-buffer": "5.1.1" 3450 | } 3451 | }, 3452 | "slash": { 3453 | "version": "1.0.0", 3454 | "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", 3455 | "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", 3456 | "dev": true 3457 | }, 3458 | "source-list-map": { 3459 | "version": "2.0.0", 3460 | "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", 3461 | "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", 3462 | "dev": true 3463 | }, 3464 | "source-map": { 3465 | "version": "0.5.7", 3466 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 3467 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 3468 | "dev": true 3469 | }, 3470 | "source-map-support": { 3471 | "version": "0.4.18", 3472 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", 3473 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", 3474 | "dev": true, 3475 | "requires": { 3476 | "source-map": "0.5.7" 3477 | } 3478 | }, 3479 | "spdx-correct": { 3480 | "version": "1.0.2", 3481 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", 3482 | "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", 3483 | "dev": true, 3484 | "requires": { 3485 | "spdx-license-ids": "1.2.2" 3486 | } 3487 | }, 3488 | "spdx-expression-parse": { 3489 | "version": "1.0.4", 3490 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", 3491 | "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", 3492 | "dev": true 3493 | }, 3494 | "spdx-license-ids": { 3495 | "version": "1.2.2", 3496 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", 3497 | "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", 3498 | "dev": true 3499 | }, 3500 | "stream-browserify": { 3501 | "version": "2.0.1", 3502 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", 3503 | "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", 3504 | "dev": true, 3505 | "requires": { 3506 | "inherits": "2.0.3", 3507 | "readable-stream": "2.3.3" 3508 | } 3509 | }, 3510 | "stream-http": { 3511 | "version": "2.7.2", 3512 | "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", 3513 | "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", 3514 | "dev": true, 3515 | "requires": { 3516 | "builtin-status-codes": "3.0.0", 3517 | "inherits": "2.0.3", 3518 | "readable-stream": "2.3.3", 3519 | "to-arraybuffer": "1.0.1", 3520 | "xtend": "4.0.1" 3521 | } 3522 | }, 3523 | "string-width": { 3524 | "version": "1.0.2", 3525 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 3526 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 3527 | "dev": true, 3528 | "requires": { 3529 | "code-point-at": "1.1.0", 3530 | "is-fullwidth-code-point": "1.0.0", 3531 | "strip-ansi": "3.0.1" 3532 | } 3533 | }, 3534 | "string_decoder": { 3535 | "version": "1.0.3", 3536 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", 3537 | "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", 3538 | "dev": true, 3539 | "requires": { 3540 | "safe-buffer": "5.1.1" 3541 | } 3542 | }, 3543 | "strip-ansi": { 3544 | "version": "3.0.1", 3545 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 3546 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 3547 | "dev": true, 3548 | "requires": { 3549 | "ansi-regex": "2.1.1" 3550 | } 3551 | }, 3552 | "strip-bom": { 3553 | "version": "2.0.0", 3554 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 3555 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 3556 | "dev": true, 3557 | "requires": { 3558 | "is-utf8": "0.2.1" 3559 | } 3560 | }, 3561 | "supports-color": { 3562 | "version": "2.0.0", 3563 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 3564 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 3565 | "dev": true 3566 | }, 3567 | "tapable": { 3568 | "version": "0.2.8", 3569 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", 3570 | "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", 3571 | "dev": true 3572 | }, 3573 | "timers-browserify": { 3574 | "version": "2.0.4", 3575 | "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", 3576 | "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", 3577 | "dev": true, 3578 | "requires": { 3579 | "setimmediate": "1.0.5" 3580 | } 3581 | }, 3582 | "to-arraybuffer": { 3583 | "version": "1.0.1", 3584 | "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", 3585 | "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", 3586 | "dev": true 3587 | }, 3588 | "to-fast-properties": { 3589 | "version": "1.0.3", 3590 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", 3591 | "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", 3592 | "dev": true 3593 | }, 3594 | "trim-right": { 3595 | "version": "1.0.1", 3596 | "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", 3597 | "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", 3598 | "dev": true 3599 | }, 3600 | "tty-browserify": { 3601 | "version": "0.0.0", 3602 | "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", 3603 | "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", 3604 | "dev": true 3605 | }, 3606 | "uglify-js": { 3607 | "version": "2.8.29", 3608 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", 3609 | "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", 3610 | "dev": true, 3611 | "requires": { 3612 | "source-map": "0.5.7", 3613 | "uglify-to-browserify": "1.0.2", 3614 | "yargs": "3.10.0" 3615 | }, 3616 | "dependencies": { 3617 | "yargs": { 3618 | "version": "3.10.0", 3619 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", 3620 | "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", 3621 | "dev": true, 3622 | "requires": { 3623 | "camelcase": "1.2.1", 3624 | "cliui": "2.1.0", 3625 | "decamelize": "1.2.0", 3626 | "window-size": "0.1.0" 3627 | } 3628 | } 3629 | } 3630 | }, 3631 | "uglify-to-browserify": { 3632 | "version": "1.0.2", 3633 | "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", 3634 | "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", 3635 | "dev": true, 3636 | "optional": true 3637 | }, 3638 | "url": { 3639 | "version": "0.11.0", 3640 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", 3641 | "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", 3642 | "dev": true, 3643 | "requires": { 3644 | "punycode": "1.3.2", 3645 | "querystring": "0.2.0" 3646 | }, 3647 | "dependencies": { 3648 | "punycode": { 3649 | "version": "1.3.2", 3650 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", 3651 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", 3652 | "dev": true 3653 | } 3654 | } 3655 | }, 3656 | "util": { 3657 | "version": "0.10.3", 3658 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", 3659 | "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", 3660 | "dev": true, 3661 | "requires": { 3662 | "inherits": "2.0.1" 3663 | }, 3664 | "dependencies": { 3665 | "inherits": { 3666 | "version": "2.0.1", 3667 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", 3668 | "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", 3669 | "dev": true 3670 | } 3671 | } 3672 | }, 3673 | "util-deprecate": { 3674 | "version": "1.0.2", 3675 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 3676 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 3677 | "dev": true 3678 | }, 3679 | "validate-npm-package-license": { 3680 | "version": "3.0.1", 3681 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", 3682 | "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", 3683 | "dev": true, 3684 | "requires": { 3685 | "spdx-correct": "1.0.2", 3686 | "spdx-expression-parse": "1.0.4" 3687 | } 3688 | }, 3689 | "vm-browserify": { 3690 | "version": "0.0.4", 3691 | "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", 3692 | "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", 3693 | "dev": true, 3694 | "requires": { 3695 | "indexof": "0.0.1" 3696 | } 3697 | }, 3698 | "watchpack": { 3699 | "version": "1.4.0", 3700 | "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", 3701 | "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", 3702 | "dev": true, 3703 | "requires": { 3704 | "async": "2.6.0", 3705 | "chokidar": "1.7.0", 3706 | "graceful-fs": "4.1.11" 3707 | } 3708 | }, 3709 | "webpack": { 3710 | "version": "2.7.0", 3711 | "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.7.0.tgz", 3712 | "integrity": "sha512-MjAA0ZqO1ba7ZQJRnoCdbM56mmFpipOPUv/vQpwwfSI42p5PVDdoiuK2AL2FwFUVgT859Jr43bFZXRg/LNsqvg==", 3713 | "dev": true, 3714 | "requires": { 3715 | "acorn": "5.3.0", 3716 | "acorn-dynamic-import": "2.0.2", 3717 | "ajv": "4.11.8", 3718 | "ajv-keywords": "1.5.1", 3719 | "async": "2.6.0", 3720 | "enhanced-resolve": "3.4.1", 3721 | "interpret": "1.1.0", 3722 | "json-loader": "0.5.7", 3723 | "json5": "0.5.1", 3724 | "loader-runner": "2.3.0", 3725 | "loader-utils": "0.2.17", 3726 | "memory-fs": "0.4.1", 3727 | "mkdirp": "0.5.1", 3728 | "node-libs-browser": "2.1.0", 3729 | "source-map": "0.5.7", 3730 | "supports-color": "3.2.3", 3731 | "tapable": "0.2.8", 3732 | "uglify-js": "2.8.29", 3733 | "watchpack": "1.4.0", 3734 | "webpack-sources": "1.1.0", 3735 | "yargs": "6.6.0" 3736 | }, 3737 | "dependencies": { 3738 | "loader-utils": { 3739 | "version": "0.2.17", 3740 | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", 3741 | "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", 3742 | "dev": true, 3743 | "requires": { 3744 | "big.js": "3.2.0", 3745 | "emojis-list": "2.1.0", 3746 | "json5": "0.5.1", 3747 | "object-assign": "4.1.1" 3748 | } 3749 | }, 3750 | "supports-color": { 3751 | "version": "3.2.3", 3752 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", 3753 | "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", 3754 | "dev": true, 3755 | "requires": { 3756 | "has-flag": "1.0.0" 3757 | } 3758 | } 3759 | } 3760 | }, 3761 | "webpack-sources": { 3762 | "version": "1.1.0", 3763 | "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", 3764 | "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", 3765 | "dev": true, 3766 | "requires": { 3767 | "source-list-map": "2.0.0", 3768 | "source-map": "0.6.1" 3769 | }, 3770 | "dependencies": { 3771 | "source-map": { 3772 | "version": "0.6.1", 3773 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 3774 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 3775 | "dev": true 3776 | } 3777 | } 3778 | }, 3779 | "which-module": { 3780 | "version": "1.0.0", 3781 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", 3782 | "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", 3783 | "dev": true 3784 | }, 3785 | "window-size": { 3786 | "version": "0.1.0", 3787 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", 3788 | "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", 3789 | "dev": true 3790 | }, 3791 | "wordwrap": { 3792 | "version": "0.0.2", 3793 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", 3794 | "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", 3795 | "dev": true 3796 | }, 3797 | "wrap-ansi": { 3798 | "version": "2.1.0", 3799 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", 3800 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", 3801 | "dev": true, 3802 | "requires": { 3803 | "string-width": "1.0.2", 3804 | "strip-ansi": "3.0.1" 3805 | } 3806 | }, 3807 | "xtend": { 3808 | "version": "4.0.1", 3809 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 3810 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", 3811 | "dev": true 3812 | }, 3813 | "y18n": { 3814 | "version": "3.2.1", 3815 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", 3816 | "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", 3817 | "dev": true 3818 | }, 3819 | "yargs": { 3820 | "version": "6.6.0", 3821 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", 3822 | "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", 3823 | "dev": true, 3824 | "requires": { 3825 | "camelcase": "3.0.0", 3826 | "cliui": "3.2.0", 3827 | "decamelize": "1.2.0", 3828 | "get-caller-file": "1.0.2", 3829 | "os-locale": "1.4.0", 3830 | "read-pkg-up": "1.0.1", 3831 | "require-directory": "2.1.1", 3832 | "require-main-filename": "1.0.1", 3833 | "set-blocking": "2.0.0", 3834 | "string-width": "1.0.2", 3835 | "which-module": "1.0.0", 3836 | "y18n": "3.2.1", 3837 | "yargs-parser": "4.2.1" 3838 | }, 3839 | "dependencies": { 3840 | "camelcase": { 3841 | "version": "3.0.0", 3842 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", 3843 | "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", 3844 | "dev": true 3845 | }, 3846 | "cliui": { 3847 | "version": "3.2.0", 3848 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", 3849 | "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", 3850 | "dev": true, 3851 | "requires": { 3852 | "string-width": "1.0.2", 3853 | "strip-ansi": "3.0.1", 3854 | "wrap-ansi": "2.1.0" 3855 | } 3856 | } 3857 | } 3858 | }, 3859 | "yargs-parser": { 3860 | "version": "4.2.1", 3861 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", 3862 | "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", 3863 | "dev": true, 3864 | "requires": { 3865 | "camelcase": "3.0.0" 3866 | }, 3867 | "dependencies": { 3868 | "camelcase": { 3869 | "version": "3.0.0", 3870 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", 3871 | "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", 3872 | "dev": true 3873 | } 3874 | } 3875 | } 3876 | } 3877 | } 3878 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-native-webview-messaging", 3 | "version": "2.0.0-alpha.4", 4 | "description": "React Native WebView extension with 2-way event-based communication API", 5 | "keywords": [ 6 | "react-native", 7 | "webview", 8 | "communication" 9 | ], 10 | "author": "Andrei Volchenko ", 11 | "main": "react-native", 12 | "scripts": { 13 | "dev": "NODE_ENV=dev && webpack -w", 14 | "build": "NODE_ENV=production && npm run clean && webpack --progress", 15 | "clean": "rm -rf dist", 16 | "examples:build": "cd examples && npm i && npm run web:build && cd .." 17 | }, 18 | "repository": { 19 | "type": "git", 20 | "url": "https://github.com/R1ZZU/react-native-webview-messaging.git" 21 | }, 22 | "bugs": "https://github.com/R1ZZU/react-native-webview-messaging/issues", 23 | "devDependencies": { 24 | "babel-core": "^6.24.1", 25 | "babel-loader": "^7.0.0", 26 | "babel-preset-env": "^1.6.1", 27 | "copy-webpack-plugin": "^4.3.1", 28 | "raw-loader": "^0.5.1", 29 | "webpack": "^2.6.1" 30 | }, 31 | "license": "MIT", 32 | "peerDependencies": { 33 | "react": "*", 34 | "react-native": "*" 35 | }, 36 | "dependencies": { 37 | "events": "^1.1.1" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/react-native/WebView.js: -------------------------------------------------------------------------------- 1 | import { WebView as NativeWebView } from 'react-native'; 2 | import { withMessaging } from './hoc'; 3 | 4 | export const WebView = withMessaging(NativeWebView); 5 | -------------------------------------------------------------------------------- /src/react-native/connector.js: -------------------------------------------------------------------------------- 1 | import { resolveRemote } from './remote-resolver'; 2 | import { Events } from '../shared/constants'; 3 | 4 | export async function connectToRemote(webview) { 5 | const remote = resolveRemote(webview); 6 | remote.emit(Events.READY); 7 | 8 | return await remote.ready 9 | } 10 | -------------------------------------------------------------------------------- /src/react-native/handler.js: -------------------------------------------------------------------------------- 1 | import { LIB_PREFIX } from '../shared/constants'; 2 | import { resolveRemote } from './remote-resolver'; 3 | 4 | export function handleWebViewMessage(webview, event) { 5 | const { data } = event.nativeEvent; 6 | 7 | if (data.indexOf(LIB_PREFIX) !== 0) { 8 | return; 9 | } 10 | 11 | const jsonString = data.replace(LIB_PREFIX, ''); 12 | const message = JSON.parse(jsonString); 13 | 14 | const remote = resolveRemote(webview); 15 | 16 | switch (message.type) { 17 | case 'json': 18 | remote.emit('json', message.payload, true); 19 | break; 20 | case 'text': 21 | remote.emit('text', message.payload, true); 22 | break; 23 | case 'event': 24 | remote.emit(message.meta.eventName, message.payload, true); 25 | break; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/react-native/hoc.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | import { handleWebViewMessage } from './handler'; 4 | import { register, destroy, resolveRemote } from './remote-resolver'; 5 | import { Events } from '../shared/constants'; 6 | 7 | export const withMessaging = (WebView) => { 8 | return class WebViewWithMessaging extends React.PureComponent { 9 | render() { 10 | return ( 11 | 16 | ); 17 | } 18 | 19 | componentDidMount() { 20 | register(this); 21 | } 22 | 23 | componentWillUnmount() { 24 | destroy(this); 25 | } 26 | 27 | refWebView = (wv) => { 28 | this.originalWebview = wv; 29 | } 30 | 31 | handleWebViewMessage = (event) => { 32 | handleWebViewMessage(this, event); 33 | 34 | if (this.props.onMessage) { 35 | this.props.onMessage(event); 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/react-native/index.js: -------------------------------------------------------------------------------- 1 | export { withMessaging } from './hoc'; 2 | export { connectToRemote } from './connector'; 3 | export { WebView } from './WebView'; 4 | -------------------------------------------------------------------------------- /src/react-native/remote-resolver.js: -------------------------------------------------------------------------------- 1 | import { Remote } from './remote'; 2 | import { Events } from '../shared/constants'; 3 | 4 | const webviewRemotes = new WeakMap(); 5 | 6 | export function register(webview) { 7 | const remote = new Remote(webview.originalWebview); 8 | webviewRemotes.set(webview.originalWebview, remote); 9 | } 10 | 11 | export function destroy(webview) { 12 | webviewRemotes.delete(webview.originalWebview); 13 | } 14 | 15 | export function resolveRemote(webview) { 16 | const remote = webviewRemotes.get(webview.originalWebview); 17 | return remote; 18 | } 19 | -------------------------------------------------------------------------------- /src/react-native/remote.js: -------------------------------------------------------------------------------- 1 | import EventEmitter from 'events'; 2 | import { LIB_PREFIX, LIB_READY_KEY, Events } from '../shared/constants'; 3 | 4 | export class Remote extends EventEmitter { 5 | constructor(wv) { 6 | super(); 7 | this.wv = wv; 8 | 9 | this.ready = new Promise(resolve => { 10 | this.once(Events.READY, () => { 11 | resolve(this); 12 | }); 13 | }); 14 | } 15 | 16 | send(string, fromWebview) { 17 | this.emit('text', string, fromWebview); 18 | } 19 | 20 | sendJSON(json, fromWebview) { 21 | this.emit('json', json, fromWebview); 22 | } 23 | 24 | emit(eventName, eventData, fromWebview) { 25 | if (fromWebview) { 26 | super.emit(eventName, eventData); 27 | } else { 28 | this.wv.injectJavaScript(`(function (global) { 29 | var LIB_PREFIX = ${JSON.stringify(LIB_PREFIX)}; 30 | var LIB_READY_KEY = ${JSON.stringify(LIB_READY_KEY)}; 31 | var eventName = ${JSON.stringify(eventName)}; 32 | var eventData = ${JSON.stringify(eventData)}; 33 | var READY_EVENT = ${JSON.stringify(Events.READY)}; 34 | 35 | if (LIB_PREFIX in global) { 36 | global[LIB_PREFIX].emit(eventName, eventData, true); 37 | } else if (eventName === READY_EVENT) { 38 | global[LIB_READY_KEY] = true; 39 | } 40 | })(window)`); 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/shared/constants.js: -------------------------------------------------------------------------------- 1 | export const LIB_PREFIX = '@@RN_WEBVIEW_MESSAGING'; 2 | export const LIB_READY_KEY = `${LIB_PREFIX}_IS_READY`; 3 | 4 | export const Events = { 5 | READY: `${LIB_PREFIX}/ready`, 6 | }; 7 | -------------------------------------------------------------------------------- /src/web/connector.js: -------------------------------------------------------------------------------- 1 | import { Remote } from './Remote'; 2 | import { Events, LIB_PREFIX, LIB_READY_KEY } from '../shared/constants'; 3 | 4 | export async function connectToRemote() { 5 | const remote = new Remote(); 6 | global[LIB_PREFIX] = remote; 7 | 8 | if (global[LIB_READY_KEY]) { 9 | remote.emit(Events.READY, null, true); 10 | } 11 | 12 | remote.emit(Events.READY); 13 | 14 | return await remote.ready; 15 | } 16 | -------------------------------------------------------------------------------- /src/web/index.js: -------------------------------------------------------------------------------- 1 | export { connectToRemote } from './connector'; 2 | -------------------------------------------------------------------------------- /src/web/remote.js: -------------------------------------------------------------------------------- 1 | import EventEmitter from 'events'; 2 | import { LIB_PREFIX, Events } from '../shared/constants'; 3 | 4 | function stringify(type, payload, meta) { 5 | return LIB_PREFIX + JSON.stringify({ 6 | type, 7 | payload, 8 | meta, 9 | }) 10 | } 11 | 12 | function sendToRemote(data) { 13 | if (window.postMessage.length === 2) { 14 | requestAnimationFrame(() => { 15 | sendToRemote(data); 16 | }); 17 | } else { 18 | window.postMessage(data); 19 | } 20 | } 21 | 22 | export class Remote extends EventEmitter { 23 | constructor() { 24 | super(); 25 | 26 | this.ready = new Promise(resolve => { 27 | this.once(Events.READY, () => { 28 | resolve(this); 29 | }); 30 | }) 31 | } 32 | 33 | sendJSON(json) { 34 | sendToRemote(stringify('json', json)); 35 | } 36 | 37 | send(string) { 38 | sendToRemote(stringify('text', string)); 39 | } 40 | 41 | emit(eventName, eventData, fromRN) { 42 | if (fromRN) { 43 | super.emit(eventName, eventData); 44 | return; 45 | } 46 | 47 | sendToRemote(stringify('event', eventData, { eventName })); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const webpack = require('webpack'); 3 | const CopyWebpackPlugin = require('copy-webpack-plugin'); 4 | 5 | const isDev = process.env.NODE_ENV === 'dev'; 6 | const library = 'react-native-webview-messaging'; 7 | 8 | 9 | const outPath = path.join( 10 | __dirname, 11 | ...(isDev ? ['examples', 'node_modules', library] : ['dist']), 12 | ); 13 | 14 | console.log(outPath); 15 | 16 | module.exports = { 17 | entry: { 18 | web: './src/web/index.js', 19 | }, 20 | output: { 21 | path: outPath, 22 | filename: './web/index.js', 23 | library, 24 | libraryTarget: 'umd' 25 | }, 26 | module: { 27 | rules: [{ 28 | test: /\.js$/, 29 | loader: 'babel-loader', 30 | }], 31 | }, 32 | plugins: [ 33 | ...[!isDev ? new webpack.optimize.UglifyJsPlugin() : null], 34 | new CopyWebpackPlugin([{ 35 | from: './src/react-native', 36 | to: './react-native', 37 | }, { 38 | from: './src/shared', 39 | to: './shared', 40 | }, { 41 | from: './package.json', 42 | to: '.', 43 | }]) 44 | ].filter(Boolean), 45 | }; 46 | --------------------------------------------------------------------------------