"],
+ "js": ["build/inject.js"],
+ "run_at": "document_start"
+ }
+ ]
+}
diff --git a/dev/react-dev-tools/panel.html b/dev/react-dev-tools/panel.html
new file mode 100644
index 00000000..60fd1bdf
--- /dev/null
+++ b/dev/react-dev-tools/panel.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+ Unable to find React on the page.
+
+
+
diff --git a/dev/react-dev-tools/popups/deadcode.html b/dev/react-dev-tools/popups/deadcode.html
new file mode 100644
index 00000000..5e74dc06
--- /dev/null
+++ b/dev/react-dev-tools/popups/deadcode.html
@@ -0,0 +1,32 @@
+
+
+
+ This page includes an extra development build of React. 🚧
+
+
+ The React build on this page includes both development and production versions because dead code elimination has not been applied correctly.
+
+
+ This makes its size larger, and causes React to run slower.
+
+
+ Make sure to set up dead code elimination before deployment.
+
+
+
+ Open the developer tools, and the React tab will appear to the right.
+
diff --git a/dev/react-dev-tools/popups/development.html b/dev/react-dev-tools/popups/development.html
new file mode 100644
index 00000000..9c2089cc
--- /dev/null
+++ b/dev/react-dev-tools/popups/development.html
@@ -0,0 +1,28 @@
+
+
+
+ This page is using the development build of React. 🚧
+
+
+ Note that the development build is not suitable for production.
+
+ Make sure to use the production build before deployment.
+
+
+
+ Open the developer tools, and the React tab will appear to the right.
+
diff --git a/dev/react-dev-tools/popups/disabled.html b/dev/react-dev-tools/popups/disabled.html
new file mode 100644
index 00000000..a89b178d
--- /dev/null
+++ b/dev/react-dev-tools/popups/disabled.html
@@ -0,0 +1,21 @@
+
+
+
+ This page doesn’t appear to be using React.
+
+ If this seems wrong, follow the troubleshooting instructions .
+
diff --git a/dev/react-dev-tools/popups/outdated.html b/dev/react-dev-tools/popups/outdated.html
new file mode 100644
index 00000000..a6ec12bc
--- /dev/null
+++ b/dev/react-dev-tools/popups/outdated.html
@@ -0,0 +1,29 @@
+
+
+
+ This page is using an outdated version of React. ⌛
+
+
+ We recommend updating React to ensure that you receive important bugfixes and performance improvements.
+
+
+ You can find the upgrade instructions on the React blog .
+
+
+
+ Open the developer tools, and the React tab will appear to the right.
+
diff --git a/dev/react-dev-tools/popups/production.html b/dev/react-dev-tools/popups/production.html
new file mode 100644
index 00000000..1b65eb5b
--- /dev/null
+++ b/dev/react-dev-tools/popups/production.html
@@ -0,0 +1,21 @@
+
+
+
+ This page is using the production build of React. ✅
+
+ Open the developer tools, and the React tab will appear to the right.
+
diff --git a/dev/react-dev-tools/popups/shared.js b/dev/react-dev-tools/popups/shared.js
new file mode 100644
index 00000000..e4f5eaa9
--- /dev/null
+++ b/dev/react-dev-tools/popups/shared.js
@@ -0,0 +1,22 @@
+/* globals chrome */
+
+document.addEventListener('DOMContentLoaded', function() {
+ // Make links work
+ var links = document.getElementsByTagName('a');
+ for (var i = 0; i < links.length; i++) {
+ (function() {
+ var ln = links[i];
+ var location = ln.href;
+ ln.onclick = function() {
+ chrome.tabs.create({active: true, url: location});
+ };
+ })();
+ }
+
+ // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=428044
+ document.body.style.opacity = 0;
+ document.body.style.transition = 'opacity ease-out .4s';
+ requestAnimationFrame(function() {
+ document.body.style.opacity = 1;
+ });
+});
diff --git a/dev/react-dev-tools/popups/unminified.html b/dev/react-dev-tools/popups/unminified.html
new file mode 100644
index 00000000..553c9ac6
--- /dev/null
+++ b/dev/react-dev-tools/popups/unminified.html
@@ -0,0 +1,31 @@
+
+
+
+ This page is using an unminified build of React. 🚧
+
+
+ The React build on this page appears to be unminified.
+
+ This makes its size larger, and causes React to run slower.
+
+
+ Make sure to set up minification before deployment.
+
+
+
+ Open the developer tools, and the React tab will appear to the right.
+
diff --git a/elements/button.js b/elements/button.js
deleted file mode 100644
index 70c24451..00000000
--- a/elements/button.js
+++ /dev/null
@@ -1,203 +0,0 @@
-'use strict'
-
-const html = require('choo/html')
-const assert = require('assert')
-const css = require('sheetify')
-const xtend = require('xtend')
-
-const baseStyles = css`
- :host {
- text-transform: uppercase;
- letter-spacing: .025em;
- cursor: pointer;
- background-color: transparent;
- .btn-inner-wrapper {
- display: flex;
- flex-wrap: nowrap;
- flex-direction: row;
- justify-content: center;
- align-items: center;
- }
- }
- .icon-only {
- .btn-text { display: none }
- }
-`
-
-var greenStyles = css`
- :host {
- padding: .5rem .75rem;
- font-size: .75rem;
- background-color: var(--color-green);
- color: var(--color-neutral-04);
- }
- :host:hover,
- :host:focus {
- background-color: var(--color-green-hover);
- color: var(--color-white);
- }
-`
-
-var redStyles = css`
- :host {
- padding: .5rem .75rem;
- font-size: .75rem;
- background-color: var(--color-red);
- color: var(--color-neutral-04);
- }
- :host:hover,
- :host:focus {
- background-color: var(--color-red-hover);
- color: var(--color-white);
- }
-`
-
-var headerStyles = css`
- :host {
- color: var(--color-neutral-30);
- height:2rem;
- }
- :host:hover,
- :host:focus {
- color: var(--color-white);
- }
-`
-
-var plainStyles = css`
- :host {
- padding: .5rem .75rem;
- font-size: .75rem;
- background-color: transparent;
- color: var(--color-neutral-40);
- }
- :host:hover,
- :host:focus {
- color: var(--color-neutral-70);
- }
-`
-
-plainButton.green = greenButton
-plainButton.icon = iconButton
-plainButton.red = redButton
-plainButton.header = headerButton
-module.exports = plainButton
-
-// States:
-// - Text only
-// - Text and icon
-function buttonElement (innerText, opts) {
- if (!opts) {
- opts = innerText
- innerText = ''
- }
-
- var icon = opts.icon
- var innerHTML = null
-
- if (innerText && !icon) {
- innerHTML = html`
-
- ${innerText}
-
- `
- } else {
- innerHTML = html`
-
- ${icon}
- ${innerText}
-
- `
- }
-
- var defaultProps = {
- 'aria-label': innerText,
- 'title': innerText
- }
-
- var buttonProps = xtend(defaultProps, opts)
- buttonProps.class = baseStyles + ' ' + buttonProps.class
-
- return html`
-
- ${innerHTML}
-
- `
-}
-
-// - Icon only
-function iconButton (innerText, opts) {
- assert.equal(typeof innerText, 'string', 'elements/button: innerText should by type string')
- assert.ok(innerText.length, 'elements/button: innerText should have a length >= 0')
- assert.equal(typeof opts, 'object', 'elements/button: opts should by type object')
- assert.ok(opts.icon, 'elements/button: opts.icon should exist')
-
- var icon = opts.icon
- opts.class = (opts.class)
- ? opts.class
- : ''
-
- var innerHTML = html`
-
- ${icon}
-
- `
-
- var defaultProps = {
- 'aria-label': innerText,
- 'title': innerText
- }
-
- var buttonProps = xtend(defaultProps, opts)
- buttonProps.class = baseStyles + ' ' + buttonProps.class
- buttonProps.icon = null
-
- return html`
-
- ${innerHTML}
-
- `
-}
-
-function greenButton (innerText, opts) {
- if (!opts) {
- opts = innerText
- innerText = ''
- }
-
- opts = opts || {}
- opts.class = (opts.class) ? greenStyles + ' ' + opts.class : greenStyles
- return buttonElement(innerText, opts)
-}
-
-function redButton (innerText, opts) {
- if (!opts) {
- opts = innerText
- innerText = ''
- }
-
- opts = opts || {}
- opts.class = (opts.class) ? redStyles + ' ' + opts.class : redStyles
- return buttonElement(innerText, opts)
-}
-
-function headerButton (innerText, opts) {
- if (!opts) {
- opts = innerText
- innerText = ''
- }
-
- opts = opts || {}
- opts.class = (opts.class) ? headerStyles + ' ' + opts.class : headerStyles
- return buttonElement(innerText, opts)
-}
-
-function plainButton (innerText, opts) {
- if (!opts && typeof innerText === 'object') {
- opts = innerText
- innerText = ''
- }
-
- opts = opts || {}
- opts.class = (opts.class) ? plainStyles + ' ' + opts.class : plainStyles
- return buttonElement(innerText, opts)
-}
diff --git a/elements/dat-import.js b/elements/dat-import.js
deleted file mode 100644
index be88825d..00000000
--- a/elements/dat-import.js
+++ /dev/null
@@ -1,96 +0,0 @@
-'use strict'
-
-const microcomponent = require('microcomponent')
-const html = require('choo/html')
-const assert = require('assert')
-const css = require('sheetify')
-const icon = require('./icon')
-
-module.exports = DatImportElement
-
-const prefix = css`
- :host {
- --icon-height: 1.2rem;
- color: var(--color-neutral-30);
- .icon-link {
- padding-top: .42rem;
- padding-left: .5rem;
- pointer-events: none;
- width: var(--icon-height);
- height: var(--icon-height);
- }
- input {
- height: 2rem;
- width: 7.5rem;
- padding-right: .5rem;
- padding-left: 2rem;
- border-radius:2px;
- border: 1px solid transparent;
- background-color: transparent;
- color: var(--color-neutral-30);
- opacity: 1;
- text-transform: uppercase;
- letter-spacing: .025em;
- transition-property: width;
- transition-duration: .15s;
- transition-timing-function: ease-in;
- &::-webkit-input-placeholder {
- color: var(--color-neutral-30);
- opacity: 1;
- }
- &:hover,
- &:hover::-webkit-input-placeholder,
- &:hover + svg {
- color: var(--color-white);
- }
- &:focus,
- &:active {
- width: 14rem;
- outline: none;
- background-color: var(--color-white);
- color: var(--color-neutral);
- }
- &:focus::-webkit-input-placeholder,
- &:active::-webkit-input-placeholder,
- &:focus + svg,
- &:active + svg {
- color: var(--color-neutral-50);
- }
- }
- }
-`
-
-function DatImportElement () {
- var component = microcomponent({ name: 'dat-import' })
- component.on('render', render)
- component.on('update', update)
- return component
-
- function render () {
- const onsubmit = this.props.onsubmit
-
- assert.equal(typeof onsubmit, 'function', 'dat-import: onsubmit should be type function')
-
- return html`
-
-
- ${icon('link', { class: 'absolute top-0 bottom-0 left-0' })}
-
- `
-
- function onKeyDown (e) {
- const value = e.target.value
- if (e.key !== 'Enter' || !value) return
- e.target.value = ''
- onsubmit(value)
- }
- }
-
- function update () {
- return false
- }
-}
diff --git a/elements/download.js b/elements/download.js
deleted file mode 100644
index 9505740b..00000000
--- a/elements/download.js
+++ /dev/null
@@ -1,185 +0,0 @@
-'use strict'
-
-var microcomponent = require('microcomponent')
-var dialog = require('electron').remote.dialog
-var bytes = require('prettier-bytes')
-var FileList = require('./file-list')
-var html = require('choo/html')
-var css = require('sheetify')
-var icon = require('./icon')
-var button = require('./button')
-var os = require('os')
-
-var detailHeader = css`
- :host {
- height: 4rem;
- flex-shrink: 0;
- border-bottom: 1px solid var(--color-neutral-20);
- }
-`
-
-var detailFooter = css`
- :host {
- flex-shrink: 0;
- border-top: 1px solid var(--color-neutral-20);
- }
-`
-
-var label = css`
- :host {
- font-size: .75rem;
- min-width: 8rem;
- color: var(--color-neutral-60);
- }
-`
-
-module.exports = function () {
- var component = microcomponent({
- name: 'download',
- state: {
- fileList: FileList()
- }
- })
- component.on('render', render)
- component.on('update', update)
- return component
-
- function render () {
- var { key, oncancel, err, dat, ondownload, onupdate } = this.props
- var { fileList } = this.state
- var location = this.state.location || `${os.homedir()}/Downloads`
-
- var title = dat
- ? dat.metadata
- ? dat.metadata.title
- : key
- : 'Fetching metadata …'
- var author = dat
- ? dat.metadata
- ? dat.metadata.author
- : 'N/A'
- : '…'
- var description = dat
- ? dat.metadata
- ? dat.metadata.description
- : 'N/A'
- : '…'
- var size = dat
- ? dat.archive.content
- ? bytes(dat.archive.content.byteLength)
- : 'N/A'
- : '…'
- var peers = dat
- ? dat.network.connected
- : '…'
-
- function onChangeLocation () {
- var files = dialog.showOpenDialog({
- properties: ['openDirectory'],
- defaultPath: location
- })
- if (!files || !files.length) return
- component.state.location = files[0]
- onupdate()
- }
-
- return html`
-
- ${err
- ? html`
- There was an error: ${err.message}
- `
- : html`
-
-
-
-
-
- Link:
-
-
- ${key}
-
-
-
-
- Size:
-
-
- ${size}
-
-
-
-
- Peers:
-
-
- ${peers}
-
-
-
-
- Author:
-
-
- ${author}
-
-
-
-
- Description:
-
-
- ${description}
-
-
-
-
- Download to:
-
-
-
- ${location}
-
- ${button('Change…', {
- class: '',
- onclick: onChangeLocation
- })}
-
-
-
-
- Files:
-
- ${fileList.render({ dat, onupdate })}
-
-
-
- `
- }
-
-
- `
- }
-
- function update (props) {
- return true
- }
-}
diff --git a/elements/empty.js b/elements/empty.js
deleted file mode 100644
index 9ff18c4d..00000000
--- a/elements/empty.js
+++ /dev/null
@@ -1,79 +0,0 @@
-var html = require('choo/html')
-var css = require('sheetify')
-
-var icon = require('../elements/icon')
-
-module.exports = EmptyState
-
-const skeleton = css`
- :host {
- position: relative;
- .skeleton {
- position: fixed;
- top: 3.5rem;
- left: 1.25rem;
- width: 232px;
- max-width: 100vw;
- }
- .dotted-lines {
- position: absolute;
- top: .25rem;
- right: 5.5rem;
- width: 17rem;
- z-index: 3;
- }
- .create-new-dat,
- .link {
- position: absolute;
- width: 15rem;
- color: var(--color-neutral-30);
- svg {
- display: inline-block;
- width: 2rem;
- height: 2rem;
- }
- }
- .create-new-dat {
- top: 14.5rem;
- right: 4rem;
- }
- .link {
- top: 6rem;
- right: 8.5rem;
- svg {
- margin-bottom: -.75rem;
- }
- }
- }
-`
-
-function EmptyState () {
- return html`
-
-
-
-
-
- ${icon('link')}
-
- Download A Dat
-
-
- … and keep data up-to-date
-
- by entering the link here.
-
-
-
- ${icon('create-new-dat')}
-
Share a Folder
-
- … and sync changes by sharing
-
- the link with someone else.
-
-
-
-
- `
-}
diff --git a/elements/file-list.js b/elements/file-list.js
deleted file mode 100644
index 2dd3aa64..00000000
--- a/elements/file-list.js
+++ /dev/null
@@ -1,103 +0,0 @@
-var microcomponent = require('microcomponent')
-var bytes = require('prettier-bytes')
-var mirror = require('mirror-folder')
-var html = require('choo/html')
-var css = require('sheetify')
-
-var fileListContainer = css`
- :host {
- min-height: 5rem;
- }
-`
-
-var fileList = css`
- :host {
- td {
- padding: .25rem .5rem;
- }
- tr:odd td {
- background-color: var(--color-neutral-04);
- }
- }
-`
-
-module.exports = function () {
- var component = microcomponent({
- name: 'file-list',
- state: {
- update: true
- }
- })
- component.on('render', render)
- component.on('update', update)
- return component
-
- function render () {
- var { dat, onupdate } = this.props
-
- if (dat) {
- if (dat.files) {
- this.state.update = false
- } else {
- if (dat.archive) {
- dat.files = []
- if (dat.archive.content) walk()
- else dat.archive.on('content', walk)
- }
- }
- }
-
- function walk () {
- var fs = { name: '/', fs: dat.archive }
- var progress = mirror(fs, '/', { dryRun: true })
- progress.on('put', function (file) {
- file.name = file.name.slice(1)
- if (file.name === '') return
- dat.files.push({
- path: file.name,
- stat: file.stat
- })
- dat.files.sort(function (a, b) {
- return a.path.localeCompare(b.path)
- })
- component.state.update = true
- onupdate()
- })
- }
-
- return html`
-
- ${dat && dat.files && dat.files.length
- ? html`
-
- ${dat.files.map(file => {
- var size = file.stat && file.stat.isFile()
- ? ` ${bytes(file.stat.size)}`
- : ''
- return html`
-
-
- ${file.path}
-
-
- ${size}
-
-
- `
- })}
-
- `
- : html`
-
- N/A
-
- `
- }
-
- `
- }
-
- function update (props) {
- return props.dat !== this.props.dat || this.state.update
- }
-}
diff --git a/elements/header.js b/elements/header.js
deleted file mode 100644
index b53f1e19..00000000
--- a/elements/header.js
+++ /dev/null
@@ -1,132 +0,0 @@
-'use strict'
-
-const microcomponent = require('microcomponent')
-const html = require('choo/html')
-const assert = require('assert')
-const css = require('sheetify')
-const version = require('../package.json').version
-
-const button = require('./button')
-const DatImport = require('./dat-import')
-const icon = require('./icon')
-
-module.exports = HeaderElement
-
-const header = css`
- :host {
- height: 2.5rem;
- padding: .25rem .75rem;
- background-color: var(--color-neutral);
- color: var(--color-white);
- -webkit-app-region: drag;
- }
-`
-
-const shareButtonIcon = css`
- :host {
- width: 1.2em;
- }
-`
-
-const menuButtonIcon = css`
- :host {
- width: 1.75em;
- }
-`
-
-function HeaderElement () {
- var importButton = DatImport()
- var component = microcomponent({ name: 'header' })
- component.on('render', render)
- component.on('update', update)
- return component
-
- function render () {
- var { isReady, onimport, oncreate, onreport } = this.props
- var { showMenu, willShowMenu } = this.state
-
- if (typeof willShowMenu === 'boolean') {
- showMenu = this.state.showMenu = willShowMenu
- this.state.willShowMenu = null
- }
-
- assert.equal(typeof isReady, 'boolean', 'elements/header: isReady should be type boolean')
- assert.equal(typeof onimport, 'function', 'elements/header: onimport should be type function')
- assert.equal(typeof oncreate, 'function', 'elements/header: oncreate should be type function')
-
- if (!isReady) {
- return html``
- }
-
- var createButton = button.header('Share Folder', {
- id: 'create-new-dat',
- icon: icon('create-new-dat', { class: shareButtonIcon }),
- class: 'b--transparent v-mid color-neutral-30 hover-color-white f7 f6-l',
- onclick: oncreate
- })
-
- var loginButton = button.header('Log In', {
- class: 'ml3 v-mid color-neutral-30 hover-color-white f7 f6-l dn'
- })
-
- var menuButton = button.icon('Open Menu', {
- icon: icon('menu', { class: menuButtonIcon }),
- class: 'ml2 v-mid color-neutral-20 hover-color-white pointer',
- onclick: toggle
- })
-
- function toggle () {
- if (component.state.showMenu) hide()
- else show()
- }
-
- function show () {
- document.body.addEventListener('click', clickedOutside)
- component.state.willShowMenu = true
- component.render(component.props)
- }
-
- function hide () {
- document.body.removeEventListener('click', clickedOutside)
- component.state.willShowMenu = false
- component.render(component.props)
- }
-
- function clickedOutside (e) {
- if (!component._element.contains(e.target)) hide()
- }
-
- return html`
-
- `
- }
-
- function update (props) {
- return props.isReady !== this.props.isReady ||
- typeof this.state.willShowMenu === 'boolean'
- }
-}
diff --git a/elements/icon.js b/elements/icon.js
deleted file mode 100644
index 1ab2f6eb..00000000
--- a/elements/icon.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict'
-
-const html = require('choo/html')
-const assert = require('assert')
-const css = require('sheetify')
-
-var prefix = css`
- :host {
- display: block;
- fill: currentColor;
- }
-`
-
-module.exports = iconElement
-
-function iconElement (iconName, opts) {
- opts = opts || {}
-
- assert.equal(typeof iconName, 'string', 'elements/icon: iconName should be type string')
- assert.equal(typeof opts, 'object', 'elements/icon: opts should be type object')
-
- var classNames = 'icon-' + iconName + ' ' + prefix
- if (opts.class) classNames += (' ' + opts.class)
-
- return html`
-
-
-
- `
-}
diff --git a/elements/inspect.js b/elements/inspect.js
deleted file mode 100644
index 6ede7c48..00000000
--- a/elements/inspect.js
+++ /dev/null
@@ -1,158 +0,0 @@
-'use strict'
-
-var microcomponent = require('microcomponent')
-var toStr = require('dat-encoding').toStr
-var bytes = require('prettier-bytes')
-var FileList = require('./file-list')
-var button = require('./button')
-var html = require('choo/html')
-var css = require('sheetify')
-var icon = require('./icon')
-
-var detailHeader = css`
- :host {
- height: 4rem;
- flex-shrink: 0;
- border-bottom: 1px solid var(--color-neutral-20);
- }
-`
-
-var detailFooter = css`
- :host {
- flex-shrink: 0;
- border-top: 1px solid var(--color-neutral-20);
- }
-`
-
-var label = css`
- :host {
- font-size: .75rem;
- min-width: 8rem;
- color: var(--color-neutral-60);
- }
-`
-
-module.exports = function () {
- var component = microcomponent({
- name: 'inspect',
- state: {
- fileList: FileList()
- }
- })
- component.on('render', render)
- component.on('update', update)
- return component
-
- function render () {
- var { oncancel, onupdate, dat } = this.props
- var { fileList } = this.state
-
- var title = dat
- ? dat.metadata
- ? dat.metadata.title
- : dat.key
- : 'Fetching metadata …'
- var author = dat
- ? dat.metadata
- ? dat.metadata.author
- : 'N/A'
- : '…'
- var description = dat
- ? dat.metadata && dat.metadata.description
- ? dat.metadata.description
- : 'N/A'
- : '…'
- var size = dat
- ? dat.archive.content
- ? bytes(dat.archive.content.byteLength)
- : 'N/A'
- : '…'
- var peers = dat
- ? dat.network.connected
- : '…'
-
- return html`
-
-
-
-
-
-
- Link:
-
-
- ${toStr(dat.key)}
-
-
-
-
- Size:
-
-
- ${size}
-
-
-
-
- Peers:
-
-
- ${peers}
-
-
-
-
- Author:
-
-
- ${author}
-
-
-
-
- Description:
-
-
- ${description}
-
-
-
-
-
- Files:
-
- ${fileList.render({ dat, onupdate })}
-
-
-
-
-
- `
- }
-
- function update (props) {
- return true
- }
-}
diff --git a/elements/intro.js b/elements/intro.js
deleted file mode 100644
index 45c5b31b..00000000
--- a/elements/intro.js
+++ /dev/null
@@ -1,179 +0,0 @@
-var html = require('choo/html')
-var css = require('sheetify')
-var microcomponent = require('microcomponent')
-
-var button = require('./button')
-
-module.exports = IntroScreen
-
-const intro = css`
- :host {
- position: relative;
- height: 100vh;
- background-color: var(--color-neutral);
- color: var(--color-white);
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- -webkit-app-region: drag;
- overflow: hidden;
- }
-`
-const content = css`
- :host {
- position: relative;
- flex: 1;
- width: 100vw;
- padding: 3rem 2rem;
- }
-`
-
-const footer = css`
- :host {
- position: relative;
- width: 100vw;
- padding: 1rem;
- display: flex;
- justify-content: space-between;
- button {
- min-width: 5rem;
- }
- }
-`
-const image = css`
- :host {
- max-width: 100vw;
- max-height: 100vh;
- }
-`
-
-const dotsStyles = css`
- :host {
- display: flex;
- justify-content: space-between;
- align-items: center;
- .dot {
- width: .5rem;
- height: .5rem;
- margin: .25rem;
- border-radius: 50%;
- background-color: var(--color-black);
- }
- .active {
- background-color: var(--color-blue);
- }
- }
-`
-
-function dots (screen) {
- return html`
-
- ${Array(5).fill(null).map(function (_, i) {
- var className = 'dot'
- if (i === screen - 1) className += ' active'
- return html `
`
- })}
-
- `
-}
-
-function IntroScreen () {
- var component = microcomponent({
- name: 'intro',
- state: {
- screen: 0
- }
- })
- component.on('render', render)
- component.on('update', update)
- component.on('load', load)
- component.on('unload', unload)
- return component
-
- function next () {
- component.state.screen++
- component.state.nextScreen = true
- component.props.onupdate()
- }
-
- function render () {
- var { onOpenHomepage, onexit } = this.props
- var screen = this.state.screen
-
- function openHomepage (ev) {
- ev.preventDefault()
- onOpenHomepage()
- }
-
- return html`
-
-
-
- ${{
- 1: html`
-
- Hey there! This is a Dat.
-
- `,
- 2: html`
-
- Think of it as a folder – with some magic.
-
- `,
- 3: html`
-
- You can turn any folder on your computer into a Dat.
-
- `,
- 4: html`
-
- Dats can be easily shared.
- Just copy the unique dat link and securely share it.
-
- `,
- 5: html`
-
- You can also import existing Dats.
- Check out datproject.org to explore open datasets.
-
- `
- }[screen]}
-
- ${screen === 0
- ? button.green('Get Started', { onclick: next, class: 'mt2 mb5 relative' })
- : html`
-
- `}
-
- `
- }
-
- function update () {
- if (this.state.nextScreen) {
- this.state.nextScreen = false
- return true
- }
- return false
- }
-
- function load () {
- window.addEventListener('keydown', onkeydown)
- }
-
- function unload () {
- window.removeEventListener('keydown', onkeydown)
- }
-
- function onkeydown (ev) {
- if (ev.code !== 'Escape') return
- window.removeEventListener('keydown', onkeydown)
- component.props.onexit()
- }
-}
diff --git a/elements/modal.js b/elements/modal.js
deleted file mode 100644
index fa53cf46..00000000
--- a/elements/modal.js
+++ /dev/null
@@ -1,397 +0,0 @@
-const remoteProcess = require('electron').remote.process
-const clipboard = require('electron').clipboard
-const Modal = require('base-elements/modal')
-const app = require('electron').remote.app
-const remote = require('electron').remote
-const minimist = require('minimist')
-const morph = require('nanomorph')
-const html = require('choo/html')
-const assert = require('assert')
-const rimraf = require('rimraf')
-const css = require('sheetify')
-const path = require('path')
-const fs = require('fs')
-const os = require('os')
-
-const button = require('./button')
-const icon = require('./icon')
-
-const prefix = css`
- :host {
- min-width: 25rem;
- max-width: 32rem;
- padding: 2rem 2.5rem 2rem;
- background-color: var(--color-white);
- box-shadow: 0 1.2rem 2.4rem rgba(0,0,0,.5);
- }
- :host .exit {
- border: none;
- color: var(--color-neutral-40);
- }
- :host .exit:hover,
- :host .exit:focus {
- color: var(--color-neutral);
- }
- :host .icon-cross {
- vertical-align: middle;
- width: 1.6em;
- max-height: 1.6em;
- transition: color .025s ease-out;
- margin-right: auto;
- margin-left: auto;
- }
-`
-
-const input = css`
- :host {
- --input-height: 3rem;
- --icon-height: 1.2rem;
- --button-width: 3rem;
- height: var(--input-height);
- border: 0;
- .dat-input-button {
- width: var(--button-width);
- height: calc(var(--input-height) - 2px);
- top: 1px;
- right: 1px;
- bottom: 1px;
- background-color: var(--color-neutral-10);
- border: none;
- color: var(--color-neutral-30);
- &:hover,
- &:focus {
- outline: none;
- color: var(--color-green-hover);
- }
- }
-
- .icon-link,
- .icon-clipboard {
- position: absolute;
- top: 0;
- bottom: 0;
- padding-top: calc(var(--icon-height) - .35rem);
- padding-left: .75rem;
- pointer-events: none;
- display: block;
- width: var(--icon-height);
- height: var(--icon-height);
- transition: color .025s ease-out;
- }
- .icon-link {
- left: 0;
- color: var(--color-neutral-30);
- }
- .icon-clipboard {
- right: .8rem;
- }
- .dat-input-input {
- width: 100%;
- height: var(--input-height);
- padding-right: var(--button-width);
- padding-left: 2.5rem;
- font-size: 1rem;
- font-weight: 600;
- border: 1px solid var(--color-neutral-20);
- background-color: var(--color-white);
- color: var(--color-green-hover);
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- &:hover,
- &:focus {
- outline: none;
- }
- }
-
- .dat-input-check {
- color: var(--color-blue);
- top: 2rem;
- }
- .icon-check {
- width: var(--icon-height);
- height: .875rem;
- vertical-align: -.15rem;
- display: inline-block;
- }
- .confirmation {
- right: 0;
- opacity: 0;
- top: -.5rem;
- color: var(--color-blue);
- }
- .show-confirmation {
- top: -1.2rem;
- opacity: 1;
- transition: all .15s ease-out;
- }
- }
-`
-
-module.exports.confirm = confirmModal
-module.exports.crash = crashModal
-module.exports.error = errorModal
-module.exports.warn = warningModal
-module.exports.link = linkModal
-
-function confirmModal () {
- return Modal({
- render: render,
- onexit: onexit,
- class: 'modal'
- })
-
- function onexit () {
- const el = document.querySelector('.modal')
- if (el) el.parentNode.removeChild(el)
- }
-
- function render (cb) {
- assert.equal(typeof cb, 'function', 'elements/confirm-modal: cb should be a function')
-
- var deleteButton = button.green('Yes, Remove Dat', {
- class: 'fr ml3 confirm-button',
- onclick: ondelete,
- onload: function () {
- deleteButton.focus()
- }
- })
-
- var exitButton = button('No, Cancel', {
- class: 'fr cancel-button',
- onclick: onexit
- })
-
- return html`
-
-
- Remove Dat
-
-
- Are you sure you want to remove this dat?
-
- This can’t be undone.
-
-
- ${deleteButton}
- ${exitButton}
-
-
- ${icon('cross')}
-
-
- `
-
- function ondelete () {
- cb()
- onexit()
- }
- }
-}
-
-function crashModal () {
- return Modal({ render: render })
-
- function render (onOk, onExit) {
- return html`
-
-
- Unexpected issue
-
- There was an unexpected fatal issue. The app will now close. We
- have received a bug report and will work to fix this as soon as
- possible.
-
-
- ${button.green('Exit Application', {
- class: 'fr ml3',
- onclick: onexit
- })}
-
-
-
-
- Danger Zone: If this error keeps occurring you can
- try to clear the database or delete all data. These actions cannot
- be reversed.
-
-
- ${button.red('Clear Database & exit', {
- class: 'fr ml3',
- onclick: clearDatabase
- })}
- ${button.red('Delete All Data & exit', {
- class: 'fr ml3',
- onclick: deleteData
- })}
-
-
-
- `
- }
-
- function onexit () {
- var window = remote.getCurrentWindow()
- window.close()
- }
-
- function deleteData () {
- const argv = minimist(remoteProcess.argv.slice(2))
- const downloadsDir = (argv.data)
- ? argv.data
- : path.join(app.getPath('downloads'), '/dat')
- rimraf(downloadsDir, onexit)
- }
-
- function clearDatabase () {
- const dbLocation = path.join(os.homedir(), '.dat-desktop')
- const dbFile = path.join(dbLocation, 'dats.json')
- fs.unlink(dbFile, onexit)
- }
-}
-
-function errorModal () {
- return Modal({
- render: render,
- onexit: onexit,
- class: 'modal'
- })
-
- function render (message) {
- var exitButton = button.green('Ok', {
- class: 'fr ml3',
- onclick: onexit,
- onload: function () {
- exitButton.focus()
- }
- })
-
- return html`
-
-
- Oops, something went wrong
-
- ${message}
-
-
- ${exitButton}
-
-
-
- `
- }
-
- function onexit () {
- const el = document.querySelector('.modal')
- if (el) el.parentNode.removeChild(el)
- }
-}
-
-function warningModal () {
- return Modal({
- render: render,
- onexit: onexit,
- class: 'modal'
- })
-
- function render (message) {
- var exitButton = button.green('Ok', {
- class: 'fr ml3',
- onclick: onexit,
- onload: function () {
- exitButton.focus()
- }
- })
-
- return html`
-
-
- Warning
-
- ${message}
-
-
- ${exitButton}
-
-
-
- `
- }
-
- function onexit () {
- const el = document.querySelector('.modal')
- if (el) el.parentNode.removeChild(el)
- }
-}
-
-function linkModal () {
- let isCopied = false
- let link = ''
- let el = ''
-
- const modal = Modal({
- onunload: onunload,
- onexit: onexit,
- render: render,
- class: 'modal'
- })
-
- return modal
-
- function onexit () {
- const el = document.querySelector('.modal')
- if (el) el.parentNode.removeChild(el)
- }
-
- function onunload () {
- isCopied = false
- link = ''
- el = null
- }
-
- function render (newLink) {
- if (!link) link = 'dat://' + newLink
- const confirmClass = (isCopied) ? 'show-confirmation' : ''
-
- let _el = html`
-
- `
-
- if (!el) el = _el
- return _el
-
- function onclick () {
- isCopied = true
- clipboard.writeText(link)
- var _el = render()
- morph(el, _el)
- }
- }
-}
diff --git a/elements/sprite.js b/elements/sprite.js
deleted file mode 100644
index d971c46a..00000000
--- a/elements/sprite.js
+++ /dev/null
@@ -1,21 +0,0 @@
-const microcomponent = require('microcomponent')
-const datIcons = require('dat-icons/raw')
-
-module.exports = svgSprite
-
-function svgSprite () {
- const component = microcomponent({ name: 'svg-sprite' })
- component.on('render', render)
- component.on('update', update)
- return component
-
- function render () {
- const _el = document.createElement('div')
- _el.innerHTML = datIcons()
- return _el.childNodes[0]
- }
-
- function update () {
- return false
- }
-}
diff --git a/elements/status-bar.js b/elements/status-bar.js
deleted file mode 100644
index 49f73f14..00000000
--- a/elements/status-bar.js
+++ /dev/null
@@ -1,36 +0,0 @@
-'use strict'
-
-const microcomponent = require('microcomponent')
-const bytes = require('prettier-bytes')
-const html = require('choo/html')
-const css = require('sheetify')
-
-const style = css`
- :host {
- position: absolute;
- bottom: 0;
- width: 100%;
- padding: .5rem 1rem .75rem;
- background-color: var(--color-neutral-04);
- color: var(--color-neutral-60);
- }
-`
-
-module.exports = function () {
- const component = microcomponent({
- name: 'status bar',
- pure: true
- })
- component.on('render', render)
- return component
-
- function render () {
- const { up, down } = this.props
- return html`
-
- Download: ${bytes(down)}/s
- Upload: ${bytes(up)}/s
-
- `
- }
-}
diff --git a/elements/status.js b/elements/status.js
deleted file mode 100644
index d348858e..00000000
--- a/elements/status.js
+++ /dev/null
@@ -1,131 +0,0 @@
-const bytes = require('prettier-bytes')
-const html = require('choo/html')
-const css = require('sheetify')
-
-const progressbar = css`
- :host {
- --progress-height: .5rem;
- --bar-height: var(--progress-height);
- --counter-width: 3.0rem;
- --tile-width: 28px;
- --stripe-width: 5px;
- min-width: 8rem;
- max-width: 24rem;
- overflow: hidden;
- padding-top: .4rem;
- .bar {
- height: var(--progress-height);
- width: calc(100% - var(--counter-width));
- float: left;
- overflow: hidden;
- background-color: var(--color-neutral-20);
- border-radius: 2px;
- }
- .line {
- width: 0%;
- height: var(--progress-height);
- background-color: var(--color-blue);
- border-radius: 2px;
- }
- .line-loading {
- overflow: hidden;
- position: relative;
- height: var(--bar-height);
- &:before {
- content: '';
- width: 100%;
- height: var(--bar-height);
- position: absolute;
- top: 0;
- left: 0;
- background-image: repeating-linear-gradient(
- -45deg,
- transparent,
- transparent var(--stripe-width),
- rgba(255,255,255,.1) var(--stripe-width),
- rgba(255,255,255,.1) calc(2 * var(--stripe-width))
- );
- background-size: var(--tile-width) var(--bar-height);
- animation: move-bg .75s linear infinite;
- }
- }
- .line-complete {
- background-color: var(--color-green);
- }
- .line-paused {
- background-color: var(--color-neutral-40);
- }
- .counter {
- float: right;
- min-width: var(--counter-width);
- margin-top: -.4rem;
- text-align: right;
- }
- }
- @keyframes move-bg {
- 0% {
- background-position: 28px 0;
- }
- 100% {
- background-position: 0 0;
- }
- }
-`
-
-const progressSubline = css`
- :host {
- .arrow {
- vertical-align: top;
- }
- }
-`
-
-module.exports = function (dat, stats) {
- var progress = Math.floor((dat.progress || 0) * 100)
- var progressbarLine = (stats.state === 'loading')
- ? 'line-loading'
- : (stats.state === 'paused' || stats.state === 'stale')
- ? 'line-paused'
- : 'line-complete'
- var netStats = dat.stats.network
-
- var progressText
- switch (stats.state) {
- case 'complete':
- progressText = `Complete. ↑ ${speed(netStats.uploadSpeed)}`
- break
- case 'loading':
- progressText = html`
-
- ↓ ${speed(netStats.downloadSpeed)}↑ ${speed(netStats.uploadSpeed)}
- `
- break
- case 'stale':
- progressText = 'waiting for peers…'
- break
- default:
- progressText = 'Paused.'
- }
- function speed (n) {
- return `${bytes(n || 0)}/s`
- }
-
- return html`
-
-
-
-
- ${progressText}
-
-
-
- `
-}
diff --git a/elements/table-row.js b/elements/table-row.js
deleted file mode 100644
index 283bb1a4..00000000
--- a/elements/table-row.js
+++ /dev/null
@@ -1,407 +0,0 @@
-var microcomponent = require('microcomponent')
-var encoding = require('dat-encoding')
-var bytes = require('prettier-bytes')
-var html = require('choo/html')
-var css = require('sheetify')
-
-var TitleField = require('./table-title-field')
-var button = require('./button')
-var status = require('./status')
-var icon = require('./icon')
-
-var cellStyles = css`
- :host {
- transition: background-color .025s ease-out;
- &:hover, &:focus {
- background-color: var(--color-neutral-04);
- cursor: pointer;
- }
- .cell-1 {
- width: 4rem;
- }
- .cell-2 {
- width: 14rem;
- max-width: 12rem;
- @media (min-width: 768px) {
- max-width: 20rem;
- }
- @media (min-width: 1280px) {
- max-width: 24rem;
- }
- }
- .cell-3 {
- width: 15rem;
- }
- .cell-4 {
- width: 4.5rem;
- white-space: nowrap;
- }
- .cell-5 {
- width: 4.5rem;
- white-space: nowrap;
- }
- .cell-6 {
- width: 10.25rem;
- }
- .cell-truncate {
- width: 100%;
- }
- }
-`
-
-var iconStyles = css`
- :host {
- .row-action {
- height: 1.5rem;
- display: inline-block;
- color: var(--color-neutral-20);
- svg {
- vertical-align: middle;
- width: 1.1em;
- max-height: 1.6em;
- @media (min-width: 960px) {
- width: 1.4em;
- }
- }
- &:hover,
- &:focus {
- outline: none;
- color: var(--color-neutral-50);
- }
- &:first-child {
- padding-left: 0;
- }
- &:last-child {
- padding-right: 0;
- }
- }
- .icon-network {
- display: inline-block;
- color: var(--color-neutral-20);
- vertical-align: sub;
- width: 1em;
- svg polygon {
- fill: inherit;
- }
- }
- }
-`
-
-var networkStyles = css`
- :host {
- vertical-align: top;
- svg {
- height: 1.5rem;
- display: inline-block;
- color: var(--color-neutral-20);
- vertical-align: top;
- width: 0.75em;
- max-height: 1.6em;
- margin-top: -0.05em;
- margin-right: 5px;
- }
- .network-peers-many {
- --polygon-1-color: var(--color-green);
- --polygon-2-color: var(--color-green);
- --polygon-3-color: var(--color-green);
- }
- .network-peers-1 {
- --polygon-1-color: var(--color-yellow);
- --polygon-2-color: var(--color-yellow);
- }
- .network-peers-0 {
- --polygon-1-color: var(--color-red);
- }
- }
-`
-
-module.exports = Row
-
-function Row () {
- var hexContent = HexContent()
- var finderButton = FinderButton()
- var linkButton = LinkButton()
- var deleteButton = DeleteButton()
- var titleField = TitleField()
- var networkIcon = NetworkIcon()
-
- var component = microcomponent({ name: 'table-row' })
- component.on('render', render)
- component.on('update', update)
- return component
-
- function render () {
- var { dat, state, emit, highlight } = this.props
- if (dat instanceof Error) return errorRow(dat, emit, deleteButton)
-
- var stats = dat.stats
- var peers = dat.network ? dat.network.connected : 'N/A'
- var key = encoding.encode(dat.key)
- var styles = cellStyles
- if (highlight) styles += ' fade-highlight'
-
- stats.size = dat.archive.content
- ? bytes(dat.archive.content.byteLength)
- : 'N/A'
- stats.state = !dat.network
- ? 'paused'
- : dat.writable || dat.progress === 1
- ? 'complete'
- : peers
- ? 'loading'
- : 'stale'
-
- function onclick () {
- emit('dats:inspect', dat)
- }
-
- return html`
-
-
-
- ${hexContent.render({ dat, stats, emit })}
-
-
-
-
- ${titleField.render({ dat, state, emit })}
-
- ${dat.metadata.author || 'Anonymous'} •
-
- ${dat.writable ? 'Read & Write' : 'Read-only'}
-
-
-
-
-
- ${status(dat, stats)}
-
-
- ${stats.size}
-
-
- ${networkIcon.render({ dat, emit })}
- ${peers}
-
-
-
- ${finderButton.render({ dat, emit })}
- ${linkButton.render({ dat, emit })}
- ${deleteButton.render({ dat, emit })}
-
-
-
- `
- }
-
- function update (props) {
- return true
- }
-}
-
-function FinderButton () {
- var component = microcomponent({ name: 'finder-button' })
- component.on('render', render)
- component.on('update', update)
- return component
-
- function render () {
- var { dat, emit } = this.props
- return button.icon('Open in Finder', {
- icon: icon('open-in-finder'),
- class: 'row-action',
- onclick: function (e) {
- e.preventDefault()
- e.stopPropagation()
- emit('dats:open', dat)
- }
- })
- }
-
- function update () {
- return false
- }
-}
-
-function LinkButton () {
- var component = microcomponent({ name: 'link-button' })
- component.on('render', render)
- component.on('update', update)
- return component
-
- function render () {
- var { dat, emit } = this.props
- return button.icon('Share Dat', {
- icon: icon('link'),
- class: 'row-action',
- onclick: function (e) {
- e.preventDefault()
- e.stopPropagation()
- emit('dats:share', dat)
- }
- })
- }
-
- function update () {
- return false
- }
-}
-
-function DeleteButton () {
- var component = microcomponent({ name: 'delete-button' })
- component.on('render', render)
- component.on('update', update)
- return component
-
- function render () {
- var { dat, emit } = this.props
- return button.icon('Remove Dat', {
- icon: icon('delete'),
- class: 'row-action delete mr2',
- onclick: function (e) {
- e.preventDefault()
- e.stopPropagation()
- emit('dats:remove', { key: dat.key || dat.data.key })
- }
- })
- }
-
- function update () {
- return false
- }
-}
-
-function NetworkIcon () {
- var component = microcomponent({
- name: 'network-icon',
- state: {
- peerCount: 0
- }
- })
- component.on('render', render)
- component.on('update', update)
- return component
-
- function render () {
- var { dat } = this.props
- var peerCount = this.state.peerCount = dat.network
- ? dat.network.connected
- : 0
- var iconClass = peerCount === 0
- ? 'network-peers-0'
- : peerCount === 1
- ? 'network-peers-1'
- : 'network-peers-many'
-
- return icon('network', { class: iconClass })
- }
-
- function update ({ dat, emit }) {
- var newPeerCount = dat.network ? dat.network.connected : 0
- return this.state.peerCount !== newPeerCount
- }
-}
-
-// create a new hexcontent icon
-function HexContent () {
- var component = microcomponent({ name: 'hex-content' })
- component.on('render', render)
- component.on('update', update)
- return component
-
- function onmousemove (ev) {
- if (!component.state.hover) return
- if (component._element.contains(ev.target)) return
- component.state.setHover = false
- document.body.removeEventListener('mousemove', onmousemove)
- component.render(component.props)
- }
-
- function render () {
- var state = this.state.state = this.props.stats.state
- var { emit, dat } = this.props
-
- if (typeof this.state.setHover === 'boolean') {
- if (this.state.setHover) document.body.addEventListener('mousemove', onmousemove)
- this.state.hover = this.state.setHover
- this.state.setHover = null
- }
-
- if (this.state.hover) {
- return button.icon('pause', {
- icon: icon('hexagon-pause', {class: 'w2'}),
- class: 'color-neutral-40 ph0',
- onclick: togglePause
- })
- } else if (state === 'loading') {
- return button.icon('loading', {
- icon: icon('hexagon-down', {class: 'w2'}),
- class: 'color-blue hover-color-blue-hover ph0',
- onclick: togglePause
- })
- } else if (state === 'paused') {
- return button.icon('paused', {
- icon: icon('hexagon-resume', {class: 'w2'}),
- class: 'color-neutral-30 hover-color-neutral-40 ph0',
- onclick: togglePause
- })
- } else if (state === 'complete') {
- return button.icon('complete', {
- icon: icon('hexagon-up', {class: 'w2'}),
- class: 'color-green hover-color-green-hover ph0',
- onclick: togglePause,
- onmouseover: ev => {
- this.state.setHover = true
- this.render(this.props)
- }
- })
- } else {
- return button.icon('stale', {
- icon: icon('hexagon-x', {class: 'w2'}),
- class: 'color-neutral-30 hover-color-neutral-40 ph0',
- onclick: togglePause
- })
- }
-
- function togglePause (e) {
- e.preventDefault()
- e.stopPropagation()
- emit('dats:toggle-pause', dat)
- }
- }
-
- function update ({ dat, stats, emit }) {
- return stats.state !== this.state.state ||
- typeof this.state.setHover === 'boolean'
- }
-}
-
-function errorRow (err, emit, deleteButton) {
- var errorHexIcon = icon('hexagon-x', {
- class: 'w2 color-red'
- })
- return html`
-
-
-
- ${errorHexIcon}
-
-
-
-
-
- Error
-
-
- Could not share ${err.data.dir}
-
-
-
-
-
- ${deleteButton.render({ dat: err, emit })}
-
-
-
- `
-}
diff --git a/elements/table-title-field.js b/elements/table-title-field.js
deleted file mode 100644
index 3630ed86..00000000
--- a/elements/table-title-field.js
+++ /dev/null
@@ -1,186 +0,0 @@
-var microcomponent = require('microcomponent')
-var nanomorph = require('nanomorph')
-var html = require('choo/html')
-var css = require('sheetify')
-var icon = require('./icon')
-var button = require('./button')
-
-var overlay = css`
- :host {
- position: absolute;
- top: 0;
- left: 0;
- width: 100vw;
- height: 100vh;
- background-color: rgba(0,0,0,.2);
- }
-`
-
-var editableField = css`
- :host {
- position: relative;
- h2 {
- position: relative;
- }
- .indicator {
- position: absolute;
- display: none;
- top: .25rem;
- right: 0;
- width: .75rem;
- }
- &:hover, &:focus {
- h2 {
- color: var(--color-blue);
- }
- .indicator {
- display: block;
- }
- }
- }
-`
-
-module.exports = TitleField
-
-// Creates an input field with an explicit save button.
-// There's 2 modes: active and inactive.
-// Only dats that you can write to can have an active input field.
-// Inactive becomes active by clicking on the input field.
-// Active becomes inactive by:
-// - clicking anywhere outside the field
-// - pressing escape
-// - pressing enter (saving)
-// - clicking the save button (saving)
-function TitleField () {
- var component = microcomponent({
- name: 'table-title-field',
- state: resetState()
- })
- component.on('render', render)
- component.on('render:active', renderActive)
- component.on('render:inactive', renderInactive)
- component.on('update', update)
- return component
-
- function update ({ dat }) {
- return dat.writable !== this.state.writable ||
- dat.key.toString('hex') !== this.state.key ||
- this.state.title !== dat.metadata.title || '#' + this.state.key
- }
-
- function resetState () {
- return {
- isEditing: false,
- editTarget: null,
- editValue: '',
- title: null,
- key: null
- }
- }
-
- function render () {
- var dat = component.props.dat
- var state = component.state
-
- if (dat) {
- state.writable = dat.writable
- state.key = dat.key.toString('hex')
- state.title = dat.metadata.title || ''
- state.placeholderTitle = '#' + state.key
- }
-
- if (state.isEditing && state.writable) return component.emit('render:active')
- else return component.emit('render:inactive')
- }
-
- function renderInactive () {
- var state = this.state
- state.editValue = ''
-
- return state.writable
- ? html`
-
-
- ${state.title || state.placeholderTitle}
- ${icon('edit', { class: 'absolute top-0 bottom-0 right-0 color-neutral-30 indicator' })}
-
-
- `
- : html`
-
-
- ${state.title || state.placeholderTitle}
-
-
- `
-
- function onclick (e) {
- e.stopPropagation()
- e.preventDefault()
- state.isEditing = true
- state.editValue = state.title
- component.render(Object.assign({}, component.props))
- }
- }
-
- function renderActive () {
- setTimeout(function () {
- var input = self._element.querySelector('input')
- input.focus()
- input.select()
- }, 0)
-
- var self = this
- var state = this.state
- return html`
-
-
-
-
- ${renderButton()}
-
-
- `
-
- function handleKeypress (e) {
- var oldValue = state.editValue
- var newValue = e.target.value
- state.editValue = newValue
- e.stopPropagation()
-
- if (e.code === 'Escape') {
- e.preventDefault()
- deactivate()
- } else if (e.code === 'Enter') {
- e.preventDefault()
- handleSave()
- } else if (oldValue !== newValue) {
- nanomorph(self._element.querySelector('button'), renderButton())
- }
- }
-
- function renderButton () {
- if (state.editValue === state.title) {
- return button('Save', { onclick: deactivate })
- } else {
- return button.green('Save', { onclick: handleSave })
- }
- }
-
- function handleSave (e) {
- if (e) {
- e.stopPropagation()
- e.preventDefault()
- }
- component.props.emit('dats:update-title', { key: self.state.key, title: self.state.editValue })
- deactivate()
- }
-
- function deactivate (e) {
- if (e) e.stopPropagation()
- state.isEditing = false
- component.render(Object.assign({}, component.props))
- }
- }
-}
diff --git a/elements/table.js b/elements/table.js
deleted file mode 100644
index b27a9782..00000000
--- a/elements/table.js
+++ /dev/null
@@ -1,117 +0,0 @@
-var microcomponent = require('microcomponent')
-var nanolog = require('nanologger')
-var html = require('choo/html')
-var css = require('sheetify')
-
-var TableRow = require('./table-row')
-
-var tableStyles = css`
- :host {
- width: 100%;
- max-width: 80rem;
- margin: 0 auto;
- border-collapse: collapse;
- th,
- td {
- padding-right: .75rem;
- padding-left: .75rem;
- }
- th {
- height: 4rem;
- font-size: .8125rem;
- font-weight: normal;
- color: var(--color-neutral-60);
- border-bottom: 1px solid var(--color-neutral-20);
- &:first-child {
- width: 3rem;
- padding: 0;
- border: none;
- }
- &:last-child {
- width: 8.25rem;
- }
- }
- td {
- height: 4rem;
- vertical-align: top;
- padding-top: 1rem;
- }
- tr:hover td {
- background-color: var(--color-neutral--04);
- }
- }
-`
-
-var tableHead = TableHead()
-var tableRows = TableRows()
-
-module.exports = tableElement
-
-function tableElement (state, emit) {
- var dats = state.dats.values
- return html`
-
-
- ${tableHead.render()}
-
- ${tableRows(dats, state, emit)}
-
-
-
- `
-}
-
-function TableRows () {
- var elements = {}
- var log = nanolog('table-rows')
- var initialLoad = true
- log.debug('initialized')
-
- return function (dats, state, emit) {
- log.debug('render', elements)
- var usedKeys = []
- var renderedElements = dats.map(function (dat) {
- var key = dat instanceof Error
- ? dat.stack
- : dat.key.toString('hex')
- var row = elements[key]
- usedKeys.push(key)
- if (row) {
- return row.render({ dat, state, emit })
- } else {
- var highlight = !initialLoad
- var newRow = TableRow()
- elements[key] = newRow
- return newRow.render({ dat, state, emit, highlight })
- }
- })
-
- Object.keys(elements).forEach(function (key) {
- if (usedKeys.indexOf(key) === -1) elements[key] = null
- })
-
- initialLoad = false
- return renderedElements
- }
-}
-
-function TableHead () {
- return microcomponent({
- name: 'table-head',
- pure: true
- })
- .on('render', function () {
- return html`
-
-
-
- Link
- Status
- Size
- Peers
-
-
-
- `
- })
-}
diff --git a/index.html b/index.html
index ad41995e..3af27d85 100644
--- a/index.html
+++ b/index.html
@@ -2,10 +2,11 @@
Dat Desktop
-
+
+
+
-
+
-
-
+
\ No newline at end of file
diff --git a/index.js b/index.js
index 5a43e538..11f5a115 100644
--- a/index.js
+++ b/index.js
@@ -1,46 +1,36 @@
-const defaultMenu = require('electron-default-menu')
-const { app, shell, Menu, ipcMain } = require('electron')
-const window = require('electron-window')
-const Env = require('envobj')
-const path = require('path')
-const doctor = require('dat-doctor')
-const Writable = require('stream').Writable
+'use strict'
+const { app, BrowserWindow, shell, Menu, ipcMain } = require('electron')
+const { neutral } = require('dat-colors')
const autoUpdater = require('./lib/auto-updater')
-const colors = require('dat-colors')
+const defaultMenu = require('electron-default-menu')
+const doctor = require('dat-doctor')
+const path = require('path')
+const isDev = process.env.NODE_ENV === 'development'
+const { Writable } = require('stream')
-const delegateEvents = require('delegate-electron-events')
+if (typeof process.env.NODE_V === 'string' && process.env.NODE_V !== process.version) {
+ console.error(`
+ WARNING:
+ You are using a different version of Node than is used in this electron release!
+ - Used Version: ${process.env.NODE_V}
+ - Electron's Node Version: ${process.version}
+
+ We recommend running:
+
+ $ nvm install ${process.version}; npm rebuild;
-const windowStyles = {
- width: 800,
- height: 600,
- titleBarStyle: 'hidden-inset',
- minWidth: 640,
- minHeight: 395,
- backgroundColor: colors.neutral
+ `)
}
-const env = Env({ NODE_ENV: 'production' })
-const emitter = delegateEvents() // make sure we don't miss events while booting
-let mainWindow
-
-const shouldQuit = app.makeSingleInstance(() => {
- if (mainWindow) {
- if (mainWindow.isMinimized()) mainWindow.restore()
- mainWindow.focus()
- }
-})
-
-if (shouldQuit) app.quit()
-
const menu = defaultMenu(app, shell)
menu[menu.length - 1].submenu.push({
label: 'Doctor',
click: () => {
- mainWindow.webContents.openDevTools({ mode: 'detach' })
+ win.webContents.openDevTools({ mode: 'detach' })
const out = Writable({
write (chunk, env, done) {
- if (mainWindow) mainWindow.webContents.send('log', chunk.toString())
+ if (win) win.webContents.send('log', chunk.toString())
done()
}
})
@@ -48,39 +38,90 @@ menu[menu.length - 1].submenu.push({
}
})
-function onReady () {
- mainWindow = window.createWindow(windowStyles)
- const indexPath = path.join(__dirname, 'index.html')
- const log = str => mainWindow.webContents.send('log', str)
-
- ipcMain.on('quit', () => app.quit()) // TODO: ping backend with error
- ipcMain.on('progress', (ev, progress) => mainWindow.setProgressBar(progress))
- emitter.on('open-file', (file) => mainWindow.webContents.send('file', file))
- emitter.on('open-url', (url) => mainWindow.webContents.send('link', url))
+let win
+let watchProcess
- mainWindow.showUrl(indexPath, () => {
- Menu.setApplicationMenu(Menu.buildFromTemplate(menu))
- if (env.NODE_ENV === 'development') {
- mainWindow.webContents.openDevTools({ mode: 'detach' })
- }
- if (env.NODE_ENV === 'production') {
- autoUpdater({ log })
+app.on('ready', () => {
+ if (isDev) {
+ BrowserWindow.addDevToolsExtension(path.join(__dirname, 'dev', 'react-dev-tools'))
+ watchAndReload()
+ }
+ win = new BrowserWindow({
+ // Extending the size of the browserwindow to make sure that the developer bar is visible.
+ width: 800 + (isDev ? 50 : 0),
+ height: 600 + (isDev ? 200 : 0),
+ titleBarStyle: 'hiddenInset',
+ minWidth: 640,
+ minHeight: 395,
+ backgroundColor: neutral,
+ webPreferences: {
+ nodeIntegration: false,
+ preload: `${__dirname}/preload.js`
}
})
+ win.loadURL(`file://${__dirname}/index.html`)
+ Menu.setApplicationMenu(Menu.buildFromTemplate(menu))
- mainWindow.on('closed', () => {
- mainWindow = null
- })
-}
+ ipcMain.on('progress', (_, progress) => win && win.setProgressBar(progress))
-app.on('ready', () => {
- if (env.NODE_ENV !== 'production') {
- const browserify = require('./lib/browserify')
- const b = browserify({ watch: true })
- b.once('written', onReady)
+ if (isDev) {
+ win.webContents.openDevTools()
} else {
- onReady()
+ const log = str => win && win.webContents.send('log', str)
+ autoUpdater({ log })
+ }
+})
+
+app.on('will-finish-launching', () => {
+ app.on('open-url', (_, url) => win.webContents.send('link', url))
+ app.on('open-file', (_, path) => win.webContents.send('file', path))
+})
+
+app.on('window-all-closed', () => {
+ if (watchProcess) {
+ watchProcess.close()
+ watchProcess = null
}
+ app.quit()
+})
+
+const quit = app.makeSingleInstance(() => {
+ if (!win) return
+ if (win.isMinimized()) win.restore()
+ win.focus()
})
-app.on('window-all-closed', () => app.quit())
+if (quit) app.quit()
+
+function watchAndReload () {
+ let gaze
+ let first = true
+ try {
+ gaze = require('gaze')
+ } catch (e) {
+ console.warn('Gaze is not installed, wont be able to reload the app')
+ // In case dev dependencies are not installed
+ return
+ }
+ gaze([
+ `preload.js`,
+ `static/**/*`
+ ], {
+ debounceDelay: 60,
+ cwd: __dirname
+ }, (err, process) => {
+ if (err) {
+ console.warn('Gaze doesnt run well, wont be able to reload the app')
+ console.warn(err)
+ return
+ }
+ watchProcess = process
+ watchProcess.on('all', () => {
+ if (first) {
+ first = false
+ return
+ }
+ win && win.reload()
+ })
+ })
+}
diff --git a/lib/auto-updater.js b/lib/auto-updater.js
index 3093cebb..81c08712 100644
--- a/lib/auto-updater.js
+++ b/lib/auto-updater.js
@@ -1,35 +1,46 @@
const os = require('os')
-const { app, dialog } = require('electron')
-const { autoUpdater } = require('electron-auto-updater')
+const { app, dialog, autoUpdater } = require('electron')
const ms = require('ms')
module.exports = ({ log }) => {
- const onerror = err => err && log(err.stack)
+ const onerror = err => err && log(err.stack || err)
const platform = `${os.platform()}_${os.arch()}`
const version = app.getVersion()
- autoUpdater.setFeedURL(`http://dat.land:6000/update/${platform}/${version}`)
+ try {
+ autoUpdater.setFeedURL(`http://dat.land:6000/update/${platform}/${version}`)
+ } catch (e) {
+ onerror(e)
+ return
+ }
autoUpdater.on('error', onerror)
autoUpdater.on('checking-for-update', () => log('checking for update'))
- autoUpdater.on('update-available', () => log('update available, downloading…'))
+ autoUpdater.on('update-available', () =>
+ log('update available, downloading…')
+ )
autoUpdater.on('update-not-available', () => log('update not available'))
- autoUpdater.on('download-progress', p => log('download progress ' + p.percent))
+ autoUpdater.on('download-progress', p =>
+ log('download progress ' + p.percent)
+ )
autoUpdater.once('update-downloaded', (ev, notes, version) => {
log('update downloaded')
- dialog.showMessageBox({
- type: 'question',
- buttons: ['Install and Relaunch', 'Dismiss'],
- defaultId: 0,
- title: 'A new version of Dat Desktop is ready to install!',
- message: `Dat Desktop ${version} has been downloaded and is ready to use! Would you like to install it and relaunch Dat Desktop now?`
- }, res => {
- const update = res === 0
- if (!update) return log('dismiss')
- log('updating…')
- autoUpdater.quitAndInstall()
- })
+ dialog.showMessageBox(
+ {
+ type: 'question',
+ buttons: ['Install and Relaunch', 'Dismiss'],
+ defaultId: 0,
+ title: 'A new version of Dat Desktop is ready to install!',
+ message: `Dat Desktop ${version} has been downloaded and is ready to use! Would you like to install it and relaunch Dat Desktop now?`
+ },
+ res => {
+ const update = res === 0
+ if (!update) return log('dismiss')
+ log('updating…')
+ autoUpdater.quitAndInstall()
+ }
+ )
})
setTimeout(() => autoUpdater.checkForUpdates(), ms('10s'))
diff --git a/lib/browserify.js b/lib/browserify.js
deleted file mode 100644
index d6666407..00000000
--- a/lib/browserify.js
+++ /dev/null
@@ -1,64 +0,0 @@
-const browserify = require('browserify')
-const envify = require('envify/custom')
-const watchify = require('watchify')
-const fs = require('fs')
-const path = require('path')
-const concat = require('concat-stream')
-
-module.exports = opts => {
- const browserifyOpts = {
- insertGlobals: true,
- ignoreMissing: true,
- builtins: false,
- browserField: false,
- insertGlobalVars: {
- '__dirname': (file, basedir) => {
- return '__dirname + "/" + ' +
- JSON.stringify(path.dirname(path.relative(basedir, file)))
- },
- '__filename': (file, basedir) => {
- return '__dirname + "/" + ' +
- JSON.stringify(path.relative(basedir, file))
- },
- 'process': undefined,
- 'global': undefined,
- 'Buffer': undefined,
- 'Buffer.isBuffer': undefined
- },
- postFilter: (id, file, pkg) => {
- if (!file) return false
- file = path.relative(path.join(__dirname, '..'), file)
- if (file.indexOf('node_modules') > -1 && (file.indexOf('sheetify') === -1 || file.indexOf('electron') === -1)) {
- return false
- }
- return true
- }
- }
-
- if (opts.watch) {
- browserifyOpts.cache = {}
- browserifyOpts.packageCache = {}
- browserifyOpts.plugin = [watchify]
- }
-
- const b = browserify(`${__dirname}/../app.js`, browserifyOpts)
-
- b.transform(envify({ NODE_ENV: process.env.NODE_ENV }))
- b.transform('sheetify/transform', { use: ['sheetify-nested'] })
-
- const bundle = () => {
- process.stderr.write(`${new Date()} bundling…`)
-
- b.bundle().pipe(concat(js => {
- fs.writeFile(`${__dirname}/../bundle.js`, js, err => {
- if (err) throw err
- b.emit('written')
- process.stderr.write('ok!\n')
- })
- }))
- }
-
- b.on('update', bundle)
- bundle()
- return b
-}
diff --git a/lib/dat-json.js b/lib/dat-json.js
deleted file mode 100644
index ba886a17..00000000
--- a/lib/dat-json.js
+++ /dev/null
@@ -1,45 +0,0 @@
-var stringKey = require('dat-encoding').toStr
-var path = require('path')
-var fs = require('fs')
-
-module.exports = function (dat) {
- return {
- read: function (cb) {
- // dat.json
- // reads to dat.meta if exists
- // (TODO: move to module & validate dat.json)
- fs.readFile(datJsonFile(dat), 'utf8', function (err, body) {
- if (err) return cb(err)
- if (!body) return cb(null, {})
- var meta
- try {
- meta = JSON.parse(body)
- } catch (e) {
- return cb(new Error('Error parsing the dat.json file.'))
- }
- cb(null, meta)
- })
- },
- write: function (defaults, cb) {
- if (typeof defaults === 'function') {
- cb = defaults
- defaults = {}
- }
- dat.metadata = {
- title: defaults.title || path.basename(dat.path),
- url: defaults.url,
- author: defaults.author || 'Anonymous'
- }
-
- if (dat.key) dat.metadata.url = 'dat://' + stringKey(dat.key)
- fs.writeFile(datJsonFile(dat), JSON.stringify(dat.metadata), function (err) {
- if (err) return cb(err)
- cb(null, dat.metadata)
- })
- }
- }
-}
-
-function datJsonFile (dat) {
- return path.join(dat.path, 'dat.json')
-}
diff --git a/lib/dat-manager.js b/lib/dat-manager.js
deleted file mode 100644
index 5a6ac5ea..00000000
--- a/lib/dat-manager.js
+++ /dev/null
@@ -1,201 +0,0 @@
-const ipc = require('electron').ipcRenderer
-const encoding = require('dat-encoding')
-const shell = require('electron').shell
-const assert = require('assert')
-const mkdirp = require('mkdirp')
-const path = require('path')
-
-var datJson = require('./dat-json')
-
-module.exports = createManager
-
-// creates a wrapper for all dats. Handles stats, and updates choo's internal
-// state whenever a mutation happens
-function createManager ({ multidat, dbPaused }, onupdate) {
- assert.ok(multidat, 'lib/dat-manager: multidat should exist')
- assert.ok(dbPaused, 'lib/dat-manager: dbPaused should exist')
- assert.ok(onupdate, 'lib/dat-manager: onupdate should exist')
-
- // add stats to all recreated dats
- var dats = multidat.list()
- var speed = { up: 0, down: 0 }
- dats.forEach(initDat)
- setImmediate(function () {
- onupdate(null, dats, speed)
- })
-
- return {
- create: create,
- close: close,
- disconnect: multidat.disconnect,
- pause: pause,
- resume: resume,
- togglePause: togglePause
- }
-
- function create (dir, opts, cb) {
- if (!cb) {
- cb = opts
- opts = {}
- }
-
- assert.equal(typeof dir, 'string', 'dat-manager: dir should be a string')
- assert.equal(typeof opts, 'object', 'dat-manager: opts should be a object')
- assert.equal(typeof cb, 'function', 'dat-manager: cb should be a function')
-
- mkdirp(dir, function (err) {
- if (err) return cb(err)
-
- opts = Object.assign(opts, {
- watch: true,
- resume: true,
- ignoreHidden: true,
- compareFileContent: true
- })
-
- multidat.create(dir, opts, function (err, dat, duplicate) {
- duplicate = duplicate || (err && /temporarily unavailable/.test(err.message))
- if (duplicate) {
- err = new Error('Dat already exists')
- err.warn = true
- }
- if (err) return cb(err)
- initDat(dat)
- update()
- cb(null, dat)
- })
- })
- }
-
- function close (key, cb) {
- dbPaused.write(key, false, function (err) {
- if (err) return cb(err)
- multidat.close(key, function (err) {
- if (err) return cb(err)
- update()
- cb()
- })
- })
- }
-
- function pause (dat, cb) {
- var key = encoding.toStr(dat.key)
- dat.leaveNetwork()
- dat.stats.emit('update')
- dbPaused.write(key, true, cb)
- }
-
- function resume (dat, cb) {
- var key = encoding.toStr(dat.key)
- dat.joinNetwork()
- dat.stats.emit('update')
- dbPaused.write(key, false, cb)
- }
-
- function togglePause (dat, cb) {
- var key = encoding.toStr(dat.key)
- dbPaused.read(function (err, paused) {
- if (err) return cb(err)
- if (paused[key]) resume(dat, cb)
- else pause(dat, cb)
- })
- }
-
- function update () {
- speed = { up: 0, down: 0 }
- var dats = multidat.list().slice()
- dats.forEach(function (dat) {
- if (dat instanceof Error) return
- speed.up += dat.stats.network.uploadSpeed
- speed.down += dat.stats.network.downloadSpeed
- var prevProgress = dat.progress
- var stats = dat.stats.get()
- dat.progress = (!stats)
- ? 0
- : dat.writable
- ? 1
- : Math.min(1, stats.downloaded / stats.length)
- var unfinishedBefore = prevProgress < 1 && prevProgress > 0
- if (dat.progress === 1 && unfinishedBefore) {
- var notification = new window.Notification('Download finished', {
- body: dat.metadata.title || dat.key.toString('hex')
- })
- notification.onclick = function () {
- var pathname = 'file://' + path.resolve(dat.path)
- shell.openExternal(pathname, function () {})
- }
- }
- })
-
- var incomplete = dats.filter(function (dat) {
- return !(dat instanceof Error) && dat.network && dat.progress < 1
- })
- var progress = incomplete.length
- ? incomplete.reduce(function (acc, dat) {
- return acc + dat.progress
- }, 0) / incomplete.length
- : 1
- if (progress === 1) progress = -1 // deactivate
-
- if (ipc) ipc.send('progress', progress)
- onupdate(null, dats, speed)
- }
-
- function initDat (dat) {
- if (dat instanceof Error) return
-
- const key = encoding.toStr(dat.key)
- dbPaused.read((err, paused) => {
- if (err) throw err
- if (dat._closed) return
- if (!paused[key]) {
- dat.joinNetwork()
- dat.network.on('connection', function (connection) {
- update()
- connection.on('close', update)
- })
- update()
- }
- })
-
- dat.metadata = {}
-
- dat.archive.readFile('/dat.json', function (err, blob) {
- if (err && !dat.writable) return
- if (dat._closed) return
- if (err) {
- var json = datJson(dat)
- json.write(next)
- return
- }
- try {
- next(null, JSON.parse(blob))
- } catch (_) {
- return
- }
-
- function next (err, metadata) {
- if (err) return
- Object.assign(dat.metadata, metadata)
- update()
- }
- })
-
- dat.archive.ready(function () {
- update()
- })
-
- dat.archive.on('content', function () {
- update()
- })
-
- if (dat.writable) dat.importFiles()
-
- dat.trackStats()
-
- var iv = setInterval(function () {
- if (dat._closed) return clearInterval(iv)
- update()
- }, 1000)
- }
-}
diff --git a/lib/monkeypatch.js b/lib/monkeypatch.js
deleted file mode 100644
index 75753d92..00000000
--- a/lib/monkeypatch.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// required for electron integration tests
-if (process.env.RUNNING_IN_SPECTRON) {
- const dialog = require('electron').remote.dialog
- const path = require('path')
-
- dialog.showOpenDialog = (opts, cb) => {
- return [path.join(__dirname, '..', 'tests', 'fixtures')]
- }
-}
diff --git a/models/dats.js b/models/dats.js
deleted file mode 100644
index ca98881e..00000000
--- a/models/dats.js
+++ /dev/null
@@ -1,169 +0,0 @@
-const remoteProcess = require('electron').remote.process
-const dialog = require('electron').remote.dialog
-const ipc = require('electron').ipcRenderer
-const waterfall = require('run-waterfall')
-const app = require('electron').remote.app
-const encoding = require('dat-encoding')
-const shell = require('electron').shell
-const Multidat = require('multidat')
-const minimist = require('minimist')
-const toilet = require('toiletdb')
-const mkdirp = require('mkdirp')
-const assert = require('assert')
-const Dat = require('dat-node')
-const xtend = require('xtend')
-const path = require('path')
-const os = require('os')
-
-const Modal = require('../elements/modal')
-const createManager = require('../lib/dat-manager')
-var datJson = require('../lib/dat-json')
-
-var argv = minimist(remoteProcess.argv.slice(2))
-var downloadsDir = (argv.data)
- ? argv.data
- : path.join(app.getPath('downloads'), '/dat')
-
-module.exports = datsModel
-
-function datsModel (state, bus) {
- state.dats = xtend({
- downloadsDir: downloadsDir,
- removalKey: null,
- ready: false,
- values: [],
- speed: { up: 0, down: 0 }
- }, state.dats)
-
- var manager = null
-
- function onerror (err) {
- if (err) bus.emit('error', err)
- }
-
- // boot multidat, create the ~/Downloads/dat directory
- var dbLocation = argv.db || path.join(os.homedir(), '.dat-desktop')
- var dbMultidriveFile = path.join(dbLocation, 'dats.json')
- var dbPausedFile = path.join(dbLocation, 'paused.json')
- var dbMultidrive, dbPaused
-
- var tasks = [
- function (next) {
- mkdirp(dbLocation, next)
- },
- function (_, next) {
- mkdirp(downloadsDir, next)
- },
- function (_, next) {
- dbMultidrive = toilet(dbMultidriveFile)
- dbMultidrive.open(next)
- },
- function (next) {
- dbPaused = toilet(dbPausedFile)
- dbPaused.open(next)
- },
- function (next) {
- Multidat(dbMultidrive, { dat: Dat }, next)
- },
- function (multidat, done) {
- manager = createManager({
- multidat,
- dbPaused
- }, function (err, dats, speed) {
- if (err) return bus.emit('error', err)
- state.dats.values = dats
- state.dats.speed = speed
- state.dats.ready = true
- bus.emit('render')
- bus.emit('dats:loaded')
- done()
- })
- }
- ]
-
- waterfall(tasks, onerror)
-
- // open the dat archive in the native filesystem explorer
- bus.on('dats:open', function (dat) {
- var pathname = 'file://' + path.resolve(dat.path)
- shell.openExternal(pathname, onerror)
- })
-
- // choose a directory and convert it to a dat archive
- bus.on('dats:create', function (pathname) {
- if (!pathname) {
- var files = dialog.showOpenDialog({
- properties: ['openDirectory']
- })
- if (!files || !files.length) return
- pathname = files[0]
- }
- manager.create(pathname, onerror)
- })
-
- bus.on('dats:clone', function ({ key, location }) {
- cloneDat({ key, location })
- })
-
- ipc.on('link', function (event, url) {
- bus.emit('dats:download', url)
- })
-
- function cloneDat ({ key: _key, location }) {
- try {
- var key = encoding.toStr(_key)
- } catch (e) {
- return onerror(new Error("The value you entered doesn't appear to be a valid Dat link"))
- }
-
- var opts = { key }
- var dir = path.join(location, key)
- manager.create(dir, opts, onerror)
- }
-
- // copy a dat share link to clipboard and open a modal
- bus.on('dats:share', function (dat) {
- assert.ok(dat.key, 'dats-model.shareDat: data.key should exist')
- const encodedKey = encoding.toStr(dat.key)
- const modal = Modal.link()(encodedKey)
- document.body.appendChild(modal)
- })
-
- bus.on('dats:toggle-pause', function (dat) {
- manager.togglePause(dat, onerror)
- })
-
- bus.on('dats:remove', function (dat) {
- const modal = Modal.confirm()(function () {
- manager.close(dat.key, function (err) {
- if (err) return onerror(err)
- bus.emit('render')
- })
- })
- document.body.appendChild(modal)
- })
-
- bus.on('dats:update-title', function (data) {
- assert.equal(typeof data, 'object', 'dats:update-title: data should be type object')
- assert.equal(typeof data.key, 'string', 'dats:update-title: data.key should be type string')
- assert.equal(typeof data.title, 'string', 'dats:update-title: data.title should be type string')
-
- var newTitle = data.title
- var key = data.key
- var dat = state.dats.values.find(function (dat) {
- return dat.key.toString('hex') === key
- })
- assert.ok(dat, 'dats:update-title: no dat found for key ' + key)
-
- var values = Object.assign({}, dat.metadata, { title: newTitle })
- var edit = datJson(dat)
- edit.write(values, function (err) {
- if (err) return onerror(err)
- bus.emit('render')
- })
- })
-
- // handle IPC events from the server
- ipc.on('log', (ev, str) => console.log(str))
- ipc.send('ready')
-}
diff --git a/models/download.js b/models/download.js
deleted file mode 100644
index 41d4cb65..00000000
--- a/models/download.js
+++ /dev/null
@@ -1,67 +0,0 @@
-var tmpdir = require('os').tmpdir
-var Dat = require('dat-node')
-var xtend = Object.assign
-
-module.exports = downloadModel
-
-function downloadModel (state, bus) {
- var update = bus.emit.bind(bus, 'render')
-
- state.download = xtend({}, state.download, {
- show: false,
- dat: null
- })
-
- bus.on('dats:download', function (key) {
- state.download.show = true
- state.download.key = key
- if (state.download.dat) {
- state.download.dat.close()
- state.download.dat = null
- }
- update()
-
- var dir = `${tmpdir()}/${Date.now()}`
- Dat(dir, {
- key,
- sparse: true
- }, function (err, dat) {
- if (err) {
- state.download.err = err
- return
- }
- state.download.dat = dat
-
- dat.joinNetwork()
- dat.network.on('connection', function (connection) {
- update()
- connection.on('close', update)
- })
-
- dat.trackStats()
- dat.stats.on('update', update)
-
- dat.archive.readFile('dat.json', function (err, buf) {
- if (err) return
- try {
- dat.metadata = JSON.parse(buf)
- } catch (_) {
- return
- }
- update()
- })
-
- dat.archive.on('content', update)
- dat.archive.ready(update)
- update()
- })
- })
-
- bus.on('download:hide', function () {
- state.download.dat.close()
- state.download.dat = null
- state.download.show = false
- state.download.key = null
- bus.emit('render')
- })
-}
diff --git a/models/drag-drop.js b/models/drag-drop.js
deleted file mode 100644
index 0007deda..00000000
--- a/models/drag-drop.js
+++ /dev/null
@@ -1,24 +0,0 @@
-const explain = require('explain-error')
-const fs = require('fs')
-
-module.exports = dragDropModel
-
-function dragDropModel (state, bus) {
- window.ondragover = function (e) {
- e.preventDefault()
- }
- window.ondrop = function (e) {
- e.preventDefault()
- var dirname = e.dataTransfer &&
- e.dataTransfer.files &&
- e.dataTransfer.files[0] &&
- e.dataTransfer.files[0].path
- if (!dirname) return
- fs.stat(dirname, (err, stat) => {
- if (err) return bus.emit('error', explain(err, 'models/window: fs.stat error on dirname'))
- if (!stat.isDirectory()) return
- bus.emit('dats:create', dirname)
- })
- }
-}
-
diff --git a/models/error.js b/models/error.js
deleted file mode 100644
index 6efbf4ac..00000000
--- a/models/error.js
+++ /dev/null
@@ -1,43 +0,0 @@
-const ipc = require('electron').ipcRenderer
-const xhr = require('xhr')
-const version = require('../package.json').version
-const Modal = require('../elements/modal')
-
-module.exports = errorModel
-
-function errorModel (state, bus) {
- bus.on('error', function (err) {
- const message = err.message || err
- const modal = Modal.error()(message)
- document.body.appendChild(modal)
- })
-
- process.on('uncaughtException', function (err) {
- if (err._thrown) return
-
- const opts = {
- uri: 'https://crash-reporter.dat.land/report',
- method: 'PUT',
- json: {
- version: version,
- timestamp: new Date(),
- error: JSON.stringify({
- name: err.name,
- stack: err.stack,
- message: err.message
- })
- }
- }
- xhr(opts, function (err) {
- if (err) console.error(err)
- })
-
- const modal = Modal.crash()(function () {
- ipc.sendSync('quit')
- })
- document.body.appendChild(modal)
-
- err._thrown = true
- throw err
- })
-}
diff --git a/models/inspect.js b/models/inspect.js
deleted file mode 100644
index e814ab62..00000000
--- a/models/inspect.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var xtend = Object.assign
-
-module.exports = inspectModel
-
-function inspectModel (state, bus) {
- var update = bus.emit.bind(bus, 'render')
-
- state.inspect = xtend({}, state.inspect, {
- show: false
- })
-
- bus.on('dats:inspect', function (dat) {
- state.inspect.show = true
- state.inspect.dat = dat
- update()
- dat.stats.on('update', update)
- })
-
- bus.on('inspect:hide', function () {
- state.inspect.dat = null
- state.inspect.show = false
- bus.emit('render')
- })
-}
diff --git a/models/intro.js b/models/intro.js
deleted file mode 100644
index 9e9ae4f3..00000000
--- a/models/intro.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var shell = require('electron').shell
-var xtend = Object.assign
-
-module.exports = introModel
-
-function introModel (state, bus) {
- state.intro = xtend({
- show: false
- }, state.intro)
-
- // FIXME: wait for DOMContentLoaded
- // requires some sort of global load event first
- bus.once('dats:loaded', function () {
- if (state.dats.values.length) return
- state.intro.show = true
- bus.emit('render')
- })
-
- bus.on('intro:hide', function () {
- state.intro.show = false
- bus.emit('render')
- })
-
- bus.on('intro:open-homepage', function () {
- shell.openExternal('https://datproject.org/')
- })
-}
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index 2033d611..00000000
--- a/package-lock.json
+++ /dev/null
@@ -1,11035 +0,0 @@
-{
- "name": "dat-desktop",
- "version": "2.0.1",
- "lockfileVersion": 1,
- "requires": true,
- "dependencies": {
- "7zip-bin": {
- "version": "2.2.7",
- "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-2.2.7.tgz",
- "integrity": "sha512-+rr4OgeTNrLuJAf09o3USdttEYiXvZshWMkhD6wR9v1ieXH0JM1Q2yT41/cJuJcqiPpSXlM/g3aR+Y5MWQdr0Q==",
- "dev": true,
- "requires": {
- "7zip-bin-linux": "1.3.1",
- "7zip-bin-mac": "1.0.1",
- "7zip-bin-win": "2.1.1"
- }
- },
- "7zip-bin-linux": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/7zip-bin-linux/-/7zip-bin-linux-1.3.1.tgz",
- "integrity": "sha512-Wv1uEEeHbTiS1+ycpwUxYNuIcyohU6Y6vEqY3NquBkeqy0YhVdsNUGsj0XKSRciHR6LoJSEUuqYUexmws3zH7Q==",
- "dev": true,
- "optional": true
- },
- "7zip-bin-mac": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/7zip-bin-mac/-/7zip-bin-mac-1.0.1.tgz",
- "integrity": "sha1-Pmh3i78JJq3GgVlCcHRQXUdVXAI=",
- "dev": true,
- "optional": true
- },
- "7zip-bin-win": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/7zip-bin-win/-/7zip-bin-win-2.1.1.tgz",
- "integrity": "sha512-6VGEW7PXGroTsoI2QW3b0ea95HJmbVBHvfANKLLMzSzFA1zKqVX5ybNuhmeGpf6vA0x8FJTt6twpprDANsY5WQ==",
- "dev": true,
- "optional": true
- },
- "@types/node": {
- "version": "7.0.48",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.48.tgz",
- "integrity": "sha512-LLlXafM3BD52MH056tHxTXO8JFCnpJJQkdzIU3+m8ew+CXJY/5zIXgDNb4TK/QFvlI8QexLS5tL+sE0Qhegr1w==",
- "dev": true
- },
- "JSONStream": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz",
- "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=",
- "dev": true,
- "requires": {
- "jsonparse": "1.3.1",
- "through": "2.3.8"
- }
- },
- "abbrev": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
- "dev": true
- },
- "abstract-random-access": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/abstract-random-access/-/abstract-random-access-1.1.2.tgz",
- "integrity": "sha1-mo6sj/eYZvP5tLsUQ8p3jxWYrto=",
- "requires": {
- "inherits": "2.0.3"
- }
- },
- "acorn": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.2.1.tgz",
- "integrity": "sha512-jG0u7c4Ly+3QkkW18V+NRDN+4bWHdln30NL1ZL2AvFZZmQe/BfopYCtghCKKVBUSetZ4QKcyA0pY6/4Gw8Pv8w=="
- },
- "acorn-jsx": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
- "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
- "dev": true,
- "requires": {
- "acorn": "3.3.0"
- },
- "dependencies": {
- "acorn": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
- "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
- "dev": true
- }
- }
- },
- "ajv": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.0.tgz",
- "integrity": "sha1-6yhAdG6dxIvV4GOjbj/UAMXqtak=",
- "requires": {
- "co": "4.6.0",
- "fast-deep-equal": "1.0.0",
- "fast-json-stable-stringify": "2.0.0",
- "json-schema-traverse": "0.3.1"
- }
- },
- "ajv-keywords": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz",
- "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=",
- "dev": true
- },
- "amdefine": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
- "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
- },
- "ansi-align": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-1.1.0.tgz",
- "integrity": "sha1-LwwWWIKXOa3V67FeawxuNCPwFro=",
- "dev": true,
- "requires": {
- "string-width": "1.0.2"
- }
- },
- "ansi-escapes": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
- "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
- "dev": true
- },
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
- },
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
- },
- "anymatch": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
- "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
- "requires": {
- "micromatch": "2.3.11",
- "normalize-path": "2.1.1"
- }
- },
- "ap": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/ap/-/ap-0.1.0.tgz",
- "integrity": "sha1-2KPyZhU3k5ihtTymzBpmag+/4VA="
- },
- "append-tree": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/append-tree/-/append-tree-2.4.0.tgz",
- "integrity": "sha512-ZexdvqbhzGNEggr7MtPhOr0CxrsiW1bjDzG2t0vPMh2G5mqF6OpNcgr1pMbt27Mi0JV2UdbLMY6DLd34VfNUfQ==",
- "requires": {
- "array-lru": "1.1.1",
- "brfs": "1.4.3",
- "codecs": "1.2.0",
- "from2": "2.3.0",
- "inherits": "2.0.3",
- "mutexify": "1.2.0",
- "process-nextick-args": "1.0.7",
- "protocol-buffers": "3.2.1",
- "varint": "5.0.0"
- },
- "dependencies": {
- "varint": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.0.tgz",
- "integrity": "sha1-2Ca4n3SQcy+rwMDtaT7Uddyynr8="
- }
- }
- },
- "arch": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.0.tgz",
- "integrity": "sha1-NhOqRhSQZLPB8GB5Gb8dR4boKIk=",
- "dev": true
- },
- "archiver": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz",
- "integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=",
- "dev": true,
- "requires": {
- "archiver-utils": "1.3.0",
- "async": "2.6.0",
- "buffer-crc32": "0.2.13",
- "glob": "7.1.2",
- "lodash": "4.17.4",
- "readable-stream": "2.3.3",
- "tar-stream": "1.5.5",
- "walkdir": "0.0.11",
- "zip-stream": "1.2.0"
- }
- },
- "archiver-utils": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz",
- "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=",
- "dev": true,
- "requires": {
- "glob": "7.1.2",
- "graceful-fs": "4.1.11",
- "lazystream": "1.0.0",
- "lodash": "4.17.4",
- "normalize-path": "2.1.1",
- "readable-stream": "2.3.3"
- }
- },
- "argparse": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
- "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
- "requires": {
- "sprintf-js": "1.0.3"
- }
- },
- "arr-diff": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
- "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
- "requires": {
- "arr-flatten": "1.1.0"
- }
- },
- "arr-flatten": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
- },
- "array-filter": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
- "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=",
- "dev": true
- },
- "array-find-index": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
- "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
- "dev": true
- },
- "array-lru": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-lru/-/array-lru-1.1.1.tgz",
- "integrity": "sha1-DH4bTgIq4Wb/HoRIxZXzGB/NMzc="
- },
- "array-map": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
- "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=",
- "dev": true
- },
- "array-reduce": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz",
- "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=",
- "dev": true
- },
- "array-union": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
- "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
- "dev": true,
- "requires": {
- "array-uniq": "1.0.3"
- }
- },
- "array-uniq": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
- "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
- "dev": true
- },
- "array-unique": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
- "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
- },
- "arrify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
- "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
- "dev": true
- },
- "asap": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
- "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
- "dev": true
- },
- "asar-electron-builder": {
- "version": "0.13.5",
- "resolved": "https://registry.npmjs.org/asar-electron-builder/-/asar-electron-builder-0.13.5.tgz",
- "integrity": "sha1-TM1NEf18nTs8/8eC/ePe7Z75GvY=",
- "dev": true,
- "requires": {
- "chromium-pickle-js": "0.2.0",
- "commander": "2.12.2",
- "cuint": "0.2.2",
- "minimatch": "3.0.4",
- "mkdirp": "0.5.1"
- },
- "dependencies": {
- "commander": {
- "version": "2.12.2",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz",
- "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==",
- "dev": true
- }
- }
- },
- "asn1": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
- "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
- },
- "asn1.js": {
- "version": "4.9.2",
- "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz",
- "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==",
- "dev": true,
- "requires": {
- "bn.js": "4.11.8",
- "inherits": "2.0.3",
- "minimalistic-assert": "1.0.0"
- }
- },
- "assert": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
- "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
- "dev": true,
- "requires": {
- "util": "0.10.3"
- }
- },
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
- },
- "astw": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/astw/-/astw-2.2.0.tgz",
- "integrity": "sha1-e9QXhNMkk5h66yOba04cV6hzuRc=",
- "dev": true,
- "requires": {
- "acorn": "4.0.13"
- },
- "dependencies": {
- "acorn": {
- "version": "4.0.13",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
- "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
- "dev": true
- }
- }
- },
- "async": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
- "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
- "dev": true,
- "requires": {
- "lodash": "4.17.4"
- }
- },
- "async-each": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
- "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
- "dev": true
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
- },
- "atob": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz",
- "integrity": "sha1-lfE2KbEsOlGl0hWr3OKqnzL4B3M=",
- "dev": true
- },
- "atomic-batcher": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/atomic-batcher/-/atomic-batcher-1.0.2.tgz",
- "integrity": "sha1-0WkB0QzOxZUWwZe5zNiTBom4E7Q="
- },
- "aws-sign2": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
- },
- "aws4": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
- "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4="
- },
- "babel-runtime": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
- "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
- "dev": true,
- "requires": {
- "core-js": "2.5.3",
- "regenerator-runtime": "0.11.1"
- }
- },
- "balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
- },
- "balloon-css": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/balloon-css/-/balloon-css-0.4.0.tgz",
- "integrity": "sha1-DW7fi/WV8Wsh74impnbKpaQYuVU="
- },
- "base-elements": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/base-elements/-/base-elements-2.2.1.tgz",
- "integrity": "sha1-aYWoFQenrIQbpV0dhAo99bV4/ZI=",
- "requires": {
- "balloon-css": "0.4.0",
- "bel": "4.6.0",
- "nanocomponent": "2.0.3",
- "sheetify": "6.2.0",
- "xtend": "4.0.1"
- }
- },
- "base64-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz",
- "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==",
- "dev": true
- },
- "base64-to-uint8array": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/base64-to-uint8array/-/base64-to-uint8array-1.0.0.tgz",
- "integrity": "sha512-drjWQcees55+XQSVHYxiUF05Fj6ko3XJUoxykZEXbm0BMmNz2ieWiZGJ+6TFWnjN2saucG6pI13LS92O4kaiAg=="
- },
- "bcrypt-pbkdf": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
- "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
- "optional": true,
- "requires": {
- "tweetnacl": "0.14.5"
- }
- },
- "bel": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/bel/-/bel-4.6.0.tgz",
- "integrity": "sha1-Ot4W4jarIgTY0cZurEvVc3k6yZk=",
- "requires": {
- "global": "4.3.2",
- "hyperx": "2.3.2",
- "on-load": "3.3.1"
- }
- },
- "bencode": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/bencode/-/bencode-1.0.0.tgz",
- "integrity": "sha512-N+VOSP5MkoX+xgnp6Y056iCY5TmCZg9rgPNPQe0bIiXchxYFP4vs/Tf0dTdQ+qQhP7HM2gvfFq+sUVjQsGy5Zw==",
- "requires": {
- "safe-buffer": "5.1.1"
- }
- },
- "binary-extensions": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz",
- "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=",
- "dev": true
- },
- "bind-obj-methods": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/bind-obj-methods/-/bind-obj-methods-1.0.0.tgz",
- "integrity": "sha1-T1l5ysFXk633DkiBYeRj4gnKUJw=",
- "dev": true
- },
- "bitfield-rle": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/bitfield-rle/-/bitfield-rle-2.1.0.tgz",
- "integrity": "sha1-rinpOCp7pImN6fSLsj/TOMT73Pg=",
- "requires": {
- "varint": "4.0.1"
- },
- "dependencies": {
- "varint": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/varint/-/varint-4.0.1.tgz",
- "integrity": "sha1-SQgpuULSSEY7KzUJeZXDv3NxmOk="
- }
- }
- },
- "bittorrent-dht": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/bittorrent-dht/-/bittorrent-dht-7.7.0.tgz",
- "integrity": "sha512-SiyZeU36dk/JhekJBPPYk11r9mHxz/+li29vVhJIgKOJFEJz3gPV7hLT3KtFA++pE1kYcUZYTgpihAhzZIbYWg==",
- "requires": {
- "bencode": "1.0.0",
- "buffer-equals": "1.0.4",
- "debug": "3.1.0",
- "inherits": "2.0.3",
- "k-bucket": "3.3.0",
- "k-rpc": "4.2.0",
- "lru": "3.1.0",
- "randombytes": "2.0.5",
- "safe-buffer": "5.1.1",
- "simple-sha1": "2.1.0"
- },
- "dependencies": {
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
- }
- },
- "bl": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz",
- "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=",
- "dev": true,
- "requires": {
- "readable-stream": "2.3.3"
- }
- },
- "blake2b": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/blake2b/-/blake2b-2.1.2.tgz",
- "integrity": "sha1-aIDt3KNc/t6SxPsnJCITNPmJFFo=",
- "requires": {
- "blake2b-wasm": "1.1.4",
- "nanoassert": "1.1.0"
- }
- },
- "blake2b-wasm": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-1.1.4.tgz",
- "integrity": "sha512-j7ZsvtE8wEXFnyt6TJwNUvBKBOHeNJMQSwIAriQkMcQU5/Ce03Y1kS4W7Sjx6WnhOZi8kVwcrVu9DgUcLHz24A==",
- "requires": {
- "base64-to-uint8array": "1.0.0",
- "brfs": "1.4.3",
- "nanoassert": "1.1.0"
- }
- },
- "bluebird": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
- "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
- },
- "bluebird-lst-c": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/bluebird-lst-c/-/bluebird-lst-c-1.0.6.tgz",
- "integrity": "sha1-gfiB0T+d9wD2fVd/E0gLwy2Eu6k=",
- "requires": {
- "bluebird": "3.5.1"
- }
- },
- "bn.js": {
- "version": "4.11.8",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
- "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
- "dev": true
- },
- "body": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/body/-/body-0.1.0.tgz",
- "integrity": "sha1-5xT+KM2ISKo0zfLJ8kK74uFdHNg=",
- "requires": {
- "content-types": "0.1.0"
- }
- },
- "boom": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
- "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
- "requires": {
- "hoek": "4.2.0"
- }
- },
- "boxen": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/boxen/-/boxen-0.6.0.tgz",
- "integrity": "sha1-g2TUJIrDT/DvGy8r9JpsYM4NgbY=",
- "dev": true,
- "requires": {
- "ansi-align": "1.1.0",
- "camelcase": "2.1.1",
- "chalk": "1.1.3",
- "cli-boxes": "1.0.0",
- "filled-array": "1.1.0",
- "object-assign": "4.0.1",
- "repeating": "2.0.1",
- "string-width": "1.0.2",
- "widest-line": "1.0.0"
- }
- },
- "brace-expansion": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
- "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
- "requires": {
- "balanced-match": "1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "braces": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
- "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
- "requires": {
- "expand-range": "1.8.2",
- "preserve": "0.2.0",
- "repeat-element": "1.1.2"
- }
- },
- "brfs": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.4.3.tgz",
- "integrity": "sha1-22ddb16SPm3wh/ylhZyQkKrtMhY=",
- "requires": {
- "quote-stream": "1.0.2",
- "resolve": "1.5.0",
- "static-module": "1.5.0",
- "through2": "2.0.3"
- }
- },
- "brorand": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
- "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
- "dev": true
- },
- "browser-pack": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.2.tgz",
- "integrity": "sha1-+GzWzvT1MAyOY+B6TVEvZfv/RTE=",
- "dev": true,
- "requires": {
- "JSONStream": "1.3.1",
- "combine-source-map": "0.7.2",
- "defined": "1.0.0",
- "through2": "2.0.3",
- "umd": "3.0.1"
- }
- },
- "browser-resolve": {
- "version": "1.11.2",
- "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz",
- "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=",
- "dev": true,
- "requires": {
- "resolve": "1.1.7"
- },
- "dependencies": {
- "resolve": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
- "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
- "dev": true
- }
- }
- },
- "browserify": {
- "version": "13.3.0",
- "resolved": "https://registry.npmjs.org/browserify/-/browserify-13.3.0.tgz",
- "integrity": "sha1-tanJAgJD8McORnW+yCI7xifkFc4=",
- "dev": true,
- "requires": {
- "JSONStream": "1.3.1",
- "assert": "1.4.1",
- "browser-pack": "6.0.2",
- "browser-resolve": "1.11.2",
- "browserify-zlib": "0.1.4",
- "buffer": "4.9.1",
- "cached-path-relative": "1.0.1",
- "concat-stream": "1.5.2",
- "console-browserify": "1.1.0",
- "constants-browserify": "1.0.0",
- "crypto-browserify": "3.12.0",
- "defined": "1.0.0",
- "deps-sort": "2.0.0",
- "domain-browser": "1.1.7",
- "duplexer2": "0.1.4",
- "events": "1.1.1",
- "glob": "7.1.2",
- "has": "1.0.1",
- "htmlescape": "1.1.1",
- "https-browserify": "0.0.1",
- "inherits": "2.0.3",
- "insert-module-globals": "7.0.1",
- "labeled-stream-splicer": "2.0.0",
- "module-deps": "4.1.1",
- "os-browserify": "0.1.2",
- "parents": "1.0.1",
- "path-browserify": "0.0.0",
- "process": "0.11.10",
- "punycode": "1.4.1",
- "querystring-es3": "0.2.1",
- "read-only-stream": "2.0.0",
- "readable-stream": "2.3.3",
- "resolve": "1.5.0",
- "shasum": "1.0.2",
- "shell-quote": "1.6.1",
- "stream-browserify": "2.0.1",
- "stream-http": "2.7.2",
- "string_decoder": "0.10.31",
- "subarg": "1.0.0",
- "syntax-error": "1.3.0",
- "through2": "2.0.3",
- "timers-browserify": "1.4.2",
- "tty-browserify": "0.0.0",
- "url": "0.11.0",
- "util": "0.10.3",
- "vm-browserify": "0.0.4",
- "xtend": "4.0.1"
- },
- "dependencies": {
- "concat-stream": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
- "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=",
- "dev": true,
- "requires": {
- "inherits": "2.0.3",
- "readable-stream": "2.0.6",
- "typedarray": "0.0.6"
- },
- "dependencies": {
- "readable-stream": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
- "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
- "dev": true,
- "requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "string_decoder": "0.10.31",
- "util-deprecate": "1.0.2"
- }
- }
- }
- },
- "duplexer2": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
- "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
- "dev": true,
- "requires": {
- "readable-stream": "2.3.3"
- }
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
- },
- "process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
- "dev": true
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "dev": true
- }
- }
- },
- "browserify-aes": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz",
- "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==",
- "dev": true,
- "requires": {
- "buffer-xor": "1.0.3",
- "cipher-base": "1.0.4",
- "create-hash": "1.1.3",
- "evp_bytestokey": "1.0.3",
- "inherits": "2.0.3",
- "safe-buffer": "5.1.1"
- }
- },
- "browserify-cipher": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz",
- "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=",
- "dev": true,
- "requires": {
- "browserify-aes": "1.1.1",
- "browserify-des": "1.0.0",
- "evp_bytestokey": "1.0.3"
- }
- },
- "browserify-des": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz",
- "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=",
- "dev": true,
- "requires": {
- "cipher-base": "1.0.4",
- "des.js": "1.0.0",
- "inherits": "2.0.3"
- }
- },
- "browserify-rsa": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
- "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
- "dev": true,
- "requires": {
- "bn.js": "4.11.8",
- "randombytes": "2.0.5"
- }
- },
- "browserify-sign": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
- "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
- "dev": true,
- "requires": {
- "bn.js": "4.11.8",
- "browserify-rsa": "4.0.1",
- "create-hash": "1.1.3",
- "create-hmac": "1.1.6",
- "elliptic": "6.4.0",
- "inherits": "2.0.3",
- "parse-asn1": "5.1.0"
- }
- },
- "browserify-zlib": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
- "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
- "dev": true,
- "requires": {
- "pako": "0.2.9"
- }
- },
- "buffer": {
- "version": "4.9.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
- "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
- "dev": true,
- "requires": {
- "base64-js": "1.2.1",
- "ieee754": "1.1.8",
- "isarray": "1.0.0"
- },
- "dependencies": {
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
- }
- }
- },
- "buffer-alloc-unsafe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.0.0.tgz",
- "integrity": "sha1-R0qojzTnvHX6MR0uZFdAnFhGw/4="
- },
- "buffer-crc32": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
- "dev": true
- },
- "buffer-equal": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz",
- "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs="
- },
- "buffer-equals": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz",
- "integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U="
- },
- "buffer-indexof": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
- "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g=="
- },
- "buffer-xor": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
- "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
- "dev": true
- },
- "builtin-modules": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
- "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
- "dev": true
- },
- "builtin-status-codes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
- "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
- "dev": true
- },
- "builtins": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
- "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=",
- "dev": true
- },
- "bulk-write-stream": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/bulk-write-stream/-/bulk-write-stream-1.1.3.tgz",
- "integrity": "sha1-0pyjhfvVPzV67lvT0wKHMrYq4nU=",
- "requires": {
- "inherits": "2.0.3",
- "readable-stream": "2.3.3"
- }
- },
- "cached-path-relative": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz",
- "integrity": "sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc=",
- "dev": true
- },
- "call-me-maybe": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
- "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms="
- },
- "caller-path": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
- "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
- "dev": true,
- "requires": {
- "callsites": "0.2.0"
- }
- },
- "callsites": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
- "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
- "dev": true
- },
- "camelcase": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
- "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
- "dev": true
- },
- "camelcase-keys": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
- "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
- "dev": true,
- "requires": {
- "camelcase": "2.1.1",
- "map-obj": "1.0.1"
- }
- },
- "capture-stack-trace": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz",
- "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=",
- "dev": true
- },
- "caseless": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
- },
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
- "requires": {
- "ansi-styles": "2.2.1",
- "escape-string-regexp": "1.0.5",
- "has-ansi": "2.0.0",
- "strip-ansi": "3.0.1",
- "supports-color": "2.0.0"
- },
- "dependencies": {
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
- }
- }
- },
- "chardet": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
- "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
- "dev": true
- },
- "chokidar": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
- "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
- "dev": true,
- "requires": {
- "anymatch": "1.3.2",
- "async-each": "1.0.1",
- "fsevents": "1.1.3",
- "glob-parent": "2.0.0",
- "inherits": "2.0.3",
- "is-binary-path": "1.0.1",
- "is-glob": "2.0.1",
- "path-is-absolute": "1.0.1",
- "readdirp": "2.1.0"
- }
- },
- "choo": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/choo/-/choo-6.6.0.tgz",
- "integrity": "sha512-4WtzJhVVQFQm5SFc0Wfkbe0jOJK/hrUSG6Rxt68JE5Ctdg+fBucCM/PcM9Pg+1d8frOAn2qLX6z7SL6BeAiHJg==",
- "requires": {
- "bel": "5.1.5",
- "document-ready": "2.0.1",
- "nanobus": "4.3.1",
- "nanohref": "3.0.1",
- "nanolocation": "1.0.0",
- "nanomorph": "5.1.3",
- "nanoquery": "1.2.0",
- "nanoraf": "3.0.1",
- "nanorouter": "2.1.0",
- "nanotiming": "6.1.5",
- "scroll-to-anchor": "1.1.0",
- "xtend": "4.0.1"
- },
- "dependencies": {
- "bel": {
- "version": "5.1.5",
- "resolved": "https://registry.npmjs.org/bel/-/bel-5.1.5.tgz",
- "integrity": "sha512-t9R67SKL3lRygFqhrsHfw5w3lAi541pyQD+xdxpClTpxKN+ooW8WcqNXTysoIYQda0qu7aqJVZruwHm4WaQ8mw==",
- "requires": {
- "hyperx": "2.3.2",
- "is-electron": "2.1.0",
- "pelo": "0.0.4"
- }
- }
- }
- },
- "choo-expose": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/choo-expose/-/choo-expose-1.3.1.tgz",
- "integrity": "sha1-TUBQ/Y3tUllKh7ayFEONYrN+H2Q=",
- "requires": {
- "on-idle": "3.1.4",
- "plucker": "0.0.0",
- "remove-array-items": "1.0.0",
- "state-copy": "1.0.2"
- }
- },
- "choo-log": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/choo-log/-/choo-log-6.1.2.tgz",
- "integrity": "sha1-6rBVOUyzHKjCxr4NfJVfvRgx0GQ=",
- "requires": {
- "nanologger": "1.3.1"
- }
- },
- "choo-persist": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/choo-persist/-/choo-persist-3.0.2.tgz",
- "integrity": "sha1-53zj+9IscdFSlDRGA1Yx/ElddxE=",
- "requires": {
- "xtend": "4.0.1"
- }
- },
- "chromium-pickle-js": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz",
- "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=",
- "dev": true
- },
- "cipher-base": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
- "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
- "dev": true,
- "requires": {
- "inherits": "2.0.3",
- "safe-buffer": "5.1.1"
- }
- },
- "circular-json": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
- "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
- "dev": true
- },
- "clean-yaml-object": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz",
- "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=",
- "dev": true
- },
- "cli-boxes": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
- "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=",
- "dev": true
- },
- "cli-cursor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
- "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
- "dev": true,
- "requires": {
- "restore-cursor": "1.0.1"
- }
- },
- "cli-width": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
- "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
- "dev": true
- },
- "clipboardy": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-1.2.2.tgz",
- "integrity": "sha512-16KrBOV7bHmHdxcQiCvfUFYVFyEah4FI8vYT1Fr7CGSA4G+xBWMEfUEQJS1hxeHGtI9ju1Bzs9uXSbj5HZKArw==",
- "dev": true,
- "requires": {
- "arch": "2.1.0",
- "execa": "0.8.0"
- }
- },
- "cliui": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
- "dev": true,
- "requires": {
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "wrap-ansi": "2.1.0"
- }
- },
- "clone": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz",
- "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=",
- "dev": true
- },
- "co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
- },
- "code-point-at": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
- "dev": true
- },
- "codecs": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/codecs/-/codecs-1.2.0.tgz",
- "integrity": "sha1-UUhUnj0VbF+gU9fLtBlxWgz0PRY="
- },
- "color-convert": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz",
- "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=",
- "dev": true
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
- "dev": true
- },
- "color-support": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
- "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
- "dev": true
- },
- "combine-errors": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/combine-errors/-/combine-errors-3.0.1.tgz",
- "integrity": "sha1-eaBMItuKbFhGqVHcQeiDj5Lhwek=",
- "requires": {
- "custom-error-instance": "2.1.1"
- }
- },
- "combine-source-map": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz",
- "integrity": "sha1-CHAxKFazB6h8xKxIbzqaYq7MwJ4=",
- "dev": true,
- "requires": {
- "convert-source-map": "1.1.3",
- "inline-source-map": "0.6.2",
- "lodash.memoize": "3.0.4",
- "source-map": "0.5.7"
- }
- },
- "combined-stream": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
- "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
- "requires": {
- "delayed-stream": "1.0.0"
- }
- },
- "commander": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.5.0.tgz",
- "integrity": "sha1-13e2pNhH1CPl1HXahkKUrB/1qp0="
- },
- "compare-version": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz",
- "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=",
- "dev": true
- },
- "component-type": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.1.tgz",
- "integrity": "sha1-ikeQFwAjjk/DIml3EjAibyS0Fak="
- },
- "compress-commons": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz",
- "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=",
- "dev": true,
- "requires": {
- "buffer-crc32": "0.2.13",
- "crc32-stream": "2.0.0",
- "normalize-path": "2.1.1",
- "readable-stream": "2.3.3"
- }
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
- },
- "concat-stream": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
- "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
- "requires": {
- "inherits": "2.0.3",
- "readable-stream": "2.3.3",
- "typedarray": "0.0.6"
- }
- },
- "configstore": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/configstore/-/configstore-2.1.0.tgz",
- "integrity": "sha1-c3o6cDbpiGECqmCZ5HuzOrGroaE=",
- "dev": true,
- "requires": {
- "dot-prop": "3.0.0",
- "graceful-fs": "4.1.11",
- "mkdirp": "0.5.1",
- "object-assign": "4.0.1",
- "os-tmpdir": "1.0.2",
- "osenv": "0.1.4",
- "uuid": "2.0.3",
- "write-file-atomic": "1.3.4",
- "xdg-basedir": "2.0.0"
- },
- "dependencies": {
- "uuid": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
- "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=",
- "dev": true
- }
- }
- },
- "connections": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/connections/-/connections-1.4.2.tgz",
- "integrity": "sha1-eJBIK/XHGvbFyhkr4xNq7XRCiq0="
- },
- "console-browserify": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
- "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
- "dev": true,
- "requires": {
- "date-now": "0.1.4"
- }
- },
- "constants-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
- "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
- "dev": true
- },
- "content-types": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/content-types/-/content-types-0.1.0.tgz",
- "integrity": "sha1-DnkLOr/vkPbst3roWF25CZyvdXg=",
- "requires": {
- "iterators": "0.1.0"
- }
- },
- "convert-source-map": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz",
- "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=",
- "dev": true
- },
- "copy-text-to-clipboard": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-1.0.3.tgz",
- "integrity": "sha1-aWYs0wVJPJJcAqOEy8rnbWQtd/M="
- },
- "core-js": {
- "version": "2.5.3",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz",
- "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=",
- "dev": true
- },
- "core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
- },
- "corsify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/corsify/-/corsify-2.1.0.tgz",
- "integrity": "sha1-EaRbxHqzDFTQC7hp6hgC+82aCdA=",
- "requires": {
- "http-methods": "0.1.0"
- }
- },
- "coveralls": {
- "version": "2.13.3",
- "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.13.3.tgz",
- "integrity": "sha512-iiAmn+l1XqRwNLXhW8Rs5qHZRFMYp9ZIPjEOVRpC/c4so6Y/f4/lFi0FfR5B9cCqgyhkJ5cZmbvcVRfP8MHchw==",
- "dev": true,
- "requires": {
- "js-yaml": "3.6.1",
- "lcov-parse": "0.0.10",
- "log-driver": "1.2.5",
- "minimist": "1.2.0",
- "request": "2.79.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
- "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
- "dev": true
- },
- "aws-sign2": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
- "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
- "dev": true
- },
- "boom": {
- "version": "2.10.1",
- "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
- "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
- "dev": true,
- "requires": {
- "hoek": "2.16.3"
- }
- },
- "caseless": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
- "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
- "dev": true
- },
- "commander": {
- "version": "2.13.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz",
- "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==",
- "dev": true
- },
- "cryptiles": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
- "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
- "dev": true,
- "requires": {
- "boom": "2.10.1"
- }
- },
- "esprima": {
- "version": "2.7.3",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
- "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
- "dev": true
- },
- "form-data": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
- "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
- "dev": true,
- "requires": {
- "asynckit": "0.4.0",
- "combined-stream": "1.0.5",
- "mime-types": "2.1.17"
- }
- },
- "har-validator": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
- "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
- "dev": true,
- "requires": {
- "chalk": "1.1.3",
- "commander": "2.13.0",
- "is-my-json-valid": "2.16.1",
- "pinkie-promise": "2.0.1"
- }
- },
- "hawk": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
- "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
- "dev": true,
- "requires": {
- "boom": "2.10.1",
- "cryptiles": "2.0.5",
- "hoek": "2.16.3",
- "sntp": "1.0.9"
- }
- },
- "hoek": {
- "version": "2.16.3",
- "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
- "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
- "dev": true
- },
- "http-signature": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
- "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
- "dev": true,
- "requires": {
- "assert-plus": "0.2.0",
- "jsprim": "1.4.1",
- "sshpk": "1.13.1"
- }
- },
- "js-yaml": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz",
- "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=",
- "dev": true,
- "requires": {
- "argparse": "1.0.9",
- "esprima": "2.7.3"
- }
- },
- "qs": {
- "version": "6.3.2",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz",
- "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=",
- "dev": true
- },
- "request": {
- "version": "2.79.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
- "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=",
- "dev": true,
- "requires": {
- "aws-sign2": "0.6.0",
- "aws4": "1.6.0",
- "caseless": "0.11.0",
- "combined-stream": "1.0.5",
- "extend": "3.0.1",
- "forever-agent": "0.6.1",
- "form-data": "2.1.4",
- "har-validator": "2.0.6",
- "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.17",
- "oauth-sign": "0.8.2",
- "qs": "6.3.2",
- "stringstream": "0.0.5",
- "tough-cookie": "2.3.3",
- "tunnel-agent": "0.4.3",
- "uuid": "3.1.0"
- }
- },
- "sntp": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
- "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
- "dev": true,
- "requires": {
- "hoek": "2.16.3"
- }
- },
- "tunnel-agent": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
- "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
- "dev": true
- }
- }
- },
- "crc": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/crc/-/crc-3.5.0.tgz",
- "integrity": "sha1-mLi6fUiWZbo5efWbITgTdBAaGWQ=",
- "dev": true
- },
- "crc32-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz",
- "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=",
- "dev": true,
- "requires": {
- "crc": "3.5.0",
- "readable-stream": "2.3.3"
- }
- },
- "create-ecdh": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
- "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=",
- "dev": true,
- "requires": {
- "bn.js": "4.11.8",
- "elliptic": "6.4.0"
- }
- },
- "create-error-class": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
- "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
- "dev": true,
- "requires": {
- "capture-stack-trace": "1.0.0"
- }
- },
- "create-hash": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
- "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=",
- "dev": true,
- "requires": {
- "cipher-base": "1.0.4",
- "inherits": "2.0.3",
- "ripemd160": "2.0.1",
- "sha.js": "2.4.9"
- }
- },
- "create-hmac": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz",
- "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=",
- "dev": true,
- "requires": {
- "cipher-base": "1.0.4",
- "create-hash": "1.1.3",
- "inherits": "2.0.3",
- "ripemd160": "2.0.1",
- "safe-buffer": "5.1.1",
- "sha.js": "2.4.9"
- }
- },
- "cross-env": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.1.1.tgz",
- "integrity": "sha512-Wtvr+z0Z06KO1JxjfRRsPC+df7biIOiuV4iZ73cThjFGkH+ULBZq1MkBdywEcJC4cTDbO6c8IjgRjfswx3YTBA==",
- "dev": true,
- "requires": {
- "cross-spawn": "5.1.0",
- "is-windows": "1.0.1"
- }
- },
- "cross-spawn": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
- "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
- "dev": true,
- "requires": {
- "lru-cache": "4.1.1",
- "shebang-command": "1.2.0",
- "which": "1.3.0"
- }
- },
- "cryptiles": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz",
- "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=",
- "requires": {
- "boom": "5.2.0"
- },
- "dependencies": {
- "boom": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz",
- "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==",
- "requires": {
- "hoek": "4.2.0"
- }
- }
- }
- },
- "crypto-browserify": {
- "version": "3.12.0",
- "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
- "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
- "dev": true,
- "requires": {
- "browserify-cipher": "1.0.0",
- "browserify-sign": "4.0.4",
- "create-ecdh": "4.0.0",
- "create-hash": "1.1.3",
- "create-hmac": "1.1.6",
- "diffie-hellman": "5.0.2",
- "inherits": "2.0.3",
- "pbkdf2": "3.0.14",
- "public-encrypt": "4.0.0",
- "randombytes": "2.0.5",
- "randomfill": "1.0.3"
- }
- },
- "crypto-random-string": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
- "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=",
- "dev": true
- },
- "css": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/css/-/css-2.2.1.tgz",
- "integrity": "sha1-c6TIHehdtmTU7mdPfUcIXjstVdw=",
- "dev": true,
- "requires": {
- "inherits": "2.0.3",
- "source-map": "0.1.43",
- "source-map-resolve": "0.3.1",
- "urix": "0.1.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.1.43",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
- "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
- "dev": true,
- "requires": {
- "amdefine": "1.0.1"
- }
- }
- }
- },
- "css-parse": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz",
- "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=",
- "dev": true,
- "requires": {
- "css": "2.2.1"
- }
- },
- "css-value": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/css-value/-/css-value-0.0.1.tgz",
- "integrity": "sha1-Xv1sLupeof1rasV+wEJ7GEUkJOo=",
- "dev": true
- },
- "cuint": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz",
- "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=",
- "dev": true
- },
- "currently-unhandled": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
- "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
- "dev": true,
- "requires": {
- "array-find-index": "1.0.2"
- }
- },
- "custom-error-instance": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/custom-error-instance/-/custom-error-instance-2.1.1.tgz",
- "integrity": "sha1-PPY5FIemYppiR+sMoM4ACBt+Nho="
- },
- "d": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
- "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
- "dev": true,
- "requires": {
- "es5-ext": "0.10.37"
- }
- },
- "dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
- "requires": {
- "assert-plus": "1.0.0"
- }
- },
- "dat-colors": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/dat-colors/-/dat-colors-3.5.1.tgz",
- "integrity": "sha1-VRS8FOA6zNCzkNUe9MLpc+2RD6I="
- },
- "dat-dns": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/dat-dns/-/dat-dns-1.3.2.tgz",
- "integrity": "sha512-Tbk9UacyHcnxWXOeU3UHYkMfnH5VyxcuKXLFjZcUddRqOO4aTA5MV4l3mLmYNnb8TXvsG7ED+7rhfVtFiTXlPQ==",
- "requires": {
- "call-me-maybe": "1.0.1",
- "concat-stream": "1.6.0",
- "debug": "2.6.9"
- }
- },
- "dat-doctor": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/dat-doctor/-/dat-doctor-1.3.1.tgz",
- "integrity": "sha512-cykONhsZMVOB1/B/WcGCAiibNa1NyzgZYhgKMIKzSUpdCmXrM0JWlro+pXQMunS3zQbKVEu+dquRtK+YsXXHUg==",
- "requires": {
- "datland-swarm-defaults": "1.0.2",
- "debug": "2.6.9",
- "discovery-swarm": "4.4.2",
- "dns-discovery": "5.6.1",
- "minimist": "1.2.0",
- "pump": "1.0.3",
- "thunky": "1.0.2"
- }
- },
- "dat-encoding": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/dat-encoding/-/dat-encoding-4.0.2.tgz",
- "integrity": "sha1-sBBo/g0IDz0+SYWgxK0ht8FGdfY=",
- "requires": {
- "safe-buffer": "5.1.1"
- }
- },
- "dat-icons": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/dat-icons/-/dat-icons-2.5.1.tgz",
- "integrity": "sha1-/pDYWYF5lV2Vbmya9J2REqdY5ko=",
- "requires": {
- "bel": "4.6.0",
- "brfs": "1.4.3"
- }
- },
- "dat-ignore": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/dat-ignore/-/dat-ignore-2.0.0.tgz",
- "integrity": "sha512-aPYJYMymfBrkF62wFBVej8p4mbPOB0Z+A5jwHarTMNeq7wYHtSKHoXrmOeUzWdSTtK09+JMuu4+FHfSzY1d0dA==",
- "requires": {
- "anymatch": "1.3.2",
- "xtend": "4.0.1"
- }
- },
- "dat-link-resolve": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/dat-link-resolve/-/dat-link-resolve-1.1.1.tgz",
- "integrity": "sha512-xwzZ9/8j+Pn8td4NKYRTafchQxJWKvr/0BLnEmCI8DwyqhCsFtwzhHBLHKXWK761+nm2hElu+xYfkA8ym9c81A==",
- "requires": {
- "dat-dns": "1.3.2",
- "dat-encoding": "4.0.2",
- "debug": "2.6.9",
- "nets": "3.2.0"
- }
- },
- "dat-node": {
- "version": "3.5.5",
- "resolved": "https://registry.npmjs.org/dat-node/-/dat-node-3.5.5.tgz",
- "integrity": "sha512-CBWdoUodDmlbwIJHtN/4aAqZWIPSEnRk3SEBPK5p8et4VJUwnsHgqEX0QiU3gVy62uB57l3SocIlk558CHHKUA==",
- "requires": {
- "dat-ignore": "2.0.0",
- "dat-link-resolve": "1.1.1",
- "dat-storage": "1.0.3",
- "dat-swarm-defaults": "1.0.0",
- "debug": "3.1.0",
- "discovery-swarm": "4.4.2",
- "hyperdrive": "9.12.0",
- "hyperdrive-http": "4.2.2",
- "hyperdrive-network-speed": "2.0.1",
- "mirror-folder": "2.1.1",
- "multicb": "1.2.2",
- "random-access-file": "1.8.1",
- "random-access-memory": "2.4.0",
- "sparse-bitfield": "3.0.3",
- "speedometer": "1.0.0",
- "stream-each": "1.2.2",
- "untildify": "3.0.2",
- "xtend": "4.0.1"
- },
- "dependencies": {
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
- }
- },
- "dat-secret-storage": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/dat-secret-storage/-/dat-secret-storage-4.0.0.tgz",
- "integrity": "sha1-AbIZpbwWGe/A9YEio8bOux64tAo=",
- "requires": {
- "os-homedir": "1.0.2",
- "random-access-file": "1.8.1"
- }
- },
- "dat-storage": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/dat-storage/-/dat-storage-1.0.3.tgz",
- "integrity": "sha512-6qTeWDLCbn4DG5NmTSnCAikivjXXn5ukMLafEbqBn/15zcqdpNgsOx/QnCqXdDoAeP1WWXjJp3GBDtls/et3bA==",
- "requires": {
- "append-tree": "2.4.0",
- "dat-secret-storage": "4.0.0",
- "hyperdrive": "9.12.0",
- "multi-random-access": "2.1.1",
- "random-access-file": "1.8.1"
- }
- },
- "dat-swarm-defaults": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/dat-swarm-defaults/-/dat-swarm-defaults-1.0.0.tgz",
- "integrity": "sha1-un1YwwnPYMOSSvrYabdRkrYf41Q=",
- "requires": {
- "xtend": "4.0.1"
- }
- },
- "date-now": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
- "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
- "dev": true
- },
- "datland-swarm-defaults": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/datland-swarm-defaults/-/datland-swarm-defaults-1.0.2.tgz",
- "integrity": "sha1-J3uJWjnxqn+WpJWgL7NmKl7Z8uA=",
- "requires": {
- "xtend": "4.0.1"
- }
- },
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- },
- "dependencies": {
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
- }
- },
- "debug-log": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/debug-log/-/debug-log-1.0.1.tgz",
- "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=",
- "dev": true
- },
- "debuglog": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz",
- "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=",
- "dev": true
- },
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
- "dev": true
- },
- "deep-extend": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
- "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=",
- "dev": true
- },
- "deep-is": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
- "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
- },
- "deepmerge": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.0.1.tgz",
- "integrity": "sha512-VIPwiMJqJ13ZQfaCsIFnp5Me9tnjURiaIFxfz7EH0Ci0dTSQpZtSLrqOicXqEd/z2r+z+Klk9GzmnRsgpgbOsQ==",
- "dev": true
- },
- "defaults": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
- "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
- "dev": true,
- "requires": {
- "clone": "1.0.3"
- }
- },
- "defined": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
- "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
- "dev": true
- },
- "deglob": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/deglob/-/deglob-1.1.2.tgz",
- "integrity": "sha1-dtV3wl/j9zKUEqK1nq3qV6xQDj8=",
- "dev": true,
- "requires": {
- "find-root": "1.1.0",
- "glob": "7.1.2",
- "ignore": "3.3.7",
- "pkg-config": "1.1.1",
- "run-parallel": "1.1.6",
- "uniq": "1.0.1",
- "xtend": "4.0.1"
- }
- },
- "del": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
- "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
- "dev": true,
- "requires": {
- "globby": "5.0.0",
- "is-path-cwd": "1.0.0",
- "is-path-in-cwd": "1.0.0",
- "object-assign": "4.0.1",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1",
- "rimraf": "2.6.2"
- }
- },
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
- },
- "delegate-electron-events": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/delegate-electron-events/-/delegate-electron-events-1.0.1.tgz",
- "integrity": "sha1-2ZHCSy4tSxow4+Z6hC4dIA4nAmU="
- },
- "dependency-check": {
- "version": "2.9.1",
- "resolved": "https://registry.npmjs.org/dependency-check/-/dependency-check-2.9.1.tgz",
- "integrity": "sha1-Iovbp2jjv4GaKmjDbz9qdzxCbr8=",
- "dev": true,
- "requires": {
- "async": "2.6.0",
- "builtins": "1.0.3",
- "debug": "2.6.9",
- "detective": "4.6.0",
- "is-relative": "0.2.1",
- "minimist": "1.2.0",
- "read-package-json": "2.0.12",
- "resolve": "1.5.0"
- }
- },
- "deps-sort": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz",
- "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=",
- "dev": true,
- "requires": {
- "JSONStream": "1.3.1",
- "shasum": "1.0.2",
- "subarg": "1.0.0",
- "through2": "2.0.3"
- }
- },
- "des.js": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
- "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
- "dev": true,
- "requires": {
- "inherits": "2.0.3",
- "minimalistic-assert": "1.0.0"
- }
- },
- "detective": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/detective/-/detective-4.6.0.tgz",
- "integrity": "sha512-bvuiWqtm2RYtEnfjAuRw9XTJhUbfbOfsmtIRXQcNgMyUplxJP611EzoVxObkSvaSnfBUEjoKVzaUzdtIRMcCXg==",
- "dev": true,
- "requires": {
- "acorn": "5.2.1",
- "defined": "1.0.0"
- }
- },
- "dev-null": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/dev-null/-/dev-null-0.1.1.tgz",
- "integrity": "sha1-WiBc48Ky73e2I41roXnrdMag6Bg=",
- "dev": true
- },
- "dezalgo": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz",
- "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=",
- "dev": true,
- "requires": {
- "asap": "2.0.6",
- "wrappy": "1.0.2"
- }
- },
- "diff": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz",
- "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=",
- "dev": true
- },
- "diffie-hellman": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz",
- "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=",
- "dev": true,
- "requires": {
- "bn.js": "4.11.8",
- "miller-rabin": "4.0.1",
- "randombytes": "2.0.5"
- }
- },
- "directory-index-html": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/directory-index-html/-/directory-index-html-2.1.0.tgz",
- "integrity": "sha1-TVr8UYftumfsarDlX2QioOLLczg="
- },
- "discovery-channel": {
- "version": "5.4.6",
- "resolved": "https://registry.npmjs.org/discovery-channel/-/discovery-channel-5.4.6.tgz",
- "integrity": "sha1-Gw8l5YEkUH6GG23D7LdENmu1PK0=",
- "requires": {
- "bittorrent-dht": "7.7.0",
- "debug": "2.6.9",
- "dns-discovery": "5.6.1",
- "pretty-hash": "1.0.1",
- "thunky": "0.1.0"
- },
- "dependencies": {
- "thunky": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz",
- "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4="
- }
- }
- },
- "discovery-swarm": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/discovery-swarm/-/discovery-swarm-4.4.2.tgz",
- "integrity": "sha1-XTFgpGAZ5Q6HQZV2XffWAe5VqBM=",
- "requires": {
- "buffer-equals": "1.0.4",
- "connections": "1.4.2",
- "debug": "2.6.9",
- "discovery-channel": "5.4.6",
- "length-prefixed-message": "3.0.3",
- "pump": "1.0.3",
- "to-buffer": "1.1.0",
- "utp-native": "1.6.2"
- }
- },
- "dns-discovery": {
- "version": "5.6.1",
- "resolved": "https://registry.npmjs.org/dns-discovery/-/dns-discovery-5.6.1.tgz",
- "integrity": "sha512-r27fv3lDuZXCqmb5b04tV2aDxVbwVJaSyPzwPlOYCUbk9F7JvsY+n7EBfY2Z952bGx5TZt3SLQ+ELFjfqyLVoA==",
- "requires": {
- "debug": "2.6.9",
- "dns-socket": "1.6.2",
- "dns-txt": "2.0.2",
- "lru": "2.0.1",
- "minimist": "1.2.0",
- "multicast-dns": "6.2.1",
- "network-address": "1.1.2",
- "unordered-set": "1.1.0"
- },
- "dependencies": {
- "lru": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/lru/-/lru-2.0.1.tgz",
- "integrity": "sha1-+XmHHhYuP1yiVL5GhExT1MU2RUQ=",
- "requires": {
- "inherits": "2.0.3"
- }
- }
- }
- },
- "dns-packet": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.2.2.tgz",
- "integrity": "sha512-kN+DjfGF7dJGUL7nWRktL9Z18t1rWP3aQlyZdY8XlpvU3Nc6GeFTQApftcjtWKxAZfiggZSGrCEoszNgvnpwDg==",
- "requires": {
- "ip": "1.1.5",
- "safe-buffer": "5.1.1"
- }
- },
- "dns-socket": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/dns-socket/-/dns-socket-1.6.2.tgz",
- "integrity": "sha512-Ztbaf5fToBfm/4+sVEJi7mT2mJOLYYpI+TpgOhxwp5l28UwunTpHMccVhTe9L0F6pQ2cUF0ja9ukuTCtzYq2Ig==",
- "requires": {
- "dns-packet": "1.2.2"
- }
- },
- "dns-txt": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz",
- "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
- "requires": {
- "buffer-indexof": "1.1.1"
- }
- },
- "doctrine": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
- "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
- "dev": true,
- "requires": {
- "esutils": "2.0.2",
- "isarray": "1.0.0"
- },
- "dependencies": {
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
- }
- }
- },
- "document-ready": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/document-ready/-/document-ready-2.0.1.tgz",
- "integrity": "sha1-PjvzHTI1uU4jLnssX6GmNOhzuuQ="
- },
- "dom-walk": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz",
- "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg="
- },
- "domain-browser": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
- "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=",
- "dev": true
- },
- "dot-prop": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz",
- "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=",
- "dev": true,
- "requires": {
- "is-obj": "1.0.1"
- }
- },
- "duplexer": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
- "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
- "dev": true
- },
- "duplexer2": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
- "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
- "requires": {
- "readable-stream": "1.1.14"
- },
- "dependencies": {
- "readable-stream": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
- "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
- "requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "0.0.1",
- "string_decoder": "0.10.31"
- }
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
- }
- }
- },
- "duplexer3": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
- "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
- "dev": true
- },
- "duplexify": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.1.tgz",
- "integrity": "sha512-j5goxHTwVED1Fpe5hh3q9R93Kip0Bg2KVAt4f8CEYM3UEwYcPSvWbXaUQOzdX/HtiNomipv+gU7ASQPDbV7pGQ==",
- "requires": {
- "end-of-stream": "1.4.0",
- "inherits": "2.0.3",
- "readable-stream": "2.3.3",
- "stream-shift": "1.0.0"
- }
- },
- "ecc-jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
- "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
- "optional": true,
- "requires": {
- "jsbn": "0.1.1"
- }
- },
- "ejs": {
- "version": "2.5.7",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.7.tgz",
- "integrity": "sha1-zIcsFoiArjxxiXYv1f/ACJbJUYo=",
- "dev": true
- },
- "electron": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/electron/-/electron-1.7.11.tgz",
- "integrity": "sha1-mTtqp54OeafPzDafTIE/vZoLCNk=",
- "dev": true,
- "requires": {
- "@types/node": "7.0.48",
- "electron-download": "3.3.0",
- "extract-zip": "1.6.6"
- }
- },
- "electron-auto-updater": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/electron-auto-updater/-/electron-auto-updater-0.9.2.tgz",
- "integrity": "sha1-KZofKZevUOze43osjdFIUm2JFyg=",
- "requires": {
- "bluebird-lst-c": "1.0.6",
- "debug": "2.6.9",
- "electron-builder-http": "10.17.3",
- "fs-extra-p": "3.1.0",
- "js-yaml": "3.10.0",
- "semver": "5.4.1",
- "source-map-support": "0.4.18"
- }
- },
- "electron-builder": {
- "version": "8.7.0",
- "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-8.7.0.tgz",
- "integrity": "sha1-TUcGLKRcOqpRyOTMUReBNZtzdVg=",
- "dev": true,
- "requires": {
- "7zip-bin": "2.2.7",
- "ansi-escapes": "1.4.0",
- "archiver": "1.3.0",
- "archiver-utils": "1.3.0",
- "asar-electron-builder": "0.13.5",
- "bluebird-lst-c": "1.0.6",
- "chalk": "1.1.3",
- "chromium-pickle-js": "0.2.0",
- "cli-cursor": "1.0.2",
- "cuint": "0.2.2",
- "debug": "2.6.9",
- "electron-download-tf": "3.1.0",
- "electron-macos-sign": "1.0.1",
- "fs-extra-p": "2.0.7",
- "hosted-git-info": "2.5.0",
- "ini": "1.3.5",
- "isbinaryfile": "3.0.2",
- "js-yaml": "3.10.0",
- "lodash.template": "4.4.0",
- "mime": "1.6.0",
- "minimatch": "3.0.4",
- "node-emoji": "1.8.1",
- "normalize-package-data": "2.4.0",
- "parse-color": "1.0.0",
- "plist": "2.1.0",
- "pretty-ms": "2.1.0",
- "progress": "1.1.8",
- "progress-stream": "1.2.0",
- "read-installed": "4.0.3",
- "sanitize-filename": "1.6.1",
- "semver": "5.4.1",
- "source-map-support": "0.4.18",
- "tunnel-agent": "0.4.3",
- "update-notifier": "1.0.3",
- "uuid-1345": "0.99.6",
- "yargs": "6.6.0"
- },
- "dependencies": {
- "electron-download-tf": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/electron-download-tf/-/electron-download-tf-3.1.0.tgz",
- "integrity": "sha1-xtYsDgpMY7ZylfV7a2ZRTBO47Y0=",
- "dev": true,
- "requires": {
- "debug": "2.6.9",
- "fs-extra": "1.0.0",
- "minimist": "1.2.0",
- "nugget": "2.0.1",
- "path-exists": "3.0.0",
- "rc": "1.2.2",
- "semver": "5.4.1",
- "sumchecker": "1.3.1"
- }
- },
- "fs-extra": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
- "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "jsonfile": "2.4.0",
- "klaw": "1.3.1"
- }
- },
- "fs-extra-p": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-2.0.7.tgz",
- "integrity": "sha1-UlqG7hJQUQIQ3v4eo59HPCPs+pY=",
- "dev": true,
- "requires": {
- "bluebird-lst-c": "1.0.6",
- "fs-extra-tf": "1.0.0"
- }
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "dev": true
- },
- "tunnel-agent": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
- "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
- "dev": true
- }
- }
- },
- "electron-builder-http": {
- "version": "10.17.3",
- "resolved": "https://registry.npmjs.org/electron-builder-http/-/electron-builder-http-10.17.3.tgz",
- "integrity": "sha1-Aa44r6sNY6kY23Ewv4Y1Eem6YJ4=",
- "requires": {
- "fs-extra-p": "3.1.0"
- }
- },
- "electron-chromedriver": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/electron-chromedriver/-/electron-chromedriver-1.8.0.tgz",
- "integrity": "sha512-m1f3nle5MaGp94bcDTtMZZMMOgPO54+TXoPBlTbBSUjfINR5SJ46yQXLfuE79/qsFfJKslZB1UzWURDDFIRmpQ==",
- "dev": true,
- "requires": {
- "electron-download": "4.1.0",
- "extract-zip": "1.6.6"
- },
- "dependencies": {
- "electron-download": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-4.1.0.tgz",
- "integrity": "sha1-v5MsdG8vh//MCdHdRy8v9rkYeEU=",
- "dev": true,
- "requires": {
- "debug": "2.6.9",
- "env-paths": "1.0.0",
- "fs-extra": "2.1.2",
- "minimist": "1.2.0",
- "nugget": "2.0.1",
- "path-exists": "3.0.0",
- "rc": "1.2.2",
- "semver": "5.4.1",
- "sumchecker": "2.0.2"
- }
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "dev": true
- },
- "sumchecker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-2.0.2.tgz",
- "integrity": "sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4=",
- "dev": true,
- "requires": {
- "debug": "2.6.9"
- }
- }
- }
- },
- "electron-default-menu": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/electron-default-menu/-/electron-default-menu-1.0.1.tgz",
- "integrity": "sha1-MXPFAY61B0BP7GO987eMOO7bqAg="
- },
- "electron-download": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-3.3.0.tgz",
- "integrity": "sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg=",
- "dev": true,
- "requires": {
- "debug": "2.6.9",
- "fs-extra": "0.30.0",
- "home-path": "1.0.5",
- "minimist": "1.2.0",
- "nugget": "2.0.1",
- "path-exists": "2.1.0",
- "rc": "1.2.2",
- "semver": "5.4.1",
- "sumchecker": "1.3.1"
- },
- "dependencies": {
- "fs-extra": {
- "version": "0.30.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
- "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "jsonfile": "2.4.0",
- "klaw": "1.3.1",
- "path-is-absolute": "1.0.1",
- "rimraf": "2.6.2"
- }
- }
- }
- },
- "electron-macos-sign": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/electron-macos-sign/-/electron-macos-sign-1.0.1.tgz",
- "integrity": "sha1-aJ3F3V3/cTWFqowLxjGGPyh7hvQ=",
- "dev": true,
- "requires": {
- "bluebird": "3.5.1",
- "compare-version": "0.1.2",
- "debug": "2.6.9",
- "isbinaryfile": "3.0.2",
- "minimist": "1.2.0",
- "plist": "2.1.0",
- "tempfile": "1.1.1"
- }
- },
- "electron-window": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/electron-window/-/electron-window-0.8.1.tgz",
- "integrity": "sha1-FsoYfrSHCwZ5J0/IKZxZYOarLF4=",
- "requires": {
- "is-electron-renderer": "2.0.1"
- }
- },
- "elliptic": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",
- "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",
- "dev": true,
- "requires": {
- "bn.js": "4.11.8",
- "brorand": "1.1.0",
- "hash.js": "1.1.3",
- "hmac-drbg": "1.0.1",
- "inherits": "2.0.3",
- "minimalistic-assert": "1.0.0",
- "minimalistic-crypto-utils": "1.0.1"
- }
- },
- "end-of-stream": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz",
- "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=",
- "requires": {
- "once": "1.4.0"
- },
- "dependencies": {
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "requires": {
- "wrappy": "1.0.2"
- }
- }
- }
- },
- "env-paths": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz",
- "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=",
- "dev": true
- },
- "envify": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/envify/-/envify-4.1.0.tgz",
- "integrity": "sha512-IKRVVoAYr4pIx4yIWNsz9mOsboxlNXiu7TNBnem/K/uTHdkyzXWDzHCK7UTolqBbgaBz0tQHsD3YNls0uIIjiw==",
- "dev": true,
- "requires": {
- "esprima": "4.0.0",
- "through": "2.3.8"
- },
- "dependencies": {
- "esprima": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
- "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
- "dev": true
- }
- }
- },
- "envobj": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/envobj/-/envobj-1.0.4.tgz",
- "integrity": "sha512-Be10O8laMT2Rj3YnHVtX8ztIFdxYoI7msaV/rkPl96XRsJqd+OTTEh39GpH3bmDSXs5kWmH4fdK+xjjKiZSQJQ==",
- "requires": {
- "combine-errors": "3.0.1",
- "component-type": "1.2.1",
- "envvar": "1.1.0",
- "localenv": "0.2.2",
- "object-assign": "4.0.1"
- }
- },
- "envvar": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/envvar/-/envvar-1.1.0.tgz",
- "integrity": "sha1-wloIZu2uhwRtl2yNsDdIlVFjm5Q="
- },
- "error-ex": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
- "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
- "dev": true,
- "requires": {
- "is-arrayish": "0.2.1"
- }
- },
- "es5-ext": {
- "version": "0.10.37",
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.37.tgz",
- "integrity": "sha1-DudB0Ui4AGm6J9AgOTdWryV978M=",
- "dev": true,
- "requires": {
- "es6-iterator": "2.0.3",
- "es6-symbol": "3.1.1"
- }
- },
- "es6-iterator": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
- "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
- "dev": true,
- "requires": {
- "d": "1.0.0",
- "es5-ext": "0.10.37",
- "es6-symbol": "3.1.1"
- }
- },
- "es6-map": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
- "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
- "dev": true,
- "requires": {
- "d": "1.0.0",
- "es5-ext": "0.10.37",
- "es6-iterator": "2.0.3",
- "es6-set": "0.1.5",
- "es6-symbol": "3.1.1",
- "event-emitter": "0.3.5"
- }
- },
- "es6-promise": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz",
- "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==",
- "dev": true
- },
- "es6-set": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
- "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
- "dev": true,
- "requires": {
- "d": "1.0.0",
- "es5-ext": "0.10.37",
- "es6-iterator": "2.0.3",
- "es6-symbol": "3.1.1",
- "event-emitter": "0.3.5"
- }
- },
- "es6-symbol": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
- "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
- "dev": true,
- "requires": {
- "d": "1.0.0",
- "es5-ext": "0.10.37"
- }
- },
- "es6-weak-map": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
- "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
- "dev": true,
- "requires": {
- "d": "1.0.0",
- "es5-ext": "0.10.37",
- "es6-iterator": "2.0.3",
- "es6-symbol": "3.1.1"
- }
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
- },
- "escodegen": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz",
- "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==",
- "requires": {
- "esprima": "3.1.3",
- "estraverse": "4.2.0",
- "esutils": "2.0.2",
- "optionator": "0.8.2",
- "source-map": "0.5.7"
- }
- },
- "escope": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
- "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
- "dev": true,
- "requires": {
- "es6-map": "0.1.5",
- "es6-weak-map": "2.0.2",
- "esrecurse": "4.2.0",
- "estraverse": "4.2.0"
- }
- },
- "eslint": {
- "version": "2.10.2",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-2.10.2.tgz",
- "integrity": "sha1-sjCUgv7wQ9MgM2WjIShebM4Bw9c=",
- "dev": true,
- "requires": {
- "chalk": "1.1.3",
- "concat-stream": "1.6.0",
- "debug": "2.6.9",
- "doctrine": "1.5.0",
- "es6-map": "0.1.5",
- "escope": "3.6.0",
- "espree": "3.1.4",
- "estraverse": "4.2.0",
- "esutils": "2.0.2",
- "file-entry-cache": "1.3.1",
- "glob": "7.1.2",
- "globals": "9.18.0",
- "ignore": "3.3.7",
- "imurmurhash": "0.1.4",
- "inquirer": "0.12.0",
- "is-my-json-valid": "2.16.1",
- "is-resolvable": "1.0.0",
- "js-yaml": "3.10.0",
- "json-stable-stringify": "1.0.1",
- "lodash": "4.17.4",
- "mkdirp": "0.5.1",
- "optionator": "0.8.2",
- "path-is-absolute": "1.0.1",
- "path-is-inside": "1.0.2",
- "pluralize": "1.2.1",
- "progress": "1.1.8",
- "require-uncached": "1.0.3",
- "shelljs": "0.6.1",
- "strip-json-comments": "1.0.4",
- "table": "3.8.3",
- "text-table": "0.2.0",
- "user-home": "2.0.0"
- },
- "dependencies": {
- "figures": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
- "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
- "dev": true,
- "requires": {
- "escape-string-regexp": "1.0.5",
- "object-assign": "4.1.1"
- }
- },
- "inquirer": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz",
- "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=",
- "dev": true,
- "requires": {
- "ansi-escapes": "1.4.0",
- "ansi-regex": "2.1.1",
- "chalk": "1.1.3",
- "cli-cursor": "1.0.2",
- "cli-width": "2.2.0",
- "figures": "1.7.0",
- "lodash": "4.17.4",
- "readline2": "1.0.1",
- "run-async": "0.1.0",
- "rx-lite": "3.1.2",
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "through": "2.3.8"
- }
- },
- "json-stable-stringify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
- "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
- "dev": true,
- "requires": {
- "jsonify": "0.0.0"
- }
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
- },
- "run-async": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
- "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=",
- "dev": true,
- "requires": {
- "once": "1.3.3"
- }
- },
- "rx-lite": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
- "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=",
- "dev": true
- },
- "strip-json-comments": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
- "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=",
- "dev": true
- }
- }
- },
- "eslint-config-standard": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-5.3.1.tgz",
- "integrity": "sha1-WRyWkVF0QTL1YdO5FagS6kE/5JA=",
- "dev": true
- },
- "eslint-config-standard-jsx": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/eslint-config-standard-jsx/-/eslint-config-standard-jsx-1.2.1.tgz",
- "integrity": "sha1-DRmxcF8K1INj7yqLv6cd8BLZibM=",
- "dev": true
- },
- "eslint-plugin-promise": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-1.3.2.tgz",
- "integrity": "sha1-/OMy1vX/UjIApTdwSGPsPCQiunw=",
- "dev": true
- },
- "eslint-plugin-react": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-5.2.2.tgz",
- "integrity": "sha1-fbBo4fVIf2hx5N7vNqOBwwPqwWE=",
- "dev": true,
- "requires": {
- "doctrine": "1.5.0",
- "jsx-ast-utils": "1.4.1"
- }
- },
- "eslint-plugin-standard": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-1.3.3.tgz",
- "integrity": "sha1-owhUUVI0MedvQJxwy4+U4yvw7H8=",
- "dev": true
- },
- "espree": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/espree/-/espree-3.1.4.tgz",
- "integrity": "sha1-BybXrIOvl6fISY2ps2OjYJ0qaKE=",
- "dev": true,
- "requires": {
- "acorn": "3.3.0",
- "acorn-jsx": "3.0.1"
- },
- "dependencies": {
- "acorn": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
- "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
- "dev": true
- }
- }
- },
- "esprima": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
- "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM="
- },
- "esrecurse": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz",
- "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=",
- "dev": true,
- "requires": {
- "estraverse": "4.2.0",
- "object-assign": "4.0.1"
- }
- },
- "estraverse": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
- "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM="
- },
- "esutils": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
- },
- "event-emitter": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
- "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
- "dev": true,
- "requires": {
- "d": "1.0.0",
- "es5-ext": "0.10.37"
- }
- },
- "event-stream": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
- "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=",
- "dev": true,
- "requires": {
- "duplexer": "0.1.1",
- "from": "0.1.7",
- "map-stream": "0.1.0",
- "pause-stream": "0.0.11",
- "split": "0.3.3",
- "stream-combiner": "0.0.4",
- "through": "2.3.8"
- }
- },
- "events": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
- "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=",
- "dev": true
- },
- "events-to-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz",
- "integrity": "sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y=",
- "dev": true
- },
- "evp_bytestokey": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
- "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
- "dev": true,
- "requires": {
- "md5.js": "1.3.4",
- "safe-buffer": "5.1.1"
- }
- },
- "execa": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz",
- "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=",
- "dev": true,
- "requires": {
- "cross-spawn": "5.1.0",
- "get-stream": "3.0.0",
- "is-stream": "1.1.0",
- "npm-run-path": "2.0.2",
- "p-finally": "1.0.0",
- "signal-exit": "3.0.2",
- "strip-eof": "1.0.0"
- }
- },
- "exit-hook": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
- "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=",
- "dev": true
- },
- "expand-brackets": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
- "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
- "requires": {
- "is-posix-bracket": "0.1.1"
- }
- },
- "expand-range": {
- "version": "1.8.2",
- "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
- "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
- "requires": {
- "fill-range": "2.2.3"
- }
- },
- "explain-error": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/explain-error/-/explain-error-1.0.4.tgz",
- "integrity": "sha1-p5PTrAytTGq1cemWj7urbLJTKSk="
- },
- "extend": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
- "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
- },
- "external-editor": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz",
- "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==",
- "dev": true,
- "requires": {
- "chardet": "0.4.2",
- "iconv-lite": "0.4.19",
- "tmp": "0.0.33"
- }
- },
- "extglob": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
- "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
- "requires": {
- "is-extglob": "1.0.0"
- }
- },
- "extract-zip": {
- "version": "1.6.6",
- "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz",
- "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=",
- "dev": true,
- "requires": {
- "concat-stream": "1.6.0",
- "debug": "2.6.9",
- "mkdirp": "0.5.0",
- "yauzl": "2.4.1"
- },
- "dependencies": {
- "minimist": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
- "dev": true
- },
- "mkdirp": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
- "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=",
- "dev": true,
- "requires": {
- "minimist": "0.0.8"
- }
- }
- }
- },
- "extsprintf": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
- },
- "falafel": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.1.0.tgz",
- "integrity": "sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw=",
- "requires": {
- "acorn": "5.2.1",
- "foreach": "2.0.5",
- "isarray": "0.0.1",
- "object-keys": "1.0.11"
- }
- },
- "fast-deep-equal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
- "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8="
- },
- "fast-json-parse": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz",
- "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw=="
- },
- "fast-json-stable-stringify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
- "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
- },
- "fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
- },
- "fast-safe-stringify": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-1.2.1.tgz",
- "integrity": "sha512-g2UqeO0yyYjTSpiH4zJQk+IycRxyYRABjSf+TpmeMOn9uByzFIoX0y/HnweCFhKb+uuPwjIvqXuK/LTteEBhow=="
- },
- "fd-read-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fd-read-stream/-/fd-read-stream-1.1.0.tgz",
- "integrity": "sha1-0wPMv+4CqaVqNJP7CLy1lpGqU7E=",
- "requires": {
- "readable-stream": "2.3.3"
- }
- },
- "fd-slicer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
- "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
- "dev": true,
- "requires": {
- "pend": "1.2.0"
- }
- },
- "figures": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
- "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
- "dev": true,
- "requires": {
- "escape-string-regexp": "1.0.5"
- }
- },
- "file-entry-cache": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-1.3.1.tgz",
- "integrity": "sha1-RMYepgeuS+nBQC9B9EJwy/4zT/g=",
- "dev": true,
- "requires": {
- "flat-cache": "1.3.0",
- "object-assign": "4.0.1"
- }
- },
- "filename-regex": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
- "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY="
- },
- "fill-range": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
- "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
- "requires": {
- "is-number": "2.1.0",
- "isobject": "2.1.0",
- "randomatic": "1.1.7",
- "repeat-element": "1.1.2",
- "repeat-string": "1.6.1"
- }
- },
- "filled-array": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/filled-array/-/filled-array-1.1.0.tgz",
- "integrity": "sha1-w8T2xmO5I0WamqKZEtLQMfFQf4Q=",
- "dev": true
- },
- "find-root": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
- "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==",
- "dev": true
- },
- "find-up": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
- "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
- "dev": true,
- "requires": {
- "path-exists": "2.1.0",
- "pinkie-promise": "2.0.1"
- }
- },
- "flat-cache": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz",
- "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
- "dev": true,
- "requires": {
- "circular-json": "0.3.3",
- "del": "2.2.2",
- "graceful-fs": "4.1.11",
- "write": "0.2.1"
- }
- },
- "flat-tree": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/flat-tree/-/flat-tree-1.6.0.tgz",
- "integrity": "sha1-/KMM3bkAb7ZW6168ea6ydOf96e0="
- },
- "flatten": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
- "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I="
- },
- "for-each": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.2.tgz",
- "integrity": "sha1-LEBFC5NI6X8oEyJZO6lnBLmr1NQ=",
- "requires": {
- "is-function": "1.0.1"
- }
- },
- "for-in": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
- },
- "for-own": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
- "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
- "requires": {
- "for-in": "1.0.2"
- }
- },
- "foreach": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
- "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
- },
- "foreground-child": {
- "version": "1.5.6",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz",
- "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=",
- "dev": true,
- "requires": {
- "cross-spawn": "4.0.2",
- "signal-exit": "3.0.2"
- },
- "dependencies": {
- "cross-spawn": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
- "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=",
- "dev": true,
- "requires": {
- "lru-cache": "4.1.1",
- "which": "1.3.0"
- }
- }
- }
- },
- "forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
- },
- "form-data": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz",
- "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=",
- "requires": {
- "asynckit": "0.4.0",
- "combined-stream": "1.0.5",
- "mime-types": "2.1.17"
- }
- },
- "from": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
- "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=",
- "dev": true
- },
- "from2": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
- "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
- "requires": {
- "inherits": "2.0.3",
- "readable-stream": "2.3.3"
- }
- },
- "fs-exists-cached": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz",
- "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=",
- "dev": true
- },
- "fs-extra": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz",
- "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=",
- "requires": {
- "graceful-fs": "4.1.11",
- "jsonfile": "2.4.0"
- }
- },
- "fs-extra-p": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-3.1.0.tgz",
- "integrity": "sha1-7d97uNk4XXkBTeyyH0Wx0MV5ANM=",
- "requires": {
- "bluebird-lst-c": "1.0.6",
- "fs-extra": "2.1.2"
- }
- },
- "fs-extra-tf": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-extra-tf/-/fs-extra-tf-1.0.0.tgz",
- "integrity": "sha1-d9PX3CGZ+8YYpC/l6oETfble6y4=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "jsonfile": "2.4.0",
- "klaw": "1.3.1"
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "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==",
- "dev": true,
- "optional": true,
- "requires": {
- "nan": "2.8.0",
- "node-pre-gyp": "0.6.39"
- },
- "dependencies": {
- "abbrev": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "ajv": {
- "version": "4.11.8",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "co": "4.6.0",
- "json-stable-stringify": "1.0.1"
- }
- },
- "ansi-regex": {
- "version": "2.1.1",
- "bundled": true,
- "dev": true
- },
- "aproba": {
- "version": "1.1.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "are-we-there-yet": {
- "version": "1.1.4",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "delegates": "1.0.0",
- "readable-stream": "2.2.9"
- }
- },
- "asn1": {
- "version": "0.2.3",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "assert-plus": {
- "version": "0.2.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "asynckit": {
- "version": "0.4.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "aws-sign2": {
- "version": "0.6.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "aws4": {
- "version": "1.6.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "balanced-match": {
- "version": "0.4.2",
- "bundled": true,
- "dev": true
- },
- "bcrypt-pbkdf": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "tweetnacl": "0.14.5"
- }
- },
- "block-stream": {
- "version": "0.0.9",
- "bundled": true,
- "dev": true,
- "requires": {
- "inherits": "2.0.3"
- }
- },
- "boom": {
- "version": "2.10.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "hoek": "2.16.3"
- }
- },
- "brace-expansion": {
- "version": "1.1.7",
- "bundled": true,
- "dev": true,
- "requires": {
- "balanced-match": "0.4.2",
- "concat-map": "0.0.1"
- }
- },
- "buffer-shims": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "caseless": {
- "version": "0.12.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "co": {
- "version": "4.6.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "code-point-at": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true
- },
- "combined-stream": {
- "version": "1.0.5",
- "bundled": true,
- "dev": true,
- "requires": {
- "delayed-stream": "1.0.0"
- }
- },
- "concat-map": {
- "version": "0.0.1",
- "bundled": true,
- "dev": true
- },
- "console-control-strings": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true
- },
- "core-util-is": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true
- },
- "cryptiles": {
- "version": "2.0.5",
- "bundled": true,
- "dev": true,
- "requires": {
- "boom": "2.10.1"
- }
- },
- "dashdash": {
- "version": "1.14.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "assert-plus": "1.0.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- }
- }
- },
- "debug": {
- "version": "2.6.8",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "deep-extend": {
- "version": "0.4.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "delayed-stream": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "delegates": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "detect-libc": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "ecc-jsbn": {
- "version": "0.1.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "jsbn": "0.1.1"
- }
- },
- "extend": {
- "version": "3.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "extsprintf": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true
- },
- "forever-agent": {
- "version": "0.6.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "form-data": {
- "version": "2.1.4",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "asynckit": "0.4.0",
- "combined-stream": "1.0.5",
- "mime-types": "2.1.15"
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "fstream": {
- "version": "1.0.11",
- "bundled": true,
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "inherits": "2.0.3",
- "mkdirp": "0.5.1",
- "rimraf": "2.6.1"
- }
- },
- "fstream-ignore": {
- "version": "1.0.5",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "fstream": "1.0.11",
- "inherits": "2.0.3",
- "minimatch": "3.0.4"
- }
- },
- "gauge": {
- "version": "2.7.4",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "aproba": "1.1.1",
- "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,
- "dev": true,
- "optional": true,
- "requires": {
- "assert-plus": "1.0.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- }
- }
- },
- "glob": {
- "version": "7.1.2",
- "bundled": true,
- "dev": true,
- "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,
- "dev": true
- },
- "har-schema": {
- "version": "1.0.5",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "har-validator": {
- "version": "4.2.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "ajv": "4.11.8",
- "har-schema": "1.0.5"
- }
- },
- "has-unicode": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "hawk": {
- "version": "3.1.3",
- "bundled": true,
- "dev": 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,
- "dev": true
- },
- "http-signature": {
- "version": "1.1.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "assert-plus": "0.2.0",
- "jsprim": "1.4.0",
- "sshpk": "1.13.0"
- }
- },
- "inflight": {
- "version": "1.0.6",
- "bundled": true,
- "dev": true,
- "requires": {
- "once": "1.4.0",
- "wrappy": "1.0.2"
- }
- },
- "inherits": {
- "version": "2.0.3",
- "bundled": true,
- "dev": true
- },
- "ini": {
- "version": "1.3.4",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "number-is-nan": "1.0.1"
- }
- },
- "is-typedarray": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "isarray": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "isstream": {
- "version": "0.1.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "jodid25519": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "jsbn": "0.1.1"
- }
- },
- "jsbn": {
- "version": "0.1.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "json-schema": {
- "version": "0.2.3",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "json-stable-stringify": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "jsonify": "0.0.0"
- }
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "jsonify": {
- "version": "0.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "jsprim": {
- "version": "1.4.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.0.2",
- "json-schema": "0.2.3",
- "verror": "1.3.6"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- }
- }
- },
- "mime-db": {
- "version": "1.27.0",
- "bundled": true,
- "dev": true
- },
- "mime-types": {
- "version": "2.1.15",
- "bundled": true,
- "dev": true,
- "requires": {
- "mime-db": "1.27.0"
- }
- },
- "minimatch": {
- "version": "3.0.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "brace-expansion": "1.1.7"
- }
- },
- "minimist": {
- "version": "0.0.8",
- "bundled": true,
- "dev": true
- },
- "mkdirp": {
- "version": "0.5.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "minimist": "0.0.8"
- }
- },
- "ms": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "node-pre-gyp": {
- "version": "0.6.39",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "detect-libc": "1.0.2",
- "hawk": "3.1.3",
- "mkdirp": "0.5.1",
- "nopt": "4.0.1",
- "npmlog": "4.1.0",
- "rc": "1.2.1",
- "request": "2.81.0",
- "rimraf": "2.6.1",
- "semver": "5.3.0",
- "tar": "2.2.1",
- "tar-pack": "3.4.0"
- }
- },
- "nopt": {
- "version": "4.0.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "abbrev": "1.1.0",
- "osenv": "0.1.4"
- }
- },
- "npmlog": {
- "version": "4.1.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "are-we-there-yet": "1.1.4",
- "console-control-strings": "1.1.0",
- "gauge": "2.7.4",
- "set-blocking": "2.0.0"
- }
- },
- "number-is-nan": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true
- },
- "oauth-sign": {
- "version": "0.8.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "object-assign": {
- "version": "4.1.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "once": {
- "version": "1.4.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "wrappy": "1.0.2"
- }
- },
- "os-homedir": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "os-tmpdir": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "osenv": {
- "version": "0.1.4",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "os-homedir": "1.0.2",
- "os-tmpdir": "1.0.2"
- }
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true
- },
- "performance-now": {
- "version": "0.2.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "process-nextick-args": {
- "version": "1.0.7",
- "bundled": true,
- "dev": true
- },
- "punycode": {
- "version": "1.4.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "qs": {
- "version": "6.4.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "rc": {
- "version": "1.2.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "deep-extend": "0.4.2",
- "ini": "1.3.4",
- "minimist": "1.2.0",
- "strip-json-comments": "2.0.1"
- },
- "dependencies": {
- "minimist": {
- "version": "1.2.0",
- "bundled": true,
- "dev": true,
- "optional": true
- }
- }
- },
- "readable-stream": {
- "version": "2.2.9",
- "bundled": true,
- "dev": true,
- "requires": {
- "buffer-shims": "1.0.0",
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "string_decoder": "1.0.1",
- "util-deprecate": "1.0.2"
- }
- },
- "request": {
- "version": "2.81.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "aws-sign2": "0.6.0",
- "aws4": "1.6.0",
- "caseless": "0.12.0",
- "combined-stream": "1.0.5",
- "extend": "3.0.1",
- "forever-agent": "0.6.1",
- "form-data": "2.1.4",
- "har-validator": "4.2.1",
- "hawk": "3.1.3",
- "http-signature": "1.1.1",
- "is-typedarray": "1.0.0",
- "isstream": "0.1.2",
- "json-stringify-safe": "5.0.1",
- "mime-types": "2.1.15",
- "oauth-sign": "0.8.2",
- "performance-now": "0.2.0",
- "qs": "6.4.0",
- "safe-buffer": "5.0.1",
- "stringstream": "0.0.5",
- "tough-cookie": "2.3.2",
- "tunnel-agent": "0.6.0",
- "uuid": "3.0.1"
- }
- },
- "rimraf": {
- "version": "2.6.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "glob": "7.1.2"
- }
- },
- "safe-buffer": {
- "version": "5.0.1",
- "bundled": true,
- "dev": true
- },
- "semver": {
- "version": "5.3.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "set-blocking": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "signal-exit": {
- "version": "3.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "sntp": {
- "version": "1.0.9",
- "bundled": true,
- "dev": true,
- "requires": {
- "hoek": "2.16.3"
- }
- },
- "sshpk": {
- "version": "1.13.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "asn1": "0.2.3",
- "assert-plus": "1.0.0",
- "bcrypt-pbkdf": "1.0.1",
- "dashdash": "1.14.1",
- "ecc-jsbn": "0.1.1",
- "getpass": "0.1.7",
- "jodid25519": "1.0.2",
- "jsbn": "0.1.1",
- "tweetnacl": "0.14.5"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- }
- }
- },
- "string-width": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
- }
- },
- "string_decoder": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "safe-buffer": "5.0.1"
- }
- },
- "stringstream": {
- "version": "0.0.5",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "strip-ansi": {
- "version": "3.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "ansi-regex": "2.1.1"
- }
- },
- "strip-json-comments": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "tar": {
- "version": "2.2.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "block-stream": "0.0.9",
- "fstream": "1.0.11",
- "inherits": "2.0.3"
- }
- },
- "tar-pack": {
- "version": "3.4.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "debug": "2.6.8",
- "fstream": "1.0.11",
- "fstream-ignore": "1.0.5",
- "once": "1.4.0",
- "readable-stream": "2.2.9",
- "rimraf": "2.6.1",
- "tar": "2.2.1",
- "uid-number": "0.0.6"
- }
- },
- "tough-cookie": {
- "version": "2.3.2",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "punycode": "1.4.1"
- }
- },
- "tunnel-agent": {
- "version": "0.6.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "safe-buffer": "5.0.1"
- }
- },
- "tweetnacl": {
- "version": "0.14.5",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "uid-number": {
- "version": "0.0.6",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "util-deprecate": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true
- },
- "uuid": {
- "version": "3.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "verror": {
- "version": "1.3.6",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "extsprintf": "1.0.2"
- }
- },
- "wide-align": {
- "version": "1.1.2",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "string-width": "1.0.2"
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true
- }
- }
- },
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
- },
- "function-loop": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/function-loop/-/function-loop-1.0.1.tgz",
- "integrity": "sha1-gHa7MF6OajzO7ikgdl8zDRkPNAw=",
- "dev": true
- },
- "gaze": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz",
- "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=",
- "dev": true,
- "requires": {
- "globule": "1.2.0"
- }
- },
- "generate-function": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
- "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ="
- },
- "generate-object-property": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
- "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
- "requires": {
- "is-property": "1.0.2"
- }
- },
- "get-caller-file": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
- "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=",
- "dev": true
- },
- "get-stdin": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
- "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
- "dev": true
- },
- "get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
- "dev": true
- },
- "getpass": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
- "requires": {
- "assert-plus": "1.0.0"
- }
- },
- "glob": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
- "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
- "requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.3.3",
- "path-is-absolute": "1.0.1"
- }
- },
- "glob-base": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
- "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
- "requires": {
- "glob-parent": "2.0.0",
- "is-glob": "2.0.1"
- }
- },
- "glob-parent": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
- "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
- "requires": {
- "is-glob": "2.0.1"
- }
- },
- "global": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz",
- "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=",
- "requires": {
- "min-document": "2.19.0",
- "process": "0.5.2"
- }
- },
- "global-dirs": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
- "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
- "dev": true,
- "requires": {
- "ini": "1.3.5"
- }
- },
- "globals": {
- "version": "9.18.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
- "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
- "dev": true
- },
- "globby": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
- "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
- "dev": true,
- "requires": {
- "array-union": "1.0.2",
- "arrify": "1.0.1",
- "glob": "7.1.2",
- "object-assign": "4.0.1",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1"
- }
- },
- "globule": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz",
- "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=",
- "dev": true,
- "requires": {
- "glob": "7.1.2",
- "lodash": "4.17.4",
- "minimatch": "3.0.4"
- }
- },
- "got": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/got/-/got-5.7.1.tgz",
- "integrity": "sha1-X4FjWmHkplifGAVp6k44FoClHzU=",
- "dev": true,
- "requires": {
- "create-error-class": "3.0.2",
- "duplexer2": "0.1.4",
- "is-redirect": "1.0.0",
- "is-retry-allowed": "1.1.0",
- "is-stream": "1.1.0",
- "lowercase-keys": "1.0.0",
- "node-status-codes": "1.0.0",
- "object-assign": "4.0.1",
- "parse-json": "2.2.0",
- "pinkie-promise": "2.0.1",
- "read-all-stream": "3.1.0",
- "readable-stream": "2.3.3",
- "timed-out": "3.1.3",
- "unzip-response": "1.0.2",
- "url-parse-lax": "1.0.0"
- },
- "dependencies": {
- "duplexer2": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
- "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
- "dev": true,
- "requires": {
- "readable-stream": "2.3.3"
- }
- }
- }
- },
- "graceful-fs": {
- "version": "4.1.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
- },
- "har-schema": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
- },
- "har-validator": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
- "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
- "requires": {
- "ajv": "5.5.0",
- "har-schema": "2.0.0"
- }
- },
- "has": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
- "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
- "requires": {
- "function-bind": "1.1.1"
- }
- },
- "has-ansi": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
- "requires": {
- "ansi-regex": "2.1.1"
- }
- },
- "has-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
- "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo="
- },
- "hash-base": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz",
- "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=",
- "dev": true,
- "requires": {
- "inherits": "2.0.3"
- }
- },
- "hash.js": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
- "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
- "dev": true,
- "requires": {
- "inherits": "2.0.3",
- "minimalistic-assert": "1.0.0"
- }
- },
- "hawk": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
- "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
- "requires": {
- "boom": "4.3.1",
- "cryptiles": "3.1.2",
- "hoek": "4.2.0",
- "sntp": "2.1.0"
- }
- },
- "hmac-drbg": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
- "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
- "dev": true,
- "requires": {
- "hash.js": "1.1.3",
- "minimalistic-assert": "1.0.0",
- "minimalistic-crypto-utils": "1.0.1"
- }
- },
- "hoek": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz",
- "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ=="
- },
- "home-path": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/home-path/-/home-path-1.0.5.tgz",
- "integrity": "sha1-eIspgVsS1Tus9XVkhHbm+QQdEz8=",
- "dev": true
- },
- "hosted-git-info": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
- "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==",
- "dev": true
- },
- "htmlescape": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz",
- "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=",
- "dev": true
- },
- "http-methods": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/http-methods/-/http-methods-0.1.0.tgz",
- "integrity": "sha1-KWkbb8WPT36Bo2BdyoJoKwaORDA=",
- "requires": {
- "body": "0.1.0",
- "content-types": "0.1.0"
- }
- },
- "http-signature": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
- "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
- "requires": {
- "assert-plus": "1.0.0",
- "jsprim": "1.4.1",
- "sshpk": "1.13.1"
- }
- },
- "https-browserify": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz",
- "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=",
- "dev": true
- },
- "hypercore": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/hypercore/-/hypercore-6.11.0.tgz",
- "integrity": "sha512-upk8UvbeJZc921Bi+kW3rLJgdrbfVkVBlB8M4QM4X3IFWz15UbCYnSWgRgN3jf7Qr5t9TF3H4rBZPI68U5wEMA==",
- "requires": {
- "array-lru": "1.1.1",
- "atomic-batcher": "1.0.2",
- "bitfield-rle": "2.1.0",
- "buffer-equals": "1.0.4",
- "bulk-write-stream": "1.1.3",
- "codecs": "1.2.0",
- "flat-tree": "1.6.0",
- "from2": "2.3.0",
- "hypercore-protocol": "6.4.2",
- "inherits": "2.0.3",
- "last-one-wins": "1.0.4",
- "memory-pager": "1.1.0",
- "merkle-tree-stream": "3.0.3",
- "process-nextick-args": "1.0.7",
- "random-access-file": "1.8.1",
- "sodium-universal": "2.0.0",
- "sparse-bitfield": "3.0.3",
- "thunky": "1.0.2",
- "uint64be": "2.0.1",
- "unordered-array-remove": "1.0.2",
- "unordered-set": "2.0.0"
- },
- "dependencies": {
- "unordered-set": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unordered-set/-/unordered-set-2.0.0.tgz",
- "integrity": "sha1-mFon6XW6oguCY66np5HpMAlBqew="
- }
- }
- },
- "hypercore-protocol": {
- "version": "6.4.2",
- "resolved": "https://registry.npmjs.org/hypercore-protocol/-/hypercore-protocol-6.4.2.tgz",
- "integrity": "sha512-xx8byjQnan/9+Epoi/1bpSS/dU2yVJy081nMX5Leh3z5CDDwOcpb5Q11UkUyyiRnUoxtv7uzpAAD7RWvW3lODw==",
- "requires": {
- "brfs": "1.4.3",
- "inherits": "2.0.3",
- "protocol-buffers": "3.2.1",
- "readable-stream": "2.3.3",
- "sodium-universal": "2.0.0",
- "sorted-indexof": "1.0.0",
- "varint": "5.0.0"
- },
- "dependencies": {
- "varint": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.0.tgz",
- "integrity": "sha1-2Ca4n3SQcy+rwMDtaT7Uddyynr8="
- }
- }
- },
- "hyperdrive": {
- "version": "9.12.0",
- "resolved": "https://registry.npmjs.org/hyperdrive/-/hyperdrive-9.12.0.tgz",
- "integrity": "sha512-vlB0haK2Vucu+mXz6hiq75wejL8b8WrX2QC5Bj3O63YNId2RSzrOSvYZUgNT2dGhMERUtdPSViiHkpvro3VbkA==",
- "requires": {
- "append-tree": "2.4.0",
- "duplexify": "3.5.1",
- "from2": "2.3.0",
- "hypercore": "6.11.0",
- "inherits": "2.0.3",
- "mutexify": "1.2.0",
- "protocol-buffers": "3.2.1",
- "random-access-file": "1.8.1",
- "sodium-universal": "2.0.0",
- "stream-collector": "1.0.1",
- "stream-each": "1.2.2",
- "thunky": "1.0.2",
- "uint64be": "2.0.1",
- "unixify": "1.0.0"
- }
- },
- "hyperdrive-http": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/hyperdrive-http/-/hyperdrive-http-4.2.2.tgz",
- "integrity": "sha512-NgfZGxfQoYIEIuYat+dki/GAWpjmM/X+5YL5faTrX3VgXdGObVOhKEHQISk855T8C+R4aPP8QpF1YR8adUVBNw==",
- "requires": {
- "corsify": "2.1.0",
- "directory-index-html": "2.1.0",
- "mime": "1.6.0",
- "pump": "1.0.3",
- "range-parser": "1.2.0"
- }
- },
- "hyperdrive-network-speed": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/hyperdrive-network-speed/-/hyperdrive-network-speed-2.0.1.tgz",
- "integrity": "sha1-QNr4LjG511Pyrm368IGGYe0k/hU=",
- "requires": {
- "debug": "2.6.9",
- "speedometer": "1.0.0"
- }
- },
- "hyperscript-attribute-to-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/hyperscript-attribute-to-property/-/hyperscript-attribute-to-property-1.0.0.tgz",
- "integrity": "sha1-glMI1Ju44pV5I/cxmBvMgRytev8="
- },
- "hyperx": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/hyperx/-/hyperx-2.3.2.tgz",
- "integrity": "sha512-fYFJn0kVMHpkLJKzqGXfs0+p26NH0R3PsLWQGZ5Enbp1jcyEK9U9uJGnsRKPgBCoQ6bVzkV+srwHVFc2+pHfYQ==",
- "requires": {
- "hyperscript-attribute-to-property": "1.0.0"
- }
- },
- "iconv-lite": {
- "version": "0.4.19",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
- "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
- "dev": true
- },
- "ieee754": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz",
- "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=",
- "dev": true
- },
- "ignore": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz",
- "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==",
- "dev": true
- },
- "ignore-by-default": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
- "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=",
- "dev": true
- },
- "import-lazy": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
- "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
- "dev": true
- },
- "imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
- "dev": true
- },
- "indent-string": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
- "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
- "dev": true,
- "requires": {
- "repeating": "2.0.1"
- }
- },
- "indexes-of": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
- "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc="
- },
- "indexof": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
- "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
- "dev": true
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "requires": {
- "once": "1.3.3",
- "wrappy": "1.0.2"
- }
- },
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
- },
- "ini": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
- "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
- "dev": true
- },
- "inline-source-map": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz",
- "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=",
- "dev": true,
- "requires": {
- "source-map": "0.5.7"
- }
- },
- "inquirer": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
- "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
- "dev": true,
- "requires": {
- "ansi-escapes": "3.0.0",
- "chalk": "2.3.0",
- "cli-cursor": "2.1.0",
- "cli-width": "2.2.0",
- "external-editor": "2.1.0",
- "figures": "2.0.0",
- "lodash": "4.17.4",
- "mute-stream": "0.0.7",
- "run-async": "2.3.0",
- "rx-lite": "4.0.8",
- "rx-lite-aggregates": "4.0.8",
- "string-width": "2.1.1",
- "strip-ansi": "4.0.0",
- "through": "2.3.8"
- },
- "dependencies": {
- "ansi-escapes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz",
- "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==",
- "dev": true
- },
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": true
- },
- "ansi-styles": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
- "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
- "dev": true,
- "requires": {
- "color-convert": "1.9.1"
- }
- },
- "chalk": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
- "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
- "dev": true,
- "requires": {
- "ansi-styles": "3.2.0",
- "escape-string-regexp": "1.0.5",
- "supports-color": "4.5.0"
- }
- },
- "cli-cursor": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
- "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
- "dev": true,
- "requires": {
- "restore-cursor": "2.0.0"
- }
- },
- "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"
- }
- },
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "dev": true
- },
- "onetime": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
- "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
- "dev": true,
- "requires": {
- "mimic-fn": "1.1.0"
- }
- },
- "restore-cursor": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
- "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
- "dev": true,
- "requires": {
- "onetime": "2.0.1",
- "signal-exit": "3.0.2"
- }
- },
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "dev": true,
- "requires": {
- "is-fullwidth-code-point": "2.0.0",
- "strip-ansi": "4.0.0"
- }
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
- "requires": {
- "ansi-regex": "3.0.0"
- }
- },
- "supports-color": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
- "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
- "dev": true,
- "requires": {
- "has-flag": "2.0.0"
- }
- }
- }
- },
- "insert-css": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/insert-css/-/insert-css-2.0.0.tgz",
- "integrity": "sha1-610Ql7dUL0x56jBg067gfQU4gPQ="
- },
- "insert-module-globals": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz",
- "integrity": "sha1-wDv04BywhtW15azorQr+eInWOMM=",
- "dev": true,
- "requires": {
- "JSONStream": "1.3.1",
- "combine-source-map": "0.7.2",
- "concat-stream": "1.5.2",
- "is-buffer": "1.1.6",
- "lexical-scope": "1.2.0",
- "process": "0.11.10",
- "through2": "2.0.3",
- "xtend": "4.0.1"
- },
- "dependencies": {
- "concat-stream": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
- "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=",
- "dev": true,
- "requires": {
- "inherits": "2.0.3",
- "readable-stream": "2.0.6",
- "typedarray": "0.0.6"
- }
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
- },
- "process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
- "dev": true
- },
- "readable-stream": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
- "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
- "dev": true,
- "requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "string_decoder": "0.10.31",
- "util-deprecate": "1.0.2"
- }
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "dev": true
- }
- }
- },
- "insert-styles": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/insert-styles/-/insert-styles-1.2.1.tgz",
- "integrity": "sha1-nNhMIJa9VB6j4ZI2Ere2BMnB1TI="
- },
- "invert-kv": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
- "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
- "dev": true
- },
- "ip": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
- "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
- },
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
- "dev": true
- },
- "is-binary-path": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
- "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
- "dev": true,
- "requires": {
- "binary-extensions": "1.11.0"
- }
- },
- "is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
- },
- "is-builtin-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
- "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
- "dev": true,
- "requires": {
- "builtin-modules": "1.1.1"
- }
- },
- "is-dom": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.9.tgz",
- "integrity": "sha1-SDgy1SlyBz3hK5/j9gMghw2oNw0="
- },
- "is-dotfile": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
- "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE="
- },
- "is-electron": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.1.0.tgz",
- "integrity": "sha512-dkg5xT383+M6zIbbXW/z7n2nz4SFUi2OSyhntnFYkRdtV+HVEfdjEK+5AWisfYgkpe3WYjTIuh7toaKmSfFVWw=="
- },
- "is-electron-renderer": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-electron-renderer/-/is-electron-renderer-2.0.1.tgz",
- "integrity": "sha1-pGnQVvl1aXxYyYxgI+sKp5r4laI="
- },
- "is-equal-shallow": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
- "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
- "requires": {
- "is-primitive": "2.0.0"
- }
- },
- "is-extendable": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
- },
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
- },
- "is-finite": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
- "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
- "dev": true,
- "requires": {
- "number-is-nan": "1.0.1"
- }
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "dev": true,
- "requires": {
- "number-is-nan": "1.0.1"
- }
- },
- "is-function": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz",
- "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU="
- },
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
- "requires": {
- "is-extglob": "1.0.0"
- }
- },
- "is-installed-globally": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
- "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
- "dev": true,
- "requires": {
- "global-dirs": "0.1.1",
- "is-path-inside": "1.0.1"
- }
- },
- "is-my-json-valid": {
- "version": "2.16.1",
- "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz",
- "integrity": "sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==",
- "dev": true,
- "requires": {
- "generate-function": "2.0.0",
- "generate-object-property": "1.2.0",
- "jsonpointer": "4.0.1",
- "xtend": "4.0.1"
- }
- },
- "is-npm": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
- "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=",
- "dev": true
- },
- "is-number": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
- "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
- "requires": {
- "kind-of": "3.2.2"
- }
- },
- "is-obj": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
- "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
- "dev": true
- },
- "is-path-cwd": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
- "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
- "dev": true
- },
- "is-path-in-cwd": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz",
- "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=",
- "dev": true,
- "requires": {
- "is-path-inside": "1.0.1"
- }
- },
- "is-path-inside": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
- "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
- "dev": true,
- "requires": {
- "path-is-inside": "1.0.2"
- }
- },
- "is-posix-bracket": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
- "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q="
- },
- "is-primitive": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
- "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
- },
- "is-promise": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
- "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
- "dev": true
- },
- "is-property": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
- "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ="
- },
- "is-redirect": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
- "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
- "dev": true
- },
- "is-relative": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz",
- "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=",
- "dev": true,
- "requires": {
- "is-unc-path": "0.1.2"
- }
- },
- "is-resolvable": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz",
- "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=",
- "dev": true,
- "requires": {
- "tryit": "1.0.3"
- }
- },
- "is-retry-allowed": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
- "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=",
- "dev": true
- },
- "is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
- "dev": true
- },
- "is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
- },
- "is-unc-path": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz",
- "integrity": "sha1-arBTpyVzwQJQ/0FqOBTDUXivObk=",
- "dev": true,
- "requires": {
- "unc-path-regex": "0.1.2"
- }
- },
- "is-utf8": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
- "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
- "dev": true
- },
- "is-windows": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.1.tgz",
- "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=",
- "dev": true
- },
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
- },
- "isbinaryfile": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz",
- "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=",
- "dev": true
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
- "dev": true
- },
- "isobject": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
- "requires": {
- "isarray": "1.0.0"
- },
- "dependencies": {
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- }
- }
- },
- "isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
- },
- "iterators": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/iterators/-/iterators-0.1.0.tgz",
- "integrity": "sha1-0D9mbKTmEwE4VlmXys6lQWQgMVY=",
- "requires": {
- "ap": "0.1.0"
- }
- },
- "js-base64": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.0.tgz",
- "integrity": "sha512-Wehd+7Pf9tFvGb+ydPm9TjYjV8X1YHOVyG8QyELZxEMqOhemVwGRmoG8iQ/soqI3n8v4xn59zaLxiCJiaaRzKA=="
- },
- "js-yaml": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
- "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
- "requires": {
- "argparse": "1.0.9",
- "esprima": "4.0.0"
- },
- "dependencies": {
- "esprima": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
- "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw=="
- }
- }
- },
- "jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
- "optional": true
- },
- "json-parse-better-errors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz",
- "integrity": "sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw==",
- "dev": true
- },
- "json-schema": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
- "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
- },
- "json-schema-traverse": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
- "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
- },
- "json-stable-stringify": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz",
- "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=",
- "dev": true,
- "requires": {
- "jsonify": "0.0.0"
- }
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
- },
- "jsonfile": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
- "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
- "requires": {
- "graceful-fs": "4.1.11"
- }
- },
- "jsonify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
- "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
- "dev": true
- },
- "jsonparse": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
- "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
- "dev": true
- },
- "jsonpointer": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
- "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
- "dev": true
- },
- "jsprim": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
- "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
- "requires": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.2.3",
- "verror": "1.10.0"
- }
- },
- "jsx-ast-utils": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz",
- "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=",
- "dev": true
- },
- "juliangruber-shallow-equal": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/juliangruber-shallow-equal/-/juliangruber-shallow-equal-1.0.4.tgz",
- "integrity": "sha1-JqQhSCNXVPlCuDwGYfZKsS0245g="
- },
- "k-bucket": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-3.3.0.tgz",
- "integrity": "sha512-WIAQ54LfNjzt4viUIEVnXo9cr7ALS9Yocg+USLoiO89Uvbf9hz0OBtqmfzSr49kT3vbnhlzFfsJHFQ0xnp7LbA==",
- "requires": {
- "buffer-equals": "1.0.4",
- "inherits": "2.0.3",
- "randombytes": "2.0.5"
- }
- },
- "k-rpc": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/k-rpc/-/k-rpc-4.2.0.tgz",
- "integrity": "sha512-w+Dwo4nYWvV6aeuaMI7JPwrofjzUdN2rX6gONvsQF3g6CNV0UnKpiPqzDGUjX3ginPEkKYKUIpmJZiHmzpM9kg==",
- "requires": {
- "buffer-equals": "1.0.4",
- "k-bucket": "3.3.0",
- "k-rpc-socket": "1.7.1",
- "randombytes": "2.0.5",
- "safe-buffer": "5.1.1"
- }
- },
- "k-rpc-socket": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/k-rpc-socket/-/k-rpc-socket-1.7.1.tgz",
- "integrity": "sha512-FmHDmrT6sIs2MM/uMYW0Jmjd01wk2NxzPd6+9iH7onvutqhWXZ8PoZ9p/mVS58SQILC7jKZacC72V5QNkvAXew==",
- "requires": {
- "bencode": "1.0.0",
- "safe-buffer": "5.1.1"
- }
- },
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "1.1.6"
- }
- },
- "klaw": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
- "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11"
- }
- },
- "labeled-stream-splicer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz",
- "integrity": "sha1-pS4dE4AkwAuGscDJH2d5GLiuClk=",
- "dev": true,
- "requires": {
- "inherits": "2.0.3",
- "isarray": "0.0.1",
- "stream-splicer": "2.0.0"
- }
- },
- "last-one-wins": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/last-one-wins/-/last-one-wins-1.0.4.tgz",
- "integrity": "sha1-wb/Qy8tGeQ7JFWuNGu6Py4bNoio="
- },
- "latest-version": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-2.0.0.tgz",
- "integrity": "sha1-VvjWE5YghHuAF/jx9NeOIRMkFos=",
- "dev": true,
- "requires": {
- "package-json": "2.4.0"
- }
- },
- "lazy-req": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/lazy-req/-/lazy-req-1.1.0.tgz",
- "integrity": "sha1-va6+rTD42CQDnODOFJ1Nqge6H6w=",
- "dev": true
- },
- "lazystream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
- "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
- "dev": true,
- "requires": {
- "readable-stream": "2.3.3"
- }
- },
- "lcid": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
- "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
- "dev": true,
- "requires": {
- "invert-kv": "1.0.0"
- }
- },
- "lcov-parse": {
- "version": "0.0.10",
- "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz",
- "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=",
- "dev": true
- },
- "length-prefixed-message": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/length-prefixed-message/-/length-prefixed-message-3.0.3.tgz",
- "integrity": "sha1-JFR01pq8BhTco2jcNaqAdJgqI6w=",
- "requires": {
- "varint": "3.0.1"
- }
- },
- "levn": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
- "requires": {
- "prelude-ls": "1.1.2",
- "type-check": "0.3.2"
- }
- },
- "lexical-scope": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz",
- "integrity": "sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ=",
- "dev": true,
- "requires": {
- "astw": "2.2.0"
- }
- },
- "load-json-file": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
- "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "parse-json": "2.2.0",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1",
- "strip-bom": "2.0.0"
- }
- },
- "localenv": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/localenv/-/localenv-0.2.2.tgz",
- "integrity": "sha1-xQjynTSFvck0HT6tF/YcWr0bC6s=",
- "requires": {
- "commander": "2.5.0"
- }
- },
- "lodash": {
- "version": "4.17.4",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
- "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
- "dev": true
- },
- "lodash._baseassign": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz",
- "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=",
- "dev": true,
- "requires": {
- "lodash._basecopy": "3.0.1",
- "lodash.keys": "3.1.2"
- }
- },
- "lodash._basecopy": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
- "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
- "dev": true
- },
- "lodash._bindcallback": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz",
- "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=",
- "dev": true
- },
- "lodash._createassigner": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz",
- "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=",
- "dev": true,
- "requires": {
- "lodash._bindcallback": "3.0.1",
- "lodash._isiterateecall": "3.0.9",
- "lodash.restparam": "3.6.1"
- }
- },
- "lodash._getnative": {
- "version": "3.9.1",
- "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
- "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
- "dev": true
- },
- "lodash._isiterateecall": {
- "version": "3.0.9",
- "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
- "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
- "dev": true
- },
- "lodash._reinterpolate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
- "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
- "dev": true
- },
- "lodash.assign": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz",
- "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=",
- "dev": true,
- "requires": {
- "lodash._baseassign": "3.2.0",
- "lodash._createassigner": "3.1.1",
- "lodash.keys": "3.1.2"
- }
- },
- "lodash.defaults": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-3.1.2.tgz",
- "integrity": "sha1-xzCLGNv4vJNy1wGnNJPGEZK9Liw=",
- "dev": true,
- "requires": {
- "lodash.assign": "3.2.0",
- "lodash.restparam": "3.6.1"
- }
- },
- "lodash.isarguments": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
- "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
- "dev": true
- },
- "lodash.isarray": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
- "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
- "dev": true
- },
- "lodash.keys": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
- "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
- "dev": true,
- "requires": {
- "lodash._getnative": "3.9.1",
- "lodash.isarguments": "3.1.0",
- "lodash.isarray": "3.0.4"
- }
- },
- "lodash.memoize": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz",
- "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=",
- "dev": true
- },
- "lodash.restparam": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
- "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=",
- "dev": true
- },
- "lodash.template": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz",
- "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=",
- "dev": true,
- "requires": {
- "lodash._reinterpolate": "3.0.0",
- "lodash.templatesettings": "4.1.0"
- }
- },
- "lodash.templatesettings": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz",
- "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=",
- "dev": true,
- "requires": {
- "lodash._reinterpolate": "3.0.0"
- }
- },
- "lodash.toarray": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz",
- "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=",
- "dev": true
- },
- "log-driver": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz",
- "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=",
- "dev": true
- },
- "loud-rejection": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
- "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
- "dev": true,
- "requires": {
- "currently-unhandled": "0.4.1",
- "signal-exit": "3.0.2"
- }
- },
- "lowercase-keys": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
- "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=",
- "dev": true
- },
- "lru": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/lru/-/lru-3.1.0.tgz",
- "integrity": "sha1-6n+4VG2DczOWoTCR12z+tMBoN9U=",
- "requires": {
- "inherits": "2.0.3"
- }
- },
- "lru-cache": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
- "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
- "dev": true,
- "requires": {
- "pseudomap": "1.0.2",
- "yallist": "2.1.2"
- }
- },
- "macaddress": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz",
- "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=",
- "dev": true
- },
- "make-dir": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz",
- "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==",
- "dev": true,
- "requires": {
- "pify": "3.0.0"
- },
- "dependencies": {
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "dev": true
- }
- }
- },
- "map-limit": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz",
- "integrity": "sha1-63lhAxwPDo0AG/LVb6toXViCLzg=",
- "requires": {
- "once": "1.3.3"
- }
- },
- "map-obj": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
- "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
- "dev": true
- },
- "map-stream": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
- "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=",
- "dev": true
- },
- "md5.js": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz",
- "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=",
- "dev": true,
- "requires": {
- "hash-base": "3.0.4",
- "inherits": "2.0.3"
- },
- "dependencies": {
- "hash-base": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
- "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
- "dev": true,
- "requires": {
- "inherits": "2.0.3",
- "safe-buffer": "5.1.1"
- }
- }
- }
- },
- "memory-pager": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.1.0.tgz",
- "integrity": "sha512-Mf9OHV/Y7h6YWDxTzX/b4ZZ4oh9NSXblQL8dtPCOomOtZciEHxePR78+uHFLLlsk01A6jVHhHsQZZ/WcIPpnzg=="
- },
- "meow": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
- "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
- "dev": true,
- "requires": {
- "camelcase-keys": "2.1.0",
- "decamelize": "1.2.0",
- "loud-rejection": "1.6.0",
- "map-obj": "1.0.1",
- "minimist": "1.2.0",
- "normalize-package-data": "2.4.0",
- "object-assign": "4.0.1",
- "read-pkg-up": "1.0.1",
- "redent": "1.0.0",
- "trim-newlines": "1.0.0"
- }
- },
- "merkle-tree-stream": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/merkle-tree-stream/-/merkle-tree-stream-3.0.3.tgz",
- "integrity": "sha1-+KBkdg0355eK1fn208EZpJT1cIE=",
- "requires": {
- "flat-tree": "1.6.0",
- "readable-stream": "2.3.3"
- }
- },
- "microcomponent": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/microcomponent/-/microcomponent-3.1.6.tgz",
- "integrity": "sha1-C9QBOlcEJCHscGbU2OYKx2v99Ms=",
- "requires": {
- "juliangruber-shallow-equal": "1.0.4",
- "nanocomponent": "5.0.3",
- "nanologger": "1.3.1",
- "nanomorph": "5.1.3"
- },
- "dependencies": {
- "nanocomponent": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/nanocomponent/-/nanocomponent-5.0.3.tgz",
- "integrity": "sha1-pc5nwmCBh7PTfsTqjHyiN1agLcc=",
- "requires": {
- "on-load": "3.3.1"
- }
- }
- }
- },
- "micromatch": {
- "version": "2.3.11",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
- "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
- "requires": {
- "arr-diff": "2.0.0",
- "array-unique": "0.2.1",
- "braces": "1.8.5",
- "expand-brackets": "0.1.5",
- "extglob": "0.3.2",
- "filename-regex": "2.0.1",
- "is-extglob": "1.0.0",
- "is-glob": "2.0.1",
- "kind-of": "3.2.2",
- "normalize-path": "2.1.1",
- "object.omit": "2.0.1",
- "parse-glob": "3.0.4",
- "regex-cache": "0.4.4"
- }
- },
- "miller-rabin": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
- "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
- "dev": true,
- "requires": {
- "bn.js": "4.11.8",
- "brorand": "1.1.0"
- }
- },
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
- },
- "mime-db": {
- "version": "1.30.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
- "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE="
- },
- "mime-types": {
- "version": "2.1.17",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
- "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
- "requires": {
- "mime-db": "1.30.0"
- }
- },
- "mimic-fn": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz",
- "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=",
- "dev": true
- },
- "min-document": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
- "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
- "requires": {
- "dom-walk": "0.1.1"
- }
- },
- "minimalistic-assert": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
- "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=",
- "dev": true
- },
- "minimalistic-crypto-utils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
- "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
- "dev": true
- },
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "requires": {
- "brace-expansion": "1.1.8"
- }
- },
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
- },
- "minipass": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.1.tgz",
- "integrity": "sha512-u1aUllxPJUI07cOqzR7reGmQxmCqlH88uIIsf6XZFEWgw7gXKpJdR+5R9Y3KEDmWYkdIz9wXZs3C0jOPxejk/Q==",
- "dev": true,
- "requires": {
- "yallist": "3.0.2"
- },
- "dependencies": {
- "yallist": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz",
- "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=",
- "dev": true
- }
- }
- },
- "mirror-folder": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/mirror-folder/-/mirror-folder-2.1.1.tgz",
- "integrity": "sha1-GtO3d7OeQDzCe/UghsI+Qe9MlgQ=",
- "requires": {
- "fd-read-stream": "1.1.0",
- "recursive-watch": "1.1.2"
- }
- },
- "mkdirp": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
- "requires": {
- "minimist": "0.0.8"
- },
- "dependencies": {
- "minimist": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
- }
- }
- },
- "module-deps": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz",
- "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=",
- "dev": true,
- "requires": {
- "JSONStream": "1.3.1",
- "browser-resolve": "1.11.2",
- "cached-path-relative": "1.0.1",
- "concat-stream": "1.5.2",
- "defined": "1.0.0",
- "detective": "4.6.0",
- "duplexer2": "0.1.4",
- "inherits": "2.0.3",
- "parents": "1.0.1",
- "readable-stream": "2.3.3",
- "resolve": "1.5.0",
- "stream-combiner2": "1.1.1",
- "subarg": "1.0.0",
- "through2": "2.0.3",
- "xtend": "4.0.1"
- },
- "dependencies": {
- "concat-stream": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
- "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=",
- "dev": true,
- "requires": {
- "inherits": "2.0.3",
- "readable-stream": "2.0.6",
- "typedarray": "0.0.6"
- },
- "dependencies": {
- "readable-stream": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
- "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
- "dev": true,
- "requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "string_decoder": "0.10.31",
- "util-deprecate": "1.0.2"
- }
- }
- }
- },
- "duplexer2": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
- "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
- "dev": true,
- "requires": {
- "readable-stream": "2.3.3"
- }
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "dev": true
- }
- }
- },
- "ms": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.3.tgz",
- "integrity": "sha1-cIFVpeROM/X9D8U+gdDUCpG+H/8="
- },
- "multi-random-access": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/multi-random-access/-/multi-random-access-2.1.1.tgz",
- "integrity": "sha1-ZGLxsgQQnMxkRgFlARCoKEQ9ZuI=",
- "requires": {
- "abstract-random-access": "1.1.2",
- "inherits": "2.0.3",
- "sorted-array-functions": "1.0.0"
- }
- },
- "multicast-dns": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.1.tgz",
- "integrity": "sha512-uV3/ckdsffHx9IrGQrx613mturMdMqQ06WTq+C09NsStJ9iNG6RcUWgPKs1Rfjy+idZT6tfQoXEusGNnEZhT3w==",
- "requires": {
- "dns-packet": "1.2.2",
- "thunky": "0.1.0"
- },
- "dependencies": {
- "thunky": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz",
- "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4="
- }
- }
- },
- "multicb": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/multicb/-/multicb-1.2.2.tgz",
- "integrity": "sha512-PZM4dhYFmCF6uZGWpEmoPMUqJBywS9IcAgybT2GmSpYI1BvGvoWSdbio+ik+q/YD2vodhvslESWIS3NnkKYdqQ=="
- },
- "multidat": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/multidat/-/multidat-5.1.0.tgz",
- "integrity": "sha512-SGRyp4I8ElZv/lbdo9t6tyii13Xd14uPtRglIw3ptFgsBNKq6PH3OYmV9MMfv3LjsjiLimjaO8ZIdQ07wbIv5w==",
- "requires": {
- "dat-node": "3.5.5",
- "explain-error": "1.0.4",
- "fast-json-parse": "1.0.3",
- "multidrive": "5.2.0",
- "xtend": "4.0.1"
- }
- },
- "multidrive": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/multidrive/-/multidrive-5.2.0.tgz",
- "integrity": "sha512-3uEuwoR/O0xxI2Do7AewEdk/uOTABcYmBAqAj1YbuEUx8O07v1PNPy7sKEWV4gr70GC+pJNwhIob95ULBfgitg==",
- "requires": {
- "debug": "2.6.9",
- "map-limit": "0.0.1"
- }
- },
- "multiline": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/multiline/-/multiline-1.0.2.tgz",
- "integrity": "sha1-abHyX/B00oKJBPJE3dBrfZbvbJM=",
- "dev": true,
- "requires": {
- "strip-indent": "1.0.1"
- }
- },
- "mute-stream": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
- "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
- "dev": true
- },
- "mutexify": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.2.0.tgz",
- "integrity": "sha512-oprzxd2zhfrJqEuB98qc1dRMMonClBQ57UPDjnbcrah4orEMTq1jq3+AcdFe5ePzdbJXI7zmdhfftIdMnhYFoQ=="
- },
- "nan": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz",
- "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=",
- "optional": true
- },
- "nanoassert": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-1.1.0.tgz",
- "integrity": "sha1-TzFS4JVA/eKMdvRLGbvNHVpCR40="
- },
- "nanobus": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/nanobus/-/nanobus-4.3.1.tgz",
- "integrity": "sha512-fCWDlth+flNm4qfodfsQxLedeYzKWqURFd00sm6HcAkJtP12s6y9SrNWuu2+vXRUxiTIbBU+9TQjla8cKLyJqA==",
- "requires": {
- "nanotiming": "6.1.5",
- "remove-array-items": "1.0.0"
- }
- },
- "nanocomponent": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/nanocomponent/-/nanocomponent-2.0.3.tgz",
- "integrity": "sha1-yupqOad9l+T3HanCo15hl8cLcus=",
- "requires": {
- "observe-resize": "1.1.3",
- "on-intersect": "1.1.0",
- "on-load": "3.3.1",
- "polite-element": "1.0.5",
- "yo-yoify": "3.7.3"
- }
- },
- "nanohref": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/nanohref/-/nanohref-3.0.1.tgz",
- "integrity": "sha512-YfDhNcglFDIISfKVnXHovDaaglTauD2ThidaTZuyV6NE0lQMvGs5UfSoa1GvX6Nd9p2TfFeYzzc+TtjH+htu+Q=="
- },
- "nanolocation": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/nanolocation/-/nanolocation-1.0.0.tgz",
- "integrity": "sha1-FbXHrwWJXRqfIfDRNkldmURQaGs="
- },
- "nanologger": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/nanologger/-/nanologger-1.3.1.tgz",
- "integrity": "sha1-2oFniH8h7l8tiBv+Wwdc62xZXKk=",
- "requires": {
- "xtend": "4.0.1"
- }
- },
- "nanomorph": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/nanomorph/-/nanomorph-5.1.3.tgz",
- "integrity": "sha512-VydkKjFWU/DAO0R10awFASRNXQKHrZUMdMIiNcdmWm+IhuifuPOw/dDtpiQ1cNROF8f3ATPrcKRVarEayQJOqA==",
- "requires": {
- "nanoassert": "1.1.0"
- }
- },
- "nanoquery": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/nanoquery/-/nanoquery-1.2.0.tgz",
- "integrity": "sha512-o4JC1cLsNSu8gLMLeALBFPzILMPyc3HltXT0727vncM29N1qB802oQyza3lQRjI9iylRRK0X5jjTjiPZyCw0gg==",
- "requires": {
- "nanoassert": "1.1.0"
- }
- },
- "nanoraf": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/nanoraf/-/nanoraf-3.0.1.tgz",
- "integrity": "sha1-q5+5wle5rcxx2CmCy1jY+jUDdko="
- },
- "nanorouter": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/nanorouter/-/nanorouter-2.1.0.tgz",
- "integrity": "sha1-T8r5YgOgCJjaiRiLG/9aj8Bu9P8=",
- "requires": {
- "wayfarer": "6.6.2"
- }
- },
- "nanotiming": {
- "version": "6.1.5",
- "resolved": "https://registry.npmjs.org/nanotiming/-/nanotiming-6.1.5.tgz",
- "integrity": "sha512-cMM+WkW9wqx3Kr3vKAhWKXN5vK4eElE8ooKEoLsfmxByCV+zob0fNJexG07sBa8vpFYAgXRlLhxcZ3b5k9yWrw=="
- },
- "nets": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/nets/-/nets-3.2.0.tgz",
- "integrity": "sha1-1RH7q3rxHaAT8huX7pF0fTOFLTg=",
- "requires": {
- "request": "2.83.0",
- "xhr": "2.4.0"
- }
- },
- "network-address": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/network-address/-/network-address-1.1.2.tgz",
- "integrity": "sha1-Sqe/1D8D8LgclwKxPWqFjdsybz4="
- },
- "node-emoji": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz",
- "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==",
- "dev": true,
- "requires": {
- "lodash.toarray": "4.4.0"
- }
- },
- "node-gyp-build": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.2.2.tgz",
- "integrity": "sha512-t8W/0UqFGl1c+5ORA3NoT3npU+PxWBL9iPhY7ZySSTszodj3RWexmu8niayWBE0v+0DLARvOXsjaAvfmSEQOyQ==",
- "optional": true
- },
- "node-status-codes": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz",
- "integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8=",
- "dev": true
- },
- "nodemon": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.12.1.tgz",
- "integrity": "sha1-mWpW3EnZ8Wu/G3ik3gjxNjSzh40=",
- "dev": true,
- "requires": {
- "chokidar": "1.7.0",
- "debug": "2.6.9",
- "es6-promise": "3.3.1",
- "ignore-by-default": "1.0.1",
- "lodash.defaults": "3.1.2",
- "minimatch": "3.0.4",
- "ps-tree": "1.1.0",
- "touch": "3.1.0",
- "undefsafe": "0.0.3",
- "update-notifier": "2.3.0"
- },
- "dependencies": {
- "ansi-align": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
- "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
- "dev": true,
- "requires": {
- "string-width": "2.1.1"
- }
- },
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": true
- },
- "ansi-styles": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
- "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
- "dev": true,
- "requires": {
- "color-convert": "1.9.1"
- }
- },
- "boxen": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.2.2.tgz",
- "integrity": "sha1-Px1AMsMP/qnUsCwyLq8up0HcvOU=",
- "dev": true,
- "requires": {
- "ansi-align": "2.0.0",
- "camelcase": "4.1.0",
- "chalk": "2.3.0",
- "cli-boxes": "1.0.0",
- "string-width": "2.1.1",
- "term-size": "1.2.0",
- "widest-line": "1.0.0"
- }
- },
- "camelcase": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
- "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
- "dev": true
- },
- "chalk": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
- "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
- "dev": true,
- "requires": {
- "ansi-styles": "3.2.0",
- "escape-string-regexp": "1.0.5",
- "supports-color": "4.5.0"
- }
- },
- "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"
- }
- },
- "configstore": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz",
- "integrity": "sha512-5oNkD/L++l0O6xGXxb1EWS7SivtjfGQlRyxJsYgE0Z495/L81e2h4/d3r969hoPXuFItzNOKMtsXgYG4c7dYvw==",
- "dev": true,
- "requires": {
- "dot-prop": "4.2.0",
- "graceful-fs": "4.1.11",
- "make-dir": "1.1.0",
- "unique-string": "1.0.0",
- "write-file-atomic": "2.3.0",
- "xdg-basedir": "3.0.0"
- }
- },
- "dot-prop": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
- "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
- "dev": true,
- "requires": {
- "is-obj": "1.0.1"
- }
- },
- "es6-promise": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz",
- "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=",
- "dev": true
- },
- "got": {
- "version": "6.7.1",
- "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz",
- "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
- "dev": true,
- "requires": {
- "create-error-class": "3.0.2",
- "duplexer3": "0.1.4",
- "get-stream": "3.0.0",
- "is-redirect": "1.0.0",
- "is-retry-allowed": "1.1.0",
- "is-stream": "1.1.0",
- "lowercase-keys": "1.0.0",
- "safe-buffer": "5.1.1",
- "timed-out": "4.0.1",
- "unzip-response": "2.0.1",
- "url-parse-lax": "1.0.0"
- }
- },
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "dev": true
- },
- "latest-version": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz",
- "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=",
- "dev": true,
- "requires": {
- "package-json": "4.0.1"
- }
- },
- "package-json": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz",
- "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
- "dev": true,
- "requires": {
- "got": "6.7.1",
- "registry-auth-token": "3.3.1",
- "registry-url": "3.1.0",
- "semver": "5.4.1"
- }
- },
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "dev": true,
- "requires": {
- "is-fullwidth-code-point": "2.0.0",
- "strip-ansi": "4.0.0"
- }
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
- "requires": {
- "ansi-regex": "3.0.0"
- }
- },
- "supports-color": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
- "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
- "dev": true,
- "requires": {
- "has-flag": "2.0.0"
- }
- },
- "timed-out": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
- "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
- "dev": true
- },
- "unzip-response": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz",
- "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=",
- "dev": true
- },
- "update-notifier": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.3.0.tgz",
- "integrity": "sha1-TognpruRUUCrCTVZ1wFOPruDdFE=",
- "dev": true,
- "requires": {
- "boxen": "1.2.2",
- "chalk": "2.3.0",
- "configstore": "3.1.1",
- "import-lazy": "2.1.0",
- "is-installed-globally": "0.1.0",
- "is-npm": "1.0.0",
- "latest-version": "3.1.0",
- "semver-diff": "2.1.0",
- "xdg-basedir": "3.0.0"
- }
- },
- "write-file-atomic": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz",
- "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "imurmurhash": "0.1.4",
- "signal-exit": "3.0.2"
- }
- },
- "xdg-basedir": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
- "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
- "dev": true
- }
- }
- },
- "nopt": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
- "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
- "dev": true,
- "requires": {
- "abbrev": "1.1.1"
- }
- },
- "normalize-package-data": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
- "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
- "dev": true,
- "requires": {
- "hosted-git-info": "2.5.0",
- "is-builtin-module": "1.0.0",
- "semver": "5.4.1",
- "validate-npm-package-license": "3.0.1"
- }
- },
- "normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
- "requires": {
- "remove-trailing-separator": "1.1.0"
- }
- },
- "npm-install-package": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/npm-install-package/-/npm-install-package-2.1.0.tgz",
- "integrity": "sha1-1+/jz816sAYUuJbqUxGdyaslkSU=",
- "dev": true
- },
- "npm-run-path": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
- "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
- "dev": true,
- "requires": {
- "path-key": "2.0.1"
- }
- },
- "nugget": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz",
- "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=",
- "dev": true,
- "requires": {
- "debug": "2.6.9",
- "minimist": "1.2.0",
- "pretty-bytes": "1.0.4",
- "progress-stream": "1.2.0",
- "request": "2.83.0",
- "single-line-log": "1.1.2",
- "throttleit": "0.0.2"
- }
- },
- "number-is-nan": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
- "dev": true
- },
- "nyc": {
- "version": "11.4.1",
- "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.4.1.tgz",
- "integrity": "sha512-5eCZpvaksFVjP2rt1r60cfXmt3MUtsQDw8bAzNqNEr4WLvUMLgiVENMf/B9bE9YAX0mGVvaGA3v9IS9ekNqB1Q==",
- "dev": true,
- "requires": {
- "archy": "1.0.0",
- "arrify": "1.0.1",
- "caching-transform": "1.0.1",
- "convert-source-map": "1.5.1",
- "debug-log": "1.0.1",
- "default-require-extensions": "1.0.0",
- "find-cache-dir": "0.1.1",
- "find-up": "2.1.0",
- "foreground-child": "1.5.6",
- "glob": "7.1.2",
- "istanbul-lib-coverage": "1.1.1",
- "istanbul-lib-hook": "1.1.0",
- "istanbul-lib-instrument": "1.9.1",
- "istanbul-lib-report": "1.1.2",
- "istanbul-lib-source-maps": "1.2.2",
- "istanbul-reports": "1.1.3",
- "md5-hex": "1.3.0",
- "merge-source-map": "1.0.4",
- "micromatch": "2.3.11",
- "mkdirp": "0.5.1",
- "resolve-from": "2.0.0",
- "rimraf": "2.6.2",
- "signal-exit": "3.0.2",
- "spawn-wrap": "1.4.2",
- "test-exclude": "4.1.1",
- "yargs": "10.0.3",
- "yargs-parser": "8.0.0"
- },
- "dependencies": {
- "align-text": {
- "version": "0.1.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "kind-of": "3.2.2",
- "longest": "1.0.1",
- "repeat-string": "1.6.1"
- }
- },
- "amdefine": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true
- },
- "ansi-regex": {
- "version": "2.1.1",
- "bundled": true,
- "dev": true
- },
- "ansi-styles": {
- "version": "2.2.1",
- "bundled": true,
- "dev": true
- },
- "append-transform": {
- "version": "0.4.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "default-require-extensions": "1.0.0"
- }
- },
- "archy": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "arr-diff": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "arr-flatten": "1.1.0"
- }
- },
- "arr-flatten": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true
- },
- "array-unique": {
- "version": "0.2.1",
- "bundled": true,
- "dev": true
- },
- "arrify": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true
- },
- "async": {
- "version": "1.5.2",
- "bundled": true,
- "dev": true
- },
- "babel-code-frame": {
- "version": "6.26.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "chalk": "1.1.3",
- "esutils": "2.0.2",
- "js-tokens": "3.0.2"
- }
- },
- "babel-generator": {
- "version": "6.26.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "babel-messages": "6.23.0",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "detect-indent": "4.0.0",
- "jsesc": "1.3.0",
- "lodash": "4.17.4",
- "source-map": "0.5.7",
- "trim-right": "1.0.1"
- }
- },
- "babel-messages": {
- "version": "6.23.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-runtime": {
- "version": "6.26.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "core-js": "2.5.3",
- "regenerator-runtime": "0.11.1"
- }
- },
- "babel-template": {
- "version": "6.26.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0",
- "babylon": "6.18.0",
- "lodash": "4.17.4"
- }
- },
- "babel-traverse": {
- "version": "6.26.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "babel-code-frame": "6.26.0",
- "babel-messages": "6.23.0",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "babylon": "6.18.0",
- "debug": "2.6.9",
- "globals": "9.18.0",
- "invariant": "2.2.2",
- "lodash": "4.17.4"
- }
- },
- "babel-types": {
- "version": "6.26.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "esutils": "2.0.2",
- "lodash": "4.17.4",
- "to-fast-properties": "1.0.3"
- }
- },
- "babylon": {
- "version": "6.18.0",
- "bundled": true,
- "dev": true
- },
- "balanced-match": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "brace-expansion": {
- "version": "1.1.8",
- "bundled": true,
- "dev": true,
- "requires": {
- "balanced-match": "1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "braces": {
- "version": "1.8.5",
- "bundled": true,
- "dev": true,
- "requires": {
- "expand-range": "1.8.2",
- "preserve": "0.2.0",
- "repeat-element": "1.1.2"
- }
- },
- "builtin-modules": {
- "version": "1.1.1",
- "bundled": true,
- "dev": true
- },
- "caching-transform": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "md5-hex": "1.3.0",
- "mkdirp": "0.5.1",
- "write-file-atomic": "1.3.4"
- }
- },
- "camelcase": {
- "version": "1.2.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "center-align": {
- "version": "0.1.3",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "align-text": "0.1.4",
- "lazy-cache": "1.0.4"
- }
- },
- "chalk": {
- "version": "1.1.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "ansi-styles": "2.2.1",
- "escape-string-regexp": "1.0.5",
- "has-ansi": "2.0.0",
- "strip-ansi": "3.0.1",
- "supports-color": "2.0.0"
- }
- },
- "cliui": {
- "version": "2.1.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "center-align": "0.1.3",
- "right-align": "0.1.3",
- "wordwrap": "0.0.2"
- },
- "dependencies": {
- "wordwrap": {
- "version": "0.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- }
- }
- },
- "code-point-at": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true
- },
- "commondir": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true
- },
- "concat-map": {
- "version": "0.0.1",
- "bundled": true,
- "dev": true
- },
- "convert-source-map": {
- "version": "1.5.1",
- "bundled": true,
- "dev": true
- },
- "core-js": {
- "version": "2.5.3",
- "bundled": true,
- "dev": true
- },
- "cross-spawn": {
- "version": "4.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "lru-cache": "4.1.1",
- "which": "1.3.0"
- }
- },
- "debug": {
- "version": "2.6.9",
- "bundled": true,
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "debug-log": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true
- },
- "decamelize": {
- "version": "1.2.0",
- "bundled": true,
- "dev": true
- },
- "default-require-extensions": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "strip-bom": "2.0.0"
- }
- },
- "detect-indent": {
- "version": "4.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "repeating": "2.0.1"
- }
- },
- "error-ex": {
- "version": "1.3.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "is-arrayish": "0.2.1"
- }
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "bundled": true,
- "dev": true
- },
- "esutils": {
- "version": "2.0.2",
- "bundled": true,
- "dev": true
- },
- "execa": {
- "version": "0.7.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "cross-spawn": "5.1.0",
- "get-stream": "3.0.0",
- "is-stream": "1.1.0",
- "npm-run-path": "2.0.2",
- "p-finally": "1.0.0",
- "signal-exit": "3.0.2",
- "strip-eof": "1.0.0"
- },
- "dependencies": {
- "cross-spawn": {
- "version": "5.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "lru-cache": "4.1.1",
- "shebang-command": "1.2.0",
- "which": "1.3.0"
- }
- }
- }
- },
- "expand-brackets": {
- "version": "0.1.5",
- "bundled": true,
- "dev": true,
- "requires": {
- "is-posix-bracket": "0.1.1"
- }
- },
- "expand-range": {
- "version": "1.8.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "fill-range": "2.2.3"
- }
- },
- "extglob": {
- "version": "0.3.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "is-extglob": "1.0.0"
- }
- },
- "filename-regex": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true
- },
- "fill-range": {
- "version": "2.2.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "is-number": "2.1.0",
- "isobject": "2.1.0",
- "randomatic": "1.1.7",
- "repeat-element": "1.1.2",
- "repeat-string": "1.6.1"
- }
- },
- "find-cache-dir": {
- "version": "0.1.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "commondir": "1.0.1",
- "mkdirp": "0.5.1",
- "pkg-dir": "1.0.0"
- }
- },
- "find-up": {
- "version": "2.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "locate-path": "2.0.0"
- }
- },
- "for-in": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true
- },
- "for-own": {
- "version": "0.1.5",
- "bundled": true,
- "dev": true,
- "requires": {
- "for-in": "1.0.2"
- }
- },
- "foreground-child": {
- "version": "1.5.6",
- "bundled": true,
- "dev": true,
- "requires": {
- "cross-spawn": "4.0.2",
- "signal-exit": "3.0.2"
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "get-caller-file": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true
- },
- "get-stream": {
- "version": "3.0.0",
- "bundled": true,
- "dev": true
- },
- "glob": {
- "version": "7.1.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
- }
- },
- "glob-base": {
- "version": "0.3.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "glob-parent": "2.0.0",
- "is-glob": "2.0.1"
- }
- },
- "glob-parent": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "is-glob": "2.0.1"
- }
- },
- "globals": {
- "version": "9.18.0",
- "bundled": true,
- "dev": true
- },
- "graceful-fs": {
- "version": "4.1.11",
- "bundled": true,
- "dev": true
- },
- "handlebars": {
- "version": "4.0.11",
- "bundled": true,
- "dev": true,
- "requires": {
- "async": "1.5.2",
- "optimist": "0.6.1",
- "source-map": "0.4.4",
- "uglify-js": "2.8.29"
- },
- "dependencies": {
- "source-map": {
- "version": "0.4.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "amdefine": "1.0.1"
- }
- }
- }
- },
- "has-ansi": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "ansi-regex": "2.1.1"
- }
- },
- "has-flag": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "hosted-git-info": {
- "version": "2.5.0",
- "bundled": true,
- "dev": true
- },
- "imurmurhash": {
- "version": "0.1.4",
- "bundled": true,
- "dev": true
- },
- "inflight": {
- "version": "1.0.6",
- "bundled": true,
- "dev": true,
- "requires": {
- "once": "1.4.0",
- "wrappy": "1.0.2"
- }
- },
- "inherits": {
- "version": "2.0.3",
- "bundled": true,
- "dev": true
- },
- "invariant": {
- "version": "2.2.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "loose-envify": "1.3.1"
- }
- },
- "invert-kv": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "is-arrayish": {
- "version": "0.2.1",
- "bundled": true,
- "dev": true
- },
- "is-buffer": {
- "version": "1.1.6",
- "bundled": true,
- "dev": true
- },
- "is-builtin-module": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "builtin-modules": "1.1.1"
- }
- },
- "is-dotfile": {
- "version": "1.0.3",
- "bundled": true,
- "dev": true
- },
- "is-equal-shallow": {
- "version": "0.1.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "is-primitive": "2.0.0"
- }
- },
- "is-extendable": {
- "version": "0.1.1",
- "bundled": true,
- "dev": true
- },
- "is-extglob": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "is-finite": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "number-is-nan": "1.0.1"
- }
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "number-is-nan": "1.0.1"
- }
- },
- "is-glob": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "is-extglob": "1.0.0"
- }
- },
- "is-number": {
- "version": "2.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "kind-of": "3.2.2"
- }
- },
- "is-posix-bracket": {
- "version": "0.1.1",
- "bundled": true,
- "dev": true
- },
- "is-primitive": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true
- },
- "is-stream": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true
- },
- "is-utf8": {
- "version": "0.2.1",
- "bundled": true,
- "dev": true
- },
- "isarray": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "isexe": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true
- },
- "isobject": {
- "version": "2.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "isarray": "1.0.0"
- }
- },
- "istanbul-lib-coverage": {
- "version": "1.1.1",
- "bundled": true,
- "dev": true
- },
- "istanbul-lib-hook": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "append-transform": "0.4.0"
- }
- },
- "istanbul-lib-instrument": {
- "version": "1.9.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "babel-generator": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0",
- "babylon": "6.18.0",
- "istanbul-lib-coverage": "1.1.1",
- "semver": "5.4.1"
- }
- },
- "istanbul-lib-report": {
- "version": "1.1.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "istanbul-lib-coverage": "1.1.1",
- "mkdirp": "0.5.1",
- "path-parse": "1.0.5",
- "supports-color": "3.2.3"
- },
- "dependencies": {
- "supports-color": {
- "version": "3.2.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "has-flag": "1.0.0"
- }
- }
- }
- },
- "istanbul-lib-source-maps": {
- "version": "1.2.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "debug": "3.1.0",
- "istanbul-lib-coverage": "1.1.1",
- "mkdirp": "0.5.1",
- "rimraf": "2.6.2",
- "source-map": "0.5.7"
- },
- "dependencies": {
- "debug": {
- "version": "3.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- }
- }
- },
- "istanbul-reports": {
- "version": "1.1.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "handlebars": "4.0.11"
- }
- },
- "js-tokens": {
- "version": "3.0.2",
- "bundled": true,
- "dev": true
- },
- "jsesc": {
- "version": "1.3.0",
- "bundled": true,
- "dev": true
- },
- "kind-of": {
- "version": "3.2.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "is-buffer": "1.1.6"
- }
- },
- "lazy-cache": {
- "version": "1.0.4",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "lcid": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "invert-kv": "1.0.0"
- }
- },
- "load-json-file": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "parse-json": "2.2.0",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1",
- "strip-bom": "2.0.0"
- }
- },
- "locate-path": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "p-locate": "2.0.0",
- "path-exists": "3.0.0"
- },
- "dependencies": {
- "path-exists": {
- "version": "3.0.0",
- "bundled": true,
- "dev": true
- }
- }
- },
- "lodash": {
- "version": "4.17.4",
- "bundled": true,
- "dev": true
- },
- "longest": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true
- },
- "loose-envify": {
- "version": "1.3.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "js-tokens": "3.0.2"
- }
- },
- "lru-cache": {
- "version": "4.1.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "pseudomap": "1.0.2",
- "yallist": "2.1.2"
- }
- },
- "md5-hex": {
- "version": "1.3.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "md5-o-matic": "0.1.1"
- }
- },
- "md5-o-matic": {
- "version": "0.1.1",
- "bundled": true,
- "dev": true
- },
- "mem": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "mimic-fn": "1.1.0"
- }
- },
- "merge-source-map": {
- "version": "1.0.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "source-map": "0.5.7"
- }
- },
- "micromatch": {
- "version": "2.3.11",
- "bundled": true,
- "dev": true,
- "requires": {
- "arr-diff": "2.0.0",
- "array-unique": "0.2.1",
- "braces": "1.8.5",
- "expand-brackets": "0.1.5",
- "extglob": "0.3.2",
- "filename-regex": "2.0.1",
- "is-extglob": "1.0.0",
- "is-glob": "2.0.1",
- "kind-of": "3.2.2",
- "normalize-path": "2.1.1",
- "object.omit": "2.0.1",
- "parse-glob": "3.0.4",
- "regex-cache": "0.4.4"
- }
- },
- "mimic-fn": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true
- },
- "minimatch": {
- "version": "3.0.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "brace-expansion": "1.1.8"
- }
- },
- "minimist": {
- "version": "0.0.8",
- "bundled": true,
- "dev": true
- },
- "mkdirp": {
- "version": "0.5.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "minimist": "0.0.8"
- }
- },
- "ms": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true
- },
- "normalize-package-data": {
- "version": "2.4.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "hosted-git-info": "2.5.0",
- "is-builtin-module": "1.0.0",
- "semver": "5.4.1",
- "validate-npm-package-license": "3.0.1"
- }
- },
- "normalize-path": {
- "version": "2.1.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "remove-trailing-separator": "1.1.0"
- }
- },
- "npm-run-path": {
- "version": "2.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "path-key": "2.0.1"
- }
- },
- "number-is-nan": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true
- },
- "object-assign": {
- "version": "4.1.1",
- "bundled": true,
- "dev": true
- },
- "object.omit": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "for-own": "0.1.5",
- "is-extendable": "0.1.1"
- }
- },
- "once": {
- "version": "1.4.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "wrappy": "1.0.2"
- }
- },
- "optimist": {
- "version": "0.6.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "minimist": "0.0.8",
- "wordwrap": "0.0.3"
- }
- },
- "os-homedir": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true
- },
- "os-locale": {
- "version": "2.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "execa": "0.7.0",
- "lcid": "1.0.0",
- "mem": "1.1.0"
- }
- },
- "p-finally": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "p-limit": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true
- },
- "p-locate": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "p-limit": "1.1.0"
- }
- },
- "parse-glob": {
- "version": "3.0.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "glob-base": "0.3.0",
- "is-dotfile": "1.0.3",
- "is-extglob": "1.0.0",
- "is-glob": "2.0.1"
- }
- },
- "parse-json": {
- "version": "2.2.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "error-ex": "1.3.1"
- }
- },
- "path-exists": {
- "version": "2.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "pinkie-promise": "2.0.1"
- }
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true
- },
- "path-key": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true
- },
- "path-parse": {
- "version": "1.0.5",
- "bundled": true,
- "dev": true
- },
- "path-type": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1"
- }
- },
- "pify": {
- "version": "2.3.0",
- "bundled": true,
- "dev": true
- },
- "pinkie": {
- "version": "2.0.4",
- "bundled": true,
- "dev": true
- },
- "pinkie-promise": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "pinkie": "2.0.4"
- }
- },
- "pkg-dir": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "find-up": "1.1.2"
- },
- "dependencies": {
- "find-up": {
- "version": "1.1.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "path-exists": "2.1.0",
- "pinkie-promise": "2.0.1"
- }
- }
- }
- },
- "preserve": {
- "version": "0.2.0",
- "bundled": true,
- "dev": true
- },
- "pseudomap": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true
- },
- "randomatic": {
- "version": "1.1.7",
- "bundled": true,
- "dev": true,
- "requires": {
- "is-number": "3.0.0",
- "kind-of": "4.0.0"
- },
- "dependencies": {
- "is-number": {
- "version": "3.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "kind-of": "3.2.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "is-buffer": "1.1.6"
- }
- }
- }
- },
- "kind-of": {
- "version": "4.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "is-buffer": "1.1.6"
- }
- }
- }
- },
- "read-pkg": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "load-json-file": "1.1.0",
- "normalize-package-data": "2.4.0",
- "path-type": "1.1.0"
- }
- },
- "read-pkg-up": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "find-up": "1.1.2",
- "read-pkg": "1.1.0"
- },
- "dependencies": {
- "find-up": {
- "version": "1.1.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "path-exists": "2.1.0",
- "pinkie-promise": "2.0.1"
- }
- }
- }
- },
- "regenerator-runtime": {
- "version": "0.11.1",
- "bundled": true,
- "dev": true
- },
- "regex-cache": {
- "version": "0.4.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "is-equal-shallow": "0.1.3"
- }
- },
- "remove-trailing-separator": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true
- },
- "repeat-element": {
- "version": "1.1.2",
- "bundled": true,
- "dev": true
- },
- "repeat-string": {
- "version": "1.6.1",
- "bundled": true,
- "dev": true
- },
- "repeating": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "is-finite": "1.0.2"
- }
- },
- "require-directory": {
- "version": "2.1.1",
- "bundled": true,
- "dev": true
- },
- "require-main-filename": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true
- },
- "resolve-from": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true
- },
- "right-align": {
- "version": "0.1.3",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "align-text": "0.1.4"
- }
- },
- "rimraf": {
- "version": "2.6.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "glob": "7.1.2"
- }
- },
- "semver": {
- "version": "5.4.1",
- "bundled": true,
- "dev": true
- },
- "set-blocking": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true
- },
- "shebang-command": {
- "version": "1.2.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "shebang-regex": "1.0.0"
- }
- },
- "shebang-regex": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "signal-exit": {
- "version": "3.0.2",
- "bundled": true,
- "dev": true
- },
- "slide": {
- "version": "1.1.6",
- "bundled": true,
- "dev": true
- },
- "source-map": {
- "version": "0.5.7",
- "bundled": true,
- "dev": true
- },
- "spawn-wrap": {
- "version": "1.4.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "foreground-child": "1.5.6",
- "mkdirp": "0.5.1",
- "os-homedir": "1.0.2",
- "rimraf": "2.6.2",
- "signal-exit": "3.0.2",
- "which": "1.3.0"
- }
- },
- "spdx-correct": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "spdx-license-ids": "1.2.2"
- }
- },
- "spdx-expression-parse": {
- "version": "1.0.4",
- "bundled": true,
- "dev": true
- },
- "spdx-license-ids": {
- "version": "1.2.2",
- "bundled": true,
- "dev": true
- },
- "string-width": {
- "version": "2.1.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "is-fullwidth-code-point": "2.0.0",
- "strip-ansi": "4.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "3.0.0",
- "bundled": true,
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true
- },
- "strip-ansi": {
- "version": "4.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "ansi-regex": "3.0.0"
- }
- }
- }
- },
- "strip-ansi": {
- "version": "3.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "ansi-regex": "2.1.1"
- }
- },
- "strip-bom": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "is-utf8": "0.2.1"
- }
- },
- "strip-eof": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
- "supports-color": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true
- },
- "test-exclude": {
- "version": "4.1.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "arrify": "1.0.1",
- "micromatch": "2.3.11",
- "object-assign": "4.1.1",
- "read-pkg-up": "1.0.1",
- "require-main-filename": "1.0.1"
- }
- },
- "to-fast-properties": {
- "version": "1.0.3",
- "bundled": true,
- "dev": true
- },
- "trim-right": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true
- },
- "uglify-js": {
- "version": "2.8.29",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "source-map": "0.5.7",
- "uglify-to-browserify": "1.0.2",
- "yargs": "3.10.0"
- },
- "dependencies": {
- "yargs": {
- "version": "3.10.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "camelcase": "1.2.1",
- "cliui": "2.1.0",
- "decamelize": "1.2.0",
- "window-size": "0.1.0"
- }
- }
- }
- },
- "uglify-to-browserify": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "validate-npm-package-license": {
- "version": "3.0.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "spdx-correct": "1.0.2",
- "spdx-expression-parse": "1.0.4"
- }
- },
- "which": {
- "version": "1.3.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "isexe": "2.0.0"
- }
- },
- "which-module": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true
- },
- "window-size": {
- "version": "0.1.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "wordwrap": {
- "version": "0.0.3",
- "bundled": true,
- "dev": true
- },
- "wrap-ansi": {
- "version": "2.1.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1"
- },
- "dependencies": {
- "string-width": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
- }
- }
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true
- },
- "write-file-atomic": {
- "version": "1.3.4",
- "bundled": true,
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "imurmurhash": "0.1.4",
- "slide": "1.1.6"
- }
- },
- "y18n": {
- "version": "3.2.1",
- "bundled": true,
- "dev": true
- },
- "yallist": {
- "version": "2.1.2",
- "bundled": true,
- "dev": true
- },
- "yargs": {
- "version": "10.0.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "cliui": "3.2.0",
- "decamelize": "1.2.0",
- "find-up": "2.1.0",
- "get-caller-file": "1.0.2",
- "os-locale": "2.1.0",
- "require-directory": "2.1.1",
- "require-main-filename": "1.0.1",
- "set-blocking": "2.0.0",
- "string-width": "2.1.1",
- "which-module": "2.0.0",
- "y18n": "3.2.1",
- "yargs-parser": "8.0.0"
- },
- "dependencies": {
- "cliui": {
- "version": "3.2.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "wrap-ansi": "2.1.0"
- },
- "dependencies": {
- "string-width": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
- }
- }
- }
- }
- }
- },
- "yargs-parser": {
- "version": "8.0.0",
- "bundled": true,
- "dev": true,
- "requires": {
- "camelcase": "4.1.0"
- },
- "dependencies": {
- "camelcase": {
- "version": "4.1.0",
- "bundled": true,
- "dev": true
- }
- }
- }
- }
- },
- "oauth-sign": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
- "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
- },
- "object-assign": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz",
- "integrity": "sha1-mVBEVsNZi1ytT8WcJuipuxB/4L0="
- },
- "object-inspect": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-0.4.0.tgz",
- "integrity": "sha1-9RV8EWwUVbJDsG7pdwM5LFrYn+w="
- },
- "object-keys": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
- "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0="
- },
- "object.omit": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
- "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
- "requires": {
- "for-own": "0.1.5",
- "is-extendable": "0.1.1"
- }
- },
- "observe-resize": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/observe-resize/-/observe-resize-1.1.3.tgz",
- "integrity": "sha1-k09PqDbdesjXhSlxpiwZBnSZohw=",
- "requires": {
- "insert-styles": "1.2.1",
- "is-dom": "1.0.9"
- }
- },
- "on-idle": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/on-idle/-/on-idle-3.1.4.tgz",
- "integrity": "sha512-oWzEGcC2/Ar9aaZ2HdEfVrHyvkaeUCxL0P2f2a6emibez2mANaPM/tEO3Bosl4uyvLeyPOie1+7AHrh9aFez6w==",
- "requires": {
- "nanoassert": "1.1.0"
- }
- },
- "on-intersect": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/on-intersect/-/on-intersect-1.1.0.tgz",
- "integrity": "sha1-jYPf+XD8DScvyQg6U3c+gxY/9zc=",
- "requires": {
- "global": "4.3.2",
- "is-dom": "1.0.9"
- }
- },
- "on-load": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/on-load/-/on-load-3.3.1.tgz",
- "integrity": "sha1-izj1t46ITuRXwFFpmdMB2BSw/qA=",
- "requires": {
- "global": "4.3.2",
- "nanoassert": "1.1.0"
- }
- },
- "once": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
- "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
- "requires": {
- "wrappy": "1.0.2"
- }
- },
- "onetime": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
- "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
- "dev": true
- },
- "opener": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.3.tgz",
- "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=",
- "dev": true
- },
- "optimist": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
- "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
- "dev": true,
- "requires": {
- "minimist": "0.0.10",
- "wordwrap": "0.0.3"
- },
- "dependencies": {
- "minimist": {
- "version": "0.0.10",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
- "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
- "dev": true
- },
- "wordwrap": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
- "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
- "dev": true
- }
- }
- },
- "optionator": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
- "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
- "requires": {
- "deep-is": "0.1.3",
- "fast-levenshtein": "2.0.6",
- "levn": "0.3.0",
- "prelude-ls": "1.1.2",
- "type-check": "0.3.2",
- "wordwrap": "1.0.0"
- }
- },
- "os-browserify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz",
- "integrity": "sha1-ScoCk+CxlZCl9d4Qx/JlphfY/lQ=",
- "dev": true
- },
- "os-homedir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
- },
- "os-locale": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
- "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
- "dev": true,
- "requires": {
- "lcid": "1.0.0"
- }
- },
- "os-tmpdir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
- "dev": true
- },
- "osenv": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
- "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=",
- "dev": true,
- "requires": {
- "os-homedir": "1.0.2",
- "os-tmpdir": "1.0.2"
- }
- },
- "outpipe": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz",
- "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=",
- "dev": true,
- "requires": {
- "shell-quote": "1.6.1"
- }
- },
- "own-or": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/own-or/-/own-or-1.0.0.tgz",
- "integrity": "sha1-Tod/vtqaLsgAD7wLyuOWRe6L+Nw=",
- "dev": true
- },
- "own-or-env": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/own-or-env/-/own-or-env-1.0.0.tgz",
- "integrity": "sha1-nvkg/IHi5jz1nUEQElg2jPT8pPs=",
- "dev": true
- },
- "p-finally": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
- "dev": true
- },
- "package-json": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/package-json/-/package-json-2.4.0.tgz",
- "integrity": "sha1-DRW9Z9HLvduyyiIv8u24a8sxqLs=",
- "dev": true,
- "requires": {
- "got": "5.7.1",
- "registry-auth-token": "3.3.1",
- "registry-url": "3.1.0",
- "semver": "5.4.1"
- }
- },
- "pako": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
- "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=",
- "dev": true
- },
- "parents": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz",
- "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=",
- "dev": true,
- "requires": {
- "path-platform": "0.11.15"
- }
- },
- "parse-asn1": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz",
- "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=",
- "dev": true,
- "requires": {
- "asn1.js": "4.9.2",
- "browserify-aes": "1.1.1",
- "create-hash": "1.1.3",
- "evp_bytestokey": "1.0.3",
- "pbkdf2": "3.0.14"
- }
- },
- "parse-color": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz",
- "integrity": "sha1-e3SLlag/A/FqlPU15S1/PZRlhhk=",
- "dev": true,
- "requires": {
- "color-convert": "0.5.3"
- }
- },
- "parse-glob": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
- "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
- "requires": {
- "glob-base": "0.3.0",
- "is-dotfile": "1.0.3",
- "is-extglob": "1.0.0",
- "is-glob": "2.0.1"
- }
- },
- "parse-headers": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.1.tgz",
- "integrity": "sha1-aug6eqJanZtwCswoaYzR8e1+lTY=",
- "requires": {
- "for-each": "0.3.2",
- "trim": "0.0.1"
- }
- },
- "parse-json": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
- "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
- "dev": true,
- "requires": {
- "error-ex": "1.3.1"
- }
- },
- "parse-ms": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz",
- "integrity": "sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0=",
- "dev": true
- },
- "path-browserify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
- "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=",
- "dev": true
- },
- "path-exists": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
- "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
- "dev": true,
- "requires": {
- "pinkie-promise": "2.0.1"
- }
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
- },
- "path-is-inside": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
- "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
- "dev": true
- },
- "path-key": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
- "dev": true
- },
- "path-parse": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
- "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME="
- },
- "path-platform": {
- "version": "0.11.15",
- "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz",
- "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=",
- "dev": true
- },
- "path-type": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
- "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1"
- }
- },
- "pause-stream": {
- "version": "0.0.11",
- "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
- "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
- "dev": true,
- "requires": {
- "through": "2.3.8"
- }
- },
- "pbkdf2": {
- "version": "3.0.14",
- "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz",
- "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==",
- "dev": true,
- "requires": {
- "create-hash": "1.1.3",
- "create-hmac": "1.1.6",
- "ripemd160": "2.0.1",
- "safe-buffer": "5.1.1",
- "sha.js": "2.4.9"
- }
- },
- "pelo": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/pelo/-/pelo-0.0.4.tgz",
- "integrity": "sha1-yjDI1ZpmnTtDptFMKGgcohtgSw8="
- },
- "pend": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
- "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
- "dev": true
- },
- "performance-now": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
- },
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "dev": true
- },
- "pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
- "dev": true
- },
- "pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
- "dev": true,
- "requires": {
- "pinkie": "2.0.4"
- }
- },
- "pkg-config": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/pkg-config/-/pkg-config-1.1.1.tgz",
- "integrity": "sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q=",
- "dev": true,
- "requires": {
- "debug-log": "1.0.1",
- "find-root": "1.1.0",
- "xtend": "4.0.1"
- }
- },
- "plist": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/plist/-/plist-2.1.0.tgz",
- "integrity": "sha1-V8zbeggh3yGDEhejytVOPhRqECU=",
- "dev": true,
- "requires": {
- "base64-js": "1.2.0",
- "xmlbuilder": "8.2.2",
- "xmldom": "0.1.27"
- },
- "dependencies": {
- "base64-js": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz",
- "integrity": "sha1-o5mS1yNYSBGYK+XikLtqU9hnAPE=",
- "dev": true
- }
- }
- },
- "plucker": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/plucker/-/plucker-0.0.0.tgz",
- "integrity": "sha1-L/ok4Dqyz/pOda3B33DyViPEXQk="
- },
- "plur": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/plur/-/plur-1.0.0.tgz",
- "integrity": "sha1-24XGgU9eXlo7Se/CjWBP7GKXUVY=",
- "dev": true
- },
- "pluralize": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz",
- "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=",
- "dev": true
- },
- "polite-element": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/polite-element/-/polite-element-1.0.5.tgz",
- "integrity": "sha1-HdpDV7Jui6exagmI6RAyAfkT7lQ=",
- "requires": {
- "global": "4.3.2",
- "nanomorph": "4.0.5"
- },
- "dependencies": {
- "nanomorph": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/nanomorph/-/nanomorph-4.0.5.tgz",
- "integrity": "sha1-fifMXiigXfDCePU7pDDyU/OsP6w="
- }
- }
- },
- "postcss": {
- "version": "5.2.18",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
- "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
- "requires": {
- "chalk": "1.1.3",
- "js-base64": "2.4.0",
- "source-map": "0.5.7",
- "supports-color": "3.2.3"
- }
- },
- "postcss-nested": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-1.0.1.tgz",
- "integrity": "sha1-kfKPTm4j1WckGsFUVYoM+rTMDY8=",
- "dev": true,
- "requires": {
- "postcss": "5.2.18"
- }
- },
- "postcss-prefix": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/postcss-prefix/-/postcss-prefix-2.1.1.tgz",
- "integrity": "sha512-S1G40iScgg/V/P6MPqPH0+B0KDc5LpN2zoEERQGywftZ3IbIESJDsz984n3ZPDFycT2NZ1nGJx/eC6oJX8xKTg==",
- "requires": {
- "postcss": "5.2.18",
- "postcss-selector-parser": "1.3.3"
- }
- },
- "postcss-selector-parser": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-1.3.3.tgz",
- "integrity": "sha1-0u4Z33pk+O8hwacchvfUg1yIwoE=",
- "requires": {
- "flatten": "1.0.2",
- "indexes-of": "1.0.1",
- "uniq": "1.0.1"
- }
- },
- "prelude-ls": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
- },
- "prepend-http": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
- "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
- "dev": true
- },
- "preserve": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
- "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
- },
- "prettier-bytes": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/prettier-bytes/-/prettier-bytes-1.0.4.tgz",
- "integrity": "sha1-mUsCqkb2mcULYle1+qp/4lV+YtY="
- },
- "pretty-bytes": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz",
- "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=",
- "dev": true,
- "requires": {
- "get-stdin": "4.0.1",
- "meow": "3.7.0"
- }
- },
- "pretty-hash": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/pretty-hash/-/pretty-hash-1.0.1.tgz",
- "integrity": "sha1-FuBXkYje9WvbVliSvNBaXWUySAc="
- },
- "pretty-ms": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-2.1.0.tgz",
- "integrity": "sha1-QlfCVt8/sLRR1q/6qwIYhBJpgdw=",
- "dev": true,
- "requires": {
- "is-finite": "1.0.2",
- "parse-ms": "1.0.1",
- "plur": "1.0.0"
- }
- },
- "process": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz",
- "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8="
- },
- "process-nextick-args": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
- "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
- },
- "progress": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
- "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
- "dev": true
- },
- "progress-stream": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz",
- "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=",
- "dev": true,
- "requires": {
- "speedometer": "0.1.4",
- "through2": "0.2.3"
- },
- "dependencies": {
- "object-keys": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz",
- "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=",
- "dev": true
- },
- "readable-stream": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
- "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
- "dev": true,
- "requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "0.0.1",
- "string_decoder": "0.10.31"
- }
- },
- "speedometer": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz",
- "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=",
- "dev": true
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "dev": true
- },
- "through2": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz",
- "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=",
- "dev": true,
- "requires": {
- "readable-stream": "1.1.14",
- "xtend": "2.1.2"
- }
- },
- "xtend": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
- "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=",
- "dev": true,
- "requires": {
- "object-keys": "0.4.0"
- }
- }
- }
- },
- "protocol-buffers": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/protocol-buffers/-/protocol-buffers-3.2.1.tgz",
- "integrity": "sha1-NyWOF+JKCC8G67F3MekoUdHHaIk=",
- "requires": {
- "brfs": "1.4.3",
- "generate-function": "2.0.0",
- "generate-object-property": "1.2.0",
- "protocol-buffers-schema": "3.3.2",
- "signed-varint": "2.0.1",
- "varint": "5.0.0"
- },
- "dependencies": {
- "varint": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.0.tgz",
- "integrity": "sha1-2Ca4n3SQcy+rwMDtaT7Uddyynr8="
- }
- }
- },
- "protocol-buffers-schema": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.3.2.tgz",
- "integrity": "sha512-Xdayp8sB/mU+sUV4G7ws8xtYMGdQnxbeIfLjyO9TZZRJdztBGhlmbI5x1qcY4TG5hBkIKGnc28i7nXxaugu88w=="
- },
- "ps-tree": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz",
- "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=",
- "dev": true,
- "requires": {
- "event-stream": "3.3.4"
- }
- },
- "pseudomap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
- "dev": true
- },
- "public-encrypt": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
- "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=",
- "dev": true,
- "requires": {
- "bn.js": "4.11.8",
- "browserify-rsa": "4.0.1",
- "create-hash": "1.1.3",
- "parse-asn1": "5.1.0",
- "randombytes": "2.0.5"
- }
- },
- "pump": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz",
- "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==",
- "requires": {
- "end-of-stream": "1.4.0",
- "once": "1.3.3"
- }
- },
- "punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
- },
- "q": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
- "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
- "dev": true
- },
- "qs": {
- "version": "6.5.1",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
- "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
- },
- "querystring": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
- "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
- "dev": true
- },
- "querystring-es3": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
- "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
- "dev": true
- },
- "quote-stream": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz",
- "integrity": "sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=",
- "requires": {
- "buffer-equal": "0.0.1",
- "minimist": "1.2.0",
- "through2": "2.0.3"
- }
- },
- "random-access-file": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/random-access-file/-/random-access-file-1.8.1.tgz",
- "integrity": "sha512-+Uhk0Of+dWHWjpbL2hizcwSV1UomcN3S0iUGV6BTZ2Js1BP9jHx3E5CT7y0eLbqTQNkVi4iehkHmia7Mdqa47w==",
- "requires": {
- "buffer-alloc-unsafe": "1.0.0",
- "debug": "2.6.9",
- "inherits": "2.0.3",
- "mkdirp": "0.5.1",
- "thunky": "1.0.2"
- }
- },
- "random-access-memory": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/random-access-memory/-/random-access-memory-2.4.0.tgz",
- "integrity": "sha1-cvPYZbS1WiWYeUc+L7LeNWnGnuI=",
- "requires": {
- "process-nextick-args": "1.0.7"
- }
- },
- "randomatic": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
- "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==",
- "requires": {
- "is-number": "3.0.0",
- "kind-of": "4.0.0"
- },
- "dependencies": {
- "is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "requires": {
- "kind-of": "3.2.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "1.1.6"
- }
- }
- }
- },
- "kind-of": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
- "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
- "requires": {
- "is-buffer": "1.1.6"
- }
- }
- }
- },
- "randombytes": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz",
- "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==",
- "requires": {
- "safe-buffer": "5.1.1"
- }
- },
- "randomfill": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz",
- "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==",
- "dev": true,
- "requires": {
- "randombytes": "2.0.5",
- "safe-buffer": "5.1.1"
- }
- },
- "range-parser": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
- "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
- },
- "rc": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz",
- "integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=",
- "dev": true,
- "requires": {
- "deep-extend": "0.4.2",
- "ini": "1.3.5",
- "minimist": "1.2.0",
- "strip-json-comments": "2.0.1"
- }
- },
- "read-all-stream": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
- "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=",
- "dev": true,
- "requires": {
- "pinkie-promise": "2.0.1",
- "readable-stream": "2.3.3"
- }
- },
- "read-installed": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz",
- "integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=",
- "dev": true,
- "requires": {
- "debuglog": "1.0.1",
- "graceful-fs": "4.1.11",
- "read-package-json": "2.0.12",
- "readdir-scoped-modules": "1.0.2",
- "semver": "5.4.1",
- "slide": "1.1.6",
- "util-extend": "1.0.3"
- }
- },
- "read-only-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz",
- "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=",
- "dev": true,
- "requires": {
- "readable-stream": "2.3.3"
- }
- },
- "read-package-json": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.12.tgz",
- "integrity": "sha512-m7/I0+tP6D34EVvSlzCtuVA4D/dHL6OpLcn2e4XVP5X57pCKGUy1JjRSBVKHWpB+vUU91sL85h84qX0MdXzBSw==",
- "dev": true,
- "requires": {
- "glob": "7.1.2",
- "graceful-fs": "4.1.11",
- "json-parse-better-errors": "1.0.1",
- "normalize-package-data": "2.4.0",
- "slash": "1.0.0"
- }
- },
- "read-pkg": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
- "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
- "dev": true,
- "requires": {
- "load-json-file": "1.1.0",
- "normalize-package-data": "2.4.0",
- "path-type": "1.1.0"
- }
- },
- "read-pkg-up": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
- "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
- "dev": true,
- "requires": {
- "find-up": "1.1.2",
- "read-pkg": "1.1.0"
- }
- },
- "readable-stream": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
- "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
- "requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "safe-buffer": "5.1.1",
- "string_decoder": "1.0.3",
- "util-deprecate": "1.0.2"
- },
- "dependencies": {
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- }
- }
- },
- "readdir-scoped-modules": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz",
- "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=",
- "dev": true,
- "requires": {
- "debuglog": "1.0.1",
- "dezalgo": "1.0.3",
- "graceful-fs": "4.1.11",
- "once": "1.3.3"
- }
- },
- "readdirp": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz",
- "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "minimatch": "3.0.4",
- "readable-stream": "2.3.3",
- "set-immediate-shim": "1.0.1"
- }
- },
- "readline2": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
- "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=",
- "dev": true,
- "requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "mute-stream": "0.0.5"
- },
- "dependencies": {
- "mute-stream": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz",
- "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=",
- "dev": true
- }
- }
- },
- "recursive-watch": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/recursive-watch/-/recursive-watch-1.1.2.tgz",
- "integrity": "sha1-kS4tYqg8iziNKIxDQ0lfJHvEP44=",
- "requires": {
- "ttl": "1.3.1"
- }
- },
- "redent": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
- "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
- "dev": true,
- "requires": {
- "indent-string": "2.1.0",
- "strip-indent": "1.0.1"
- }
- },
- "regenerator-runtime": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
- "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
- "dev": true
- },
- "regex-cache": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
- "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
- "requires": {
- "is-equal-shallow": "0.1.3"
- }
- },
- "registry-auth-token": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.1.tgz",
- "integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=",
- "dev": true,
- "requires": {
- "rc": "1.2.2",
- "safe-buffer": "5.1.1"
- }
- },
- "registry-url": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
- "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
- "dev": true,
- "requires": {
- "rc": "1.2.2"
- }
- },
- "remove-array-items": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/remove-array-items/-/remove-array-items-1.0.0.tgz",
- "integrity": "sha1-B79CyzMvTPboXq2DteToltIyayE="
- },
- "remove-trailing-separator": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
- "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
- },
- "repeat-element": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
- "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo="
- },
- "repeat-string": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
- },
- "repeating": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
- "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
- "dev": true,
- "requires": {
- "is-finite": "1.0.2"
- }
- },
- "request": {
- "version": "2.83.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz",
- "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==",
- "requires": {
- "aws-sign2": "0.7.0",
- "aws4": "1.6.0",
- "caseless": "0.12.0",
- "combined-stream": "1.0.5",
- "extend": "3.0.1",
- "forever-agent": "0.6.1",
- "form-data": "2.3.1",
- "har-validator": "5.0.3",
- "hawk": "6.0.2",
- "http-signature": "1.2.0",
- "is-typedarray": "1.0.0",
- "isstream": "0.1.2",
- "json-stringify-safe": "5.0.1",
- "mime-types": "2.1.17",
- "oauth-sign": "0.8.2",
- "performance-now": "2.1.0",
- "qs": "6.5.1",
- "safe-buffer": "5.1.1",
- "stringstream": "0.0.5",
- "tough-cookie": "2.3.3",
- "tunnel-agent": "0.6.0",
- "uuid": "3.1.0"
- }
- },
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
- "dev": true
- },
- "require-main-filename": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
- "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
- "dev": true
- },
- "require-uncached": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
- "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
- "dev": true,
- "requires": {
- "caller-path": "0.1.0",
- "resolve-from": "1.0.1"
- }
- },
- "resolve": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz",
- "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==",
- "requires": {
- "path-parse": "1.0.5"
- }
- },
- "resolve-from": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
- "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
- "dev": true
- },
- "resolve-url": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
- "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
- "dev": true
- },
- "restore-cursor": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
- "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
- "dev": true,
- "requires": {
- "exit-hook": "1.1.1",
- "onetime": "1.1.0"
- }
- },
- "rgb2hex": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/rgb2hex/-/rgb2hex-0.1.0.tgz",
- "integrity": "sha1-zNVfhgrgxcTqN1BLlY5ELY0SMls=",
- "dev": true
- },
- "rimraf": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
- "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
- "requires": {
- "glob": "7.1.2"
- }
- },
- "ripemd160": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz",
- "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=",
- "dev": true,
- "requires": {
- "hash-base": "2.0.2",
- "inherits": "2.0.3"
- }
- },
- "run-async": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
- "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
- "dev": true,
- "requires": {
- "is-promise": "2.1.0"
- }
- },
- "run-parallel": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.6.tgz",
- "integrity": "sha1-KQA8miFj4B4tLfyQV18sbB1hoDk=",
- "dev": true
- },
- "run-waterfall": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/run-waterfall/-/run-waterfall-1.1.3.tgz",
- "integrity": "sha1-2W/A9TYby9vUOFKdyKS0L8Z2ESM="
- },
- "rusha": {
- "version": "0.8.7",
- "resolved": "https://registry.npmjs.org/rusha/-/rusha-0.8.7.tgz",
- "integrity": "sha1-MGc7fpX6/g6+H+JN1tlf1gX5Tt4="
- },
- "rx-lite": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
- "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
- "dev": true
- },
- "rx-lite-aggregates": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
- "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
- "dev": true,
- "requires": {
- "rx-lite": "4.0.8"
- }
- },
- "safe-buffer": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
- "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
- },
- "sanitize-filename": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.1.tgz",
- "integrity": "sha1-YS2hyWRz+gLczaktzVtKsWSmdyo=",
- "dev": true,
- "requires": {
- "truncate-utf8-bytes": "1.0.2"
- }
- },
- "scroll-to-anchor": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/scroll-to-anchor/-/scroll-to-anchor-1.1.0.tgz",
- "integrity": "sha1-yZuNLl2VBWdSeHyngJWrdbUgs/0="
- },
- "semver": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
- "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg=="
- },
- "semver-diff": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
- "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
- "dev": true,
- "requires": {
- "semver": "5.4.1"
- }
- },
- "set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
- "dev": true
- },
- "set-immediate-shim": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
- "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
- "dev": true
- },
- "sha.js": {
- "version": "2.4.9",
- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz",
- "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==",
- "dev": true,
- "requires": {
- "inherits": "2.0.3",
- "safe-buffer": "5.1.1"
- }
- },
- "shallow-copy": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz",
- "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA="
- },
- "shasum": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz",
- "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=",
- "dev": true,
- "requires": {
- "json-stable-stringify": "0.0.1",
- "sha.js": "2.4.9"
- }
- },
- "shebang-command": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
- "dev": true,
- "requires": {
- "shebang-regex": "1.0.0"
- }
- },
- "shebang-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
- "dev": true
- },
- "sheetify": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/sheetify/-/sheetify-6.2.0.tgz",
- "integrity": "sha512-Weod7zQDyD43hpazr5ANsYsNvbcbo/4oK3aSPIaCY05LOasRQMX9hwM+0++dOmMSVq6e/+jyB1lKusO3v038cQ==",
- "requires": {
- "falafel": "2.1.0",
- "insert-css": "2.0.0",
- "map-limit": "0.0.1",
- "postcss": "5.2.18",
- "postcss-prefix": "2.1.1",
- "resolve": "1.5.0",
- "stack-trace": "0.0.9",
- "static-eval": "1.1.1",
- "style-resolve": "1.0.1",
- "through2": "2.0.3",
- "xtend": "4.0.1"
- }
- },
- "sheetify-nested": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/sheetify-nested/-/sheetify-nested-1.0.2.tgz",
- "integrity": "sha1-aJVml4A5H+nVmv2emtkXzc3q0gQ=",
- "dev": true,
- "requires": {
- "postcss": "5.2.18",
- "postcss-nested": "1.0.1"
- }
- },
- "shell-quote": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz",
- "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=",
- "dev": true,
- "requires": {
- "array-filter": "0.0.1",
- "array-map": "0.0.0",
- "array-reduce": "0.0.0",
- "jsonify": "0.0.0"
- }
- },
- "shelljs": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.6.1.tgz",
- "integrity": "sha1-7GIRvtGSBEIIj+D3Cyg3Iy7SyKg=",
- "dev": true
- },
- "signal-exit": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
- "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
- "dev": true
- },
- "signed-varint": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/signed-varint/-/signed-varint-2.0.1.tgz",
- "integrity": "sha1-UKmYnafJjCxh2tEZvJdHDvhSgSk=",
- "requires": {
- "varint": "5.0.0"
- },
- "dependencies": {
- "varint": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.0.tgz",
- "integrity": "sha1-2Ca4n3SQcy+rwMDtaT7Uddyynr8="
- }
- }
- },
- "simple-sha1": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/simple-sha1/-/simple-sha1-2.1.0.tgz",
- "integrity": "sha1-lCe7lv8SY8wQqEFM7dUaGLkZ6LM=",
- "requires": {
- "rusha": "0.8.7"
- }
- },
- "single-line-log": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz",
- "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=",
- "dev": true,
- "requires": {
- "string-width": "1.0.2"
- }
- },
- "siphash24": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/siphash24/-/siphash24-1.1.0.tgz",
- "integrity": "sha512-nDCEEZKb6m7OxxG/5wwaLy2R+KpyLcOnGjTJlFXG+14FUmpDD1FCFV/MjsYATjShsqPkSkl1BVevI0TCehdsTw==",
- "requires": {
- "nanoassert": "1.1.0"
- }
- },
- "slash": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
- "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
- "dev": true
- },
- "slice-ansi": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
- "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
- "dev": true
- },
- "slide": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz",
- "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=",
- "dev": true
- },
- "sntp": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz",
- "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==",
- "requires": {
- "hoek": "4.2.0"
- }
- },
- "sodium-javascript": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/sodium-javascript/-/sodium-javascript-0.5.4.tgz",
- "integrity": "sha512-YEQtgtDpDlKYGinla+F1HfZ1e3CtYCnsvJ5n2llbFFXmMDeIac4auOIkxuvt7dN9G0/ELBDAEgbzHKbEoP6GWw==",
- "requires": {
- "blake2b": "2.1.2",
- "nanoassert": "1.1.0",
- "siphash24": "1.1.0",
- "xsalsa20": "1.0.2"
- }
- },
- "sodium-native": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/sodium-native/-/sodium-native-2.0.1.tgz",
- "integrity": "sha512-3xi2SbjeEUivlH4zPaBIaxQtpAInq4T3zX9kaeDquzgXRv96QLbTR0AcJeqXj3JeKdhwJ6YiLS3XFrnMp4tc+w==",
- "optional": true,
- "requires": {
- "nan": "2.8.0",
- "node-gyp-build": "3.2.2"
- }
- },
- "sodium-universal": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/sodium-universal/-/sodium-universal-2.0.0.tgz",
- "integrity": "sha512-csdVyakzHJRyCevY4aZC2Eacda8paf+4nmRGF2N7KxCLKY2Ajn72JsExaQlJQ2BiXJncp44p3T+b80cU+2TTsg==",
- "requires": {
- "sodium-javascript": "0.5.4",
- "sodium-native": "2.0.1"
- }
- },
- "sorted-array-functions": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.0.0.tgz",
- "integrity": "sha1-wLVU2ecJr/y+VtNMGyUUGX/Tgnk="
- },
- "sorted-indexof": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/sorted-indexof/-/sorted-indexof-1.0.0.tgz",
- "integrity": "sha1-F8dC/3zxh+L1mhXfm4HxemLOCJk="
- },
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
- },
- "source-map-resolve": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz",
- "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=",
- "dev": true,
- "requires": {
- "atob": "1.1.3",
- "resolve-url": "0.2.1",
- "source-map-url": "0.3.0",
- "urix": "0.1.0"
- }
- },
- "source-map-support": {
- "version": "0.4.18",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
- "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
- "requires": {
- "source-map": "0.5.7"
- }
- },
- "source-map-url": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.3.0.tgz",
- "integrity": "sha1-fsrxO1e80J2opAxdJp2zN5nUqvk=",
- "dev": true
- },
- "sparse-bitfield": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
- "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
- "requires": {
- "memory-pager": "1.1.0"
- }
- },
- "spdx-correct": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
- "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
- "dev": true,
- "requires": {
- "spdx-license-ids": "1.2.2"
- }
- },
- "spdx-expression-parse": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
- "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
- "dev": true
- },
- "spdx-license-ids": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
- "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
- "dev": true
- },
- "spectron": {
- "version": "3.8.0",
- "resolved": "https://registry.npmjs.org/spectron/-/spectron-3.8.0.tgz",
- "integrity": "sha512-fQ7gFp6UuEaONjXFLifLeIUI022pOsm3b+NFAm696r2umUkSZ9IbnEgHwrvBX+pJ3QUDyCEs5bPHUieYU7FvaQ==",
- "dev": true,
- "requires": {
- "dev-null": "0.1.1",
- "electron-chromedriver": "1.8.0",
- "request": "2.83.0",
- "split": "1.0.1",
- "webdriverio": "4.10.1"
- },
- "dependencies": {
- "split": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
- "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
- "dev": true,
- "requires": {
- "through": "2.3.8"
- }
- }
- }
- },
- "speedometer": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-1.0.0.tgz",
- "integrity": "sha1-zWccsGdSwivKM3Di8zREC+T8YuI="
- },
- "split": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
- "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=",
- "dev": true,
- "requires": {
- "through": "2.3.8"
- }
- },
- "spok": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/spok/-/spok-0.7.0.tgz",
- "integrity": "sha1-nbF/aOMz71PkeFxUB1/Vx+M9rz0=",
- "dev": true
- },
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
- },
- "sshpk": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
- "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
- "requires": {
- "asn1": "0.2.3",
- "assert-plus": "1.0.0",
- "bcrypt-pbkdf": "1.0.1",
- "dashdash": "1.14.1",
- "ecc-jsbn": "0.1.1",
- "getpass": "0.1.7",
- "jsbn": "0.1.1",
- "tweetnacl": "0.14.5"
- }
- },
- "stack-trace": {
- "version": "0.0.9",
- "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz",
- "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU="
- },
- "stack-utils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz",
- "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=",
- "dev": true
- },
- "standard": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/standard/-/standard-7.1.2.tgz",
- "integrity": "sha1-QBZu7sJAUGXRpPDj8VurxuJ0YH4=",
- "dev": true,
- "requires": {
- "eslint": "2.10.2",
- "eslint-config-standard": "5.3.1",
- "eslint-config-standard-jsx": "1.2.1",
- "eslint-plugin-promise": "1.3.2",
- "eslint-plugin-react": "5.2.2",
- "eslint-plugin-standard": "1.3.3",
- "standard-engine": "4.1.3"
- }
- },
- "standard-engine": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/standard-engine/-/standard-engine-4.1.3.tgz",
- "integrity": "sha1-ejGq1U8D2fOTVfQzic4GlPQJQVU=",
- "dev": true,
- "requires": {
- "defaults": "1.0.3",
- "deglob": "1.1.2",
- "find-root": "1.1.0",
- "get-stdin": "5.0.1",
- "minimist": "1.2.0",
- "multiline": "1.0.2",
- "pkg-config": "1.1.1",
- "xtend": "4.0.1"
- },
- "dependencies": {
- "get-stdin": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz",
- "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=",
- "dev": true
- }
- }
- },
- "state-copy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/state-copy/-/state-copy-1.0.2.tgz",
- "integrity": "sha512-BnV/HsPmbkcU1CjsFCBPeI0McWdRpCvTlJ/X/4Od3P6q8B6z0dikSZpgmg2aDpm6LXCdze7m8ZIUO3aZ+ETjlg==",
- "requires": {
- "copy-text-to-clipboard": "1.0.3",
- "fast-safe-stringify": "1.2.1"
- }
- },
- "static-eval": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-1.1.1.tgz",
- "integrity": "sha1-yoEwIQNUzxPZpyK8fpI3eEV7sZI=",
- "requires": {
- "escodegen": "1.9.0"
- }
- },
- "static-module": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/static-module/-/static-module-1.5.0.tgz",
- "integrity": "sha1-J9qYg8QajNCSNvhC8MHrxu32PYY=",
- "requires": {
- "concat-stream": "1.6.0",
- "duplexer2": "0.0.2",
- "escodegen": "1.3.3",
- "falafel": "2.1.0",
- "has": "1.0.1",
- "object-inspect": "0.4.0",
- "quote-stream": "0.0.0",
- "readable-stream": "1.0.34",
- "shallow-copy": "0.0.1",
- "static-eval": "0.2.4",
- "through2": "0.4.2"
- },
- "dependencies": {
- "escodegen": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.3.3.tgz",
- "integrity": "sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM=",
- "requires": {
- "esprima": "1.1.1",
- "estraverse": "1.5.1",
- "esutils": "1.0.0",
- "source-map": "0.1.43"
- }
- },
- "esprima": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.1.1.tgz",
- "integrity": "sha1-W28VR/TRAuZw4UDFCb5ncdautUk="
- },
- "estraverse": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz",
- "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E="
- },
- "esutils": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz",
- "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA="
- },
- "minimist": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
- },
- "object-keys": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz",
- "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY="
- },
- "quote-stream": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-0.0.0.tgz",
- "integrity": "sha1-zeKelMQJsW4Z3HCYuJtmWPlyHTs=",
- "requires": {
- "minimist": "0.0.8",
- "through2": "0.4.2"
- }
- },
- "readable-stream": {
- "version": "1.0.34",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
- "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
- "requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "0.0.1",
- "string_decoder": "0.10.31"
- }
- },
- "source-map": {
- "version": "0.1.43",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
- "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
- "optional": true,
- "requires": {
- "amdefine": "1.0.1"
- }
- },
- "static-eval": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-0.2.4.tgz",
- "integrity": "sha1-t9NNg4k3uWn5ZBygfUj47eJj6ns=",
- "requires": {
- "escodegen": "0.0.28"
- },
- "dependencies": {
- "escodegen": {
- "version": "0.0.28",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.28.tgz",
- "integrity": "sha1-Dk/xcV8yh3XWyrUaxEpAbNer/9M=",
- "requires": {
- "esprima": "1.0.4",
- "estraverse": "1.3.2",
- "source-map": "0.1.43"
- }
- },
- "esprima": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
- "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0="
- },
- "estraverse": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.3.2.tgz",
- "integrity": "sha1-N8K4k+8T1yPydth41g2FNRUqbEI="
- }
- }
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
- },
- "through2": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz",
- "integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=",
- "requires": {
- "readable-stream": "1.0.34",
- "xtend": "2.1.2"
- }
- },
- "xtend": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
- "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=",
- "requires": {
- "object-keys": "0.4.0"
- }
- }
- }
- },
- "stream-browserify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
- "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
- "dev": true,
- "requires": {
- "inherits": "2.0.3",
- "readable-stream": "2.3.3"
- }
- },
- "stream-collector": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/stream-collector/-/stream-collector-1.0.1.tgz",
- "integrity": "sha1-TU5V8XE1YSGyxfZVn5RHBaso2xU=",
- "requires": {
- "once": "1.3.3"
- }
- },
- "stream-combiner": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
- "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=",
- "dev": true,
- "requires": {
- "duplexer": "0.1.1"
- }
- },
- "stream-combiner2": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
- "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=",
- "dev": true,
- "requires": {
- "duplexer2": "0.1.4",
- "readable-stream": "2.3.3"
- },
- "dependencies": {
- "duplexer2": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
- "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
- "dev": true,
- "requires": {
- "readable-stream": "2.3.3"
- }
- }
- }
- },
- "stream-each": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz",
- "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==",
- "requires": {
- "end-of-stream": "1.4.0",
- "stream-shift": "1.0.0"
- }
- },
- "stream-http": {
- "version": "2.7.2",
- "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz",
- "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==",
- "dev": true,
- "requires": {
- "builtin-status-codes": "3.0.0",
- "inherits": "2.0.3",
- "readable-stream": "2.3.3",
- "to-arraybuffer": "1.0.1",
- "xtend": "4.0.1"
- }
- },
- "stream-shift": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
- "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI="
- },
- "stream-splicer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz",
- "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=",
- "dev": true,
- "requires": {
- "inherits": "2.0.3",
- "readable-stream": "2.3.3"
- }
- },
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "dev": true,
- "requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
- }
- },
- "string_decoder": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
- "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
- "requires": {
- "safe-buffer": "5.1.1"
- }
- },
- "stringstream": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
- "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "requires": {
- "ansi-regex": "2.1.1"
- }
- },
- "strip-bom": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
- "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
- "dev": true,
- "requires": {
- "is-utf8": "0.2.1"
- }
- },
- "strip-eof": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
- "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
- "dev": true
- },
- "strip-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
- "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
- "dev": true,
- "requires": {
- "get-stdin": "4.0.1"
- }
- },
- "strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
- "dev": true
- },
- "style-resolve": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/style-resolve/-/style-resolve-1.0.1.tgz",
- "integrity": "sha1-LSBnyUTV+39VPKdcTnlH30N5b64=",
- "requires": {
- "resolve": "1.5.0",
- "xtend": "4.0.1"
- }
- },
- "subarg": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
- "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=",
- "dev": true,
- "requires": {
- "minimist": "1.2.0"
- }
- },
- "sumchecker": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-1.3.1.tgz",
- "integrity": "sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0=",
- "dev": true,
- "requires": {
- "debug": "2.6.9",
- "es6-promise": "4.1.1"
- }
- },
- "supports-color": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
- "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
- "requires": {
- "has-flag": "1.0.0"
- }
- },
- "syntax-error": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.3.0.tgz",
- "integrity": "sha1-HtkmbE1AvnXcVb+bsct3Biu5bKE=",
- "dev": true,
- "requires": {
- "acorn": "4.0.13"
- },
- "dependencies": {
- "acorn": {
- "version": "4.0.13",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
- "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
- "dev": true
- }
- }
- },
- "table": {
- "version": "3.8.3",
- "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz",
- "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=",
- "dev": true,
- "requires": {
- "ajv": "4.11.8",
- "ajv-keywords": "1.5.1",
- "chalk": "1.1.3",
- "lodash": "4.17.4",
- "slice-ansi": "0.0.4",
- "string-width": "2.1.1"
- },
- "dependencies": {
- "ajv": {
- "version": "4.11.8",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
- "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
- "dev": true,
- "requires": {
- "co": "4.6.0",
- "json-stable-stringify": "1.0.1"
- }
- },
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "dev": true
- },
- "json-stable-stringify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
- "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
- "dev": true,
- "requires": {
- "jsonify": "0.0.0"
- }
- },
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "dev": true,
- "requires": {
- "is-fullwidth-code-point": "2.0.0",
- "strip-ansi": "4.0.0"
- }
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
- "requires": {
- "ansi-regex": "3.0.0"
- }
- }
- }
- },
- "tachyons": {
- "version": "4.9.0",
- "resolved": "https://registry.npmjs.org/tachyons/-/tachyons-4.9.0.tgz",
- "integrity": "sha512-bq40Dxl0Q9LFcFsoU4BmTlR4Y9Ta/9AClAhmKhBBdXN0isup9dXtYmFIJGYHz2EOVOf/gO/FONEH0BDa/iNYkg=="
- },
- "tap": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/tap/-/tap-11.0.1.tgz",
- "integrity": "sha512-YfrPp7FFxASC4tK4DEAKnnTxyg+J7T8kh8NiOmICNhiGvSojPAV34Ir4DDElFvnIiDEMzDP7233lw3WacFvIFQ==",
- "dev": true,
- "requires": {
- "bind-obj-methods": "1.0.0",
- "bluebird": "3.5.1",
- "clean-yaml-object": "0.1.0",
- "color-support": "1.1.3",
- "coveralls": "2.13.3",
- "foreground-child": "1.5.6",
- "fs-exists-cached": "1.0.0",
- "function-loop": "1.0.1",
- "glob": "7.1.2",
- "isexe": "2.0.0",
- "js-yaml": "3.10.0",
- "minipass": "2.2.1",
- "mkdirp": "0.5.1",
- "nyc": "11.4.1",
- "opener": "1.4.3",
- "os-homedir": "1.0.2",
- "own-or": "1.0.0",
- "own-or-env": "1.0.0",
- "rimraf": "2.6.2",
- "signal-exit": "3.0.2",
- "source-map-support": "0.4.18",
- "stack-utils": "1.0.1",
- "tap-mocha-reporter": "3.0.6",
- "tap-parser": "7.0.0",
- "tmatch": "3.1.0",
- "trivial-deferred": "1.0.1",
- "tsame": "1.1.2",
- "write-file-atomic": "2.3.0",
- "yapool": "1.0.0"
- },
- "dependencies": {
- "write-file-atomic": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz",
- "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "imurmurhash": "0.1.4",
- "signal-exit": "3.0.2"
- }
- }
- }
- },
- "tap-mocha-reporter": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-3.0.6.tgz",
- "integrity": "sha512-UImgw3etckDQCoqZIAIKcQDt0w1JLVs3v0yxLlmwvGLZl6MGFxF7JME5PElXjAoDklVDU42P3vVu5jgr37P4Yg==",
- "dev": true,
- "requires": {
- "color-support": "1.1.3",
- "debug": "2.6.9",
- "diff": "1.4.0",
- "escape-string-regexp": "1.0.5",
- "glob": "7.1.2",
- "js-yaml": "3.10.0",
- "readable-stream": "2.3.3",
- "tap-parser": "5.4.0",
- "unicode-length": "1.0.3"
- },
- "dependencies": {
- "tap-parser": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-5.4.0.tgz",
- "integrity": "sha512-BIsIaGqv7uTQgTW1KLTMNPSEQf4zDDPgYOBRdgOfuB+JFOLRBfEu6cLa/KvMvmqggu1FKXDfitjLwsq4827RvA==",
- "dev": true,
- "requires": {
- "events-to-array": "1.1.2",
- "js-yaml": "3.10.0",
- "readable-stream": "2.3.3"
- }
- }
- }
- },
- "tap-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-7.0.0.tgz",
- "integrity": "sha512-05G8/LrzqOOFvZhhAk32wsGiPZ1lfUrl+iV7+OkKgfofZxiceZWMHkKmow71YsyVQ8IvGBP2EjcIjE5gL4l5lA==",
- "dev": true,
- "requires": {
- "events-to-array": "1.1.2",
- "js-yaml": "3.10.0",
- "minipass": "2.2.1"
- }
- },
- "tar-stream": {
- "version": "1.5.5",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz",
- "integrity": "sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg==",
- "dev": true,
- "requires": {
- "bl": "1.2.1",
- "end-of-stream": "1.4.0",
- "readable-stream": "2.3.3",
- "xtend": "4.0.1"
- }
- },
- "tempfile": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz",
- "integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=",
- "dev": true,
- "requires": {
- "os-tmpdir": "1.0.2",
- "uuid": "2.0.3"
- },
- "dependencies": {
- "uuid": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
- "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=",
- "dev": true
- }
- }
- },
- "term-size": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
- "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
- "dev": true,
- "requires": {
- "execa": "0.7.0"
- },
- "dependencies": {
- "execa": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
- "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
- "dev": true,
- "requires": {
- "cross-spawn": "5.1.0",
- "get-stream": "3.0.0",
- "is-stream": "1.1.0",
- "npm-run-path": "2.0.2",
- "p-finally": "1.0.0",
- "signal-exit": "3.0.2",
- "strip-eof": "1.0.0"
- }
- }
- }
- },
- "text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
- "dev": true
- },
- "throttleit": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz",
- "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=",
- "dev": true
- },
- "through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
- "dev": true
- },
- "through2": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
- "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
- "requires": {
- "readable-stream": "2.3.3",
- "xtend": "4.0.1"
- }
- },
- "thunky": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz",
- "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E="
- },
- "timed-out": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz",
- "integrity": "sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc=",
- "dev": true
- },
- "timers-browserify": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
- "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=",
- "dev": true,
- "requires": {
- "process": "0.11.10"
- },
- "dependencies": {
- "process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
- "dev": true
- }
- }
- },
- "tmatch": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/tmatch/-/tmatch-3.1.0.tgz",
- "integrity": "sha512-W3MSATOCN4pVu2qFxmJLIArSifeSOFqnfx9hiUaVgOmeRoI2NbU7RNga+6G+L8ojlFeQge+ZPCclWyUpQ8UeNQ==",
- "dev": true
- },
- "tmp": {
- "version": "0.0.33",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
- "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
- "dev": true,
- "requires": {
- "os-tmpdir": "1.0.2"
- }
- },
- "to-arraybuffer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
- "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
- "dev": true
- },
- "to-buffer": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.0.tgz",
- "integrity": "sha1-N1vAPtrlw1qPoLP+laHzmF2x3Po="
- },
- "toiletdb": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/toiletdb/-/toiletdb-1.4.0.tgz",
- "integrity": "sha1-bG+HGDSyIXjFSQ+fgytYw8fLqFI=",
- "requires": {
- "debug": "2.6.9",
- "last-one-wins": "1.0.4"
- }
- },
- "touch": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
- "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
- "dev": true,
- "requires": {
- "nopt": "1.0.10"
- }
- },
- "tough-cookie": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
- "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
- "requires": {
- "punycode": "1.4.1"
- }
- },
- "trim": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz",
- "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0="
- },
- "trim-newlines": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
- "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
- "dev": true
- },
- "trivial-deferred": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-1.0.1.tgz",
- "integrity": "sha1-N21NKdlR1jaKb3oK6FwvTV4GWPM=",
- "dev": true
- },
- "truncate-utf8-bytes": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
- "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=",
- "dev": true,
- "requires": {
- "utf8-byte-length": "1.0.4"
- }
- },
- "tryit": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz",
- "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=",
- "dev": true
- },
- "tsame": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/tsame/-/tsame-1.1.2.tgz",
- "integrity": "sha512-ovCs24PGjmByVPr9tSIOs/yjUX9sJl0grEmOsj9dZA/UknQkgPOKcUqM84aSCvt9awHuhc/boMzTg3BHFalxWw==",
- "dev": true
- },
- "ttl": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/ttl/-/ttl-1.3.1.tgz",
- "integrity": "sha512-+bGy9iDAqg3WSfc2ZrprToSPJhZjqy7vUv9wupQzsiv+BVPVx1T2a6G4T0290SpQj+56Toaw9BiLO5j5Bd7QzA=="
- },
- "tty-browserify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
- "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
- "dev": true
- },
- "tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
- "requires": {
- "safe-buffer": "5.1.1"
- }
- },
- "tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
- "optional": true
- },
- "type-check": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
- "requires": {
- "prelude-ls": "1.1.2"
- }
- },
- "typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
- },
- "uint64be": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/uint64be/-/uint64be-2.0.1.tgz",
- "integrity": "sha1-oxDZTk5eCwKpXWeOMzI/gCvchCg="
- },
- "umd": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.1.tgz",
- "integrity": "sha1-iuVW4RAR9jwllnCKiDclnwGz1g4=",
- "dev": true
- },
- "unc-path-regex": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
- "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",
- "dev": true
- },
- "undefsafe": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-0.0.3.tgz",
- "integrity": "sha1-7Mo6A+VrmvFzhbqsgSrIO5lKli8=",
- "dev": true
- },
- "unicode-length": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-1.0.3.tgz",
- "integrity": "sha1-Wtp6f+1RhBpBijKM8UlHisg1irs=",
- "dev": true,
- "requires": {
- "punycode": "1.4.1",
- "strip-ansi": "3.0.1"
- }
- },
- "uniq": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
- "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8="
- },
- "unique-string": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
- "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
- "dev": true,
- "requires": {
- "crypto-random-string": "1.0.0"
- }
- },
- "unixify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz",
- "integrity": "sha1-OmQcjC/7zk2mg6XHDwOkYpQMIJA=",
- "requires": {
- "normalize-path": "2.1.1"
- }
- },
- "unordered-array-remove": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz",
- "integrity": "sha1-xUbo+I4xegzyZEyX7LV9umbSUO8="
- },
- "unordered-set": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/unordered-set/-/unordered-set-1.1.0.tgz",
- "integrity": "sha1-K6fvMW7dC5WQzFR8dPdqLxZP7Mo="
- },
- "untildify": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.2.tgz",
- "integrity": "sha1-fx8wIFWz/qDz6B3HjrNnZstl4/E="
- },
- "unzip-response": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz",
- "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=",
- "dev": true
- },
- "update-notifier": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-1.0.3.tgz",
- "integrity": "sha1-j5LFFUgr1oMbfJMBPnD4dVLHz1o=",
- "dev": true,
- "requires": {
- "boxen": "0.6.0",
- "chalk": "1.1.3",
- "configstore": "2.1.0",
- "is-npm": "1.0.0",
- "latest-version": "2.0.0",
- "lazy-req": "1.1.0",
- "semver-diff": "2.1.0",
- "xdg-basedir": "2.0.0"
- }
- },
- "urix": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
- "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
- "dev": true
- },
- "url": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
- "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
- "dev": true,
- "requires": {
- "punycode": "1.3.2",
- "querystring": "0.2.0"
- },
- "dependencies": {
- "punycode": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
- "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
- "dev": true
- }
- }
- },
- "url-parse-lax": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
- "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
- "dev": true,
- "requires": {
- "prepend-http": "1.0.4"
- }
- },
- "user-home": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
- "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=",
- "dev": true,
- "requires": {
- "os-homedir": "1.0.2"
- }
- },
- "utf8-byte-length": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz",
- "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=",
- "dev": true
- },
- "util": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
- "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
- "dev": true,
- "requires": {
- "inherits": "2.0.1"
- },
- "dependencies": {
- "inherits": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
- "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
- "dev": true
- }
- }
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
- },
- "util-extend": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz",
- "integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=",
- "dev": true
- },
- "utp-native": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/utp-native/-/utp-native-1.6.2.tgz",
- "integrity": "sha512-z724NhTLcRQeBBM0W9npDpwCZvsj2veD3/NKFjKfdS5AlTr4EQRIzl85JupKNAc1PjlhjOWIzObvJrQq3FjLqg==",
- "optional": true,
- "requires": {
- "nan": "2.8.0",
- "node-gyp-build": "3.2.2",
- "readable-stream": "2.3.3"
- }
- },
- "uuid": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
- "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g=="
- },
- "uuid-1345": {
- "version": "0.99.6",
- "resolved": "https://registry.npmjs.org/uuid-1345/-/uuid-1345-0.99.6.tgz",
- "integrity": "sha1-sScK4BWnchx63sbEbsFpxgmK7UA=",
- "dev": true,
- "requires": {
- "macaddress": "0.2.8"
- }
- },
- "validate-npm-package-license": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
- "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
- "dev": true,
- "requires": {
- "spdx-correct": "1.0.2",
- "spdx-expression-parse": "1.0.4"
- }
- },
- "validator": {
- "version": "9.1.2",
- "resolved": "https://registry.npmjs.org/validator/-/validator-9.1.2.tgz",
- "integrity": "sha512-1Tml6crNdsSC61jHssWksQxq6C7MmSFCCmf99Eb+l/V/cwVlw4/Pg3YXBP1WKcHLsyqe3E+iJXUZgoTTQFcqQg==",
- "dev": true
- },
- "varint": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/varint/-/varint-3.0.1.tgz",
- "integrity": "sha1-nT9T4DbAqxIACnS8LSTL8JOlgdk="
- },
- "verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
- "requires": {
- "assert-plus": "1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "1.3.0"
- }
- },
- "vm-browserify": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
- "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
- "dev": true,
- "requires": {
- "indexof": "0.0.1"
- }
- },
- "walkdir": {
- "version": "0.0.11",
- "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz",
- "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=",
- "dev": true
- },
- "watchify": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/watchify/-/watchify-3.9.0.tgz",
- "integrity": "sha1-8HX9LoqGrN6Eztum5cKgvt1SPZ4=",
- "dev": true,
- "requires": {
- "anymatch": "1.3.2",
- "browserify": "14.5.0",
- "chokidar": "1.7.0",
- "defined": "1.0.0",
- "outpipe": "1.1.1",
- "through2": "2.0.3",
- "xtend": "4.0.1"
- },
- "dependencies": {
- "browserify": {
- "version": "14.5.0",
- "resolved": "https://registry.npmjs.org/browserify/-/browserify-14.5.0.tgz",
- "integrity": "sha512-gKfOsNQv/toWz+60nSPfYzuwSEdzvV2WdxrVPUbPD/qui44rAkB3t3muNtmmGYHqrG56FGwX9SUEQmzNLAeS7g==",
- "dev": true,
- "requires": {
- "JSONStream": "1.3.1",
- "assert": "1.4.1",
- "browser-pack": "6.0.2",
- "browser-resolve": "1.11.2",
- "browserify-zlib": "0.2.0",
- "buffer": "5.0.8",
- "cached-path-relative": "1.0.1",
- "concat-stream": "1.5.2",
- "console-browserify": "1.1.0",
- "constants-browserify": "1.0.0",
- "crypto-browserify": "3.12.0",
- "defined": "1.0.0",
- "deps-sort": "2.0.0",
- "domain-browser": "1.1.7",
- "duplexer2": "0.1.4",
- "events": "1.1.1",
- "glob": "7.1.2",
- "has": "1.0.1",
- "htmlescape": "1.1.1",
- "https-browserify": "1.0.0",
- "inherits": "2.0.3",
- "insert-module-globals": "7.0.1",
- "labeled-stream-splicer": "2.0.0",
- "module-deps": "4.1.1",
- "os-browserify": "0.3.0",
- "parents": "1.0.1",
- "path-browserify": "0.0.0",
- "process": "0.11.10",
- "punycode": "1.4.1",
- "querystring-es3": "0.2.1",
- "read-only-stream": "2.0.0",
- "readable-stream": "2.3.3",
- "resolve": "1.5.0",
- "shasum": "1.0.2",
- "shell-quote": "1.6.1",
- "stream-browserify": "2.0.1",
- "stream-http": "2.7.2",
- "string_decoder": "1.0.3",
- "subarg": "1.0.0",
- "syntax-error": "1.3.0",
- "through2": "2.0.3",
- "timers-browserify": "1.4.2",
- "tty-browserify": "0.0.0",
- "url": "0.11.0",
- "util": "0.10.3",
- "vm-browserify": "0.0.4",
- "xtend": "4.0.1"
- }
- },
- "browserify-zlib": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
- "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
- "dev": true,
- "requires": {
- "pako": "1.0.6"
- }
- },
- "buffer": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.0.8.tgz",
- "integrity": "sha512-xXvjQhVNz50v2nPeoOsNqWCLGfiv4ji/gXZM28jnVwdLJxH4mFyqgqCKfaK9zf1KUbG6zTkjLOy7ou+jSMarGA==",
- "dev": true,
- "requires": {
- "base64-js": "1.2.1",
- "ieee754": "1.1.8"
- }
- },
- "concat-stream": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
- "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=",
- "dev": true,
- "requires": {
- "inherits": "2.0.3",
- "readable-stream": "2.0.6",
- "typedarray": "0.0.6"
- },
- "dependencies": {
- "readable-stream": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
- "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
- "dev": true,
- "requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "string_decoder": "0.10.31",
- "util-deprecate": "1.0.2"
- }
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "dev": true
- }
- }
- },
- "duplexer2": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
- "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
- "dev": true,
- "requires": {
- "readable-stream": "2.3.3"
- }
- },
- "https-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
- "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
- "dev": true
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
- },
- "os-browserify": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
- "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
- "dev": true
- },
- "pako": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
- "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==",
- "dev": true
- },
- "process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
- "dev": true
- }
- }
- },
- "wayfarer": {
- "version": "6.6.2",
- "resolved": "https://registry.npmjs.org/wayfarer/-/wayfarer-6.6.2.tgz",
- "integrity": "sha512-jwIufUN6EYfMeCJYBA8r0YytqHaSGACLtOddMeBtdq5gTo2F2XgK+t7eEXSPUBF9vm+hdI/iPOtSz1EJOd01dQ==",
- "requires": {
- "xtend": "4.0.1"
- }
- },
- "wdio-dot-reporter": {
- "version": "0.0.9",
- "resolved": "https://registry.npmjs.org/wdio-dot-reporter/-/wdio-dot-reporter-0.0.9.tgz",
- "integrity": "sha1-kpsq2v1J1rBTT9oGjocxm0fjj+U=",
- "dev": true
- },
- "webdriverio": {
- "version": "4.10.1",
- "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-4.10.1.tgz",
- "integrity": "sha1-Qvekh7czebJ0Oi+uULMUJhX2EXA=",
- "dev": true,
- "requires": {
- "archiver": "2.1.1",
- "babel-runtime": "6.26.0",
- "css-parse": "2.0.0",
- "css-value": "0.0.1",
- "deepmerge": "2.0.1",
- "ejs": "2.5.7",
- "gaze": "1.1.2",
- "glob": "7.1.2",
- "inquirer": "3.3.0",
- "json-stringify-safe": "5.0.1",
- "mkdirp": "0.5.1",
- "npm-install-package": "2.1.0",
- "optimist": "0.6.1",
- "q": "1.5.1",
- "request": "2.83.0",
- "rgb2hex": "0.1.0",
- "safe-buffer": "5.1.1",
- "supports-color": "5.0.1",
- "url": "0.11.0",
- "validator": "9.1.2",
- "wdio-dot-reporter": "0.0.9",
- "wgxpath": "1.0.0"
- },
- "dependencies": {
- "archiver": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/archiver/-/archiver-2.1.1.tgz",
- "integrity": "sha1-/2YrSnggFJSj7lRNOjP+dJZQnrw=",
- "dev": true,
- "requires": {
- "archiver-utils": "1.3.0",
- "async": "2.6.0",
- "buffer-crc32": "0.2.13",
- "glob": "7.1.2",
- "lodash": "4.17.4",
- "readable-stream": "2.3.3",
- "tar-stream": "1.5.5",
- "zip-stream": "1.2.0"
- }
- },
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
- "dev": true
- },
- "supports-color": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.0.1.tgz",
- "integrity": "sha512-7FQGOlSQ+AQxBNXJpVDj8efTA/FtyB5wcNE1omXXJ0cq6jm1jjDwuROlYDbnzHqdNPqliWFhcioCWSyav+xBnA==",
- "dev": true,
- "requires": {
- "has-flag": "2.0.0"
- }
- }
- }
- },
- "wgxpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wgxpath/-/wgxpath-1.0.0.tgz",
- "integrity": "sha1-7vikudVYzEla06mit1FZfs2a9pA=",
- "dev": true
- },
- "which": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
- "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
- "dev": true,
- "requires": {
- "isexe": "2.0.0"
- }
- },
- "which-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
- "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
- "dev": true
- },
- "widest-line": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-1.0.0.tgz",
- "integrity": "sha1-DAnIXCqUaD0Nfq+O4JfVZL8OEFw=",
- "dev": true,
- "requires": {
- "string-width": "1.0.2"
- }
- },
- "wordwrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
- },
- "wrap-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
- "dev": true,
- "requires": {
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1"
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
- },
- "write": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
- "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
- "dev": true,
- "requires": {
- "mkdirp": "0.5.1"
- }
- },
- "write-file-atomic": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz",
- "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "imurmurhash": "0.1.4",
- "slide": "1.1.6"
- }
- },
- "xdg-basedir": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz",
- "integrity": "sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I=",
- "dev": true,
- "requires": {
- "os-homedir": "1.0.2"
- }
- },
- "xhr": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.4.0.tgz",
- "integrity": "sha1-4W5mpF+GmGHu76tBbV7/ci3ECZM=",
- "requires": {
- "global": "4.3.2",
- "is-function": "1.0.1",
- "parse-headers": "2.0.1",
- "xtend": "4.0.1"
- }
- },
- "xmlbuilder": {
- "version": "8.2.2",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz",
- "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=",
- "dev": true
- },
- "xmldom": {
- "version": "0.1.27",
- "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz",
- "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=",
- "dev": true
- },
- "xsalsa20": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.0.2.tgz",
- "integrity": "sha512-g1DFmZ5JJ9Qzvt4dMw6m9IydqoCSP381ucU5zm46Owbk3bwmqAr8eEJirOPc7PrXRn45drzOpAyDp8jsnoyXyw=="
- },
- "xtend": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
- "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
- },
- "y18n": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
- "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
- "dev": true
- },
- "yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
- "dev": true
- },
- "yapool": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/yapool/-/yapool-1.0.0.tgz",
- "integrity": "sha1-9pPymjFbUNmp2iZGp6ZkXJaYW2o=",
- "dev": true
- },
- "yargs": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
- "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
- "dev": true,
- "requires": {
- "camelcase": "3.0.0",
- "cliui": "3.2.0",
- "decamelize": "1.2.0",
- "get-caller-file": "1.0.2",
- "os-locale": "1.4.0",
- "read-pkg-up": "1.0.1",
- "require-directory": "2.1.1",
- "require-main-filename": "1.0.1",
- "set-blocking": "2.0.0",
- "string-width": "1.0.2",
- "which-module": "1.0.0",
- "y18n": "3.2.1",
- "yargs-parser": "4.2.1"
- },
- "dependencies": {
- "camelcase": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
- "dev": true
- }
- }
- },
- "yargs-parser": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
- "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
- "dev": true,
- "requires": {
- "camelcase": "3.0.0"
- },
- "dependencies": {
- "camelcase": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
- "dev": true
- }
- }
- },
- "yauzl": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
- "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
- "dev": true,
- "requires": {
- "fd-slicer": "1.0.1"
- }
- },
- "yo-yoify": {
- "version": "3.7.3",
- "resolved": "https://registry.npmjs.org/yo-yoify/-/yo-yoify-3.7.3.tgz",
- "integrity": "sha1-yNGoBL4J+lFbJRksH33lAIpmMBE=",
- "requires": {
- "acorn": "5.2.1",
- "falafel": "2.1.0",
- "hyperx": "2.3.2",
- "on-load": "3.3.1",
- "through2": "2.0.3"
- }
- },
- "zip-stream": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz",
- "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=",
- "dev": true,
- "requires": {
- "archiver-utils": "1.3.0",
- "compress-commons": "1.2.2",
- "lodash": "4.17.4",
- "readable-stream": "2.3.3"
- }
- }
- }
-}
diff --git a/package.json b/package.json
index 6edfe5b8..5210cdd0 100644
--- a/package.json
+++ b/package.json
@@ -5,83 +5,93 @@
"license": "MIT",
"repository": "datproject/dat-desktop",
"description": "Dat Desktop App",
- "author": "Dat Team",
- "dependencies": {
- "base-elements": "^2.2.1",
- "choo": "^6.6.0",
- "choo-expose": "^1.0.0",
- "choo-log": "^6.0.0",
- "choo-persist": "^3.0.0",
- "dat-colors": "^3.5.0",
- "dat-doctor": "^1.2.2",
- "dat-encoding": "^4.0.1",
- "dat-icons": "^2.2.0",
- "dat-node": "^3.2.3",
- "delegate-electron-events": "^1.0.1",
- "electron-auto-updater": "^0.9.2",
- "electron-default-menu": "^1.0.0",
- "electron-window": "^0.8.1",
- "envobj": "^1.0.2",
- "explain-error": "^1.0.3",
- "microcomponent": "^3.1.6",
- "minimist": "^1.2.0",
- "mirror-folder": "^2.1.0",
- "mkdirp": "^0.5.1",
- "ms": "^0.7.2",
- "multidat": "^5.1.0",
- "nanologger": "^1.0.2",
- "nanomorph": "^5.0.0",
- "prettier-bytes": "^1.0.3",
- "rimraf": "^2.5.4",
- "run-waterfall": "^1.1.3",
- "sheetify": "^6.0.0",
- "tachyons": "^4.7.2",
- "toiletdb": "^1.4.0",
- "xhr": "^2.3.3",
- "xtend": "^4.0.1"
- },
+ "author": "Dat Team ",
"scripts": {
- "bundle": "node scripts/build.js bundle",
- "watch": "node scripts/browserify.js watch",
- "deps": "dependency-check . --entry app.js && dependency-check . --entry app.js --extra -i tachyons -i dat-colors -i cross-env --no-dev",
- "rebuild": "node scripts/build.js rebuild",
- "burnthemall": "rm -rf ~/.electron && npm run clean && npm install && npm run bundle",
- "clean": "rm -rf node_modules/",
- "build-background": "node scripts/build.js background",
- "start": "cross-env NODE_ENV=development electron .",
- "test": "standard && npm run deps && npm run test:unit && npm run test:integration",
- "test:integration": "node ./tests/index.js",
- "test:unit": "electron ./tests/dat-manager.js && node ./tests/intro.js",
- "postinstall": "node scripts/build.js postinstall",
- "pack": "build --dir",
- "dist": "build --publish=onTagOrDraft"
+ "prestart": "npm run build:dev",
+ "start": "cross-env NODE_ENV=development npm-run-all -p start:watch start:electron",
+ "start:electron": "cross-env NODE_V=\"$(node -v)\" NODE_ENV=development electron .",
+ "start:watch": "webpack --watch --mode=development",
+ "test": "npm run test:deps && npm run test:lint && npm run test:unit",
+ "test:deps": "cross-env DEBUG=* dependency-check . --detective precinct --entry app/index.js",
+ "test:lint": "prettier-standard 'app/**/*.js' 'tests/**/*.js' 'lib/**/*.js' 'unit-tests/*.js' && standard",
+ "test:unit": "cross-env NODE_ENV=test babel-tape-runner -r ./unit-tests/_helpers/*.js unit-tests/*.js",
+ "clean": "npm run clean:git && npm run clean:dirs",
+ "clean:git": "git clean -dfX",
+ "clean:dirs": "rm -rf ~/.electron && rm -f package-lock.json",
+ "update-rdt": "rm -rf dev/react-dev-tools && ced fmkadmapgofadopljbjfkapdkoienihi dev/react-dev-tools",
+ "build:dev": "webpack --mode=development",
+ "build:prod": "webpack --mode=production",
+ "pack": "npm run build:prod && npm run pack:all",
+ "pack:os": "build --dir",
+ "pack:all": "npm run pack:os -- --linux --mac --win",
+ "dist": "npm run build:prod && npm run dist:os",
+ "dist:os": "build",
+ "dist:all": "npm run dist:os -- --linux --mac --win"
+ },
+ "standard": {
+ "ignore": [
+ "dev/**"
+ ]
},
"devDependencies": {
- "browserify": "^13.3.0",
- "clipboardy": "^1.1.2",
- "concat-stream": "^1.6.0",
- "cross-env": "^5.1.1",
- "del": "^2.2.2",
- "dependency-check": "^2.6.0",
- "electron": "^1.7.11",
- "electron-builder": "^8.6.0",
- "envify": "^4.0.0",
- "nodemon": "^1.9.2",
- "npm-run-path": "^2.0.2",
- "sheetify-nested": "^1.0.2",
- "spectron": "^3.8.0",
- "spok": "^0.7.0",
- "standard": "^7.1.2",
- "tap": "^11.0.1",
- "through2": "^2.0.3",
- "watchify": "^3.7.0"
+ "@leichtgewicht/chrome-ext-downloader": "^1.1.0",
+ "babel-core": "^6.26.3",
+ "babel-loader": "^7.1.4",
+ "babel-plugin-transform-object-rest-spread": "^6.26.0",
+ "babel-preset-env": "^1.7.0",
+ "babel-preset-react": "^6.24.1",
+ "babel-tape-runner": "^2.0.1",
+ "cross-env": "^5.1.6",
+ "dependency-check": "^3.1.0",
+ "electron": "^2.0.1",
+ "electron-builder": "^20.15.1",
+ "enzyme": "^3.3.0",
+ "enzyme-adapter-react-16": "^1.1.1",
+ "enzyme-adapter-react-helper": "^1.2.3",
+ "gaze": "^1.1.3",
+ "npm-run-all": "^4.1.3",
+ "precinct": "^4.2.0",
+ "prettier-standard": "^8.0.1",
+ "standard": "^11.0.1",
+ "tape": "^4.9.0",
+ "webpack": "^4.20.2",
+ "webpack-cli": "^3.1.1",
+ "webpack-node-externals": "^1.7.2"
+ },
+ "dependencies": {
+ "dat-colors": "^3.5.1",
+ "dat-doctor": "^1.4.0",
+ "dat-encoding": "^5.0.1",
+ "dat-icons": "^2.5.2",
+ "dat-node": "^3.5.8",
+ "electron-default-menu": "^1.0.1",
+ "electron-drag": "github:martinheidegger/electron-drag#f432d168f0a4f7f53aa9272793dd4c6793072ea0",
+ "minimist": "^1.2.0",
+ "mirror-folder": "^3.0.0",
+ "mkdirp-promise": "^5.0.1",
+ "ms": "^2.1.1",
+ "polished": "^1.9.2",
+ "prettier-bytes": "^1.0.4",
+ "react": "^16.3.2",
+ "react-dom": "^16.3.2",
+ "react-file-drop": "^0.2.4",
+ "react-redux": "^5.0.7",
+ "react-swap": "^2.0.2",
+ "redux": "^4.0.0",
+ "redux-logger": "^3.0.6",
+ "redux-thunk": "^2.2.0",
+ "styled-components": "^3.2.6",
+ "tachyons": "^4.9.1",
+ "util-promisify": "^2.1.0"
},
"build": {
"appId": "com.datproject.dat",
"mac": {
- "category": "public.app-category.utilities"
+ "category": "public.app-category.utilities",
+ "icon": "build/icon.icns"
},
"dmg": {
+ "icon": "build/icon.icns",
"contents": [
{
"x": 220,
@@ -95,6 +105,17 @@
}
]
},
+ "linux": {
+ "category": "Utility",
+ "target": [
+ "AppImage",
+ "deb"
+ ]
+ },
+ "win": {
+ "target": "NSIS",
+ "icon": "build/icon.png"
+ },
"protocols": [
{
"name": "Dat Link",
diff --git a/pages/main.js b/pages/main.js
deleted file mode 100644
index 6434a2a8..00000000
--- a/pages/main.js
+++ /dev/null
@@ -1,112 +0,0 @@
-'use strict'
-
-const html = require('choo/html')
-const shell = require('electron').shell
-
-const StatusBar = require('../elements/status-bar')
-const Download = require('../elements/download')
-const Inspect = require('../elements/inspect')
-const Header = require('../elements/header')
-const Sprite = require('../elements/sprite')
-const Table = require('../elements/table')
-const Intro = require('../elements/intro')
-const Empty = require('../elements/empty')
-
-module.exports = mainView
-
-const statusBar = StatusBar()
-const download = Download()
-const inspect = Inspect()
-const header = Header()
-const sprite = Sprite()
-const intro = Intro()
-
-// render the main view
-// (obj, obj, fn) -> html
-function mainView (state, emit) {
- const showIntroScreen = state.intro.show
- const showInspectScreen = state.inspect.show
- const showDownloadScreen = state.download.show
- const dats = state.dats.values
- const isReady = state.dats.ready
- const headerProps = {
- isReady: isReady,
- oncreate: () => emit('dats:create'),
- onimport: (link) => emit('dats:download', link),
- onreport: () => shell.openExternal('https://github.com/datproject/dat-desktop/issues')
- }
-
- document.title = 'Dat Desktop'
-
- if (showDownloadScreen) {
- return html`
-
- ${sprite.render()}
- ${header.render(headerProps)}
- ${download.render(Object.assign({}, state.download, {
- oncancel: () => emit('download:hide'),
- ondownload: ({ key, location }) => {
- emit('dats:clone', { key, location })
- emit('download:hide')
- },
- onupdate: () => {
- emit('render')
- }
- }))}
-
- `
- }
-
- if (showInspectScreen) {
- return html`
-
- ${sprite.render()}
- ${header.render(headerProps)}
- ${inspect.render(Object.assign({}, state.inspect, {
- oncancel: () => emit('inspect:hide'),
- onupdate: () => emit('render')
- }))}
-
- `
- }
-
- if (showIntroScreen) {
- document.title = 'Dat Desktop | Welcome'
- return html`
-
- ${sprite.render()}
- ${intro.render({
- onexit: () => {
- emit('intro:hide')
- },
- onOpenHomepage: () => {
- emit('intro:open-homepage')
- },
- onupdate: () => {
- emit('render')
- }
- })}
-
- `
- }
-
- if (!dats.length) {
- return html`
-
- ${sprite.render()}
- ${header.render(headerProps)}
- ${Empty()}
- ${statusBar.render(state.dats.speed)}
-
- `
- }
-
- return html`
-
- ${sprite.render()}
- ${header.render(headerProps)}
- ${Table(state, emit)}
- ${statusBar.render(state.dats.speed)}
-
- `
-}
diff --git a/preload.js b/preload.js
new file mode 100644
index 00000000..37101103
--- /dev/null
+++ b/preload.js
@@ -0,0 +1,31 @@
+'use strict'
+/**
+ * This file exists for security reasons!
+ *
+ * It prepares by removing dangerous scripts from the global scopes
+ * Before running the app.
+ *
+ * See: https://electronjs.org/docs/tutorial/security
+ * & https://eslint.org/docs/rules/no-implied-eval
+ */
+// eslint-disable-next-line no-eval
+window.eval = global.eval = function () {
+ throw new Error('Sorry, this app does not support window.eval().')
+}
+const setTimeout = global.setTimeout
+window.setTimeout = global.setTimeout = function (fn, ms) {
+ if (typeof fn !== 'function') {
+ throw new Error('Sorry, this app does not support setTimeout() with a string')
+ }
+ return setTimeout(fn, ms)
+}
+const setInterval = global.setInterval
+window.setInterval = global.setInterval = function (fn, ms) {
+ if (typeof fn !== 'function') {
+ throw new Error('Sorry, this app does not support setInterval() with a string')
+ }
+ return setInterval(fn, ms)
+}
+process.once('loaded', () => {
+ document.addEventListener('DOMContentLoaded', () => require('./static/bundle'))
+})
diff --git a/scripts/browserify.js b/scripts/browserify.js
deleted file mode 100755
index 5f57e905..00000000
--- a/scripts/browserify.js
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env node
-
-const browserify = require('../lib/browserify')
-
-const watch = process.argv[2] === 'watch'
-browserify({ watch })
diff --git a/scripts/build.js b/scripts/build.js
deleted file mode 100644
index 8c81eddf..00000000
--- a/scripts/build.js
+++ /dev/null
@@ -1,52 +0,0 @@
-'use strict'
-
-const {execSync} = require('child_process')
-const npmRunPath = require('npm-run-path')
-const {platform} = require('os')
-
-const usage = () => {
- console.error('Usage: scripts/build [-h]')
-}
-
-const exec = cmd => execSync(cmd, { env: npmRunPath.env(), encoding: 'utf8' })
-
-const rebuild = () => {
- const electronVersion = exec('electron --version').trim().slice(1)
- const electronAbi = exec('electron --abi').trim()
- console.error('[scripts/build] rebuilding native deps')
- console.error('[scripts/build] detected electron=%s abi=%s', electronVersion, electronAbi)
- exec(`npm rebuild \
- --runtime=electron \
- --target="${electronVersion}" \
- --disturl=https://atom.io/download/atom-shell \
- --abi="${electronAbi}"`)
-}
-
-const buildBackground = () => {
- console.error('[scripts/build] building background')
- console.error(exec('tiffutil \\' +
- '-cathidpicheck \\' +
- 'build/background.png build/background@2x.png \\' +
- '-out build/background.tiff'))
-}
-
-const bundle = () => {
- console.error('[scripts/build] bundling javascript')
- console.error(exec('node scripts/browserify.js'))
-}
-
-const postinstall = () => {
- if (platform() === 'darwin') buildBackground()
- rebuild()
- bundle()
-}
-
-// parse CLI flags
-switch (process.argv[2]) {
- case 'rebuild': rebuild(); break
- case 'css': break
- case 'background': buildBackground(); break
- case 'bundle': bundle(); break
- case 'postinstall': postinstall(); break
- default: usage(); break
-}
diff --git a/static/base.css b/static/base.css
new file mode 100644
index 00000000..50a63d7a
--- /dev/null
+++ b/static/base.css
@@ -0,0 +1,96 @@
+@font-face {
+ font-family: 'SourceSansPro';
+ src: url('fonts/SourceSansPro-Regular.ttf') format('truetype')
+}
+
+@font-face {
+ font-family: 'SourceCodePro';
+ src: url('fonts/SourceCodePro-Regular.ttf') format('truetype')
+}
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed,
+figure, figcaption, footer, header, hgroup,
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+}
+
+html {
+ overflow: auto;
+}
+
+body {
+ line-height: 1.5;
+ overflow: hidden;
+ min-width: 800px;
+}
+
+main {
+ overflow-y: auto;
+ height: calc(100vh - 5rem); /* height of header + status bar */
+ background-color: var(--color-white);
+}
+
+body, input, textarea, select, button {
+ font-family: 'SourceSansPro', sans-serif;
+ &:focus {
+ outline: none;
+ }
+}
+
+pre, code {
+ font-family: 'SourceCodePro', monospace;
+}
+
+input, textarea, select, button {
+ -webkit-user-drag: none;
+}
+
+html {
+ -webkit-user-select: none;
+ -webkit-user-drag: none;
+ cursor: default;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ font-size: 1rem;
+ font-weight: bold;
+}
+
+img {
+ -webkit-user-drag: none;
+}
+
+button {
+ border: none;
+}
+
+.is-selectable {
+ -webkit-user-select: auto;
+ cursor: auto;
+}
+
+.is-draggable {
+ -webkit-app-region: drag;
+}
+
+/* fading animation to highlight new dats */
+.fade-highlight {
+ animation: fade-highlight 2.25s ease-in-out;
+}
+@keyframes fade-highlight {
+ 0% { background-color: rgba(42,202,75,.2); }
+ 35% { background-color: rgba(42,202,75,.2); }
+ 100% { background-color: rgba(42,202,75,0); }
+}
\ No newline at end of file
diff --git a/assets/fonts/SourceCodePro-Regular.ttf b/static/fonts/SourceCodePro-Regular.ttf
similarity index 100%
rename from assets/fonts/SourceCodePro-Regular.ttf
rename to static/fonts/SourceCodePro-Regular.ttf
diff --git a/assets/fonts/SourceSansPro-Regular.ttf b/static/fonts/SourceSansPro-Regular.ttf
similarity index 100%
rename from assets/fonts/SourceSansPro-Regular.ttf
rename to static/fonts/SourceSansPro-Regular.ttf
diff --git a/tests/dat-manager.js b/tests/dat-manager.js
deleted file mode 100755
index f6a674be..00000000
--- a/tests/dat-manager.js
+++ /dev/null
@@ -1,278 +0,0 @@
-#!/usr/bin/env node node_modules/.bin/electron
-var tap = require('tap')
-var test = tap.test
-var Multidat = require('multidat')
-var toilet = require('toiletdb/inmemory')
-
-var Manager = require('../lib/dat-manager')
-tap.on('result', function (res) {
- process.exit(res.ok ? 0 : 1)
-})
-
-function setup (db, dbPaused, cb) {
- if (typeof db === 'function') {
- dbPaused = db
- db = null
- }
- if (typeof dbPaused === 'function') {
- cb = dbPaused
- dbPaused = null
- }
- if (!db) db = toilet()
- if (!dbPaused) dbPaused = toilet()
- Multidat(db, function (err, multidat) {
- if (err) return cb(err)
- cb(null, { multidat, dbPaused })
- })
-}
-
-test('dat-manager', function (t) {
- t.test('Manager({ multidat, dbPaused, onupdate })', function (t) {
- t.test('assert arguments', function (t) {
- setup(function (err, { multidat, dbPaused }) {
- t.error(err)
- var onupdate = function () {}
- t.throws(Manager.bind(null))
- t.throws(Manager.bind(null, { multidat }))
- t.throws(Manager.bind(null, { multidat, dbPaused }))
- t.throws(Manager.bind(null, { multidat }, onupdate))
- var manager = Manager({ multidat, dbPaused }, onupdate)
- t.ok(manager)
- manager.disconnect(function (err) {
- t.error(err)
- t.end()
- })
- })
- })
- t.test('load existing dats', function (t) {
- var db = toilet()
- var dbPaused = toilet()
- setup(db, dbPaused, function (err, { multidat, dbPaused }) {
- t.error(err)
- function onupdate () {}
- var manager = Manager({ multidat, dbPaused }, onupdate)
- manager.create(`/tmp/${Math.random()}`, function (err) {
- t.error(err)
- manager.disconnect(function () {
- t.error(err)
- secondTime()
- })
- })
- })
- function secondTime () {
- setup(db, dbPaused, function (err, { multidat, dbPaused }) {
- t.error(err)
- var manager = Manager({ multidat, dbPaused }, onupdate)
- var ended = false
- function onupdate (err, dats) {
- if (ended || dats.length !== 1) return
- ended = true
- t.error(err)
- t.equal(dats.length, 1, 'The dat should exist the second time around')
- manager.disconnect(function (err) {
- t.error(err)
- t.end()
- })
- }
- })
- }
- })
- t.end()
- })
-
- t.test('.create(dir, opts, cb)', function (t) {
- t.test('assert arguments', function (t) {
- setup(function (err, { multidat, dbPaused }) {
- t.error(err)
- function onupdate () {}
- var manager = Manager({ multidat, dbPaused }, onupdate)
- var dir = `/tmp/${Math.random()}`
- t.throws(manager.create.bind(manager))
- t.throws(manager.create.bind(manager, dir))
- t.throws(manager.create.bind(manager, dir, {}))
- manager.create(dir, {}, function () {})
- manager.create(dir, function () {})
- manager.disconnect(function (err) {
- t.error(err)
- t.end()
- })
- })
- })
- t.test('create a dat', function (t) {
- setup(function (err, { multidat, dbPaused }) {
- t.error(err)
- var ended = false
- function onupdate (err, dats) {
- if (ended) return
- t.error(err)
- var dat = dats[0]
- if (dat && dat.network && dat.metadata && dat.metadata.title && dat.stats && typeof dat.progress === 'number') {
- t.equal(dat.metadata.title, basename)
- t.equal(dat.metadata.author, 'Anonymous')
- manager.disconnect(function (err) {
- t.error(err)
- t.end()
- })
- }
- }
- var manager = Manager({ multidat, dbPaused }, onupdate)
- var basename = String(Math.random())
- var dir = `/tmp/${basename}`
- manager.create(dir, function (err, dat) {
- t.error(err)
- t.ok(dat)
- })
- })
- })
- t.end()
- })
-
- t.test('.close(key, cb)', function (t) {
- t.test('close a dat', function (t) {
- t.plan(6)
- setup(function (err, { multidat, dbPaused }) {
- t.error(err, 'setup')
- var closing = false
- var ended = false
- function onupdate (err, dats) {
- if (!ended && closing && dats.length === 0) {
- t.error(err)
- t.ok(true, 'onupdate')
- }
- }
- var manager = Manager({ multidat, dbPaused }, onupdate)
- manager.create(`/tmp/${Math.random()}`, function (err, dat) {
- t.error(err, 'dat created')
- closing = true
- manager.close(dat.key, function (err) {
- t.error(err, 'dat closed')
- ended = true
- manager.disconnect(function (err) {
- t.error(err)
- })
- })
- })
- })
- })
- t.end()
- })
-
- t.test('.pause(dat, cb)', function (t) {
- t.test('pause a dat', function (t) {
- setup(function (err, { multidat, dbPaused }) {
- t.error(err)
- function onupdate (err, dats) {
- if (!dats.length || t.ended) return
- t.error(err)
- var dat = dats[0]
- if (!dat) return
- t.notOk(dat.network)
- manager.disconnect(function (err) {
- t.error(err)
- t.end()
- })
- }
- var manager = Manager({ multidat, dbPaused }, onupdate)
- manager.create(`/tmp/${Math.random()}`, function (err, dat) {
- t.error(err)
- manager.pause(dat, function (err) {
- t.error(err)
- })
- })
- })
- })
- t.end()
- })
-
- t.test('.resume(dat, cb)', function (t) {
- t.test('resume a dat', function (t) {
- setup(function (err, { multidat, dbPaused }) {
- t.error(err)
- var resuming = false
- var ended = false
- function onupdate (err, dats) {
- if (!dats.length || !resuming || ended) return
- ended = true
- t.error(err)
- var dat = dats[0]
- t.ok(dat.network)
- manager.disconnect(function (err) {
- t.error(err)
- t.end()
- })
- }
- var manager = Manager({ multidat, dbPaused }, onupdate)
- manager.create(`/tmp/${Math.random()}`, function (err, dat) {
- t.error(err)
- manager.pause(dat, function (err) {
- t.error(err)
- resuming = true
- manager.resume(dat, function (err) {
- t.error(err)
- })
- })
- })
- })
- })
- t.end()
- })
-
- t.test('.togglePause(dat, cb)', function (t) {
- t.test('pause a dat', function (t) {
- setup(function (err, { multidat, dbPaused }) {
- t.error(err)
- var ended = false
- function onupdate (err, dats) {
- if (!dats.length || ended) return
- ended = true
- t.error(err)
- var dat = dats[0]
- t.notOk(dat.network)
- manager.disconnect(function (err) {
- t.error(err)
- t.end()
- })
- }
- var manager = Manager({ multidat, dbPaused }, onupdate)
- manager.create(`/tmp/${Math.random()}`, function (err, dat) {
- t.error(err)
- manager.togglePause(dat, function (err) {
- t.error(err)
- })
- })
- })
- })
- t.test('resume a dat', function (t) {
- setup(function (err, { multidat, dbPaused }) {
- t.error(err)
- var resuming = false
- var ended = false
- function onupdate (err, dats) {
- if (!dats.length || !resuming || ended) return
- ended = true
- t.error(err)
- var dat = dats[0]
- t.ok(dat.network)
- manager.disconnect(function (err) {
- t.error(err)
- t.end()
- })
- }
- var manager = Manager({ multidat, dbPaused }, onupdate)
- manager.create(`/tmp/${Math.random()}`, function (err, dat) {
- t.error(err)
- manager.togglePause(dat, function (err) {
- t.error(err)
- resuming = true
- manager.togglePause(dat, function (err) {
- t.error(err)
- })
- })
- })
- })
- })
- t.end()
- })
-
- t.end()
-})
diff --git a/tests/index.js b/tests/index.js
index 1d48952a..d0aa758e 100755
--- a/tests/index.js
+++ b/tests/index.js
@@ -2,119 +2,218 @@
var clipboard = require('clipboardy')
var spectron = require('spectron')
var path = require('path')
-var tap = require('tap').test
+var test = require('tape').test
var del = require('del')
-var { execSync } = require('child_process')
+var { exec } = require('child_process')
+var props = require('bluebird').props
var waitForAndClick = require('./utils/waitForAndClick')
var waitForMatch = require('./utils/waitForMatch')
var wait = require('./utils/wait')
var TEST_DATA = path.join(__dirname, 'test_data')
var TEST_DATA_DB = path.join(TEST_DATA, 'multidat.json')
+var FIXTURES = path.join(__dirname, 'fixtures')
-tap('init', function (t) {
+test('init', function (t) {
t.test('should be able to boot up the app', function (t) {
- var app = createApp()
- return waitForLoad(app)
- .then(() => Promise.all([
- t.resolveMatch(app.browserWindow.isVisible(), true, 'isVisible'),
- t.resolveMatch(app.client.getWindowCount(), 1, 'getWindowCount'),
- t.resolveMatch(app.browserWindow.isMinimized(), false, 'isMinimized'),
- t.resolveMatch(app.browserWindow.isDevToolsOpened(), false, 'isDevToolsOpened'),
- t.resolveMatch(app.browserWindow.isVisible(), true, 'isVisible'),
- t.resolveMatch(app.browserWindow.isFocused(), true, 'isFocused'),
- t.resolveMatch(app.browserWindow.getBounds().then(bounds => bounds.width !== 0), true, 'getBounds'),
- t.resolveMatch(app.browserWindow.getBounds().then(bounds => bounds.height !== 0), true, 'getBounds')
- ]))
+ const app = createApp()
+ return init(app, t)
+ .then(() =>
+ props({
+ getWindowCount: app.client.getWindowCount(),
+ isMinimized: app.browserWindow.isMinimized(),
+ isDevToolsOpened: app.browserWindow.isDevToolsOpened(),
+ isFocused: app.browserWindow.isFocused(),
+ bounds: app.browserWindow
+ .getBounds()
+ .then(bounds => ({ width: bounds.width, height: bounds.height }))
+ })
+ )
+ .then(props =>
+ t.deepEquals(
+ props,
+ {
+ getWindowCount: 1,
+ isMinimized: false,
+ isDevToolsOpened: false,
+ isFocused: true,
+ bounds: {
+ width: 800,
+ height: 600
+ }
+ },
+ 'All settings match'
+ )
+ )
.catch(e => t.fail(e))
- .then(() => endTest(app))
+ .then(() => endTest(app, t))
})
t.end()
})
-tap('onboarding', function (t) {
- t.test('intro should show every time you open the app as long as you have no dats', function (t) {
- var app = createApp()
- return waitForLoad(app)
- .then(() => t.resolveMatch(app.browserWindow.isVisible(), true, 'isVisible'))
- .then(() => t.resolveMatch(app.browserWindow.getTitle(), 'Dat Desktop | Welcome', 'correct title'))
- .then(() => app.client.click('button'))
- .then(() => wait(200))
- .then(() => waitForAndClick(t, app, 'button[title="Skip Intro"]'))
- .then(() => t.resolveMatch(app.browserWindow.getTitle(), 'Dat Desktop', 'correct title'))
- .then(() => app.stop())
- .then(() => Promise.resolve(app = createApp()))
- .then(() => waitForLoad(app))
- .then(() => app.browserWindow.isVisible())
- .then(() => app.client.click('button'))
- .then(() => app.client.waitForExist('button[title="Skip Intro"]'))
- .catch(e => t.fail(e))
- .then(() => endTest(app))
- })
+test('onboarding', function (t) {
+ t.test(
+ 'intro should show every time you open the app as long as you have no dats',
+ function (t) {
+ var app = createApp()
+ return initAndSkipIntro(app, t)
+ .then(() => app.stop())
+ .then(() => Promise.resolve((app = createApp())))
+ .then(() => waitForLoad(app, t))
+ .then(() =>
+ app.browserWindow
+ .isVisible()
+ .then(isVisible => t.ok(isVisible, 'App is visible.'))
+ )
+ .then(() => waitForAndClick(t, app, '.btn-get-started'))
+ .then(() => app.client.waitForExist('.btn-skip'))
+ .catch(e => t.fail(e))
+ .then(() => endTest(app, t))
+ }
+ )
t.end()
})
-tap('working with dats', function (t) {
+function initAndSkipIntro (app, t) {
+ return init(app, t)
+ .then(() =>
+ app.browserWindow
+ .getTitle()
+ .then(title =>
+ t.equals(
+ title,
+ 'Dat Desktop | Welcome',
+ 'intro title shown in the beginning'
+ )
+ )
+ )
+ .then(() => waitForAndClick(t, app, '.btn-get-started'))
+ .then(() => waitForAndClick(t, app, '.btn-skip'))
+ .then(() =>
+ app.browserWindow
+ .getTitle()
+ .then(title =>
+ t.equals(title, 'Dat Desktop', 'dat title shown after the intro')
+ )
+ )
+}
+
+test('working with dats', function (t) {
var app = createApp()
- return waitForLoad(app)
- .then(() => t.resolveMatch(app.browserWindow.isVisible(), true, 'isVisible'))
- .then(() => waitForAndClick(t, app, 'button[title="Get Started"]'))
- .then(() => waitForAndClick(t, app, 'button[title="Skip Intro"]'))
- .then(() => waitForAndClick(t, app, 'button'))
- .then(() => waitForMatch(t, app, '.size', /(126|52) B/)
- .then(() => waitForMatch(t, app, '.network', /0/)))
- .then(() => clipboard.write(''))
- .then(() => app.client.click('button[title="Share Dat"]'))
- .then(() => app.client.click('button[title="Copy to Clipboard"]'))
+ return initAndSkipIntro(app, t)
+ .then(() => waitForAndClick(t, app, '.btn-share-folder'))
+ .then(() =>
+ Promise.all([
+ waitForMatch(t, app, '.network', /0/),
+ waitForMatch(t, app, '.size', /(126|52) B/, 'contains correct size')
+ ])
+ )
+ .then(() =>
+ Promise.all([
+ clipboard.write('').then(() => t.ok(true, 'Cleared clipboard')),
+ waitForAndClick(t, app, '.btn-link')
+ ])
+ )
+ .then(() => waitForAndClick(t, app, '.btn-copy-to-clipboard'))
.then(() => wait(200))
- .then(() => t.resolveMatch(clipboard.read(), /^dat:\/\/[0-9a-f]{32}/, 'link copied to clipboard'))
+ .then(() =>
+ clipboard
+ .read()
+ .then(text =>
+ t.ok(
+ text.match(/^dat:\/\/[0-9a-f]{32}/),
+ 'link copied to clipboard: ' + text
+ )
+ )
+ )
.then(() => app.stop())
- .then(() => Promise.resolve(app = createApp()))
- .then(() => waitForLoad(app))
- .then(() => app.browserWindow.isVisible())
- .then((isVisible) => t.equal(isVisible, true, 'reloaded and is visible'))
- .then(() => waitForMatch(t, app, '.size', /(126|52) B/))
- .then(() => waitForAndClick(t, app, 'button.delete'))
- .then(() => app.client.click('button.cancel-button'))
- .then(() => app.client.click('button.delete'))
- .then(() => app.client.click('button.confirm-button'))
- .then(() => waitForMatch(t, app, '.tutorial', /share/i)) // now the dat is gone and welcome screen is back
+ .then(() => Promise.resolve((app = createApp())))
+ .then(() => waitForLoad(app, t))
+ .then(() =>
+ app.browserWindow
+ .isVisible()
+ .then(isVisible => t.equal(isVisible, true, 'reloaded and is visible'))
+ )
+ .then(() =>
+ waitForMatch(t, app, '.size', /(126|52) B/, 'contains correct size')
+ )
+ .then(() => waitForAndClick(t, app, '.btn-delete'))
+ .then(() => waitForAndClick(t, app, '.btn-cancel'))
+ .then(() => waitForAndClick(t, app, '.btn-delete'))
+ .then(() => waitForAndClick(t, app, '.btn-confirm'))
+ .then(() =>
+ waitForMatch(
+ t,
+ app,
+ '.tutorial',
+ /share/i,
+ 'now the dat is gone and welcome screen is back'
+ )
+ ) // now the dat is gone and welcome screen is back
.catch(e => t.fail(e))
- .then(() => endTest(app))
+ .then(() => endTest(app, t))
})
// Create a new app instance
-function createApp () {
+function createApp (t) {
var app = new spectron.Application({
path: path.join(__dirname, '../node_modules/.bin/electron'),
- args: [path.join(__dirname, '../index.js'), '--data', TEST_DATA, '--db', TEST_DATA_DB],
- env: { NODE_ENV: 'test', RUNNING_IN_SPECTRON: true }
+ args: [
+ path.join(__dirname, '../index.js'),
+ '--data',
+ TEST_DATA,
+ '--db',
+ TEST_DATA_DB
+ ],
+ env: {
+ NODE_ENV: 'test',
+ RUNNING_IN_SPECTRON: true,
+ OPEN_RESULT: FIXTURES
+ }
})
process.on('SIGTERM', () => endTest(app))
return app
}
+function clear () {
+ return Promise.all([
+ new Promise((resolve, reject) =>
+ exec(
+ `git checkout -- "${FIXTURES}"`,
+ error => (error ? reject(error) : resolve())
+ )
+ ),
+ del(FIXTURES),
+ del(TEST_DATA)
+ ])
+}
+
+function init (app, t) {
+ return clear().then(() => waitForLoad(app, t))
+}
+
// Starts the app, waits for it to load, returns a promise
function waitForLoad (app, t) {
- return app.start().then(function () {
- return app.client.waitUntilWindowLoaded()
- }).then(function () {
- // Switch to the main window
- return app.client.windowByIndex(0)
- }).then(function () {
- return app.client.waitUntilWindowLoaded()
- })
+ return app
+ .start()
+ .then(() => app.client.waitUntilWindowLoaded())
+ .then(function () {
+ // Switch to the main window
+ return app.client.windowByIndex(0)
+ })
+ .then(() => app.client.waitUntilWindowLoaded())
+ .then(() =>
+ app.browserWindow
+ .isVisible()
+ .then(isVisible => t.ok(isVisible, 'isVisible'))
+ )
+ .then(() => app)
}
// Quit the app, end the test, either in success (!err) or failure (err)
-function endTest (app) {
- var fixPath = path.join(__dirname, 'fixtures')
- return Promise.all([
- del(fixPath),
- del(TEST_DATA)
- ])
- .then(() => {
- execSync(`git checkout -- "${fixPath}"`)
- return app.stop()
- })
+function endTest (app, t) {
+ return app
+ .stop()
+ .then(() => clear())
+ .then(() => t && t.end())
}
diff --git a/tests/intro.js b/tests/intro.js
deleted file mode 100755
index 93611292..00000000
--- a/tests/intro.js
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/env node
-var EventEmitter = require('events').EventEmitter
-var test = require('tap').test
-var spok = require('spok')
-
-var intro = require('../models/intro')
-
-test('models/intro: should initialize with a default state', function (t) {
- var state = {}
- var emitter = new EventEmitter()
- intro(state, emitter)
- spok(t, state, {
- intro: {
- show: false
- }
- })
- t.end()
-})
-
-test('should show intro screen if there are no dats', function (t) {
- var state = {
- dats: {
- values: []
- },
- intro: {
- show: true
- }
- }
- var emitter = new EventEmitter()
- intro(state, emitter)
- emitter.emit('dats:loaded')
- spok(t, state, {
- intro: {
- show: true
- }
- })
- t.end()
-})
-
-test('should be able to hide the intro screen', function (t) {
- var state = {
- intro: {
- show: true
- }
- }
- var emitter = new EventEmitter()
- intro(state, emitter)
- emitter.emit('intro:hide')
- spok(t, state, {
- intro: {
- show: false
- }
- })
- t.end()
-})
diff --git a/tests/utils/waitForAndClick.js b/tests/utils/waitForAndClick.js
index 8f14bf76..c15f907b 100644
--- a/tests/utils/waitForAndClick.js
+++ b/tests/utils/waitForAndClick.js
@@ -1,10 +1,9 @@
+const waitForVisible = require('./waitForVisible')
+
module.exports = function waitForAndClick (t, app, selector, ms, reverse) {
- return app.client.waitForExist(selector, ms, reverse)
- .then(function () {
- t.ok(true, selector + ' exists.')
+ return waitForVisible(t, app, selector, ms, reverse)
+ .then(selector => {
return app.client.click(selector)
- .then(function () {
- t.ok(true, selector + ' clicked.')
- })
})
+ .then(() => t.ok(true, selector + ' clicked.'))
}
diff --git a/tests/utils/waitForMatch.js b/tests/utils/waitForMatch.js
index 9a6dedba..8c2ed9a7 100644
--- a/tests/utils/waitForMatch.js
+++ b/tests/utils/waitForMatch.js
@@ -13,21 +13,28 @@ module.exports = function waitForMatch (t, app, selector, regexp, ms, reverse) {
var end = Date.now() + ms
function check () {
if (Date.now() > end) {
- return Promise.reject(new Error('Timeout after ' + ms + 'ms tryin to match "' + selector + '" with ' + String(regexp) + '; last value: ' + lastValue))
+ return Promise.reject(
+ new Error(
+ `Timeout after ${ms}ms tryin to match "${selector}" with ${String(
+ regexp
+ )}; last value: ${lastValue}`
+ )
+ )
}
- return app.client.getText(selector)
- .then(function (text) {
- lastValue = text
- var match = regexp.test(text) ? !reverse : reverse
- if (!match) {
- return Promise.reject(new Error('no-match'))
- }
- t.ok(true, '"' + selector + '" matches ' + String(regexp))
- return Promise.resolve(text)
- })
- .catch(function (e) {
- return wait(100).then(check)
- })
+ return app.client
+ .getText(selector)
+ .then(function (text) {
+ lastValue = text
+ var match = regexp.test(text) ? !reverse : reverse
+ if (!match) {
+ return Promise.reject(new Error('no-match'))
+ }
+ t.ok(true, '"' + selector + '" matches ' + String(regexp))
+ return Promise.resolve(text)
+ })
+ .catch(function (e) {
+ return wait(100).then(check)
+ })
}
return check()
}
diff --git a/tests/utils/waitForVisible.js b/tests/utils/waitForVisible.js
new file mode 100644
index 00000000..7c76a4a2
--- /dev/null
+++ b/tests/utils/waitForVisible.js
@@ -0,0 +1,6 @@
+module.exports = function waitForVisible (t, app, selector, ms, reverse) {
+ return app.client.waitForVisible(selector, ms, reverse).then(() => {
+ t.ok(true, selector + ' exists.')
+ return selector
+ })
+}
diff --git a/unit-tests/_helpers/enzymeSetup.js b/unit-tests/_helpers/enzymeSetup.js
new file mode 100644
index 00000000..17aeb935
--- /dev/null
+++ b/unit-tests/_helpers/enzymeSetup.js
@@ -0,0 +1,3 @@
+import configure from 'enzyme-adapter-react-helper'
+
+configure({ disableLifecycleMethods: true })
diff --git a/unit-tests/_helpers/mockWindow.js b/unit-tests/_helpers/mockWindow.js
new file mode 100644
index 00000000..26fa93f9
--- /dev/null
+++ b/unit-tests/_helpers/mockWindow.js
@@ -0,0 +1,3 @@
+global.window = {
+ addEventListener: function () {}
+}
diff --git a/unit-tests/dat-import.js b/unit-tests/dat-import.js
new file mode 100644
index 00000000..41fd4ae8
--- /dev/null
+++ b/unit-tests/dat-import.js
@@ -0,0 +1,14 @@
+import test from 'tape'
+import React from 'react'
+import { shallow } from 'enzyme'
+import DatImport from '../app/components/dat-import'
+import Icon from '../app/components/icon'
+
+test('dat import should render input element and icon', t => {
+ const wrapper = shallow( {}} />)
+
+ t.equal(wrapper.find('input').length, 1)
+ t.equal(wrapper.find(Icon).length, 1)
+
+ t.end()
+})
diff --git a/unit-tests/file-list.js b/unit-tests/file-list.js
new file mode 100644
index 00000000..f017d549
--- /dev/null
+++ b/unit-tests/file-list.js
@@ -0,0 +1,75 @@
+import test from 'tape'
+import React from 'react'
+import { render } from 'enzyme'
+import FileList from '../app/components/file-list'
+
+test('file list should render div with class pa2', t => {
+ const files = []
+ const wrapper = render(
+
+ )
+
+ t.equal(wrapper.find('.pa2').length, 1)
+
+ t.end()
+})
+
+test('file list should render tr(s) equal to number of files in dat', t => {
+ const files = [
+ {
+ path: '/foo',
+ size: 30,
+ isFile: true
+ },
+ {
+ path: '/bar',
+ size: 30,
+ isFile: true
+ },
+ {
+ path: '/baz',
+ size: 30,
+ isFile: false
+ }
+ ]
+ const wrapper = render(
+
+ )
+
+ t.equal(wrapper.find('tr').length, files.length)
+
+ t.end()
+})
+
+test('file list should render a tr(s) even if directories without isEditing and size property given', t => {
+ const files = [
+ {
+ path: '/foo'
+ },
+ {
+ path: '/bar'
+ },
+ {
+ path: '/baz'
+ }
+ ]
+ const wrapper = render(
+
+ )
+
+ t.equal(wrapper.find('tr').length, files.length)
+
+ t.end()
+})
diff --git a/unit-tests/hex-content.js b/unit-tests/hex-content.js
new file mode 100644
index 00000000..8a40159d
--- /dev/null
+++ b/unit-tests/hex-content.js
@@ -0,0 +1,64 @@
+import test from 'tape'
+import React from 'react'
+import { shallow } from 'enzyme'
+import HexContent from '../app/components/hex-content'
+
+test('hexagon should be blue when loading dat', t => {
+ const wrapper = shallow(
+
+ )
+
+ t.equal(wrapper.find('.color-blue.hover-color-blue-hover').length, 2)
+
+ t.end()
+})
+
+test('hexagon should be neutral colored when dat is paused', t => {
+ const wrapper = shallow(
+
+ )
+
+ t.equal(wrapper.find('.color-neutral-30.hover-color-neutral-40').length, 2)
+
+ t.end()
+})
+
+test('hexagon should be green colored when dat is completed', t => {
+ const wrapper = shallow(
+
+ )
+
+ t.equal(wrapper.find('.color-green.hover-color-green-hover').length, 1)
+
+ t.end()
+})
+
+test('hexagon should be neutral colored when dat is resumed but neighter loading nor completed', t => {
+ const wrapper = shallow(
+
+ )
+
+ t.equal(wrapper.find('.color-neutral-30.hover-color-neutral-40').length, 1)
+
+ t.end()
+})
diff --git a/unit-tests/inspect.js b/unit-tests/inspect.js
new file mode 100644
index 00000000..0ef8c691
--- /dev/null
+++ b/unit-tests/inspect.js
@@ -0,0 +1,96 @@
+import test from 'tape'
+import React from 'react'
+import { shallow } from 'enzyme'
+import Inspect from '../app/components/inspect'
+
+test('should render an empty div component', t => {
+ const wrapper = shallow(
+ {}} addFilesToDat={() => {}} />
+ )
+
+ t.equal(wrapper.find('div').length, 1)
+
+ t.end()
+})
+
+test('should set title to dat key when metadata is not present on dat', t => {
+ const key = '40a7f6b6147ae695bcbcff432f684c7bb5291ea339c28c1755196cdeb80bd3f8'
+ const wrapper = shallow(
+ {}}
+ addFilesToDat={() => {}}
+ />
+ )
+
+ t.equal(wrapper.find('h2').text(), key)
+
+ t.end()
+})
+
+test('should show default values when metadata is not present on dat ', t => {
+ const defaultAuthor = 'N/A'
+ const defaultDescription = 'N/A'
+ const defaultSize = '0'
+
+ const key = '40a7f6b6147ae695bcbcff432f684c7bb5291ea339c28c1755196cdeb80bd3f8'
+ const wrapper = shallow(
+ {}}
+ addFilesToDat={() => {}}
+ />
+ )
+
+ const selectableNodes = wrapper.find('.is-selectable')
+
+ t.equal(selectableNodes.at(1).text(), defaultSize)
+ t.equal(selectableNodes.at(3).text(), defaultAuthor)
+ t.equal(selectableNodes.at(4).text(), defaultDescription)
+
+ t.end()
+})
+
+test('should show info when present on dat', t => {
+ const key = '40a7f6b6147ae695bcbcff432f684c7bb5291ea339c28c1755196cdeb80bd3f8'
+ const wrapper = shallow(
+ {}}
+ addFilesToDat={() => {}}
+ />
+ )
+
+ const selectableNodes = wrapper.find('.is-selectable')
+
+ t.equal(selectableNodes.at(0).text(), key)
+ t.equal(selectableNodes.at(1).text(), '9 B')
+ t.equal(selectableNodes.at(2).text(), '2')
+ t.equal(selectableNodes.at(3).text(), 'A-author')
+ t.equal(selectableNodes.at(4).text(), 'A-desc')
+ t.equal(selectableNodes.at(5).text(), 'A-path')
+
+ t.end()
+})
diff --git a/unit-tests/intro.js b/unit-tests/intro.js
new file mode 100644
index 00000000..76d157e9
--- /dev/null
+++ b/unit-tests/intro.js
@@ -0,0 +1,88 @@
+import test from 'tape'
+import React from 'react'
+import { shallow } from 'enzyme'
+import Intro from '../app/components/intro'
+import {
+ Green as GreenButton,
+ Plain as PlainButton
+} from '../app/components/button'
+
+test('intro screen should render only empty div when show is false', t => {
+ const wrapper = shallow( )
+
+ t.equal(wrapper.find('div').length, 1)
+
+ t.end()
+})
+
+test('intro screen should render only one element when screen given', t => {
+ const fn = () => {}
+ const show = true
+ const wrapper = shallow(
+
+ )
+
+ t.equal(wrapper.find('p').length, 1)
+
+ t.end()
+})
+
+test('intro screen should not render plain button when screen is 1', t => {
+ const fn = () => {}
+ const show = true
+ const wrapper = shallow(
+
+ )
+
+ t.equal(wrapper.find(PlainButton).length, 0)
+
+ t.end()
+})
+
+test('intro screen should render plain button when screen is not 1', t => {
+ const fn = () => {}
+ const show = true
+ const wrapper = shallow(
+
+ )
+
+ t.equal(wrapper.find(PlainButton).length, 1)
+
+ t.end()
+})
+
+test('intro screen should render Done button when screen is not less than 5', t => {
+ const fn = () => {}
+ const show = true
+ const wrapper = shallow(
+
+ )
+
+ t.equal(
+ wrapper
+ .find(GreenButton)
+ .children()
+ .text(),
+ 'Done'
+ )
+
+ t.end()
+})
+
+test('intro screen should render Next button when screen is less than 5', t => {
+ const fn = () => {}
+ const show = true
+ const wrapper = shallow(
+
+ )
+
+ t.equal(
+ wrapper
+ .find(GreenButton)
+ .children()
+ .text(),
+ 'Next'
+ )
+
+ t.end()
+})
diff --git a/unit-tests/status-bar.js b/unit-tests/status-bar.js
new file mode 100644
index 00000000..5c160bcd
--- /dev/null
+++ b/unit-tests/status-bar.js
@@ -0,0 +1,21 @@
+import test from 'tape'
+import React from 'react'
+import { shallow } from 'enzyme'
+import StatusBar from '../app/components/status-bar'
+
+test('status bar should render a fragment with single child (div) when show is false', t => {
+ const wrapper = shallow( )
+
+ t.equal(wrapper.find('div').length, 1)
+
+ t.end()
+})
+
+test('status bar should render a Bar with two childrens when show is true', t => {
+ const show = true
+ const wrapper = shallow( )
+
+ t.equal(wrapper.find('span').length, 2)
+
+ t.end()
+})
diff --git a/unit-tests/status.js b/unit-tests/status.js
new file mode 100644
index 00000000..c459c0fd
--- /dev/null
+++ b/unit-tests/status.js
@@ -0,0 +1,116 @@
+import test from 'tape'
+import React from 'react'
+import { shallow } from 'enzyme'
+import Status from '../app/components/status'
+
+test('progress text should read "Paused" when dat is paused', t => {
+ const wrapper = shallow(
+
+ )
+
+ t.equal(
+ wrapper
+ .find('.f7.f6-l')
+ .children()
+ .children()
+ .text(),
+ 'Paused.'
+ )
+
+ t.end()
+})
+
+test('progress text should show upload speed when dat is completed', t => {
+ const wrapper = shallow(
+
+ )
+
+ t.equal(
+ wrapper
+ .find('.f7.f6-l')
+ .children()
+ .children()
+ .text(),
+ 'Complete. ↑ 30 B/s'
+ )
+
+ t.end()
+})
+
+test('progress text should show wait message when dat is stale', t => {
+ const wrapper = shallow(
+
+ )
+
+ t.equal(
+ wrapper
+ .find('.f7.f6-l')
+ .children()
+ .children()
+ .text(),
+ 'waiting for peers…'
+ )
+
+ t.end()
+})
+
+test('progress text should show up/down speed when dat is loading', t => {
+ const wrapper = shallow(
+
+ )
+
+ t.equal(
+ wrapper
+ .find('.f7.f6-l')
+ .children()
+ .children()
+ .text(),
+ '↓ 40 B/s↑ 30 B/s'
+ )
+
+ t.end()
+})
diff --git a/unit-tests/table-row.js b/unit-tests/table-row.js
new file mode 100644
index 00000000..651a9c85
--- /dev/null
+++ b/unit-tests/table-row.js
@@ -0,0 +1,155 @@
+import test from 'tape'
+import React from 'react'
+import { shallow } from 'enzyme'
+import TableRow from '../app/components/table-row'
+
+test('table row should render author as Anonymous if not present on dat', t => {
+ const fn = () => {}
+ const wrapper = shallow(
+
+ )
+
+ t.equal(wrapper.find('.author').text(), 'Anonymous • ')
+
+ t.end()
+})
+
+test('table row should render author name if present on dat', t => {
+ const fn = () => {}
+ const wrapper = shallow(
+
+ )
+
+ t.equal(wrapper.find('.author').text(), 'A-author • ')
+
+ t.end()
+})
+
+test('table row should render writable state as Read-only if not present on dat', t => {
+ const fn = () => {}
+ const wrapper = shallow(
+
+ )
+
+ t.equal(wrapper.find('.title').text(), 'Read-only')
+
+ t.end()
+})
+
+test('table row should render writable state as Read & Write if dat is writable', t => {
+ const fn = () => {}
+ const wrapper = shallow(
+
+ )
+
+ t.equal(wrapper.find('.title').text(), 'Read & Write')
+
+ t.end()
+})
+
+test('table row should render size equals to 0 when length is not defined on dat', t => {
+ const fn = () => {}
+ const wrapper = shallow(
+
+ )
+
+ t.equal(wrapper.find('.size').text(), '0 B')
+
+ t.end()
+})
+
+test('table row should render size equals to length property on stats', t => {
+ const fn = () => {}
+ const wrapper = shallow(
+
+ )
+
+ t.equal(wrapper.find('.size').text(), '40 B')
+
+ t.end()
+})
+
+test('table row should render peers', t => {
+ const fn = () => {}
+ const wrapper = shallow(
+
+ )
+
+ t.equal(wrapper.find('.network').text(), '2')
+
+ t.end()
+})
diff --git a/unit-tests/table.js b/unit-tests/table.js
new file mode 100644
index 00000000..d51d33ff
--- /dev/null
+++ b/unit-tests/table.js
@@ -0,0 +1,25 @@
+import test from 'tape'
+import React from 'react'
+import { shallow } from 'enzyme'
+import Table from '../app/components/table'
+import TableRowContainer from '../app/containers/table-row'
+
+test('table should render columns (Link, Status, Size, Peers)', t => {
+ const show = true
+ const wrapper = shallow(
)
+
+ const columns = wrapper.find('.tl').map(node => node.text().toLowerCase())
+
+ t.deepLooseEqual(columns.sort(), ['link', 'status', 'size', 'peers'].sort())
+
+ t.end()
+})
+
+test('table should render same number of table rows as given dats', t => {
+ const show = true
+ const wrapper = shallow()
+
+ t.equal(wrapper.find(TableRowContainer).length, 3)
+
+ t.end()
+})
diff --git a/unit-tests/title-field.js b/unit-tests/title-field.js
new file mode 100644
index 00000000..0b98012e
--- /dev/null
+++ b/unit-tests/title-field.js
@@ -0,0 +1,54 @@
+import test from 'tape'
+import React from 'react'
+import { shallow } from 'enzyme'
+import TitleField from '../app/components/title-field'
+import {
+ Plain as PlainButton,
+ Green as GreenButton
+} from '../app/components/button'
+import Icon from '../app/components/icon'
+
+test('title field show not be editable if dat is not writable', t => {
+ const wrapper = shallow( )
+
+ t.equal(wrapper.find(PlainButton).length, 0)
+ t.equal(wrapper.find(GreenButton).length, 0)
+
+ t.end()
+})
+
+test('title field show edit button if dat is editable and is not editing', t => {
+ const wrapper = shallow( )
+
+ t.equal(wrapper.find(Icon).length, 1)
+
+ t.end()
+})
+
+test('title field show plain button if title value is equal to input field value when editing', async t => {
+ const field =
+ const wrapper = shallow(field)
+ wrapper.setState({
+ editing: true,
+ modified: false
+ })
+
+ t.equal(wrapper.find(PlainButton).length, 1)
+ t.equal(wrapper.find(GreenButton).length, 0)
+
+ t.end()
+})
+
+test('title field show green button if title value is not equal to input field value when editing', t => {
+ const field =
+ const wrapper = shallow(field)
+ wrapper.setState({
+ editing: true,
+ modified: true
+ })
+
+ t.equal(wrapper.find(PlainButton).length, 0)
+ t.equal(wrapper.find(GreenButton).length, 1)
+
+ t.end()
+})
diff --git a/webpack.config.js b/webpack.config.js
new file mode 100644
index 00000000..d3150abe
--- /dev/null
+++ b/webpack.config.js
@@ -0,0 +1,36 @@
+const nodeExternals = require('webpack-node-externals')
+const path = require('path')
+module.exports = (_, argv) => ({
+ entry: path.normalize(`${__dirname}/app/index.js`),
+ target: 'electron-main',
+ externals: [nodeExternals({
+ whitelist: /react-file-drop/
+ })],
+ output: {
+ path: path.normalize(`${__dirname}/static`),
+ filename: 'bundle.js',
+ libraryTarget: 'commonjs2'
+ },
+ optimization: {
+ nodeEnv: argv.mode
+ },
+ devtool: 'inline-source-map',
+ node: {
+ __dirname: true
+ },
+ module: {
+ rules: [
+ {
+ test: /\.js$/,
+ include: path.normalize(`${__dirname}/app`),
+ loader: 'babel-loader',
+ query: {
+ presets: ['react'],
+ plugins: [
+ 'transform-object-rest-spread'
+ ]
+ }
+ }
+ ]
+ }
+})