Add windows example

This commit is contained in:
kusti8 2018-02-11 17:01:02 -05:00
parent 5943306d9c
commit a829e72da1
19 changed files with 102 additions and 822 deletions

10
Demo.js
View file

@ -1,15 +1,17 @@
import React, { Component } from 'react';
import { render, Window, App, Box, Button, TextInput } from './src';
import { render, Window, App, Box, Button, TextInput, Separator } from './src';
class Example extends Component {
state = {text: 'asds'}
render() {
return (
<App>
<Window name="Example" height={500} width={500}>
<Window title="Example" height={500} width={500}>
<Box>
<Button>Hello</Button>
<TextInput />
<Button onClicked={() => this.setState({text: ''})}>Reset</Button>
<Separator />
<TextInput>{this.state.text}</TextInput>
</Box>
</Window>
</App>

View file

@ -13,10 +13,24 @@ Create native desktop applications through a React syntax, on all platforms
- Cross platform
- Native components. No more Electron
## Images
![Windows](docs/images/windows_example.png)
## [Documentation](https://proton-native.js.org)
See the documentation for a Quick Start guide.
See the documentation for how to get started and details on all the components.
## Examples
Examples can be found in `examples/`.
Examples can be found in `examples/`.
## Contributing
All contributions are welcome. Just make a PR. Below is a list of general improvements that need to be added that I would love help with:
- More examples and improve documentation
- Add UiArea
- Clean up code
- Make packaging easier
- Make creating a new app easier (something similar to `create-react-app`)

View file

@ -66,7 +66,7 @@ class Example extends Component {
render() {
return (
<App>
<Window name="Example" height={300} width={300} menuBar={false}>
<Window title="Example" height={300} width={300} menuBar={false}>
<Button stretchy={false} onClicked={() => console.log('Hello')}>
Button
</Button>

View file

@ -1 +1 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1212 431"><defs><style>.cls-1{fill:none;stroke-width:5px;}.cls-1,.cls-2{stroke:#0071bc;stroke-linecap:round;stroke-miterlimit:10;}.cls-2{fill:#0071bc;}</style></defs><title>Artboard 1</title><ellipse class="cls-1" cx="192" cy="215.5" rx="84.5" ry="213"/><circle class="cls-2" cx="191.5" cy="209.5" r="32"/><ellipse class="cls-1" cx="393.88" cy="216.33" rx="84.41" ry="212.64" transform="translate(-191.71 447.57) rotate(-60.02)"/><ellipse class="cls-1" cx="392.88" cy="215.33" rx="212.64" ry="84.41" transform="translate(-256.41 223.32) rotate(-29.98)"/><path d="M661.38,279.83h-2V227.92a20.21,20.21,0,0,1,20.25-20.09h24.2a17.58,17.58,0,0,0,17.55-17.5V163.19a16.77,16.77,0,0,0-5.17-12.31,17.33,17.33,0,0,0-12.59-5H679.14a17.54,17.54,0,0,0-12.59,5,16.77,16.77,0,0,0-5.17,12.31v46.64h-2V163a20.23,20.23,0,0,1,20-20.13h23.94a20.08,20.08,0,0,1,20,20.13v27.77a19.4,19.4,0,0,1-5.88,14.16,19.67,19.67,0,0,1-14.37,5.94h-24.2a17.21,17.21,0,0,0-12.44,5.07,16.61,16.61,0,0,0-5.11,12.25Z" transform="translate(-201.38 -1.83)"/><path d="M739.38,279.83h-3v-73h3Zm1.9-53a18.85,18.85,0,0,1,19-19h16.1v2H759.67a16.92,16.92,0,0,0-17,17Z" transform="translate(-201.38 -1.83)"/><path d="M805.38,279.83A18.18,18.18,0,0,1,792,274.29a18.44,18.44,0,0,1-5.61-13.48V225.94A18.25,18.25,0,0,1,792,212.46a18,18,0,0,1,13.39-5.63h19.1a19,19,0,0,1,18.9,19.11v34.87a18.62,18.62,0,0,1-5.51,13.48,18.4,18.4,0,0,1-13.39,5.54Zm.44-70a16.36,16.36,0,0,0-16.44,16.52v35A15.88,15.88,0,0,0,794.16,273a16,16,0,0,0,11.66,4.8H825a16.35,16.35,0,0,0,16.34-16.43v-35a16.18,16.18,0,0,0-4.78-11.72,15.93,15.93,0,0,0-11.56-4.8Z" transform="translate(-201.38 -1.83)"/><path d="M856.38,209.83v-3h13v-47h2v47h13v3h-13v70h-2v-70Z" transform="translate(-201.38 -1.83)"/><path d="M915.38,279.83A18.18,18.18,0,0,1,902,274.29a18.44,18.44,0,0,1-5.61-13.48V225.94A18.25,18.25,0,0,1,902,212.46a18,18,0,0,1,13.39-5.63h19.1a19,19,0,0,1,18.9,19.11v34.87a18.62,18.62,0,0,1-5.51,13.48,18.4,18.4,0,0,1-13.39,5.54Zm.44-70a16.36,16.36,0,0,0-16.44,16.52v35A15.88,15.88,0,0,0,904.16,273a16,16,0,0,0,11.66,4.8H935a16.35,16.35,0,0,0,16.34-16.43v-35a16.18,16.18,0,0,0-4.78-11.72,15.93,15.93,0,0,0-11.56-4.8Z" transform="translate(-201.38 -1.83)"/><path d="M1020.38,279.83V227.54a16.74,16.74,0,0,0-5.28-12.47,17,17,0,0,0-12.58-5.24H990.14a17.23,17.23,0,0,0-12.58,5.24,16.91,16.91,0,0,0-5.18,12.47v52.29h-3V227.3a20.52,20.52,0,0,1,20.36-20.47H1002a20.5,20.5,0,0,1,20.36,20.47v52.53Z" transform="translate(-201.38 -1.83)"/><path d="M1149.38,280.83V162.25A16.35,16.35,0,0,0,1133,145.83h-26.3a16.35,16.35,0,0,0-16.35,16.42V280.83h-3V162a18.78,18.78,0,0,1,5.52-13.57,18.35,18.35,0,0,1,13.41-5.58h26.15a18.38,18.38,0,0,1,13.41,5.58,18.81,18.81,0,0,1,5.51,13.57V280.83Z" transform="translate(-201.38 -1.83)"/><path d="M1174.29,274.92a20,20,0,0,1-5.91-14.53V227.17a19.82,19.82,0,0,1,5.91-14.43,19.32,19.32,0,0,1,14.19-5.91l17.52-.1a19.18,19.18,0,0,1,14.19,6,20.71,20.71,0,0,1,6.19,14.52l-.09,53.57h-2.91l.1-53.18A18.14,18.14,0,0,0,1218.1,215a17.18,17.18,0,0,0-12.48-5.2l-17.67.09a17.58,17.58,0,0,0-17.57,17.54v32.48s2.19,9,5.63,12.44a14.5,14.5,0,0,0,12.44,4.45h29.93v3l-29.81,1A19.42,19.42,0,0,1,1174.29,274.92Z" transform="translate(-201.38 -1.83)"/><path d="M1238.38,209.83v-3h13v-47h3v47h13v3h-13v70h-3v-70Z" transform="translate(-201.38 -1.83)"/><path d="M1279.38,200.83v-3h3v3Zm0,79v-73h3v73Z" transform="translate(-201.38 -1.83)"/><path d="M1315,278.8a6.78,6.78,0,0,1-2.49-3.64l-19.81-67.28,2.59-.77,19.81,67.28a3.79,3.79,0,0,0,4,3,3.73,3.73,0,0,0,3.92-3l19.81-67.28,2.59.77-19.81,67.28a7,7,0,0,1-2.4,3.64,6.76,6.76,0,0,1-4.11,1.33A6.52,6.52,0,0,1,1315,278.8Z" transform="translate(-201.38 -1.83)"/><path d="M1412.38,279.83h-35.92a20.25,20.25,0,0,1-20.08-20.09V227a20.08,20.08,0,0,1,20.08-20.18h16.84a19.27,19.27,0,0,1,14.15,5.83,19.47,19.47,0,0,1,5.93,14.26v.67s-2.1,8.87-5.48,12.25a16.55,16.55,0,0,1-12.35,5h-31.17v-3h31.17a14.46,14.46,0,0,0,10.5-4.25,13.76,13.76,0,0,0,4.33-10.2V227a16.62,16.62,0,0,0-5.1-12.18,17.33,17.33,0,0,0-12.43-5h-16.94a17.17,17.17,0,0,0-12.43,5.09,16.43,16.43,0,0,0-5.1,12.18V260s2,8.87,5.4,12.25,7.47,5.17,12.25,4.54h36.35Z" transform="translate(-201.38 -1.83)"/></svg>
<svg id="Layer_1" data-title="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1212 431"><defs><style>.cls-1{fill:none;stroke-width:5px;}.cls-1,.cls-2{stroke:#0071bc;stroke-linecap:round;stroke-miterlimit:10;}.cls-2{fill:#0071bc;}</style></defs><title>Artboard 1</title><ellipse class="cls-1" cx="192" cy="215.5" rx="84.5" ry="213"/><circle class="cls-2" cx="191.5" cy="209.5" r="32"/><ellipse class="cls-1" cx="393.88" cy="216.33" rx="84.41" ry="212.64" transform="translate(-191.71 447.57) rotate(-60.02)"/><ellipse class="cls-1" cx="392.88" cy="215.33" rx="212.64" ry="84.41" transform="translate(-256.41 223.32) rotate(-29.98)"/><path d="M661.38,279.83h-2V227.92a20.21,20.21,0,0,1,20.25-20.09h24.2a17.58,17.58,0,0,0,17.55-17.5V163.19a16.77,16.77,0,0,0-5.17-12.31,17.33,17.33,0,0,0-12.59-5H679.14a17.54,17.54,0,0,0-12.59,5,16.77,16.77,0,0,0-5.17,12.31v46.64h-2V163a20.23,20.23,0,0,1,20-20.13h23.94a20.08,20.08,0,0,1,20,20.13v27.77a19.4,19.4,0,0,1-5.88,14.16,19.67,19.67,0,0,1-14.37,5.94h-24.2a17.21,17.21,0,0,0-12.44,5.07,16.61,16.61,0,0,0-5.11,12.25Z" transform="translate(-201.38 -1.83)"/><path d="M739.38,279.83h-3v-73h3Zm1.9-53a18.85,18.85,0,0,1,19-19h16.1v2H759.67a16.92,16.92,0,0,0-17,17Z" transform="translate(-201.38 -1.83)"/><path d="M805.38,279.83A18.18,18.18,0,0,1,792,274.29a18.44,18.44,0,0,1-5.61-13.48V225.94A18.25,18.25,0,0,1,792,212.46a18,18,0,0,1,13.39-5.63h19.1a19,19,0,0,1,18.9,19.11v34.87a18.62,18.62,0,0,1-5.51,13.48,18.4,18.4,0,0,1-13.39,5.54Zm.44-70a16.36,16.36,0,0,0-16.44,16.52v35A15.88,15.88,0,0,0,794.16,273a16,16,0,0,0,11.66,4.8H825a16.35,16.35,0,0,0,16.34-16.43v-35a16.18,16.18,0,0,0-4.78-11.72,15.93,15.93,0,0,0-11.56-4.8Z" transform="translate(-201.38 -1.83)"/><path d="M856.38,209.83v-3h13v-47h2v47h13v3h-13v70h-2v-70Z" transform="translate(-201.38 -1.83)"/><path d="M915.38,279.83A18.18,18.18,0,0,1,902,274.29a18.44,18.44,0,0,1-5.61-13.48V225.94A18.25,18.25,0,0,1,902,212.46a18,18,0,0,1,13.39-5.63h19.1a19,19,0,0,1,18.9,19.11v34.87a18.62,18.62,0,0,1-5.51,13.48,18.4,18.4,0,0,1-13.39,5.54Zm.44-70a16.36,16.36,0,0,0-16.44,16.52v35A15.88,15.88,0,0,0,904.16,273a16,16,0,0,0,11.66,4.8H935a16.35,16.35,0,0,0,16.34-16.43v-35a16.18,16.18,0,0,0-4.78-11.72,15.93,15.93,0,0,0-11.56-4.8Z" transform="translate(-201.38 -1.83)"/><path d="M1020.38,279.83V227.54a16.74,16.74,0,0,0-5.28-12.47,17,17,0,0,0-12.58-5.24H990.14a17.23,17.23,0,0,0-12.58,5.24,16.91,16.91,0,0,0-5.18,12.47v52.29h-3V227.3a20.52,20.52,0,0,1,20.36-20.47H1002a20.5,20.5,0,0,1,20.36,20.47v52.53Z" transform="translate(-201.38 -1.83)"/><path d="M1149.38,280.83V162.25A16.35,16.35,0,0,0,1133,145.83h-26.3a16.35,16.35,0,0,0-16.35,16.42V280.83h-3V162a18.78,18.78,0,0,1,5.52-13.57,18.35,18.35,0,0,1,13.41-5.58h26.15a18.38,18.38,0,0,1,13.41,5.58,18.81,18.81,0,0,1,5.51,13.57V280.83Z" transform="translate(-201.38 -1.83)"/><path d="M1174.29,274.92a20,20,0,0,1-5.91-14.53V227.17a19.82,19.82,0,0,1,5.91-14.43,19.32,19.32,0,0,1,14.19-5.91l17.52-.1a19.18,19.18,0,0,1,14.19,6,20.71,20.71,0,0,1,6.19,14.52l-.09,53.57h-2.91l.1-53.18A18.14,18.14,0,0,0,1218.1,215a17.18,17.18,0,0,0-12.48-5.2l-17.67.09a17.58,17.58,0,0,0-17.57,17.54v32.48s2.19,9,5.63,12.44a14.5,14.5,0,0,0,12.44,4.45h29.93v3l-29.81,1A19.42,19.42,0,0,1,1174.29,274.92Z" transform="translate(-201.38 -1.83)"/><path d="M1238.38,209.83v-3h13v-47h3v47h13v3h-13v70h-3v-70Z" transform="translate(-201.38 -1.83)"/><path d="M1279.38,200.83v-3h3v3Zm0,79v-73h3v73Z" transform="translate(-201.38 -1.83)"/><path d="M1315,278.8a6.78,6.78,0,0,1-2.49-3.64l-19.81-67.28,2.59-.77,19.81,67.28a3.79,3.79,0,0,0,4,3,3.73,3.73,0,0,0,3.92-3l19.81-67.28,2.59.77-19.81,67.28a7,7,0,0,1-2.4,3.64,6.76,6.76,0,0,1-4.11,1.33A6.52,6.52,0,0,1,1315,278.8Z" transform="translate(-201.38 -1.83)"/><path d="M1412.38,279.83h-35.92a20.25,20.25,0,0,1-20.08-20.09V227a20.08,20.08,0,0,1,20.08-20.18h16.84a19.27,19.27,0,0,1,14.15,5.83,19.47,19.47,0,0,1,5.93,14.26v.67s-2.1,8.87-5.48,12.25a16.55,16.55,0,0,1-12.35,5h-31.17v-3h31.17a14.46,14.46,0,0,0,10.5-4.25,13.76,13.76,0,0,0,4.33-10.2V227a16.62,16.62,0,0,0-5.1-12.18,17.33,17.33,0,0,0-12.43-5h-16.94a17.17,17.17,0,0,0-12.43,5.09,16.43,16.43,0,0,0-5.1,12.18V260s2,8.87,5.4,12.25,7.47,5.17,12.25,4.54h36.35Z" transform="translate(-201.38 -1.83)"/></svg>

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Before After
Before After

View file

@ -13,7 +13,7 @@ class Example extends Component {
render() {
return (
<App>
<Window name="Example" height={500} width={500}>
<Window title="Example" height={500} width={500}>
<Box>
<Button>Hello</Button>
<TextInput />

View file

@ -13,7 +13,7 @@ class Example extends Component {
render() {
return (
<App>
<Window name="Example" height={500} width={500}>
<Window title="Example" height={500} width={500}>
<Button>This is a button</Button>
</Window>
</App>

View file

@ -16,7 +16,7 @@ class Example extends Component {
<Menu label="HI">
<Menu.Item>Hi</Menu.Item>
</Menu>
<Window name="Example" height={500} width={500} />
<Window title="Example" height={500} width={500} />
</App>
);
}

View file

@ -14,7 +14,7 @@ class Example extends Component {
<Menu label="HI">
<Menu.Item>Hi</Menu.Item>
</Menu>
<Window name="Example" height={500} width={500} />
<Window title="Example" height={500} width={500} />
</App>
);
}

View file

@ -11,7 +11,7 @@ class Example extends Component {
render() {
return (
<App>
<Window name="Example" height={500} width={500}>
<Window title="Example" height={500} width={500}>
<Picker>
<Picker.Item>Option 1</Picker.Item>
<Picker.Item>Option 2</Picker.Item>

View file

@ -11,7 +11,7 @@ class Example extends Component {
render() {
return (
<App>
<Window name="Example" height={500} width={500}>
<Window title="Example" height={500} width={500}>
<Box>
<Button>Hello</Button>
<Separator />

View file

@ -11,7 +11,7 @@ class Example extends Component {
render() {
return (
<App>
<Window name="Example" height={500} width={500}>
<Window title="Example" height={500} width={500}>
<TextInput />
</Window>
</App>

View file

@ -13,7 +13,7 @@ class Example extends Component {
render() {
return (
<App>
<Window name="Example" height={500} width={500} />
<Window title="Example" height={500} width={500} />
</App>
);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

View file

@ -4,8 +4,8 @@
<meta charset="UTF-8">
<title>Proton Native - React Native for the desktop, cross compatible</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="description" content="React Native for the desktop, cross compatible">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta title="description" content="React Native for the desktop, cross compatible">
<meta title="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/vue.css">
</head>
<body>

View file

@ -6,7 +6,7 @@ class Example extends Component {
render() {
return (
<App>
<Window name="Example" height={300} width={300} menuBar={false}>
<Window title="Example" height={300} width={300} menuBar={false}>
<Button stretchy={false} onClicked={() => console.log('Hello')}>
Button
</Button>

View file

@ -2,10 +2,24 @@
Currently, the node packaging/compiling world has gotten a lot more complicated if you want to generate a single binary. Creating a NPM package is easy and you can easily upload it. But what if you don't want your users to install node and use the command line to install your package?
## Bundle node (easiest)
## Bundle node
Currently, the easiest way is to simply download a [node binary](https://nodejs.org/en/download/) for your platform, copy it into your project root. Then create a shortcut/script to execute that.
Make sure you have babel transpile it, because node doesn't like ES6 currently:
`package.json`
```
"scripts": {
"start": "node_modules/.bin/babel-node index.js",
"build": "node_modules/.bin/babel index.js -d bin/index.js",
}
```
(Babel also supports entire directories by just specifying the directories instead.)
And then build it: `npm run build`.
### Linux + Mac
```
root
@ -23,6 +37,20 @@ And then script contains:
./node bin/index.js
```
You can then compress that into a zip file, or package it into a deb file etc. Just keep the relative file structure the same.
### Windows
On Windows, you can make a shortcut to `node.exe`, and
On Windows, you can make a shortcut to `node.exe`, and edit the target for it to execute the file.
![Properties](images/windows_packaging.png).
Then you can make it a zip file, or create a installer using something like NSIS.
## nexe (currently not working)
Nexe allows you to build a node project into a single exe, however currently the native module capability is broken. I am including this here in case it works sometime in the future.
`npm i -g nexe`
`nexe bin/index.js`

View file

@ -45,7 +45,7 @@ class Example extends Component {
render() { // all Components must have a render method
return (
<App> // you must always include App around everything
<Window name="Example" height={300} width={300} menuBar={false}>
<Window title="Example" height={300} width={300} menuBar={false}>
// all your other components go here
</Window>
</App>

836
package-lock.json generated
View file

@ -1,6 +1,6 @@
{
"name": "react-native-cross",
"version": "1.0.0",
"name": "proton-native",
"version": "1.0.4",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -203,11 +203,6 @@
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
"integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4="
},
"babel": {
"version": "6.23.0",
"resolved": "https://registry.npmjs.org/babel/-/babel-6.23.0.tgz",
"integrity": "sha1-0NHn2APpdHZb7qMjLU4VPA77kPQ="
},
"babel-cli": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz",
@ -1292,7 +1287,6 @@
"requires": {
"anymatch": "1.3.2",
"async-each": "1.0.1",
"fsevents": "1.1.3",
"glob-parent": "2.0.0",
"inherits": "2.0.3",
"is-binary-path": "1.0.1",
@ -1317,11 +1311,19 @@
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
},
"color": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz",
"integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==",
"requires": {
"color-convert": "1.9.1",
"color-string": "1.5.2"
}
},
"color-convert": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
"integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
"dev": true,
"requires": {
"color-name": "1.1.3"
}
@ -1329,8 +1331,16 @@
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
},
"color-string": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.2.tgz",
"integrity": "sha1-JuRYFLw8mny9Z1FkikFDRRSnc6k=",
"requires": {
"color-name": "1.1.3",
"simple-swizzle": "0.2.2"
}
},
"combined-stream": {
"version": "1.0.5",
@ -1793,795 +1803,6 @@
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"fsevents": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz",
"integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==",
"optional": true,
"requires": {
"nan": "2.8.0",
"node-pre-gyp": "0.6.39"
},
"dependencies": {
"abbrev": {
"version": "1.1.0",
"bundled": true,
"optional": true
},
"ajv": {
"version": "4.11.8",
"bundled": true,
"optional": true,
"requires": {
"co": "4.6.0",
"json-stable-stringify": "1.0.1"
}
},
"ansi-regex": {
"version": "2.1.1",
"bundled": true
},
"aproba": {
"version": "1.1.1",
"bundled": true,
"optional": true
},
"are-we-there-yet": {
"version": "1.1.4",
"bundled": true,
"optional": true,
"requires": {
"delegates": "1.0.0",
"readable-stream": "2.2.9"
}
},
"asn1": {
"version": "0.2.3",
"bundled": true,
"optional": true
},
"assert-plus": {
"version": "0.2.0",
"bundled": true,
"optional": true
},
"asynckit": {
"version": "0.4.0",
"bundled": true,
"optional": true
},
"aws-sign2": {
"version": "0.6.0",
"bundled": true,
"optional": true
},
"aws4": {
"version": "1.6.0",
"bundled": true,
"optional": true
},
"balanced-match": {
"version": "0.4.2",
"bundled": true
},
"bcrypt-pbkdf": {
"version": "1.0.1",
"bundled": true,
"optional": true,
"requires": {
"tweetnacl": "0.14.5"
}
},
"block-stream": {
"version": "0.0.9",
"bundled": true,
"requires": {
"inherits": "2.0.3"
}
},
"boom": {
"version": "2.10.1",
"bundled": true,
"requires": {
"hoek": "2.16.3"
}
},
"brace-expansion": {
"version": "1.1.7",
"bundled": true,
"requires": {
"balanced-match": "0.4.2",
"concat-map": "0.0.1"
}
},
"buffer-shims": {
"version": "1.0.0",
"bundled": true
},
"caseless": {
"version": "0.12.0",
"bundled": true,
"optional": true
},
"co": {
"version": "4.6.0",
"bundled": true,
"optional": true
},
"code-point-at": {
"version": "1.1.0",
"bundled": true
},
"combined-stream": {
"version": "1.0.5",
"bundled": true,
"requires": {
"delayed-stream": "1.0.0"
}
},
"concat-map": {
"version": "0.0.1",
"bundled": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true
},
"core-util-is": {
"version": "1.0.2",
"bundled": true
},
"cryptiles": {
"version": "2.0.5",
"bundled": true,
"requires": {
"boom": "2.10.1"
}
},
"dashdash": {
"version": "1.14.1",
"bundled": true,
"optional": true,
"requires": {
"assert-plus": "1.0.0"
},
"dependencies": {
"assert-plus": {
"version": "1.0.0",
"bundled": true,
"optional": true
}
}
},
"debug": {
"version": "2.6.8",
"bundled": true,
"optional": true,
"requires": {
"ms": "2.0.0"
}
},
"deep-extend": {
"version": "0.4.2",
"bundled": true,
"optional": true
},
"delayed-stream": {
"version": "1.0.0",
"bundled": true
},
"delegates": {
"version": "1.0.0",
"bundled": true,
"optional": true
},
"detect-libc": {
"version": "1.0.2",
"bundled": true,
"optional": true
},
"ecc-jsbn": {
"version": "0.1.1",
"bundled": true,
"optional": true,
"requires": {
"jsbn": "0.1.1"
}
},
"extend": {
"version": "3.0.1",
"bundled": true,
"optional": true
},
"extsprintf": {
"version": "1.0.2",
"bundled": true
},
"forever-agent": {
"version": "0.6.1",
"bundled": true,
"optional": true
},
"form-data": {
"version": "2.1.4",
"bundled": true,
"optional": true,
"requires": {
"asynckit": "0.4.0",
"combined-stream": "1.0.5",
"mime-types": "2.1.15"
}
},
"fs.realpath": {
"version": "1.0.0",
"bundled": true
},
"fstream": {
"version": "1.0.11",
"bundled": true,
"requires": {
"graceful-fs": "4.1.11",
"inherits": "2.0.3",
"mkdirp": "0.5.1",
"rimraf": "2.6.1"
}
},
"fstream-ignore": {
"version": "1.0.5",
"bundled": true,
"optional": true,
"requires": {
"fstream": "1.0.11",
"inherits": "2.0.3",
"minimatch": "3.0.4"
}
},
"gauge": {
"version": "2.7.4",
"bundled": true,
"optional": true,
"requires": {
"aproba": "1.1.1",
"console-control-strings": "1.1.0",
"has-unicode": "2.0.1",
"object-assign": "4.1.1",
"signal-exit": "3.0.2",
"string-width": "1.0.2",
"strip-ansi": "3.0.1",
"wide-align": "1.1.2"
}
},
"getpass": {
"version": "0.1.7",
"bundled": true,
"optional": true,
"requires": {
"assert-plus": "1.0.0"
},
"dependencies": {
"assert-plus": {
"version": "1.0.0",
"bundled": true,
"optional": true
}
}
},
"glob": {
"version": "7.1.2",
"bundled": true,
"requires": {
"fs.realpath": "1.0.0",
"inflight": "1.0.6",
"inherits": "2.0.3",
"minimatch": "3.0.4",
"once": "1.4.0",
"path-is-absolute": "1.0.1"
}
},
"graceful-fs": {
"version": "4.1.11",
"bundled": true
},
"har-schema": {
"version": "1.0.5",
"bundled": true,
"optional": true
},
"har-validator": {
"version": "4.2.1",
"bundled": true,
"optional": true,
"requires": {
"ajv": "4.11.8",
"har-schema": "1.0.5"
}
},
"has-unicode": {
"version": "2.0.1",
"bundled": true,
"optional": true
},
"hawk": {
"version": "3.1.3",
"bundled": true,
"requires": {
"boom": "2.10.1",
"cryptiles": "2.0.5",
"hoek": "2.16.3",
"sntp": "1.0.9"
}
},
"hoek": {
"version": "2.16.3",
"bundled": true
},
"http-signature": {
"version": "1.1.1",
"bundled": true,
"optional": true,
"requires": {
"assert-plus": "0.2.0",
"jsprim": "1.4.0",
"sshpk": "1.13.0"
}
},
"inflight": {
"version": "1.0.6",
"bundled": true,
"requires": {
"once": "1.4.0",
"wrappy": "1.0.2"
}
},
"inherits": {
"version": "2.0.3",
"bundled": true
},
"ini": {
"version": "1.3.4",
"bundled": true,
"optional": true
},
"is-fullwidth-code-point": {
"version": "1.0.0",
"bundled": true,
"requires": {
"number-is-nan": "1.0.1"
}
},
"is-typedarray": {
"version": "1.0.0",
"bundled": true,
"optional": true
},
"isarray": {
"version": "1.0.0",
"bundled": true
},
"isstream": {
"version": "0.1.2",
"bundled": true,
"optional": true
},
"jodid25519": {
"version": "1.0.2",
"bundled": true,
"optional": true,
"requires": {
"jsbn": "0.1.1"
}
},
"jsbn": {
"version": "0.1.1",
"bundled": true,
"optional": true
},
"json-schema": {
"version": "0.2.3",
"bundled": true,
"optional": true
},
"json-stable-stringify": {
"version": "1.0.1",
"bundled": true,
"optional": true,
"requires": {
"jsonify": "0.0.0"
}
},
"json-stringify-safe": {
"version": "5.0.1",
"bundled": true,
"optional": true
},
"jsonify": {
"version": "0.0.0",
"bundled": true,
"optional": true
},
"jsprim": {
"version": "1.4.0",
"bundled": true,
"optional": true,
"requires": {
"assert-plus": "1.0.0",
"extsprintf": "1.0.2",
"json-schema": "0.2.3",
"verror": "1.3.6"
},
"dependencies": {
"assert-plus": {
"version": "1.0.0",
"bundled": true,
"optional": true
}
}
},
"mime-db": {
"version": "1.27.0",
"bundled": true
},
"mime-types": {
"version": "2.1.15",
"bundled": true,
"requires": {
"mime-db": "1.27.0"
}
},
"minimatch": {
"version": "3.0.4",
"bundled": true,
"requires": {
"brace-expansion": "1.1.7"
}
},
"minimist": {
"version": "0.0.8",
"bundled": true
},
"mkdirp": {
"version": "0.5.1",
"bundled": true,
"requires": {
"minimist": "0.0.8"
}
},
"ms": {
"version": "2.0.0",
"bundled": true,
"optional": true
},
"node-pre-gyp": {
"version": "0.6.39",
"bundled": true,
"optional": true,
"requires": {
"detect-libc": "1.0.2",
"hawk": "3.1.3",
"mkdirp": "0.5.1",
"nopt": "4.0.1",
"npmlog": "4.1.0",
"rc": "1.2.1",
"request": "2.81.0",
"rimraf": "2.6.1",
"semver": "5.3.0",
"tar": "2.2.1",
"tar-pack": "3.4.0"
}
},
"nopt": {
"version": "4.0.1",
"bundled": true,
"optional": true,
"requires": {
"abbrev": "1.1.0",
"osenv": "0.1.4"
}
},
"npmlog": {
"version": "4.1.0",
"bundled": true,
"optional": true,
"requires": {
"are-we-there-yet": "1.1.4",
"console-control-strings": "1.1.0",
"gauge": "2.7.4",
"set-blocking": "2.0.0"
}
},
"number-is-nan": {
"version": "1.0.1",
"bundled": true
},
"oauth-sign": {
"version": "0.8.2",
"bundled": true,
"optional": true
},
"object-assign": {
"version": "4.1.1",
"bundled": true,
"optional": true
},
"once": {
"version": "1.4.0",
"bundled": true,
"requires": {
"wrappy": "1.0.2"
}
},
"os-homedir": {
"version": "1.0.2",
"bundled": true,
"optional": true
},
"os-tmpdir": {
"version": "1.0.2",
"bundled": true,
"optional": true
},
"osenv": {
"version": "0.1.4",
"bundled": true,
"optional": true,
"requires": {
"os-homedir": "1.0.2",
"os-tmpdir": "1.0.2"
}
},
"path-is-absolute": {
"version": "1.0.1",
"bundled": true
},
"performance-now": {
"version": "0.2.0",
"bundled": true,
"optional": true
},
"process-nextick-args": {
"version": "1.0.7",
"bundled": true
},
"punycode": {
"version": "1.4.1",
"bundled": true,
"optional": true
},
"qs": {
"version": "6.4.0",
"bundled": true,
"optional": true
},
"rc": {
"version": "1.2.1",
"bundled": true,
"optional": true,
"requires": {
"deep-extend": "0.4.2",
"ini": "1.3.4",
"minimist": "1.2.0",
"strip-json-comments": "2.0.1"
},
"dependencies": {
"minimist": {
"version": "1.2.0",
"bundled": true,
"optional": true
}
}
},
"readable-stream": {
"version": "2.2.9",
"bundled": true,
"requires": {
"buffer-shims": "1.0.0",
"core-util-is": "1.0.2",
"inherits": "2.0.3",
"isarray": "1.0.0",
"process-nextick-args": "1.0.7",
"string_decoder": "1.0.1",
"util-deprecate": "1.0.2"
}
},
"request": {
"version": "2.81.0",
"bundled": true,
"optional": true,
"requires": {
"aws-sign2": "0.6.0",
"aws4": "1.6.0",
"caseless": "0.12.0",
"combined-stream": "1.0.5",
"extend": "3.0.1",
"forever-agent": "0.6.1",
"form-data": "2.1.4",
"har-validator": "4.2.1",
"hawk": "3.1.3",
"http-signature": "1.1.1",
"is-typedarray": "1.0.0",
"isstream": "0.1.2",
"json-stringify-safe": "5.0.1",
"mime-types": "2.1.15",
"oauth-sign": "0.8.2",
"performance-now": "0.2.0",
"qs": "6.4.0",
"safe-buffer": "5.0.1",
"stringstream": "0.0.5",
"tough-cookie": "2.3.2",
"tunnel-agent": "0.6.0",
"uuid": "3.0.1"
}
},
"rimraf": {
"version": "2.6.1",
"bundled": true,
"requires": {
"glob": "7.1.2"
}
},
"safe-buffer": {
"version": "5.0.1",
"bundled": true
},
"semver": {
"version": "5.3.0",
"bundled": true,
"optional": true
},
"set-blocking": {
"version": "2.0.0",
"bundled": true,
"optional": true
},
"signal-exit": {
"version": "3.0.2",
"bundled": true,
"optional": true
},
"sntp": {
"version": "1.0.9",
"bundled": true,
"requires": {
"hoek": "2.16.3"
}
},
"sshpk": {
"version": "1.13.0",
"bundled": true,
"optional": true,
"requires": {
"asn1": "0.2.3",
"assert-plus": "1.0.0",
"bcrypt-pbkdf": "1.0.1",
"dashdash": "1.14.1",
"ecc-jsbn": "0.1.1",
"getpass": "0.1.7",
"jodid25519": "1.0.2",
"jsbn": "0.1.1",
"tweetnacl": "0.14.5"
},
"dependencies": {
"assert-plus": {
"version": "1.0.0",
"bundled": true,
"optional": true
}
}
},
"string-width": {
"version": "1.0.2",
"bundled": true,
"requires": {
"code-point-at": "1.1.0",
"is-fullwidth-code-point": "1.0.0",
"strip-ansi": "3.0.1"
}
},
"string_decoder": {
"version": "1.0.1",
"bundled": true,
"requires": {
"safe-buffer": "5.0.1"
}
},
"stringstream": {
"version": "0.0.5",
"bundled": true,
"optional": true
},
"strip-ansi": {
"version": "3.0.1",
"bundled": true,
"requires": {
"ansi-regex": "2.1.1"
}
},
"strip-json-comments": {
"version": "2.0.1",
"bundled": true,
"optional": true
},
"tar": {
"version": "2.2.1",
"bundled": true,
"requires": {
"block-stream": "0.0.9",
"fstream": "1.0.11",
"inherits": "2.0.3"
}
},
"tar-pack": {
"version": "3.4.0",
"bundled": true,
"optional": true,
"requires": {
"debug": "2.6.8",
"fstream": "1.0.11",
"fstream-ignore": "1.0.5",
"once": "1.4.0",
"readable-stream": "2.2.9",
"rimraf": "2.6.1",
"tar": "2.2.1",
"uid-number": "0.0.6"
}
},
"tough-cookie": {
"version": "2.3.2",
"bundled": true,
"optional": true,
"requires": {
"punycode": "1.4.1"
}
},
"tunnel-agent": {
"version": "0.6.0",
"bundled": true,
"optional": true,
"requires": {
"safe-buffer": "5.0.1"
}
},
"tweetnacl": {
"version": "0.14.5",
"bundled": true,
"optional": true
},
"uid-number": {
"version": "0.0.6",
"bundled": true,
"optional": true
},
"util-deprecate": {
"version": "1.0.2",
"bundled": true
},
"uuid": {
"version": "3.0.1",
"bundled": true,
"optional": true
},
"verror": {
"version": "1.3.6",
"bundled": true,
"optional": true,
"requires": {
"extsprintf": "1.0.2"
}
},
"wide-align": {
"version": "1.1.2",
"bundled": true,
"optional": true,
"requires": {
"string-width": "1.0.2"
}
},
"wrappy": {
"version": "1.0.2",
"bundled": true
}
}
},
"fstream": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
@ -4117,6 +3338,21 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
},
"simple-swizzle": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
"integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
"requires": {
"is-arrayish": "0.3.1"
},
"dependencies": {
"is-arrayish": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.1.tgz",
"integrity": "sha1-wt/DhquqDD4zxI2z/ocFnmkGXv0="
}
}
},
"single-line-log": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz",