diff --git a/.appveyor.yml b/.appveyor.yml index effc9e3127..012b6cb6e1 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -20,7 +20,7 @@ install: - npm --version - npm config set msvs_version 2013 - npm install 7zip-bin-win > NUL - - npm install > NUL + - npm run bootstrap - npm test cache: @@ -32,14 +32,14 @@ cache: #---------------------------------# build_script: - - if %APPVEYOR_REPO_TAG%==true npm run build-n-package + - if %APPVEYOR_REPO_TAG%==true npm run package-app #---------------------------------# # artifacts configuration # #---------------------------------# artifacts: - - path: dist\squirrel-windows\* + - path: packages\insomnia-app\dist\squirrel-windows\* name: dist #---------------------------------# diff --git a/.gitignore b/.gitignore index 91a0e2c9bb..da21aafb1c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,27 +1,22 @@ -node_modules -.idea -.vscode -dist/* -build/* -.DS_Store -coverage - -# Generated -app/main.min.js -app/node_modules - -# Logs logs *.log npm-debug.log* - -# Runtime data +yarn-debug.log* +yarn-error.log* pids *.pid *.seed - -# Optional npm cache directory +*.pid.lock +lib-cov +coverage +.lock-wscript +build/Release +node_modules/ .npm - -# Optional REPL history +.eslintcache .node_repl_history +*.tgz +.yarn-integrity +.env +.idea +.DS_Store diff --git a/.travis.yml b/.travis.yml index 6258fcd725..6fda350da3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,16 +35,14 @@ cache: - $HOME/.electron - $HOME/.cache -install: -- npm install > /dev/null +script: - node --version - npm --version - -script: +- npm run bootstrap - npm test before_deploy: -- npm run build-n-package +- npm run package-app deploy: provider: releases @@ -53,10 +51,10 @@ deploy: file_glob: true prerelease: true file: - - dist/**/*.zip - - dist/**/*.dmg - - dist/**/*.deb - - dist/**/*.AppImage - - dist/**/*.tar.gz + - packages/insomnia-app/dist/**/*.zip + - packages/insomnia-app/dist/**/*.dmg + - packages/insomnia-app/dist/**/*.deb + - packages/insomnia-app/dist/**/*.AppImage + - packages/insomnia-app/dist/**/*.tar.gz on: tags: true diff --git a/README.md b/README.md index c46f6e111c..7aea83a446 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,6 @@ [![Insomnia](https://img.shields.io/badge/maintainer-Insomnia-purple.svg?colorB=6e60cc)](https://insomnia.rest) [![Travis](https://api.travis-ci.org/getinsomnia/insomnia.svg)](https://travis-ci.org/getinsomnia/insomnia) -[![AppVeyor](https://img.shields.io/appveyor/ci/gschier/insomnia.svg)](https://ci.appveyor.com/project/gschier/insomnia) -[![license](https://img.shields.io/github/license/getinsomnia/insomnia.svg)](LICENSE) [![Slack Channel](https://chat.insomnia.rest/badge.svg)](https://chat.insomnia.rest/) [![Twitter Follow](https://img.shields.io/twitter/follow/getinsomnia.svg?style=social&label=%40GetInsomnia%20on%20Twitter&style=plastic)](https://twitter.com/getinsomnia) @@ -43,16 +41,20 @@ Development on Insomnia can be done on Mac, Windows, or Linux as long as you hav
Initial Dev Setup +This repository is structured as a monorepo and contains many Node.JS packages. Each package has +it's own set of command, but the most common commands are available from the +root `[package.json](package.json)` adn can be accessed using the `npm run ...` command. Here +are the only three commands you should need to start developing on the app. + ```bash -# Install dependencies and build add-ons for Electron -npm install -npm run rebuild +# Install and Link Dependencies +npm run bootstrap -# Start app -npm run dev - -# Run tests +# Run Tests npm test + +# Start App with Live Reload +npm run start-app ```
@@ -83,7 +85,3 @@ Here is a list of plugins available for installation via NPM. [Swaggymnia](https://github.com/mlabouardy/swaggymnia) – Generate [Swagger](https://swagger.io/) documentation for your existing API in Insomnia. - -## License - -[GNU AGPLv3](LICENSE) © [Insomnia](https://insomnia.rest) diff --git a/app/common/__tests__/cookies.test.js b/app/common/__tests__/cookies.test.js deleted file mode 100644 index 2bc755acec..0000000000 --- a/app/common/__tests__/cookies.test.js +++ /dev/null @@ -1,146 +0,0 @@ -import {CookieJar} from 'tough-cookie'; -import * as cookieUtils from '../cookies'; -import {globalBeforeEach} from '../../__jest__/before-each'; - -describe('jarFromCookies()', () => { - beforeEach(globalBeforeEach); - it('returns valid cookies', done => { - const jar = cookieUtils.jarFromCookies([{ - key: 'foo', - value: 'bar', - domain: 'google.com' - }]); - - jar.store.getAllCookies((err, cookies) => { - expect(err).toBeNull(); - expect(cookies[0].domain).toEqual('google.com'); - expect(cookies[0].key).toEqual('foo'); - expect(cookies[0].value).toEqual('bar'); - expect(cookies[0].creation instanceof Date).toEqual(true); - expect(cookies[0].expires).toEqual('Infinity'); - done(); - }); - }); - - it('handles malformed JSON', () => { - const jar = cookieUtils.jarFromCookies('not a jar'); - expect(jar.constructor.name).toBe('CookieJar'); - }); -}); - -describe('cookiesFromJar()', () => { - beforeEach(globalBeforeEach); - it('returns valid jar', async () => { - const d = new Date(); - const initialCookies = [{ - key: 'bar', - value: 'baz', - domain: 'insomnia.rest', - expires: d - }, { - // This one will fail to parse, and be skipped - bad: 'cookie' - }]; - - const jar = CookieJar.fromJSON({cookies: initialCookies}); - - const cookies = await cookieUtils.cookiesFromJar(jar); - - expect(cookies[0].domain).toBe('insomnia.rest'); - expect(cookies[0].key).toBe('bar'); - expect(cookies[0].value).toBe('baz'); - expect(cookies[0].creation).toMatch(/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/); - expect(cookies[0].expires).toEqual(d.toISOString()); - }); - - it('handles bad jar', async () => { - const jar = CookieJar.fromJSON({cookies: []}); - - // MemoryStore never actually throws errors, so lets mock the - // function to force it to this time. - jar.store.getAllCookies = cb => cb(new Error('Dummy Error')); - const cookies = await cookieUtils.cookiesFromJar(jar); - - // Cookies failed to p - expect(cookies.length).toBe(0); - }); -}); - -describe('cookieHeaderValueForUri()', () => { - beforeEach(globalBeforeEach); - it('gets cookies for valid case', async () => { - const jar = cookieUtils.jarFromCookies([{ - key: 'foo', - value: 'bar', - path: '/', - domain: 'google.com' - }, { - key: 'foo', - value: 'inner', - path: '/inner', - domain: 'google.com' - }]); - - expect(await cookieUtils.cookieHeaderValueForUri(jar, 'https://google.com/foo/bar')) - .toBe('foo=bar'); - - expect(await cookieUtils.cookieHeaderValueForUri(jar, 'https://insomnia.rest/')) - .toBe(''); - - expect(await cookieUtils.cookieHeaderValueForUri(jar, 'https://google.com/inner')) - .toBe('foo=inner; foo=bar'); - }); - - it('handles errors properly', async () => { - const jar = cookieUtils.jarFromCookies([]); - jar.getCookies = (uri, cb) => cb(new Error('Dummy error')); - - expect( - await cookieUtils.cookieHeaderValueForUri(jar, 'https://google.com') - ).toBe(''); - }); - - describe('cookieToString()', () => { - beforeEach(globalBeforeEach); - it('does its thing', async () => { - const jar = cookieUtils.jarFromCookies([{ - key: 'foo', - value: 'bar', - path: '/', - domain: 'google.com' - }, { - key: 'foo1', - value: 'bar', - path: '/', - domain: 'google.com', - hostOnly: true - }, { - key: 'foo2', - value: 'bar', - path: '/', - domain: 'google.com', - hostOnly: false - }, { - key: 'foo3', - value: 'bar', - path: '/somepath' - }]); - - const cookies = await cookieUtils.cookiesFromJar(jar); - - expect(cookies.length).toBe(4); - - expect(cookieUtils.cookieToString(cookies[0])) - .toBe('foo=bar; Domain=google.com; Path=/'); - - expect(cookieUtils.cookieToString(cookies[1])) - .toBe('foo1=bar; Path=/; Domain=google.com'); - - expect(cookieUtils.cookieToString(cookies[2])) - .toBe('foo2=bar; Domain=google.com; Path=/'); - - expect(cookieUtils.cookieToString(cookies[3])) - .toBe('foo3=bar; Path=/somepath'); - }); - }); -}); diff --git a/app/common/__tests__/misc.test.js b/app/common/__tests__/misc.test.js deleted file mode 100644 index 638216a80f..0000000000 --- a/app/common/__tests__/misc.test.js +++ /dev/null @@ -1,234 +0,0 @@ -import * as misc from '../misc'; -import {globalBeforeEach} from '../../__jest__/before-each'; - -describe('getBasicAuthHeader()', () => { - beforeEach(globalBeforeEach); - it('succeed with username and password', () => { - const header = misc.getBasicAuthHeader('user', 'password'); - expect(header).toEqual({ - name: 'Authorization', - value: 'Basic dXNlcjpwYXNzd29yZA==' - }); - }); - - it('succeed with no username', () => { - const header = misc.getBasicAuthHeader(null, 'password'); - expect(header).toEqual({ - name: 'Authorization', - value: 'Basic OnBhc3N3b3Jk' - }); - }); - - it('succeed with username and empty password', () => { - const header = misc.getBasicAuthHeader('user', ''); - expect(header).toEqual({ - name: 'Authorization', - value: 'Basic dXNlcjo=' - }); - }); - - it('succeed with username and null password', () => { - const header = misc.getBasicAuthHeader('user', null); - expect(header).toEqual({ - name: 'Authorization', - value: 'Basic dXNlcjo=' - }); - }); -}); - -describe('hasAuthHeader()', () => { - beforeEach(globalBeforeEach); - it('finds valid header', () => { - const yes = misc.hasAuthHeader([ - {name: 'foo', value: 'bar'}, - {name: 'authorization', value: 'foo'} - ]); - - expect(yes).toEqual(true); - }); - - it('finds valid header case insensitive', () => { - const yes = misc.hasAuthHeader([ - {name: 'foo', value: 'bar'}, - {name: 'AuthOrizAtiOn', value: 'foo'} - ]); - - expect(yes).toEqual(true); - }); -}); - -describe('generateId()', () => { - beforeEach(globalBeforeEach); - it('generates a valid ID', () => { - const id = misc.generateId('foo'); - expect(id).toMatch(/^foo_[a-z0-9]{32}$/); - }); - - it('generates without prefix', () => { - const id = misc.generateId(); - expect(id).toMatch(/^[a-z0-9]{32}$/); - }); -}); - -describe('setDefaultProtocol()', () => { - beforeEach(globalBeforeEach); - it('no-ops on empty url', () => { - const url = misc.setDefaultProtocol(''); - expect(url).toBe(''); - }); - - it('correctly sets protocol for empty', () => { - const url = misc.setDefaultProtocol('google.com'); - expect(url).toBe('http://google.com'); - }); - - it('does not set for valid url', () => { - const url = misc.setDefaultProtocol('https://google.com'); - expect(url).toBe('https://google.com'); - }); - - it('does not set for valid url', () => { - const url = misc.setDefaultProtocol('http://google.com'); - expect(url).toBe('http://google.com'); - }); - - it('does not set for invalid url', () => { - const url = misc.setDefaultProtocol('httbad://google.com'); - expect(url).toBe('httbad://google.com'); - }); -}); - -describe('prepareUrlForSending()', () => { - beforeEach(globalBeforeEach); - it('does not touch normal url', () => { - const url = misc.prepareUrlForSending('http://google.com'); - expect(url).toBe('http://google.com/'); - }); - - it('works with no protocol', () => { - const url = misc.prepareUrlForSending('google.com'); - expect(url).toBe('http://google.com/'); - }); - - it('encodes pathname', () => { - const url = misc.prepareUrlForSending('https://google.com/foo bar/100%/foo'); - expect(url).toBe('https://google.com/foo%20bar/100%25/foo'); - }); - - it('encodes pathname mixed encoding', () => { - const url = misc.prepareUrlForSending('https://google.com/foo bar baz%20qux/100%/foo%25'); - expect(url).toBe('https://google.com/foo%20bar%20baz%20qux/100%25/foo%25'); - }); - - it('leaves already encoded pathname', () => { - const url = misc.prepareUrlForSending('https://google.com/foo%20bar%20baz/100%25/foo'); - expect(url).toBe('https://google.com/foo%20bar%20baz/100%25/foo'); - }); - - it('encodes querystring', () => { - const url = misc.prepareUrlForSending('https://google.com?s=foo bar 100%&hi'); - expect(url).toBe('https://google.com/?s=foo%20bar%20100%25&hi'); - }); - - it('encodes querystring with mixed spaces', () => { - const url = misc.prepareUrlForSending('https://google.com?s=foo %20100%'); - expect(url).toBe('https://google.com/?s=foo%20%20100%25'); - }); - - it('encodes querystring with repeated keys', () => { - const url = misc.prepareUrlForSending('https://google.com/;@,!?s=foo,;@-!&s=foo %20100%'); - expect(url).toBe('https://google.com/;@,!?s=foo,%3B%40-!&s=foo%20%20100%25'); - }); - - it('doesn\'t decode ignored characters', () => { - // Encoded should skip raw versions of @ ; , - const url = misc.prepareUrlForSending('https://google.com/@;,&^+'); - expect(url).toBe('https://google.com/@;,%26%5E+'); - - // Encoded should skip encoded versions of @ ; , - const url2 = misc.prepareUrlForSending('https://google.com/%40%3B%2C%26%5E'); - expect(url2).toBe('https://google.com/%40%3B%2C%26%5E'); - }); - - it('leaves already encoded characters alone', () => { - const url = misc.prepareUrlForSending('https://google.com/%2B%2A%2F>'); - expect(url).toBe('https://google.com/%2B%2A%2F%3E'); - }); - - it('doesn\'t encode if last param set', () => { - const url = misc.prepareUrlForSending('https://google.com/%%?foo=%%', false); - expect(url).toBe('https://google.com/%%?foo=%%'); - }); -}); - -describe('filterHeaders()', () => { - beforeEach(globalBeforeEach); - it('handles bad headers', () => { - expect(misc.filterHeaders(null, null)).toEqual([]); - expect(misc.filterHeaders([], null)).toEqual([]); - expect(misc.filterHeaders(['bad'], null)).toEqual([]); - expect(misc.filterHeaders(['bad'], 'good')).toEqual([]); - expect(misc.filterHeaders(null, 'good')).toEqual([]); - expect(misc.filterHeaders([{name: 'good', value: 'valid'}], null)).toEqual([]); - expect(misc.filterHeaders([{name: 'good', value: 'valid'}], 'good')) - .toEqual([{name: 'good', value: 'valid'}]); - }); -}); - -describe('keyedDebounce()', () => { - beforeEach(async () => { - await globalBeforeEach(); - jest.useFakeTimers(); - }); - - it('debounces correctly', () => { - const resultsList = []; - const fn = misc.keyedDebounce(results => { - resultsList.push(results); - }, 100); - - fn('foo', 'bar'); - fn('baz', 'bar'); - fn('foo', 'bar2'); - fn('foo', 'bar3'); - fn('multi', 'foo', 'bar', 'baz'); - - expect(setTimeout.mock.calls.length).toBe(5); - expect(resultsList).toEqual([]); - - jest.runAllTimers(); - - expect(resultsList).toEqual([{ - foo: ['bar3'], - baz: ['bar'], - multi: ['foo', 'bar', 'baz'] - }]); - }); -}); - -describe('debounce()', () => { - beforeEach(async () => { - await globalBeforeEach(); - jest.useFakeTimers(); - }); - - it('debounces correctly', () => { - const resultList = []; - const fn = misc.debounce((...args) => { - resultList.push(args); - }, 100); - - fn('foo'); - fn('foo'); - fn('multi', 'foo', 'bar', 'baz'); - fn('baz', 'bar'); - fn('foo', 'bar3'); - - expect(setTimeout.mock.calls.length).toBe(5); - expect(resultList).toEqual([]); - - jest.runAllTimers(); - - expect(resultList).toEqual([['foo', 'bar3']]); - }); -}); diff --git a/app/common/__tests__/querystring.test.js b/app/common/__tests__/querystring.test.js deleted file mode 100644 index b4133a254e..0000000000 --- a/app/common/__tests__/querystring.test.js +++ /dev/null @@ -1,176 +0,0 @@ -import * as querystringUtils from '../querystring'; -import {globalBeforeEach} from '../../__jest__/before-each'; - -describe('getBasicAuthHeader()', () => { - beforeEach(globalBeforeEach); - it('gets joiner for bare URL', () => { - const joiner = querystringUtils.getJoiner('http://google.com'); - expect(joiner).toBe('?'); - }); - - it('gets joiner for invalid URL', () => { - const joiner = querystringUtils.getJoiner('hi'); - expect(joiner).toBe('?'); - }); - - it('gets joiner for URL with question mark', () => { - const joiner = querystringUtils.getJoiner('http://google.com?'); - expect(joiner).toBe('&'); - }); - - it('gets joiner for URL with params', () => { - const joiner = querystringUtils.getJoiner('http://google.com?foo=bar'); - expect(joiner).toBe('&'); - }); - - it('gets joiner for URL with hash', () => { - const joiner = querystringUtils.getJoiner('http://google.com?foo=bar#hi'); - expect(joiner).toBe('&'); - }); - - it('gets joiner for URL with ampersand', () => { - const joiner = querystringUtils.getJoiner( - 'http://google.com?foo=bar&baz=qux' - ); - expect(joiner).toBe('&'); - }); -}); - -describe('joinUrl()', () => { - beforeEach(globalBeforeEach); - it('joins bare URL', () => { - const url = querystringUtils.joinUrl( - 'http://google.com', - 'foo=bar' - ); - expect(url).toBe('http://google.com?foo=bar'); - }); - - it('joins with hash', () => { - const url = querystringUtils.joinUrl( - 'http://google.com#hash', - 'foo=bar' - ); - expect(url).toBe('http://google.com?foo=bar#hash'); - }); - - it('joins hash and querystring', () => { - const url = querystringUtils.joinUrl( - 'http://google.com?baz=qux#hash', - 'foo=bar' - ); - expect(url).toBe('http://google.com?baz=qux&foo=bar#hash'); - }); - - it('joins multi-hash and querystring', () => { - const url = querystringUtils.joinUrl( - 'http://google.com?hi=there&baz=qux#hash#hi#hi', - 'foo=bar' - ); - expect(url).toBe('http://google.com?hi=there&baz=qux&foo=bar#hash#hi#hi'); - }); - - it('joins URL with querystring', () => { - const url = querystringUtils.joinUrl( - 'http://google.com?hi=there', - 'foo=bar%20baz' - ); - expect(url).toBe('http://google.com?hi=there&foo=bar%20baz'); - }); -}); - -describe('build()', () => { - beforeEach(globalBeforeEach); - it('builds simple param', () => { - const str = querystringUtils.build({name: 'foo', value: 'bar??'}); - expect(str).toBe('foo=bar%3F%3F'); - }); - - it('builds param without value', () => { - const str = querystringUtils.build({name: 'foo'}); - expect(str).toBe('foo'); - }); - - it('builds empty param without name', () => { - const str = querystringUtils.build({value: 'bar'}); - expect(str).toBe(''); - }); - - it('builds with numbers', () => { - const str = querystringUtils.build({name: 'number', value: 10}); - const str2 = querystringUtils.build({name: 'number', value: 0}); - - expect(str).toBe('number=10'); - expect(str2).toBe('number=0'); - }); -}); - -describe('buildFromParams()', () => { - beforeEach(globalBeforeEach); - it('builds from params', () => { - const str = querystringUtils.buildFromParams([ - {name: 'foo', value: 'bar??'}, - {name: 'hello'}, - {name: 'hi there', value: 'bar??'}, - {name: '', value: 'bar??'}, - {name: '', value: ''} - ]); - - expect(str).toBe('foo=bar%3F%3F&hello&hi%20there=bar%3F%3F'); - }); - it('builds from params', () => { - const str = querystringUtils.buildFromParams([ - {name: 'foo', value: 'bar??'}, - {name: 'hello'}, - {name: 'hi there', value: 'bar??'}, - {name: '', value: 'bar??'}, - {name: '', value: ''} - ], false); - - expect(str).toBe('foo=bar%3F%3F&hello=&hi%20there=bar%3F%3F&=bar%3F%3F&='); - }); -}); - -describe('deconstructToParams()', () => { - beforeEach(globalBeforeEach); - it('builds from params', () => { - const str = querystringUtils.deconstructToParams( - 'foo=bar%3F%3F&hello&hi%20there=bar%3F%3F&=&=val' - ); - - expect(str).toEqual([ - {name: 'foo', value: 'bar??'}, - {name: 'hello', value: ''}, - {name: 'hi there', value: 'bar??'} - ]); - }); - it('builds from params with =', () => { - const str = querystringUtils.deconstructToParams( - 'foo=bar&1=2=3=4&hi' - ); - - expect(str).toEqual([ - {name: 'foo', value: 'bar'}, - {name: '1', value: '2=3=4'}, - {name: 'hi', value: ''} - ]); - }); -}); - -describe('deconstructToParams()', () => { - beforeEach(globalBeforeEach); - it('builds from params not strict', () => { - const str = querystringUtils.deconstructToParams( - 'foo=bar%3F%3F&hello&hi%20there=bar%3F%3F&=&=val', - false - ); - - expect(str).toEqual([ - {name: 'foo', value: 'bar??'}, - {name: 'hello', value: ''}, - {name: 'hi there', value: 'bar??'}, - {name: '', value: ''}, - {name: '', value: 'val'} - ]); - }); -}); diff --git a/app/common/querystring.js b/app/common/querystring.js deleted file mode 100644 index 4b0df8ecff..0000000000 --- a/app/common/querystring.js +++ /dev/null @@ -1,138 +0,0 @@ -// @flow -import * as util from './misc.js'; - -type Parameter = Object & { - name: string, - value: string -} - -/** Join a URL with a querystring */ -export function joinUrl (url: string, qs: string): string { - if (!qs) { - return url; - } - - if (!url) { - return qs; - } - - const [base, ...hashes] = url.split('#'); - - // TODO: Make this work with URLs that have a #hash component - const baseUrl = base || ''; - const joiner = getJoiner(base); - const hash = hashes.length ? `#${hashes.join('#')}` : ''; - return `${baseUrl}${joiner}${qs}${hash}`; -} - -export function extractFromUrl (url: string): string { - if (!url) { - return ''; - } - - // NOTE: This only splits on first ? sign. '1=2=3' --> ['1', '2=3'] - const things = url.split('?'); - if (things.length === 1) { - return ''; - } else { - const qsWithHash = things.slice(1).join('?'); - return qsWithHash.replace(/#.*/, ''); - } -} - -export function getJoiner (url: string): string { - url = url || ''; - return url.indexOf('?') === -1 ? '?' : '&'; -} - -/** Build a querystring param out of a name/value pair */ -export function build (param: Parameter, strict: boolean = true): string { - // Skip non-name ones in strict mode - if (strict && !param.name) { - return ''; - } - - // Cast number values to strings - if (typeof param.value === 'number') { - param.value += ''; - } - - if (!strict || param.value) { - // Don't encode ',' in values - const value = util.flexibleEncodeComponent(param.value || '').replace(/%2C/gi, ','); - const name = util.flexibleEncodeComponent(param.name || ''); - - return `${name}=${value}`; - } else { - return util.flexibleEncodeComponent(param.name); - } -} - -/** - * Build a querystring from a list of name/value pairs - * @param parameters - * @param strict allow empty names and values - */ -export function buildFromParams ( - parameters: Array, - strict: boolean = true -): string { - let items = []; - - for (const param of parameters) { - let built = build(param, strict); - - if (!built) { - continue; - } - - items.push(built); - } - - return items.join('&'); -} - -/** - * Deconstruct a querystring to name/value pairs - * @param qs - * @param strict allow empty names and values - */ -export function deconstructToParams (qs: ?string, strict: boolean = true): Array { - const pairs: Array = []; - - if (!qs) { - return pairs; - } - - const stringPairs = qs.split('&'); - - for (let stringPair of stringPairs) { - // NOTE: This only splits on first equals sign. '1=2=3' --> ['1', '2=3'] - const [encodedName, ...encodedValues] = stringPair.split('='); - const encodedValue = encodedValues.join('='); - - let name = ''; - try { - name = decodeURIComponent(encodedName || ''); - } catch (e) { - // Just leave it - name = encodedName; - } - - let value = ''; - try { - value = decodeURIComponent(encodedValue || ''); - } catch (e) { - // Just leave it - value = encodedValue; - } - - if (strict && !name) { - continue; - } - - pairs.push({name, value}); - } - - return pairs; -} diff --git a/app/package-lock.json b/app/package-lock.json deleted file mode 100644 index eaf81f54a8..0000000000 --- a/app/package-lock.json +++ /dev/null @@ -1,2454 +0,0 @@ -{ - "name": "insomnia", - "version": "5.12.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "JSONSelect": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/JSONSelect/-/JSONSelect-0.4.0.tgz", - "integrity": "sha1-oI7cxn6z/L6Z7WMIVTRKDPKCu40=" - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "acorn": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz", - "integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ=" - }, - "ajv": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz", - "integrity": "sha1-RBT/dKUIecII7l/cgm4ywwNUnto=", - "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - } - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" - }, - "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=" - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.3" - } - }, - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" - }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" - }, - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "ast-types": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.15.tgz", - "integrity": "sha1-ju8IJ/BN/w7IhXupJavj/qYZTlI=" - }, - "async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", - "requires": { - "lodash": "4.17.4" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "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=" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base62": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz", - "integrity": "sha1-e0F0wvlESXU7EcJlHAg9qEGnsIQ=" - }, - "base64-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==" - }, - "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" - } - }, - "binary-search-tree": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz", - "integrity": "sha1-fbs7IQ/coIJFDa0jNMMErzm9x4Q=", - "requires": { - "underscore": "1.4.4" - }, - "dependencies": { - "underscore": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", - "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=" - } - } - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "requires": { - "inherits": "2.0.3" - } - }, - "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "requires": { - "hoek": "4.2.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" - } - }, - "buffer": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.0.8.tgz", - "integrity": "sha512-xXvjQhVNz50v2nPeoOsNqWCLGfiv4ji/gXZM28jnVwdLJxH4mFyqgqCKfaK9zf1KUbG6zTkjLOy7ou+jSMarGA==", - "requires": { - "base64-js": "1.2.1", - "ieee754": "1.1.8" - } - }, - "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" - } - }, - "chownr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" - }, - "cjson": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.2.1.tgz", - "integrity": "sha1-c82KrWXZ4VBfmvF0TTt5wVJ2gqU=" - }, - "clone": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", - "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=" - }, - "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=" - }, - "colors": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", - "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=" - }, - "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.11.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "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=" - }, - "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" - } - } - } - }, - "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" - } - }, - "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" - } - }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" - }, - "ebnf-parser": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/ebnf-parser/-/ebnf-parser-0.1.10.tgz", - "integrity": "sha1-zR9rpHfFY4xAyX7ZtXLbW6tdgzE=" - }, - "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" - } - }, - "electron-context-menu": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-0.9.1.tgz", - "integrity": "sha1-7U3yDAgEkcPJlqv8s2MVmUajgFg=", - "requires": { - "electron-dl": "1.10.0", - "electron-is-dev": "0.1.2" - } - }, - "electron-dl": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/electron-dl/-/electron-dl-1.10.0.tgz", - "integrity": "sha1-+UQWBkBW/G8qhq5JhhTJNSaJCvk=", - "requires": { - "ext-name": "5.0.0", - "pupa": "1.0.0", - "unused-filename": "1.0.0" - } - }, - "electron-is-dev": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-0.1.2.tgz", - "integrity": "sha1-ihBD4ys6HaHD9VPc4oznZCRhZ+M=" - }, - "electron-squirrel-startup": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/electron-squirrel-startup/-/electron-squirrel-startup-1.0.0.tgz", - "integrity": "sha1-GbTlWTP6Dvj1VnhLnGYPdyVGoLg=", - "requires": { - "debug": "2.6.9" - } - }, - "es3ify": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/es3ify/-/es3ify-0.1.4.tgz", - "integrity": "sha1-rZ+l3xrjTz8x4SEbWBiy1RB439E=", - "requires": { - "esprima-fb": "3001.1.0-dev-harmony-fb", - "jstransform": "3.0.0", - "through": "2.3.8" - }, - "dependencies": { - "esprima-fb": { - "version": "3001.1.0-dev-harmony-fb", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz", - "integrity": "sha1-t303q8046gt3Qmu4vCkizmtCZBE=" - } - } - }, - "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": "0.0.21", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.21.tgz", - "integrity": "sha1-U9ZSz6EDA4gnlFilJmxf/HCcY8M=", - "requires": { - "esprima": "1.0.4", - "estraverse": "0.0.4", - "source-map": "0.6.1" - }, - "dependencies": { - "esprima": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", - "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" - } - } - }, - "esmangle-evaluator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esmangle-evaluator/-/esmangle-evaluator-1.0.1.tgz", - "integrity": "sha1-Yg2GbvSGGzMR91dm1SqFcrs8YzY=" - }, - "esprima": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", - "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" - }, - "estraverse": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-0.0.4.tgz", - "integrity": "sha1-AaCTLf7ldGhKWYr1pnw7+bZCjbI=" - }, - "event-stream": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", - "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" - } - }, - "ext-list": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", - "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", - "requires": { - "mime-db": "1.31.0" - } - }, - "ext-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", - "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", - "requires": { - "ext-list": "2.2.2", - "sort-keys-length": "1.0.1" - } - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "falafel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/falafel/-/falafel-1.2.0.tgz", - "integrity": "sha1-wY0k71CRF0pJfzGM0ksCaiXN2rQ=", - "requires": { - "acorn": "1.2.2", - "foreach": "2.0.5", - "isarray": "0.0.1", - "object-keys": "1.0.11" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - } - } - }, - "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-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=" - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "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": "1.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", - "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", - "requires": { - "async": "2.6.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=" - }, - "fs-readfile-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fs-readfile-promise/-/fs-readfile-promise-2.0.1.tgz", - "integrity": "sha1-gAI4I5gfn//+AWCei+Zo9prknnA=", - "requires": { - "graceful-fs": "4.1.11" - } - }, - "fs-writefile-promise": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-writefile-promise/-/fs-writefile-promise-1.0.3.tgz", - "integrity": "sha1-4C+bWP/CVe2CKtx6ARFPRF1I0GM=", - "requires": { - "mkdirp-promise": "1.1.0", - "pinkie-promise": "1.0.0" - }, - "dependencies": { - "pinkie-promise": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz", - "integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=", - "requires": { - "pinkie": "1.0.0" - } - } - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.2" - } - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "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" - } - }, - "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.4.0", - "path-is-absolute": "1.0.1" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "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": "2.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.1.3.tgz", - "integrity": "sha1-aP9JyFz7wrNPtC9kgKl5a2RB3PM=", - "requires": { - "chalk": "1.1.3", - "commander": "2.11.0", - "is-my-json-valid": "2.16.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-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "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" - } - }, - "hkdf": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/hkdf/-/hkdf-0.0.2.tgz", - "integrity": "sha1-L422Ff3vhwIB+C0rYZym00fQZH4=" - }, - "hoek": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", - "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" - }, - "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=" - }, - "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" - } - }, - "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==" - }, - "ieee754": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" - }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "inline-process-browser": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/inline-process-browser/-/inline-process-browser-1.0.0.tgz", - "integrity": "sha1-RqYbFT3TybFiSxoAYm7bT39BTyI=", - "requires": { - "falafel": "1.2.0", - "through2": "0.6.5" - } - }, - "insomnia-httpsnippet": { - "version": "1.16.5", - "resolved": "https://registry.npmjs.org/insomnia-httpsnippet/-/insomnia-httpsnippet-1.16.5.tgz", - "integrity": "sha512-ftsDyY3ImscHM3CxQWXLGjaULj32oN7+L/Ppq69CIjIKbQJy18iLX+EkEWfzZNEmuHj17KpGOPiF1XTnHWUiaQ==", - "requires": { - "chalk": "1.1.3", - "commander": "2.11.0", - "debug": "2.6.9", - "event-stream": "3.3.4", - "form-data": "1.0.1", - "fs-readfile-promise": "2.0.1", - "fs-writefile-promise": "1.0.3", - "har-validator": "2.1.3", - "pinkie-promise": "2.0.1" - } - }, - "insomnia-importers": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/insomnia-importers/-/insomnia-importers-1.5.0.tgz", - "integrity": "sha512-K2aqtywCOOcvqMxMPzCuHsHzn0YvJaZn9O6aWkOzKU4ClL62IEFEHq9caRlMwtbxT8ydRpoxfWcxHDZMMfylfQ==", - "requires": { - "commander": "2.11.0", - "shell-quote": "1.6.1" - } - }, - "insomnia-node-libcurl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/insomnia-node-libcurl/-/insomnia-node-libcurl-1.2.3.tgz", - "integrity": "sha512-464xENqDhkuqFzpwWy1wuiA2QuHda2wjFFG4JcQDTr4j37V3R6xC2iRqkdt+9MjCuLlzpN/t3HnFARW1D525qw==", - "requires": { - "debug": "2.6.9", - "nan": "2.5.1", - "node-gyp": "3.5.0", - "node-pre-gyp": "0.6.33", - "npmlog": "4.0.2", - "rimraf": "2.6.1" - }, - "dependencies": { - "abbrev": { - "version": "1.1.0", - "bundled": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "ansi-styles": { - "version": "2.2.1", - "bundled": true - }, - "aproba": { - "version": "1.1.1", - "bundled": true - }, - "are-we-there-yet": { - "version": "1.1.2", - "bundled": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.3" - } - }, - "asn1": { - "version": "0.2.3", - "bundled": true - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true - }, - "aws4": { - "version": "1.6.0", - "bundled": true - }, - "balanced-match": { - "version": "0.4.2", - "bundled": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "requires": { - "inherits": "2.0.3" - } - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "requires": { - "hoek": "2.16.3" - } - }, - "brace-expansion": { - "version": "1.1.6", - "bundled": true, - "requires": { - "balanced-match": "0.4.2", - "concat-map": "0.0.1" - } - }, - "buffer-shims": { - "version": "1.0.0", - "bundled": true - }, - "caseless": { - "version": "0.11.0", - "bundled": true - }, - "chalk": { - "version": "1.1.3", - "bundled": 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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "bundled": true - } - } - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "combined-stream": { - "version": "1.0.5", - "bundled": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, - "commander": { - "version": "2.9.0", - "bundled": true, - "requires": { - "graceful-readlink": "1.0.1" - } - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true - }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true - } - } - }, - "deep-extend": { - "version": "0.4.1", - "bundled": true - }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "bundled": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "bundled": true - }, - "extend": { - "version": "3.0.0", - "bundled": true - }, - "extsprintf": { - "version": "1.0.2", - "bundled": true - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true - }, - "form-data": { - "version": "2.1.2", - "bundled": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.14" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true - }, - "fstream": { - "version": "1.0.10", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "requires": { - "fstream": "1.0.10", - "inherits": "2.0.3", - "minimatch": "3.0.3" - } - }, - "gauge": { - "version": "2.7.3", - "bundled": 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.0" - } - }, - "generate-function": { - "version": "2.0.0", - "bundled": true - }, - "generate-object-property": { - "version": "1.2.0", - "bundled": true, - "requires": { - "is-property": "1.0.2" - } - }, - "getpass": { - "version": "0.1.6", - "bundled": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true - } - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true - }, - "graceful-readlink": { - "version": "1.0.1", - "bundled": true - }, - "har-validator": { - "version": "2.0.6", - "bundled": true, - "requires": { - "chalk": "1.1.3", - "commander": "2.9.0", - "is-my-json-valid": "2.16.0", - "pinkie-promise": "2.0.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "bundled": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true - }, - "hawk": { - "version": "3.1.3", - "bundled": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "bundled": true - }, - "http-signature": { - "version": "1.1.1", - "bundled": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.3.1", - "sshpk": "1.10.2" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "requires": { - "once": "1.3.3", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "ini": { - "version": "1.3.4", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-my-json-valid": { - "version": "2.16.0", - "bundled": true, - "requires": { - "generate-function": "2.0.0", - "generate-object-property": "1.2.0", - "jsonpointer": "4.0.1", - "xtend": "4.0.1" - } - }, - "is-property": { - "version": "1.0.2", - "bundled": true - }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true - }, - "jodid25519": { - "version": "1.0.2", - "bundled": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true - }, - "jsonpointer": { - "version": "4.0.1", - "bundled": true - }, - "jsprim": { - "version": "1.3.1", - "bundled": true, - "requires": { - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - } - }, - "mime-db": { - "version": "1.26.0", - "bundled": true - }, - "mime-types": { - "version": "2.1.14", - "bundled": true, - "requires": { - "mime-db": "1.26.0" - } - }, - "minimatch": { - "version": "3.0.3", - "bundled": true, - "requires": { - "brace-expansion": "1.1.6" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - } - }, - "node-pre-gyp": { - "version": "0.6.33", - "bundled": true, - "requires": { - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.0.2", - "rc": "1.1.7", - "request": "2.79.0", - "rimraf": "2.5.4", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.3.0" - }, - "dependencies": { - "glob": { - "version": "7.1.1", - "bundled": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.3", - "once": "1.3.3", - "path-is-absolute": "1.0.1" - } - }, - "rimraf": { - "version": "2.5.4", - "bundled": true, - "requires": { - "glob": "7.1.1" - } - } - } - }, - "nopt": { - "version": "3.0.6", - "bundled": true, - "requires": { - "abbrev": "1.1.0" - } - }, - "npmlog": { - "version": "4.0.2", - "bundled": true, - "requires": { - "are-we-there-yet": "1.1.2", - "console-control-strings": "1.1.0", - "gauge": "2.7.3", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true - }, - "once": { - "version": "1.3.3", - "bundled": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true - }, - "pinkie": { - "version": "2.0.4", - "bundled": true - }, - "pinkie-promise": { - "version": "2.0.1", - "bundled": true, - "requires": { - "pinkie": "2.0.4" - } - }, - "process-nextick-args": { - "version": "1.0.7", - "bundled": true - }, - "punycode": { - "version": "1.4.1", - "bundled": true - }, - "rc": { - "version": "1.1.7", - "bundled": true, - "requires": { - "deep-extend": "0.4.1", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true - } - } - }, - "readable-stream": { - "version": "2.2.3", - "bundled": true, - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" - } - }, - "request": { - "version": "2.79.0", - "bundled": true, - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.11.0", - "combined-stream": "1.0.5", - "extend": "3.0.0", - "forever-agent": "0.6.1", - "form-data": "2.1.2", - "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.14", - "oauth-sign": "0.8.2", - "qs": "6.3.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.4.3", - "uuid": "3.0.1" - }, - "dependencies": { - "qs": { - "version": "6.3.1", - "bundled": true - } - } - }, - "rimraf": { - "version": "2.6.1", - "bundled": true, - "requires": { - "glob": "7.1.1" - }, - "dependencies": { - "glob": { - "version": "7.1.1", - "bundled": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.3", - "once": "1.3.3", - "path-is-absolute": "1.0.1" - } - } - } - }, - "semver": { - "version": "5.3.0", - "bundled": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true - }, - "sntp": { - "version": "1.0.9", - "bundled": true, - "requires": { - "hoek": "2.16.3" - } - }, - "sshpk": { - "version": "1.10.2", - "bundled": 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.6", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true - } - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "0.10.31", - "bundled": true - }, - "stringstream": { - "version": "0.0.5", - "bundled": true - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true - }, - "tar": { - "version": "2.2.1", - "bundled": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.10", - "inherits": "2.0.3" - } - }, - "tar-pack": { - "version": "3.3.0", - "bundled": true, - "requires": { - "debug": "2.2.0", - "fstream": "1.0.10", - "fstream-ignore": "1.0.5", - "once": "1.3.3", - "readable-stream": "2.1.5", - "rimraf": "2.5.4", - "tar": "2.2.1", - "uid-number": "0.0.6" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "bundled": true, - "requires": { - "ms": "0.7.1" - } - }, - "glob": { - "version": "7.1.1", - "bundled": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.3", - "once": "1.3.3", - "path-is-absolute": "1.0.1" - } - }, - "ms": { - "version": "0.7.1", - "bundled": true - }, - "readable-stream": { - "version": "2.1.5", - "bundled": true, - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" - } - }, - "rimraf": { - "version": "2.5.4", - "bundled": true, - "requires": { - "glob": "7.1.1" - } - } - } - }, - "tough-cookie": { - "version": "2.3.2", - "bundled": true, - "requires": { - "punycode": "1.4.1" - } - }, - "tunnel-agent": { - "version": "0.4.3", - "bundled": true - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true - }, - "uuid": { - "version": "3.0.1", - "bundled": true - }, - "verror": { - "version": "1.3.6", - "bundled": true, - "requires": { - "extsprintf": "1.0.2" - } - }, - "wide-align": { - "version": "1.1.0", - "bundled": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "xtend": { - "version": "4.0.1", - "bundled": true - } - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "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==", - "requires": { - "generate-function": "2.0.0", - "generate-object-property": "1.2.0", - "jsonpointer": "4.0.1", - "xtend": "4.0.1" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jison": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/jison/-/jison-0.4.13.tgz", - "integrity": "sha1-kEFwfWIkE2f1iDRTK58ZwsNvrHg=", - "requires": { - "JSONSelect": "0.4.0", - "cjson": "0.2.1", - "ebnf-parser": "0.1.10", - "escodegen": "0.0.21", - "esprima": "1.0.4", - "jison-lex": "0.2.1", - "lex-parser": "0.1.4", - "nomnom": "1.5.2" - }, - "dependencies": { - "esprima": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", - "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" - } - } - }, - "jison-lex": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/jison-lex/-/jison-lex-0.2.1.tgz", - "integrity": "sha1-rEuBXozOUTLrErXfz+jXB7iETf4=", - "requires": { - "lex-parser": "0.1.4", - "nomnom": "1.5.2" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "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-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=" - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "jsonpath": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-0.2.12.tgz", - "integrity": "sha1-W/nZEftGFsHjNwvs658NskrjTNI=", - "requires": { - "esprima": "1.2.2", - "jison": "0.4.13", - "static-eval": "0.2.3", - "underscore": "1.7.0" - } - }, - "jsonpointer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" - }, - "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" - } - }, - "jstransform": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-3.0.0.tgz", - "integrity": "sha1-olkats7o2XvzvoMNv6IxO4fNZAs=", - "requires": { - "base62": "0.1.1", - "esprima-fb": "3001.1.0-dev-harmony-fb", - "source-map": "0.1.31" - }, - "dependencies": { - "esprima-fb": { - "version": "3001.1.0-dev-harmony-fb", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz", - "integrity": "sha1-t303q8046gt3Qmu4vCkizmtCZBE=" - }, - "source-map": { - "version": "0.1.31", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", - "integrity": "sha1-n3BNDWnZ4TioG63267T94z0VHGE=", - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "lex-parser": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/lex-parser/-/lex-parser-0.1.4.tgz", - "integrity": "sha1-ZMTwJfF/1Tv7RXY/rrFvAVp0dVA=" - }, - "lie": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.0.2.tgz", - "integrity": "sha1-/9oh17uibzd8rYZdNkmy/Izjn+o=", - "requires": { - "es3ify": "0.1.4", - "immediate": "3.0.6", - "inline-process-browser": "1.0.0", - "unreachable-branch-transform": "0.3.0" - } - }, - "localforage": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.5.3.tgz", - "integrity": "sha1-aYqhavECI0CyQL6dkxkuivAi/xY=", - "requires": { - "lie": "3.0.2" - } - }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" - }, - "map-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=" - }, - "marked": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz", - "integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc=" - }, - "mime-db": { - "version": "1.31.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.31.0.tgz", - "integrity": "sha512-oB3w9lx50CMd6nfonoV5rBRUbJtjMifUHaFb5MfzjC8ksAIfVjT0BsX46SjjqBz7n9JGTrTX3paIeLSK+rS5fQ==" - }, - "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" - }, - "dependencies": { - "mime-db": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" - } - } - }, - "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": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "minipass": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.1.tgz", - "integrity": "sha512-u1aUllxPJUI07cOqzR7reGmQxmCqlH88uIIsf6XZFEWgw7gXKpJdR+5R9Y3KEDmWYkdIz9wXZs3C0jOPxejk/Q==", - "requires": { - "yallist": "3.0.2" - } - }, - "minizlib": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.0.4.tgz", - "integrity": "sha512-sN4U9tIJtBRwKbwgFh9qJfrPIQ/GGTRr1MGqkgOeMTLy8/lM0FcWU//FqlnZ3Vb7gJ+Mxh3FOg1EklibdajbaQ==", - "requires": { - "minipass": "2.2.1" - } - }, - "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" - } - }, - "mkdirp-promise": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-1.1.0.tgz", - "integrity": "sha1-LISJPtZ24NmPsY+5piEv0bK5qBk=" - }, - "modify-filename": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/modify-filename/-/modify-filename-1.1.0.tgz", - "integrity": "sha1-mi3sg4Bvuy2XXyK+7IWcoms5OqE=" - }, - "moment": { - "version": "2.19.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.19.2.tgz", - "integrity": "sha512-Rf6jiHPEfxp9+dlzxPTmRHbvoFXsh2L/U8hOupUMpnuecHQmI6cF6lUbJl3QqKPko1u6ujO+FxtcajLVfLpAtA==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "nan": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.5.1.tgz", - "integrity": "sha1-1bAWkSUzJql6K77p5hxV2NYDUeI=" - }, - "nedb": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/nedb/-/nedb-1.8.0.tgz", - "integrity": "sha1-DjUCzYLABNU1WkPJ5VV3vXvZHYg=", - "requires": { - "async": "0.2.10", - "binary-search-tree": "0.2.5", - "localforage": "1.5.3", - "mkdirp": "0.5.1", - "underscore": "1.4.4" - }, - "dependencies": { - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" - }, - "underscore": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", - "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=" - } - } - }, - "node-forge": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz", - "integrity": "sha1-naYR6giYL0uUIGs760zJZl8gwwA=" - }, - "node-gyp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.5.0.tgz", - "integrity": "sha1-qP5eYR0HnsFjSKPrlg544RyFJ0o=", - "requires": { - "fstream": "1.0.11", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.4", - "request": "2.83.0", - "rimraf": "2.6.2", - "semver": "5.4.1", - "tar": "2.2.1", - "which": "1.3.0" - }, - "dependencies": { - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - } - } - }, - "nomnom": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.5.2.tgz", - "integrity": "sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8=", - "requires": { - "colors": "0.5.1", - "underscore": "1.1.7" - }, - "dependencies": { - "underscore": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz", - "integrity": "sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA=" - } - } - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "requires": { - "abbrev": "1.1.1" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "oauth-1.0a": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/oauth-1.0a/-/oauth-1.0a-2.2.2.tgz", - "integrity": "sha512-fHRvq3aHoYXq8rZrXOX80nYgMc0svd4a88R4W7QLltJ1Rl+GFjW6Eu3rgR1zWB5MbuyqsWojADsS4vbmDiho/w==" - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-keys": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "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=" - }, - "osenv": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.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=" - }, - "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=" - }, - "pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "requires": { - "through": "2.3.8" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "pinkie": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz", - "integrity": "sha1-Wkfyi6EBXQIBvae/DzWOR77Ix+Q=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "2.0.4" - }, - "dependencies": { - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - } - } - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" - }, - "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=" - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "pupa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-1.0.0.tgz", - "integrity": "sha1-mpVopa9+ZXuEYqbp1TKHQ1YM7/Y=" - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" - }, - "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" - } - }, - "recast": { - "version": "0.10.43", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.43.tgz", - "integrity": "sha1-uV1Q9tYHYaX2JS4V2AZ4FoSRzn8=", - "requires": { - "ast-types": "0.8.15", - "esprima-fb": "15001.1001.0-dev-harmony-fb", - "private": "0.1.8", - "source-map": "0.5.7" - }, - "dependencies": { - "esprima-fb": { - "version": "15001.1001.0-dev-harmony-fb", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz", - "integrity": "sha1-Q761fsJujPI3092LM+QlM1d/Jlk=" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "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" - }, - "dependencies": { - "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" - } - }, - "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.3.0", - "har-schema": "2.0.0" - } - } - } - }, - "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" - } - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" - }, - "semver": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", - "requires": { - "array-filter": "0.0.1", - "array-map": "0.0.0", - "array-reduce": "0.0.0", - "jsonify": "0.0.0" - } - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "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" - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "requires": { - "is-plain-obj": "1.1.0" - } - }, - "sort-keys-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", - "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", - "requires": { - "sort-keys": "1.1.2" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true - }, - "split": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", - "requires": { - "through": "2.3.8" - } - }, - "srp-js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/srp-js/-/srp-js-0.2.0.tgz", - "integrity": "sha1-G40Jb0RvDW6iiULzUBSKmNpeemk=", - "requires": { - "buffer": "5.0.8", - "jsbn": "0.1.1" - } - }, - "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - } - }, - "static-eval": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-0.2.3.tgz", - "integrity": "sha1-Aj8XrJ/uQm6niMEuo5IG3Bdfiyo=", - "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.6.1" - } - }, - "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=" - } - } - }, - "stream-combiner": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", - "requires": { - "duplexer": "0.1.1" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "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" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "tar": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-3.2.1.tgz", - "integrity": "sha512-ZSzds1E0IqutvMU8HxjMaU8eB7urw2fGwTq88ukDOVuUIh0656l7/P7LiVPxhO5kS4flcRJQk8USG+cghQbTUQ==", - "requires": { - "chownr": "1.0.1", - "minipass": "2.2.1", - "minizlib": "1.0.4", - "mkdirp": "0.5.1", - "yallist": "3.0.2" - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "requires": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "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" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, - "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" - } - }, - "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 - }, - "underscore": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", - "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" - }, - "unreachable-branch-transform": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/unreachable-branch-transform/-/unreachable-branch-transform-0.3.0.tgz", - "integrity": "sha1-2ZzExudG0mSSiEW2EdtUsPNHTKo=", - "requires": { - "esmangle-evaluator": "1.0.1", - "recast": "0.10.43", - "through2": "0.6.5" - } - }, - "unused-filename": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unused-filename/-/unused-filename-1.0.0.tgz", - "integrity": "sha1-00CID3GuIRXrqhMlvvBcxmhEacY=", - "requires": { - "modify-filename": "1.1.0", - "path-exists": "3.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" - }, - "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" - } - }, - "vkbeautify": { - "version": "0.99.3", - "resolved": "https://registry.npmjs.org/vkbeautify/-/vkbeautify-0.99.3.tgz", - "integrity": "sha512-2ozZEFfmVvQcHWoHLNuiKlUfDKlhh4KGsy54U0UrlLMR1SO+XKAIDqBxtBwHgNrekurlJwE8A9K6L49T78ZQ9Q==" - }, - "whatwg-fetch": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", - "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" - }, - "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", - "requires": { - "isexe": "2.0.0" - } - }, - "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "xmldom": { - "version": "0.1.27", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", - "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=" - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - }, - "yallist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" - } - } -} diff --git a/app/package.json b/app/package.json deleted file mode 100644 index 8d1e00d2ae..0000000000 --- a/app/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "private": true, - "name": "insomnia", - "version": "5.12.0-beta.3", - "productName": "Insomnia", - "longName": "Insomnia REST Client", - "description": "Debug APIs like a human, not a robot", - "homepage": "https://insomnia.rest", - "author": "Insomnia ", - "main": "main.min.js", - "dependencies": { - "aws4": "^1.6.0", - "clone": "^2.1.0", - "deep-equal": "^1.0.1", - "electron-context-menu": "^0.9.0", - "electron-squirrel-startup": "^1.0.0", - "hawk": "^6.0.2", - "hkdf": "^0.0.2", - "html-entities": "^1.2.0", - "iconv-lite": "^0.4.15", - "insomnia-httpsnippet": "^1.16.5", - "insomnia-importers": "^1.5.0", - "insomnia-node-libcurl": "^1.2.3", - "jsonpath": "^0.2.12", - "marked": "^0.3.6", - "mime-types": "^2.1.14", - "mkdirp": "^0.5.1", - "moment": "^2.18.1", - "nedb": "^1.8.0", - "node-forge": "^0.7.0", - "oauth-1.0a": "^2.2.2", - "srp-js": "^0.2.0", - "tar": "^3.1.7", - "tough-cookie": "^2.3.1", - "vkbeautify": "^0.99.1", - "whatwg-fetch": "^2.0.1", - "xmldom": "^0.1.22" - } -} diff --git a/app/templating/extensions/__tests__/base64-extension.test.js b/app/templating/extensions/__tests__/base64-extension.test.js deleted file mode 100644 index 347bada2f6..0000000000 --- a/app/templating/extensions/__tests__/base64-extension.test.js +++ /dev/null @@ -1,32 +0,0 @@ -import * as templating from '../../index'; -import {globalBeforeEach} from '../../../__jest__/before-each'; - -function assertTemplate (txt, expected) { - return async function () { - const result = await templating.render(txt); - expect(result).toMatch(expected); - }; -} - -function assertTemplateFails (txt, expected) { - return async function () { - try { - await templating.render(txt); - fail(`Render should have thrown ${expected}`); - } catch (err) { - expect(err.message).toBe(expected); - } - }; -} - -describe('Base64EncodeExtension', () => { - beforeEach(globalBeforeEach); - it('encodes nothing', assertTemplate("{% base64 'encode' %}", '')); - it('encodes something', assertTemplate("{% base64 'encode', 'my string' %}", 'bXkgc3RyaW5n')); - it('decodes nothing', assertTemplate("{% base64 'decode' %}", '')); - it('decodes something', assertTemplate("{% base64 'decode', 'bXkgc3RyaW5n' %}", 'my string')); - it('fails on invalid op', assertTemplateFails( - "{% base64 'foo' %}", - 'Unsupported operation "foo". Must be encode or decode.' - )); -}); diff --git a/app/templating/extensions/__tests__/file-extension.test.js b/app/templating/extensions/__tests__/file-extension.test.js deleted file mode 100644 index 63557790af..0000000000 --- a/app/templating/extensions/__tests__/file-extension.test.js +++ /dev/null @@ -1,32 +0,0 @@ -import path from 'path'; -import * as templating from '../../index'; -import {globalBeforeEach} from '../../../__jest__/before-each'; - -function assertTemplate (txt, context, expected) { - return async function () { - const result = await templating.render(txt, {context}); - expect(result).toBe(expected); - }; -} - -function assertTemplateFails (txt, context, expected) { - return async function () { - try { - await templating.render(txt, {context}); - fail(`Render should have thrown ${expected}`); - } catch (err) { - expect(err.message).toContain(expected); - } - }; -} - -describe('FileExtension', () => { - beforeEach(globalBeforeEach); - const ctx = {path: path.resolve(__dirname, path.join('./test.txt'))}; - const escapedPath = ctx.path.replace(/\\/g, '\\\\'); - it('reads from string', assertTemplate(`{% file "${escapedPath}" %}`, ctx, 'Hello World!')); - it('reads a file correctly', assertTemplate('{% file path %}', ctx, 'Hello World!')); - it('fails on missing file', assertTemplateFails('{% file "/foo" %}', ctx, `ENOENT: no such file or directory, open '${path.resolve('/foo')}'`)); - it('fails on no 2nd param', assertTemplateFails('{% file %}', ctx, 'No file selected')); - it('fails on unknown variable', assertTemplateFails('{% file foo %}', ctx, 'No file selected')); -}); diff --git a/app/templating/extensions/__tests__/now-extension.test.js b/app/templating/extensions/__tests__/now-extension.test.js deleted file mode 100644 index 0773247702..0000000000 --- a/app/templating/extensions/__tests__/now-extension.test.js +++ /dev/null @@ -1,36 +0,0 @@ -import * as templating from '../../index'; -import {globalBeforeEach} from '../../../__jest__/before-each'; - -function assertTemplate (txt, expected) { - return async function () { - const result = await templating.render(txt); - expect(result).toMatch(expected); - }; -} - -function assertTemplateFails (txt, expected) { - return async function () { - try { - await templating.render(txt); - fail(`Render should have thrown ${expected}`); - } catch (err) { - expect(err.message).toBe(expected); - } - }; -} - -const isoRe = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z$/; -const secondsRe = /^\d{10}$/; -const millisRe = /^\d{13}$/; - -describe('NowExtension', () => { - beforeEach(globalBeforeEach); - it('renders default ISO', assertTemplate('{% now %}', isoRe)); - it('renders ISO-8601', assertTemplate('{% now "ISO-8601" %}', isoRe)); - it('renders seconds', assertTemplate('{% now "seconds" %}', secondsRe)); - it('renders s', assertTemplate('{% now "s" %}', secondsRe)); - it('renders unix', assertTemplate('{% now "unix" %}', secondsRe)); - it('renders millis', assertTemplate('{% now "millis" %}', millisRe)); - it('renders ms', assertTemplate('{% now "ms" %}', millisRe)); - it('fails on other', assertTemplateFails('{% now "foo" %}', 'Invalid date type "foo"')); -}); diff --git a/app/templating/extensions/__tests__/request-extension.test.js b/app/templating/extensions/__tests__/request-extension.test.js deleted file mode 100644 index 52aed25816..0000000000 --- a/app/templating/extensions/__tests__/request-extension.test.js +++ /dev/null @@ -1,85 +0,0 @@ -import * as templating from '../../index'; -import * as models from '../../../models'; -import {cookiesFromJar, jarFromCookies} from '../../../common/cookies'; -import {getRenderContext} from '../../../common/render'; -import {globalBeforeEach} from '../../../__jest__/before-each'; - -describe('RequestExtension cookie', async () => { - beforeEach(globalBeforeEach); - it('should get cookie by name', async () => { - // Create necessary models - const workspace = await models.workspace.create({name: 'Workspace'}); - const request = await models.request.create({ - parentId: workspace._id, - url: 'https://insomnia.rest/foo/bar' - }); - const cookieJar = await models.cookieJar.getOrCreateForParentId(workspace._id); - const jar = jarFromCookies(cookieJar.cookies); - jar.setCookieSync([ - 'foo=bar', - 'path=/', - 'domain=.insomnia.rest', - 'HttpOnly Cache-Control: public, no-cache' - ].join('; '), request.url); - - const cookies = await cookiesFromJar(jar); - await models.cookieJar.update(cookieJar, {cookies}); - const context = await getRenderContext(request); - const result = await templating.render(`{% request 'cookie', 'foo' %}`, {context}); - - expect(result).toBe('bar'); - }); -}); - -describe('RequestExtension url', async () => { - beforeEach(globalBeforeEach); - it('should get url', async () => { - // Create necessary models - const workspace = await models.workspace.create({name: 'Workspace'}); - const request = await models.request.create({ - parentId: workspace._id, - url: 'https://insomnia.rest/foo/bar', - parameters: [{name: 'foo', value: 'bar'}] - }); - - const context = await getRenderContext(request); - const result = await templating.render(`{% request 'url' %}`, {context}); - - expect(result).toBe('https://insomnia.rest/foo/bar?foo=bar'); - }); - - it('should get rendered url', async () => { - // Create necessary models - const workspace = await models.workspace.create({name: 'Workspace'}); - const request = await models.request.create({ - parentId: workspace._id, - url: 'https://insomnia.rest/foo/bar', - parameters: [{name: 'foo', value: '{{ foo }}'}] - }); - - const context = await getRenderContext(request); - context.foo = 'Hello World!'; - const result = await templating.render(`{% request 'url' %}`, {context}); - - expect(result).toBe('https://insomnia.rest/foo/bar?foo=Hello%20World!'); - }); -}); - -describe('RequestExtension header', async () => { - beforeEach(globalBeforeEach); - it('should get url', async () => { - // Create necessary models - const workspace = await models.workspace.create({name: 'Workspace'}); - const request = await models.request.create({ - parentId: workspace._id, - url: 'https://insomnia.rest/foo/bar', - headers: [{name: 'foo', value: '{{ foo }}'}] - }); - - const context = await getRenderContext(request); - context.foo = 'Hello World!'; - const result = await templating.render(`{% request 'header', 'foo' %}`, {context}); - - expect(result).toBe('Hello World!'); - }); -}); diff --git a/app/templating/extensions/__tests__/response-extension.test.js b/app/templating/extensions/__tests__/response-extension.test.js deleted file mode 100644 index bc0c8dc135..0000000000 --- a/app/templating/extensions/__tests__/response-extension.test.js +++ /dev/null @@ -1,273 +0,0 @@ -import * as templating from '../../index'; -import * as models from '../../../models'; -import {globalBeforeEach} from '../../../__jest__/before-each'; - -describe('ResponseExtension General', async () => { - beforeEach(globalBeforeEach); - it('fails on no responses', async () => { - const request = await models.request.create({parentId: 'foo'}); - - try { - await templating.render(`{% response "body", "${request._id}", "$.foo" %}`); - fail('JSON should have failed to parse'); - } catch (err) { - expect(err.message).toContain('No responses for request'); - } - }); - - it('fails on no request', async () => { - await models.response.create({parentId: 'req_test'}, '{"foo": "bar"}'); - - try { - await templating.render(`{% response "body", "req_test", "$.foo" %}`); - fail('JSON should have failed to parse'); - } catch (err) { - expect(err.message).toContain('Could not find request req_test'); - } - }); - - it('fails on empty filter', async () => { - const request = await models.request.create({parentId: 'foo'}); - await models.response.create({parentId: request._id, statusCode: 200}, '{"foo": "bar"}'); - - try { - await templating.render(`{% response "body", "${request._id}", "" %}`); - fail('Should have failed'); - } catch (err) { - expect(err.message).toContain('No body filter specified'); - } - }); -}); - -describe('ResponseExtension JSONPath', async () => { - beforeEach(globalBeforeEach); - it('renders basic response "body", query', async () => { - const request = await models.request.create({parentId: 'foo'}); - await models.response.create({ - parentId: request._id, - body: '{"foo": "bar"}', - statusCode: 200 - }); - - const result = await templating.render(`{% response "body", "${request._id}", "$.foo" %}`); - - expect(result).toBe('bar'); - }); - - it('fails on invalid JSON', async () => { - const request = await models.request.create({parentId: 'foo'}); - await models.response.create({ - parentId: request._id, - body: '{"foo": "bar"', - statusCode: 200 - }); - - try { - await templating.render(`{% response "body", "${request._id}", "$.foo" %}`); - fail('JSON should have failed to parse'); - } catch (err) { - expect(err.message).toContain('Invalid JSON: Unexpected end of JSON input'); - } - }); - - it('fails on invalid query', async () => { - const request = await models.request.create({parentId: 'foo'}); - await models.response.create({ - parentId: request._id, - body: '{"foo": "bar"}', - statusCode: 200 - }); - - try { - await templating.render(`{% response "body", "${request._id}", "$$" %}`); - fail('JSON should have failed to parse'); - } catch (err) { - expect(err.message).toContain('Invalid JSONPath query: $$'); - } - }); - - it('fails on no results', async () => { - const request = await models.request.create({parentId: 'foo'}); - await models.response.create({ - parentId: request._id, - body: '{"foo": "bar"}', - statusCode: 200 - }); - - try { - await templating.render(`{% response "body", "${request._id}", "$.missing" %}`); - fail('JSON should have failed to parse'); - } catch (err) { - expect(err.message).toContain('Returned no results: $.missing'); - } - }); - - it('fails on more than 1 result', async () => { - const request = await models.request.create({parentId: 'foo'}); - await models.response.create({ - parentId: request._id, - body: '{"array": [1,2,3]}', - statusCode: 200 - }); - - try { - await templating.render(`{% response "body", "${request._id}", "$.array.*" %}`); - fail('JSON should have failed to parse'); - } catch (err) { - expect(err.message).toContain('Returned more than one result: $.array.*'); - } - }); -}); - -describe('ResponseExtension XPath', async () => { - beforeEach(globalBeforeEach); - it('renders basic response "body" query', async () => { - const request = await models.request.create({parentId: 'foo'}); - await models.response.create({ - parentId: request._id, - body: 'Hello World!', - statusCode: 200 - }); - - const result = await templating.render(`{% response "body", "${request._id}", "/foo/bar" %}`); - - expect(result).toBe('Hello World!'); - }); - - it('renders basic response "body" attribute query', async () => { - const request = await models.request.create({parentId: 'foo'}); - await models.response.create({ - parentId: request._id, - body: 'Hello World!', - statusCode: 200 - }); - - const result = await templating.render(`{% response "body", "${request._id}", "/foo/bar/@hello" %}`); - - expect(result).toBe('World!'); - }); - - it('no results on invalid XML', async () => { - const request = await models.request.create({parentId: 'foo'}); - await models.response.create({ - parentId: request._id, - body: '', - statusCode: 200 - }); - - try { - await templating.render(`{% response "body", "${request._id}", "/foo" %}`); - fail('should have failed'); - } catch (err) { - expect(err.message).toContain('Returned no results: /foo'); - } - }); - - it('fails on invalid query', async () => { - const request = await models.request.create({parentId: 'foo'}); - await models.response.create({ - parentId: request._id, - body: 'Hello World!', - statusCode: 200 - }); - - try { - await templating.render(`{% response "body", "${request._id}", "//" %}`); - fail('should have failed'); - } catch (err) { - expect(err.message).toContain('Invalid XPath query: //'); - } - }); - - it('fails on no results', async () => { - const request = await models.request.create({parentId: 'foo'}); - await models.response.create({ - parentId: request._id, - body: 'Hello World!', - statusCode: 200 - }); - - try { - await templating.render(`{% response "body", "${request._id}", "/missing" %}`); - fail('should have failed'); - } catch (err) { - expect(err.message).toContain('Returned no results: /missing'); - } - }); - - it('fails on more than 1 result', async () => { - const request = await models.request.create({parentId: 'foo'}); - await models.response.create({ - parentId: request._id, - body: 'Hello World!And again!', - statusCode: 200 - }); - - try { - await templating.render(`{% response "body", "${request._id}", "/foo/*" %}`); - fail('should have failed'); - } catch (err) { - expect(err.message).toContain('Returned more than one result: /foo/*'); - } - }); -}); - -describe('ResponseExtension Header', async () => { - beforeEach(globalBeforeEach); - it('renders basic response "header"', async () => { - const request = await models.request.create({parentId: 'foo'}); - await models.response.create({ - parentId: request._id, - statusCode: 200, - headers: [ - {name: 'Content-Type', value: 'application/json'}, - {name: 'Content-Length', value: '20'} - ] - }); - - const id = request._id; - - expect(await templating.render(`{% response "header", "${id}", "content-type" %}`)) - .toBe('application/json'); - expect(await templating.render(`{% response "header", "${id}", "Content-Type" %}`)) - .toBe('application/json'); - expect(await templating.render(`{% response "header", "${id}", "CONTENT-type" %}`)) - .toBe('application/json'); - expect(await templating.render(`{% response "header", "${id}", " CONTENT-type " %}`)) - .toBe('application/json'); - }); - - it('no results on missing header', async () => { - const request = await models.request.create({parentId: 'foo'}); - await models.response.create({ - parentId: request._id, - statusCode: 200, - headers: [ - {name: 'Content-Type', value: 'application/json'}, - {name: 'Content-Length', value: '20'} - ] - }); - - try { - await templating.render(`{% response "header", "${request._id}", "dne" %}`); - fail('should have failed'); - } catch (err) { - expect(err.message).toBe('No header with name "dne".\nChoices are [\n\t"Content-Type",\n\t"Content-Length"\n]'); - } - }); -}); - -describe('ResponseExtension Raw', async () => { - beforeEach(globalBeforeEach); - it('renders basic response "header"', async () => { - const request = await models.request.create({parentId: 'foo'}); - await models.response.create({ - parentId: request._id, - body: 'Hello World!', - statusCode: 200 - }); - - const result = await templating.render(`{% response "raw", "${request._id}", "" %}`); - expect(result).toBe('Hello World!'); - }); -}); diff --git a/app/templating/extensions/__tests__/timestamp-extension.test.js b/app/templating/extensions/__tests__/timestamp-extension.test.js deleted file mode 100644 index 454b924aef..0000000000 --- a/app/templating/extensions/__tests__/timestamp-extension.test.js +++ /dev/null @@ -1,16 +0,0 @@ -import * as templating from '../../index'; -import {globalBeforeEach} from '../../../__jest__/before-each'; - -function assertTemplate (txt, expected) { - return async function () { - const result = await templating.render(txt); - expect(result).toMatch(expected); - }; -} - -const millisRe = /^\d{13}$/; - -describe('TimestampExtension', () => { - beforeEach(globalBeforeEach); - it('renders basic', assertTemplate('{% timestamp %}', millisRe)); -}); diff --git a/app/templating/extensions/__tests__/uuid-extension.test.js b/app/templating/extensions/__tests__/uuid-extension.test.js deleted file mode 100644 index 8bb4944169..0000000000 --- a/app/templating/extensions/__tests__/uuid-extension.test.js +++ /dev/null @@ -1,32 +0,0 @@ -import * as templating from '../../index'; -import {globalBeforeEach} from '../../../__jest__/before-each'; - -function assertTemplate (txt, expected) { - return async function () { - const result = await templating.render(txt); - expect(result).toMatch(expected); - }; -} - -function assertTemplateFails (txt, expected) { - return async function () { - try { - await templating.render(txt); - fail(`Render should have thrown ${expected}`); - } catch (err) { - expect(err.message).toBe(expected); - } - }; -} - -describe('UuidExtension', () => { - beforeEach(globalBeforeEach); - it('renders default v4', assertTemplate('{% uuid %}', 'dd2ccc1a-2745-477a-881a-9e8ef9d42403')); - it('renders 4', assertTemplate('{% uuid "4" %}', 'e3e96e5f-dd68-4229-8b66-dee1f0940f3d')); - it('renders 4 num', assertTemplate('{% uuid 4 %}', 'a262d22b-5fa8-491c-9bd9-58fba03e301e')); - it('renders v4', assertTemplate('{% uuid "v4" %}', '2e7c2688-09ee-44b8-900d-5cbbaa7d3a19')); - it('renders 1', assertTemplate('{% uuid "1" %}', 'f7272c80-f493-11e6-bc64-92361f002671')); - it('renders 1 num', assertTemplate('{% uuid 1 %}', 'f7272f0a-f493-11e6-bc64-92361f002671')); - it('renders v1', assertTemplate('{% uuid "v1" %}', 'f72733a6-f493-11e6-bc64-92361f002671')); - it('fails on other', assertTemplateFails('{% uuid "foo" %}', 'Invalid UUID type "foo"')); -}); diff --git a/app/templating/extensions/timestamp-extension.js b/app/templating/extensions/timestamp-extension.js deleted file mode 100644 index 16f57e6a5e..0000000000 --- a/app/templating/extensions/timestamp-extension.js +++ /dev/null @@ -1,9 +0,0 @@ -export default { - deprecated: true, - name: 'timestamp', - displayName: 'Timestamp', - description: 'generate timestamp in milliseconds', - run (context) { - return Date.now(); - } -}; diff --git a/lerna.json b/lerna.json new file mode 100644 index 0000000000..3e31f5c1d3 --- /dev/null +++ b/lerna.json @@ -0,0 +1,17 @@ +{ + "lerna": "2.5.1", + "version": "independent", + "packages": [ + "plugins/*", + "packages/*", + "website" + ], + "commands": { + "publish": { + "ignore": [ + "insomnia-app", + "insomnia-website" + ] + } + } +} diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 0000000000..6dd989c6dc --- /dev/null +++ b/netlify.toml @@ -0,0 +1,9 @@ +[build] + publish = "website/_speedpack" + command = "npm run build-website" + +[context.production.environment] + HUGO_VERSION = "0.30" + +[context.deploy-preview.environment] + HUGO_VERSION = "0.30" diff --git a/package-lock.json b/package-lock.json index 3370f66dc5..421b83dd88 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,88 +1,30 @@ { - "name": "insomnia-dev", + "name": "insomnia", "version": "1.0.0", "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==", + "JSONStream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", + "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", "dev": true, "requires": { - "7zip-bin-mac": "1.0.1" + "jsonparse": "1.3.1", + "through": "2.3.8" } }, - "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 - }, - "@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 - }, - "JSONSelect": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/JSONSelect/-/JSONSelect-0.4.0.tgz", - "integrity": "sha1-oI7cxn6z/L6Z7WMIVTRKDPKCu40=" - }, - "JSV": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz", - "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=" - }, - "a-sync-waterfall": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.0.tgz", - "integrity": "sha1-OOgxnXk3niRiiEW1O5ZyKyng5Hw=" - }, "abab": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", "dev": true }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "accepts": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", - "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", - "dev": true, - "requires": { - "mime-types": "2.1.17", - "negotiator": "0.6.1" - } - }, "acorn": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz", - "integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ=" - }, - "acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", - "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 - } - } + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true }, "acorn-globals": { "version": "3.1.0", @@ -91,37 +33,19 @@ "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 - } } }, - "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 - } - } + "add-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=", + "dev": true }, "ajv": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz", - "integrity": "sha1-RBT/dKUIecII7l/cgm4ywwNUnto=", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.0.tgz", + "integrity": "sha1-6yhAdG6dxIvV4GOjbj/UAMXqtak=", + "dev": true, "requires": { "co": "4.6.0", "fast-deep-equal": "1.0.0", @@ -129,12 +53,6 @@ "json-schema-traverse": "0.3.1" } }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true - }, "align-text": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", @@ -146,104 +64,43 @@ "repeat-string": "1.6.1" } }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "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": "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" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "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" - } - } - } - }, - "ansi-escapes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "dev": true }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "ansi-escapes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", + "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==", "dev": true }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true }, "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "version": "3.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" + } }, "anymatch": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, "requires": { "micromatch": "2.3.11", "normalize-path": "2.1.1" } }, - "app-package-builder": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/app-package-builder/-/app-package-builder-1.5.0.tgz", - "integrity": "sha512-CmmmXq543Ru7TEcAQShmmI9Z0NgKZ54KOR3BGM+LTEw/v2VjgCQ5qrkkoCA+0LaYgJfPFg/40PGMHnDaAZ6g4w==", - "dev": true, - "requires": { - "bluebird-lst": "1.0.5", - "builder-util": "3.2.2", - "builder-util-runtime": "3.2.0", - "fs-extra-p": "4.4.4", - "int64-buffer": "0.1.9", - "rabin-bindings": "1.7.3" - } - }, "append-transform": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", @@ -256,42 +113,14 @@ "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "archiver": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-2.1.0.tgz", - "integrity": "sha1-0t8ujVdzqCwdzOklzMQUUOqZmv0=", - "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" - } - }, - "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" - } + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true }, "are-we-there-yet": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "dev": true, "requires": { "delegates": "1.0.0", "readable-stream": "2.3.3" @@ -310,6 +139,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, "requires": { "arr-flatten": "1.1.0" } @@ -317,7 +147,8 @@ "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true }, "array-equal": { "version": "1.0.0", @@ -325,43 +156,18 @@ "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", "dev": true }, - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" - }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", "dev": true }, - "array-flatten": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz", - "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=", + "array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", "dev": true }, - "array-includes": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", - "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", - "dev": true, - "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.9.0" - } - }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" - }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", @@ -380,7 +186,8 @@ "array-unique": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true }, "arrify": { "version": "1.0.1", @@ -388,55 +195,17 @@ "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=" - }, - "asar-integrity": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asar-integrity/-/asar-integrity-0.2.3.tgz", - "integrity": "sha512-c+oMuxlpKRDv9Kv6WdjbnkySfSYATAmW+cvy8NIdMg9twY9RMvSdvOoPssroWlTpSra1qX9vLew2ROpV4jQm7w==", - "dev": true, - "requires": { - "bluebird-lst": "1.0.5", - "fs-extra-p": "4.4.4" - } - }, "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" - } + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true }, "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "ast-types": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.15.tgz", - "integrity": "sha1-ju8IJ/BN/w7IhXupJavj/qYZTlI=" + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true }, "astral-regex": { "version": "1.0.0", @@ -448,105 +217,28 @@ "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=" - }, - "async-exit-hook": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", - "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", - "dev": true - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "autobind-decorator": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/autobind-decorator/-/autobind-decorator-1.4.3.tgz", - "integrity": "sha1-TJb/p3sQYi7eJPEQ9du/VmkUF9E=" - }, - "autoprefixer": { - "version": "6.7.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", - "dev": true, - "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000766", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "1.0.30000766", - "electron-to-chromium": "1.3.27" - } - } - } + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true }, "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=" + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true }, "aws4": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" - }, - "axios": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.15.3.tgz", - "integrity": "sha1-LJ1jiy4ZGgjqHWzJiOrda6W9wFM=", - "requires": { - "follow-redirects": "1.0.0" - } - }, - "babel-cli": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", - "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", - "dev": true, - "requires": { - "babel-core": "6.26.0", - "babel-polyfill": "6.26.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "chokidar": "1.7.0", - "commander": "2.11.0", - "convert-source-map": "1.5.0", - "fs-readdir-recursive": "1.1.0", - "glob": "7.1.2", - "lodash": "4.17.4", - "output-file-sync": "1.1.2", - "path-is-absolute": "1.0.1", - "slash": "1.0.0", - "source-map": "0.5.7", - "v8flags": "2.1.1" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true }, "babel-code-frame": { "version": "6.26.0", @@ -557,6 +249,42 @@ "chalk": "1.1.3", "esutils": "2.0.2", "js-tokens": "3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } } }, "babel-core": { @@ -575,7 +303,7 @@ "babel-traverse": "6.26.0", "babel-types": "6.26.0", "babylon": "6.18.0", - "convert-source-map": "1.5.0", + "convert-source-map": "1.5.1", "debug": "2.6.9", "json5": "0.5.1", "lodash": "4.17.4", @@ -584,40 +312,6 @@ "private": "0.1.8", "slash": "1.0.0", "source-map": "0.5.7" - }, - "dependencies": { - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "babel-eslint": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz", - "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0" - }, - "dependencies": { - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - } } }, "babel-generator": { @@ -634,152 +328,6 @@ "lodash": "4.17.4", "source-map": "0.5.7", "trim-right": "1.0.1" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "dev": true, - "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-builder-react-jsx": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", - "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "esutils": "2.0.2" - } - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true, - "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "dev": true, - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" - } - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, - "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" - } - }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "dev": true, - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "dev": true, - "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" } }, "babel-helpers": { @@ -793,25 +341,13 @@ } }, "babel-jest": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-19.0.0.tgz", - "integrity": "sha1-WTI87ZmjqE01naIZyogQdP/Gzj8=", + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-21.2.0.tgz", + "integrity": "sha512-O0W2qLoWu1QOoOGgxiR2JID4O6WSpxPiQanrkyi9SSlM0PJ60Ptzlck47lhtnr9YZO3zYOsxHwnyeWJ6AffoBQ==", "dev": true, "requires": { - "babel-core": "6.26.0", "babel-plugin-istanbul": "4.1.5", - "babel-preset-jest": "19.0.0" - } - }, - "babel-loader": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", - "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", - "dev": true, - "requires": { - "find-cache-dir": "1.0.0", - "loader-utils": "1.1.0", - "mkdirp": "0.5.1" + "babel-preset-jest": "21.2.0" } }, "babel-messages": { @@ -823,15 +359,6 @@ "babel-runtime": "6.26.0" } }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, "babel-plugin-istanbul": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz", @@ -844,39 +371,9 @@ } }, "babel-plugin-jest-hoist": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-19.0.0.tgz", - "integrity": "sha1-SuKgTqYSpuc2UfP95SwXiZEwS+o=", - "dev": true - }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", - "dev": true - }, - "babel-plugin-syntax-decorators": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", - "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", - "dev": true - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", - "dev": true - }, - "babel-plugin-syntax-flow": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", - "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", - "dev": true - }, - "babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz", + "integrity": "sha512-yi5QuiVyyvhBUDLP4ButAnhYzkdrUwWDtvUJv71hjH3fclhnZg4HkDeqaitcR2dZZx/E67kGkRcPVjtVu+SJfQ==", "dev": true }, "babel-plugin-syntax-object-rest-spread": { @@ -885,451 +382,14 @@ "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", "dev": true }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", - "dev": true - }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "dev": true, - "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-decorators-legacy": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators-legacy/-/babel-plugin-transform-decorators-legacy-1.3.4.tgz", - "integrity": "sha1-dBtY9sW86eYCfgiC2cmU8E82aSU=", - "dev": true, - "requires": { - "babel-plugin-syntax-decorators": "6.13.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true, - "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", - "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", - "dev": true, - "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "dev": true, - "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true, - "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true, - "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, - "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, - "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" - } - }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "dev": true, - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-flow-strip-types": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", - "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", - "dev": true, - "requires": { - "babel-plugin-syntax-flow": "6.18.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", - "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", - "dev": true, - "requires": { - "babel-plugin-syntax-object-rest-spread": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-react-display-name": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", - "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-react-jsx": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", - "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", - "dev": true, - "requires": { - "babel-helper-builder-react-jsx": "6.26.0", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-react-jsx-self": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", - "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", - "dev": true, - "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-react-jsx-source": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", - "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", - "dev": true, - "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, - "requires": { - "regenerator-transform": "0.10.1" - } - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.1", - "regenerator-runtime": "0.10.5" - }, - "dependencies": { - "core-js": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", - "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", - "dev": true - }, - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } - } - }, - "babel-preset-env": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", - "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", - "dev": true, - "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "2.9.0", - "invariant": "2.2.2", - "semver": "5.4.1" - } - }, - "babel-preset-flow": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", - "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", - "dev": true, - "requires": { - "babel-plugin-transform-flow-strip-types": "6.22.0" - } - }, "babel-preset-jest": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-19.0.0.tgz", - "integrity": "sha1-ItZyAdAjJKGVgRKI6zgpS7PKw5Y=", + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz", + "integrity": "sha512-hm9cBnr2h3J7yXoTtAVV0zg+3vg0Q/gT2GYuzlreTU0EPkJRtlNgKJJ3tBKEn0+VjAi3JykV6xCJkuUYttEEfA==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "19.0.0" - } - }, - "babel-preset-react": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", - "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", - "dev": true, - "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-plugin-transform-react-display-name": "6.25.0", - "babel-plugin-transform-react-jsx": "6.24.1", - "babel-plugin-transform-react-jsx-self": "6.22.0", - "babel-plugin-transform-react-jsx-source": "6.22.0", - "babel-preset-flow": "6.23.0" + "babel-plugin-jest-hoist": "21.2.0", + "babel-plugin-syntax-object-rest-spread": "6.13.0" } }, "babel-register": { @@ -1345,14 +405,6 @@ "lodash": "4.17.4", "mkdirp": "0.5.1", "source-map-support": "0.4.18" - }, - "dependencies": { - "core-js": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", - "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", - "dev": true - } } }, "babel-runtime": { @@ -1363,14 +415,6 @@ "requires": { "core-js": "2.5.1", "regenerator-runtime": "0.11.0" - }, - "dependencies": { - "core-js": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", - "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", - "dev": true - } } }, "babel-template": { @@ -1384,14 +428,6 @@ "babel-types": "6.26.0", "babylon": "6.18.0", "lodash": "4.17.4" - }, - "dependencies": { - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - } } }, "babel-traverse": { @@ -1409,14 +445,6 @@ "globals": "9.18.0", "invariant": "2.2.2", "lodash": "4.17.4" - }, - "dependencies": { - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - } } }, "babel-types": { @@ -1432,246 +460,41 @@ } }, "babylon": { - "version": "7.0.0-beta.19", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.19.tgz", - "integrity": "sha512-Vg0C9s/REX6/WIXN37UKpv5ZhRi6A4pjHlpkE34+8/a6c2W1Q692n3hmc+SZG5lKRnaExLUbxtJ1SVT+KaCQ/A==" + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base62": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz", - "integrity": "sha1-e0F0wvlESXU7EcJlHAg9qEGnsIQ=" - }, - "base64-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==" - }, - "base64url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64url/-/base64url-2.0.0.tgz", - "integrity": "sha1-6sFuA+oUOO/5Qj1puqNiYu0fcLs=" - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "bcrypt-pbkdf": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, "optional": true, "requires": { "tweetnacl": "0.14.5" } }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" - }, - "binary-extensions": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=" - }, - "binary-search-tree": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz", - "integrity": "sha1-fbs7IQ/coIJFDa0jNMMErzm9x4Q=", - "requires": { - "underscore": "1.4.4" - }, - "dependencies": { - "underscore": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", - "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=" - } - } - }, - "bindings": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", - "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==", - "dev": true - }, - "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" - } - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "requires": { - "inherits": "2.0.3" - } - }, - "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": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.5.tgz", - "integrity": "sha512-Ey0bDNys5qpYPhZ/oQ9vOEvD0TYQDTILMXWP2iGfvMg7rSDde+oV4aQQgqRH+CvBFNz2BSDQnPGMUl6LKBUUQA==", - "dev": true, - "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-parser": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", - "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", - "dev": true, - "requires": { - "bytes": "3.0.0", - "content-type": "1.0.4", - "debug": "2.6.9", - "depd": "1.1.1", - "http-errors": "1.6.2", - "iconv-lite": "0.4.19", - "on-finished": "2.3.0", - "qs": "6.5.1", - "raw-body": "2.3.2", - "type-is": "1.6.15" - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "requires": { - "array-flatten": "2.1.1", - "deep-equal": "1.0.1", - "dns-equal": "1.0.0", - "dns-txt": "2.0.2", - "multicast-dns": "6.2.0", - "multicast-dns-service-types": "1.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": "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" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "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" - } - }, - "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" - } - }, - "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 - }, - "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" - } - } + "hoek": "4.2.0" } }, "brace-expansion": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -1681,18 +504,13 @@ "version": "1.8.5", "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, "requires": { "expand-range": "1.8.2", "preserve": "0.2.0", "repeat-element": "1.1.2" } }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, "browser-resolve": { "version": "1.11.2", "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", @@ -1700,94 +518,6 @@ "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-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.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" - } - }, - "browserslist": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.9.0.tgz", - "integrity": "sha512-vJEBcDTANoDhSHL46NeOEW5hvQw7It9uCqzeFPQhpawXfnOwnpvW5C97vn1eGJ7iCkSg8wWU0nYObE7d/N95Iw==", - "dev": true, - "requires": { - "caniuse-lite": "1.0.30000766", - "electron-to-chromium": "1.3.27" } }, "bser": { @@ -1799,193 +529,30 @@ "node-int64": "0.4.0" } }, - "buffer": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.0.8.tgz", - "integrity": "sha512-xXvjQhVNz50v2nPeoOsNqWCLGfiv4ji/gXZM28jnVwdLJxH4mFyqgqCKfaK9zf1KUbG6zTkjLOy7ou+jSMarGA==", - "requires": { - "base64-js": "1.2.1", - "ieee754": "1.1.8" - } - }, - "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-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "buffer-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==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builder-util": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-3.2.2.tgz", - "integrity": "sha512-4t/EtpYYp5wNaNlI4cgKbHEY/oNtnKtuEn201DNcJlgLkoV8RrwSOo6RJbDOKY+RTf0IVmbEZ2ZHbyy2/KGKRQ==", - "dev": true, - "requires": { - "7zip-bin": "2.2.7", - "bluebird-lst": "1.0.5", - "builder-util-runtime": "3.2.0", - "chalk": "2.3.0", - "debug": "3.1.0", - "fs-extra-p": "4.4.4", - "ini": "1.3.4", - "is-ci": "1.0.10", - "js-yaml": "3.10.0", - "lazy-val": "1.0.2", - "node-emoji": "1.8.1", - "semver": "5.4.1", - "source-map-support": "0.5.0", - "stat-mode": "0.2.2", - "temp-file": "2.1.0", - "tunnel-agent": "0.6.0" - }, - "dependencies": { - "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" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" - } - }, - "source-map-support": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.0.tgz", - "integrity": "sha512-vUoN3I7fHQe0R/SJLKRdKYuEdRGogsviXFkHHo17AWaTGv17VLnxw+CFXvqy+y4ORZ3doWLQcxRYfwKrsd/H7Q==", - "dev": true, - "requires": { - "source-map": "0.6.1" - } - }, - "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" - } - } - } - }, - "builder-util-runtime": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-3.2.0.tgz", - "integrity": "sha512-VRvyyLiZZSBjcUTqEsHlBJSK0s6uVQChO7kbmVeU6QmSJ7TtsotNQELO6lbahwZMAQ4Z/haCKhlLBDdhW+3aqA==", - "dev": true, - "requires": { - "bluebird-lst": "1.0.5", - "debug": "3.1.0", - "fs-extra-p": "4.4.4", - "sax": "1.2.4" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, "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=", + "byline": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", + "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=", "dev": true }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "requires": { - "callsites": "0.2.0" - } - }, "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", "dev": true }, "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "optional": true }, "camelcase-keys": { "version": "2.1.0", @@ -1995,44 +562,16 @@ "requires": { "camelcase": "2.1.1", "map-obj": "1.0.1" - } - }, - "caniuse-api": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", - "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", - "dev": true, - "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000766", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" }, "dependencies": { - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "1.0.30000766", - "electron-to-chromium": "1.3.27" - } + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true } } }, - "caniuse-db": { - "version": "1.0.30000766", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000766.tgz", - "integrity": "sha1-TJEao3R/ATiEUvpLknt4/PFDBoA=", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30000766", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000766.tgz", - "integrity": "sha1-iglcxeuZI8JwCM5NDbI+ZaPiiEM=", - "dev": true - }, "capture-stack-trace": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", @@ -2042,63 +581,35 @@ "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "catharsis": { - "version": "0.8.9", - "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.9.tgz", - "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=", - "requires": { - "underscore-contrib": "0.3.0" - } + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true }, "center-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, + "optional": true, "requires": { "align-text": "0.1.4", "lazy-cache": "1.0.4" } }, "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, "requires": { - "ansi-styles": "2.2.1", + "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "supports-color": "4.5.0" } }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "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" - } - }, - "chownr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" - }, - "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=", + "chardet": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.0.tgz", + "integrity": "sha1-C74TVaxE16PtSpJXB8TvcPgZD2w=", "dev": true }, "ci-info": { @@ -2107,57 +618,6 @@ "integrity": "sha512-uTGIPNx/nSpBdsF6xnseRXLLtfr9VLqkz8ZqHXr3Y7b6SftyRxBGjwMtJj1OhNbmlc1wZzLNAlAcvyIiE8a6ZA==", "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 - }, - "cjson": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.2.1.tgz", - "integrity": "sha1-c82KrWXZ4VBfmvF0TTt5wVJ2gqU=" - }, - "clap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", - "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", - "dev": true, - "requires": { - "chalk": "1.1.3" - } - }, - "classnames": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz", - "integrity": "sha1-+zgB1FNGdknvNgPH1hoCvRKb3m0=" - }, - "cli": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", - "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", - "dev": true, - "requires": { - "exit": "0.1.2", - "glob": "7.1.2" - } - }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", - "dev": true - }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -2167,12 +627,6 @@ "restore-cursor": "2.0.0" } }, - "cli-spinners": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.1.0.tgz", - "integrity": "sha1-8YR7FohE2RemceudFH499JfJDQY=", - "dev": true - }, "cli-width": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", @@ -2180,71 +634,53 @@ "dev": true }, "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "optional": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "optional": true + } } }, "clone": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", - "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", + "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", + "dev": true + }, + "cmd-shim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.2.tgz", + "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1" + } }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "coa": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", - "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", - "dev": true, - "requires": { - "q": "1.5.1" - } + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "codemirror": { - "version": "5.31.0", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.31.0.tgz", - "integrity": "sha512-LKbMZKoAz7pMmWuSEl253G6yyloSulj1kXfvYv+3n3I8wMiI7QwnCHwKM3Zw5S9ItNV28Layq0/ihQXWmn9T9w==" - }, - "codemirror-graphql": { - "version": "0.6.11", - "resolved": "https://registry.npmjs.org/codemirror-graphql/-/codemirror-graphql-0.6.11.tgz", - "integrity": "sha512-wh9lS3FvcKU1NvvE1pAOnsEfgzhSxe0EqxkL1qjbDC/chqPgfEyQB8WmQWnvglmmsUQHTcARY9jfYr6uZYQTVg==", - "requires": { - "graphql-language-service-interface": "0.0.19", - "graphql-language-service-parser": "0.0.15" - } - }, - "color": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", - "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", - "dev": true, - "requires": { - "clone": "1.0.3", - "color-convert": "1.9.1", - "color-string": "0.3.0" - }, - "dependencies": { - "clone": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", - "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", - "dev": true - } - } + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true }, "color-convert": { "version": "1.9.1", @@ -2261,96 +697,57 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "color-string": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", - "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", + "columnify": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", + "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", "dev": true, "requires": { - "color-name": "1.1.3" + "strip-ansi": "3.0.1", + "wcwidth": "1.0.1" + }, + "dependencies": { + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + } } }, - "colormin": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", - "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", - "dev": true, - "requires": { - "color": "0.11.4", - "css-color-names": "0.0.4", - "has": "1.0.1" - } - }, - "colors": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", - "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=" - }, "combined-stream": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "dev": true, "requires": { "delayed-stream": "1.0.0" } }, - "commander": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "command-join": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/command-join/-/command-join-2.0.0.tgz", + "integrity": "sha1-Uui5hPSHLZUv8b3IuYOX0nxxRM8=", "dev": true }, - "compare-version": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", - "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", - "dev": true - }, - "compress-commons": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz", - "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=", + "compare-func": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", + "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", "dev": true, "requires": { - "buffer-crc32": "0.2.13", - "crc32-stream": "2.0.0", - "normalize-path": "2.1.1", - "readable-stream": "2.3.3" - } - }, - "compressible": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz", - "integrity": "sha1-xZpcmdt2dn6YdlAOJx72OzSTvWY=", - "dev": true, - "requires": { - "mime-db": "1.31.0" - } - }, - "compression": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.1.tgz", - "integrity": "sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=", - "dev": true, - "requires": { - "accepts": "1.3.4", - "bytes": "3.0.0", - "compressible": "2.0.12", - "debug": "2.6.9", - "on-headers": "1.0.1", - "safe-buffer": "5.1.1", - "vary": "1.1.2" + "array-ify": "1.0.0", + "dot-prop": "3.0.0" } }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "concat-stream": { "version": "1.6.0", @@ -2363,146 +760,10 @@ "typedarray": "0.0.6" } }, - "concurrently": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-3.5.0.tgz", - "integrity": "sha1-jPG3cHppFqeKT/W3e7BN7FSzebI=", - "dev": true, - "requires": { - "chalk": "0.5.1", - "commander": "2.6.0", - "date-fns": "1.29.0", - "lodash": "4.17.4", - "rx": "2.3.24", - "spawn-command": "0.0.2-1", - "supports-color": "3.2.3", - "tree-kill": "1.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz", - "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=", - "dev": true - }, - "ansi-styles": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz", - "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=", - "dev": true - }, - "chalk": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", - "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", - "dev": true, - "requires": { - "ansi-styles": "1.1.0", - "escape-string-regexp": "1.0.5", - "has-ansi": "0.1.0", - "strip-ansi": "0.3.0", - "supports-color": "0.2.0" - }, - "dependencies": { - "supports-color": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", - "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=", - "dev": true - } - } - }, - "commander": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz", - "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=", - "dev": true - }, - "has-ansi": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", - "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=", - "dev": true, - "requires": { - "ansi-regex": "0.2.1" - } - }, - "strip-ansi": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", - "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=", - "dev": true, - "requires": { - "ansi-regex": "0.2.1" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "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" - } - }, - "connect-history-api-fallback": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", - "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=", - "dev": true - }, - "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" - } - }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "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 - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true - }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", - "dev": true - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, "content-type-parser": { @@ -2511,60 +772,217 @@ "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==", "dev": true }, + "conventional-changelog": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-1.1.7.tgz", + "integrity": "sha1-kVGmKx2O2y2CcR2r9bfPcQQfgrE=", + "dev": true, + "requires": { + "conventional-changelog-angular": "1.5.2", + "conventional-changelog-atom": "0.1.2", + "conventional-changelog-codemirror": "0.2.1", + "conventional-changelog-core": "1.9.3", + "conventional-changelog-ember": "0.2.9", + "conventional-changelog-eslint": "0.2.1", + "conventional-changelog-express": "0.2.1", + "conventional-changelog-jquery": "0.1.0", + "conventional-changelog-jscs": "0.1.0", + "conventional-changelog-jshint": "0.2.1" + } + }, + "conventional-changelog-angular": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.5.2.tgz", + "integrity": "sha1-Kzj2Zf6cWSCvGi+C9Uf0ur5t5Xw=", + "dev": true, + "requires": { + "compare-func": "1.3.2", + "q": "1.5.1" + } + }, + "conventional-changelog-atom": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-0.1.2.tgz", + "integrity": "sha1-Ella1SZ6aTfDTPkAKBscZRmKTGM=", + "dev": true, + "requires": { + "q": "1.5.1" + } + }, + "conventional-changelog-cli": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-1.3.5.tgz", + "integrity": "sha1-RsUUliFrdAZYiIPe+m+sWJ6bsx4=", + "dev": true, + "requires": { + "add-stream": "1.0.0", + "conventional-changelog": "1.1.7", + "lodash": "4.17.4", + "meow": "3.7.0", + "tempfile": "1.1.1" + } + }, + "conventional-changelog-codemirror": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.2.1.tgz", + "integrity": "sha1-KZpPcUe681DmyBWPxUlUopHFzAk=", + "dev": true, + "requires": { + "q": "1.5.1" + } + }, + "conventional-changelog-core": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-1.9.3.tgz", + "integrity": "sha1-KJn+d5OJoynw7EsnRsNt3vuY2i0=", + "dev": true, + "requires": { + "conventional-changelog-writer": "2.0.2", + "conventional-commits-parser": "2.0.1", + "dateformat": "1.0.12", + "get-pkg-repo": "1.4.0", + "git-raw-commits": "1.3.0", + "git-remote-origin-url": "2.0.0", + "git-semver-tags": "1.2.3", + "lodash": "4.17.4", + "normalize-package-data": "2.4.0", + "q": "1.5.1", + "read-pkg": "1.1.0", + "read-pkg-up": "1.0.1", + "through2": "2.0.3" + } + }, + "conventional-changelog-ember": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-0.2.9.tgz", + "integrity": "sha1-jsc8wFTjqwZGZ/sf61L+jvGxZDg=", + "dev": true, + "requires": { + "q": "1.5.1" + } + }, + "conventional-changelog-eslint": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-0.2.1.tgz", + "integrity": "sha1-LCoRvrIW+AZJunKDQYApO2h8BmI=", + "dev": true, + "requires": { + "q": "1.5.1" + } + }, + "conventional-changelog-express": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-0.2.1.tgz", + "integrity": "sha1-g42eHmyQmXA7FQucGaoteBdCvWw=", + "dev": true, + "requires": { + "q": "1.5.1" + } + }, + "conventional-changelog-jquery": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz", + "integrity": "sha1-Agg5cWLjhGmG5xJztsecW1+A9RA=", + "dev": true, + "requires": { + "q": "1.5.1" + } + }, + "conventional-changelog-jscs": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz", + "integrity": "sha1-BHnrRDzH1yxYvwvPDvHURKkvDlw=", + "dev": true, + "requires": { + "q": "1.5.1" + } + }, + "conventional-changelog-jshint": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-0.2.1.tgz", + "integrity": "sha1-hhObs6yZiZ8rF36WF+CbN9mbzzo=", + "dev": true, + "requires": { + "compare-func": "1.3.2", + "q": "1.5.1" + } + }, + "conventional-changelog-writer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-2.0.2.tgz", + "integrity": "sha1-tYV97RsAHa+aeLnNQJJvRcE0lJs=", + "dev": true, + "requires": { + "compare-func": "1.3.2", + "conventional-commits-filter": "1.1.0", + "dateformat": "1.0.12", + "handlebars": "4.0.11", + "json-stringify-safe": "5.0.1", + "lodash": "4.17.4", + "meow": "3.7.0", + "semver": "5.4.1", + "split": "1.0.1", + "through2": "2.0.3" + } + }, + "conventional-commits-filter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-1.1.0.tgz", + "integrity": "sha1-H8Ka8wte2rdvVOIpxBGwxmPQ+es=", + "dev": true, + "requires": { + "is-subset": "0.1.1", + "modify-values": "1.0.0" + } + }, + "conventional-commits-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-2.0.1.tgz", + "integrity": "sha1-HxXOa4RPfKQUlcgZDAgzwwuLFpM=", + "dev": true, + "requires": { + "JSONStream": "1.3.1", + "is-text-path": "1.0.1", + "lodash": "4.17.4", + "meow": "3.7.0", + "split2": "2.2.0", + "through2": "2.0.3", + "trim-off-newlines": "1.0.1" + } + }, + "conventional-recommended-bump": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-1.0.3.tgz", + "integrity": "sha1-RytpsbjwnFxO1A/iikHmPMBL1zY=", + "dev": true, + "requires": { + "concat-stream": "1.6.0", + "conventional-commits-filter": "1.1.0", + "conventional-commits-parser": "2.0.1", + "git-raw-commits": "1.3.0", + "git-semver-tags": "1.2.3", + "meow": "3.7.0", + "object-assign": "4.1.1" + } + }, "convert-source-map": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", - "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", - "dev": true - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", "dev": true }, "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "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=" - }, - "crc": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.5.0.tgz", - "integrity": "sha1-mLi6fUiWZbo5efWbITgTdBAaGWQ=", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "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", @@ -2574,49 +992,14 @@ "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": "2.0.1", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-2.0.1.tgz", - "integrity": "sha1-8oO0A56nWa2pq36YetO92yQbeaY=", - "dev": true, - "requires": { - "cross-spawn": "3.0.1", - "lodash.assign": "3.2.0" - } - }, "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "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" } }, @@ -2624,6 +1007,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "dev": true, "requires": { "boom": "5.2.0" }, @@ -2632,166 +1016,13 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "dev": true, "requires": { "hoek": "4.2.0" } } } }, - "crypto": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/crypto/-/crypto-0.0.3.tgz", - "integrity": "sha1-RwqBuGvkxe4XrMggeh9TFa4g27A=" - }, - "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-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - }, - "css-loader": { - "version": "0.28.7", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.7.tgz", - "integrity": "sha512-GxMpax8a/VgcfRrVy0gXD6yLd5ePYbXX/5zGgTVYp4wXtJklS8Z2VaUArJgc//f6/Dzil7BaJObdSv8eKKCPgg==", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "css-selector-tokenizer": "0.7.0", - "cssnano": "3.10.0", - "icss-utils": "2.1.0", - "loader-utils": "1.1.0", - "lodash.camelcase": "4.3.0", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-modules-extract-imports": "1.1.0", - "postcss-modules-local-by-default": "1.2.0", - "postcss-modules-scope": "1.1.0", - "postcss-modules-values": "1.3.0", - "postcss-value-parser": "3.3.0", - "source-list-map": "2.0.0" - }, - "dependencies": { - "source-list-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", - "dev": true - } - } - }, - "css-selector-tokenizer": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", - "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", - "dev": true, - "requires": { - "cssesc": "0.1.0", - "fastparse": "1.1.1", - "regexpu-core": "1.0.0" - }, - "dependencies": { - "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "dev": true, - "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" - } - } - } - }, - "cssesc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", - "dev": true - }, - "cssnano": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", - "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", - "dev": true, - "requires": { - "autoprefixer": "6.7.7", - "decamelize": "1.2.0", - "defined": "1.0.0", - "has": "1.0.1", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-calc": "5.3.1", - "postcss-colormin": "2.2.2", - "postcss-convert-values": "2.6.1", - "postcss-discard-comments": "2.0.4", - "postcss-discard-duplicates": "2.1.0", - "postcss-discard-empty": "2.1.0", - "postcss-discard-overridden": "0.1.1", - "postcss-discard-unused": "2.2.3", - "postcss-filter-plugins": "2.0.2", - "postcss-merge-idents": "2.1.7", - "postcss-merge-longhand": "2.0.2", - "postcss-merge-rules": "2.1.2", - "postcss-minify-font-values": "1.0.5", - "postcss-minify-gradients": "1.0.5", - "postcss-minify-params": "1.2.2", - "postcss-minify-selectors": "2.1.1", - "postcss-normalize-charset": "1.1.1", - "postcss-normalize-url": "3.0.8", - "postcss-ordered-values": "2.2.3", - "postcss-reduce-idents": "2.4.0", - "postcss-reduce-initial": "1.0.1", - "postcss-reduce-transforms": "1.0.4", - "postcss-svgo": "2.1.6", - "postcss-unique-selectors": "2.0.2", - "postcss-value-parser": "3.3.0", - "postcss-zindex": "2.2.0" - } - }, - "csso": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", - "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", - "dev": true, - "requires": { - "clap": "1.2.3", - "source-map": "0.5.7" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, "cssom": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", @@ -2816,39 +1047,39 @@ "array-find-index": "1.0.2" } }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dargs": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", + "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", "dev": true, "requires": { - "es5-ext": "0.10.35" + "number-is-nan": "1.0.1" } }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, "requires": { "assert-plus": "1.0.0" } }, - "date-fns": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz", - "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==", - "dev": true - }, - "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 + "dateformat": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "dev": true, + "requires": { + "get-stdin": "4.0.1", + "meow": "3.7.0" + } }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "requires": { "ms": "2.0.0" } @@ -2856,12 +1087,14 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true }, "deep-extend": { "version": "0.4.2", @@ -2884,67 +1117,25 @@ "strip-bom": "2.0.0" } }, - "define-properties": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.11" - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, - "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" + "clone": "1.0.3" } }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", - "dev": true - }, - "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" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true }, "detect-indent": { @@ -2956,207 +1147,26 @@ "repeating": "2.0.1" } }, - "detect-node": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", - "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=", - "dev": true - }, "diff": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==", "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" - } - }, - "disposables": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/disposables/-/disposables-1.0.1.tgz", - "integrity": "sha1-BkcnoltU9QK9griaot+4358bOeM=" - }, - "dmg-builder": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-2.1.6.tgz", - "integrity": "sha512-5gYVdJJPnATbnMAv/ufMd2qqbb8wWLyl77am1EKUL+5ZZjCkujps1inHcq8+s+G/iJJqGn1ko4I7RBvhd2AV/w==", - "dev": true, - "requires": { - "bluebird-lst": "1.0.5", - "builder-util": "3.2.2", - "debug": "3.1.0", - "fs-extra-p": "4.4.4", - "iconv-lite": "0.4.19", - "js-yaml": "3.10.0", - "parse-color": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" - } - } - } - }, - "dnd-core": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-2.5.4.tgz", - "integrity": "sha512-BcI782MfTm3wCxeIS5c7tAutyTwEIANtuu3W6/xkoJRwiqhRXKX3BbGlycUxxyzMsKdvvoavxgrC3EMPFNYL9A==", - "requires": { - "asap": "2.0.6", - "invariant": "2.2.2", - "lodash": "4.17.4", - "redux": "3.7.2" - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dns-packet": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.2.2.tgz", - "integrity": "sha512-kN+DjfGF7dJGUL7nWRktL9Z18t1rWP3aQlyZdY8XlpvU3Nc6GeFTQApftcjtWKxAZfiggZSGrCEoszNgvnpwDg==", - "dev": true, - "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "requires": { - "buffer-indexof": "1.1.1" - } - }, - "doctrine": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", - "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", - "dev": true, - "requires": { - "esutils": "2.0.2", - "isarray": "1.0.0" - } - }, - "dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", - "dev": true, - "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" - }, - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", - "dev": true - } - } - }, - "dom-walk": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", - "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=", - "dev": true - }, - "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 - }, - "domelementtype": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", - "dev": true - }, - "domhandler": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", - "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", - "dev": true, - "requires": { - "domelementtype": "1.3.0" - } - }, - "domutils": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.6.2.tgz", - "integrity": "sha1-GVjMC0yUJuntNn+xyOhUiRsPo/8=", - "dev": true, - "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" - } - }, "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "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" } }, - "dotenv": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", - "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=", - "dev": true - }, - "dotenv-expand": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.0.1.tgz", - "integrity": "sha1-aP3cFWGBTgoQlkERBX/xOM7X16g=", - "dev": true - }, - "ducktype": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ducktype/-/ducktype-1.1.0.tgz", - "integrity": "sha1-owrBwDIJFrDCRl19HKj5Vo59kYg=" - }, "duplexer": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true }, "duplexer3": { "version": "0.1.4", @@ -3164,895 +1174,16 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, - "ebnf-parser": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/ebnf-parser/-/ebnf-parser-0.1.10.tgz", - "integrity": "sha1-zR9rpHfFY4xAyX7ZtXLbW6tdgzE=" - }, "ecc-jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, "optional": true, "requires": { "jsbn": "0.1.1" } }, - "ecdsa-sig-formatter": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz", - "integrity": "sha1-S8kmJ07Dtau1AW5+HWCSGsJisqE=", - "requires": { - "base64url": "2.0.0", - "safe-buffer": "5.1.1" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "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.9", - "resolved": "https://registry.npmjs.org/electron/-/electron-1.7.9.tgz", - "integrity": "sha1-rdVOn4+D7QL2UZ7BATX2mLGTNs8=", - "dev": true, - "requires": { - "@types/node": "7.0.48", - "electron-download": "3.3.0", - "extract-zip": "1.6.6" - } - }, - "electron-builder": { - "version": "19.45.5", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-19.45.5.tgz", - "integrity": "sha512-VIEiCAzmiThxDjferEIk8fP/Rdm3xWM+FYIQ1hX4ZMD8ScZ+Z1EaoSguLh7KP8aCamLcJsgD4lMlJRFoyw/QGg==", - "dev": true, - "requires": { - "7zip-bin": "2.2.7", - "app-package-builder": "1.5.0", - "asar-integrity": "0.2.3", - "async-exit-hook": "2.0.1", - "bluebird-lst": "1.0.5", - "builder-util": "3.2.2", - "builder-util-runtime": "3.2.0", - "chalk": "2.3.0", - "chromium-pickle-js": "0.2.0", - "debug": "3.1.0", - "dmg-builder": "2.1.6", - "ejs": "2.5.7", - "electron-download-tf": "4.3.4", - "electron-osx-sign": "0.4.7", - "electron-publish": "19.45.0", - "fs-extra-p": "4.4.4", - "hosted-git-info": "2.5.0", - "is-ci": "1.0.10", - "isbinaryfile": "3.0.2", - "js-yaml": "3.10.0", - "lazy-val": "1.0.2", - "minimatch": "3.0.4", - "normalize-package-data": "2.4.0", - "plist": "2.1.0", - "read-config-file": "1.2.0", - "sanitize-filename": "1.6.1", - "semver": "5.4.1", - "temp-file": "2.1.0", - "update-notifier": "2.3.0", - "yargs": "10.0.3" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "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" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "electron-download-tf": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/electron-download-tf/-/electron-download-tf-4.3.4.tgz", - "integrity": "sha512-SQYDGMLpTgty1bx3NycuDb7dNPzktVSdK2sqPZjyRocauq/uN/V4S2lcpFVLupaHhKlD8zozm9fTpm5UdohvTg==", - "dev": true, - "requires": { - "debug": "3.1.0", - "env-paths": "1.0.0", - "fs-extra": "4.0.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" - } - }, - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true - }, - "fs-extra": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", - "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.1" - } - }, - "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 - }, - "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==", - "dev": true, - "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "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" - } - }, - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "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" - } - }, - "yargs": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.0.3.tgz", - "integrity": "sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==", - "dev": true, - "requires": { - "cliui": "3.2.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "8.0.0" - } - } - } - }, - "electron-builder-lib": { - "version": "19.46.3", - "resolved": "https://registry.npmjs.org/electron-builder-lib/-/electron-builder-lib-19.46.3.tgz", - "integrity": "sha512-OTNJD7GFGoS0xuup+C7WKXy9jdKoSyuw/3pOReAuuMkSFW9LGUOP8Hpc7sBgSNKRVkyNFSKsBuHYqoLdOmTwnQ==", - "dev": true, - "requires": { - "7zip-bin": "2.2.7", - "app-package-builder": "1.5.1", - "asar-integrity": "0.2.3", - "async-exit-hook": "2.0.1", - "bluebird-lst": "1.0.5", - "builder-util": "3.4.0", - "builder-util-runtime": "3.2.0", - "chromium-pickle-js": "0.2.0", - "debug": "3.1.0", - "dmg-builder": "2.1.7", - "ejs": "2.5.7", - "electron-osx-sign": "0.4.7", - "electron-publish": "19.46.0", - "fs-extra-p": "4.4.4", - "hosted-git-info": "2.5.0", - "is-ci": "1.0.10", - "isbinaryfile": "3.0.2", - "js-yaml": "3.10.0", - "lazy-val": "1.0.2", - "minimatch": "3.0.4", - "normalize-package-data": "2.4.0", - "plist": "2.1.0", - "read-config-file": "1.2.0", - "sanitize-filename": "1.6.1", - "semver": "5.4.1", - "temp-file": "2.1.0" - }, - "dependencies": { - "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" - } - }, - "app-package-builder": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/app-package-builder/-/app-package-builder-1.5.1.tgz", - "integrity": "sha512-kSSYzcoc5Qm5yATmKAoXg0+4bhHfGf5isyMOV/XZHDJ0Z9DUNMi6cp1u5V7qGpOgHlbWAKiALxxI3q4rWc+AaA==", - "dev": true, - "requires": { - "bluebird-lst": "1.0.5", - "builder-util": "3.4.0", - "builder-util-runtime": "3.2.0", - "fs-extra-p": "4.4.4", - "int64-buffer": "0.1.9", - "rabin-bindings": "1.7.3" - } - }, - "builder-util": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-3.4.0.tgz", - "integrity": "sha512-5zEMRRhpYgrJ8RdKjBPUl/7OH+AiXfdpVRg5PXAdhC1sfdVjgXfsygfVdtMcsqD8tM8ydZlbHuc92in4E5JFMg==", - "dev": true, - "requires": { - "7zip-bin": "2.2.7", - "bluebird-lst": "1.0.5", - "builder-util-runtime": "3.2.0", - "chalk": "2.3.0", - "debug": "3.1.0", - "fs-extra-p": "4.4.4", - "ini": "1.3.4", - "is-ci": "1.0.10", - "js-yaml": "3.10.0", - "lazy-val": "1.0.2", - "node-emoji": "1.8.1", - "semver": "5.4.1", - "source-map-support": "0.5.0", - "stat-mode": "0.2.2", - "temp-file": "2.1.0", - "tunnel-agent": "0.6.0" - } - }, - "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" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "dmg-builder": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-2.1.7.tgz", - "integrity": "sha512-ZHM1t6kZFO2Qf6c0IpxtJc6dQ/lO+fPY/8O4UK+FCMmajzML4IEEL3zKsEooJV6KmarYnm7kqAWPL2nSNRlLhg==", - "dev": true, - "requires": { - "bluebird-lst": "1.0.5", - "builder-util": "3.4.0", - "debug": "3.1.0", - "fs-extra-p": "4.4.4", - "iconv-lite": "0.4.19", - "js-yaml": "3.10.0", - "parse-color": "1.0.0" - } - }, - "electron-publish": { - "version": "19.46.0", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-19.46.0.tgz", - "integrity": "sha512-tRbGFyg/TTAHi/HZSWt0KKHpdiBfPow7NZA+6LGc/qsvcW5WMUHs6uKHjjhElcna0rXgH4ZucoyY9zes/vJw5Q==", - "dev": true, - "requires": { - "bluebird-lst": "1.0.5", - "builder-util": "3.4.0", - "builder-util-runtime": "3.2.0", - "chalk": "2.3.0", - "fs-extra-p": "4.4.4", - "mime": "2.0.3" - } - }, - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" - } - }, - "source-map-support": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.0.tgz", - "integrity": "sha512-vUoN3I7fHQe0R/SJLKRdKYuEdRGogsviXFkHHo17AWaTGv17VLnxw+CFXvqy+y4ORZ3doWLQcxRYfwKrsd/H7Q==", - "dev": true, - "requires": { - "source-map": "0.6.1" - } - }, - "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" - } - } - } - }, - "electron-builder-squirrel-windows": { - "version": "19.46.0", - "resolved": "https://registry.npmjs.org/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-19.46.0.tgz", - "integrity": "sha512-P7D7jC106wKdfgTmX5PTYOvx0W3MizsDH8f4W2ZNRCYvw99iFeRWweLLYUyyTLXFk+wQkyOYbTJzakz6V49fNQ==", - "dev": true, - "requires": { - "7zip-bin": "2.2.7", - "archiver": "2.1.0", - "bluebird-lst": "1.0.5", - "builder-util": "3.4.0", - "fs-extra-p": "4.4.4", - "sanitize-filename": "1.6.1" - }, - "dependencies": { - "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" - } - }, - "builder-util": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-3.4.0.tgz", - "integrity": "sha512-5zEMRRhpYgrJ8RdKjBPUl/7OH+AiXfdpVRg5PXAdhC1sfdVjgXfsygfVdtMcsqD8tM8ydZlbHuc92in4E5JFMg==", - "dev": true, - "requires": { - "7zip-bin": "2.2.7", - "bluebird-lst": "1.0.5", - "builder-util-runtime": "3.2.0", - "chalk": "2.3.0", - "debug": "3.1.0", - "fs-extra-p": "4.4.4", - "ini": "1.3.4", - "is-ci": "1.0.10", - "js-yaml": "3.10.0", - "lazy-val": "1.0.2", - "node-emoji": "1.8.1", - "semver": "5.4.1", - "source-map-support": "0.5.0", - "stat-mode": "0.2.2", - "temp-file": "2.1.0", - "tunnel-agent": "0.6.0" - } - }, - "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" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" - } - }, - "source-map-support": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.0.tgz", - "integrity": "sha512-vUoN3I7fHQe0R/SJLKRdKYuEdRGogsviXFkHHo17AWaTGv17VLnxw+CFXvqy+y4ORZ3doWLQcxRYfwKrsd/H7Q==", - "dev": true, - "requires": { - "source-map": "0.6.1" - } - }, - "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" - } - } - } - }, - "electron-context-menu": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-0.9.1.tgz", - "integrity": "sha1-7U3yDAgEkcPJlqv8s2MVmUajgFg=", - "requires": { - "electron-dl": "1.10.0", - "electron-is-dev": "0.1.2" - } - }, - "electron-dl": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/electron-dl/-/electron-dl-1.10.0.tgz", - "integrity": "sha1-+UQWBkBW/G8qhq5JhhTJNSaJCvk=", - "requires": { - "ext-name": "5.0.0", - "pupa": "1.0.0", - "unused-filename": "1.0.0" - } - }, - "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": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1" - } - } - } - }, - "electron-is-dev": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-0.1.2.tgz", - "integrity": "sha1-ihBD4ys6HaHD9VPc4oznZCRhZ+M=" - }, - "electron-osx-sign": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.7.tgz", - "integrity": "sha1-HXVkeoJ0jqzUi+pwYW7IP/rePuU=", - "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" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "electron-publish": { - "version": "19.45.0", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-19.45.0.tgz", - "integrity": "sha512-hubOvL3bvgDoITy0hgh+FSbC2Nx1OYDeE4ipzSnEEa6xzjS9svROxUiyyPncbL9O1E+VreJTDyNWaYsYaUg8jw==", - "dev": true, - "requires": { - "bluebird-lst": "1.0.5", - "builder-util": "3.2.2", - "builder-util-runtime": "3.2.0", - "chalk": "2.3.0", - "fs-extra-p": "4.4.4", - "mime": "2.0.3" - }, - "dependencies": { - "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" - } - }, - "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": "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" - } - } - } - }, - "electron-rebuild": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.6.0.tgz", - "integrity": "sha1-6NJvTY6f5TiN81hks2WOXP1Ny34=", - "dev": true, - "requires": { - "colors": "1.1.2", - "debug": "2.6.9", - "fs-extra": "3.0.1", - "node-abi": "2.1.2", - "node-gyp": "3.6.2", - "ora": "1.3.0", - "rimraf": "2.6.2", - "spawn-rx": "2.0.12", - "yargs": "7.1.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 - }, - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true - }, - "fs-extra": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", - "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "3.0.1", - "universalify": "0.1.1" - } - }, - "jsonfile": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", - "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11" - } - }, - "node-gyp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", - "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", - "dev": true, - "requires": { - "fstream": "1.0.11", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.4", - "request": "2.83.0", - "rimraf": "2.6.2", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.0" - } - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true - }, - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "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 - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "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": "5.0.0" - } - }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "dev": true, - "requires": { - "camelcase": "3.0.0" - } - } - } - }, - "electron-squirrel-startup": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/electron-squirrel-startup/-/electron-squirrel-startup-1.0.0.tgz", - "integrity": "sha1-GbTlWTP6Dvj1VnhLnGYPdyVGoLg=", - "requires": { - "debug": "2.6.9" - } - }, - "electron-to-chromium": { - "version": "1.3.27", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz", - "integrity": "sha1-eOy4o5kGYYe7N07t412ccFZagD0=", - "dev": true - }, - "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" - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "encodeurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", - "dev": true - }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "0.4.19" - } - }, - "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=", - "dev": true, - "requires": { - "once": "1.4.0" - } - }, - "enhanced-resolve": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", - "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "object-assign": "4.1.1", - "tapable": "0.2.8" - } - }, - "entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", - "dev": true - }, - "env-paths": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", - "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=", - "dev": true - }, "errno": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", @@ -4071,542 +1202,44 @@ "is-arrayish": "0.2.1" } }, - "error-stack-parser": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-1.3.6.tgz", - "integrity": "sha1-4Oc7k+QXE40c18C3RrGkoUhUwpI=", - "dev": true, - "requires": { - "stackframe": "0.3.1" - } - }, - "es-abstract": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.9.0.tgz", - "integrity": "sha512-kk3IJoKo7A3pWJc0OV8yZ/VEX2oSUytfekrJiqoxBlKJMFAJVJVpGdHClCCTdv+Fn2zHfpDHHIelMFhZVfef3Q==", - "dev": true, - "requires": { - "es-to-primitive": "1.1.1", - "function-bind": "1.1.1", - "has": "1.0.1", - "is-callable": "1.1.3", - "is-regex": "1.0.4" - } - }, - "es-to-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", - "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", - "dev": true, - "requires": { - "is-callable": "1.1.3", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" - } - }, - "es3ify": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/es3ify/-/es3ify-0.1.4.tgz", - "integrity": "sha1-rZ+l3xrjTz8x4SEbWBiy1RB439E=", - "requires": { - "esprima-fb": "3001.1.0-dev-harmony-fb", - "jstransform": "3.0.0", - "through": "2.3.8" - }, - "dependencies": { - "esprima-fb": { - "version": "3001.1.0-dev-harmony-fb", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz", - "integrity": "sha1-t303q8046gt3Qmu4vCkizmtCZBE=" - } - } - }, - "es5-ext": { - "version": "0.10.35", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.35.tgz", - "integrity": "sha1-GO6FjOajxFx9eekcFfzKnsVoSU8=", - "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.35", - "es6-symbol": "3.1.1" - } - }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35", - "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.35", - "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.35" - } - }, - "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.35", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true }, "escodegen": { - "version": "0.0.21", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.21.tgz", - "integrity": "sha1-U9ZSz6EDA4gnlFilJmxf/HCcY8M=", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, "requires": { - "esprima": "1.0.4", - "estraverse": "0.0.4", - "source-map": "0.6.1" + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" }, "dependencies": { "esprima": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", - "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" - } - } - }, - "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" - }, - "dependencies": { - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - } - } - }, - "eslint": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz", - "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "chalk": "1.1.3", - "concat-stream": "1.6.0", - "debug": "2.6.9", - "doctrine": "2.0.0", - "escope": "3.6.0", - "espree": "3.5.2", - "esquery": "1.0.0", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "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.7.0", - "json-stable-stringify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "1.2.1", - "progress": "1.1.8", - "require-uncached": "1.0.3", - "shelljs": "0.7.8", - "strip-bom": "3.0.0", - "strip-json-comments": "2.0.1", - "table": "3.8.3", - "text-table": "0.2.0", - "user-home": "2.0.0" - }, - "dependencies": { - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "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" - } - } - } - }, - "eslint-config-semistandard": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-semistandard/-/eslint-config-semistandard-11.0.0.tgz", - "integrity": "sha1-RO73z9/Uchnjp7gbkbVA6IC7JhU=", - "dev": true - }, - "eslint-config-standard": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-10.2.1.tgz", - "integrity": "sha1-wGHk0GbzedwXzVYsZOgZtN1FRZE=", - "dev": true - }, - "eslint-import-resolver-node": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz", - "integrity": "sha512-yUtXS15gIcij68NmXmP9Ni77AQuCN0itXbCc/jWd8C6/yKZaSNXicpC8cgvjnxVdmfsosIXrjpzFq7GcDryb6A==", - "dev": true, - "requires": { - "debug": "2.6.9", - "resolve": "1.5.0" - } - }, - "eslint-module-utils": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz", - "integrity": "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==", - "dev": true, - "requires": { - "debug": "2.6.9", - "pkg-dir": "1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - }, - "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" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "dev": true, - "requires": { - "find-up": "1.1.2" - } - } - } - }, - "eslint-plugin-filenames": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-filenames/-/eslint-plugin-filenames-1.2.0.tgz", - "integrity": "sha1-runByQGJyV0uSZAsFg7O7+zZn1M=", - "dev": true, - "requires": { - "lodash.camelcase": "4.3.0", - "lodash.kebabcase": "4.1.1", - "lodash.snakecase": "4.1.1", - "lodash.upperfirst": "4.3.1" - } - }, - "eslint-plugin-flowtype": { - "version": "2.39.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.39.1.tgz", - "integrity": "sha512-RiQv+7Z9QDJuzt+NO8sYgkLGT+h+WeCrxP7y8lI7wpU41x3x/2o3PGtHk9ck8QnA9/mlbNcy/hG0eKvmd7npaA==", - "dev": true, - "requires": { - "lodash": "4.17.4" - } - }, - "eslint-plugin-html": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-2.0.3.tgz", - "integrity": "sha1-fImIOrDIX6XSi2ZqFKTpBqqQuJc=", - "dev": true, - "requires": { - "htmlparser2": "3.9.2" - } - }, - "eslint-plugin-import": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz", - "integrity": "sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g==", - "dev": true, - "requires": { - "builtin-modules": "1.1.1", - "contains-path": "0.1.0", - "debug": "2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.3.1", - "eslint-module-utils": "2.1.1", - "has": "1.0.1", - "lodash.cond": "4.5.2", - "minimatch": "3.0.4", - "read-pkg-up": "2.0.0" - }, - "dependencies": { - "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" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "2.3.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - } - } - }, - "eslint-plugin-jest": { - "version": "19.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-19.0.1.tgz", - "integrity": "sha1-QqQg6Q6BqnThYsFhZuQ6MbiQ7s4=", - "dev": true - }, - "eslint-plugin-json": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-1.2.0.tgz", - "integrity": "sha1-m6c7sL6Z1QCT6In1uWhGPSow764=", - "dev": true, - "requires": { - "jshint": "2.9.5" - } - }, - "eslint-plugin-node": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-5.2.1.tgz", - "integrity": "sha512-xhPXrh0Vl/b7870uEbaumb2Q+LxaEcOQ3kS1jtIXanBAwpMre1l5q/l2l/hESYJGEFKuI78bp6Uw50hlpr7B+g==", - "dev": true, - "requires": { - "ignore": "3.3.7", - "minimatch": "3.0.4", - "resolve": "1.5.0", - "semver": "5.3.0" - }, - "dependencies": { - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true - } - } - }, - "eslint-plugin-promise": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.6.0.tgz", - "integrity": "sha512-YQzM6TLTlApAr7Li8vWKR+K3WghjwKcYzY0d2roWap4SLK+kzuagJX/leTetIDWsFcTFnKNJXWupDCD6aZkP2Q==", - "dev": true - }, - "eslint-plugin-react": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.5.0.tgz", - "integrity": "sha512-swd5j/3Fp+xa9I/HOIKLWuEzBqVX2GlWp6g63hpP/BToaA43qYTEi2Hg+BfYz4WdOBCoDNh9NMBZ45DqW6sWpQ==", - "dev": true, - "requires": { - "doctrine": "2.0.0", - "has": "1.0.1", - "jsx-ast-utils": "2.0.1", - "prop-types": "15.6.0" - } - }, - "eslint-plugin-standard": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", - "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=", - "dev": true - }, - "esmangle-evaluator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esmangle-evaluator/-/esmangle-evaluator-1.0.1.tgz", - "integrity": "sha1-Yg2GbvSGGzMR91dm1SqFcrs8YzY=" - }, - "espree": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.2.tgz", - "integrity": "sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==", - "dev": true, - "requires": { - "acorn": "5.2.1", - "acorn-jsx": "3.0.1" - }, - "dependencies": { - "acorn": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.2.1.tgz", - "integrity": "sha512-jG0u7c4Ly+3QkkW18V+NRDN+4bWHdln30NL1ZL2AvFZZmQe/BfopYCtghCKKVBUSetZ4QKcyA0pY6/4Gw8Pv8w==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", "dev": true } } }, "esprima": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", - "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" - }, - "esquery": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", - "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", - "dev": true, - "requires": { - "estraverse": "4.2.0" - }, - "dependencies": { - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - } - } - }, - "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.1.1" - }, - "dependencies": { - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - } - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true }, "estraverse": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-0.0.4.tgz", - "integrity": "sha1-AaCTLf7ldGhKWYr1pnw7+bZCjbI=" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true }, "esutils": { "version": "2.0.2", @@ -4614,67 +1247,6 @@ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.35" - } - }, - "event-stream": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", - "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" - } - }, - "eventemitter3": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", - "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", - "dev": true - }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true - }, - "eventsource": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", - "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", - "dev": true, - "requires": { - "original": "1.0.0" - } - }, - "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" - } - }, "exec-sh": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz", @@ -4697,37 +1269,13 @@ "p-finally": "1.0.0", "signal-exit": "3.0.2", "strip-eof": "1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" - } - } } }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "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=", + "dev": true, "requires": { "is-posix-bracket": "0.1.1" } @@ -4736,16 +1284,11 @@ "version": "1.8.2", "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, "requires": { "fill-range": "2.2.3" } }, - "expand-template": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.0.tgz", - "integrity": "sha512-kkjwkMqj0h4w/sb32ERCDxCQkREMCAgS39DscDnSwDsbxnwwM1BTZySdC3Bn1lhY7vL08n9GoO/fVTynjDgRyQ==", - "dev": true - }, "expect": { "version": "21.2.1", "resolved": "https://registry.npmjs.org/expect/-/expect-21.2.1.tgz", @@ -4758,150 +1301,51 @@ "jest-matcher-utils": "21.2.1", "jest-message-util": "21.2.1", "jest-regex-util": "21.2.0" - }, - "dependencies": { - "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" - } - } - } - }, - "express": { - "version": "4.16.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", - "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", - "dev": true, - "requires": { - "accepts": "1.3.4", - "array-flatten": "1.1.1", - "body-parser": "1.18.2", - "content-disposition": "0.5.2", - "content-type": "1.0.4", - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "1.1.1", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.1", - "finalhandler": "1.1.0", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.2", - "qs": "6.5.1", - "range-parser": "1.2.0", - "safe-buffer": "5.1.1", - "send": "0.16.1", - "serve-static": "1.13.1", - "setprototypeof": "1.1.0", - "statuses": "1.3.1", - "type-is": "1.6.15", - "utils-merge": "1.0.1", - "vary": "1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - } - } - }, - "ext-list": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", - "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", - "requires": { - "mime-db": "1.31.0" - } - }, - "ext-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", - "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", - "requires": { - "ext-list": "2.2.2", - "sort-keys-length": "1.0.1" } }, "extend": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "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.0", + "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": { - "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" - } - } + "is-extglob": "1.0.0" } }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "falafel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/falafel/-/falafel-1.2.0.tgz", - "integrity": "sha1-wY0k71CRF0pJfzGM0ksCaiXN2rQ=", - "requires": { - "acorn": "1.2.2", - "foreach": "2.0.5", - "isarray": "0.0.1", - "object-keys": "1.0.11" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - } - } + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true }, "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=" + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", + "dev": true }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true }, "fast-levenshtein": { "version": "2.0.6", @@ -4909,21 +1353,6 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "fastparse": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", - "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", - "dev": true - }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "requires": { - "websocket-driver": "0.7.0" - } - }, "fb-watchman": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", @@ -4933,62 +1362,20 @@ "bser": "2.0.0" } }, - "fbjs": { - "version": "0.8.16", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", - "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", - "requires": { - "core-js": "1.2.7", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "promise": "7.3.1", - "setimmediate": "1.0.5", - "ua-parser-js": "0.7.17" - } - }, - "fd-slicer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", - "requires": { - "pend": "1.2.0" - } - }, "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" - } - }, - "file-entry-cache": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" - } - }, - "file-loader": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.5.tgz", - "integrity": "sha512-RzGHDatcVNpGISTvCpfUfOGpYuSR7HSsSg87ki+wF6rw1Hm0RALPTiAdsxAq1UwLf0RRhbe22/eHK6nhXspiOQ==", - "dev": true, - "requires": { - "loader-utils": "1.1.0", - "schema-utils": "0.3.0" + "escape-string-regexp": "1.0.5" } }, "filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true }, "fileset": { "version": "2.0.3", @@ -5004,6 +1391,7 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, "requires": { "is-number": "2.1.0", "isobject": "2.1.0", @@ -5012,32 +1400,6 @@ "repeat-string": "1.6.1" } }, - "finalhandler": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" - } - }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, - "requires": { - "commondir": "1.0.1", - "make-dir": "1.1.0", - "pkg-dir": "2.0.0" - } - }, "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -5047,200 +1409,84 @@ "locate-path": "2.0.0" } }, - "flat-cache": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", - "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", - "dev": true, - "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" - } - }, - "flatten": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", - "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", - "dev": true - }, "flow-bin": { - "version": "0.58.0", - "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.58.0.tgz", - "integrity": "sha512-jMImubdtZxLafc0EXZVCtOIJVknqGrruClPbol6kZ1oVQioMWu95iiKQMaSDJ78F4TjYuZCbqsdZ4LSI7TSsjA==", + "version": "0.59.0", + "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.59.0.tgz", + "integrity": "sha512-yJDRffvby5mCTkbwOdXwiGDjeea8Z+BPVuP53/tHqHIZC+KtQD790zopVf7mHk65v+wRn+TZ7tkRSNA9oDmyLg==", "dev": true }, - "follow-redirects": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.0.0.tgz", - "integrity": "sha1-jjQpjL0uF28lTv/sdaHHjMhJ/Tc=", - "requires": { - "debug": "2.6.9" - } - }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true }, "for-own": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, "requires": { "for-in": "1.0.2" } }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true }, "form-data": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", - "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "dev": true, "requires": { - "async": "2.6.0", + "asynckit": "0.4.0", "combined-stream": "1.0.5", "mime-types": "2.1.17" } }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" - }, "fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", + "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", "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" - }, - "dependencies": { - "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" - } - } - } - }, - "fs-extra-p": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-4.4.4.tgz", - "integrity": "sha512-zHsMNJWhXD184QfHKEIFSQSgAFNV7v9J+Nt2XpaLZp2nTz6WxZNV+R4G2uYeGeLTMaKvUZiqGKrH/4iFCupcUA==", - "dev": true, - "requires": { - "bluebird-lst": "1.0.5", - "fs-extra": "4.0.2" - }, - "dependencies": { - "fs-extra": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", - "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.1" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11" - } - } - } - }, - "fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "dev": true - }, - "fs-readfile-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fs-readfile-promise/-/fs-readfile-promise-2.0.1.tgz", - "integrity": "sha1-gAI4I5gfn//+AWCei+Zo9prknnA=", - "requires": { - "graceful-fs": "4.1.11" - } - }, - "fs-writefile-promise": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-writefile-promise/-/fs-writefile-promise-1.0.3.tgz", - "integrity": "sha1-4C+bWP/CVe2CKtx6ARFPRF1I0GM=", - "requires": { - "mkdirp-promise": "1.1.0", - "pinkie-promise": "1.0.0" - }, - "dependencies": { - "pinkie-promise": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz", - "integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=", - "requires": { - "pinkie": "1.0.0" - } - } + "jsonfile": "4.0.0", + "universalify": "0.1.1" } }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true }, "fsevents": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "dev": true, "optional": true, "requires": { - "nan": "2.5.1", + "nan": "2.8.0", "node-pre-gyp": "0.6.39" }, "dependencies": { "abbrev": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "dev": true, "optional": true }, "ajv": { "version": "4.11.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, "optional": true, "requires": { "co": "4.6.0", @@ -5249,16 +1495,22 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true }, "aproba": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", + "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", + "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "dev": true, "optional": true, "requires": { "delegates": "1.0.0", @@ -5267,36 +1519,50 @@ }, "asn1": { "version": "0.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true, "optional": true }, "assert-plus": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true, "optional": true }, "asynckit": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true, "optional": true }, "aws-sign2": { "version": "0.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true, "optional": true }, "aws4": { "version": "1.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true, "optional": true }, "balanced-match": { "version": "0.4.2", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true }, "bcrypt-pbkdf": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, "optional": true, "requires": { "tweetnacl": "0.14.5" @@ -5304,21 +1570,27 @@ }, "block-stream": { "version": "0.0.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, "requires": { "inherits": "2.0.3" } }, "boom": { "version": "2.10.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, "requires": { "hoek": "2.16.3" } }, "brace-expansion": { "version": "1.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", + "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "dev": true, "requires": { "balanced-match": "0.4.2", "concat-map": "0.0.1" @@ -5326,51 +1598,71 @@ }, "buffer-shims": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", + "dev": true }, "caseless": { "version": "0.12.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true, "optional": true }, "co": { "version": "4.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true }, "combined-stream": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "dev": true, "requires": { "delayed-stream": "1.0.0" } }, "concat-map": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true }, "core-util-is": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true }, "cryptiles": { "version": "2.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, "requires": { "boom": "2.10.1" } }, "dashdash": { "version": "1.14.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, "optional": true, "requires": { "assert-plus": "1.0.0" @@ -5378,14 +1670,18 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, "optional": true } } }, "debug": { "version": "2.6.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "dev": true, "optional": true, "requires": { "ms": "2.0.0" @@ -5393,26 +1689,36 @@ }, "deep-extend": { "version": "0.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "dev": true, "optional": true }, "delayed-stream": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true, "optional": true }, "detect-libc": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.2.tgz", + "integrity": "sha1-ca1dIEvxempsqPRQxhRUBm70YeE=", + "dev": true, "optional": true }, "ecc-jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, "optional": true, "requires": { "jsbn": "0.1.1" @@ -5420,21 +1726,29 @@ }, "extend": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true, "optional": true }, "extsprintf": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", + "dev": true }, "forever-agent": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, "optional": true }, "form-data": { "version": "2.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, "optional": true, "requires": { "asynckit": "0.4.0", @@ -5444,11 +1758,15 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true }, "fstream": { "version": "1.0.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, "requires": { "graceful-fs": "4.1.11", "inherits": "2.0.3", @@ -5458,7 +1776,9 @@ }, "fstream-ignore": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "dev": true, "optional": true, "requires": { "fstream": "1.0.11", @@ -5468,7 +1788,9 @@ }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, "optional": true, "requires": { "aproba": "1.1.1", @@ -5483,7 +1805,9 @@ }, "getpass": { "version": "0.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, "optional": true, "requires": { "assert-plus": "1.0.0" @@ -5491,14 +1815,18 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, "optional": true } } }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -5510,16 +1838,22 @@ }, "graceful-fs": { "version": "4.1.11", - "bundled": true + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true }, "har-schema": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "dev": true, "optional": true }, "har-validator": { "version": "4.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "dev": true, "optional": true, "requires": { "ajv": "4.11.8", @@ -5528,12 +1862,16 @@ }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true, "optional": true }, "hawk": { "version": "3.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, "requires": { "boom": "2.10.1", "cryptiles": "2.0.5", @@ -5543,11 +1881,15 @@ }, "hoek": { "version": "2.16.3", - "bundled": true + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true }, "http-signature": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, "optional": true, "requires": { "assert-plus": "0.2.0", @@ -5557,7 +1899,9 @@ }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -5565,37 +1909,51 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true }, "ini": { "version": "1.3.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, "requires": { "number-is-nan": "1.0.1" } }, "is-typedarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true, "optional": true }, "isarray": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, "isstream": { "version": "0.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true, "optional": true }, "jodid25519": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", + "dev": true, "optional": true, "requires": { "jsbn": "0.1.1" @@ -5603,17 +1961,23 @@ }, "jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, "optional": true }, "json-schema": { "version": "0.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true, "optional": true }, "json-stable-stringify": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, "optional": true, "requires": { "jsonify": "0.0.0" @@ -5621,17 +1985,23 @@ }, "json-stringify-safe": { "version": "5.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true, "optional": true }, "jsonify": { "version": "0.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true, "optional": true }, "jsprim": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", + "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "dev": true, "optional": true, "requires": { "assert-plus": "1.0.0", @@ -5642,48 +2012,64 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, "optional": true } } }, "mime-db": { "version": "1.27.0", - "bundled": true + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", + "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", + "dev": true }, "mime-types": { "version": "2.1.15", - "bundled": true, + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", + "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", + "dev": true, "requires": { "mime-db": "1.27.0" } }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, "requires": { "brace-expansion": "1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true, "optional": true }, "node-pre-gyp": { "version": "0.6.39", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", + "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", + "dev": true, "optional": true, "requires": { "detect-libc": "1.0.2", @@ -5701,7 +2087,9 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "dev": true, "optional": true, "requires": { "abbrev": "1.1.0", @@ -5710,7 +2098,9 @@ }, "npmlog": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", + "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", + "dev": true, "optional": true, "requires": { "are-we-there-yet": "1.1.4", @@ -5721,38 +2111,52 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true }, "oauth-sign": { "version": "0.8.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, "optional": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, "requires": { "wrappy": "1.0.2" } }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, "optional": true }, "osenv": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "dev": true, "optional": true, "requires": { "os-homedir": "1.0.2", @@ -5761,30 +2165,42 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true }, "performance-now": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "dev": true, "optional": true }, "process-nextick-args": { "version": "1.0.7", - "bundled": true + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true }, "punycode": { "version": "1.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true, "optional": true }, "qs": { "version": "6.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "dev": true, "optional": true }, "rc": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "dev": true, "optional": true, "requires": { "deep-extend": "0.4.2", @@ -5795,14 +2211,18 @@ "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true, "optional": true } } }, "readable-stream": { "version": "2.2.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", + "dev": true, "requires": { "buffer-shims": "1.0.0", "core-util-is": "1.0.2", @@ -5815,7 +2235,9 @@ }, "request": { "version": "2.81.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "dev": true, "optional": true, "requires": { "aws-sign2": "0.6.0", @@ -5844,40 +2266,54 @@ }, "rimraf": { "version": "2.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "dev": true, "requires": { "glob": "7.1.2" } }, "safe-buffer": { "version": "5.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", + "dev": true }, "semver": { "version": "5.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true, "optional": true }, "sntp": { "version": "1.0.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, "requires": { "hoek": "2.16.3" } }, "sshpk": { "version": "1.13.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", + "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", + "dev": true, "optional": true, "requires": { "asn1": "0.2.3", @@ -5893,14 +2329,18 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, "optional": true } } }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -5909,31 +2349,41 @@ }, "string_decoder": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", + "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "dev": true, "requires": { "safe-buffer": "5.0.1" } }, "stringstream": { "version": "0.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true, "optional": true }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, "requires": { "ansi-regex": "2.1.1" } }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, "optional": true }, "tar": { "version": "2.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, "requires": { "block-stream": "0.0.9", "fstream": "1.0.11", @@ -5942,7 +2392,9 @@ }, "tar-pack": { "version": "3.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", + "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", + "dev": true, "optional": true, "requires": { "debug": "2.6.8", @@ -5957,7 +2409,9 @@ }, "tough-cookie": { "version": "2.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "dev": true, "optional": true, "requires": { "punycode": "1.4.1" @@ -5965,7 +2419,9 @@ }, "tunnel-agent": { "version": "0.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, "optional": true, "requires": { "safe-buffer": "5.0.1" @@ -5973,26 +2429,36 @@ }, "tweetnacl": { "version": "0.14.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, "optional": true }, "uid-number": { "version": "0.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "dev": true, "optional": true }, "util-deprecate": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true }, "uuid": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", + "dev": true, "optional": true }, "verror": { "version": "1.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "dev": true, "optional": true, "requires": { "extsprintf": "1.0.2" @@ -6000,7 +2466,9 @@ }, "wide-align": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "dev": true, "optional": true, "requires": { "string-width": "1.0.2" @@ -6008,31 +2476,17 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true } } }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.2" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, "requires": { "aproba": "1.2.0", "console-control-strings": "1.1.0", @@ -6042,19 +2496,28 @@ "string-width": "1.0.2", "strip-ansi": "3.0.1", "wide-align": "1.1.2" - } - }, - "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" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + } } }, "get-caller-file": { @@ -6063,6 +2526,25 @@ "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", "dev": true }, + "get-pkg-repo": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz", + "integrity": "sha1-xztInAbYDMVTbCyFP54FIyBWly0=", + "dev": true, + "requires": { + "hosted-git-info": "2.5.0", + "meow": "3.7.0", + "normalize-package-data": "2.4.0", + "parse-github-repo-url": "1.4.1", + "through2": "2.0.3" + } + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", + "dev": true + }, "get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", @@ -6079,20 +2561,66 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, "requires": { "assert-plus": "1.0.0" } }, - "github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", - "dev": true + "git-raw-commits": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.3.0.tgz", + "integrity": "sha1-C8hZbpDV/+c29/VUa9LRL3OrqsY=", + "dev": true, + "requires": { + "dargs": "4.1.0", + "lodash.template": "4.4.0", + "meow": "3.7.0", + "split2": "2.2.0", + "through2": "2.0.3" + } + }, + "git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", + "dev": true, + "requires": { + "gitconfiglocal": "1.0.0", + "pify": "2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "git-semver-tags": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.2.3.tgz", + "integrity": "sha1-GItFOIK/nXojr9Mbq6U32rc4jV0=", + "dev": true, + "requires": { + "meow": "3.7.0", + "semver": "5.4.1" + } + }, + "gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", + "dev": true, + "requires": { + "ini": "1.3.5" + } }, "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", @@ -6106,6 +2634,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, "requires": { "glob-parent": "2.0.0", "is-glob": "2.0.1" @@ -6115,29 +2644,11 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, "requires": { "is-glob": "2.0.1" } }, - "global": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", - "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", - "dev": true, - "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.4" - } - }, "globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", @@ -6145,17 +2656,24 @@ "dev": true }, "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { "array-union": "1.0.2", - "arrify": "1.0.1", "glob": "7.1.2", "object-assign": "4.1.1", "pify": "2.3.0", "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } } }, "got": { @@ -6175,73 +2693,13 @@ "timed-out": "4.0.1", "unzip-response": "2.0.1", "url-parse-lax": "1.0.0" - }, - "dependencies": { - "unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", - "dev": true - } } }, "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "graphql": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-0.10.5.tgz", - "integrity": "sha512-Q7cx22DiLhwHsEfUnUip1Ww/Vfx7FS0w6+iHItNuN61+XpegHSa3k5U0+6M5BcpavQImBwFiy0z3uYwY7cXMLQ==", - "requires": { - "iterall": "1.1.3" - } - }, - "graphql-language-service-config": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/graphql-language-service-config/-/graphql-language-service-config-0.0.17.tgz", - "integrity": "sha512-TCR3AklPuTfG+tM92XvAx1aiWwa/SuTaQaouMmTV8eoVCBhm98XzoVP626QzQpJ/VnE1+83l9Ljv6PieWgdVDQ==", - "requires": { - "graphql-language-service-types": "0.0.21" - } - }, - "graphql-language-service-interface": { - "version": "0.0.19", - "resolved": "https://registry.npmjs.org/graphql-language-service-interface/-/graphql-language-service-interface-0.0.19.tgz", - "integrity": "sha512-mlZZJeCjv1Gc6cpJHuKOkXY+pne7KlfOo9Lzv9hAW9//zkzKCl9iuv71JnGN/su87z0VqjIUc0Eng4gyd7i1/Q==", - "requires": { - "graphql": "0.10.5", - "graphql-language-service-config": "0.0.17", - "graphql-language-service-parser": "0.0.15", - "graphql-language-service-types": "0.0.21", - "graphql-language-service-utils": "0.0.17" - } - }, - "graphql-language-service-parser": { - "version": "0.0.15", - "resolved": "https://registry.npmjs.org/graphql-language-service-parser/-/graphql-language-service-parser-0.0.15.tgz", - "integrity": "sha512-D/aWjI8EWQvlpdxN4SuU9Pa6MLq05Kne+nz9UtSFM/H30eNy8vy6HWqQik2qRcxscFJYW6adNvh/i6q23y8hFg==", - "requires": { - "graphql-language-service-types": "0.0.21" - } - }, - "graphql-language-service-types": { - "version": "0.0.21", - "resolved": "https://registry.npmjs.org/graphql-language-service-types/-/graphql-language-service-types-0.0.21.tgz", - "integrity": "sha512-/fSs1JmGEee8IPd7a7FJRmzK1o0W35nJZO0aJSGk2mq7QCvyKqNC8rgKG5YozAEj4ZY2psKUIxIpm6ssCTuUbw==", - "requires": { - "graphql": "0.10.5" - } - }, - "graphql-language-service-utils": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/graphql-language-service-utils/-/graphql-language-service-utils-0.0.17.tgz", - "integrity": "sha512-rL5qQ7Qw55BUHq2CEZEpOarb70eiPPCVNkJbPgUwYsS3FVlONf46+DlKhY7d6OKqNIgelPFZfr5cusuockANTg==", - "requires": { - "graphql": "0.10.5", - "graphql-language-service-types": "0.0.21" - } + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true }, "growly": { "version": "1.3.0", @@ -6249,12 +2707,6 @@ "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", "dev": true }, - "handle-thing": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", - "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", - "dev": true - }, "handlebars": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", @@ -6287,74 +2739,45 @@ "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true }, "har-validator": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.1.3.tgz", - "integrity": "sha1-aP9JyFz7wrNPtC9kgKl5a2RB3PM=", - "requires": { - "chalk": "1.1.3", - "commander": "2.11.0", - "is-my-json-valid": "2.16.1" - } - }, - "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "dev": true, "requires": { - "function-bind": "1.1.1" + "ajv": "5.5.0", + "har-schema": "2.0.0" } }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, "requires": { "ansi-regex": "2.1.1" } }, - "has-color": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", - "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=" - }, "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", "dev": true }, "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "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" - } + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true }, "hawk": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "dev": true, "requires": { "boom": "4.3.1", "cryptiles": "3.1.2", @@ -6362,36 +2785,11 @@ "sntp": "2.1.0" } }, - "highlight.js": { - "version": "9.12.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.12.0.tgz", - "integrity": "sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4=" - }, - "hkdf": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/hkdf/-/hkdf-0.0.2.tgz", - "integrity": "sha1-L422Ff3vhwIB+C0rYZym00fQZH4=" - }, - "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==" - }, - "hoist-non-react-statics": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz", - "integrity": "sha1-ND24TGAYxlB3iJgkATWhQg7iLOA=" + "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==", + "dev": true }, "home-or-tmp": { "version": "2.0.0", @@ -6403,36 +2801,12 @@ "os-tmpdir": "1.0.2" } }, - "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 }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "obuf": "1.1.1", - "readable-stream": "2.3.3", - "wbuf": "1.7.2" - } - }, - "html-comment-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", - "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", - "dev": true - }, "html-encoding-sniffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", @@ -6442,219 +2816,23 @@ "whatwg-encoding": "1.0.3" } }, - "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=" - }, - "htmlparser2": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", - "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", - "dev": true, - "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.4.1", - "domutils": "1.6.2", - "entities": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.3" - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", - "dev": true, - "requires": { - "depd": "1.1.1", - "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": "1.3.1" - }, - "dependencies": { - "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", - "dev": true - } - } - }, - "http-parser-js": { - "version": "0.4.9", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.9.tgz", - "integrity": "sha1-6hoE+2St/wJC6ZdPKX3Uw8rSceE=", - "dev": true - }, - "http-proxy": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", - "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", - "dev": true, - "requires": { - "eventemitter3": "1.2.0", - "requires-port": "1.0.0" - } - }, - "http-proxy-middleware": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", - "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", - "dev": true, - "requires": { - "http-proxy": "1.16.2", - "is-glob": "3.1.0", - "lodash": "4.17.4", - "micromatch": "2.3.11" - }, - "dependencies": { - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, "requires": { "assert-plus": "1.0.0", "jsprim": "1.4.1", "sshpk": "1.13.1" } }, - "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 - }, "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==" - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", "dev": true }, - "icss-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", - "dev": true, - "requires": { - "postcss": "6.0.14" - }, - "dependencies": { - "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" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "postcss": { - "version": "6.0.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", - "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==", - "dev": true, - "requires": { - "chalk": "2.3.0", - "source-map": "0.6.1", - "supports-color": "4.5.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" - } - } - } - }, - "ieee754": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" - }, - "ignore": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", - "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", - "dev": true - }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "optional": true - }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, - "import-local": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-0.1.1.tgz", - "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=", - "dev": true, - "requires": { - "pkg-dir": "2.0.0", - "resolve-cwd": "2.0.0" - } - }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -6670,22 +2848,11 @@ "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=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -6694,922 +2861,42 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true }, "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true }, - "inline-process-browser": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/inline-process-browser/-/inline-process-browser-1.0.0.tgz", - "integrity": "sha1-RqYbFT3TybFiSxoAYm7bT39BTyI=", - "requires": { - "falafel": "1.2.0", - "through2": "0.6.5" - } - }, "inquirer": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", - "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", + "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": "1.4.0", - "ansi-regex": "2.1.1", - "chalk": "1.1.3", - "cli-cursor": "1.0.2", + "ansi-escapes": "3.0.0", + "chalk": "2.3.0", + "cli-cursor": "2.1.0", "cli-width": "2.2.0", - "figures": "1.7.0", + "external-editor": "2.1.0", + "figures": "2.0.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", + "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": { - "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" - } - }, - "onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", - "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" - } - } } }, - "insomnia-httpsnippet": { - "version": "1.16.5", - "resolved": "https://registry.npmjs.org/insomnia-httpsnippet/-/insomnia-httpsnippet-1.16.5.tgz", - "integrity": "sha512-ftsDyY3ImscHM3CxQWXLGjaULj32oN7+L/Ppq69CIjIKbQJy18iLX+EkEWfzZNEmuHj17KpGOPiF1XTnHWUiaQ==", - "requires": { - "chalk": "1.1.3", - "commander": "2.11.0", - "debug": "2.6.9", - "event-stream": "3.3.4", - "form-data": "1.0.1", - "fs-readfile-promise": "2.0.1", - "fs-writefile-promise": "1.0.3", - "har-validator": "2.1.3", - "pinkie-promise": "2.0.1" - } - }, - "insomnia-importers": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/insomnia-importers/-/insomnia-importers-1.5.0.tgz", - "integrity": "sha512-K2aqtywCOOcvqMxMPzCuHsHzn0YvJaZn9O6aWkOzKU4ClL62IEFEHq9caRlMwtbxT8ydRpoxfWcxHDZMMfylfQ==", - "requires": { - "commander": "2.11.0", - "shell-quote": "1.6.1" - } - }, - "insomnia-node-libcurl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/insomnia-node-libcurl/-/insomnia-node-libcurl-1.2.3.tgz", - "integrity": "sha512-464xENqDhkuqFzpwWy1wuiA2QuHda2wjFFG4JcQDTr4j37V3R6xC2iRqkdt+9MjCuLlzpN/t3HnFARW1D525qw==", - "requires": { - "debug": "2.6.9", - "nan": "2.5.1", - "node-gyp": "3.5.0", - "node-pre-gyp": "0.6.33", - "npmlog": "4.0.2", - "rimraf": "2.6.1" - }, - "dependencies": { - "abbrev": { - "version": "1.1.0", - "bundled": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "ansi-styles": { - "version": "2.2.1", - "bundled": true - }, - "aproba": { - "version": "1.1.1", - "bundled": true - }, - "are-we-there-yet": { - "version": "1.1.2", - "bundled": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.3" - } - }, - "asn1": { - "version": "0.2.3", - "bundled": true - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true - }, - "aws4": { - "version": "1.6.0", - "bundled": true - }, - "balanced-match": { - "version": "0.4.2", - "bundled": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "requires": { - "inherits": "2.0.3" - } - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "requires": { - "hoek": "2.16.3" - } - }, - "brace-expansion": { - "version": "1.1.6", - "bundled": true, - "requires": { - "balanced-match": "0.4.2", - "concat-map": "0.0.1" - } - }, - "buffer-shims": { - "version": "1.0.0", - "bundled": true - }, - "caseless": { - "version": "0.11.0", - "bundled": true - }, - "chalk": { - "version": "1.1.3", - "bundled": 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" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "bundled": true - } - } - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "combined-stream": { - "version": "1.0.5", - "bundled": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, - "commander": { - "version": "2.9.0", - "bundled": true, - "requires": { - "graceful-readlink": "1.0.1" - } - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true - }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true - } - } - }, - "deep-extend": { - "version": "0.4.1", - "bundled": true - }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "bundled": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "bundled": true - }, - "extend": { - "version": "3.0.0", - "bundled": true - }, - "extsprintf": { - "version": "1.0.2", - "bundled": true - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true - }, - "form-data": { - "version": "2.1.2", - "bundled": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.14" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true - }, - "fstream": { - "version": "1.0.10", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "requires": { - "fstream": "1.0.10", - "inherits": "2.0.3", - "minimatch": "3.0.3" - } - }, - "gauge": { - "version": "2.7.3", - "bundled": 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.0" - } - }, - "generate-function": { - "version": "2.0.0", - "bundled": true - }, - "generate-object-property": { - "version": "1.2.0", - "bundled": true, - "requires": { - "is-property": "1.0.2" - } - }, - "getpass": { - "version": "0.1.6", - "bundled": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true - } - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true - }, - "graceful-readlink": { - "version": "1.0.1", - "bundled": true - }, - "har-validator": { - "version": "2.0.6", - "bundled": true, - "requires": { - "chalk": "1.1.3", - "commander": "2.9.0", - "is-my-json-valid": "2.16.0", - "pinkie-promise": "2.0.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "bundled": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true - }, - "hawk": { - "version": "3.1.3", - "bundled": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "bundled": true - }, - "http-signature": { - "version": "1.1.1", - "bundled": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.3.1", - "sshpk": "1.10.2" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "requires": { - "once": "1.3.3", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "ini": { - "version": "1.3.4", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-my-json-valid": { - "version": "2.16.0", - "bundled": true, - "requires": { - "generate-function": "2.0.0", - "generate-object-property": "1.2.0", - "jsonpointer": "4.0.1", - "xtend": "4.0.1" - } - }, - "is-property": { - "version": "1.0.2", - "bundled": true - }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true - }, - "jodid25519": { - "version": "1.0.2", - "bundled": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true - }, - "jsonpointer": { - "version": "4.0.1", - "bundled": true - }, - "jsprim": { - "version": "1.3.1", - "bundled": true, - "requires": { - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - } - }, - "mime-db": { - "version": "1.26.0", - "bundled": true - }, - "mime-types": { - "version": "2.1.14", - "bundled": true, - "requires": { - "mime-db": "1.26.0" - } - }, - "minimatch": { - "version": "3.0.3", - "bundled": true, - "requires": { - "brace-expansion": "1.1.6" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - } - }, - "node-pre-gyp": { - "version": "0.6.33", - "bundled": true, - "requires": { - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.0.2", - "rc": "1.1.7", - "request": "2.79.0", - "rimraf": "2.5.4", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.3.0" - }, - "dependencies": { - "glob": { - "version": "7.1.1", - "bundled": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.3", - "once": "1.3.3", - "path-is-absolute": "1.0.1" - } - }, - "rimraf": { - "version": "2.5.4", - "bundled": true, - "requires": { - "glob": "7.1.1" - } - } - } - }, - "nopt": { - "version": "3.0.6", - "bundled": true, - "requires": { - "abbrev": "1.1.0" - } - }, - "npmlog": { - "version": "4.0.2", - "bundled": true, - "requires": { - "are-we-there-yet": "1.1.2", - "console-control-strings": "1.1.0", - "gauge": "2.7.3", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true - }, - "once": { - "version": "1.3.3", - "bundled": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true - }, - "pinkie": { - "version": "2.0.4", - "bundled": true - }, - "pinkie-promise": { - "version": "2.0.1", - "bundled": true, - "requires": { - "pinkie": "2.0.4" - } - }, - "process-nextick-args": { - "version": "1.0.7", - "bundled": true - }, - "punycode": { - "version": "1.4.1", - "bundled": true - }, - "rc": { - "version": "1.1.7", - "bundled": true, - "requires": { - "deep-extend": "0.4.1", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true - } - } - }, - "readable-stream": { - "version": "2.2.3", - "bundled": true, - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" - } - }, - "request": { - "version": "2.79.0", - "bundled": true, - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.11.0", - "combined-stream": "1.0.5", - "extend": "3.0.0", - "forever-agent": "0.6.1", - "form-data": "2.1.2", - "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.14", - "oauth-sign": "0.8.2", - "qs": "6.3.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.4.3", - "uuid": "3.0.1" - }, - "dependencies": { - "qs": { - "version": "6.3.1", - "bundled": true - } - } - }, - "rimraf": { - "version": "2.6.1", - "bundled": true, - "requires": { - "glob": "7.1.1" - }, - "dependencies": { - "glob": { - "version": "7.1.1", - "bundled": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.3", - "once": "1.3.3", - "path-is-absolute": "1.0.1" - } - } - } - }, - "semver": { - "version": "5.3.0", - "bundled": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true - }, - "sntp": { - "version": "1.0.9", - "bundled": true, - "requires": { - "hoek": "2.16.3" - } - }, - "sshpk": { - "version": "1.10.2", - "bundled": 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.6", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true - } - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "0.10.31", - "bundled": true - }, - "stringstream": { - "version": "0.0.5", - "bundled": true - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true - }, - "tar": { - "version": "2.2.1", - "bundled": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.10", - "inherits": "2.0.3" - } - }, - "tar-pack": { - "version": "3.3.0", - "bundled": true, - "requires": { - "debug": "2.2.0", - "fstream": "1.0.10", - "fstream-ignore": "1.0.5", - "once": "1.3.3", - "readable-stream": "2.1.5", - "rimraf": "2.5.4", - "tar": "2.2.1", - "uid-number": "0.0.6" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "bundled": true, - "requires": { - "ms": "0.7.1" - } - }, - "glob": { - "version": "7.1.1", - "bundled": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.3", - "once": "1.3.3", - "path-is-absolute": "1.0.1" - } - }, - "ms": { - "version": "0.7.1", - "bundled": true - }, - "readable-stream": { - "version": "2.1.5", - "bundled": true, - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" - } - }, - "rimraf": { - "version": "2.5.4", - "bundled": true, - "requires": { - "glob": "7.1.1" - } - } - } - }, - "tough-cookie": { - "version": "2.3.2", - "bundled": true, - "requires": { - "punycode": "1.4.1" - } - }, - "tunnel-agent": { - "version": "0.4.3", - "bundled": true - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true - }, - "uuid": { - "version": "3.0.1", - "bundled": true - }, - "verror": { - "version": "1.3.6", - "bundled": true, - "requires": { - "extsprintf": "1.0.2" - } - }, - "wide-align": { - "version": "1.1.0", - "bundled": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "xtend": { - "version": "4.0.1", - "bundled": true - } - } - }, - "int64-buffer": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/int64-buffer/-/int64-buffer-0.1.9.tgz", - "integrity": "sha1-ngOdoEOyT3ixlrKD4EZT716ZD2E=", - "dev": true - }, - "internal-ip": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", - "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", - "dev": true, - "requires": { - "meow": "3.7.0" - } - }, - "interpret": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz", - "integrity": "sha1-ggzdWIuGj/sZGoCVBtbJyPISsbA=", - "dev": true - }, "invariant": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, "requires": { "loose-envify": "1.3.1" } @@ -7617,24 +2904,7 @@ "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=" - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ipaddr.js": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", - "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=", - "dev": true - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, "is-arrayish": { @@ -7643,18 +2913,11 @@ "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=", - "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==" + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true }, "is-builtin-module": { "version": "1.0.0", @@ -7665,12 +2928,6 @@ "builtin-modules": "1.1.1" } }, - "is-callable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", - "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", - "dev": true - }, "is-ci": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz", @@ -7680,21 +2937,17 @@ "ci-info": "1.1.2" } }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true - }, "is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true }, "is-equal-shallow": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, "requires": { "is-primitive": "2.0.0" } @@ -7702,12 +2955,14 @@ "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true }, "is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true }, "is-finite": { "version": "1.0.2", @@ -7722,6 +2977,7 @@ "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" } @@ -7730,41 +2986,16 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, "requires": { "is-extglob": "1.0.0" } }, - "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "dev": true, - "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.0" - } - }, - "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==", - "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=", + "dev": true, "requires": { "kind-of": "3.2.2" } @@ -7775,49 +3006,29 @@ "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.0" - } - }, - "is-path-inside": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", - "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", - "dev": true, - "requires": { - "path-is-inside": "1.0.2" - } - }, "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true }, "is-posix-bracket": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=" + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true }, "is-primitive": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "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-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true }, "is-redirect": { "version": "1.0.0", @@ -7825,24 +3036,6 @@ "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", "dev": true }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "requires": { - "has": "1.0.1" - } - }, - "is-resolvable": { - "version": "1.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", @@ -7852,27 +3045,29 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true }, - "is-svg": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", - "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "is-subset": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", + "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=", + "dev": true + }, + "is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", "dev": true, "requires": { - "html-comment-regex": "1.1.1" + "text-extensions": "1.7.0" } }, - "is-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", - "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", - "dev": true - }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true }, "is-utf8": { "version": "0.2.1", @@ -7880,49 +3075,32 @@ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isbinaryfile": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", - "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true }, "isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, "requires": { "isarray": "1.0.0" } }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "requires": { - "node-fetch": "1.7.3", - "whatwg-fetch": "2.0.3" - } - }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true }, "istanbul-api": { "version": "1.2.1", @@ -7938,7 +3116,7 @@ "istanbul-lib-report": "1.1.2", "istanbul-lib-source-maps": "1.2.2", "istanbul-reports": "1.1.3", - "js-yaml": "3.7.0", + "js-yaml": "3.10.0", "mkdirp": "0.5.1", "once": "1.4.0" } @@ -7971,14 +3149,6 @@ "babylon": "6.18.0", "istanbul-lib-coverage": "1.1.1", "semver": "5.4.1" - }, - "dependencies": { - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - } } }, "istanbul-lib-report": { @@ -7993,6 +3163,12 @@ "supports-color": "3.2.3" }, "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, "supports-color": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", @@ -8025,12 +3201,6 @@ "requires": { "ms": "2.0.0" } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true } } }, @@ -8043,11 +3213,6 @@ "handlebars": "4.0.11" } }, - "iterall": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.1.3.tgz", - "integrity": "sha512-Cu/kb+4HiNSejAPhSaN1VukdNTTi/r4/e+yykqjlG/IW+1gZH5b4+Bq3whDX4tvbYugta3r8KTMUiqT3fIGxuQ==" - }, "jest": { "version": "21.2.1", "resolved": "https://registry.npmjs.org/jest/-/jest-21.2.1.tgz", @@ -8057,56 +3222,6 @@ "jest-cli": "21.2.1" }, "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" - } - }, - "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" - } - }, - "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 - }, "jest-cli": { "version": "21.2.1", "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-21.2.1.tgz", @@ -8143,145 +3258,6 @@ "worker-farm": "1.5.2", "yargs": "9.0.1" } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } - }, - "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" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "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" - } - }, - "yargs": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", - "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", - "dev": true, - "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" - } - }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "dev": true, - "requires": { - "camelcase": "4.1.0" - } } } }, @@ -8311,43 +3287,6 @@ "jest-util": "21.2.1", "jest-validate": "21.2.1", "pretty-format": "21.2.1" - }, - "dependencies": { - "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" - } - }, - "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": "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" - } - } } }, "jest-diff": { @@ -8360,43 +3299,6 @@ "diff": "3.4.0", "jest-get-type": "21.2.0", "pretty-format": "21.2.1" - }, - "dependencies": { - "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" - } - }, - "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": "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" - } - } } }, "jest-docblock": { @@ -8460,43 +3362,6 @@ "jest-message-util": "21.2.1", "jest-snapshot": "21.2.1", "p-cancelable": "0.3.0" - }, - "dependencies": { - "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" - } - }, - "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": "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" - } - } } }, "jest-matcher-utils": { @@ -8508,43 +3373,6 @@ "chalk": "2.3.0", "jest-get-type": "21.2.0", "pretty-format": "21.2.1" - }, - "dependencies": { - "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" - } - }, - "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": "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" - } - } } }, "jest-message-util": { @@ -8556,43 +3384,6 @@ "chalk": "2.3.0", "micromatch": "2.3.11", "slash": "1.0.0" - }, - "dependencies": { - "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" - } - }, - "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": "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" - } - } } }, "jest-mock": { @@ -8616,43 +3407,6 @@ "browser-resolve": "1.11.2", "chalk": "2.3.0", "is-builtin-module": "1.0.0" - }, - "dependencies": { - "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" - } - }, - "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": "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" - } - } } }, "jest-resolve-dependencies": { @@ -8680,14 +3434,6 @@ "pify": "3.0.0", "throat": "4.1.0", "worker-farm": "1.5.2" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } } }, "jest-runtime": { @@ -8700,7 +3446,7 @@ "babel-jest": "21.2.0", "babel-plugin-istanbul": "4.1.5", "chalk": "2.3.0", - "convert-source-map": "1.5.0", + "convert-source-map": "1.5.1", "graceful-fs": "4.1.11", "jest-config": "21.2.1", "jest-haste-map": "21.2.0", @@ -8715,192 +3461,11 @@ "yargs": "9.0.1" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "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" - } - }, - "babel-jest": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-21.2.0.tgz", - "integrity": "sha512-O0W2qLoWu1QOoOGgxiR2JID4O6WSpxPiQanrkyi9SSlM0PJ60Ptzlck47lhtnr9YZO3zYOsxHwnyeWJ6AffoBQ==", - "dev": true, - "requires": { - "babel-plugin-istanbul": "4.1.5", - "babel-preset-jest": "21.2.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz", - "integrity": "sha512-yi5QuiVyyvhBUDLP4ButAnhYzkdrUwWDtvUJv71hjH3fclhnZg4HkDeqaitcR2dZZx/E67kGkRcPVjtVu+SJfQ==", - "dev": true - }, - "babel-preset-jest": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz", - "integrity": "sha512-hm9cBnr2h3J7yXoTtAVV0zg+3vg0Q/gT2GYuzlreTU0EPkJRtlNgKJJ3tBKEn0+VjAi3JykV6xCJkuUYttEEfA==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "21.2.0", - "babel-plugin-syntax-object-rest-spread": "6.13.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" - } - }, - "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 - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - } - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "2.3.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - } - }, - "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" - } - }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true - }, - "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" - } - }, - "yargs": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", - "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", - "dev": true, - "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" - } - }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "dev": true, - "requires": { - "camelcase": "4.1.0" - } } } }, @@ -8916,43 +3481,6 @@ "mkdirp": "0.5.1", "natural-compare": "1.4.0", "pretty-format": "21.2.1" - }, - "dependencies": { - "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" - } - }, - "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": "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" - } - } } }, "jest-util": { @@ -8968,49 +3496,6 @@ "jest-mock": "21.2.0", "jest-validate": "21.2.1", "mkdirp": "0.5.1" - }, - "dependencies": { - "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" - } - }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "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" - } - }, - "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": "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" - } - } } }, "jest-validate": { @@ -9023,173 +3508,30 @@ "jest-get-type": "21.2.0", "leven": "2.1.0", "pretty-format": "21.2.1" - }, - "dependencies": { - "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" - } - }, - "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": "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" - } - } } }, - "jison": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/jison/-/jison-0.4.13.tgz", - "integrity": "sha1-kEFwfWIkE2f1iDRTK58ZwsNvrHg=", - "requires": { - "JSONSelect": "0.4.0", - "cjson": "0.2.1", - "ebnf-parser": "0.1.10", - "escodegen": "0.0.21", - "esprima": "1.0.4", - "jison-lex": "0.2.1", - "lex-parser": "0.1.4", - "nomnom": "1.5.2" - }, - "dependencies": { - "esprima": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", - "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" - }, - "nomnom": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.5.2.tgz", - "integrity": "sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8=", - "requires": { - "colors": "0.5.1", - "underscore": "1.1.7" - } - }, - "underscore": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz", - "integrity": "sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA=" - } - } - }, - "jison-lex": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/jison-lex/-/jison-lex-0.2.1.tgz", - "integrity": "sha1-rEuBXozOUTLrErXfz+jXB7iETf4=", - "requires": { - "lex-parser": "0.1.4", - "nomnom": "1.5.2" - }, - "dependencies": { - "nomnom": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.5.2.tgz", - "integrity": "sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8=", - "requires": { - "colors": "0.5.1", - "underscore": "1.1.7" - } - }, - "underscore": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz", - "integrity": "sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA=" - } - } - }, - "js-base64": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.3.2.tgz", - "integrity": "sha512-Y2/+DnfJJXT1/FCwUebUhLWb3QihxiSC42+ctHLGogmW2jPY6LCapMdFZXRvVP2z6qyKW7s6qncE/9gSqZiArw==", - "dev": true - }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true }, "js-yaml": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", - "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", "dev": true, "requires": { "argparse": "1.0.9", - "esprima": "2.7.3" - }, - "dependencies": { - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - } - } - }, - "js2xmlparser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", - "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", - "requires": { - "xmlcreate": "1.0.2" + "esprima": "4.0.0" } }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "jsdoc": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.5.5.tgz", - "integrity": "sha512-6PxB65TAU4WO0Wzyr/4/YhlGovXl0EVYfpKbpSroSj0qBxT4/xod/l40Opkm38dRHRdQgdeY836M0uVnJQG7kg==", - "requires": { - "babylon": "7.0.0-beta.19", - "bluebird": "3.5.1", - "catharsis": "0.8.9", - "escape-string-regexp": "1.0.5", - "js2xmlparser": "3.0.0", - "klaw": "2.0.0", - "marked": "0.3.6", - "mkdirp": "0.5.1", - "requizzle": "0.2.1", - "strip-json-comments": "2.0.1", - "taffydb": "2.6.2", - "underscore": "1.8.3" - }, - "dependencies": { - "underscore": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" - } - } + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true }, "jsdom": { "version": "9.12.0", @@ -9216,46 +3558,6 @@ "whatwg-encoding": "1.0.3", "whatwg-url": "4.8.0", "xml-name-validator": "2.0.1" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - }, - "escodegen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", - "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", - "dev": true, - "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.5.7" - } - }, - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "optional": true - } } }, "jsesc": { @@ -9264,119 +3566,17 @@ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, - "jshint": { - "version": "2.9.5", - "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.5.tgz", - "integrity": "sha1-HnJSkVzmgbQIJ+4UJIxG006apiw=", - "dev": true, - "requires": { - "cli": "1.0.1", - "console-browserify": "1.1.0", - "exit": "0.1.2", - "htmlparser2": "3.8.3", - "lodash": "3.7.0", - "minimatch": "3.0.4", - "shelljs": "0.3.0", - "strip-json-comments": "1.0.4" - }, - "dependencies": { - "domhandler": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", - "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", - "dev": true, - "requires": { - "domelementtype": "1.3.0" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" - } - }, - "entities": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", - "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", - "dev": true - }, - "htmlparser2": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", - "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", - "dev": true, - "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.3.0", - "domutils": "1.5.1", - "entities": "1.0.0", - "readable-stream": "1.1.14" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "lodash": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz", - "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "shelljs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", - "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", - "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 - }, - "strip-json-comments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", - "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", - "dev": true - } - } - }, - "json-loader": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", - "dev": true - }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true }, "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=" + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true }, "json-stable-stringify": { "version": "1.0.1", @@ -9390,23 +3590,19 @@ "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "json3": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true }, "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { "graceful-fs": "4.1.11" @@ -9415,61 +3611,20 @@ "jsonify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true }, - "jsonlint": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/jsonlint/-/jsonlint-1.6.2.tgz", - "integrity": "sha1-VzcEUIX1XrRVxosf9OvAG9UOiDA=", - "requires": { - "JSV": "4.0.2", - "nomnom": "1.8.1" - } - }, - "jsonpath": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-0.2.12.tgz", - "integrity": "sha1-W/nZEftGFsHjNwvs658NskrjTNI=", - "requires": { - "esprima": "1.2.2", - "jison": "0.4.13", - "static-eval": "0.2.3", - "underscore": "1.7.0" - }, - "dependencies": { - "underscore": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", - "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" - } - } - }, - "jsonpointer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" - }, - "jsonwebtoken": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-5.7.0.tgz", - "integrity": "sha1-HJD5qGzlt0j1+XnBK3BAK0r83bQ=", - "requires": { - "jws": "3.1.4", - "ms": "0.7.3", - "xtend": "4.0.1" - }, - "dependencies": { - "ms": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.3.tgz", - "integrity": "sha1-cIFVpeROM/X9D8U+gdDUCpG+H/8=" - } - } + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -9477,352 +3632,271 @@ "verror": "1.10.0" } }, - "jstransform": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-3.0.0.tgz", - "integrity": "sha1-olkats7o2XvzvoMNv6IxO4fNZAs=", - "requires": { - "base62": "0.1.1", - "esprima-fb": "3001.1.0-dev-harmony-fb", - "source-map": "0.1.31" - }, - "dependencies": { - "esprima-fb": { - "version": "3001.1.0-dev-harmony-fb", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz", - "integrity": "sha1-t303q8046gt3Qmu4vCkizmtCZBE=" - }, - "source-map": { - "version": "0.1.31", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", - "integrity": "sha1-n3BNDWnZ4TioG63267T94z0VHGE=", - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "jsx-ast-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", - "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", - "dev": true, - "requires": { - "array-includes": "3.0.3" - } - }, - "jwa": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.5.tgz", - "integrity": "sha1-oFUs4CIHQs1S4VN3SjKQXDDnVuU=", - "requires": { - "base64url": "2.0.0", - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.9", - "safe-buffer": "5.1.1" - } - }, - "jws": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.4.tgz", - "integrity": "sha1-+ei5M46KhHJ31kRLFGT2GIDgUKI=", - "requires": { - "base64url": "2.0.0", - "jwa": "1.1.5", - "safe-buffer": "5.1.1" - } - }, - "jwt-authentication": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/jwt-authentication/-/jwt-authentication-0.3.3.tgz", - "integrity": "sha512-v76wJz9evqOAoDFHC7sWpOSY6701QwlH662yzOPOyHfTpNSWUD/c+rYtRr72jFO2XsVO1BDfD9YsdAuXfMf0JA==", - "requires": { - "axios": "0.15.3", - "crypto": "0.0.3", - "ducktype": "1.1.0", - "jsdoc": "3.5.5", - "jsonwebtoken": "5.7.0", - "lodash": "3.10.1", - "node-cache": "3.2.1", - "node-forge": "0.6.49", - "q": "1.5.1" - }, - "dependencies": { - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" - }, - "node-forge": { - "version": "0.6.49", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.6.49.tgz", - "integrity": "sha1-8e6V1ddGI5OP4Z1piqWibVTS9g8=" - } - } - }, - "killable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz", - "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=", - "dev": true - }, "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": "2.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-2.0.0.tgz", - "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", - "requires": { - "graceful-fs": "4.1.11" - } - }, - "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" + "is-buffer": "1.1.6" } }, "lazy-cache": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - }, - "lazy-val": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.2.tgz", - "integrity": "sha512-2BaSu6qVnicKdWQPysrffZVFAKcPcZQ/q2YyeSjAxWaJlvCvKSrkcvsSHlleeIfA//fW2goTcYDTy2cBLN7+PQ==", - "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" - } + "optional": true }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, "requires": { "invert-kv": "1.0.0" } }, - "less": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/less/-/less-2.7.3.tgz", - "integrity": "sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==", + "lerna": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/lerna/-/lerna-2.5.1.tgz", + "integrity": "sha512-Qz2fajqCPtZf4SFQQpQ2R/Ml/RvGvTNuIHix/vAMMSAdbtnPe2QTw34vLD24Clfsfy8FEojy+tqsjejWKqkDFw==", "dev": true, "requires": { - "errno": "0.1.4", + "async": "1.5.2", + "chalk": "2.3.0", + "cmd-shim": "2.0.2", + "columnify": "1.5.4", + "command-join": "2.0.0", + "conventional-changelog-cli": "1.3.5", + "conventional-recommended-bump": "1.0.3", + "dedent": "0.7.0", + "execa": "0.8.0", + "find-up": "2.1.0", + "fs-extra": "4.0.2", + "get-port": "3.2.0", + "glob": "7.1.2", + "glob-parent": "3.1.0", + "globby": "6.1.0", "graceful-fs": "4.1.11", - "image-size": "0.5.5", - "mime": "1.4.1", - "mkdirp": "0.5.1", - "promise": "7.3.1", - "request": "2.81.0", - "source-map": "0.5.7" + "hosted-git-info": "2.5.0", + "inquirer": "3.3.0", + "is-ci": "1.0.10", + "load-json-file": "3.0.0", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "npmlog": "4.1.2", + "p-finally": "1.0.0", + "package-json": "4.0.1", + "path-exists": "3.0.0", + "read-cmd-shim": "1.0.1", + "read-pkg": "2.0.0", + "rimraf": "2.6.2", + "safe-buffer": "5.1.1", + "semver": "5.4.1", + "signal-exit": "3.0.2", + "strong-log-transformer": "1.0.6", + "temp-write": "3.3.0", + "write-file-atomic": "2.3.0", + "write-json-file": "2.3.0", + "write-pkg": "3.1.0", + "yargs": "8.0.2" }, "dependencies": { - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true, - "optional": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true, - "optional": true - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, - "optional": true, - "requires": { - "boom": "2.10.1" - } - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" - } - }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", - "dev": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "dev": true, - "optional": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true, - "optional": 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=", + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "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=", + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, - "optional": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } } }, - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "execa": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", + "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", "dev": true, - "optional": true - }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", - "dev": true, - "optional": true - }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "dev": true, - "optional": true - }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "dev": true, - "optional": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" } }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, - "optional": true, "requires": { - "hoek": "2.16.3" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, - "optional": true + "requires": { + "is-extglob": "2.1.1" + } + }, + "load-json-file": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-3.0.0.tgz", + "integrity": "sha1-frNzXZg6ftImKt5P92mvU2nFxEA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "3.0.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } + }, + "parse-json": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-3.0.0.tgz", + "integrity": "sha1-+m9HsY4jgm6tMvJj50TQ4ehH+xM=", + "dev": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "2.3.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + }, + "dependencies": { + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } + }, + "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" + } + } + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "dev": true, + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + } } } }, - "less-loader": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.0.5.tgz", - "integrity": "sha1-rhVadAbKxqzSk9eFWH/P8PR4xN0=", - "dev": true, - "requires": { - "clone": "2.1.1", - "loader-utils": "1.1.0", - "pify": "2.3.0" - } - }, "leven": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", @@ -9839,22 +3913,6 @@ "type-check": "0.3.2" } }, - "lex-parser": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/lex-parser/-/lex-parser-0.1.4.tgz", - "integrity": "sha1-ZMTwJfF/1Tv7RXY/rrFvAVp0dVA=" - }, - "lie": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.0.2.tgz", - "integrity": "sha1-/9oh17uibzd8rYZdNkmy/Izjn+o=", - "requires": { - "es3ify": "0.1.4", - "immediate": "3.0.6", - "inline-process-browser": "1.0.0", - "unreachable-branch-transform": "0.3.0" - } - }, "load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", @@ -9866,30 +3924,14 @@ "pify": "2.3.0", "pinkie-promise": "2.0.1", "strip-bom": "2.0.0" - } - }, - "loader-runner": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", - "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" - } - }, - "localforage": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.5.3.tgz", - "integrity": "sha1-aYqhavECI0CyQL6dkxkuivAi/xY=", - "requires": { - "lie": "3.0.2" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } } }, "locate-path": { @@ -9905,160 +3947,33 @@ "lodash": { "version": "4.17.4", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" - }, - "lodash-es": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.4.tgz", - "integrity": "sha1-3MHXVS4VCgZABzupyzHXDwMpUOc=" - }, - "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=", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", "dev": true }, - "lodash._bindcallback": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", - "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", + "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._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.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.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, - "lodash.cond": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", - "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=", - "dev": true - }, - "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.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=", - "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": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "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.snakecase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40=", - "dev": true - }, - "lodash.toarray": { + "lodash.template": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", - "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "lodash.upperfirst": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", - "integrity": "sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984=", - "dev": true - }, - "log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", + "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", "dev": true, "requires": { - "chalk": "1.1.3" + "lodash._reinterpolate": "3.0.0", + "lodash.templatesettings": "4.1.0" } }, - "loglevel": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.0.tgz", - "integrity": "sha1-rgyqVhERSYxboTcj1vtjHSQAOTQ=", - "dev": true + "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" + } }, "longest": { "version": "1.0.1", @@ -10070,6 +3985,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, "requires": { "js-tokens": "3.0.2" } @@ -10098,22 +4014,8 @@ "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" - }, - "dependencies": { - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - } } }, - "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", @@ -10121,14 +4023,6 @@ "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 - } } }, "makeerror": { @@ -10146,50 +4040,6 @@ "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=" - }, - "marked": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz", - "integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc=" - }, - "math-expression-evaluator": { - "version": "1.2.17", - "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", - "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", - "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" - } - } - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, "mem": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", @@ -10199,16 +4049,6 @@ "mimic-fn": "1.1.0" } }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "0.1.4", - "readable-stream": "2.3.3" - } - }, "meow": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", @@ -10241,22 +4081,11 @@ "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=", "dev": true }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, "micromatch": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, "requires": { "arr-diff": "2.0.0", "array-unique": "0.2.1", @@ -10273,40 +4102,19 @@ "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": "2.0.3", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.0.3.tgz", - "integrity": "sha512-TrpAd/vX3xaLPDgVRm6JkZwLR0KHfukMdU2wTEbqMDdCnY6Yo3mE+mjs9YE6oMNw2QRfXVeBEYpmpO94BIqiug==", - "dev": true - }, "mime-db": { - "version": "1.31.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.31.0.tgz", - "integrity": "sha512-oB3w9lx50CMd6nfonoV5rBRUbJtjMifUHaFb5MfzjC8ksAIfVjT0BsX46SjjqBz7n9JGTrTX3paIeLSK+rS5fQ==" + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", + "dev": true }, "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=", + "dev": true, "requires": { "mime-db": "1.30.0" - }, - "dependencies": { - "mime-db": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" - } } }, "mimic-fn": { @@ -10315,31 +4123,11 @@ "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=", - "dev": true, - "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==", + "dev": true, "requires": { "brace-expansion": "1.1.8" } @@ -10347,86 +4135,48 @@ "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "minipass": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.1.tgz", - "integrity": "sha512-u1aUllxPJUI07cOqzR7reGmQxmCqlH88uIIsf6XZFEWgw7gXKpJdR+5R9Y3KEDmWYkdIz9wXZs3C0jOPxejk/Q==", - "requires": { - "yallist": "3.0.2" - } - }, - "minizlib": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.0.4.tgz", - "integrity": "sha512-sN4U9tIJtBRwKbwgFh9qJfrPIQ/GGTRr1MGqkgOeMTLy8/lM0FcWU//FqlnZ3Vb7gJ+Mxh3FOg1EklibdajbaQ==", - "requires": { - "minipass": "2.2.1" - } + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, "requires": { "minimist": "0.0.8" } }, - "mkdirp-promise": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-1.1.0.tgz", - "integrity": "sha1-LISJPtZ24NmPsY+5piEv0bK5qBk=" - }, - "modify-filename": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/modify-filename/-/modify-filename-1.1.0.tgz", - "integrity": "sha1-mi3sg4Bvuy2XXyK+7IWcoms5OqE=" + "modify-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.0.tgz", + "integrity": "sha1-4rbN65zhn5kxelNyLz2/XfXqqrI=", + "dev": true }, "moment": { "version": "2.19.2", "resolved": "https://registry.npmjs.org/moment/-/moment-2.19.2.tgz", - "integrity": "sha512-Rf6jiHPEfxp9+dlzxPTmRHbvoFXsh2L/U8hOupUMpnuecHQmI6cF6lUbJl3QqKPko1u6ujO+FxtcajLVfLpAtA==" + "integrity": "sha512-Rf6jiHPEfxp9+dlzxPTmRHbvoFXsh2L/U8hOupUMpnuecHQmI6cF6lUbJl3QqKPko1u6ujO+FxtcajLVfLpAtA==", + "dev": true }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multicast-dns": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.0.tgz", - "integrity": "sha512-tnQqWkuWYHCOVRveiWQf+5KjHUnEmtxUycTy1esL4prQjXoT4qpndIS4fH63zObmHNxIHke3YHRnQrXYpXHf2A==", - "dev": true, - "requires": { - "dns-packet": "1.2.2", - "thunky": "0.1.0" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "multiparty": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-4.1.3.tgz", - "integrity": "sha1-PEPH/LGJbhdGBDap3Qtu8WaOT5Q=", - "requires": { - "fd-slicer": "1.0.1" - } - }, "mute-stream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", - "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, "nan": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.5.1.tgz", - "integrity": "sha1-1bAWkSUzJql6K77p5hxV2NYDUeI=" + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", + "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", + "dev": true, + "optional": true }, "natural-compare": { "version": "1.4.0", @@ -10434,183 +4184,12 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "ncp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", - "dev": true - }, - "nedb": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/nedb/-/nedb-1.8.0.tgz", - "integrity": "sha1-DjUCzYLABNU1WkPJ5VV3vXvZHYg=", - "requires": { - "async": "0.2.10", - "binary-search-tree": "0.2.5", - "localforage": "1.5.3", - "mkdirp": "0.5.1", - "underscore": "1.4.4" - }, - "dependencies": { - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" - }, - "underscore": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", - "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=" - } - } - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", - "dev": true - }, - "node-abi": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.1.2.tgz", - "integrity": "sha512-hmUtb8m75RSi7N+zZLYqe75XDvZB+6LyTBPkj2DConvNgQet2e3BIqEwe1LLvqMrfyjabuT5ZOrTioLCH1HTdA==", - "dev": true, - "requires": { - "semver": "5.4.1" - } - }, - "node-cache": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-3.2.1.tgz", - "integrity": "sha1-p5WNMqikLZEZziWYZWfqLF+WZ3M=", - "requires": { - "clone": "1.0.3", - "lodash": "4.17.4" - }, - "dependencies": { - "clone": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", - "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=" - } - } - }, - "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-ensure": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/node-ensure/-/node-ensure-0.0.0.tgz", - "integrity": "sha1-7K52QVDemYYexcgQ/V0Jaxg5Mqc=" - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" - } - }, - "node-forge": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz", - "integrity": "sha1-naYR6giYL0uUIGs760zJZl8gwwA=" - }, - "node-gyp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.5.0.tgz", - "integrity": "sha1-qP5eYR0HnsFjSKPrlg544RyFJ0o=", - "requires": { - "fstream": "1.0.11", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.4", - "request": "2.83.0", - "rimraf": "2.6.2", - "semver": "5.4.1", - "tar": "2.2.1", - "which": "1.3.0" - }, - "dependencies": { - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - } - } - }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", "dev": true }, - "node-libs-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", - "dev": true, - "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.2.0", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.1.7", - "events": "1.1.1", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", - "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.3", - "stream-browserify": "2.0.1", - "stream-http": "2.7.2", - "string_decoder": "1.0.3", - "timers-browserify": "2.0.4", - "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", - "vm-browserify": "0.0.4" - }, - "dependencies": { - "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" - } - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - } - } - }, "node-notifier": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz", @@ -10623,51 +4202,6 @@ "which": "1.3.0" } }, - "nomnom": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", - "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", - "requires": { - "chalk": "0.4.0", - "underscore": "1.6.0" - }, - "dependencies": { - "ansi-styles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", - "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=" - }, - "chalk": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", - "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", - "requires": { - "ansi-styles": "1.0.0", - "has-color": "0.1.7", - "strip-ansi": "0.1.1" - } - }, - "strip-ansi": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", - "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=" - } - } - }, - "noop-logger": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=", - "dev": true - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "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", @@ -10684,3804 +4218,11 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, "requires": { "remove-trailing-separator": "1.1.0" } }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" - } - }, - "npm": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/npm/-/npm-5.5.1.tgz", - "integrity": "sha512-M3aO8EjHebaCw6uur4C86SZqkypnoaEVo5R63FEEU0dw9wLxf/JlwWtJItShYVyQS2WDxG2It10GEe5GmVEM2Q==", - "dev": true, - "requires": { - "JSONStream": "1.3.1", - "abbrev": "1.1.1", - "ansi-regex": "3.0.0", - "ansicolors": "0.3.2", - "ansistyles": "0.1.3", - "aproba": "1.2.0", - "archy": "1.0.0", - "bluebird": "3.5.0", - "cacache": "9.2.9", - "call-limit": "1.1.0", - "chownr": "1.0.1", - "cli-table2": "0.2.0", - "cmd-shim": "2.0.2", - "columnify": "1.5.4", - "config-chain": "1.1.11", - "debuglog": "1.0.1", - "detect-indent": "5.0.0", - "dezalgo": "1.0.3", - "editor": "1.0.0", - "fs-vacuum": "1.2.10", - "fs-write-stream-atomic": "1.0.10", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "has-unicode": "2.0.1", - "hosted-git-info": "2.5.0", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "inflight": "1.0.6", - "inherits": "2.0.3", - "ini": "1.3.4", - "init-package-json": "1.10.1", - "is-cidr": "1.0.0", - "lazy-property": "1.0.0", - "libnpx": "9.6.0", - "lockfile": "1.0.3", - "lodash._baseindexof": "3.1.0", - "lodash._baseuniq": "4.6.0", - "lodash._bindcallback": "3.0.1", - "lodash._cacheindexof": "3.0.2", - "lodash._createcache": "3.1.2", - "lodash._getnative": "3.9.1", - "lodash.clonedeep": "4.5.0", - "lodash.restparam": "3.6.1", - "lodash.union": "4.6.0", - "lodash.uniq": "4.5.0", - "lodash.without": "4.4.0", - "lru-cache": "4.1.1", - "meant": "1.0.1", - "mississippi": "1.3.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "node-gyp": "3.6.2", - "nopt": "4.0.1", - "normalize-package-data": "2.4.0", - "npm-cache-filename": "1.0.2", - "npm-install-checks": "3.0.0", - "npm-lifecycle": "1.0.3", - "npm-package-arg": "5.1.2", - "npm-packlist": "1.1.9", - "npm-profile": "2.0.4", - "npm-registry-client": "8.5.0", - "npm-user-validate": "1.0.0", - "npmlog": "4.1.2", - "once": "1.4.0", - "opener": "1.4.3", - "osenv": "0.1.4", - "pacote": "6.0.2", - "path-is-inside": "1.0.2", - "promise-inflight": "1.0.1", - "qrcode-terminal": "0.11.0", - "query-string": "5.0.0", - "qw": "1.0.1", - "read": "1.0.7", - "read-cmd-shim": "1.0.1", - "read-installed": "4.0.3", - "read-package-json": "2.0.12", - "read-package-tree": "5.1.6", - "readable-stream": "2.3.3", - "readdir-scoped-modules": "1.0.2", - "request": "2.83.0", - "retry": "0.10.1", - "rimraf": "2.6.2", - "safe-buffer": "5.1.1", - "semver": "5.4.1", - "sha": "2.0.1", - "slide": "1.1.6", - "sorted-object": "2.0.1", - "sorted-union-stream": "2.1.3", - "ssri": "4.1.6", - "strip-ansi": "4.0.0", - "tar": "4.0.1", - "text-table": "0.2.0", - "uid-number": "0.0.6", - "umask": "1.1.0", - "unique-filename": "1.1.0", - "unpipe": "1.0.0", - "update-notifier": "2.2.0", - "uuid": "3.1.0", - "validate-npm-package-license": "3.0.1", - "validate-npm-package-name": "3.0.0", - "which": "1.3.0", - "worker-farm": "1.5.0", - "wrappy": "1.0.2", - "write-file-atomic": "2.1.0" - }, - "dependencies": { - "JSONStream": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" - }, - "dependencies": { - "jsonparse": { - "version": "1.3.1", - "bundled": true, - "dev": true - }, - "through": { - "version": "2.3.8", - "bundled": true, - "dev": true - } - } - }, - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true - }, - "ansi-regex": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "ansicolors": { - "version": "0.3.2", - "bundled": true, - "dev": true - }, - "ansistyles": { - "version": "0.1.3", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "archy": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "bluebird": { - "version": "3.5.0", - "bundled": true, - "dev": true - }, - "cacache": { - "version": "9.2.9", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "3.5.0", - "chownr": "1.0.1", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "lru-cache": "4.1.1", - "mississippi": "1.3.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "4.1.6", - "unique-filename": "1.1.0", - "y18n": "3.2.1" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - }, - "dependencies": { - "pseudomap": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true, - "dev": true - } - } - }, - "y18n": { - "version": "3.2.1", - "bundled": true, - "dev": true - } - } - }, - "call-limit": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "chownr": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "cli-table2": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "requires": { - "colors": "1.1.2", - "lodash": "3.10.1", - "string-width": "1.0.2" - }, - "dependencies": { - "colors": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "lodash": { - "version": "3.10.1", - "bundled": true, - "dev": 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" - }, - "dependencies": { - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - }, - "dependencies": { - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - } - } - } - } - } - } - }, - "cmd-shim": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1" - } - }, - "columnify": { - "version": "1.5.4", - "bundled": true, - "dev": true, - "requires": { - "strip-ansi": "3.0.1", - "wcwidth": "1.0.1" - }, - "dependencies": { - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - } - } - }, - "wcwidth": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "defaults": "1.0.3" - }, - "dependencies": { - "defaults": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "clone": "1.0.2" - }, - "dependencies": { - "clone": { - "version": "1.0.2", - "bundled": true, - "dev": true - } - } - } - } - } - } - }, - "config-chain": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "requires": { - "ini": "1.3.4", - "proto-list": "1.2.4" - }, - "dependencies": { - "proto-list": { - "version": "1.2.4", - "bundled": true, - "dev": true - } - } - }, - "debuglog": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "detect-indent": { - "version": "5.0.0", - "bundled": true, - "dev": true - }, - "dezalgo": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "asap": "2.0.5", - "wrappy": "1.0.2" - }, - "dependencies": { - "asap": { - "version": "2.0.5", - "bundled": true, - "dev": true - } - } - }, - "editor": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "fs-vacuum": { - "version": "1.2.10", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "path-is-inside": "1.0.2", - "rimraf": "2.6.2" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.3" - } - }, - "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" - }, - "dependencies": { - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "1.1.8" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.8", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - }, - "dependencies": { - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - } - } - } - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true - } - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true, - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "hosted-git-info": { - "version": "2.5.0", - "bundled": true, - "dev": true - }, - "iferr": { - "version": "0.1.5", - "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 - }, - "ini": { - "version": "1.3.4", - "bundled": true, - "dev": true - }, - "init-package-json": { - "version": "1.10.1", - "bundled": true, - "dev": true, - "requires": { - "glob": "7.1.2", - "npm-package-arg": "5.1.2", - "promzard": "0.3.0", - "read": "1.0.7", - "read-package-json": "2.0.12", - "semver": "5.4.1", - "validate-npm-package-license": "3.0.1", - "validate-npm-package-name": "3.0.0" - }, - "dependencies": { - "promzard": { - "version": "0.3.0", - "bundled": true, - "dev": true, - "requires": { - "read": "1.0.7" - } - } - } - }, - "is-cidr": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "cidr-regex": "1.0.6" - }, - "dependencies": { - "cidr-regex": { - "version": "1.0.6", - "bundled": true, - "dev": true - } - } - }, - "lazy-property": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "libnpx": { - "version": "9.6.0", - "bundled": true, - "dev": true, - "requires": { - "dotenv": "4.0.0", - "npm-package-arg": "5.1.2", - "rimraf": "2.6.2", - "safe-buffer": "5.1.1", - "update-notifier": "2.2.0", - "which": "1.3.0", - "y18n": "3.2.1", - "yargs": "8.0.2" - }, - "dependencies": { - "dotenv": { - "version": "4.0.0", - "bundled": true, - "dev": true - }, - "y18n": { - "version": "3.2.1", - "bundled": true, - "dev": true - }, - "yargs": { - "version": "8.0.2", - "bundled": true, - "dev": true, - "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "bundled": true, - "dev": true - }, - "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" - }, - "dependencies": { - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - }, - "dependencies": { - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - } - } - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "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" - } - } - } - }, - "decamelize": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "get-caller-file": { - "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" - }, - "dependencies": { - "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" - }, - "dependencies": { - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "shebang-regex": "1.0.0" - }, - "dependencies": { - "shebang-regex": { - "version": "1.0.0", - "bundled": true, - "dev": true - } - } - } - } - }, - "get-stream": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "path-key": "2.0.1" - }, - "dependencies": { - "path-key": { - "version": "2.0.1", - "bundled": true, - "dev": true - } - } - }, - "p-finally": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true, - "dev": true - } - } - }, - "lcid": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "invert-kv": "1.0.0" - }, - "dependencies": { - "invert-kv": { - "version": "1.0.0", - "bundled": true, - "dev": true - } - } - }, - "mem": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "mimic-fn": "1.1.0" - }, - "dependencies": { - "mimic-fn": { - "version": "1.1.0", - "bundled": true, - "dev": true - } - } - } - } - }, - "read-pkg-up": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "locate-path": "2.0.0" - }, - "dependencies": { - "locate-path": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - }, - "dependencies": { - "p-locate": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "p-limit": "1.1.0" - }, - "dependencies": { - "p-limit": { - "version": "1.1.0", - "bundled": true, - "dev": true - } - } - }, - "path-exists": { - "version": "3.0.0", - "bundled": true, - "dev": true - } - } - } - } - }, - "read-pkg": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" - }, - "dependencies": { - "load-json-file": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - }, - "dependencies": { - "parse-json": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "requires": { - "error-ex": "1.3.1" - }, - "dependencies": { - "error-ex": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "is-arrayish": "0.2.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.2.1", - "bundled": true, - "dev": true - } - } - } - } - }, - "pify": { - "version": "2.3.0", - "bundled": true, - "dev": true - }, - "strip-bom": { - "version": "3.0.0", - "bundled": true, - "dev": true - } - } - }, - "path-type": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "pify": "2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "bundled": true, - "dev": true - } - } - } - } - } - } - }, - "require-directory": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "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": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true, - "dev": true - } - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "yargs-parser": { - "version": "7.0.0", - "bundled": true, - "dev": true, - "requires": { - "camelcase": "4.1.0" - } - } - } - } - } - }, - "lockfile": { - "version": "1.0.3", - "bundled": true, - "dev": true - }, - "lodash._baseindexof": { - "version": "3.1.0", - "bundled": true, - "dev": true - }, - "lodash._baseuniq": { - "version": "4.6.0", - "bundled": true, - "dev": true, - "requires": { - "lodash._createset": "4.0.3", - "lodash._root": "3.0.1" - }, - "dependencies": { - "lodash._createset": { - "version": "4.0.3", - "bundled": true, - "dev": true - }, - "lodash._root": { - "version": "3.0.1", - "bundled": true, - "dev": true - } - } - }, - "lodash._bindcallback": { - "version": "3.0.1", - "bundled": true, - "dev": true - }, - "lodash._cacheindexof": { - "version": "3.0.2", - "bundled": true, - "dev": true - }, - "lodash._createcache": { - "version": "3.1.2", - "bundled": true, - "dev": true, - "requires": { - "lodash._getnative": "3.9.1" - } - }, - "lodash._getnative": { - "version": "3.9.1", - "bundled": true, - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "bundled": true, - "dev": true - }, - "lodash.restparam": { - "version": "3.6.1", - "bundled": true, - "dev": true - }, - "lodash.union": { - "version": "4.6.0", - "bundled": true, - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "bundled": true, - "dev": true - }, - "lodash.without": { - "version": "4.4.0", - "bundled": true, - "dev": true - }, - "lru-cache": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - }, - "dependencies": { - "pseudomap": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true, - "dev": true - } - } - }, - "meant": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "mississippi": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "concat-stream": "1.6.0", - "duplexify": "3.5.0", - "end-of-stream": "1.4.0", - "flush-write-stream": "1.0.2", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "1.0.2", - "pumpify": "1.3.5", - "stream-each": "1.2.0", - "through2": "2.0.3" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.0", - "bundled": true, - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "typedarray": "0.0.6" - }, - "dependencies": { - "typedarray": { - "version": "0.0.6", - "bundled": true, - "dev": true - } - } - }, - "duplexify": { - "version": "3.5.0", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "1.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "stream-shift": "1.0.0" - }, - "dependencies": { - "end-of-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "once": "1.3.3" - }, - "dependencies": { - "once": { - "version": "1.3.3", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - } - } - }, - "stream-shift": { - "version": "1.0.0", - "bundled": true, - "dev": true - } - } - }, - "end-of-stream": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "once": "1.4.0" - } - }, - "flush-write-stream": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3" - } - }, - "from2": { - "version": "2.3.0", - "bundled": true, - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3" - } - }, - "parallel-transform": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.3" - }, - "dependencies": { - "cyclist": { - "version": "0.2.2", - "bundled": true, - "dev": true - } - } - }, - "pump": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "1.4.0", - "once": "1.4.0" - } - }, - "pumpify": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "requires": { - "duplexify": "3.5.0", - "inherits": "2.0.3", - "pump": "1.0.2" - } - }, - "stream-each": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "1.4.0", - "stream-shift": "1.0.0" - }, - "dependencies": { - "stream-shift": { - "version": "1.0.0", - "bundled": true, - "dev": true - } - } - }, - "through2": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "requires": { - "readable-stream": "2.3.3", - "xtend": "4.0.1" - }, - "dependencies": { - "xtend": { - "version": "4.0.1", - "bundled": true, - "dev": true - } - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - } - } - }, - "move-concurrently": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.3", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" - }, - "dependencies": { - "copy-concurrently": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" - } - }, - "run-queue": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "aproba": "1.2.0" - } - } - } - }, - "node-gyp": { - "version": "3.6.2", - "bundled": true, - "dev": true, - "requires": { - "fstream": "1.0.11", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.4", - "request": "2.83.0", - "rimraf": "2.6.2", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.0" - }, - "dependencies": { - "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.2" - } - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "1.1.8" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.8", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - }, - "dependencies": { - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - } - } - } - } - }, - "nopt": { - "version": "3.0.6", - "bundled": true, - "dev": true, - "requires": { - "abbrev": "1.1.1" - } - }, - "semver": { - "version": "5.3.0", - "bundled": true, - "dev": true - }, - "tar": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - }, - "dependencies": { - "block-stream": { - "version": "0.0.9", - "bundled": true, - "dev": true, - "requires": { - "inherits": "2.0.3" - } - } - } - } - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.4" - } - }, - "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" - }, - "dependencies": { - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "builtin-modules": "1.1.1" - }, - "dependencies": { - "builtin-modules": { - "version": "1.1.1", - "bundled": true, - "dev": true - } - } - } - } - }, - "npm-cache-filename": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "npm-install-checks": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "semver": "5.4.1" - } - }, - "npm-lifecycle": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "slide": "1.1.6", - "uid-number": "0.0.6", - "umask": "1.1.0", - "which": "1.3.0" - } - }, - "npm-package-arg": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "requires": { - "hosted-git-info": "2.5.0", - "osenv": "0.1.4", - "semver": "5.4.1", - "validate-npm-package-name": "3.0.0" - } - }, - "npm-packlist": { - "version": "1.1.9", - "bundled": true, - "dev": true, - "requires": { - "ignore-walk": "3.0.0", - "npm-bundled": "1.0.3" - }, - "dependencies": { - "ignore-walk": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "minimatch": "3.0.4" - }, - "dependencies": { - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "1.1.8" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.8", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - }, - "dependencies": { - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - } - } - } - } - } - } - }, - "npm-bundled": { - "version": "1.0.3", - "bundled": true, - "dev": true - } - } - }, - "npm-profile": { - "version": "2.0.4", - "bundled": true, - "dev": true, - "requires": { - "aproba": "1.2.0", - "make-fetch-happen": "2.5.0" - }, - "dependencies": { - "make-fetch-happen": { - "version": "2.5.0", - "bundled": true, - "dev": true, - "requires": { - "agentkeepalive": "3.3.0", - "cacache": "9.2.9", - "http-cache-semantics": "3.7.3", - "http-proxy-agent": "2.0.0", - "https-proxy-agent": "2.1.0", - "lru-cache": "4.1.1", - "mississippi": "1.3.0", - "node-fetch-npm": "2.0.2", - "promise-retry": "1.1.1", - "socks-proxy-agent": "3.0.1", - "ssri": "4.1.6" - }, - "dependencies": { - "agentkeepalive": { - "version": "3.3.0", - "bundled": true, - "dev": true, - "requires": { - "humanize-ms": "1.2.1" - }, - "dependencies": { - "humanize-ms": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true - } - } - } - } - }, - "http-cache-semantics": { - "version": "3.7.3", - "bundled": true, - "dev": true - }, - "http-proxy-agent": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "4.1.1", - "debug": "2.6.9" - }, - "dependencies": { - "agent-base": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "es6-promise": "4.1.1" - }, - "dependencies": { - "es6-promise": { - "version": "4.1.1", - "bundled": true, - "dev": true - } - } - } - } - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true - } - } - } - } - }, - "https-proxy-agent": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "4.1.1", - "debug": "2.6.9" - }, - "dependencies": { - "agent-base": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "es6-promise": "4.1.1" - }, - "dependencies": { - "es6-promise": { - "version": "4.1.1", - "bundled": true, - "dev": true - } - } - } - } - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true - } - } - } - } - }, - "node-fetch-npm": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "encoding": "0.1.12", - "json-parse-better-errors": "1.0.1", - "safe-buffer": "5.1.1" - }, - "dependencies": { - "encoding": { - "version": "0.1.12", - "bundled": true, - "dev": true, - "requires": { - "iconv-lite": "0.4.19" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.19", - "bundled": true, - "dev": true - } - } - }, - "json-parse-better-errors": { - "version": "1.0.1", - "bundled": true, - "dev": true - } - } - }, - "promise-retry": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "requires": { - "err-code": "1.1.2", - "retry": "0.10.1" - }, - "dependencies": { - "err-code": { - "version": "1.1.2", - "bundled": true, - "dev": true - } - } - }, - "socks-proxy-agent": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "4.1.1", - "socks": "1.1.10" - }, - "dependencies": { - "agent-base": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "es6-promise": "4.1.1" - }, - "dependencies": { - "es6-promise": { - "version": "4.1.1", - "bundled": true, - "dev": true - } - } - } - } - }, - "socks": { - "version": "1.1.10", - "bundled": true, - "dev": true, - "requires": { - "ip": "1.1.5", - "smart-buffer": "1.1.15" - }, - "dependencies": { - "ip": { - "version": "1.1.5", - "bundled": true, - "dev": true - }, - "smart-buffer": { - "version": "1.1.15", - "bundled": true, - "dev": true - } - } - } - } - } - } - } - } - }, - "npm-registry-client": { - "version": "8.5.0", - "bundled": true, - "dev": true, - "requires": { - "concat-stream": "1.6.0", - "graceful-fs": "4.1.11", - "normalize-package-data": "2.4.0", - "npm-package-arg": "5.1.2", - "npmlog": "4.1.2", - "once": "1.4.0", - "request": "2.83.0", - "retry": "0.10.1", - "semver": "5.4.1", - "slide": "1.1.6", - "ssri": "4.1.6" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.0", - "bundled": true, - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "typedarray": "0.0.6" - }, - "dependencies": { - "typedarray": { - "version": "0.0.6", - "bundled": true, - "dev": true - } - } - } - } - }, - "npm-user-validate": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - }, - "dependencies": { - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.3" - }, - "dependencies": { - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true - } - } - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - }, - "dependencies": { - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": 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" - }, - "dependencies": { - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - }, - "dependencies": { - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - } - } - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - } - } - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "requires": { - "string-width": "1.0.2" - } - } - } - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true - } - } - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "opener": { - "version": "1.4.3", - "bundled": true, - "dev": true - }, - "osenv": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - }, - "dependencies": { - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true - } - } - }, - "pacote": { - "version": "6.0.2", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "3.5.0", - "cacache": "9.2.9", - "glob": "7.1.2", - "lru-cache": "4.1.1", - "make-fetch-happen": "2.5.0", - "minimatch": "3.0.4", - "mississippi": "1.3.0", - "normalize-package-data": "2.4.0", - "npm-package-arg": "5.1.2", - "npm-packlist": "1.1.9", - "npm-pick-manifest": "1.0.4", - "osenv": "0.1.4", - "promise-inflight": "1.0.1", - "promise-retry": "1.1.1", - "protoduck": "4.0.0", - "safe-buffer": "5.1.1", - "semver": "5.4.1", - "ssri": "4.1.6", - "tar": "4.0.1", - "unique-filename": "1.1.0", - "which": "1.3.0" - }, - "dependencies": { - "make-fetch-happen": { - "version": "2.5.0", - "bundled": true, - "dev": true, - "requires": { - "agentkeepalive": "3.3.0", - "cacache": "9.2.9", - "http-cache-semantics": "3.7.3", - "http-proxy-agent": "2.0.0", - "https-proxy-agent": "2.1.0", - "lru-cache": "4.1.1", - "mississippi": "1.3.0", - "node-fetch-npm": "2.0.2", - "promise-retry": "1.1.1", - "socks-proxy-agent": "3.0.0", - "ssri": "4.1.6" - }, - "dependencies": { - "agentkeepalive": { - "version": "3.3.0", - "bundled": true, - "dev": true, - "requires": { - "humanize-ms": "1.2.1" - }, - "dependencies": { - "humanize-ms": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true - } - } - } - } - }, - "http-cache-semantics": { - "version": "3.7.3", - "bundled": true, - "dev": true - }, - "http-proxy-agent": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "4.1.1", - "debug": "2.6.8" - }, - "dependencies": { - "agent-base": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "es6-promise": "4.1.1" - }, - "dependencies": { - "es6-promise": { - "version": "4.1.1", - "bundled": true, - "dev": true - } - } - } - } - }, - "debug": { - "version": "2.6.8", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true - } - } - } - } - }, - "https-proxy-agent": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "4.1.1", - "debug": "2.6.8" - }, - "dependencies": { - "agent-base": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "es6-promise": "4.1.1" - }, - "dependencies": { - "es6-promise": { - "version": "4.1.1", - "bundled": true, - "dev": true - } - } - } - } - }, - "debug": { - "version": "2.6.8", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true - } - } - } - } - }, - "node-fetch-npm": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "encoding": "0.1.12", - "json-parse-better-errors": "1.0.1", - "safe-buffer": "5.1.1" - }, - "dependencies": { - "encoding": { - "version": "0.1.12", - "bundled": true, - "dev": true, - "requires": { - "iconv-lite": "0.4.18" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.18", - "bundled": true, - "dev": true - } - } - }, - "json-parse-better-errors": { - "version": "1.0.1", - "bundled": true, - "dev": true - } - } - }, - "socks-proxy-agent": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "4.1.1", - "socks": "1.1.10" - }, - "dependencies": { - "agent-base": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "requires": { - "es6-promisify": "5.0.0" - }, - "dependencies": { - "es6-promisify": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "es6-promise": "4.1.1" - }, - "dependencies": { - "es6-promise": { - "version": "4.1.1", - "bundled": true, - "dev": true - } - } - } - } - }, - "socks": { - "version": "1.1.10", - "bundled": true, - "dev": true, - "requires": { - "ip": "1.1.5", - "smart-buffer": "1.1.15" - }, - "dependencies": { - "ip": { - "version": "1.1.5", - "bundled": true, - "dev": true - }, - "smart-buffer": { - "version": "1.1.15", - "bundled": true, - "dev": true - } - } - } - } - } - } - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "1.1.8" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.8", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - }, - "dependencies": { - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - } - } - } - } - }, - "npm-pick-manifest": { - "version": "1.0.4", - "bundled": true, - "dev": true, - "requires": { - "npm-package-arg": "5.1.2", - "semver": "5.4.1" - } - }, - "promise-retry": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "requires": { - "err-code": "1.1.2", - "retry": "0.10.1" - }, - "dependencies": { - "err-code": { - "version": "1.1.2", - "bundled": true, - "dev": true - } - } - }, - "protoduck": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "genfun": "4.0.1" - }, - "dependencies": { - "genfun": { - "version": "4.0.1", - "bundled": true, - "dev": true - } - } - } - } - }, - "path-is-inside": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "qrcode-terminal": { - "version": "0.11.0", - "bundled": true, - "dev": true - }, - "query-string": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "decode-uri-component": "0.2.0", - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" - }, - "dependencies": { - "decode-uri-component": { - "version": "0.2.0", - "bundled": true, - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true - }, - "strict-uri-encode": { - "version": "1.1.0", - "bundled": true, - "dev": true - } - } - }, - "qw": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "read": { - "version": "1.0.7", - "bundled": true, - "dev": true, - "requires": { - "mute-stream": "0.0.7" - }, - "dependencies": { - "mute-stream": { - "version": "0.0.7", - "bundled": true, - "dev": true - } - } - }, - "read-cmd-shim": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "4.1.11" - } - }, - "read-installed": { - "version": "4.0.3", - "bundled": true, - "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" - }, - "dependencies": { - "util-extend": { - "version": "1.0.3", - "bundled": true, - "dev": true - } - } - }, - "read-package-json": { - "version": "2.0.12", - "bundled": true, - "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" - }, - "dependencies": { - "json-parse-better-errors": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "slash": { - "version": "1.0.0", - "bundled": true, - "dev": true - } - } - }, - "read-package-tree": { - "version": "5.1.6", - "bundled": true, - "dev": true, - "requires": { - "debuglog": "1.0.1", - "dezalgo": "1.0.3", - "once": "1.4.0", - "read-package-json": "2.0.12", - "readdir-scoped-modules": "1.0.2" - } - }, - "readable-stream": { - "version": "2.3.3", - "bundled": true, - "dev": true, - "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": { - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "process-nextick-args": { - "version": "1.0.7", - "bundled": true, - "dev": true - }, - "string_decoder": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true - } - } - }, - "readdir-scoped-modules": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "debuglog": "1.0.1", - "dezalgo": "1.0.3", - "graceful-fs": "4.1.11", - "once": "1.4.0" - } - }, - "request": { - "version": "2.83.0", - "bundled": true, - "dev": true, - "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" - }, - "dependencies": { - "aws-sign2": { - "version": "0.7.0", - "bundled": true, - "dev": true - }, - "aws4": { - "version": "1.6.0", - "bundled": true, - "dev": true - }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "dev": true - }, - "combined-stream": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - }, - "dependencies": { - "delayed-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true - } - } - }, - "extend": { - "version": "3.0.1", - "bundled": true, - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true, - "dev": true - }, - "form-data": { - "version": "2.3.1", - "bundled": true, - "dev": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" - }, - "dependencies": { - "asynckit": { - "version": "0.4.0", - "bundled": true, - "dev": true - } - } - }, - "har-validator": { - "version": "5.0.3", - "bundled": true, - "dev": true, - "requires": { - "ajv": "5.2.3", - "har-schema": "2.0.0" - }, - "dependencies": { - "ajv": { - "version": "5.2.3", - "bundled": true, - "dev": true, - "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", - "json-schema-traverse": "0.3.1", - "json-stable-stringify": "1.0.1" - }, - "dependencies": { - "co": { - "version": "4.6.0", - "bundled": true, - "dev": true - }, - "fast-deep-equal": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "bundled": true, - "dev": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "jsonify": "0.0.0" - }, - "dependencies": { - "jsonify": { - "version": "0.0.0", - "bundled": true, - "dev": true - } - } - } - } - }, - "har-schema": { - "version": "2.0.0", - "bundled": true, - "dev": true - } - } - }, - "hawk": { - "version": "6.0.2", - "bundled": true, - "dev": true, - "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.0", - "sntp": "2.0.2" - }, - "dependencies": { - "boom": { - "version": "4.3.1", - "bundled": true, - "dev": true, - "requires": { - "hoek": "4.2.0" - } - }, - "cryptiles": { - "version": "3.1.2", - "bundled": true, - "dev": true, - "requires": { - "boom": "5.2.0" - }, - "dependencies": { - "boom": { - "version": "5.2.0", - "bundled": true, - "dev": true, - "requires": { - "hoek": "4.2.0" - } - } - } - }, - "hoek": { - "version": "4.2.0", - "bundled": true, - "dev": true - }, - "sntp": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "hoek": "4.2.0" - } - } - } - }, - "http-signature": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - }, - "dependencies": { - "extsprintf": { - "version": "1.3.0", - "bundled": true, - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "dev": true - }, - "verror": { - "version": "1.10.0", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "1.3.0" - }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true - } - } - } - } - }, - "sshpk": { - "version": "1.13.1", - "bundled": true, - "dev": 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", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "asn1": { - "version": "0.2.3", - "bundled": true, - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "1.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "dev": true, - "optional": true - } - } - } - } - }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true, - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "dev": true - }, - "mime-types": { - "version": "2.1.17", - "bundled": true, - "dev": true, - "requires": { - "mime-db": "1.30.0" - }, - "dependencies": { - "mime-db": { - "version": "1.30.0", - "bundled": true, - "dev": true - } - } - }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true, - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "qs": { - "version": "6.5.1", - "bundled": true, - "dev": true - }, - "stringstream": { - "version": "0.0.5", - "bundled": true, - "dev": true - }, - "tough-cookie": { - "version": "2.3.3", - "bundled": true, - "dev": true, - "requires": { - "punycode": "1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "bundled": true, - "dev": true - } - } - }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - } - } - }, - "retry": { - "version": "0.10.1", - "bundled": true, - "dev": true - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.1.1", - "bundled": true, - "dev": true - }, - "semver": { - "version": "5.4.1", - "bundled": true, - "dev": true - }, - "sha": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "readable-stream": "2.3.3" - } - }, - "slide": { - "version": "1.1.6", - "bundled": true, - "dev": true - }, - "sorted-object": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "sorted-union-stream": { - "version": "2.1.3", - "bundled": true, - "dev": true, - "requires": { - "from2": "1.3.0", - "stream-iterate": "1.2.0" - }, - "dependencies": { - "from2": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "1.1.14" - }, - "dependencies": { - "readable-stream": { - "version": "1.1.14", - "bundled": true, - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "isarray": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "bundled": true, - "dev": true - } - } - } - } - }, - "stream-iterate": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "readable-stream": "2.3.3", - "stream-shift": "1.0.0" - }, - "dependencies": { - "stream-shift": { - "version": "1.0.0", - "bundled": true, - "dev": true - } - } - } - } - }, - "ssri": { - "version": "4.1.6", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true, - "dev": true - } - } - }, - "tar": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "requires": { - "chownr": "1.0.1", - "minipass": "2.2.1", - "minizlib": "1.0.3", - "mkdirp": "0.5.1", - "yallist": "3.0.2" - }, - "dependencies": { - "minipass": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "requires": { - "yallist": "3.0.2" - } - }, - "minizlib": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "minipass": "2.2.1" - } - }, - "yallist": { - "version": "3.0.2", - "bundled": true, - "dev": true - } - } - }, - "text-table": { - "version": "0.2.0", - "bundled": true, - "dev": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true, - "dev": true - }, - "umask": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "unique-filename": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "unique-slug": "2.0.0" - }, - "dependencies": { - "unique-slug": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "imurmurhash": "0.1.4" - } - } - } - }, - "unpipe": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "update-notifier": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "requires": { - "boxen": "1.1.0", - "chalk": "1.1.3", - "configstore": "3.1.0", - "import-lazy": "2.1.0", - "is-npm": "1.0.0", - "latest-version": "3.1.0", - "semver-diff": "2.1.0", - "xdg-basedir": "3.0.0" - }, - "dependencies": { - "boxen": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "1.1.3", - "cli-boxes": "1.0.0", - "string-width": "2.1.0", - "term-size": "0.1.1", - "widest-line": "1.0.0" - }, - "dependencies": { - "ansi-align": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "2.1.0" - } - }, - "camelcase": { - "version": "4.1.0", - "bundled": true, - "dev": true - }, - "cli-boxes": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "string-width": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "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" - } - } - } - }, - "term-size": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "requires": { - "execa": "0.4.0" - }, - "dependencies": { - "execa": { - "version": "0.4.0", - "bundled": true, - "dev": true, - "requires": { - "cross-spawn-async": "2.2.5", - "is-stream": "1.1.0", - "npm-run-path": "1.0.0", - "object-assign": "4.1.1", - "path-key": "1.0.0", - "strip-eof": "1.0.0" - }, - "dependencies": { - "cross-spawn-async": { - "version": "2.2.5", - "bundled": true, - "dev": true, - "requires": { - "lru-cache": "4.1.1", - "which": "1.3.0" - } - }, - "is-stream": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "npm-run-path": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "path-key": "1.0.0" - } - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true - }, - "path-key": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true, - "dev": true - } - } - } - } - }, - "widest-line": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "1.0.2" - }, - "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" - }, - "dependencies": { - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - }, - "dependencies": { - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - } - } - } - } - } - } - } - } - }, - "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" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "bundled": true, - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "bundled": true, - "dev": true - }, - "has-ansi": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - } - } - }, - "supports-color": { - "version": "2.0.0", - "bundled": true, - "dev": true - } - } - }, - "configstore": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "dot-prop": "4.1.1", - "graceful-fs": "4.1.11", - "make-dir": "1.0.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.1.0", - "xdg-basedir": "3.0.0" - }, - "dependencies": { - "dot-prop": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "requires": { - "is-obj": "1.0.1" - }, - "dependencies": { - "is-obj": { - "version": "1.0.1", - "bundled": true, - "dev": true - } - } - }, - "make-dir": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "pify": "2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "bundled": true, - "dev": true - } - } - }, - "unique-string": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "crypto-random-string": "1.0.0" - }, - "dependencies": { - "crypto-random-string": { - "version": "1.0.0", - "bundled": true, - "dev": true - } - } - } - } - }, - "import-lazy": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "is-npm": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "latest-version": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "package-json": "4.0.1" - }, - "dependencies": { - "package-json": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.1", - "registry-url": "3.1.0", - "semver": "5.4.1" - }, - "dependencies": { - "got": { - "version": "6.7.1", - "bundled": true, - "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" - }, - "dependencies": { - "create-error-class": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "requires": { - "capture-stack-trace": "1.0.0" - }, - "dependencies": { - "capture-stack-trace": { - "version": "1.0.0", - "bundled": true, - "dev": true - } - } - }, - "duplexer3": { - "version": "0.1.4", - "bundled": true, - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "is-redirect": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "is-retry-allowed": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "lowercase-keys": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "timed-out": { - "version": "4.0.1", - "bundled": true, - "dev": true - }, - "unzip-response": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "url-parse-lax": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "prepend-http": "1.0.4" - }, - "dependencies": { - "prepend-http": { - "version": "1.0.4", - "bundled": true, - "dev": true - } - } - } - } - }, - "registry-auth-token": { - "version": "3.3.1", - "bundled": true, - "dev": true, - "requires": { - "rc": "1.2.1", - "safe-buffer": "5.1.1" - }, - "dependencies": { - "rc": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "deep-extend": { - "version": "0.4.2", - "bundled": true, - "dev": true - }, - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true - } - } - } - } - }, - "registry-url": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "rc": "1.2.1" - }, - "dependencies": { - "rc": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "deep-extend": { - "version": "0.4.2", - "bundled": true, - "dev": true - }, - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true - } - } - } - } - } - } - } - } - }, - "semver-diff": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "semver": "5.4.1" - } - }, - "xdg-basedir": { - "version": "3.0.0", - "bundled": true, - "dev": true - } - } - }, - "uuid": { - "version": "3.1.0", - "bundled": true, - "dev": 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" - }, - "dependencies": { - "spdx-correct": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "spdx-license-ids": "1.2.2" - }, - "dependencies": { - "spdx-license-ids": { - "version": "1.2.2", - "bundled": true, - "dev": true - } - } - }, - "spdx-expression-parse": { - "version": "1.0.4", - "bundled": true, - "dev": true - } - } - }, - "validate-npm-package-name": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "builtins": "1.0.3" - }, - "dependencies": { - "builtins": { - "version": "1.0.3", - "bundled": true, - "dev": true - } - } - }, - "which": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "isexe": "2.0.0" - }, - "dependencies": { - "isexe": { - "version": "2.0.0", - "bundled": true, - "dev": true - } - } - }, - "worker-farm": { - "version": "1.5.0", - "bundled": true, - "dev": true, - "requires": { - "errno": "0.1.4", - "xtend": "4.0.1" - }, - "dependencies": { - "errno": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "requires": { - "prr": "0.0.0" - }, - "dependencies": { - "prr": { - "version": "0.0.0", - "bundled": true, - "dev": true - } - } - }, - "xtend": { - "version": "4.0.1", - "bundled": true, - "dev": true - } - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "write-file-atomic": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "slide": "1.1.6" - } - } - } - }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -14495,6 +4236,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, "requires": { "are-we-there-yet": "1.1.4", "console-control-strings": "1.1.0", @@ -14502,50 +4244,11 @@ "set-blocking": "2.0.0" } }, - "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" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, "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=" - }, - "nunjucks": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.0.1.tgz", - "integrity": "sha1-TedKPlULr2+jNwMj89HHwqhr3E0=", - "requires": { - "a-sync-waterfall": "1.0.0", - "asap": "2.0.6", - "chokidar": "1.7.0", - "yargs": "3.32.0" - } + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true }, "nwmatcher": { "version": "1.4.3", @@ -14553,60 +4256,33 @@ "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==", "dev": true }, - "oauth-1.0a": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/oauth-1.0a/-/oauth-1.0a-2.2.2.tgz", - "integrity": "sha512-fHRvq3aHoYXq8rZrXOX80nYgMc0svd4a88R4W7QLltJ1Rl+GFjW6Eu3rgR1zWB5MbuyqsWojADsS4vbmDiho/w==" - }, "oauth-sign": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-keys": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, "requires": { "for-own": "0.1.5", "is-extendable": "0.1.1" } }, - "obuf": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz", - "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4=", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", - "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", - "dev": true - }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, "requires": { "wrappy": "1.0.2" } @@ -14620,15 +4296,6 @@ "mimic-fn": "1.1.0" } }, - "opn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz", - "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==", - "dev": true, - "requires": { - "is-wsl": "1.1.0" - } - }, "optimist": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", @@ -14637,14 +4304,6 @@ "requires": { "minimist": "0.0.8", "wordwrap": "0.0.3" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - } } }, "optionator": { @@ -14659,84 +4318,38 @@ "prelude-ls": "1.1.2", "type-check": "0.3.2", "wordwrap": "1.0.0" - } - }, - "ora": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-1.3.0.tgz", - "integrity": "sha1-gAeN0rkqk0r2ajrXKluRBpTt5Ro=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "cli-cursor": "2.1.0", - "cli-spinners": "1.1.0", - "log-symbols": "1.0.2" - } - }, - "original": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", - "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", - "dev": true, - "requires": { - "url-parse": "1.0.5" }, "dependencies": { - "url-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", - "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=", - "dev": true, - "requires": { - "querystringify": "0.0.4", - "requires-port": "1.0.0" - } + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "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 - }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true }, "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, "requires": { - "lcid": "1.0.0" + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" } }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "osenv": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "output-file-sync": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", - "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "object-assign": "4.1.1" - } + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true }, "p-cancelable": { "version": "0.3.0", @@ -14765,12 +4378,6 @@ "p-limit": "1.1.0" } }, - "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", - "dev": true - }, "package-json": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", @@ -14783,46 +4390,17 @@ "semver": "5.4.1" } }, - "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==", + "parse-github-repo-url": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz", + "integrity": "sha1-nn2LslKmy2ukJZUGC3v23z28H1A=", "dev": true }, - "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" - }, - "dependencies": { - "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 - } - } - }, "parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, "requires": { "glob-base": "0.3.0", "is-dotfile": "1.0.3", @@ -14845,32 +4423,22 @@ "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", "dev": true }, - "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", - "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=", + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", "dev": true }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "path-key": { @@ -14885,12 +4453,6 @@ "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", "dev": true }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, "path-type": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", @@ -14900,717 +4462,41 @@ "graceful-fs": "4.1.11", "pify": "2.3.0", "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } } }, - "pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "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" - } - }, - "pbkdf2-compat": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", - "integrity": "sha1-tuDI+plJTZTgURV1gCpZpcFC8og=", - "dev": true - }, - "pdfjs-dist": { - "version": "1.10.97", - "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-1.10.97.tgz", - "integrity": "sha1-05mVhslLdf5eboFhpXxEmhOgMPs=", - "requires": { - "node-ensure": "0.0.0", - "worker-loader": "1.1.0" - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" - }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true }, "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, "pinkie": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz", - "integrity": "sha1-Wkfyi6EBXQIBvae/DzWOR77Ix+Q=" + "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" - }, - "dependencies": { - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - } - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "2.1.0" - } - }, - "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 - } - } - }, - "pluralize": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", - "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=", - "dev": true - }, - "portfinder": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz", - "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", - "dev": true, - "requires": { - "async": "1.5.2", - "debug": "2.6.9", - "mkdirp": "0.5.1" - }, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - } - } - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.3.2", - "source-map": "0.5.7", - "supports-color": "3.2.3" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-calc": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", - "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-message-helpers": "2.0.0", - "reduce-css-calc": "1.3.0" - } - }, - "postcss-colormin": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", - "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", - "dev": true, - "requires": { - "colormin": "1.1.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-convert-values": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", - "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-discard-comments": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", - "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-discard-duplicates": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", - "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-discard-empty": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", - "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-discard-overridden": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", - "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-discard-unused": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", - "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "uniqs": "2.0.0" - } - }, - "postcss-filter-plugins": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", - "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "uniqid": "4.1.1" - } - }, - "postcss-merge-idents": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", - "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", - "dev": true, - "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-merge-longhand": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", - "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-merge-rules": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", - "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", - "dev": true, - "requires": { - "browserslist": "1.7.7", - "caniuse-api": "1.6.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3", - "vendors": "1.0.1" - }, - "dependencies": { - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "1.0.30000766", - "electron-to-chromium": "1.3.27" - } - } - } - }, - "postcss-message-helpers": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", - "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", - "dev": true - }, - "postcss-minify-font-values": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", - "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-minify-gradients": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", - "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-minify-params": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", - "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "uniqs": "2.0.0" - } - }, - "postcss-minify-selectors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", - "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3" - } - }, - "postcss-modules-extract-imports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", - "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", - "dev": true, - "requires": { - "postcss": "6.0.14" - }, - "dependencies": { - "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" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "postcss": { - "version": "6.0.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", - "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==", - "dev": true, - "requires": { - "chalk": "2.3.0", - "source-map": "0.6.1", - "supports-color": "4.5.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" - } - } - } - }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "dev": true, - "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.14" - }, - "dependencies": { - "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" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "postcss": { - "version": "6.0.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", - "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==", - "dev": true, - "requires": { - "chalk": "2.3.0", - "source-map": "0.6.1", - "supports-color": "4.5.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" - } - } - } - }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "dev": true, - "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.14" - }, - "dependencies": { - "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" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "postcss": { - "version": "6.0.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", - "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==", - "dev": true, - "requires": { - "chalk": "2.3.0", - "source-map": "0.6.1", - "supports-color": "4.5.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" - } - } - } - }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "dev": true, - "requires": { - "icss-replace-symbols": "1.1.0", - "postcss": "6.0.14" - }, - "dependencies": { - "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" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "postcss": { - "version": "6.0.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", - "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==", - "dev": true, - "requires": { - "chalk": "2.3.0", - "source-map": "0.6.1", - "supports-color": "4.5.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" - } - } - } - }, - "postcss-normalize-charset": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", - "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-normalize-url": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", - "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", - "dev": true, - "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "1.9.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-ordered-values": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", - "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-reduce-idents": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", - "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-reduce-initial": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", - "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-reduce-transforms": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", - "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", - "dev": true, - "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", - "dev": true, - "requires": { - "flatten": "1.0.2", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "postcss-svgo": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", - "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", - "dev": true, - "requires": { - "is-svg": "2.1.0", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "svgo": "0.7.2" - } - }, - "postcss-unique-selectors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", - "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "uniqs": "2.0.0" - } - }, - "postcss-value-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", - "dev": true - }, - "postcss-zindex": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", - "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", - "dev": true, - "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "uniqs": "2.0.0" - } - }, - "prebuild-install": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.3.0.tgz", - "integrity": "sha512-gzjq2oHB8oMbzJSsSh9MQ64zrXZGt092/uT4TLZlz2qnrPxpWqp4vYB7LZrDxnlxf5RfbCjkgDI/z0EIVuYzAw==", - "dev": true, - "requires": { - "expand-template": "1.1.0", - "github-from-package": "0.0.0", - "minimist": "1.2.0", - "mkdirp": "0.5.1", - "node-abi": "2.1.2", - "noop-logger": "0.1.1", - "npmlog": "4.1.2", - "os-homedir": "1.0.2", - "pump": "1.0.3", - "rc": "1.2.2", - "simple-get": "1.4.3", - "tar-fs": "1.16.0", - "tunnel-agent": "0.6.0", - "xtend": "4.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } } }, "prelude-ls": { @@ -15628,17 +4514,8 @@ "preserve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" - }, - "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" - } + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true }, "pretty-format": { "version": "21.2.1", @@ -15655,129 +4532,21 @@ "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" - } } } }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" - }, - "process": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", "dev": true }, "process-nextick-args": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" - }, - "progress": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", "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": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "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" - } - }, - "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" - } - } - } - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "2.0.6" - } - }, - "prop-types": { - "version": "15.6.0", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", - "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", - "requires": { - "fbjs": "0.8.16", - "loose-envify": "1.3.1", - "object-assign": "4.1.1" - } - }, - "proxy-addr": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", - "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", - "dev": true, - "requires": { - "forwarded": "0.1.2", - "ipaddr.js": "1.5.2" - } - }, "prr": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", @@ -15790,100 +4559,29 @@ "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==", - "dev": true, - "requires": { - "end-of-stream": "1.4.0", - "once": "1.4.0" - } - }, "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "pupa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-1.0.0.tgz", - "integrity": "sha1-mpVopa9+ZXuEYqbp1TKHQ1YM7/Y=" + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + "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==" - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", "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 - }, - "querystringify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz", - "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=", - "dev": true - }, - "rabin-bindings": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/rabin-bindings/-/rabin-bindings-1.7.3.tgz", - "integrity": "sha512-zeVdstq+EWdwQ5JCyuuvOsP2fmGc6993laN+v8eEQsahHwZCy8bt5TefohUpgsetiwQhMMk/o+m/2sYng13Txw==", - "dev": true, - "requires": { - "bindings": "1.3.0", - "nan": "2.8.0", - "prebuild-install": "2.3.0" - }, - "dependencies": { - "nan": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", - "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", - "dev": true - } - } - }, "randomatic": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "dev": true, "requires": { "is-number": "3.0.0", "kind-of": "4.0.0" @@ -15893,6 +4591,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, "requires": { "kind-of": "3.2.2" }, @@ -15901,6 +4600,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "1.1.6" } @@ -15911,49 +4611,13 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, "requires": { "is-buffer": "1.1.6" } } } }, - "randombytes": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", - "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", - "dev": true, - "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=", - "dev": true - }, - "raw-body": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", - "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", - "dev": true, - "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.2", - "iconv-lite": "0.4.19", - "unpipe": "1.0.0" - } - }, "rc": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz", @@ -15961,7 +4625,7 @@ "dev": true, "requires": { "deep-extend": "0.4.2", - "ini": "1.3.4", + "ini": "1.3.5", "minimist": "1.2.0", "strip-json-comments": "2.0.1" }, @@ -15974,132 +4638,13 @@ } } }, - "react": { - "version": "16.1.1", - "resolved": "https://registry.npmjs.org/react/-/react-16.1.1.tgz", - "integrity": "sha512-FQfiFfk2z2Fk87OngNJHT05KyC9DOVn8LPeB7ZX+9u5+yU1JK6o5ozRlU3PeOMr0IFkWNvgn9jU8/IhRxR1F0g==", - "requires": { - "fbjs": "0.8.16", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "prop-types": "15.6.0" - } - }, - "react-deep-force-update": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-2.1.1.tgz", - "integrity": "sha1-jqQmPNZFWgULN0RbPwj9g52G6Qk=", - "dev": true - }, - "react-dnd": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-2.5.4.tgz", - "integrity": "sha512-y9YmnusURc+3KPgvhYKvZ9oCucj51MSZWODyaeV0KFU0cquzA7dCD1g/OIYUKtNoZ+MXtacDngkdud2TklMSjw==", - "requires": { - "disposables": "1.0.1", - "dnd-core": "2.5.4", - "hoist-non-react-statics": "2.3.1", - "invariant": "2.2.2", - "lodash": "4.17.4", - "prop-types": "15.6.0" - } - }, - "react-dnd-html5-backend": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-2.5.4.tgz", - "integrity": "sha512-jDqAkm/hI8Tl4HcsbhkBgB6HgpJR1e+ML1SbfxaegXYiuMxEVQm0FOwEH5WxUoo6fmIG4N+H0rSm59POuZOCaA==", - "requires": { - "lodash": "4.17.4" - } - }, - "react-dom": { - "version": "16.1.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.1.1.tgz", - "integrity": "sha512-q06jiwST8SEPAMIEkAsu7BgynEZtqF87VrTc70XsW7nxVhWEu2Y4MF5UfxxHQO/mNtQHQWP0YcFxmwm9oMrMaQ==", - "requires": { - "fbjs": "0.8.16", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "prop-types": "15.6.0" - } - }, - "react-hot-loader": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-3.1.3.tgz", - "integrity": "sha512-d7nZf78irxoGN5PY4zd6CSgZiroOhvIWzRast3qwTn4sSnBwlt08kV8WMQ9mitmxEdlCTwZt+5ClrRSjxWguMQ==", + "read-cmd-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz", + "integrity": "sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs=", "dev": true, "requires": { - "global": "4.3.2", - "react-deep-force-update": "2.1.1", - "react-proxy": "3.0.0-alpha.1", - "redbox-react": "1.5.0", - "source-map": "0.6.1" - } - }, - "react-proxy": { - "version": "3.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-3.0.0-alpha.1.tgz", - "integrity": "sha1-RABCa8+oDKpnJMd1VpUxUgn6Swc=", - "dev": true, - "requires": { - "lodash": "4.17.4" - } - }, - "react-redux": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.6.tgz", - "integrity": "sha512-8taaaGu+J7PMJQDJrk/xiWEYQmdo3mkXw6wPr3K3LxvXis3Fymiq7c13S+Tpls/AyNUAsoONkU81AP0RA6y6Vw==", - "requires": { - "hoist-non-react-statics": "2.3.1", - "invariant": "2.2.2", - "lodash": "4.17.4", - "lodash-es": "4.17.4", - "loose-envify": "1.3.1", - "prop-types": "15.6.0" - } - }, - "react-tabs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-2.1.1.tgz", - "integrity": "sha512-55jl6lsYmPTQarnjgrBU68WZlNtVSngpRxOc4iXm+Te27F9ixUr/IBTbhlhDCMiFJreP+cqu1OaMdNGY2Hg10A==", - "requires": { - "classnames": "2.2.5", - "prop-types": "15.6.0" - } - }, - "read-config-file": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-1.2.0.tgz", - "integrity": "sha512-A1MNfKNIfYV7vXMOQ/CPCuVpCdWoPULu8whmrkKxwN8FUsv6EjwU2SPSNueeTKR6tZPl7+Qeondyb4/pAcoozQ==", - "dev": true, - "requires": { - "ajv": "5.3.0", - "ajv-keywords": "2.1.1", - "bluebird-lst": "1.0.5", - "dotenv": "4.0.0", - "dotenv-expand": "4.0.1", - "fs-extra-p": "4.4.4", - "js-yaml": "3.10.0", - "json5": "0.5.1", - "lazy-val": "1.0.2" - }, - "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 - }, - "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==", - "dev": true, - "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" - } - } + "graceful-fs": "4.1.11" } }, "read-pkg": { @@ -16148,6 +4693,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -16158,72 +4704,6 @@ "util-deprecate": "1.0.2" } }, - "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.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" - } - }, - "recast": { - "version": "0.10.43", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.43.tgz", - "integrity": "sha1-uV1Q9tYHYaX2JS4V2AZ4FoSRzn8=", - "requires": { - "ast-types": "0.8.15", - "esprima-fb": "15001.1001.0-dev-harmony-fb", - "private": "0.1.8", - "source-map": "0.5.7" - }, - "dependencies": { - "esprima-fb": { - "version": "15001.1001.0-dev-harmony-fb", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz", - "integrity": "sha1-Q761fsJujPI3092LM+QlM1d/Jlk=" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "1.5.0" - } - }, - "redbox-react": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/redbox-react/-/redbox-react-1.5.0.tgz", - "integrity": "sha512-mdxArOI3sF8K5Nay5NG+lv/VW516TbXjjd4h1wcV1Iy4IMDQPnCayjoQXBAycAFSME4nyXRUXCjHxsw2rYpVRw==", - "dev": true, - "requires": { - "error-stack-parser": "1.3.6", - "object-assign": "4.1.1", - "prop-types": "15.6.0", - "sourcemapped-stacktrace": "1.1.7" - } - }, "redent": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", @@ -16234,104 +4714,19 @@ "strip-indent": "1.0.1" } }, - "reduce-css-calc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", - "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "math-expression-evaluator": "1.2.17", - "reduce-function-call": "1.0.2" - }, - "dependencies": { - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - } - } - }, - "reduce-function-call": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", - "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", - "dev": true, - "requires": { - "balanced-match": "0.4.2" - }, - "dependencies": { - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - } - } - }, - "redux": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", - "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", - "requires": { - "lodash": "4.17.4", - "lodash-es": "4.17.4", - "loose-envify": "1.3.1", - "symbol-observable": "1.0.4" - } - }, - "redux-mock-store": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/redux-mock-store/-/redux-mock-store-1.3.0.tgz", - "integrity": "sha512-TiwaDF4WLX/lJP0v1j4CMYUEfaIftTGuMUOYb7hmYJjLMAdgj2b/LOf+G9QDssNKFOpSl4B8St8TMUzF3hx92Q==", - "dev": true - }, - "redux-thunk": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.2.0.tgz", - "integrity": "sha1-5hWhbha0ehmlFXZhM9Hj6Zt4UuU=" - }, - "regenerate": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", - "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", - "dev": true - }, "regenerator-runtime": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", "dev": true }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" - } - }, "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" - } - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "is-equal-shallow": "0.1.3" } }, "registry-auth-token": { @@ -16353,43 +4748,23 @@ "rc": "1.2.2" } }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "requires": { - "jsesc": "0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, "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=" + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true }, "repeat-element": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true }, "repeating": { "version": "2.0.1", @@ -16404,6 +4779,7 @@ "version": "2.83.0", "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "dev": true, "requires": { "aws-sign2": "0.7.0", "aws4": "1.6.0", @@ -16427,27 +4803,6 @@ "tough-cookie": "2.3.3", "tunnel-agent": "0.6.0", "uuid": "3.1.0" - }, - "dependencies": { - "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" - } - }, - "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.3.0", - "har-schema": "2.0.0" - } - } } }, "require-directory": { @@ -16462,65 +4817,10 @@ "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" - } - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "requizzle": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.1.tgz", - "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", - "requires": { - "underscore": "1.6.0" - } - }, - "reselect": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-3.0.1.tgz", - "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=" - }, "resolve": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", - "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", - "dev": true, - "requires": { - "path-parse": "1.0.5" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", "dev": true }, "restore-cursor": { @@ -16538,6 +4838,7 @@ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "dev": true, + "optional": true, "requires": { "align-text": "0.1.4" } @@ -16546,54 +4847,40 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, "requires": { "glob": "7.1.2" } }, - "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": "0.1.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", - "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "once": "1.4.0" + "is-promise": "2.1.0" } }, - "rx": { - "version": "2.3.24", - "resolved": "https://registry.npmjs.org/rx/-/rx-2.3.24.tgz", - "integrity": "sha1-FPlQpCF9fjXapxu8vljv9o6ksrc=", - "dev": true - }, "rx-lite": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", - "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", "dev": true }, - "rxjs": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.2.tgz", - "integrity": "sha512-oRYoIKWBU3Ic37fLA5VJu31VqQO4bWubRntcHSJ+cwaDQBwdnZ9x4zmhJfm/nFQ2E82/I4loSioHnACamrKGgA==", + "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": { - "symbol-observable": "1.0.4" + "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==" + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true }, "sane": { "version": "2.2.0", @@ -16619,153 +4906,24 @@ } } }, - "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" - } - }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "requires": { - "ajv": "5.3.0" - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "selfsigned": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.1.tgz", - "integrity": "sha1-v4y3uDJWxFUeMTR8YxF3jbme7FI=", - "dev": true, - "requires": { - "node-forge": "0.6.33" - }, - "dependencies": { - "node-forge": { - "version": "0.6.33", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.6.33.tgz", - "integrity": "sha1-RjgRh59XPUUVWtap9D3ClujoXrw=", - "dev": true - } - } - }, "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" - } - }, - "send": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", - "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "1.1.1", - "destroy": "1.0.4", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "etag": "1.8.1", - "fresh": "0.5.2", - "http-errors": "1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.3.1" - }, - "dependencies": { - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", - "dev": true - } - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "requires": { - "accepts": "1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.2", - "mime-types": "2.1.17", - "parseurl": "1.3.2" - } - }, - "serve-static": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", - "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", - "dev": true, - "requires": { - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "parseurl": "1.3.2", - "send": "0.16.1" - } + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "dev": true }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "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=" - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "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" - } - }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -16781,28 +4939,6 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, - "shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", - "requires": { - "array-filter": "0.0.1", - "array-map": "0.0.0", - "array-reduce": "0.0.0", - "jsonify": "0.0.0" - } - }, - "shelljs": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", - "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", - "dev": true, - "requires": { - "glob": "7.1.2", - "interpret": "1.0.4", - "rechoir": "0.6.2" - } - }, "shellwords": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", @@ -16812,27 +4948,8 @@ "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "simple-get": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-1.4.3.tgz", - "integrity": "sha1-6XVe2kB+ltpAxeUVjJ6jezO+y+s=", - "dev": true, - "requires": { - "once": "1.4.0", - "unzip-response": "1.0.2", - "xtend": "4.0.1" - } - }, - "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" - } + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true }, "slash": { "version": "1.0.0", @@ -16840,89 +4957,29 @@ "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 - }, "sntp": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "dev": true, "requires": { "hoek": "4.2.0" } }, - "sockjs": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz", - "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=", - "dev": true, - "requires": { - "faye-websocket": "0.10.0", - "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 - } - } - }, - "sockjs-client": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", - "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "eventsource": "0.1.6", - "faye-websocket": "0.11.1", - "inherits": "2.0.3", - "json3": "3.3.2", - "url-parse": "1.2.0" - }, - "dependencies": { - "faye-websocket": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", - "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", - "dev": true, - "requires": { - "websocket-driver": "0.7.0" - } - } - } - }, "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "dev": true, "requires": { "is-plain-obj": "1.1.0" } }, - "sort-keys-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", - "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", - "requires": { - "sort-keys": "1.1.2" - } - }, - "source-list-map": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", - "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", - "dev": true - }, "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true }, "source-map-support": { "version": "0.4.18", @@ -16931,56 +4988,6 @@ "dev": true, "requires": { "source-map": "0.5.7" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "sourcemapped-stacktrace": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/sourcemapped-stacktrace/-/sourcemapped-stacktrace-1.1.7.tgz", - "integrity": "sha512-pgHNUACbafkQ+M5zR00NSOtSKBc/i40prgN+SY07J/pghClwVNWNTTMa0JuXj4lriR2TvMKcPAHw5KN9tVFRhA==", - "dev": true, - "requires": { - "source-map": "0.5.6" - }, - "dependencies": { - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "dev": true - } - } - }, - "spawn-command": { - "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", - "dev": true - }, - "spawn-rx": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/spawn-rx/-/spawn-rx-2.0.12.tgz", - "integrity": "sha512-gOPXiQQFQ9lTOLuys0iMn3jfxxv9c7zzwhbYLOEbQGvEShHVJ5sSR1oD3Daj88os7jKArDYT7rbOKdvNhe7iEg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "lodash.assign": "4.2.0", - "rxjs": "5.5.2" - }, - "dependencies": { - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true - } } }, "spdx-correct": { @@ -17004,68 +5011,35 @@ "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", "dev": true }, - "spdy": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", - "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", - "dev": true, - "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.1", - "select-hose": "2.0.0", - "spdy-transport": "2.0.20" - } - }, - "spdy-transport": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz", - "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=", - "dev": true, - "requires": { - "debug": "2.6.9", - "detect-node": "2.0.3", - "hpack.js": "2.1.6", - "obuf": "1.1.1", - "readable-stream": "2.3.3", - "safe-buffer": "5.1.1", - "wbuf": "1.7.2" - } - }, - "speedometer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", - "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", - "dev": true - }, "split": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "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" } }, + "split2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", + "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", + "dev": true, + "requires": { + "through2": "2.0.3" + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "srp-js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/srp-js/-/srp-js-0.2.0.tgz", - "integrity": "sha1-G40Jb0RvDW6iiULzUBSKmNpeemk=", - "requires": { - "buffer": "5.0.8", - "jsbn": "0.1.1" - } - }, "sshpk": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "dev": true, "requires": { "asn1": "0.2.3", "assert-plus": "1.0.0", @@ -17077,91 +5051,6 @@ "tweetnacl": "0.14.5" } }, - "stackframe": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-0.3.1.tgz", - "integrity": "sha1-M6qE8Rd6VUjIk1Uzy/6zQgl19aQ=", - "dev": true - }, - "stat-mode": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz", - "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=", - "dev": true - }, - "static-eval": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-0.2.3.tgz", - "integrity": "sha1-Aj8XrJ/uQm6niMEuo5IG3Bdfiyo=", - "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.6.1" - } - }, - "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=" - } - } - }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", - "dev": true - }, - "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-combiner": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", - "requires": { - "duplexer": "0.1.1" - } - }, - "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" - } - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true - }, "string-length": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", @@ -17170,39 +5059,31 @@ "requires": { "astral-regex": "1.0.0", "strip-ansi": "4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "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" - } - } } }, "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "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 + } } }, "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==", + "dev": true, "requires": { "safe-buffer": "5.1.1" } @@ -17210,14 +5091,24 @@ "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true }, "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "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": "2.1.1" + "ansi-regex": "3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + } } }, "strip-bom": { @@ -17247,60 +5138,38 @@ "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true }, - "style-loader": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.0.tgz", - "integrity": "sha512-9mx9sC9nX1dgP96MZOODpGC6l1RzQBITI2D5WJhu+wnbrSYVKLGuy14XJSLVQih/0GFrPpjelt+s//VcZQ2Evw==", + "strong-log-transformer": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-1.0.6.tgz", + "integrity": "sha1-9/uTdYpppXEUAYEnfuoMLrEwH6M=", "dev": true, "requires": { - "loader-utils": "1.1.0", - "schema-utils": "0.3.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": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "svgo": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", - "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", - "dev": true, - "requires": { - "coa": "1.0.4", - "colors": "1.1.2", - "csso": "2.3.2", - "js-yaml": "3.7.0", - "mkdirp": "0.5.1", - "sax": "1.2.4", - "whet.extend": "0.9.9" + "byline": "5.0.0", + "duplexer": "0.1.1", + "minimist": "0.1.0", + "moment": "2.19.2", + "through": "2.3.8" }, "dependencies": { - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "minimist": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz", + "integrity": "sha1-md9lelJXTCHJBXSX33QnkLK0wN4=", "dev": true } } }, - "symbol-observable": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", - "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=" + "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" + } }, "symbol-tree": { "version": "3.2.2", @@ -17308,135 +5177,50 @@ "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", "dev": true }, - "table": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz", - "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=", + "temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=", + "dev": true + }, + "temp-write": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/temp-write/-/temp-write-3.3.0.tgz", + "integrity": "sha1-walt4rNgYTQuroH0T/ABrsj2Fak=", "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" + "graceful-fs": "4.1.11", + "is-stream": "1.1.0", + "make-dir": "1.1.0", + "pify": "2.3.0", + "temp-dir": "1.0.0", + "uuid": "3.1.0" }, "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" - } - }, - "ajv-keywords": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", - "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=", + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "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 - }, - "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 - }, - "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" - } } } }, - "taffydb": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", - "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=" - }, - "tapable": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", - "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", - "dev": true - }, - "tar": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-3.2.1.tgz", - "integrity": "sha512-ZSzds1E0IqutvMU8HxjMaU8eB7urw2fGwTq88ukDOVuUIh0656l7/P7LiVPxhO5kS4flcRJQk8USG+cghQbTUQ==", - "requires": { - "chownr": "1.0.1", - "minipass": "2.2.1", - "minizlib": "1.0.4", - "mkdirp": "0.5.1", - "yallist": "3.0.2" - } - }, - "tar-fs": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.0.tgz", - "integrity": "sha512-I9rb6v7mjWLtOfCau9eH5L7sLJyU2BnxtEZRQ5Mt+eRKmf1F0ohXmT/Jc3fr52kDvjJ/HV5MH3soQfPL5bQ0Yg==", + "tempfile": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz", + "integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=", "dev": true, "requires": { - "chownr": "1.0.1", - "mkdirp": "0.5.1", - "pump": "1.0.3", - "tar-stream": "1.5.5" - } - }, - "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" - } - }, - "temp-file": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-2.1.0.tgz", - "integrity": "sha512-CvIxBqws9rVYEYQ6DX+vFfA7i1i/zW1DWxeOwdr5MZN1QkqOsnmuEYencXKiiW1etnTvs9jTaXc4d9QIh7tDYQ==", - "dev": true, - "requires": { - "async-exit-hook": "2.0.1", - "bluebird-lst": "1.0.5", - "fs-extra-p": "4.4.4", - "lazy-val": "1.0.2" - } - }, - "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" + "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 + } } }, "test-exclude": { @@ -17452,10 +5236,10 @@ "require-main-filename": "1.0.1" } }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "text-extensions": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.7.0.tgz", + "integrity": "sha512-AKXZeDq230UaSzaO5s3qQUZOaC7iKbzq0jOFL614R7d9R593HLqAOL0cYoqLdkNrjBSOdmoQI06yigq1TSBXAg==", "dev": true }, "throat": { @@ -17464,74 +5248,35 @@ "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", "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=" + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true }, "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, "requires": { - "readable-stream": "1.0.34", + "readable-stream": "2.3.3", "xtend": "4.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "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" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } } }, - "thunky": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz", - "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4=", - "dev": true - }, - "time-stamp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.0.tgz", - "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c=", - "dev": true - }, "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", "dev": true }, - "timers-browserify": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", - "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "setimmediate": "1.0.5" + "os-tmpdir": "1.0.2" } }, "tmpl": { @@ -17540,12 +5285,6 @@ "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", "dev": true }, - "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-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", @@ -17556,6 +5295,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "dev": true, "requires": { "punycode": "1.4.1" } @@ -17566,49 +5306,29 @@ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", "dev": true }, - "tree-kill": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz", - "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==", - "dev": true - }, "trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", "dev": true }, + "trim-off-newlines": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", + "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", + "dev": true + }, "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, - "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 - }, - "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=", + "dev": true, "requires": { "safe-buffer": "5.1.1" } @@ -17617,6 +5337,7 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, "optional": true }, "type-check": { @@ -17628,78 +5349,30 @@ "prelude-ls": "1.1.2" } }, - "type-is": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "2.1.17" - } - }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, - "ua-parser-js": { - "version": "0.7.17", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", - "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==" - }, "uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, + "optional": true, "requires": { "source-map": "0.5.7", "uglify-to-browserify": "1.0.2", "yargs": "3.10.0" }, "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - }, "yargs": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "dev": true, + "optional": true, "requires": { "camelcase": "1.2.1", "cliui": "2.1.0", @@ -17713,69 +5386,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true - }, - "uglifyjs-webpack-plugin": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", "dev": true, - "requires": { - "source-map": "0.5.7", - "uglify-js": "2.8.29", - "webpack-sources": "1.0.2" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "underscore": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", - "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=" - }, - "underscore-contrib": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz", - "integrity": "sha1-ZltmwkeD+PorGMn4y7Dix9SMJsc=", - "requires": { - "underscore": "1.6.0" - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "uniqid": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", - "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", - "dev": true, - "requires": { - "macaddress": "0.2.8" - } - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "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" - } + "optional": true }, "universalify": { "version": "0.1.1", @@ -17783,146 +5395,12 @@ "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", "dev": true }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "unreachable-branch-transform": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/unreachable-branch-transform/-/unreachable-branch-transform-0.3.0.tgz", - "integrity": "sha1-2ZzExudG0mSSiEW2EdtUsPNHTKo=", - "requires": { - "esmangle-evaluator": "1.0.1", - "recast": "0.10.43", - "through2": "0.6.5" - } - }, - "unused-filename": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unused-filename/-/unused-filename-1.0.0.tgz", - "integrity": "sha1-00CID3GuIRXrqhMlvvBcxmhEacY=", - "requires": { - "modify-filename": "1.1.0", - "path-exists": "3.0.0" - } - }, "unzip-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", - "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=", + "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" - }, - "dependencies": { - "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" - } - }, - "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": "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" - } - } - } - }, - "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-loader": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.6.2.tgz", - "integrity": "sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q==", - "dev": true, - "requires": { - "loader-utils": "1.1.0", - "mime": "1.4.1", - "schema-utils": "0.3.0" - }, - "dependencies": { - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", - "dev": true - } - } - }, - "url-parse": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz", - "integrity": "sha512-DT1XbYAfmQP65M/mE6OALxmXzZ/z1+e5zk2TcSKe/KiYbNGZxgtttzC0mR/sjopbpOXcbniq7eIKmocJnUWlEw==", - "dev": true, - "requires": { - "querystringify": "1.0.0", - "requires-port": "1.0.0" - }, - "dependencies": { - "querystringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz", - "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=", - "dev": true - } - } - }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", @@ -17932,59 +5410,17 @@ "prepend-http": "1.0.4" } }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "dev": true - }, - "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=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, "uuid": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" - }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", - "dev": true, - "requires": { - "user-home": "1.1.1" - } + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", + "dev": true }, "validate-npm-package-license": { "version": "3.0.1", @@ -17996,42 +5432,17 @@ "spdx-expression-parse": "1.0.4" } }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "vendors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", - "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=", - "dev": true - }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, "requires": { "assert-plus": "1.0.0", "core-util-is": "1.0.2", "extsprintf": "1.3.0" } }, - "vkbeautify": { - "version": "0.99.3", - "resolved": "https://registry.npmjs.org/vkbeautify/-/vkbeautify-0.99.3.tgz", - "integrity": "sha512-2ozZEFfmVvQcHWoHLNuiKlUfDKlhh4KGsy54U0UrlLMR1SO+XKAIDqBxtBwHgNrekurlJwE8A9K6L49T78ZQ9Q==" - }, - "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" - } - }, "walker": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", @@ -18059,24 +5470,13 @@ } } }, - "watchpack": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", - "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "dev": true, "requires": { - "async": "2.6.0", - "chokidar": "1.7.0", - "graceful-fs": "4.1.11" - } - }, - "wbuf": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz", - "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=", - "dev": true, - "requires": { - "minimalistic-assert": "1.0.0" + "defaults": "1.0.3" } }, "webidl-conversions": { @@ -18085,65 +5485,257 @@ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", "dev": true }, - "webpack": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.8.1.tgz", - "integrity": "sha512-5ZXLWWsMqHKFr5y0N3Eo5IIisxeEeRAajNq4mELb/WELOR7srdbQk2N5XiyNy2A/AgvlR3AmeBCZJW8lHrolbw==", + "whatwg-encoding": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", + "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", "dev": true, "requires": { - "acorn": "5.2.1", - "acorn-dynamic-import": "2.0.2", - "ajv": "5.3.0", - "ajv-keywords": "2.1.1", - "async": "2.6.0", - "enhanced-resolve": "3.4.1", - "escope": "3.6.0", - "interpret": "1.0.4", - "json-loader": "0.5.7", - "json5": "0.5.1", - "loader-runner": "2.3.0", - "loader-utils": "1.1.0", - "memory-fs": "0.4.1", - "mkdirp": "0.5.1", - "node-libs-browser": "2.1.0", - "source-map": "0.5.7", - "supports-color": "4.5.0", - "tapable": "0.2.8", - "uglifyjs-webpack-plugin": "0.4.6", - "watchpack": "1.4.0", - "webpack-sources": "1.0.2", - "yargs": "8.0.2" + "iconv-lite": "0.4.19" + } + }, + "whatwg-url": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", + "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", + "dev": true, + "requires": { + "tr46": "0.0.3", + "webidl-conversions": "3.0.1" }, "dependencies": { - "acorn": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.2.1.tgz", - "integrity": "sha512-jG0u7c4Ly+3QkkW18V+NRDN+4bWHdln30NL1ZL2AvFZZmQe/BfopYCtghCKKVBUSetZ4QKcyA0pY6/4Gw8Pv8w==", + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", "dev": true + } + } + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true, + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wide-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "dev": true, + "requires": { + "string-width": "1.0.2" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + } + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "worker-farm": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.2.tgz", + "integrity": "sha512-XxiQ9kZN5n6mmnW+mFJ+wXjNNI/Nx4DIdaAKLX1Bn6LYBWlN/zaBhu34DQYPZ1AJobQuu67S2OfDdNSVULvXkQ==", + "dev": true, + "requires": { + "errno": "0.1.4", + "xtend": "4.0.1" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", + "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" + } + }, + "write-json-file": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz", + "integrity": "sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=", + "dev": true, + "requires": { + "detect-indent": "5.0.0", + "graceful-fs": "4.1.11", + "make-dir": "1.1.0", + "pify": "3.0.0", + "sort-keys": "2.0.0", + "write-file-atomic": "2.3.0" + }, + "dependencies": { + "detect-indent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", + "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", "dev": true - }, + } + } + }, + "write-pkg": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.1.0.tgz", + "integrity": "sha1-AwqZlMyZk9JbTnWp8aGSNgcpHOk=", + "dev": true, + "requires": { + "sort-keys": "2.0.0", + "write-json-file": "2.3.0" + } + }, + "xml-name-validator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", + "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "dev": true, + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + }, + "dependencies": { "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true }, - "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 + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } }, "load-json-file": { "version": "2.0.0", @@ -18157,17 +5749,6 @@ "strip-bom": "3.0.0" } }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, "path-type": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", @@ -18177,6 +5758,12 @@ "pify": "2.3.0" } }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", @@ -18198,29 +5785,13 @@ "read-pkg": "2.0.0" } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "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=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { @@ -18228,781 +5799,13 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true - }, - "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" - } - }, - "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", - "dev": true, - "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" - } - }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "dev": true, - "requires": { - "camelcase": "4.1.0" - } } } }, - "webpack-core": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", - "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", - "dev": true, - "requires": { - "source-list-map": "0.1.8", - "source-map": "0.4.4" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "webpack-dev-middleware": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.1.tgz", - "integrity": "sha512-UzyVg/CKBKkymDpqOoQ4mWTs9zQp0DPCY8zbol9K0tPhqoM+JU5knKGXyMQ/Cdrmzb9Cw3eetm67fIsJ7u7ryg==", - "dev": true, - "requires": { - "memory-fs": "0.4.1", - "mime": "1.5.0", - "path-is-absolute": "1.0.1", - "range-parser": "1.2.0", - "time-stamp": "2.0.0" - }, - "dependencies": { - "mime": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.5.0.tgz", - "integrity": "sha512-v/jMDoK/qKptnTuC3YUNbIj8uUYvTCIHzVu9BHldKSWja48wusAtfjlcBlqnFrqClu3yf69ScDxBPrIyFnF51g==", - "dev": true - } - } - }, - "webpack-dev-server": { - "version": "2.9.4", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.9.4.tgz", - "integrity": "sha512-thrqC0EQEoSjXeYgP6pUXcUCZ+LNrKsDPn+mItLnn5VyyNZOJKd06hUP5vqkYwL8nWWXsii0loSF9NHNccT6ow==", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "array-includes": "3.0.3", - "bonjour": "3.5.0", - "chokidar": "1.7.0", - "compression": "1.7.1", - "connect-history-api-fallback": "1.5.0", - "debug": "3.1.0", - "del": "3.0.0", - "express": "4.16.2", - "html-entities": "1.2.1", - "http-proxy-middleware": "0.17.4", - "import-local": "0.1.1", - "internal-ip": "1.2.0", - "ip": "1.1.5", - "killable": "1.0.0", - "loglevel": "1.6.0", - "opn": "5.1.0", - "portfinder": "1.0.13", - "selfsigned": "1.10.1", - "serve-index": "1.9.1", - "sockjs": "0.3.18", - "sockjs-client": "1.1.4", - "spdy": "3.4.7", - "strip-ansi": "3.0.1", - "supports-color": "4.5.0", - "webpack-dev-middleware": "1.12.1", - "yargs": "6.6.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 - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", - "dev": true, - "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.2" - } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "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" - } - }, - "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 - }, - "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" - } - }, - "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" - } - } - } - }, - "webpack-sources": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.2.tgz", - "integrity": "sha512-Y7UddMCv6dGjy81nBv6nuQeFFIt5aalHm7uyDsAsW86nZwfOVPGRr3XMjEQLaT+WKo8rlzhC9qtbJvYKLtAwaw==", - "dev": true, - "requires": { - "source-list-map": "2.0.0", - "source-map": "0.6.1" - }, - "dependencies": { - "source-list-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", - "dev": true - } - } - }, - "webpack-target-electron-renderer": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/webpack-target-electron-renderer/-/webpack-target-electron-renderer-0.4.0.tgz", - "integrity": "sha1-UJM3CIVgRM/vFBk8qvMgriGc/aI=", - "dev": true, - "requires": { - "webpack": "1.15.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 - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "browserify-aes": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz", - "integrity": "sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw=", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "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" - } - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - } - }, - "clone": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", - "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", - "dev": true - }, - "crypto-browserify": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.3.0.tgz", - "integrity": "sha1-ufx1u0oO1h3PHNXa6W6zDJw+UGw=", - "dev": true, - "requires": { - "browserify-aes": "0.4.0", - "pbkdf2-compat": "2.0.1", - "ripemd160": "0.2.0", - "sha.js": "2.2.6" - } - }, - "enhanced-resolve": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", - "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.2.0", - "tapable": "0.1.10" - }, - "dependencies": { - "memory-fs": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", - "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", - "dev": true - } - } - }, - "https-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", - "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", - "dev": true - }, - "interpret": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz", - "integrity": "sha1-/s16GOfOXKar+5U+H4YhOknxYls=", - "dev": true - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1", - "object-assign": "4.1.1" - } - }, - "memory-fs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", - "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=", - "dev": true, - "requires": { - "errno": "0.1.4", - "readable-stream": "2.3.3" - } - }, - "node-libs-browser": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz", - "integrity": "sha1-PicsCBnjCJNeJmdECNevDhSRuDs=", - "dev": true, - "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.1.4", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.3.0", - "domain-browser": "1.1.7", - "events": "1.1.1", - "https-browserify": "0.0.1", - "os-browserify": "0.2.1", - "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.3", - "stream-browserify": "2.0.1", - "stream-http": "2.7.2", - "string_decoder": "0.10.31", - "timers-browserify": "2.0.4", - "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", - "vm-browserify": "0.0.4" - } - }, - "os-browserify": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", - "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", - "dev": true - }, - "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "ripemd160": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", - "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=", - "dev": true - }, - "sha.js": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", - "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "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 - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - }, - "tapable": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", - "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", - "dev": true - }, - "uglify-js": { - "version": "2.7.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", - "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", - "dev": true, - "requires": { - "async": "0.2.10", - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, - "dependencies": { - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", - "dev": true - } - } - }, - "watchpack": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", - "integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=", - "dev": true, - "requires": { - "async": "0.9.2", - "chokidar": "1.7.0", - "graceful-fs": "4.1.11" - }, - "dependencies": { - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true - } - } - }, - "webpack": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.15.0.tgz", - "integrity": "sha1-T/MfU9sDM55VFkqdRo7gMklo/pg=", - "dev": true, - "requires": { - "acorn": "3.3.0", - "async": "1.5.2", - "clone": "1.0.3", - "enhanced-resolve": "0.9.1", - "interpret": "0.6.6", - "loader-utils": "0.2.17", - "memory-fs": "0.3.0", - "mkdirp": "0.5.1", - "node-libs-browser": "0.7.0", - "optimist": "0.6.1", - "supports-color": "3.2.3", - "tapable": "0.1.10", - "uglify-js": "2.7.5", - "watchpack": "0.2.9", - "webpack-core": "0.6.9" - } - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } - } - } - }, - "websocket-driver": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", - "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", - "dev": true, - "requires": { - "http-parser-js": "0.4.9", - "websocket-extensions": "0.1.3" - } - }, - "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", - "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.19" - } - }, - "whatwg-fetch": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", - "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" - }, - "whatwg-url": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", - "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", - "dev": true, - "requires": { - "tr46": "0.0.3", - "webidl-conversions": "3.0.1" - }, - "dependencies": { - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true - } - } - }, - "whet.extend": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", - "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", - "dev": true - }, - "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "requires": { - "string-width": "1.0.2" - } - }, - "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" - } - }, - "window-size": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", - "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=" - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "worker-farm": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.2.tgz", - "integrity": "sha512-XxiQ9kZN5n6mmnW+mFJ+wXjNNI/Nx4DIdaAKLX1Bn6LYBWlN/zaBhu34DQYPZ1AJobQuu67S2OfDdNSVULvXkQ==", - "dev": true, - "requires": { - "errno": "0.1.4", - "xtend": "4.0.1" - } - }, - "worker-loader": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-1.1.0.tgz", - "integrity": "sha512-W91q8Wi1JxbzFQZuLJlFK4x8UuWjKgeOX9IMMyng007K0UkP6I8lOejckoCWY61QmnJq2x9qZ/Viru+uF8g6nA==", - "requires": { - "loader-utils": "1.1.0", - "schema-utils": "0.3.0" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - } - }, - "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": "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 - }, - "xml-name-validator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", - "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", - "dev": true - }, - "xmlbuilder": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", - "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=", - "dev": true - }, - "xmlcreate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", - "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=" - }, - "xmldom": { - "version": "0.1.27", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", - "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=" - }, - "xpath": { - "version": "0.0.23", - "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.23.tgz", - "integrity": "sha1-9ej9xr3H5yiFsyNPQMuiZpWAqvo=" - }, - "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=" - }, - "yallist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" - }, - "yargs": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", - "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", - "requires": { - "camelcase": "2.1.1", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "os-locale": "1.4.0", - "string-width": "1.0.2", - "window-size": "0.1.4", - "y18n": "3.2.1" - } - }, "yargs-parser": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.0.0.tgz", - "integrity": "sha1-IdR2Mw5agieaS4gTRb8GYQLiGcY=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "dev": true, "requires": { "camelcase": "4.1.0" @@ -19015,27 +5818,6 @@ "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" - } - }, - "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 921a17f201..20a324a046 100644 --- a/package.json +++ b/package.json @@ -1,161 +1,25 @@ { - "name": "insomnia-dev", + "name": "insomnia", "private": true, "version": "1.0.0", - "description": "Insomnia App", - "cache": 3, - "main": "main.js", - "licence": "GNU AGPLv3", - "homepage": "https://insomnia.rest", - "repository": { - "type": "git", + "author": "Gregory Schier ", + "repository": "https://github.com/getinsomnia/insomnia", + "bugs": { "url": "https://github.com/getinsomnia/insomnia" }, "scripts": { - "test:lint": "eslint \"**/*.js\" \"**/*.html\" \"**/*.json\"", - "test:noisy": "cross-env NODE_ENV=test jest", - "test:coverage": "cross-env NODE_ENV=test jest --coverage --silent && open ./coverage/lcov-report/index.html", - "test:watch": "cross-env NODE_ENV=test jest --silent --watch", - "test:flow": "flow check", - "test": "npm run test:flow && npm run test:lint && cross-env NODE_ENV=test jest --silent --maxWorkers 1", - "start-hot": "npm run build-main && cross-env HOT=1 INSOMNIA_ENV=development electron app", - "build-main": "cross-env NODE_ENV=development webpack --config ./webpack/webpack.config.electron.babel.js", - "hot-server": "webpack-dev-server --config ./webpack/webpack.config.development.babel.js", - "dev": "concurrently --kill-others \"npm run hot-server\" \"npm run start-hot\"", - "rebuild": "electron-rebuild -f -w node-libcurl", - "package": "node ./scripts/package.js", - "build": "node ./scripts/build.js", - "build-n-package": "npm run build && npm run package" - }, - "dev": { - "webpack-dev-server-port": 3333 - }, - "jest": { - "setupFiles": [ - "./__jest__/setup.js" - ], - "moduleNameMapper": { - "\\.(css|less|png)$": "/__mocks__/dummy.js", - "^worker-loader!": "/__mocks__/dummy.js" - }, - "testMatch": [ - "**/__tests__/**/*.test.js?(x)" - ], - "rootDir": "app", - "verbose": false, - "resetMocks": true, - "resetModules": true, - "collectCoverage": false, - "collectCoverageFrom": [ - "**/*.js", - "!**/*.min.js", - "!**/main.development.js", - "!**/static/**", - "!**/ui/components/**", - "!**/__fixtures__/**", - "!**/__tests__/**", - "!**/__jest__/**", - "!**/__mocks__/**", - "!**/node_modules/**" - ] - }, - "dependencies": { - "autobind-decorator": "^1.3.4", - "aws4": "^1.6.0", - "classnames": "^2.2.5", - "clone": "^2.1.0", - "codemirror": "^5.24.2", - "codemirror-graphql": "^0.6.11", - "deep-equal": "^1.0.1", - "electron-context-menu": "^0.9.0", - "electron-squirrel-startup": "^1.0.0", - "graphql": "^0.10.5", - "hawk": "^6.0.2", - "highlight.js": "^9.12.0", - "hkdf": "^0.0.2", - "html-entities": "^1.2.0", - "iconv-lite": "^0.4.15", - "insomnia-httpsnippet": "^1.16.5", - "insomnia-importers": "^1.5.0", - "insomnia-node-libcurl": "^1.2.3", - "jsonlint": "^1.6.2", - "jsonpath": "^0.2.12", - "jwt-authentication": "^0.3.3", - "marked": "^0.3.6", - "mime-types": "^2.1.14", - "mkdirp": "^0.5.1", - "moment": "^2.18.1", - "multiparty": "^4.1.3", - "nedb": "^1.8.0", - "node-forge": "^0.7.0", - "nunjucks": "^3.0.0", - "oauth-1.0a": "^2.2.2", - "pdfjs-dist": "^1.9.640", - "prop-types": "^15.5.10", - "react": "^16.0.0", - "react-dnd": "^2.4.0", - "react-dnd-html5-backend": "^2.4.1", - "react-dom": "^16.0.0", - "react-redux": "^5.0.6", - "react-tabs": "^2.1.1", - "redux": "^3.7.2", - "redux-thunk": "^2.2.0", - "reselect": "^3.0.1", - "srp-js": "^0.2.0", - "tar": "^3.1.7", - "tough-cookie": "^2.3.1", - "uuid": "^3.0.0", - "vkbeautify": "^0.99.1", - "whatwg-fetch": "^2.0.1", - "xmldom": "^0.1.22", - "xpath": "^0.0.23" + "bootstrap": "lerna bootstrap && lerna run rebuild", + "clean": "lerna run clean --stream", + "test": "lerna run test --stream", + "start-app": "lerna run start --stream --scope=insomnia-app", + "start-website": "lerna run start --stream --scope=insomnia-website", + "build-app": "lerna run build --stream --scope=insomnia-app", + "build-website": "lerna run build --stream --scope=insomnia-website", + "package-app": "lerna run package --stream --scope=insomnia-app" }, "devDependencies": { - "babel-cli": "^6.23.0", - "babel-core": "^6.23.1", - "babel-eslint": "^7.1.1", - "babel-jest": "^19.0.0", - "babel-loader": "^7.1.2", - "babel-plugin-transform-decorators-legacy": "^1.3.4", - "babel-plugin-transform-object-rest-spread": "^6.23.0", - "babel-preset-env": "^1.6.0", - "babel-preset-flow": "^6.23.0", - "babel-preset-react": "^6.23.0", - "concurrently": "^3.5.0", - "cross-env": "^2.0.0", - "css-loader": "^0.28.7", - "electron": "^1.7.9", - "electron-builder": "^19.45.5", - "electron-builder-lib": "^19.46.3", - "electron-builder-squirrel-windows": "^19.46.0", - "electron-rebuild": "^1.6.0", - "eslint": "^3.16.1", - "eslint-config-semistandard": "^11.0.0", - "eslint-config-standard": "^10.2.1", - "eslint-plugin-filenames": "^1.1.0", - "eslint-plugin-flowtype": "^2.36.0", - "eslint-plugin-html": "^2.0.1", - "eslint-plugin-import": "^2.8.0", - "eslint-plugin-jest": "^19.0.1", - "eslint-plugin-json": "^1.2.0", - "eslint-plugin-node": "^5.2.1", - "eslint-plugin-promise": "^3.5.0", - "eslint-plugin-react": "^7.4.0", - "eslint-plugin-standard": "^3.0.1", - "file-loader": "^1.1.5", - "flow-bin": "^0.58.0", + "flow-bin": "^0.59.0", "jest": "^21.2.1", - "less": "^2.7.2", - "less-loader": "^4.0.5", - "ncp": "^2.0.0", - "npm": "^5.5.1", - "react-hot-loader": "^3.1.3", - "redux-mock-store": "^1.0.2", - "rimraf": "^2.6.2", - "style-loader": "^0.19.0", - "url-loader": "^0.6.2", - "webpack": "^3.5.5", - "webpack-dev-server": "^2.9.4", - "webpack-target-electron-renderer": "^0.4.0" + "lerna": "^2.5.1" } } diff --git a/.babelrc b/packages/insomnia-app/.babelrc similarity index 100% rename from .babelrc rename to packages/insomnia-app/.babelrc diff --git a/packages/insomnia-app/.electronbuilder b/packages/insomnia-app/.electronbuilder new file mode 100644 index 0000000000..2eabd859f8 --- /dev/null +++ b/packages/insomnia-app/.electronbuilder @@ -0,0 +1,59 @@ +{ + "appId": "com.insomnia.app", + "publish": false, + "extraResources": [ + { + "from": "./bin", + "to": "./bin", + "filter": "yarn-standalone.js" + } + ], + "protocols": [ + { + "name": "Insomnia", + "role": "Viewer", + "schemes": [ + "insomnia" + ] + } + ], + "fileAssociations": [], + "directories": { + "app": "build", + "output": "dist" + }, + "mac": { + "category": "public.app-category.developer-tools", + "target": [ + "dmg", + "zip" + ] + }, + "win": { + "target": [ + "squirrel", + "zip" + ] + }, + "linux": { + "executableName": "insomnia", + "synopsis": "A simple, beautiful, and free REST API client", + "category": "Development", + "target": [ + "AppImage", + "deb", + "tar.gz" + ] + }, + "deb": { + "depends": [ + "gconf2", + "gconf-service", + "libnotify4", + "libappindicator1", + "libxtst6", + "libnss3", + "libcurl3" + ] + } +} diff --git a/.eslintignore b/packages/insomnia-app/.eslintignore similarity index 100% rename from .eslintignore rename to packages/insomnia-app/.eslintignore diff --git a/.eslintrc b/packages/insomnia-app/.eslintrc similarity index 100% rename from .eslintrc rename to packages/insomnia-app/.eslintrc diff --git a/.flowconfig b/packages/insomnia-app/.flowconfig similarity index 100% rename from .flowconfig rename to packages/insomnia-app/.flowconfig diff --git a/packages/insomnia-app/.gitignore b/packages/insomnia-app/.gitignore new file mode 100644 index 0000000000..935bdcd88d --- /dev/null +++ b/packages/insomnia-app/.gitignore @@ -0,0 +1,6 @@ +dist +build + +# Generated +app/main.min.js + diff --git a/packages/insomnia-app/.nvmrc b/packages/insomnia-app/.nvmrc new file mode 100644 index 0000000000..45a4fb75db --- /dev/null +++ b/packages/insomnia-app/.nvmrc @@ -0,0 +1 @@ +8 diff --git a/LICENSE b/packages/insomnia-app/LICENSE similarity index 100% rename from LICENSE rename to packages/insomnia-app/LICENSE diff --git a/packages/insomnia-app/README.md b/packages/insomnia-app/README.md new file mode 100644 index 0000000000..f5f8a3ace6 --- /dev/null +++ b/packages/insomnia-app/README.md @@ -0,0 +1,3 @@ +# Insomnia App + +The main desktop application. diff --git a/app/__jest__/before-each.js b/packages/insomnia-app/app/__jest__/before-each.js similarity index 100% rename from app/__jest__/before-each.js rename to packages/insomnia-app/app/__jest__/before-each.js diff --git a/app/__jest__/setup.js b/packages/insomnia-app/app/__jest__/setup.js similarity index 95% rename from app/__jest__/setup.js rename to packages/insomnia-app/app/__jest__/setup.js index 6c3cd0a519..4d37cc6ace 100644 --- a/app/__jest__/setup.js +++ b/packages/insomnia-app/app/__jest__/setup.js @@ -17,6 +17,7 @@ const localStorageMock = (function () { })(); // Don't console log during testing. It's annoying +global.__DEV__ = false; global.console.log = () => null; global.localStorage = localStorageMock; global.requestAnimationFrame = cb => process.nextTick(cb); diff --git a/app/__mocks__/dummy.js b/packages/insomnia-app/app/__mocks__/dummy.js similarity index 100% rename from app/__mocks__/dummy.js rename to packages/insomnia-app/app/__mocks__/dummy.js diff --git a/app/__mocks__/electron.js b/packages/insomnia-app/app/__mocks__/electron.js similarity index 100% rename from app/__mocks__/electron.js rename to packages/insomnia-app/app/__mocks__/electron.js diff --git a/app/__mocks__/insomnia-node-libcurl.js b/packages/insomnia-app/app/__mocks__/insomnia-node-libcurl.js similarity index 100% rename from app/__mocks__/insomnia-node-libcurl.js rename to packages/insomnia-app/app/__mocks__/insomnia-node-libcurl.js diff --git a/app/__mocks__/node-forge.js b/packages/insomnia-app/app/__mocks__/node-forge.js similarity index 100% rename from app/__mocks__/node-forge.js rename to packages/insomnia-app/app/__mocks__/node-forge.js diff --git a/app/__tests__/package.test.js b/packages/insomnia-app/app/__tests__/package.test.js similarity index 69% rename from app/__tests__/package.test.js rename to packages/insomnia-app/app/__tests__/package.test.js index c148a94605..071a0f9a5b 100644 --- a/app/__tests__/package.test.js +++ b/packages/insomnia-app/app/__tests__/package.test.js @@ -1,14 +1,12 @@ -import * as appPackage from '../package.json'; import * as globalPackage from '../../package.json'; import {globalBeforeEach} from '../__jest__/before-each'; describe('package.json', () => { beforeEach(globalBeforeEach); - it('all app dependencies should be same in global', () => { - for (const name of Object.keys(appPackage.dependencies)) { - const expected = globalPackage.dependencies[name]; - const actual = appPackage.dependencies[name]; - expect(`${name}::${actual}`).toBe(`${name}::${expected}`); + it('all packed dependencies should exist', () => { + for (const name of globalPackage.packedDependencies) { + const version = globalPackage.dependencies[name]; + expect(version).toBeDefined(); } }); diff --git a/app/__tests__/renderer.test.js b/packages/insomnia-app/app/__tests__/renderer.test.js similarity index 100% rename from app/__tests__/renderer.test.js rename to packages/insomnia-app/app/__tests__/renderer.test.js diff --git a/app/common/__fixtures__/har/test-response.json b/packages/insomnia-app/app/common/__fixtures__/har/test-response.json similarity index 100% rename from app/common/__fixtures__/har/test-response.json rename to packages/insomnia-app/app/common/__fixtures__/har/test-response.json diff --git a/app/common/__fixtures__/nestedfolders.js b/packages/insomnia-app/app/common/__fixtures__/nestedfolders.js similarity index 100% rename from app/common/__fixtures__/nestedfolders.js rename to packages/insomnia-app/app/common/__fixtures__/nestedfolders.js diff --git a/app/common/__fixtures__/prettify/escaped-characters-input.json b/packages/insomnia-app/app/common/__fixtures__/prettify/escaped-characters-input.json similarity index 100% rename from app/common/__fixtures__/prettify/escaped-characters-input.json rename to packages/insomnia-app/app/common/__fixtures__/prettify/escaped-characters-input.json diff --git a/app/common/__fixtures__/prettify/escaped-characters-output.json b/packages/insomnia-app/app/common/__fixtures__/prettify/escaped-characters-output.json similarity index 100% rename from app/common/__fixtures__/prettify/escaped-characters-output.json rename to packages/insomnia-app/app/common/__fixtures__/prettify/escaped-characters-output.json diff --git a/app/common/__fixtures__/prettify/extra-whitespace-input.json b/packages/insomnia-app/app/common/__fixtures__/prettify/extra-whitespace-input.json similarity index 100% rename from app/common/__fixtures__/prettify/extra-whitespace-input.json rename to packages/insomnia-app/app/common/__fixtures__/prettify/extra-whitespace-input.json diff --git a/app/common/__fixtures__/prettify/extra-whitespace-output.json b/packages/insomnia-app/app/common/__fixtures__/prettify/extra-whitespace-output.json similarity index 100% rename from app/common/__fixtures__/prettify/extra-whitespace-output.json rename to packages/insomnia-app/app/common/__fixtures__/prettify/extra-whitespace-output.json diff --git a/app/common/__fixtures__/prettify/minimal-whitespace-input.json b/packages/insomnia-app/app/common/__fixtures__/prettify/minimal-whitespace-input.json similarity index 100% rename from app/common/__fixtures__/prettify/minimal-whitespace-input.json rename to packages/insomnia-app/app/common/__fixtures__/prettify/minimal-whitespace-input.json diff --git a/app/common/__fixtures__/prettify/minimal-whitespace-output.json b/packages/insomnia-app/app/common/__fixtures__/prettify/minimal-whitespace-output.json similarity index 100% rename from app/common/__fixtures__/prettify/minimal-whitespace-output.json rename to packages/insomnia-app/app/common/__fixtures__/prettify/minimal-whitespace-output.json diff --git a/app/common/__fixtures__/prettify/nunjucks-input.json b/packages/insomnia-app/app/common/__fixtures__/prettify/nunjucks-input.json similarity index 100% rename from app/common/__fixtures__/prettify/nunjucks-input.json rename to packages/insomnia-app/app/common/__fixtures__/prettify/nunjucks-input.json diff --git a/app/common/__fixtures__/prettify/nunjucks-output.json b/packages/insomnia-app/app/common/__fixtures__/prettify/nunjucks-output.json similarity index 100% rename from app/common/__fixtures__/prettify/nunjucks-output.json rename to packages/insomnia-app/app/common/__fixtures__/prettify/nunjucks-output.json diff --git a/app/common/__fixtures__/prettify/precision-input.json b/packages/insomnia-app/app/common/__fixtures__/prettify/precision-input.json similarity index 100% rename from app/common/__fixtures__/prettify/precision-input.json rename to packages/insomnia-app/app/common/__fixtures__/prettify/precision-input.json diff --git a/app/common/__fixtures__/prettify/precision-output.json b/packages/insomnia-app/app/common/__fixtures__/prettify/precision-output.json similarity index 100% rename from app/common/__fixtures__/prettify/precision-output.json rename to packages/insomnia-app/app/common/__fixtures__/prettify/precision-output.json diff --git a/app/common/__fixtures__/prettify/root-array-input.json b/packages/insomnia-app/app/common/__fixtures__/prettify/root-array-input.json similarity index 100% rename from app/common/__fixtures__/prettify/root-array-input.json rename to packages/insomnia-app/app/common/__fixtures__/prettify/root-array-input.json diff --git a/app/common/__fixtures__/prettify/root-array-output.json b/packages/insomnia-app/app/common/__fixtures__/prettify/root-array-output.json similarity index 100% rename from app/common/__fixtures__/prettify/root-array-output.json rename to packages/insomnia-app/app/common/__fixtures__/prettify/root-array-output.json diff --git a/app/common/__fixtures__/prettify/root-string-input.json b/packages/insomnia-app/app/common/__fixtures__/prettify/root-string-input.json similarity index 100% rename from app/common/__fixtures__/prettify/root-string-input.json rename to packages/insomnia-app/app/common/__fixtures__/prettify/root-string-input.json diff --git a/app/common/__fixtures__/prettify/root-string-output.json b/packages/insomnia-app/app/common/__fixtures__/prettify/root-string-output.json similarity index 100% rename from app/common/__fixtures__/prettify/root-string-output.json rename to packages/insomnia-app/app/common/__fixtures__/prettify/root-string-output.json diff --git a/app/common/__fixtures__/prettify/trailing-comma-input.json b/packages/insomnia-app/app/common/__fixtures__/prettify/trailing-comma-input.json similarity index 100% rename from app/common/__fixtures__/prettify/trailing-comma-input.json rename to packages/insomnia-app/app/common/__fixtures__/prettify/trailing-comma-input.json diff --git a/app/common/__fixtures__/prettify/trailing-comma-output.json b/packages/insomnia-app/app/common/__fixtures__/prettify/trailing-comma-output.json similarity index 100% rename from app/common/__fixtures__/prettify/trailing-comma-output.json rename to packages/insomnia-app/app/common/__fixtures__/prettify/trailing-comma-output.json diff --git a/app/common/__fixtures__/prettify/unquoted-strings-input.json b/packages/insomnia-app/app/common/__fixtures__/prettify/unquoted-strings-input.json similarity index 100% rename from app/common/__fixtures__/prettify/unquoted-strings-input.json rename to packages/insomnia-app/app/common/__fixtures__/prettify/unquoted-strings-input.json diff --git a/app/common/__fixtures__/prettify/unquoted-strings-output.json b/packages/insomnia-app/app/common/__fixtures__/prettify/unquoted-strings-output.json similarity index 100% rename from app/common/__fixtures__/prettify/unquoted-strings-output.json rename to packages/insomnia-app/app/common/__fixtures__/prettify/unquoted-strings-output.json diff --git a/app/common/__tests__/analytics.test.js b/packages/insomnia-app/app/common/__tests__/analytics.test.js similarity index 100% rename from app/common/__tests__/analytics.test.js rename to packages/insomnia-app/app/common/__tests__/analytics.test.js diff --git a/app/common/__tests__/constants.test.js b/packages/insomnia-app/app/common/__tests__/constants.test.js similarity index 100% rename from app/common/__tests__/constants.test.js rename to packages/insomnia-app/app/common/__tests__/constants.test.js diff --git a/app/common/__tests__/database.test.js b/packages/insomnia-app/app/common/__tests__/database.test.js similarity index 100% rename from app/common/__tests__/database.test.js rename to packages/insomnia-app/app/common/__tests__/database.test.js diff --git a/app/common/__tests__/har.test.js b/packages/insomnia-app/app/common/__tests__/har.test.js similarity index 100% rename from app/common/__tests__/har.test.js rename to packages/insomnia-app/app/common/__tests__/har.test.js diff --git a/app/common/__tests__/import.test.js b/packages/insomnia-app/app/common/__tests__/import.test.js similarity index 100% rename from app/common/__tests__/import.test.js rename to packages/insomnia-app/app/common/__tests__/import.test.js diff --git a/app/common/__tests__/local-storage.test.js b/packages/insomnia-app/app/common/__tests__/local-storage.test.js similarity index 100% rename from app/common/__tests__/local-storage.test.js rename to packages/insomnia-app/app/common/__tests__/local-storage.test.js diff --git a/packages/insomnia-app/app/common/__tests__/misc.test.js b/packages/insomnia-app/app/common/__tests__/misc.test.js new file mode 100644 index 0000000000..d5abb7cf5a --- /dev/null +++ b/packages/insomnia-app/app/common/__tests__/misc.test.js @@ -0,0 +1,108 @@ +import * as misc from '../misc'; +import {globalBeforeEach} from '../../__jest__/before-each'; + +describe('hasAuthHeader()', () => { + beforeEach(globalBeforeEach); + it('finds valid header', () => { + const yes = misc.hasAuthHeader([ + {name: 'foo', value: 'bar'}, + {name: 'authorization', value: 'foo'} + ]); + + expect(yes).toEqual(true); + }); + + it('finds valid header case insensitive', () => { + const yes = misc.hasAuthHeader([ + {name: 'foo', value: 'bar'}, + {name: 'AuthOrizAtiOn', value: 'foo'} + ]); + + expect(yes).toEqual(true); + }); +}); + +describe('generateId()', () => { + beforeEach(globalBeforeEach); + it('generates a valid ID', () => { + const id = misc.generateId('foo'); + expect(id).toMatch(/^foo_[a-z0-9]{32}$/); + }); + + it('generates without prefix', () => { + const id = misc.generateId(); + expect(id).toMatch(/^[a-z0-9]{32}$/); + }); +}); + +describe('filterHeaders()', () => { + beforeEach(globalBeforeEach); + it('handles bad headers', () => { + expect(misc.filterHeaders(null, null)).toEqual([]); + expect(misc.filterHeaders([], null)).toEqual([]); + expect(misc.filterHeaders(['bad'], null)).toEqual([]); + expect(misc.filterHeaders(['bad'], 'good')).toEqual([]); + expect(misc.filterHeaders(null, 'good')).toEqual([]); + expect(misc.filterHeaders([{name: 'good', value: 'valid'}], null)).toEqual([]); + expect(misc.filterHeaders([{name: 'good', value: 'valid'}], 'good')) + .toEqual([{name: 'good', value: 'valid'}]); + }); +}); + +describe('keyedDebounce()', () => { + beforeEach(async () => { + await globalBeforeEach(); + jest.useFakeTimers(); + }); + + it('debounces correctly', () => { + const resultsList = []; + const fn = misc.keyedDebounce(results => { + resultsList.push(results); + }, 100); + + fn('foo', 'bar'); + fn('baz', 'bar'); + fn('foo', 'bar2'); + fn('foo', 'bar3'); + fn('multi', 'foo', 'bar', 'baz'); + + expect(setTimeout.mock.calls.length).toBe(5); + expect(resultsList).toEqual([]); + + jest.runAllTimers(); + + expect(resultsList).toEqual([{ + foo: ['bar3'], + baz: ['bar'], + multi: ['foo', 'bar', 'baz'] + }]); + }); +}); + +describe('debounce()', () => { + beforeEach(async () => { + await globalBeforeEach(); + jest.useFakeTimers(); + }); + + it('debounces correctly', () => { + const resultList = []; + const fn = misc.debounce((...args) => { + resultList.push(args); + }, 100); + + fn('foo'); + fn('foo'); + fn('multi', 'foo', 'bar', 'baz'); + fn('baz', 'bar'); + fn('foo', 'bar3'); + + expect(setTimeout.mock.calls.length).toBe(5); + expect(resultList).toEqual([]); + + jest.runAllTimers(); + + expect(resultList).toEqual([['foo', 'bar3']]); + }); +}); diff --git a/app/common/__tests__/render.test.js b/packages/insomnia-app/app/common/__tests__/render.test.js similarity index 100% rename from app/common/__tests__/render.test.js rename to packages/insomnia-app/app/common/__tests__/render.test.js diff --git a/app/common/analytics.js b/packages/insomnia-app/app/common/analytics.js similarity index 96% rename from app/common/analytics.js rename to packages/insomnia-app/app/common/analytics.js index 3e65db3763..8246573023 100644 --- a/app/common/analytics.js +++ b/packages/insomnia-app/app/common/analytics.js @@ -1,11 +1,11 @@ // @flow import * as models from '../models/index'; +import {buildQueryStringFromParams, joinUrlAndQueryString} from 'insomnia-url'; import * as electron from 'electron'; import uuid from 'uuid'; import {GA_ID, GA_LOCATION, getAppPlatform, getAppVersion, isDevelopment} from './constants'; import {getAccountId} from '../sync/session'; import type {RequestParameter} from '../models/request'; -import * as querystring from './querystring'; import {getScreenResolution, getUserLanguage, getViewportSize} from './misc'; const DIMENSION_PLATFORM = 1; @@ -137,11 +137,11 @@ async function _sendToGoogle (params: Array) { const baseParams = await _getDefaultParams(); const allParams = [...baseParams, ...params]; - const qs = querystring.buildFromParams(allParams); + const qs = buildQueryStringFromParams(allParams); const baseUrl = isDevelopment() ? 'https://www.google-analytics.com/debug/collect' : 'https://www.google-analytics.com/collect'; - const url = querystring.joinUrl(baseUrl, qs); + const url = joinUrlAndQueryString(baseUrl, qs); const net = (electron.remote || electron).net; const request = net.request(url); diff --git a/app/common/constants.js b/packages/insomnia-app/app/common/constants.js similarity index 100% rename from app/common/constants.js rename to packages/insomnia-app/app/common/constants.js diff --git a/app/common/database.js b/packages/insomnia-app/app/common/database.js similarity index 100% rename from app/common/database.js rename to packages/insomnia-app/app/common/database.js diff --git a/app/common/fetch.js b/packages/insomnia-app/app/common/fetch.js similarity index 100% rename from app/common/fetch.js rename to packages/insomnia-app/app/common/fetch.js diff --git a/app/common/har.js b/packages/insomnia-app/app/common/har.js similarity index 98% rename from app/common/har.js rename to packages/insomnia-app/app/common/har.js index 26c94b695a..018cfd1a9a 100644 --- a/app/common/har.js +++ b/packages/insomnia-app/app/common/har.js @@ -4,7 +4,7 @@ import {Cookie as toughCookie} from 'tough-cookie'; import * as models from '../models'; import {getRenderedRequest} from './render'; import type {RenderedRequest} from './render'; -import {jarFromCookies} from './cookies'; +import {jarFromCookies} from 'insomnia-cookies'; import * as misc from './misc'; import type {Cookie} from '../models/cookie-jar'; import {newBodyRaw} from '../models/request'; @@ -13,6 +13,7 @@ import type {Response as ResponseModel} from '../models/response'; import {getAuthHeader} from '../network/authentication'; import {getAppVersion} from './constants'; import {RenderError} from '../templating/index'; +import {smartEncodeUrl} from 'insomnia-url'; export type HarCookie = { name: string, @@ -288,7 +289,7 @@ export async function exportHarWithRenderedRequest ( renderedRequest: RenderedRequest, addContentLength: boolean = false ): Promise { - const url = misc.prepareUrlForSending(renderedRequest.url, renderedRequest.settingEncodeUrl); + const url = smartEncodeUrl(renderedRequest.url, renderedRequest.settingEncodeUrl); if (addContentLength) { const hasContentLengthHeader = misc.filterHeaders( diff --git a/app/common/hotkeys.js b/packages/insomnia-app/app/common/hotkeys.js similarity index 100% rename from app/common/hotkeys.js rename to packages/insomnia-app/app/common/hotkeys.js diff --git a/app/common/import.js b/packages/insomnia-app/app/common/import.js similarity index 100% rename from app/common/import.js rename to packages/insomnia-app/app/common/import.js diff --git a/app/common/keycodes.js b/packages/insomnia-app/app/common/keycodes.js similarity index 100% rename from app/common/keycodes.js rename to packages/insomnia-app/app/common/keycodes.js diff --git a/app/common/markdown-to-html.js b/packages/insomnia-app/app/common/markdown-to-html.js similarity index 100% rename from app/common/markdown-to-html.js rename to packages/insomnia-app/app/common/markdown-to-html.js diff --git a/app/common/misc.js b/packages/insomnia-app/app/common/misc.js similarity index 69% rename from app/common/misc.js rename to packages/insomnia-app/app/common/misc.js index 550b4cbb59..fe829974d0 100644 --- a/app/common/misc.js +++ b/packages/insomnia-app/app/common/misc.js @@ -1,14 +1,12 @@ // @flow import * as electron from 'electron'; import {Readable, Writable} from 'stream'; +import {joinUrlAndQueryString} from 'insomnia-url'; import uuid from 'uuid'; import zlib from 'zlib'; import {join as pathJoin} from 'path'; -import {format as urlFormat, parse as urlParse} from 'url'; import {DEBOUNCE_MILLIS, getAppVersion, isDevelopment} from './constants'; -import * as querystring from './querystring'; -const URL_PATH_CHARACTER_WHITELIST = '+,;@=:'; const ESCAPE_REGEX_MATCH = /[-[\]/{}()*+?.\\^$|]/g; type Header = { @@ -16,20 +14,6 @@ type Header = { value: string }; -export function getBasicAuthHeader (username: ?string, password: ?string): Header { - const name = 'Authorization'; - const header = `${username || ''}:${password || ''}`; - const authString = Buffer.from(header, 'utf8').toString('base64'); - const value = `Basic ${authString}`; - return {name, value}; -} - -export function getBearerAuthHeader (token: string): Header { - const name = 'Authorization'; - const value = `Bearer ${token}`; - return {name, value}; -} - export function filterHeaders (headers: Array, name: string): Array { if (!Array.isArray(headers) || !name) { return []; @@ -92,20 +76,6 @@ export function getContentLengthHeader (headers: Array): T | null return matches.length ? matches[0] : null; } -export function setDefaultProtocol (url: string, defaultProto: string = 'http:'): string { - // If no url, don't bother returning anything - if (!url) { - return ''; - } - - // Default the proto if it doesn't exist - if (url.indexOf('://') === -1) { - url = `${defaultProto}//${url}`; - } - - return url; -} - /** * Generate an ID of the format "_" * @param prefix @@ -121,84 +91,6 @@ export function generateId (prefix: string): string { } } -export function flexibleEncodeComponent (str: string, ignore: string = ''): string { - // Sometimes spaces screw things up because of url.parse - str = str.replace(/%20/g, ' '); - - // Handle all already-encoded characters so we don't touch them - str = str.replace(/%([0-9a-fA-F]{2})/g, '__ENC__$1'); - - // Do a special encode of ignored chars, so they aren't touched. - // This first pass, surrounds them with a special tag (anything unique - // will work), so it can change them back later - // Example: will replace %40 with __LEAVE_40_LEAVE__, and we'll change - // it back to %40 at the end. - for (const c of ignore) { - const code = encodeURIComponent(c).replace('%', ''); - const re2 = new RegExp(escapeRegex(c), 'g'); - str = str.replace(re2, `__RAW__${code}`); - } - - // Encode it - str = encodeURIComponent(str); - - // Put back the raw version of the ignored chars - for (const match of str.match(/__RAW__([0-9a-fA-F]{2})/g) || []) { - const code = match.replace('__RAW__', ''); - str = str.replace(match, decodeURIComponent(`%${code}`)); - } - - // Put back the encoded version of the ignored chars - for (const match of str.match(/__ENC__([0-9a-fA-F]{2})/g) || []) { - const code = match.replace('__ENC__', ''); - str = str.replace(match, `%${code}`); - } - - return str; -} - -export function prepareUrlForSending (url: string, autoEncode: boolean = true): string { - const urlWithProto = setDefaultProtocol(url); - - if (!autoEncode) { - return urlWithProto; - } else { - // Parse the URL into components - const parsedUrl = urlParse(urlWithProto); - - // ~~~~~~~~~~~ // - // 1. Pathname // - // ~~~~~~~~~~~ // - - if (parsedUrl.pathname) { - const segments = parsedUrl.pathname.split('/'); - parsedUrl.pathname = segments.map( - s => flexibleEncodeComponent(s, URL_PATH_CHARACTER_WHITELIST) - ).join('/'); - } - - // ~~~~~~~~~~~~~~ // - // 2. Querystring // - // ~~~~~~~~~~~~~~ // - - if (parsedUrl.query) { - const qsParams = querystring.deconstructToParams(parsedUrl.query); - const encodedQsParams = []; - for (const {name, value} of qsParams) { - encodedQsParams.push({ - name: flexibleEncodeComponent(name), - value: flexibleEncodeComponent(value) - }); - } - - parsedUrl.query = querystring.buildFromParams(encodedQsParams); - parsedUrl.search = `?${parsedUrl.query}`; - } - - return urlFormat(parsedUrl); - } -} - export function delay (milliseconds: number = DEBOUNCE_MILLIS): Promise { return new Promise(resolve => setTimeout(resolve, milliseconds)); } @@ -271,7 +163,7 @@ export function attributeHref (href: string): string { if (href.match(/^http/i)) { const appName = isDevelopment() ? 'Insomnia Dev' : 'Insomnia'; const qs = `utm_source=${appName}&utm_medium=app&utm_campaign=v${getAppVersion()}`; - return querystring.joinUrl(href, qs); + return joinUrlAndQueryString(href, qs); } else { // Don't modify non-http urls return href; diff --git a/app/common/render.js b/packages/insomnia-app/app/common/render.js similarity index 99% rename from app/common/render.js rename to packages/insomnia-app/app/common/render.js index ab36257ab5..661a5680f2 100644 --- a/app/common/render.js +++ b/packages/insomnia-app/app/common/render.js @@ -2,9 +2,9 @@ import type {Request} from '../models/request'; import type {BaseModel} from '../models/index'; +import {setDefaultProtocol} from 'insomnia-url'; import clone from 'clone'; import * as models from '../models'; -import {setDefaultProtocol} from './misc'; import * as db from './database'; import * as templating from '../templating'; import type {CookieJar} from '../models/cookie-jar'; diff --git a/app/datasets/access-token-urls.js b/packages/insomnia-app/app/datasets/access-token-urls.js similarity index 100% rename from app/datasets/access-token-urls.js rename to packages/insomnia-app/app/datasets/access-token-urls.js diff --git a/app/datasets/authorization-urls.js b/packages/insomnia-app/app/datasets/authorization-urls.js similarity index 100% rename from app/datasets/authorization-urls.js rename to packages/insomnia-app/app/datasets/authorization-urls.js diff --git a/app/datasets/charsets.js b/packages/insomnia-app/app/datasets/charsets.js similarity index 100% rename from app/datasets/charsets.js rename to packages/insomnia-app/app/datasets/charsets.js diff --git a/app/datasets/content-types.js b/packages/insomnia-app/app/datasets/content-types.js similarity index 100% rename from app/datasets/content-types.js rename to packages/insomnia-app/app/datasets/content-types.js diff --git a/app/datasets/encodings.js b/packages/insomnia-app/app/datasets/encodings.js similarity index 100% rename from app/datasets/encodings.js rename to packages/insomnia-app/app/datasets/encodings.js diff --git a/app/datasets/header-names.js b/packages/insomnia-app/app/datasets/header-names.js similarity index 100% rename from app/datasets/header-names.js rename to packages/insomnia-app/app/datasets/header-names.js diff --git a/app/icons/icon.icns b/packages/insomnia-app/app/icons/icon.icns similarity index 100% rename from app/icons/icon.icns rename to packages/insomnia-app/app/icons/icon.icns diff --git a/app/icons/icon.ico b/packages/insomnia-app/app/icons/icon.ico similarity index 100% rename from app/icons/icon.ico rename to packages/insomnia-app/app/icons/icon.ico diff --git a/app/icons/install-spinner.gif b/packages/insomnia-app/app/icons/install-spinner.gif similarity index 100% rename from app/icons/install-spinner.gif rename to packages/insomnia-app/app/icons/install-spinner.gif diff --git a/app/main.development.js b/packages/insomnia-app/app/main.development.js similarity index 100% rename from app/main.development.js rename to packages/insomnia-app/app/main.development.js diff --git a/app/main/error-handling.js b/packages/insomnia-app/app/main/error-handling.js similarity index 100% rename from app/main/error-handling.js rename to packages/insomnia-app/app/main/error-handling.js diff --git a/app/main/local-storage.js b/packages/insomnia-app/app/main/local-storage.js similarity index 100% rename from app/main/local-storage.js rename to packages/insomnia-app/app/main/local-storage.js diff --git a/app/main/updates.js b/packages/insomnia-app/app/main/updates.js similarity index 94% rename from app/main/updates.js rename to packages/insomnia-app/app/main/updates.js index 4b493009fa..998d279090 100644 --- a/app/main/updates.js +++ b/packages/insomnia-app/app/main/updates.js @@ -2,7 +2,7 @@ import electron from 'electron'; import {CHECK_FOR_UPDATES_INTERVAL, getAppVersion, isDevelopment, UPDATE_URL_MAC, UPDATE_URL_WINDOWS} from '../common/constants'; import * as models from '../models/index'; -import * as querystring from '../common/querystring'; +import {buildQueryStringFromParams, joinUrlAndQueryString} from 'insomnia-url'; import {delay} from '../common/misc'; const {autoUpdater, BrowserWindow, ipcMain} = electron; @@ -25,8 +25,8 @@ async function getUpdateUrl (force: boolean): Promise { {name: 'channel', value: settings.updateChannel} ]; - const qs = querystring.buildFromParams(params); - const fullUrl = querystring.joinUrl(updateUrl, qs); + const qs = buildQueryStringFromParams(params); + const fullUrl = joinUrlAndQueryString(updateUrl, qs); console.log(`[updater] Using url ${fullUrl}`); if (isDevelopment()) { diff --git a/app/main/window-utils.js b/packages/insomnia-app/app/main/window-utils.js similarity index 99% rename from app/main/window-utils.js rename to packages/insomnia-app/app/main/window-utils.js index c5271388d0..2264421210 100644 --- a/app/main/window-utils.js +++ b/packages/insomnia-app/app/main/window-utils.js @@ -96,7 +96,7 @@ export function createWindow () { }); // Load the html of the app. - const appUrl = process.env.APP_RENDER_URL || `file://${__dirname}/renderer.html`; + const appUrl = process.env.APP_RENDER_URL || `file://${app.getAppPath()}/renderer.html`; console.log(`[main] Loading ${process.env.APP_RENDER_URL}`); mainWindow.loadURL(appUrl); diff --git a/app/models/__mocks__/uuid.js b/packages/insomnia-app/app/models/__mocks__/uuid.js similarity index 100% rename from app/models/__mocks__/uuid.js rename to packages/insomnia-app/app/models/__mocks__/uuid.js diff --git a/app/models/__tests__/request.test.js b/packages/insomnia-app/app/models/__tests__/request.test.js similarity index 100% rename from app/models/__tests__/request.test.js rename to packages/insomnia-app/app/models/__tests__/request.test.js diff --git a/app/models/__tests__/response.test.js b/packages/insomnia-app/app/models/__tests__/response.test.js similarity index 100% rename from app/models/__tests__/response.test.js rename to packages/insomnia-app/app/models/__tests__/response.test.js diff --git a/app/models/__tests__/workspace.test.js b/packages/insomnia-app/app/models/__tests__/workspace.test.js similarity index 100% rename from app/models/__tests__/workspace.test.js rename to packages/insomnia-app/app/models/__tests__/workspace.test.js diff --git a/app/models/client-certificate.js b/packages/insomnia-app/app/models/client-certificate.js similarity index 100% rename from app/models/client-certificate.js rename to packages/insomnia-app/app/models/client-certificate.js diff --git a/app/models/cookie-jar.js b/packages/insomnia-app/app/models/cookie-jar.js similarity index 100% rename from app/models/cookie-jar.js rename to packages/insomnia-app/app/models/cookie-jar.js diff --git a/app/models/environment.js b/packages/insomnia-app/app/models/environment.js similarity index 100% rename from app/models/environment.js rename to packages/insomnia-app/app/models/environment.js diff --git a/app/models/index.js b/packages/insomnia-app/app/models/index.js similarity index 100% rename from app/models/index.js rename to packages/insomnia-app/app/models/index.js diff --git a/app/models/o-auth-2-token.js b/packages/insomnia-app/app/models/o-auth-2-token.js similarity index 100% rename from app/models/o-auth-2-token.js rename to packages/insomnia-app/app/models/o-auth-2-token.js diff --git a/app/models/request-group-meta.js b/packages/insomnia-app/app/models/request-group-meta.js similarity index 100% rename from app/models/request-group-meta.js rename to packages/insomnia-app/app/models/request-group-meta.js diff --git a/app/models/request-group.js b/packages/insomnia-app/app/models/request-group.js similarity index 100% rename from app/models/request-group.js rename to packages/insomnia-app/app/models/request-group.js diff --git a/app/models/request-meta.js b/packages/insomnia-app/app/models/request-meta.js similarity index 100% rename from app/models/request-meta.js rename to packages/insomnia-app/app/models/request-meta.js diff --git a/app/models/request-version.js b/packages/insomnia-app/app/models/request-version.js similarity index 100% rename from app/models/request-version.js rename to packages/insomnia-app/app/models/request-version.js diff --git a/app/models/request.js b/packages/insomnia-app/app/models/request.js similarity index 96% rename from app/models/request.js rename to packages/insomnia-app/app/models/request.js index 243f7d5640..96819fbc8f 100644 --- a/app/models/request.js +++ b/packages/insomnia-app/app/models/request.js @@ -3,7 +3,7 @@ import type {BaseModel} from './index'; import {AUTH_BASIC, AUTH_DIGEST, AUTH_NONE, AUTH_NTLM, AUTH_OAUTH_1, AUTH_OAUTH_2, AUTH_HAWK, AUTH_AWS_IAM, AUTH_NETRC, AUTH_ASAP, CONTENT_TYPE_FILE, CONTENT_TYPE_FORM_DATA, CONTENT_TYPE_FORM_URLENCODED, CONTENT_TYPE_OTHER, getContentTypeFromHeaders, METHOD_GET, CONTENT_TYPE_GRAPHQL, CONTENT_TYPE_JSON, METHOD_POST, HAWK_ALGORITHM_SHA256} from '../common/constants'; import * as db from '../common/database'; import {getContentTypeHeader} from '../common/misc'; -import {buildFromParams, deconstructToParams} from '../common/querystring'; +import {buildQueryStringFromParams, deconstructQueryStringToParams} from 'insomnia-url'; import {GRANT_TYPE_AUTHORIZATION_CODE} from '../network/o-auth-2/constants'; import {SIGNATURE_METHOD_HMAC_SHA1} from '../network/o-auth-1/constants'; @@ -290,12 +290,12 @@ export function updateMimeType ( // Urlencoded body = request.body.params ? newBodyFormUrlEncoded(request.body.params) - : newBodyFormUrlEncoded(deconstructToParams(request.body.text)); + : newBodyFormUrlEncoded(deconstructQueryStringToParams(request.body.text)); } else if (mimeType === CONTENT_TYPE_FORM_DATA) { // Form Data body = request.body.params ? newBodyForm(request.body.params) - : newBodyForm(deconstructToParams(request.body.text)); + : newBodyForm(deconstructQueryStringToParams(request.body.text)); } else if (mimeType === CONTENT_TYPE_FILE) { // File body = newBodyFile(''); @@ -310,7 +310,7 @@ export function updateMimeType ( } else { // Raw Content-Type (ex: application/json) body = request.body.params - ? newBodyRaw(buildFromParams(request.body.params, false), mimeType) + ? newBodyRaw(buildQueryStringFromParams(request.body.params, false), mimeType) : newBodyRaw(request.body.text || '', mimeType); } @@ -370,7 +370,7 @@ function migrateBody (request: Request): Request { if (wasFormUrlEncoded) { // Convert old-style form-encoded request bodies to new style const body = typeof request.body === 'string' ? request.body : ''; - request.body = newBodyFormUrlEncoded(deconstructToParams(body, false)); + request.body = newBodyFormUrlEncoded(deconstructQueryStringToParams(body, false)); } else if (!request.body && !contentType) { request.body = {}; } else { diff --git a/app/models/response.js b/packages/insomnia-app/app/models/response.js similarity index 100% rename from app/models/response.js rename to packages/insomnia-app/app/models/response.js diff --git a/app/models/settings.js b/packages/insomnia-app/app/models/settings.js similarity index 100% rename from app/models/settings.js rename to packages/insomnia-app/app/models/settings.js diff --git a/app/models/stats.js b/packages/insomnia-app/app/models/stats.js similarity index 100% rename from app/models/stats.js rename to packages/insomnia-app/app/models/stats.js diff --git a/app/models/workspace-meta.js b/packages/insomnia-app/app/models/workspace-meta.js similarity index 100% rename from app/models/workspace-meta.js rename to packages/insomnia-app/app/models/workspace-meta.js diff --git a/app/models/workspace.js b/packages/insomnia-app/app/models/workspace.js similarity index 100% rename from app/models/workspace.js rename to packages/insomnia-app/app/models/workspace.js diff --git a/app/network/__tests__/authentication.test.js b/packages/insomnia-app/app/network/__tests__/authentication.test.js similarity index 100% rename from app/network/__tests__/authentication.test.js rename to packages/insomnia-app/app/network/__tests__/authentication.test.js diff --git a/app/network/__tests__/certificate-url-parse.test.js b/packages/insomnia-app/app/network/__tests__/certificate-url-parse.test.js similarity index 100% rename from app/network/__tests__/certificate-url-parse.test.js rename to packages/insomnia-app/app/network/__tests__/certificate-url-parse.test.js diff --git a/app/network/__tests__/multipart.test.js b/packages/insomnia-app/app/network/__tests__/multipart.test.js similarity index 100% rename from app/network/__tests__/multipart.test.js rename to packages/insomnia-app/app/network/__tests__/multipart.test.js diff --git a/app/network/__tests__/network.test.js b/packages/insomnia-app/app/network/__tests__/network.test.js similarity index 100% rename from app/network/__tests__/network.test.js rename to packages/insomnia-app/app/network/__tests__/network.test.js diff --git a/app/network/__tests__/testfile.txt b/packages/insomnia-app/app/network/__tests__/testfile.txt similarity index 100% rename from app/network/__tests__/testfile.txt rename to packages/insomnia-app/app/network/__tests__/testfile.txt diff --git a/app/network/__tests__/url-matches-cert-host.test.js b/packages/insomnia-app/app/network/__tests__/url-matches-cert-host.test.js similarity index 100% rename from app/network/__tests__/url-matches-cert-host.test.js rename to packages/insomnia-app/app/network/__tests__/url-matches-cert-host.test.js diff --git a/app/network/authentication.js b/packages/insomnia-app/app/network/authentication.js similarity index 89% rename from app/network/authentication.js rename to packages/insomnia-app/app/network/authentication.js index e04c191953..5aa40310d1 100644 --- a/app/network/authentication.js +++ b/packages/insomnia-app/app/network/authentication.js @@ -1,11 +1,12 @@ // @flow import {AUTH_ASAP, AUTH_BASIC, AUTH_BEARER, AUTH_HAWK, AUTH_OAUTH_1, AUTH_OAUTH_2} from '../common/constants'; -import {getBasicAuthHeader, getBearerAuthHeader} from '../common/misc'; import getOAuth2Token from './o-auth-2/get-token'; import getOAuth1Token from './o-auth-1/get-token'; import * as Hawk from 'hawk'; import jwtAuthentication from 'jwt-authentication'; import type {RequestAuthentication} from '../models/request'; +import {getBasicAuthHeader} from './basic-auth/get-header'; +import {getBearerAuthHeader} from './bearer-auth/get-header'; type Header = { name: string, @@ -56,13 +57,7 @@ export async function getAuthHeader ( if (authentication.type === AUTH_HAWK) { const {id, key, algorithm} = authentication; - - const header = Hawk.client.header( - url, - method, - {credentials: {id, key, algorithm}} - ); - + const header = Hawk.client.header(url, method, {credentials: {id, key, algorithm}}); return { name: 'Authorization', value: header.field @@ -73,13 +68,7 @@ export async function getAuthHeader ( const {issuer, subject, audience, keyId, privateKey} = authentication; const generator = jwtAuthentication.client.create(); - - const claims = { - iss: issuer, - sub: subject, - aud: audience - }; - + const claims = {iss: issuer, sub: subject, aud: audience}; const options = { privateKey, kid: keyId diff --git a/packages/insomnia-app/app/network/basic-auth/__tests__/get-header.test.js b/packages/insomnia-app/app/network/basic-auth/__tests__/get-header.test.js new file mode 100644 index 0000000000..eee7c99714 --- /dev/null +++ b/packages/insomnia-app/app/network/basic-auth/__tests__/get-header.test.js @@ -0,0 +1,37 @@ +import {globalBeforeEach} from '../../../__jest__/before-each'; +import {getBasicAuthHeader} from '../get-header'; + +describe('getBasicAuthHeader()', () => { + beforeEach(globalBeforeEach); + it('succeed with username and password', () => { + const header = getBasicAuthHeader('user', 'password'); + expect(header).toEqual({ + name: 'Authorization', + value: 'Basic dXNlcjpwYXNzd29yZA==' + }); + }); + + it('succeed with no username', () => { + const header = getBasicAuthHeader(null, 'password'); + expect(header).toEqual({ + name: 'Authorization', + value: 'Basic OnBhc3N3b3Jk' + }); + }); + + it('succeed with username and empty password', () => { + const header = getBasicAuthHeader('user', ''); + expect(header).toEqual({ + name: 'Authorization', + value: 'Basic dXNlcjo=' + }); + }); + + it('succeed with username and null password', () => { + const header = getBasicAuthHeader('user', null); + expect(header).toEqual({ + name: 'Authorization', + value: 'Basic dXNlcjo=' + }); + }); +}); diff --git a/packages/insomnia-app/app/network/basic-auth/get-header.js b/packages/insomnia-app/app/network/basic-auth/get-header.js new file mode 100644 index 0000000000..7e9b8ded93 --- /dev/null +++ b/packages/insomnia-app/app/network/basic-auth/get-header.js @@ -0,0 +1,11 @@ +// @flow + +import type {RequestHeader} from '../../models/request'; + +export function getBasicAuthHeader (username: ?string, password: ?string): RequestHeader { + const name = 'Authorization'; + const header = `${username || ''}:${password || ''}`; + const authString = Buffer.from(header, 'utf8').toString('base64'); + const value = `Basic ${authString}`; + return {name, value}; +} diff --git a/packages/insomnia-app/app/network/bearer-auth/get-header.js b/packages/insomnia-app/app/network/bearer-auth/get-header.js new file mode 100644 index 0000000000..88d4586869 --- /dev/null +++ b/packages/insomnia-app/app/network/bearer-auth/get-header.js @@ -0,0 +1,8 @@ +// @flow +import type {RequestHeader} from '../../models/request'; + +export function getBearerAuthHeader (token: string): RequestHeader { + const name = 'Authorization'; + const value = `Bearer ${token}`; + return {name, value}; +} diff --git a/app/network/cacert.js b/packages/insomnia-app/app/network/cacert.js similarity index 100% rename from app/network/cacert.js rename to packages/insomnia-app/app/network/cacert.js diff --git a/app/network/certificate-url-parse.js b/packages/insomnia-app/app/network/certificate-url-parse.js similarity index 100% rename from app/network/certificate-url-parse.js rename to packages/insomnia-app/app/network/certificate-url-parse.js diff --git a/app/network/multipart.js b/packages/insomnia-app/app/network/multipart.js similarity index 100% rename from app/network/multipart.js rename to packages/insomnia-app/app/network/multipart.js diff --git a/app/network/network.js b/packages/insomnia-app/app/network/network.js similarity index 98% rename from app/network/network.js rename to packages/insomnia-app/app/network/network.js index edf49ac69a..b27cf0603a 100644 --- a/app/network/network.js +++ b/packages/insomnia-app/app/network/network.js @@ -13,16 +13,16 @@ import {join as pathJoin} from 'path'; import uuid from 'uuid'; import * as electron from 'electron'; import * as models from '../models'; -import * as querystring from '../common/querystring'; import {AUTH_AWS_IAM, AUTH_BASIC, AUTH_DIGEST, AUTH_NETRC, AUTH_NTLM, CONTENT_TYPE_FORM_DATA, CONTENT_TYPE_FORM_URLENCODED, getAppVersion, getTempDir, STATUS_CODE_PLUGIN_ERROR} from '../common/constants'; -import {delay, describeByteSize, getContentTypeHeader, getLocationHeader, getSetCookieHeaders, hasAcceptEncodingHeader, hasAcceptHeader, hasAuthHeader, hasContentTypeHeader, hasUserAgentHeader, prepareUrlForSending, setDefaultProtocol, waitForStreamToFinish} from '../common/misc'; +import {delay, describeByteSize, getContentTypeHeader, getLocationHeader, getSetCookieHeaders, hasAcceptEncodingHeader, hasAcceptHeader, hasAuthHeader, hasContentTypeHeader, hasUserAgentHeader, waitForStreamToFinish} from '../common/misc'; +import {setDefaultProtocol, smartEncodeUrl, buildQueryStringFromParams, joinUrlAndQueryString} from 'insomnia-url'; import fs from 'fs'; import * as db from '../common/database'; import * as CACerts from './cacert'; import * as plugins from '../plugins/index'; import * as pluginContexts from '../plugins/context/index'; import {getAuthHeader} from './authentication'; -import {cookiesFromJar, jarFromCookies} from '../common/cookies'; +import {cookiesFromJar, jarFromCookies} from 'insomnia-cookies'; import {urlMatchesCertHost} from './url-matches-cert-host'; import aws4 from 'aws4'; import {buildMultipart} from './multipart'; @@ -235,10 +235,10 @@ export async function _actuallySend ( }, true); // Set the URL, including the query parameters - const qs = querystring.buildFromParams(renderedRequest.parameters); - const url = querystring.joinUrl(renderedRequest.url, qs); + const qs = buildQueryStringFromParams(renderedRequest.parameters); + const url = joinUrlAndQueryString(renderedRequest.url, qs); const isUnixSocket = url.match(/https?:\/\/unix:\//); - const finalUrl = prepareUrlForSending(url, renderedRequest.settingEncodeUrl); + const finalUrl = smartEncodeUrl(url, renderedRequest.settingEncodeUrl); if (isUnixSocket) { // URL prep will convert "unix:/path" hostname to "unix/path" const match = finalUrl.match(/(https?:)\/\/unix:?(\/[^:]+):\/(.+)/); @@ -405,7 +405,7 @@ export async function _actuallySend ( let requestBody = null; const expectsBody = ['POST', 'PUT', 'PATCH'].includes(renderedRequest.method.toUpperCase()); if (renderedRequest.body.mimeType === CONTENT_TYPE_FORM_URLENCODED) { - requestBody = querystring.buildFromParams(renderedRequest.body.params || [], false); + requestBody = buildQueryStringFromParams(renderedRequest.body.params || [], false); } else if (renderedRequest.body.mimeType === CONTENT_TYPE_FORM_DATA) { const params = renderedRequest.body.params || []; const {filePath: multipartBodyPath, boundary, contentLength} = await buildMultipart(params); diff --git a/app/network/o-auth-1/constants.js b/packages/insomnia-app/app/network/o-auth-1/constants.js similarity index 100% rename from app/network/o-auth-1/constants.js rename to packages/insomnia-app/app/network/o-auth-1/constants.js diff --git a/app/network/o-auth-1/get-token.js b/packages/insomnia-app/app/network/o-auth-1/get-token.js similarity index 100% rename from app/network/o-auth-1/get-token.js rename to packages/insomnia-app/app/network/o-auth-1/get-token.js diff --git a/app/network/o-auth-2/__tests__/grant-authorization-code.test.js b/packages/insomnia-app/app/network/o-auth-2/__tests__/grant-authorization-code.test.js similarity index 100% rename from app/network/o-auth-2/__tests__/grant-authorization-code.test.js rename to packages/insomnia-app/app/network/o-auth-2/__tests__/grant-authorization-code.test.js diff --git a/app/network/o-auth-2/__tests__/grant-client-credentials.test.js b/packages/insomnia-app/app/network/o-auth-2/__tests__/grant-client-credentials.test.js similarity index 100% rename from app/network/o-auth-2/__tests__/grant-client-credentials.test.js rename to packages/insomnia-app/app/network/o-auth-2/__tests__/grant-client-credentials.test.js diff --git a/app/network/o-auth-2/__tests__/grant-implicit.test.js b/packages/insomnia-app/app/network/o-auth-2/__tests__/grant-implicit.test.js similarity index 100% rename from app/network/o-auth-2/__tests__/grant-implicit.test.js rename to packages/insomnia-app/app/network/o-auth-2/__tests__/grant-implicit.test.js diff --git a/app/network/o-auth-2/__tests__/grant-password.test.js b/packages/insomnia-app/app/network/o-auth-2/__tests__/grant-password.test.js similarity index 100% rename from app/network/o-auth-2/__tests__/grant-password.test.js rename to packages/insomnia-app/app/network/o-auth-2/__tests__/grant-password.test.js diff --git a/app/network/o-auth-2/__tests__/helpers.js b/packages/insomnia-app/app/network/o-auth-2/__tests__/helpers.js similarity index 100% rename from app/network/o-auth-2/__tests__/helpers.js rename to packages/insomnia-app/app/network/o-auth-2/__tests__/helpers.js diff --git a/app/network/o-auth-2/constants.js b/packages/insomnia-app/app/network/o-auth-2/constants.js similarity index 100% rename from app/network/o-auth-2/constants.js rename to packages/insomnia-app/app/network/o-auth-2/constants.js diff --git a/app/network/o-auth-2/get-token.js b/packages/insomnia-app/app/network/o-auth-2/get-token.js similarity index 100% rename from app/network/o-auth-2/get-token.js rename to packages/insomnia-app/app/network/o-auth-2/get-token.js diff --git a/app/network/o-auth-2/grant-authorization-code.js b/packages/insomnia-app/app/network/o-auth-2/grant-authorization-code.js similarity index 92% rename from app/network/o-auth-2/grant-authorization-code.js rename to packages/insomnia-app/app/network/o-auth-2/grant-authorization-code.js index 9a69687e05..ffbb417452 100644 --- a/app/network/o-auth-2/grant-authorization-code.js +++ b/packages/insomnia-app/app/network/o-auth-2/grant-authorization-code.js @@ -1,11 +1,12 @@ // @flow import {parse as urlParse} from 'url'; -import * as querystring from '../../common/querystring'; import * as c from './constants'; +import {buildQueryStringFromParams, joinUrlAndQueryString} from 'insomnia-url'; import {authorizeUserInWindow, responseToObject} from './misc'; -import {escapeRegex, getBasicAuthHeader} from '../../common/misc'; +import {escapeRegex} from '../../common/misc'; import * as models from '../../models/index'; import {sendWithSettings} from '../network'; +import {getBasicAuthHeader} from '../basic-auth/get-header'; export default async function ( requestId: string, @@ -62,8 +63,8 @@ async function _authorize (url, clientId, redirectUri = '', scope = '', state = state && params.push({name: c.P_STATE, value: state}); // Add query params to URL - const qs = querystring.buildFromParams(params); - const finalUrl = querystring.joinUrl(url, qs); + const qs = buildQueryStringFromParams(params); + const finalUrl = joinUrlAndQueryString(url, qs); const regex = new RegExp(`${escapeRegex(redirectUri)}.*(code=|error=)`, 'i'); const redirectedTo = await authorizeUserInWindow(finalUrl, regex); diff --git a/app/network/o-auth-2/grant-client-credentials.js b/packages/insomnia-app/app/network/o-auth-2/grant-client-credentials.js similarity index 94% rename from app/network/o-auth-2/grant-client-credentials.js rename to packages/insomnia-app/app/network/o-auth-2/grant-client-credentials.js index ad232700b1..9e7ff59191 100644 --- a/app/network/o-auth-2/grant-client-credentials.js +++ b/packages/insomnia-app/app/network/o-auth-2/grant-client-credentials.js @@ -1,9 +1,10 @@ // @flow -import {getBasicAuthHeader, setDefaultProtocol} from '../../common/misc'; +import {setDefaultProtocol} from 'insomnia-url'; import * as c from './constants'; import {responseToObject} from './misc'; import {sendWithSettings} from '../network'; import * as models from '../../models/index'; +import {getBasicAuthHeader} from '../basic-auth/get-header'; export default async function ( requestId: string, diff --git a/app/network/o-auth-2/grant-implicit.js b/packages/insomnia-app/app/network/o-auth-2/grant-implicit.js similarity index 85% rename from app/network/o-auth-2/grant-implicit.js rename to packages/insomnia-app/app/network/o-auth-2/grant-implicit.js index 728e3c3553..e491abfc20 100644 --- a/app/network/o-auth-2/grant-implicit.js +++ b/packages/insomnia-app/app/network/o-auth-2/grant-implicit.js @@ -1,6 +1,6 @@ // @flow -import * as querystring from '../../common/querystring'; import * as c from './constants'; +import {buildQueryStringFromParams, joinUrlAndQueryString} from 'insomnia-url'; import {responseToObject, authorizeUserInWindow} from './misc'; export default async function ( @@ -22,8 +22,8 @@ export default async function ( state && params.push({name: c.P_STATE, value: state}); // Add query params to URL - const qs = querystring.buildFromParams(params); - const finalUrl = querystring.joinUrl(authorizationUrl, qs); + const qs = buildQueryStringFromParams(params); + const finalUrl = joinUrlAndQueryString(authorizationUrl, qs); const redirectedTo = await authorizeUserInWindow(finalUrl, /(access_token=|error=)/); const fragment = redirectedTo.split('#')[1]; diff --git a/app/network/o-auth-2/grant-password.js b/packages/insomnia-app/app/network/o-auth-2/grant-password.js similarity index 94% rename from app/network/o-auth-2/grant-password.js rename to packages/insomnia-app/app/network/o-auth-2/grant-password.js index 6cd78554b8..ee25dde69b 100644 --- a/app/network/o-auth-2/grant-password.js +++ b/packages/insomnia-app/app/network/o-auth-2/grant-password.js @@ -1,9 +1,10 @@ // @flow -import {getBasicAuthHeader, setDefaultProtocol} from '../../common/misc'; +import {setDefaultProtocol} from 'insomnia-url'; import * as c from './constants'; import {responseToObject} from './misc'; import * as network from '../network'; import * as models from '../../models/index'; +import {getBasicAuthHeader} from '../basic-auth/get-header'; export default async function ( requestId: string, diff --git a/app/network/o-auth-2/misc.js b/packages/insomnia-app/app/network/o-auth-2/misc.js similarity index 100% rename from app/network/o-auth-2/misc.js rename to packages/insomnia-app/app/network/o-auth-2/misc.js diff --git a/app/network/o-auth-2/refresh-token.js b/packages/insomnia-app/app/network/o-auth-2/refresh-token.js similarity index 94% rename from app/network/o-auth-2/refresh-token.js rename to packages/insomnia-app/app/network/o-auth-2/refresh-token.js index e11b12a31a..cfc6f6d9a9 100644 --- a/app/network/o-auth-2/refresh-token.js +++ b/packages/insomnia-app/app/network/o-auth-2/refresh-token.js @@ -1,9 +1,10 @@ // @flow import * as c from './constants'; import {responseToObject} from './misc'; -import {getBasicAuthHeader, setDefaultProtocol} from '../../common/misc'; +import {setDefaultProtocol} from 'insomnia-url'; import * as models from '../../models/index'; import {sendWithSettings} from '../network'; +import {getBasicAuthHeader} from '../basic-auth/get-header'; export default async function ( requestId: string, diff --git a/app/network/url-matches-cert-host.js b/packages/insomnia-app/app/network/url-matches-cert-host.js similarity index 91% rename from app/network/url-matches-cert-host.js rename to packages/insomnia-app/app/network/url-matches-cert-host.js index 0eb11314e9..24245b2555 100644 --- a/app/network/url-matches-cert-host.js +++ b/packages/insomnia-app/app/network/url-matches-cert-host.js @@ -1,6 +1,7 @@ import {parse as urlParse} from 'url'; import certificateUrlParse from './certificate-url-parse'; -import {escapeRegex, setDefaultProtocol} from '../common/misc'; +import {escapeRegex} from '../common/misc'; +import {setDefaultProtocol} from 'insomnia-url'; const DEFAULT_PORT = 443; diff --git a/packages/insomnia-app/app/package.json b/packages/insomnia-app/app/package.json new file mode 100644 index 0000000000..358dfed7fc --- /dev/null +++ b/packages/insomnia-app/app/package.json @@ -0,0 +1,11 @@ +{ + "private": true, + "name": "insomnia-app", + "version": "5.12.0-beta.3", + "productName": "Insomnia", + "longName": "Insomnia REST Client", + "description": "Debug APIs like a human, not a robot", + "homepage": "https://insomnia.rest", + "author": "Insomnia ", + "main": "main.min.js" +} diff --git a/app/plugins/context/__fixtures__/basic-import.json b/packages/insomnia-app/app/plugins/context/__fixtures__/basic-import.json similarity index 100% rename from app/plugins/context/__fixtures__/basic-import.json rename to packages/insomnia-app/app/plugins/context/__fixtures__/basic-import.json diff --git a/app/plugins/context/__tests__/app.test.js b/packages/insomnia-app/app/plugins/context/__tests__/app.test.js similarity index 100% rename from app/plugins/context/__tests__/app.test.js rename to packages/insomnia-app/app/plugins/context/__tests__/app.test.js diff --git a/app/plugins/context/__tests__/data.test.js b/packages/insomnia-app/app/plugins/context/__tests__/data.test.js similarity index 100% rename from app/plugins/context/__tests__/data.test.js rename to packages/insomnia-app/app/plugins/context/__tests__/data.test.js diff --git a/app/plugins/context/__tests__/request.test.js b/packages/insomnia-app/app/plugins/context/__tests__/request.test.js similarity index 100% rename from app/plugins/context/__tests__/request.test.js rename to packages/insomnia-app/app/plugins/context/__tests__/request.test.js diff --git a/app/plugins/context/__tests__/response.test.js b/packages/insomnia-app/app/plugins/context/__tests__/response.test.js similarity index 100% rename from app/plugins/context/__tests__/response.test.js rename to packages/insomnia-app/app/plugins/context/__tests__/response.test.js diff --git a/app/plugins/context/app.js b/packages/insomnia-app/app/plugins/context/app.js similarity index 100% rename from app/plugins/context/app.js rename to packages/insomnia-app/app/plugins/context/app.js diff --git a/app/plugins/context/data.js b/packages/insomnia-app/app/plugins/context/data.js similarity index 100% rename from app/plugins/context/data.js rename to packages/insomnia-app/app/plugins/context/data.js diff --git a/app/plugins/context/index.js b/packages/insomnia-app/app/plugins/context/index.js similarity index 100% rename from app/plugins/context/index.js rename to packages/insomnia-app/app/plugins/context/index.js diff --git a/app/plugins/context/request.js b/packages/insomnia-app/app/plugins/context/request.js similarity index 100% rename from app/plugins/context/request.js rename to packages/insomnia-app/app/plugins/context/request.js diff --git a/app/plugins/context/response.js b/packages/insomnia-app/app/plugins/context/response.js similarity index 100% rename from app/plugins/context/response.js rename to packages/insomnia-app/app/plugins/context/response.js diff --git a/app/plugins/index.js b/packages/insomnia-app/app/plugins/index.js similarity index 76% rename from app/plugins/index.js rename to packages/insomnia-app/app/plugins/index.js index 7dbfc79fc0..562d085009 100644 --- a/app/plugins/index.js +++ b/packages/insomnia-app/app/plugins/index.js @@ -31,6 +31,16 @@ export type ResponseHook = { hook: Function } +const CORE_PLUGINS = [ + 'insomnia-plugin-base64', + 'insomnia-plugin-hash', + 'insomnia-plugin-file', + 'insomnia-plugin-now', + 'insomnia-plugin-uuid', + 'insomnia-plugin-request', + 'insomnia-plugin-response' +]; + let plugins: ?Array = null; export async function init (): Promise { @@ -55,7 +65,19 @@ export async function getPlugins (force: boolean = false): Promise const extendedPaths = basePaths.map(p => path.join(p, 'node_modules')); const allPaths = [...basePaths, ...extendedPaths]; - plugins = []; + // Store plugins in a map so that plugins with the same + // name only get added once + // TODO: Make this more complex and have the latest version always win + const pluginMap: {[string]: Plugin} = { + // "name": "module" + }; + + for (const p of CORE_PLUGINS) { + const pluginJson = global.require(`${p}/package.json`); + const pluginModule = global.require(p); + pluginMap[pluginJson.name] = _initPlugin(pluginJson, pluginModule); + } + for (const p of allPaths) { if (!fs.existsSync(p)) { continue; @@ -89,17 +111,7 @@ export async function getPlugins (force: boolean = false): Promise delete global.require.cache[global.require.resolve(modulePath)]; const module = global.require(modulePath); - const pluginMeta = pluginJson.insomnia || {}; - - const plugin: Plugin = { - name: pluginMeta.name || pluginJson.name, - description: pluginMeta.description || '', - version: pluginJson.version || '0.0.0', - directory: modulePath, - module - }; - - plugins.push(plugin); + pluginMap[pluginJson.name] = _initPlugin(pluginJson || {}, module, modulePath); console.log(`[plugin] Loaded ${modulePath}`); } catch (err) { showError({ @@ -110,6 +122,8 @@ export async function getPlugins (force: boolean = false): Promise } } } + + plugins = Object.keys(pluginMap).map(name => pluginMap[name]); } return plugins; @@ -153,3 +167,14 @@ export async function getResponseHooks (): Promise> { return functions; } + +function _initPlugin (packageJSON: Object, module: any, path: ?string): Plugin { + const meta = packageJSON.insomnia || {}; + return { + name: packageJSON.name || meta.name, + description: packageJSON.description || meta.description || '', + version: packageJSON.version || 'unknown', + directory: path || '', + module: module + }; +} diff --git a/app/plugins/install.js b/packages/insomnia-app/app/plugins/install.js similarity index 94% rename from app/plugins/install.js rename to packages/insomnia-app/app/plugins/install.js index eb0316fb6f..3aa8a791e4 100644 --- a/app/plugins/install.js +++ b/packages/insomnia-app/app/plugins/install.js @@ -7,8 +7,6 @@ import path from 'path'; import * as tar from 'tar'; import * as crypto from 'crypto'; -const YARN_PATH = path.resolve(__dirname, '../bin/yarn-standalone.js'); - export default async function (moduleName: string): Promise { return new Promise(async (resolve, reject) => { let info: Object = {}; @@ -46,7 +44,7 @@ export default async function (moduleName: string): Promise { w.on('end', () => { childProcess.execFile( process.execPath, - [YARN_PATH, 'install'], + [_getYarnPath(), 'install'], { timeout: 5 * 60 * 1000, maxBuffer: 1024 * 1024, @@ -91,7 +89,7 @@ async function _isInsomniaPlugin (moduleName: string): Promise { console.log(`[plugins] Fetching module info from npm`); childProcess.execFile( process.execPath, - [YARN_PATH, 'info', moduleName, '--json'], + [_getYarnPath(), 'info', moduleName, '--json'], { timeout: 5 * 60 * 1000, maxBuffer: 1024 * 1024, @@ -139,3 +137,8 @@ async function _isInsomniaPlugin (moduleName: string): Promise { ); }); } + +function _getYarnPath () { + const {app} = electron.remote || electron; + return path.resolve(app.getAppPath(), '../bin/yarn-standalone.js'); +} diff --git a/app/renderer.html b/packages/insomnia-app/app/renderer.html similarity index 100% rename from app/renderer.html rename to packages/insomnia-app/app/renderer.html diff --git a/app/renderer.js b/packages/insomnia-app/app/renderer.js similarity index 100% rename from app/renderer.js rename to packages/insomnia-app/app/renderer.js diff --git a/app/static/icon.png b/packages/insomnia-app/app/static/icon.png similarity index 100% rename from app/static/icon.png rename to packages/insomnia-app/app/static/icon.png diff --git a/app/sync/__tests__/crypt.test.js b/packages/insomnia-app/app/sync/__tests__/crypt.test.js similarity index 100% rename from app/sync/__tests__/crypt.test.js rename to packages/insomnia-app/app/sync/__tests__/crypt.test.js diff --git a/app/sync/__tests__/sync.test.js b/packages/insomnia-app/app/sync/__tests__/sync.test.js similarity index 100% rename from app/sync/__tests__/sync.test.js rename to packages/insomnia-app/app/sync/__tests__/sync.test.js diff --git a/app/sync/crypt.js b/packages/insomnia-app/app/sync/crypt.js similarity index 100% rename from app/sync/crypt.js rename to packages/insomnia-app/app/sync/crypt.js diff --git a/app/sync/index.js b/packages/insomnia-app/app/sync/index.js similarity index 100% rename from app/sync/index.js rename to packages/insomnia-app/app/sync/index.js diff --git a/app/sync/logger.js b/packages/insomnia-app/app/sync/logger.js similarity index 100% rename from app/sync/logger.js rename to packages/insomnia-app/app/sync/logger.js diff --git a/app/sync/session.js b/packages/insomnia-app/app/sync/session.js similarity index 100% rename from app/sync/session.js rename to packages/insomnia-app/app/sync/session.js diff --git a/app/sync/storage.js b/packages/insomnia-app/app/sync/storage.js similarity index 100% rename from app/sync/storage.js rename to packages/insomnia-app/app/sync/storage.js diff --git a/app/templating/__tests__/utils.test.js b/packages/insomnia-app/app/templating/__tests__/utils.test.js similarity index 100% rename from app/templating/__tests__/utils.test.js rename to packages/insomnia-app/app/templating/__tests__/utils.test.js diff --git a/app/templating/base-extension.js b/packages/insomnia-app/app/templating/base-extension.js similarity index 100% rename from app/templating/base-extension.js rename to packages/insomnia-app/app/templating/base-extension.js diff --git a/app/templating/extensions/index.js b/packages/insomnia-app/app/templating/extensions/index.js similarity index 70% rename from app/templating/extensions/index.js rename to packages/insomnia-app/app/templating/extensions/index.js index b199ef1231..15e9b165d6 100644 --- a/app/templating/extensions/index.js +++ b/packages/insomnia-app/app/templating/extensions/index.js @@ -1,14 +1,4 @@ // @flow -import * as plugins from '../../plugins/index'; - -import timestampExtension from './timestamp-extension'; -import uuidExtension from './uuid-extension'; -import nowExtension from './now-extension'; -import fileExtension from './file-extension'; -import responseExtension from './response-extension'; -import base64Extension from './base-64-extension'; -import hashExtension from './hash-extension'; -import requestExtension from './request-extension'; import type {NunjucksParsedTagArg} from '../utils'; import type {Request} from '../../models/request'; import type {Response} from '../../models/response'; @@ -94,22 +84,3 @@ export type PluginTemplateTag = { deprecated?: boolean, priority?: number }; - -const DEFAULT_EXTENSIONS: Array = [ - timestampExtension, - fileExtension, - nowExtension, - uuidExtension, - base64Extension, - hashExtension, - requestExtension, - responseExtension -]; - -export async function all (): Promise> { - const templateTags = await plugins.getTemplateTags(); - return [ - ...DEFAULT_EXTENSIONS, - ...templateTags.map(p => p.templateTag) - ]; -} diff --git a/app/templating/index.js b/packages/insomnia-app/app/templating/index.js similarity index 96% rename from app/templating/index.js rename to packages/insomnia-app/app/templating/index.js index 45a22be7ca..05114c330d 100644 --- a/app/templating/index.js +++ b/packages/insomnia-app/app/templating/index.js @@ -1,9 +1,8 @@ // @flow import nunjucks from 'nunjucks'; -import * as extensions from './extensions'; import BaseExtension from './base-extension'; import type {NunjucksParsedTag} from './utils'; -import type {PluginTemplateTag} from './extensions/index'; +import * as plugins from '../plugins/index'; export class RenderError extends Error { message: string; @@ -143,7 +142,8 @@ async function getNunjucks (renderMode: string) { const nj = nunjucks.configure(config); - const allExtensions: Array = await extensions.all(); + const allTemplateTagPlugins = await plugins.getTemplateTags(); + const allExtensions = allTemplateTagPlugins.map(p => p.templateTag); for (let i = 0; i < allExtensions.length; i++) { const ext = allExtensions[i]; ext.priority = ext.priority || i * 100; diff --git a/app/templating/utils.js b/packages/insomnia-app/app/templating/utils.js similarity index 100% rename from app/templating/utils.js rename to packages/insomnia-app/app/templating/utils.js diff --git a/app/ui/components/base/button.js b/packages/insomnia-app/app/ui/components/base/button.js similarity index 100% rename from app/ui/components/base/button.js rename to packages/insomnia-app/app/ui/components/base/button.js diff --git a/app/ui/components/base/copy-button.js b/packages/insomnia-app/app/ui/components/base/copy-button.js similarity index 100% rename from app/ui/components/base/copy-button.js rename to packages/insomnia-app/app/ui/components/base/copy-button.js diff --git a/app/ui/components/base/debounced-input.js b/packages/insomnia-app/app/ui/components/base/debounced-input.js similarity index 100% rename from app/ui/components/base/debounced-input.js rename to packages/insomnia-app/app/ui/components/base/debounced-input.js diff --git a/app/ui/components/base/dropdown/dropdown-button.js b/packages/insomnia-app/app/ui/components/base/dropdown/dropdown-button.js similarity index 100% rename from app/ui/components/base/dropdown/dropdown-button.js rename to packages/insomnia-app/app/ui/components/base/dropdown/dropdown-button.js diff --git a/app/ui/components/base/dropdown/dropdown-divider.js b/packages/insomnia-app/app/ui/components/base/dropdown/dropdown-divider.js similarity index 100% rename from app/ui/components/base/dropdown/dropdown-divider.js rename to packages/insomnia-app/app/ui/components/base/dropdown/dropdown-divider.js diff --git a/app/ui/components/base/dropdown/dropdown-hint.js b/packages/insomnia-app/app/ui/components/base/dropdown/dropdown-hint.js similarity index 100% rename from app/ui/components/base/dropdown/dropdown-hint.js rename to packages/insomnia-app/app/ui/components/base/dropdown/dropdown-hint.js diff --git a/app/ui/components/base/dropdown/dropdown-item.js b/packages/insomnia-app/app/ui/components/base/dropdown/dropdown-item.js similarity index 100% rename from app/ui/components/base/dropdown/dropdown-item.js rename to packages/insomnia-app/app/ui/components/base/dropdown/dropdown-item.js diff --git a/app/ui/components/base/dropdown/dropdown-right.js b/packages/insomnia-app/app/ui/components/base/dropdown/dropdown-right.js similarity index 100% rename from app/ui/components/base/dropdown/dropdown-right.js rename to packages/insomnia-app/app/ui/components/base/dropdown/dropdown-right.js diff --git a/app/ui/components/base/dropdown/dropdown.js b/packages/insomnia-app/app/ui/components/base/dropdown/dropdown.js similarity index 100% rename from app/ui/components/base/dropdown/dropdown.js rename to packages/insomnia-app/app/ui/components/base/dropdown/dropdown.js diff --git a/app/ui/components/base/dropdown/index.js b/packages/insomnia-app/app/ui/components/base/dropdown/index.js similarity index 100% rename from app/ui/components/base/dropdown/index.js rename to packages/insomnia-app/app/ui/components/base/dropdown/index.js diff --git a/app/ui/components/base/editable.js b/packages/insomnia-app/app/ui/components/base/editable.js similarity index 100% rename from app/ui/components/base/editable.js rename to packages/insomnia-app/app/ui/components/base/editable.js diff --git a/app/ui/components/base/file-input-button.js b/packages/insomnia-app/app/ui/components/base/file-input-button.js similarity index 100% rename from app/ui/components/base/file-input-button.js rename to packages/insomnia-app/app/ui/components/base/file-input-button.js diff --git a/app/ui/components/base/lazy.js b/packages/insomnia-app/app/ui/components/base/lazy.js similarity index 100% rename from app/ui/components/base/lazy.js rename to packages/insomnia-app/app/ui/components/base/lazy.js diff --git a/app/ui/components/base/link.js b/packages/insomnia-app/app/ui/components/base/link.js similarity index 100% rename from app/ui/components/base/link.js rename to packages/insomnia-app/app/ui/components/base/link.js diff --git a/app/ui/components/base/mailto.js b/packages/insomnia-app/app/ui/components/base/mailto.js similarity index 76% rename from app/ui/components/base/mailto.js rename to packages/insomnia-app/app/ui/components/base/mailto.js index 7232071cb8..79f474fab9 100644 --- a/app/ui/components/base/mailto.js +++ b/packages/insomnia-app/app/ui/components/base/mailto.js @@ -1,7 +1,7 @@ // @flow import * as React from 'react'; import autobind from 'autobind-decorator'; -import * as querystring from '../../../common/querystring'; +import {buildQueryStringFromParams, joinUrlAndQueryString} from 'insomnia-url'; import Link from './link'; type Props = {| @@ -24,8 +24,8 @@ class Mailto extends React.PureComponent { params.push({name: 'body', value: body}); } - const qs = querystring.buildFromParams(params); - const href = querystring.joinUrl(`mailto:${email}`, qs); + const qs = buildQueryStringFromParams(params); + const href = joinUrlAndQueryString(`mailto:${email}`, qs); return ( {children || email} diff --git a/app/ui/components/base/modal-body.js b/packages/insomnia-app/app/ui/components/base/modal-body.js similarity index 100% rename from app/ui/components/base/modal-body.js rename to packages/insomnia-app/app/ui/components/base/modal-body.js diff --git a/app/ui/components/base/modal-footer.js b/packages/insomnia-app/app/ui/components/base/modal-footer.js similarity index 100% rename from app/ui/components/base/modal-footer.js rename to packages/insomnia-app/app/ui/components/base/modal-footer.js diff --git a/app/ui/components/base/modal-header.js b/packages/insomnia-app/app/ui/components/base/modal-header.js similarity index 100% rename from app/ui/components/base/modal-header.js rename to packages/insomnia-app/app/ui/components/base/modal-header.js diff --git a/app/ui/components/base/modal.js b/packages/insomnia-app/app/ui/components/base/modal.js similarity index 100% rename from app/ui/components/base/modal.js rename to packages/insomnia-app/app/ui/components/base/modal.js diff --git a/app/ui/components/base/prompt-button.js b/packages/insomnia-app/app/ui/components/base/prompt-button.js similarity index 100% rename from app/ui/components/base/prompt-button.js rename to packages/insomnia-app/app/ui/components/base/prompt-button.js diff --git a/app/ui/components/check-for-updates-button.js b/packages/insomnia-app/app/ui/components/check-for-updates-button.js similarity index 100% rename from app/ui/components/check-for-updates-button.js rename to packages/insomnia-app/app/ui/components/check-for-updates-button.js diff --git a/app/ui/components/codemirror/base-imports.js b/packages/insomnia-app/app/ui/components/codemirror/base-imports.js similarity index 100% rename from app/ui/components/codemirror/base-imports.js rename to packages/insomnia-app/app/ui/components/codemirror/base-imports.js diff --git a/app/ui/components/codemirror/code-editor.js b/packages/insomnia-app/app/ui/components/codemirror/code-editor.js similarity index 98% rename from app/ui/components/codemirror/code-editor.js rename to packages/insomnia-app/app/ui/components/codemirror/code-editor.js index ff71b14aa0..77b5c44bd2 100644 --- a/app/ui/components/codemirror/code-editor.js +++ b/packages/insomnia-app/app/ui/components/codemirror/code-editor.js @@ -10,14 +10,14 @@ import {showModal} from '../modals/index'; import FilterHelpModal from '../modals/filter-help-modal'; import * as misc from '../../../common/misc'; import {trackEvent} from '../../../common/analytics'; -import {prettifyJson} from '../../../common/prettify'; +import prettify from 'insomnia-prettify'; import {DEBOUNCE_MILLIS, isMac} from '../../../common/constants'; import './base-imports'; import {getTagDefinitions} from '../../../templating/index'; import Dropdown from '../base/dropdown/dropdown'; import DropdownButton from '../base/dropdown/dropdown-button'; import DropdownItem from '../base/dropdown/dropdown-item'; -import * as xpath2 from '../../../common/xpath'; +import {query as queryXPath} from 'insomnia-xpath'; const TAB_KEY = 9; const TAB_SIZE = 4; @@ -316,7 +316,7 @@ class CodeEditor extends React.Component { } } - return prettifyJson(jsonString, '\t'); + return prettify.json(jsonString, '\t'); } catch (e) { // That's Ok, just leave it return code; @@ -326,7 +326,7 @@ class CodeEditor extends React.Component { _prettifyXML (code) { if (this.props.updateFilter && this.state.filter) { try { - const results = xpath2.query(code, this.state.filter); + const results = queryXPath(code, this.state.filter); code = `${results.map(r => r.outer).join('\n')}`; } catch (err) { // Failed to parse filter (that's ok) @@ -580,7 +580,6 @@ class CodeEditor extends React.Component { const lint = value.length > MAX_SIZE_FOR_LINTING ? false : !this.props.noLint; const existingLint = this.codeMirror.options.lint || false; - console.log('LINT?', lint, value.length, MAX_SIZE_FOR_LINTING - value.length); if (lint !== existingLint) { this.codeMirror.setOption('lint', lint); } diff --git a/app/ui/components/codemirror/extensions/autocomplete.js b/packages/insomnia-app/app/ui/components/codemirror/extensions/autocomplete.js similarity index 100% rename from app/ui/components/codemirror/extensions/autocomplete.js rename to packages/insomnia-app/app/ui/components/codemirror/extensions/autocomplete.js diff --git a/app/ui/components/codemirror/extensions/clickable.js b/packages/insomnia-app/app/ui/components/codemirror/extensions/clickable.js similarity index 100% rename from app/ui/components/codemirror/extensions/clickable.js rename to packages/insomnia-app/app/ui/components/codemirror/extensions/clickable.js diff --git a/app/ui/components/codemirror/extensions/nunjucks-tags.js b/packages/insomnia-app/app/ui/components/codemirror/extensions/nunjucks-tags.js similarity index 100% rename from app/ui/components/codemirror/extensions/nunjucks-tags.js rename to packages/insomnia-app/app/ui/components/codemirror/extensions/nunjucks-tags.js diff --git a/app/ui/components/codemirror/modes/curl.js b/packages/insomnia-app/app/ui/components/codemirror/modes/curl.js similarity index 100% rename from app/ui/components/codemirror/modes/curl.js rename to packages/insomnia-app/app/ui/components/codemirror/modes/curl.js diff --git a/app/ui/components/codemirror/modes/nunjucks.js b/packages/insomnia-app/app/ui/components/codemirror/modes/nunjucks.js similarity index 100% rename from app/ui/components/codemirror/modes/nunjucks.js rename to packages/insomnia-app/app/ui/components/codemirror/modes/nunjucks.js diff --git a/app/ui/components/codemirror/one-line-editor.js b/packages/insomnia-app/app/ui/components/codemirror/one-line-editor.js similarity index 100% rename from app/ui/components/codemirror/one-line-editor.js rename to packages/insomnia-app/app/ui/components/codemirror/one-line-editor.js diff --git a/app/ui/components/cookie-list.js b/packages/insomnia-app/app/ui/components/cookie-list.js similarity index 98% rename from app/ui/components/cookie-list.js rename to packages/insomnia-app/app/ui/components/cookie-list.js index 9caab9c73d..39ee2d3ebc 100644 --- a/app/ui/components/cookie-list.js +++ b/packages/insomnia-app/app/ui/components/cookie-list.js @@ -3,7 +3,7 @@ import React from 'react'; import uuid from 'uuid'; import * as toughCookie from 'tough-cookie'; import autobind from 'autobind-decorator'; -import {cookieToString} from '../../common/cookies'; +import {cookieToString} from 'insomnia-cookies'; import PromptButton from './base/prompt-button'; import RenderedText from './rendered-text'; import type {Cookie} from '../../models/cookie-jar'; diff --git a/app/ui/components/dropdowns/auth-dropdown.js b/packages/insomnia-app/app/ui/components/dropdowns/auth-dropdown.js similarity index 100% rename from app/ui/components/dropdowns/auth-dropdown.js rename to packages/insomnia-app/app/ui/components/dropdowns/auth-dropdown.js diff --git a/app/ui/components/dropdowns/content-type-dropdown.js b/packages/insomnia-app/app/ui/components/dropdowns/content-type-dropdown.js similarity index 100% rename from app/ui/components/dropdowns/content-type-dropdown.js rename to packages/insomnia-app/app/ui/components/dropdowns/content-type-dropdown.js diff --git a/app/ui/components/dropdowns/environments-dropdown.js b/packages/insomnia-app/app/ui/components/dropdowns/environments-dropdown.js similarity index 100% rename from app/ui/components/dropdowns/environments-dropdown.js rename to packages/insomnia-app/app/ui/components/dropdowns/environments-dropdown.js diff --git a/app/ui/components/dropdowns/method-dropdown.js b/packages/insomnia-app/app/ui/components/dropdowns/method-dropdown.js similarity index 100% rename from app/ui/components/dropdowns/method-dropdown.js rename to packages/insomnia-app/app/ui/components/dropdowns/method-dropdown.js diff --git a/app/ui/components/dropdowns/preview-mode-dropdown.js b/packages/insomnia-app/app/ui/components/dropdowns/preview-mode-dropdown.js similarity index 100% rename from app/ui/components/dropdowns/preview-mode-dropdown.js rename to packages/insomnia-app/app/ui/components/dropdowns/preview-mode-dropdown.js diff --git a/app/ui/components/dropdowns/request-actions-dropdown.js b/packages/insomnia-app/app/ui/components/dropdowns/request-actions-dropdown.js similarity index 100% rename from app/ui/components/dropdowns/request-actions-dropdown.js rename to packages/insomnia-app/app/ui/components/dropdowns/request-actions-dropdown.js diff --git a/app/ui/components/dropdowns/request-group-actions-dropdown.js b/packages/insomnia-app/app/ui/components/dropdowns/request-group-actions-dropdown.js similarity index 100% rename from app/ui/components/dropdowns/request-group-actions-dropdown.js rename to packages/insomnia-app/app/ui/components/dropdowns/request-group-actions-dropdown.js diff --git a/app/ui/components/dropdowns/response-history-dropdown.js b/packages/insomnia-app/app/ui/components/dropdowns/response-history-dropdown.js similarity index 100% rename from app/ui/components/dropdowns/response-history-dropdown.js rename to packages/insomnia-app/app/ui/components/dropdowns/response-history-dropdown.js diff --git a/app/ui/components/dropdowns/sync-dropdown.js b/packages/insomnia-app/app/ui/components/dropdowns/sync-dropdown.js similarity index 100% rename from app/ui/components/dropdowns/sync-dropdown.js rename to packages/insomnia-app/app/ui/components/dropdowns/sync-dropdown.js diff --git a/app/ui/components/dropdowns/workspace-dropdown.js b/packages/insomnia-app/app/ui/components/dropdowns/workspace-dropdown.js similarity index 100% rename from app/ui/components/dropdowns/workspace-dropdown.js rename to packages/insomnia-app/app/ui/components/dropdowns/workspace-dropdown.js diff --git a/app/ui/components/editors/auth/asap-auth.js b/packages/insomnia-app/app/ui/components/editors/auth/asap-auth.js similarity index 100% rename from app/ui/components/editors/auth/asap-auth.js rename to packages/insomnia-app/app/ui/components/editors/auth/asap-auth.js diff --git a/app/ui/components/editors/auth/auth-wrapper.js b/packages/insomnia-app/app/ui/components/editors/auth/auth-wrapper.js similarity index 100% rename from app/ui/components/editors/auth/auth-wrapper.js rename to packages/insomnia-app/app/ui/components/editors/auth/auth-wrapper.js diff --git a/app/ui/components/editors/auth/aws-auth.js b/packages/insomnia-app/app/ui/components/editors/auth/aws-auth.js similarity index 100% rename from app/ui/components/editors/auth/aws-auth.js rename to packages/insomnia-app/app/ui/components/editors/auth/aws-auth.js diff --git a/app/ui/components/editors/auth/basic-auth.js b/packages/insomnia-app/app/ui/components/editors/auth/basic-auth.js similarity index 100% rename from app/ui/components/editors/auth/basic-auth.js rename to packages/insomnia-app/app/ui/components/editors/auth/basic-auth.js diff --git a/app/ui/components/editors/auth/bearer-auth.js b/packages/insomnia-app/app/ui/components/editors/auth/bearer-auth.js similarity index 100% rename from app/ui/components/editors/auth/bearer-auth.js rename to packages/insomnia-app/app/ui/components/editors/auth/bearer-auth.js diff --git a/app/ui/components/editors/auth/digest-auth.js b/packages/insomnia-app/app/ui/components/editors/auth/digest-auth.js similarity index 100% rename from app/ui/components/editors/auth/digest-auth.js rename to packages/insomnia-app/app/ui/components/editors/auth/digest-auth.js diff --git a/app/ui/components/editors/auth/hawk-auth.js b/packages/insomnia-app/app/ui/components/editors/auth/hawk-auth.js similarity index 100% rename from app/ui/components/editors/auth/hawk-auth.js rename to packages/insomnia-app/app/ui/components/editors/auth/hawk-auth.js diff --git a/app/ui/components/editors/auth/netrc-auth.js b/packages/insomnia-app/app/ui/components/editors/auth/netrc-auth.js similarity index 100% rename from app/ui/components/editors/auth/netrc-auth.js rename to packages/insomnia-app/app/ui/components/editors/auth/netrc-auth.js diff --git a/app/ui/components/editors/auth/ntlm-auth.js b/packages/insomnia-app/app/ui/components/editors/auth/ntlm-auth.js similarity index 100% rename from app/ui/components/editors/auth/ntlm-auth.js rename to packages/insomnia-app/app/ui/components/editors/auth/ntlm-auth.js diff --git a/app/ui/components/editors/auth/o-auth-1-auth.js b/packages/insomnia-app/app/ui/components/editors/auth/o-auth-1-auth.js similarity index 100% rename from app/ui/components/editors/auth/o-auth-1-auth.js rename to packages/insomnia-app/app/ui/components/editors/auth/o-auth-1-auth.js diff --git a/app/ui/components/editors/auth/o-auth-2-auth.js b/packages/insomnia-app/app/ui/components/editors/auth/o-auth-2-auth.js similarity index 100% rename from app/ui/components/editors/auth/o-auth-2-auth.js rename to packages/insomnia-app/app/ui/components/editors/auth/o-auth-2-auth.js diff --git a/app/ui/components/editors/body/body-editor.js b/packages/insomnia-app/app/ui/components/editors/body/body-editor.js similarity index 100% rename from app/ui/components/editors/body/body-editor.js rename to packages/insomnia-app/app/ui/components/editors/body/body-editor.js diff --git a/app/ui/components/editors/body/file-editor.js b/packages/insomnia-app/app/ui/components/editors/body/file-editor.js similarity index 100% rename from app/ui/components/editors/body/file-editor.js rename to packages/insomnia-app/app/ui/components/editors/body/file-editor.js diff --git a/app/ui/components/editors/body/form-editor.js b/packages/insomnia-app/app/ui/components/editors/body/form-editor.js similarity index 100% rename from app/ui/components/editors/body/form-editor.js rename to packages/insomnia-app/app/ui/components/editors/body/form-editor.js diff --git a/app/ui/components/editors/body/graph-ql-editor.js b/packages/insomnia-app/app/ui/components/editors/body/graph-ql-editor.js similarity index 97% rename from app/ui/components/editors/body/graph-ql-editor.js rename to packages/insomnia-app/app/ui/components/editors/body/graph-ql-editor.js index bad73460fb..bcdd637ffa 100644 --- a/app/ui/components/editors/body/graph-ql-editor.js +++ b/packages/insomnia-app/app/ui/components/editors/body/graph-ql-editor.js @@ -11,7 +11,7 @@ import CodeEditor from '../../codemirror/code-editor'; import {jsonParseOr} from '../../../../common/misc'; import HelpTooltip from '../../help-tooltip'; import {CONTENT_TYPE_JSON, DEBOUNCE_MILLIS} from '../../../../common/constants'; -import {prettifyJson} from '../../../../common/prettify'; +import prettify from 'insomnia-prettify'; import * as network from '../../../../network/network'; import type {Workspace} from '../../../../models/workspace'; import type {Settings} from '../../../../models/settings'; @@ -147,7 +147,7 @@ class GraphQLEditor extends React.PureComponent { const {body, forceRefreshKey} = this.state; const {variables, query} = body; const prettyQuery = query && print(parse(query)); - const prettyVariables = variables && JSON.parse(prettifyJson(JSON.stringify(variables))); + const prettyVariables = variables && JSON.parse(prettify.json(JSON.stringify(variables))); this._handleBodyChange(prettyQuery, prettyVariables); setTimeout(() => { this.setState({forceRefreshKey: forceRefreshKey + 1}); @@ -284,7 +284,7 @@ class GraphQLEditor extends React.PureComponent { variables: variablesObject } = this._stringToGraphQL(content); - const variables = prettifyJson(JSON.stringify(variablesObject)); + const variables = prettify.json(JSON.stringify(variablesObject)); return (
diff --git a/app/ui/components/editors/body/raw-editor.js b/packages/insomnia-app/app/ui/components/editors/body/raw-editor.js similarity index 100% rename from app/ui/components/editors/body/raw-editor.js rename to packages/insomnia-app/app/ui/components/editors/body/raw-editor.js diff --git a/app/ui/components/editors/body/url-encoded-editor.js b/packages/insomnia-app/app/ui/components/editors/body/url-encoded-editor.js similarity index 100% rename from app/ui/components/editors/body/url-encoded-editor.js rename to packages/insomnia-app/app/ui/components/editors/body/url-encoded-editor.js diff --git a/app/ui/components/editors/environment-editor.js b/packages/insomnia-app/app/ui/components/editors/environment-editor.js similarity index 100% rename from app/ui/components/editors/environment-editor.js rename to packages/insomnia-app/app/ui/components/editors/environment-editor.js diff --git a/app/ui/components/editors/request-headers-editor.js b/packages/insomnia-app/app/ui/components/editors/request-headers-editor.js similarity index 100% rename from app/ui/components/editors/request-headers-editor.js rename to packages/insomnia-app/app/ui/components/editors/request-headers-editor.js diff --git a/app/ui/components/error-boundary.js b/packages/insomnia-app/app/ui/components/error-boundary.js similarity index 100% rename from app/ui/components/error-boundary.js rename to packages/insomnia-app/app/ui/components/error-boundary.js diff --git a/app/ui/components/gravatar-img.js b/packages/insomnia-app/app/ui/components/gravatar-img.js similarity index 100% rename from app/ui/components/gravatar-img.js rename to packages/insomnia-app/app/ui/components/gravatar-img.js diff --git a/app/ui/components/help-tooltip.js b/packages/insomnia-app/app/ui/components/help-tooltip.js similarity index 100% rename from app/ui/components/help-tooltip.js rename to packages/insomnia-app/app/ui/components/help-tooltip.js diff --git a/app/ui/components/hotkey.js b/packages/insomnia-app/app/ui/components/hotkey.js similarity index 100% rename from app/ui/components/hotkey.js rename to packages/insomnia-app/app/ui/components/hotkey.js diff --git a/app/ui/components/key-value-editor/editor.js b/packages/insomnia-app/app/ui/components/key-value-editor/editor.js similarity index 100% rename from app/ui/components/key-value-editor/editor.js rename to packages/insomnia-app/app/ui/components/key-value-editor/editor.js diff --git a/app/ui/components/key-value-editor/row.js b/packages/insomnia-app/app/ui/components/key-value-editor/row.js similarity index 100% rename from app/ui/components/key-value-editor/row.js rename to packages/insomnia-app/app/ui/components/key-value-editor/row.js diff --git a/app/ui/components/keydown-binder.js b/packages/insomnia-app/app/ui/components/keydown-binder.js similarity index 100% rename from app/ui/components/keydown-binder.js rename to packages/insomnia-app/app/ui/components/keydown-binder.js diff --git a/app/ui/components/markdown-editor.js b/packages/insomnia-app/app/ui/components/markdown-editor.js similarity index 100% rename from app/ui/components/markdown-editor.js rename to packages/insomnia-app/app/ui/components/markdown-editor.js diff --git a/app/ui/components/markdown-preview.js b/packages/insomnia-app/app/ui/components/markdown-preview.js similarity index 100% rename from app/ui/components/markdown-preview.js rename to packages/insomnia-app/app/ui/components/markdown-preview.js diff --git a/app/ui/components/modals/alert-modal.js b/packages/insomnia-app/app/ui/components/modals/alert-modal.js similarity index 100% rename from app/ui/components/modals/alert-modal.js rename to packages/insomnia-app/app/ui/components/modals/alert-modal.js diff --git a/app/ui/components/modals/ask-modal.js b/packages/insomnia-app/app/ui/components/modals/ask-modal.js similarity index 100% rename from app/ui/components/modals/ask-modal.js rename to packages/insomnia-app/app/ui/components/modals/ask-modal.js diff --git a/app/ui/components/modals/code-prompt-modal.js b/packages/insomnia-app/app/ui/components/modals/code-prompt-modal.js similarity index 100% rename from app/ui/components/modals/code-prompt-modal.js rename to packages/insomnia-app/app/ui/components/modals/code-prompt-modal.js diff --git a/app/ui/components/modals/cookie-modify-modal.js b/packages/insomnia-app/app/ui/components/modals/cookie-modify-modal.js similarity index 99% rename from app/ui/components/modals/cookie-modify-modal.js rename to packages/insomnia-app/app/ui/components/modals/cookie-modify-modal.js index 88e22552d7..d6453da5a3 100644 --- a/app/ui/components/modals/cookie-modify-modal.js +++ b/packages/insomnia-app/app/ui/components/modals/cookie-modify-modal.js @@ -12,7 +12,7 @@ import ModalBody from '../base/modal-body'; import ModalHeader from '../base/modal-header'; import ModalFooter from '../base/modal-footer'; import OneLineEditor from '../codemirror/one-line-editor'; -import {cookieToString} from '../../../common/cookies'; +import {cookieToString} from 'insomnia-cookies'; import type {Cookie, CookieJar} from '../../../models/cookie-jar'; import type {Workspace} from '../../../models/workspace'; diff --git a/app/ui/components/modals/cookies-modal.js b/packages/insomnia-app/app/ui/components/modals/cookies-modal.js similarity index 100% rename from app/ui/components/modals/cookies-modal.js rename to packages/insomnia-app/app/ui/components/modals/cookies-modal.js diff --git a/app/ui/components/modals/environment-edit-modal.js b/packages/insomnia-app/app/ui/components/modals/environment-edit-modal.js similarity index 100% rename from app/ui/components/modals/environment-edit-modal.js rename to packages/insomnia-app/app/ui/components/modals/environment-edit-modal.js diff --git a/app/ui/components/modals/error-modal.js b/packages/insomnia-app/app/ui/components/modals/error-modal.js similarity index 100% rename from app/ui/components/modals/error-modal.js rename to packages/insomnia-app/app/ui/components/modals/error-modal.js diff --git a/app/ui/components/modals/filter-help-modal.js b/packages/insomnia-app/app/ui/components/modals/filter-help-modal.js similarity index 100% rename from app/ui/components/modals/filter-help-modal.js rename to packages/insomnia-app/app/ui/components/modals/filter-help-modal.js diff --git a/app/ui/components/modals/generate-code-modal.js b/packages/insomnia-app/app/ui/components/modals/generate-code-modal.js similarity index 100% rename from app/ui/components/modals/generate-code-modal.js rename to packages/insomnia-app/app/ui/components/modals/generate-code-modal.js diff --git a/app/ui/components/modals/index.js b/packages/insomnia-app/app/ui/components/modals/index.js similarity index 100% rename from app/ui/components/modals/index.js rename to packages/insomnia-app/app/ui/components/modals/index.js diff --git a/app/ui/components/modals/login-modal.js b/packages/insomnia-app/app/ui/components/modals/login-modal.js similarity index 100% rename from app/ui/components/modals/login-modal.js rename to packages/insomnia-app/app/ui/components/modals/login-modal.js diff --git a/app/ui/components/modals/nunjucks-modal.js b/packages/insomnia-app/app/ui/components/modals/nunjucks-modal.js similarity index 100% rename from app/ui/components/modals/nunjucks-modal.js rename to packages/insomnia-app/app/ui/components/modals/nunjucks-modal.js diff --git a/app/ui/components/modals/payment-notification-modal.js b/packages/insomnia-app/app/ui/components/modals/payment-notification-modal.js similarity index 100% rename from app/ui/components/modals/payment-notification-modal.js rename to packages/insomnia-app/app/ui/components/modals/payment-notification-modal.js diff --git a/app/ui/components/modals/prompt-modal.js b/packages/insomnia-app/app/ui/components/modals/prompt-modal.js similarity index 100% rename from app/ui/components/modals/prompt-modal.js rename to packages/insomnia-app/app/ui/components/modals/prompt-modal.js diff --git a/app/ui/components/modals/request-create-modal.js b/packages/insomnia-app/app/ui/components/modals/request-create-modal.js similarity index 100% rename from app/ui/components/modals/request-create-modal.js rename to packages/insomnia-app/app/ui/components/modals/request-create-modal.js diff --git a/app/ui/components/modals/request-render-error-modal.js b/packages/insomnia-app/app/ui/components/modals/request-render-error-modal.js similarity index 100% rename from app/ui/components/modals/request-render-error-modal.js rename to packages/insomnia-app/app/ui/components/modals/request-render-error-modal.js diff --git a/app/ui/components/modals/request-settings-modal.js b/packages/insomnia-app/app/ui/components/modals/request-settings-modal.js similarity index 100% rename from app/ui/components/modals/request-settings-modal.js rename to packages/insomnia-app/app/ui/components/modals/request-settings-modal.js diff --git a/app/ui/components/modals/request-switcher-modal.js b/packages/insomnia-app/app/ui/components/modals/request-switcher-modal.js similarity index 100% rename from app/ui/components/modals/request-switcher-modal.js rename to packages/insomnia-app/app/ui/components/modals/request-switcher-modal.js diff --git a/app/ui/components/modals/select-modal.js b/packages/insomnia-app/app/ui/components/modals/select-modal.js similarity index 100% rename from app/ui/components/modals/select-modal.js rename to packages/insomnia-app/app/ui/components/modals/select-modal.js diff --git a/app/ui/components/modals/settings-modal.js b/packages/insomnia-app/app/ui/components/modals/settings-modal.js similarity index 100% rename from app/ui/components/modals/settings-modal.js rename to packages/insomnia-app/app/ui/components/modals/settings-modal.js diff --git a/app/ui/components/modals/setup-sync-modal.js b/packages/insomnia-app/app/ui/components/modals/setup-sync-modal.js similarity index 100% rename from app/ui/components/modals/setup-sync-modal.js rename to packages/insomnia-app/app/ui/components/modals/setup-sync-modal.js diff --git a/app/ui/components/modals/workspace-environments-edit-modal.js b/packages/insomnia-app/app/ui/components/modals/workspace-environments-edit-modal.js similarity index 100% rename from app/ui/components/modals/workspace-environments-edit-modal.js rename to packages/insomnia-app/app/ui/components/modals/workspace-environments-edit-modal.js diff --git a/app/ui/components/modals/workspace-settings-modal.js b/packages/insomnia-app/app/ui/components/modals/workspace-settings-modal.js similarity index 100% rename from app/ui/components/modals/workspace-settings-modal.js rename to packages/insomnia-app/app/ui/components/modals/workspace-settings-modal.js diff --git a/app/ui/components/modals/workspace-share-settings-modal.js b/packages/insomnia-app/app/ui/components/modals/workspace-share-settings-modal.js similarity index 100% rename from app/ui/components/modals/workspace-share-settings-modal.js rename to packages/insomnia-app/app/ui/components/modals/workspace-share-settings-modal.js diff --git a/app/ui/components/modals/wrapper-modal.js b/packages/insomnia-app/app/ui/components/modals/wrapper-modal.js similarity index 100% rename from app/ui/components/modals/wrapper-modal.js rename to packages/insomnia-app/app/ui/components/modals/wrapper-modal.js diff --git a/app/ui/components/pdf-viewer.js b/packages/insomnia-app/app/ui/components/pdf-viewer.js similarity index 100% rename from app/ui/components/pdf-viewer.js rename to packages/insomnia-app/app/ui/components/pdf-viewer.js diff --git a/app/ui/components/rendered-query-string.js b/packages/insomnia-app/app/ui/components/rendered-query-string.js similarity index 86% rename from app/ui/components/rendered-query-string.js rename to packages/insomnia-app/app/ui/components/rendered-query-string.js index eb92004d44..6f38b7b234 100644 --- a/app/ui/components/rendered-query-string.js +++ b/packages/insomnia-app/app/ui/components/rendered-query-string.js @@ -1,8 +1,7 @@ import React, {PureComponent} from 'react'; import PropTypes from 'prop-types'; import autobind from 'autobind-decorator'; -import * as querystring from '../../common/querystring'; -import * as misc from '../../common/misc'; +import {buildQueryStringFromParams, joinUrlAndQueryString, smartEncodeUrl} from 'insomnia-url'; import CopyButton from './base/copy-button'; @autobind @@ -38,9 +37,9 @@ class RenderedQueryString extends PureComponent { if (result) { const {url, parameters} = result; - const qs = querystring.buildFromParams(parameters); - const fullUrl = querystring.joinUrl(url, qs); - this.setState({string: misc.prepareUrlForSending(fullUrl, request.settingEncodeUrl)}); + const qs = buildQueryStringFromParams(parameters); + const fullUrl = joinUrlAndQueryString(url, qs); + this.setState({string: smartEncodeUrl(fullUrl, request.settingEncodeUrl)}); } } diff --git a/app/ui/components/rendered-text.js b/packages/insomnia-app/app/ui/components/rendered-text.js similarity index 100% rename from app/ui/components/rendered-text.js rename to packages/insomnia-app/app/ui/components/rendered-text.js diff --git a/app/ui/components/request-pane.js b/packages/insomnia-app/app/ui/components/request-pane.js similarity index 98% rename from app/ui/components/request-pane.js rename to packages/insomnia-app/app/ui/components/request-pane.js index c551687951..9c92f3ce1c 100644 --- a/app/ui/components/request-pane.js +++ b/packages/insomnia-app/app/ui/components/request-pane.js @@ -16,7 +16,7 @@ import AuthWrapper from './editors/auth/auth-wrapper'; import RequestUrlBar from './request-url-bar.js'; import {DEBOUNCE_MILLIS, getAuthTypeName, getContentTypeName} from '../../common/constants'; import {trackEvent} from '../../common/analytics'; -import * as querystring from '../../common/querystring'; +import {deconstructQueryStringToParams, extractQueryStringFromUrl} from 'insomnia-url'; import * as db from '../../common/database'; import * as models from '../../models'; import Hotkey from './hotkey'; @@ -125,7 +125,7 @@ class RequestPane extends React.PureComponent { let query; try { - query = querystring.extractFromUrl(request.url); + query = extractQueryStringFromUrl(request.url); } catch (e) { console.warn('Failed to parse url to import querystring'); return; @@ -135,7 +135,7 @@ class RequestPane extends React.PureComponent { const url = request.url.replace(query, ''); const parameters = [ ...request.parameters, - ...querystring.deconstructToParams(query) + ...deconstructQueryStringToParams(query) ]; // Only update if url changed diff --git a/app/ui/components/request-url-bar.js b/packages/insomnia-app/app/ui/components/request-url-bar.js similarity index 100% rename from app/ui/components/request-url-bar.js rename to packages/insomnia-app/app/ui/components/request-url-bar.js diff --git a/app/ui/components/response-pane.js b/packages/insomnia-app/app/ui/components/response-pane.js similarity index 100% rename from app/ui/components/response-pane.js rename to packages/insomnia-app/app/ui/components/response-pane.js diff --git a/app/ui/components/response-timer.js b/packages/insomnia-app/app/ui/components/response-timer.js similarity index 100% rename from app/ui/components/response-timer.js rename to packages/insomnia-app/app/ui/components/response-timer.js diff --git a/app/ui/components/settings/about.js b/packages/insomnia-app/app/ui/components/settings/about.js similarity index 100% rename from app/ui/components/settings/about.js rename to packages/insomnia-app/app/ui/components/settings/about.js diff --git a/app/ui/components/settings/account.js b/packages/insomnia-app/app/ui/components/settings/account.js similarity index 100% rename from app/ui/components/settings/account.js rename to packages/insomnia-app/app/ui/components/settings/account.js diff --git a/app/ui/components/settings/general.js b/packages/insomnia-app/app/ui/components/settings/general.js similarity index 100% rename from app/ui/components/settings/general.js rename to packages/insomnia-app/app/ui/components/settings/general.js diff --git a/app/ui/components/settings/import-export.js b/packages/insomnia-app/app/ui/components/settings/import-export.js similarity index 100% rename from app/ui/components/settings/import-export.js rename to packages/insomnia-app/app/ui/components/settings/import-export.js diff --git a/app/ui/components/settings/plugins.js b/packages/insomnia-app/app/ui/components/settings/plugins.js similarity index 97% rename from app/ui/components/settings/plugins.js rename to packages/insomnia-app/app/ui/components/settings/plugins.js index 0efc7b469e..2a796b11f8 100644 --- a/app/ui/components/settings/plugins.js +++ b/packages/insomnia-app/app/ui/components/settings/plugins.js @@ -128,7 +128,7 @@ class Plugins extends React.PureComponent { - {plugins.map(plugin => ( + {plugins.map(plugin => !plugin.directory ? null : ( {plugin.name} @@ -161,7 +161,9 @@ class Plugins extends React.PureComponent { - {error} +
+ {error} +
)} diff --git a/app/ui/components/settings/shortcuts.js b/packages/insomnia-app/app/ui/components/settings/shortcuts.js similarity index 100% rename from app/ui/components/settings/shortcuts.js rename to packages/insomnia-app/app/ui/components/settings/shortcuts.js diff --git a/app/ui/components/settings/theme.js b/packages/insomnia-app/app/ui/components/settings/theme.js similarity index 100% rename from app/ui/components/settings/theme.js rename to packages/insomnia-app/app/ui/components/settings/theme.js diff --git a/app/ui/components/sidebar/sidebar-children.js b/packages/insomnia-app/app/ui/components/sidebar/sidebar-children.js similarity index 100% rename from app/ui/components/sidebar/sidebar-children.js rename to packages/insomnia-app/app/ui/components/sidebar/sidebar-children.js diff --git a/app/ui/components/sidebar/sidebar-filter.js b/packages/insomnia-app/app/ui/components/sidebar/sidebar-filter.js similarity index 100% rename from app/ui/components/sidebar/sidebar-filter.js rename to packages/insomnia-app/app/ui/components/sidebar/sidebar-filter.js diff --git a/app/ui/components/sidebar/sidebar-request-group-row.js b/packages/insomnia-app/app/ui/components/sidebar/sidebar-request-group-row.js similarity index 100% rename from app/ui/components/sidebar/sidebar-request-group-row.js rename to packages/insomnia-app/app/ui/components/sidebar/sidebar-request-group-row.js diff --git a/app/ui/components/sidebar/sidebar-request-row.js b/packages/insomnia-app/app/ui/components/sidebar/sidebar-request-row.js similarity index 100% rename from app/ui/components/sidebar/sidebar-request-row.js rename to packages/insomnia-app/app/ui/components/sidebar/sidebar-request-row.js diff --git a/app/ui/components/sidebar/sidebar.js b/packages/insomnia-app/app/ui/components/sidebar/sidebar.js similarity index 100% rename from app/ui/components/sidebar/sidebar.js rename to packages/insomnia-app/app/ui/components/sidebar/sidebar.js diff --git a/app/ui/components/tags/method-tag.js b/packages/insomnia-app/app/ui/components/tags/method-tag.js similarity index 100% rename from app/ui/components/tags/method-tag.js rename to packages/insomnia-app/app/ui/components/tags/method-tag.js diff --git a/app/ui/components/tags/size-tag.js b/packages/insomnia-app/app/ui/components/tags/size-tag.js similarity index 100% rename from app/ui/components/tags/size-tag.js rename to packages/insomnia-app/app/ui/components/tags/size-tag.js diff --git a/app/ui/components/tags/status-tag.js b/packages/insomnia-app/app/ui/components/tags/status-tag.js similarity index 100% rename from app/ui/components/tags/status-tag.js rename to packages/insomnia-app/app/ui/components/tags/status-tag.js diff --git a/app/ui/components/tags/time-tag.js b/packages/insomnia-app/app/ui/components/tags/time-tag.js similarity index 100% rename from app/ui/components/tags/time-tag.js rename to packages/insomnia-app/app/ui/components/tags/time-tag.js diff --git a/app/ui/components/templating/tag-editor.js b/packages/insomnia-app/app/ui/components/templating/tag-editor.js similarity index 100% rename from app/ui/components/templating/tag-editor.js rename to packages/insomnia-app/app/ui/components/templating/tag-editor.js diff --git a/app/ui/components/templating/variable-editor.js b/packages/insomnia-app/app/ui/components/templating/variable-editor.js similarity index 100% rename from app/ui/components/templating/variable-editor.js rename to packages/insomnia-app/app/ui/components/templating/variable-editor.js diff --git a/app/ui/components/time-from-now.js b/packages/insomnia-app/app/ui/components/time-from-now.js similarity index 100% rename from app/ui/components/time-from-now.js rename to packages/insomnia-app/app/ui/components/time-from-now.js diff --git a/app/ui/components/toast.js b/packages/insomnia-app/app/ui/components/toast.js similarity index 100% rename from app/ui/components/toast.js rename to packages/insomnia-app/app/ui/components/toast.js diff --git a/app/ui/components/tooltip.js b/packages/insomnia-app/app/ui/components/tooltip.js similarity index 100% rename from app/ui/components/tooltip.js rename to packages/insomnia-app/app/ui/components/tooltip.js diff --git a/app/ui/components/viewers/response-cookies-viewer.js b/packages/insomnia-app/app/ui/components/viewers/response-cookies-viewer.js similarity index 100% rename from app/ui/components/viewers/response-cookies-viewer.js rename to packages/insomnia-app/app/ui/components/viewers/response-cookies-viewer.js diff --git a/app/ui/components/viewers/response-error.js b/packages/insomnia-app/app/ui/components/viewers/response-error.js similarity index 100% rename from app/ui/components/viewers/response-error.js rename to packages/insomnia-app/app/ui/components/viewers/response-error.js diff --git a/app/ui/components/viewers/response-headers-viewer.js b/packages/insomnia-app/app/ui/components/viewers/response-headers-viewer.js similarity index 100% rename from app/ui/components/viewers/response-headers-viewer.js rename to packages/insomnia-app/app/ui/components/viewers/response-headers-viewer.js diff --git a/app/ui/components/viewers/response-multipart.js b/packages/insomnia-app/app/ui/components/viewers/response-multipart.js similarity index 100% rename from app/ui/components/viewers/response-multipart.js rename to packages/insomnia-app/app/ui/components/viewers/response-multipart.js diff --git a/app/ui/components/viewers/response-raw.js b/packages/insomnia-app/app/ui/components/viewers/response-raw.js similarity index 100% rename from app/ui/components/viewers/response-raw.js rename to packages/insomnia-app/app/ui/components/viewers/response-raw.js diff --git a/app/ui/components/viewers/response-timeline-viewer.js b/packages/insomnia-app/app/ui/components/viewers/response-timeline-viewer.js similarity index 100% rename from app/ui/components/viewers/response-timeline-viewer.js rename to packages/insomnia-app/app/ui/components/viewers/response-timeline-viewer.js diff --git a/app/ui/components/viewers/response-viewer.js b/packages/insomnia-app/app/ui/components/viewers/response-viewer.js similarity index 100% rename from app/ui/components/viewers/response-viewer.js rename to packages/insomnia-app/app/ui/components/viewers/response-viewer.js diff --git a/app/ui/components/viewers/response-webview.js b/packages/insomnia-app/app/ui/components/viewers/response-webview.js similarity index 100% rename from app/ui/components/viewers/response-webview.js rename to packages/insomnia-app/app/ui/components/viewers/response-webview.js diff --git a/app/ui/components/wrap.js b/packages/insomnia-app/app/ui/components/wrap.js similarity index 100% rename from app/ui/components/wrap.js rename to packages/insomnia-app/app/ui/components/wrap.js diff --git a/app/ui/components/wrapper.js b/packages/insomnia-app/app/ui/components/wrapper.js similarity index 100% rename from app/ui/components/wrapper.js rename to packages/insomnia-app/app/ui/components/wrapper.js diff --git a/app/ui/containers/app.js b/packages/insomnia-app/app/ui/containers/app.js similarity index 100% rename from app/ui/containers/app.js rename to packages/insomnia-app/app/ui/containers/app.js diff --git a/app/ui/css/components/app.less b/packages/insomnia-app/app/ui/css/components/app.less similarity index 100% rename from app/ui/css/components/app.less rename to packages/insomnia-app/app/ui/css/components/app.less diff --git a/app/ui/css/components/blocker-overlay.less b/packages/insomnia-app/app/ui/css/components/blocker-overlay.less similarity index 100% rename from app/ui/css/components/blocker-overlay.less rename to packages/insomnia-app/app/ui/css/components/blocker-overlay.less diff --git a/app/ui/css/components/changelog.less b/packages/insomnia-app/app/ui/css/components/changelog.less similarity index 100% rename from app/ui/css/components/changelog.less rename to packages/insomnia-app/app/ui/css/components/changelog.less diff --git a/app/ui/css/components/cookie-list.less b/packages/insomnia-app/app/ui/css/components/cookie-list.less similarity index 100% rename from app/ui/css/components/cookie-list.less rename to packages/insomnia-app/app/ui/css/components/cookie-list.less diff --git a/app/ui/css/components/cookie-modify-modal.less b/packages/insomnia-app/app/ui/css/components/cookie-modify-modal.less similarity index 100% rename from app/ui/css/components/cookie-modify-modal.less rename to packages/insomnia-app/app/ui/css/components/cookie-modify-modal.less diff --git a/app/ui/css/components/dropdown.less b/packages/insomnia-app/app/ui/css/components/dropdown.less similarity index 100% rename from app/ui/css/components/dropdown.less rename to packages/insomnia-app/app/ui/css/components/dropdown.less diff --git a/app/ui/css/components/editable.less b/packages/insomnia-app/app/ui/css/components/editable.less similarity index 100% rename from app/ui/css/components/editable.less rename to packages/insomnia-app/app/ui/css/components/editable.less diff --git a/app/ui/css/components/environment-editor.less b/packages/insomnia-app/app/ui/css/components/environment-editor.less similarity index 100% rename from app/ui/css/components/environment-editor.less rename to packages/insomnia-app/app/ui/css/components/environment-editor.less diff --git a/app/ui/css/components/environment-modal.less b/packages/insomnia-app/app/ui/css/components/environment-modal.less similarity index 100% rename from app/ui/css/components/environment-modal.less rename to packages/insomnia-app/app/ui/css/components/environment-modal.less diff --git a/app/ui/css/components/forms.less b/packages/insomnia-app/app/ui/css/components/forms.less similarity index 100% rename from app/ui/css/components/forms.less rename to packages/insomnia-app/app/ui/css/components/forms.less diff --git a/app/ui/css/components/graph-ql-editor.less b/packages/insomnia-app/app/ui/css/components/graph-ql-editor.less similarity index 100% rename from app/ui/css/components/graph-ql-editor.less rename to packages/insomnia-app/app/ui/css/components/graph-ql-editor.less diff --git a/app/ui/css/components/header-editor.less b/packages/insomnia-app/app/ui/css/components/header-editor.less similarity index 100% rename from app/ui/css/components/header-editor.less rename to packages/insomnia-app/app/ui/css/components/header-editor.less diff --git a/app/ui/css/components/key-value-editor.less b/packages/insomnia-app/app/ui/css/components/key-value-editor.less similarity index 100% rename from app/ui/css/components/key-value-editor.less rename to packages/insomnia-app/app/ui/css/components/key-value-editor.less diff --git a/app/ui/css/components/links.less b/packages/insomnia-app/app/ui/css/components/links.less similarity index 100% rename from app/ui/css/components/links.less rename to packages/insomnia-app/app/ui/css/components/links.less diff --git a/app/ui/css/components/markdown-editor.less b/packages/insomnia-app/app/ui/css/components/markdown-editor.less similarity index 100% rename from app/ui/css/components/markdown-editor.less rename to packages/insomnia-app/app/ui/css/components/markdown-editor.less diff --git a/app/ui/css/components/markdown-preview.less b/packages/insomnia-app/app/ui/css/components/markdown-preview.less similarity index 100% rename from app/ui/css/components/markdown-preview.less rename to packages/insomnia-app/app/ui/css/components/markdown-preview.less diff --git a/app/ui/css/components/method-dropdown.less b/packages/insomnia-app/app/ui/css/components/method-dropdown.less similarity index 100% rename from app/ui/css/components/method-dropdown.less rename to packages/insomnia-app/app/ui/css/components/method-dropdown.less diff --git a/app/ui/css/components/modal.less b/packages/insomnia-app/app/ui/css/components/modal.less similarity index 100% rename from app/ui/css/components/modal.less rename to packages/insomnia-app/app/ui/css/components/modal.less diff --git a/app/ui/css/components/overlay.less b/packages/insomnia-app/app/ui/css/components/overlay.less similarity index 100% rename from app/ui/css/components/overlay.less rename to packages/insomnia-app/app/ui/css/components/overlay.less diff --git a/app/ui/css/components/pane.less b/packages/insomnia-app/app/ui/css/components/pane.less similarity index 100% rename from app/ui/css/components/pane.less rename to packages/insomnia-app/app/ui/css/components/pane.less diff --git a/app/ui/css/components/query-editor.less b/packages/insomnia-app/app/ui/css/components/query-editor.less similarity index 100% rename from app/ui/css/components/query-editor.less rename to packages/insomnia-app/app/ui/css/components/query-editor.less diff --git a/app/ui/css/components/request-pane.less b/packages/insomnia-app/app/ui/css/components/request-pane.less similarity index 100% rename from app/ui/css/components/request-pane.less rename to packages/insomnia-app/app/ui/css/components/request-pane.less diff --git a/app/ui/css/components/request-switcher.less b/packages/insomnia-app/app/ui/css/components/request-switcher.less similarity index 100% rename from app/ui/css/components/request-switcher.less rename to packages/insomnia-app/app/ui/css/components/request-switcher.less diff --git a/app/ui/css/components/request-url-bar.less b/packages/insomnia-app/app/ui/css/components/request-url-bar.less similarity index 100% rename from app/ui/css/components/request-url-bar.less rename to packages/insomnia-app/app/ui/css/components/request-url-bar.less diff --git a/app/ui/css/components/response-pane.less b/packages/insomnia-app/app/ui/css/components/response-pane.less similarity index 100% rename from app/ui/css/components/response-pane.less rename to packages/insomnia-app/app/ui/css/components/response-pane.less diff --git a/app/ui/css/components/scrollbar.less b/packages/insomnia-app/app/ui/css/components/scrollbar.less similarity index 100% rename from app/ui/css/components/scrollbar.less rename to packages/insomnia-app/app/ui/css/components/scrollbar.less diff --git a/app/ui/css/components/sidebar.less b/packages/insomnia-app/app/ui/css/components/sidebar.less similarity index 100% rename from app/ui/css/components/sidebar.less rename to packages/insomnia-app/app/ui/css/components/sidebar.less diff --git a/app/ui/css/components/tabs.less b/packages/insomnia-app/app/ui/css/components/tabs.less similarity index 100% rename from app/ui/css/components/tabs.less rename to packages/insomnia-app/app/ui/css/components/tabs.less diff --git a/app/ui/css/components/tag.less b/packages/insomnia-app/app/ui/css/components/tag.less similarity index 100% rename from app/ui/css/components/tag.less rename to packages/insomnia-app/app/ui/css/components/tag.less diff --git a/app/ui/css/components/themes.less b/packages/insomnia-app/app/ui/css/components/themes.less similarity index 100% rename from app/ui/css/components/themes.less rename to packages/insomnia-app/app/ui/css/components/themes.less diff --git a/app/ui/css/components/toast.less b/packages/insomnia-app/app/ui/css/components/toast.less similarity index 100% rename from app/ui/css/components/toast.less rename to packages/insomnia-app/app/ui/css/components/toast.less diff --git a/app/ui/css/components/tooltip.less b/packages/insomnia-app/app/ui/css/components/tooltip.less similarity index 100% rename from app/ui/css/components/tooltip.less rename to packages/insomnia-app/app/ui/css/components/tooltip.less diff --git a/app/ui/css/components/workspace-dropdown.less b/packages/insomnia-app/app/ui/css/components/workspace-dropdown.less similarity index 100% rename from app/ui/css/components/workspace-dropdown.less rename to packages/insomnia-app/app/ui/css/components/workspace-dropdown.less diff --git a/app/ui/css/components/wrapper.less b/packages/insomnia-app/app/ui/css/components/wrapper.less similarity index 100% rename from app/ui/css/components/wrapper.less rename to packages/insomnia-app/app/ui/css/components/wrapper.less diff --git a/app/ui/css/constants/animations.less b/packages/insomnia-app/app/ui/css/constants/animations.less similarity index 100% rename from app/ui/css/constants/animations.less rename to packages/insomnia-app/app/ui/css/constants/animations.less diff --git a/app/ui/css/constants/colors.less b/packages/insomnia-app/app/ui/css/constants/colors.less similarity index 100% rename from app/ui/css/constants/colors.less rename to packages/insomnia-app/app/ui/css/constants/colors.less diff --git a/app/ui/css/constants/dimensions.less b/packages/insomnia-app/app/ui/css/constants/dimensions.less similarity index 100% rename from app/ui/css/constants/dimensions.less rename to packages/insomnia-app/app/ui/css/constants/dimensions.less diff --git a/app/ui/css/constants/fonts.less b/packages/insomnia-app/app/ui/css/constants/fonts.less similarity index 100% rename from app/ui/css/constants/fonts.less rename to packages/insomnia-app/app/ui/css/constants/fonts.less diff --git a/app/ui/css/editor/dialog.less b/packages/insomnia-app/app/ui/css/editor/dialog.less similarity index 100% rename from app/ui/css/editor/dialog.less rename to packages/insomnia-app/app/ui/css/editor/dialog.less diff --git a/app/ui/css/editor/general.less b/packages/insomnia-app/app/ui/css/editor/general.less similarity index 100% rename from app/ui/css/editor/general.less rename to packages/insomnia-app/app/ui/css/editor/general.less diff --git a/app/ui/css/editor/hints.less b/packages/insomnia-app/app/ui/css/editor/hints.less similarity index 100% rename from app/ui/css/editor/hints.less rename to packages/insomnia-app/app/ui/css/editor/hints.less diff --git a/app/ui/css/editor/index.less b/packages/insomnia-app/app/ui/css/editor/index.less similarity index 100% rename from app/ui/css/editor/index.less rename to packages/insomnia-app/app/ui/css/editor/index.less diff --git a/app/ui/css/editor/nunjucks-tag.less b/packages/insomnia-app/app/ui/css/editor/nunjucks-tag.less similarity index 100% rename from app/ui/css/editor/nunjucks-tag.less rename to packages/insomnia-app/app/ui/css/editor/nunjucks-tag.less diff --git a/app/ui/css/editor/one-line-editor.less b/packages/insomnia-app/app/ui/css/editor/one-line-editor.less similarity index 100% rename from app/ui/css/editor/one-line-editor.less rename to packages/insomnia-app/app/ui/css/editor/one-line-editor.less diff --git a/app/ui/css/editor/theme.less b/packages/insomnia-app/app/ui/css/editor/theme.less similarity index 100% rename from app/ui/css/editor/theme.less rename to packages/insomnia-app/app/ui/css/editor/theme.less diff --git a/app/ui/css/editor/tooltip.less b/packages/insomnia-app/app/ui/css/editor/tooltip.less similarity index 100% rename from app/ui/css/editor/tooltip.less rename to packages/insomnia-app/app/ui/css/editor/tooltip.less diff --git a/app/ui/css/index.less b/packages/insomnia-app/app/ui/css/index.less similarity index 100% rename from app/ui/css/index.less rename to packages/insomnia-app/app/ui/css/index.less diff --git a/app/ui/css/layout/base.less b/packages/insomnia-app/app/ui/css/layout/base.less similarity index 100% rename from app/ui/css/layout/base.less rename to packages/insomnia-app/app/ui/css/layout/base.less diff --git a/app/ui/css/lib/chrome/platform_app.css b/packages/insomnia-app/app/ui/css/lib/chrome/platform_app.css similarity index 100% rename from app/ui/css/lib/chrome/platform_app.css rename to packages/insomnia-app/app/ui/css/lib/chrome/platform_app.css diff --git a/app/ui/css/lib/codemirror/codemirror.css b/packages/insomnia-app/app/ui/css/lib/codemirror/codemirror.css similarity index 100% rename from app/ui/css/lib/codemirror/codemirror.css rename to packages/insomnia-app/app/ui/css/lib/codemirror/codemirror.css diff --git a/app/ui/css/lib/codemirror/material.css b/packages/insomnia-app/app/ui/css/lib/codemirror/material.css similarity index 100% rename from app/ui/css/lib/codemirror/material.css rename to packages/insomnia-app/app/ui/css/lib/codemirror/material.css diff --git a/app/ui/css/lib/fontawesome/css/font-awesome.css b/packages/insomnia-app/app/ui/css/lib/fontawesome/css/font-awesome.css similarity index 100% rename from app/ui/css/lib/fontawesome/css/font-awesome.css rename to packages/insomnia-app/app/ui/css/lib/fontawesome/css/font-awesome.css diff --git a/app/ui/css/lib/fontawesome/fonts/fontawesome-webfont.woff2 b/packages/insomnia-app/app/ui/css/lib/fontawesome/fonts/fontawesome-webfont.woff2 similarity index 100% rename from app/ui/css/lib/fontawesome/fonts/fontawesome-webfont.woff2 rename to packages/insomnia-app/app/ui/css/lib/fontawesome/fonts/fontawesome-webfont.woff2 diff --git a/app/ui/css/lib/fonts/fonts/Bold/OpenSans-Bold.woff2 b/packages/insomnia-app/app/ui/css/lib/fonts/fonts/Bold/OpenSans-Bold.woff2 similarity index 100% rename from app/ui/css/lib/fonts/fonts/Bold/OpenSans-Bold.woff2 rename to packages/insomnia-app/app/ui/css/lib/fonts/fonts/Bold/OpenSans-Bold.woff2 diff --git a/app/ui/css/lib/fonts/fonts/BoldItalic/OpenSans-BoldItalic.woff2 b/packages/insomnia-app/app/ui/css/lib/fonts/fonts/BoldItalic/OpenSans-BoldItalic.woff2 similarity index 100% rename from app/ui/css/lib/fonts/fonts/BoldItalic/OpenSans-BoldItalic.woff2 rename to packages/insomnia-app/app/ui/css/lib/fonts/fonts/BoldItalic/OpenSans-BoldItalic.woff2 diff --git a/app/ui/css/lib/fonts/fonts/ExtraBold/OpenSans-ExtraBold.woff2 b/packages/insomnia-app/app/ui/css/lib/fonts/fonts/ExtraBold/OpenSans-ExtraBold.woff2 similarity index 100% rename from app/ui/css/lib/fonts/fonts/ExtraBold/OpenSans-ExtraBold.woff2 rename to packages/insomnia-app/app/ui/css/lib/fonts/fonts/ExtraBold/OpenSans-ExtraBold.woff2 diff --git a/app/ui/css/lib/fonts/fonts/ExtraBoldItalic/OpenSans-ExtraBoldItalic.woff2 b/packages/insomnia-app/app/ui/css/lib/fonts/fonts/ExtraBoldItalic/OpenSans-ExtraBoldItalic.woff2 similarity index 100% rename from app/ui/css/lib/fonts/fonts/ExtraBoldItalic/OpenSans-ExtraBoldItalic.woff2 rename to packages/insomnia-app/app/ui/css/lib/fonts/fonts/ExtraBoldItalic/OpenSans-ExtraBoldItalic.woff2 diff --git a/app/ui/css/lib/fonts/fonts/Italic/OpenSans-Italic.woff2 b/packages/insomnia-app/app/ui/css/lib/fonts/fonts/Italic/OpenSans-Italic.woff2 similarity index 100% rename from app/ui/css/lib/fonts/fonts/Italic/OpenSans-Italic.woff2 rename to packages/insomnia-app/app/ui/css/lib/fonts/fonts/Italic/OpenSans-Italic.woff2 diff --git a/app/ui/css/lib/fonts/fonts/Light/OpenSans-Light.woff2 b/packages/insomnia-app/app/ui/css/lib/fonts/fonts/Light/OpenSans-Light.woff2 similarity index 100% rename from app/ui/css/lib/fonts/fonts/Light/OpenSans-Light.woff2 rename to packages/insomnia-app/app/ui/css/lib/fonts/fonts/Light/OpenSans-Light.woff2 diff --git a/app/ui/css/lib/fonts/fonts/LightItalic/OpenSans-LightItalic.woff2 b/packages/insomnia-app/app/ui/css/lib/fonts/fonts/LightItalic/OpenSans-LightItalic.woff2 similarity index 100% rename from app/ui/css/lib/fonts/fonts/LightItalic/OpenSans-LightItalic.woff2 rename to packages/insomnia-app/app/ui/css/lib/fonts/fonts/LightItalic/OpenSans-LightItalic.woff2 diff --git a/app/ui/css/lib/fonts/fonts/Regular/OpenSans-Regular.woff2 b/packages/insomnia-app/app/ui/css/lib/fonts/fonts/Regular/OpenSans-Regular.woff2 similarity index 100% rename from app/ui/css/lib/fonts/fonts/Regular/OpenSans-Regular.woff2 rename to packages/insomnia-app/app/ui/css/lib/fonts/fonts/Regular/OpenSans-Regular.woff2 diff --git a/app/ui/css/lib/fonts/fonts/Semibold/OpenSans-Semibold.woff2 b/packages/insomnia-app/app/ui/css/lib/fonts/fonts/Semibold/OpenSans-Semibold.woff2 similarity index 100% rename from app/ui/css/lib/fonts/fonts/Semibold/OpenSans-Semibold.woff2 rename to packages/insomnia-app/app/ui/css/lib/fonts/fonts/Semibold/OpenSans-Semibold.woff2 diff --git a/app/ui/css/lib/fonts/fonts/SemiboldItalic/OpenSans-SemiboldItalic.woff2 b/packages/insomnia-app/app/ui/css/lib/fonts/fonts/SemiboldItalic/OpenSans-SemiboldItalic.woff2 similarity index 100% rename from app/ui/css/lib/fonts/fonts/SemiboldItalic/OpenSans-SemiboldItalic.woff2 rename to packages/insomnia-app/app/ui/css/lib/fonts/fonts/SemiboldItalic/OpenSans-SemiboldItalic.woff2 diff --git a/app/ui/css/lib/fonts/open-sans.css b/packages/insomnia-app/app/ui/css/lib/fonts/open-sans.css similarity index 100% rename from app/ui/css/lib/fonts/open-sans.css rename to packages/insomnia-app/app/ui/css/lib/fonts/open-sans.css diff --git a/app/ui/css/reset.less b/packages/insomnia-app/app/ui/css/reset.less similarity index 100% rename from app/ui/css/reset.less rename to packages/insomnia-app/app/ui/css/reset.less diff --git a/app/ui/dnd-backend.js b/packages/insomnia-app/app/ui/dnd-backend.js similarity index 100% rename from app/ui/dnd-backend.js rename to packages/insomnia-app/app/ui/dnd-backend.js diff --git a/app/ui/images/dark.png b/packages/insomnia-app/app/ui/images/dark.png similarity index 100% rename from app/ui/images/dark.png rename to packages/insomnia-app/app/ui/images/dark.png diff --git a/app/ui/images/default.png b/packages/insomnia-app/app/ui/images/default.png similarity index 100% rename from app/ui/images/default.png rename to packages/insomnia-app/app/ui/images/default.png diff --git a/app/ui/images/light.png b/packages/insomnia-app/app/ui/images/light.png similarity index 100% rename from app/ui/images/light.png rename to packages/insomnia-app/app/ui/images/light.png diff --git a/app/ui/images/material.png b/packages/insomnia-app/app/ui/images/material.png similarity index 100% rename from app/ui/images/material.png rename to packages/insomnia-app/app/ui/images/material.png diff --git a/app/ui/images/purple.png b/packages/insomnia-app/app/ui/images/purple.png similarity index 100% rename from app/ui/images/purple.png rename to packages/insomnia-app/app/ui/images/purple.png diff --git a/app/ui/images/railscasts.png b/packages/insomnia-app/app/ui/images/railscasts.png similarity index 100% rename from app/ui/images/railscasts.png rename to packages/insomnia-app/app/ui/images/railscasts.png diff --git a/app/ui/images/solarized-dark.png b/packages/insomnia-app/app/ui/images/solarized-dark.png similarity index 100% rename from app/ui/images/solarized-dark.png rename to packages/insomnia-app/app/ui/images/solarized-dark.png diff --git a/app/ui/images/solarized-light.png b/packages/insomnia-app/app/ui/images/solarized-light.png similarity index 100% rename from app/ui/images/solarized-light.png rename to packages/insomnia-app/app/ui/images/solarized-light.png diff --git a/app/ui/images/solarized.png b/packages/insomnia-app/app/ui/images/solarized.png similarity index 100% rename from app/ui/images/solarized.png rename to packages/insomnia-app/app/ui/images/solarized.png diff --git a/app/ui/index.js b/packages/insomnia-app/app/ui/index.js similarity index 100% rename from app/ui/index.js rename to packages/insomnia-app/app/ui/index.js diff --git a/app/ui/redux/create.js b/packages/insomnia-app/app/ui/redux/create.js similarity index 100% rename from app/ui/redux/create.js rename to packages/insomnia-app/app/ui/redux/create.js diff --git a/app/ui/redux/modules/entities.js b/packages/insomnia-app/app/ui/redux/modules/entities.js similarity index 100% rename from app/ui/redux/modules/entities.js rename to packages/insomnia-app/app/ui/redux/modules/entities.js diff --git a/app/ui/redux/modules/global.js b/packages/insomnia-app/app/ui/redux/modules/global.js similarity index 100% rename from app/ui/redux/modules/global.js rename to packages/insomnia-app/app/ui/redux/modules/global.js diff --git a/app/ui/redux/modules/index.js b/packages/insomnia-app/app/ui/redux/modules/index.js similarity index 100% rename from app/ui/redux/modules/index.js rename to packages/insomnia-app/app/ui/redux/modules/index.js diff --git a/app/ui/redux/selectors.js b/packages/insomnia-app/app/ui/redux/selectors.js similarity index 100% rename from app/ui/redux/selectors.js rename to packages/insomnia-app/app/ui/redux/selectors.js diff --git a/bin/yarn-standalone.js b/packages/insomnia-app/bin/yarn-standalone.js similarity index 100% rename from bin/yarn-standalone.js rename to packages/insomnia-app/bin/yarn-standalone.js diff --git a/flow-typed/autobind-decorator.js b/packages/insomnia-app/flow-typed/autobind-decorator.js similarity index 100% rename from flow-typed/autobind-decorator.js rename to packages/insomnia-app/flow-typed/autobind-decorator.js diff --git a/flow-typed/aws4.js b/packages/insomnia-app/flow-typed/aws4.js similarity index 100% rename from flow-typed/aws4.js rename to packages/insomnia-app/flow-typed/aws4.js diff --git a/flow-typed/classnames.js b/packages/insomnia-app/flow-typed/classnames.js similarity index 100% rename from flow-typed/classnames.js rename to packages/insomnia-app/flow-typed/classnames.js diff --git a/flow-typed/clone.js b/packages/insomnia-app/flow-typed/clone.js similarity index 100% rename from flow-typed/clone.js rename to packages/insomnia-app/flow-typed/clone.js diff --git a/flow-typed/deep-equal.js b/packages/insomnia-app/flow-typed/deep-equal.js similarity index 100% rename from flow-typed/deep-equal.js rename to packages/insomnia-app/flow-typed/deep-equal.js diff --git a/flow-typed/electron-squirrel-startup.js b/packages/insomnia-app/flow-typed/electron-squirrel-startup.js similarity index 100% rename from flow-typed/electron-squirrel-startup.js rename to packages/insomnia-app/flow-typed/electron-squirrel-startup.js diff --git a/flow-typed/electron.js b/packages/insomnia-app/flow-typed/electron.js similarity index 100% rename from flow-typed/electron.js rename to packages/insomnia-app/flow-typed/electron.js diff --git a/flow-typed/graphql.js b/packages/insomnia-app/flow-typed/graphql.js similarity index 100% rename from flow-typed/graphql.js rename to packages/insomnia-app/flow-typed/graphql.js diff --git a/flow-typed/hawk.js b/packages/insomnia-app/flow-typed/hawk.js similarity index 100% rename from flow-typed/hawk.js rename to packages/insomnia-app/flow-typed/hawk.js diff --git a/flow-typed/iconv-lite.js b/packages/insomnia-app/flow-typed/iconv-lite.js similarity index 100% rename from flow-typed/iconv-lite.js rename to packages/insomnia-app/flow-typed/iconv-lite.js diff --git a/packages/insomnia-app/flow-typed/insomnia-cookies.js b/packages/insomnia-app/flow-typed/insomnia-cookies.js new file mode 100644 index 0000000000..9425bd2c4a --- /dev/null +++ b/packages/insomnia-app/flow-typed/insomnia-cookies.js @@ -0,0 +1,7 @@ +declare module 'insomnia-cookies' { + declare module.exports: { + cookieToString: Function, + jarFromCookies: Function, + cookiesFromJar: Function + } +} diff --git a/flow-typed/insomnia-importers.js b/packages/insomnia-app/flow-typed/insomnia-importers.js similarity index 100% rename from flow-typed/insomnia-importers.js rename to packages/insomnia-app/flow-typed/insomnia-importers.js diff --git a/flow-typed/insomnia-node-libcurl.js b/packages/insomnia-app/flow-typed/insomnia-node-libcurl.js similarity index 100% rename from flow-typed/insomnia-node-libcurl.js rename to packages/insomnia-app/flow-typed/insomnia-node-libcurl.js diff --git a/packages/insomnia-app/flow-typed/insomnia-plugin-hash.js b/packages/insomnia-app/flow-typed/insomnia-plugin-hash.js new file mode 100644 index 0000000000..cde869e67a --- /dev/null +++ b/packages/insomnia-app/flow-typed/insomnia-plugin-hash.js @@ -0,0 +1,7 @@ +import type {PluginTemplateTag} from '../app/templating/extensions/index'; + +declare module 'insomnia-plugin-hash' { + declare module.exports: { + templateTags: Array + } +} diff --git a/packages/insomnia-app/flow-typed/insomnia-prettify.js b/packages/insomnia-app/flow-typed/insomnia-prettify.js new file mode 100644 index 0000000000..a9cb2cd617 --- /dev/null +++ b/packages/insomnia-app/flow-typed/insomnia-prettify.js @@ -0,0 +1,5 @@ +declare module 'insomnia-prettify' { + declare module.exports: { + json: Function + } +} diff --git a/packages/insomnia-app/flow-typed/insomnia-url.js b/packages/insomnia-app/flow-typed/insomnia-url.js new file mode 100644 index 0000000000..6761464499 --- /dev/null +++ b/packages/insomnia-app/flow-typed/insomnia-url.js @@ -0,0 +1,11 @@ +declare module 'insomnia-url' { + declare module.exports: { + setDefaultProtocol: Function, + smartEncodeUrl: Function, + joinUrlAndQueryString: Function, + deconstructQueryStringToParams: Function, + extractQueryStringFromUrl: Function, + buildQueryParameter: Function, + buildQueryStringFromParams: Function + } +} diff --git a/flow-typed/jsonpath.js b/packages/insomnia-app/flow-typed/jsonpath.js similarity index 100% rename from flow-typed/jsonpath.js rename to packages/insomnia-app/flow-typed/jsonpath.js diff --git a/flow-typed/jwt-authentication.js b/packages/insomnia-app/flow-typed/jwt-authentication.js similarity index 100% rename from flow-typed/jwt-authentication.js rename to packages/insomnia-app/flow-typed/jwt-authentication.js diff --git a/flow-typed/mime-types.js b/packages/insomnia-app/flow-typed/mime-types.js similarity index 100% rename from flow-typed/mime-types.js rename to packages/insomnia-app/flow-typed/mime-types.js diff --git a/flow-typed/mkdirp.js b/packages/insomnia-app/flow-typed/mkdirp.js similarity index 100% rename from flow-typed/mkdirp.js rename to packages/insomnia-app/flow-typed/mkdirp.js diff --git a/flow-typed/moment.js b/packages/insomnia-app/flow-typed/moment.js similarity index 100% rename from flow-typed/moment.js rename to packages/insomnia-app/flow-typed/moment.js diff --git a/flow-typed/multiparty.js b/packages/insomnia-app/flow-typed/multiparty.js similarity index 100% rename from flow-typed/multiparty.js rename to packages/insomnia-app/flow-typed/multiparty.js diff --git a/flow-typed/nedb.js b/packages/insomnia-app/flow-typed/nedb.js similarity index 100% rename from flow-typed/nedb.js rename to packages/insomnia-app/flow-typed/nedb.js diff --git a/flow-typed/nunjucks.js b/packages/insomnia-app/flow-typed/nunjucks.js similarity index 100% rename from flow-typed/nunjucks.js rename to packages/insomnia-app/flow-typed/nunjucks.js diff --git a/flow-typed/oauth-1.0a.js b/packages/insomnia-app/flow-typed/oauth-1.0a.js similarity index 100% rename from flow-typed/oauth-1.0a.js rename to packages/insomnia-app/flow-typed/oauth-1.0a.js diff --git a/flow-typed/pdfjs-dist.js b/packages/insomnia-app/flow-typed/pdfjs-dist.js similarity index 100% rename from flow-typed/pdfjs-dist.js rename to packages/insomnia-app/flow-typed/pdfjs-dist.js diff --git a/flow-typed/react-tabs.js b/packages/insomnia-app/flow-typed/react-tabs.js similarity index 100% rename from flow-typed/react-tabs.js rename to packages/insomnia-app/flow-typed/react-tabs.js diff --git a/flow-typed/tar.js b/packages/insomnia-app/flow-typed/tar.js similarity index 100% rename from flow-typed/tar.js rename to packages/insomnia-app/flow-typed/tar.js diff --git a/flow-typed/tough-cookie.js b/packages/insomnia-app/flow-typed/tough-cookie.js similarity index 100% rename from flow-typed/tough-cookie.js rename to packages/insomnia-app/flow-typed/tough-cookie.js diff --git a/flow-typed/uuid.js b/packages/insomnia-app/flow-typed/uuid.js similarity index 100% rename from flow-typed/uuid.js rename to packages/insomnia-app/flow-typed/uuid.js diff --git a/flow-typed/xmldom.js b/packages/insomnia-app/flow-typed/xmldom.js similarity index 100% rename from flow-typed/xmldom.js rename to packages/insomnia-app/flow-typed/xmldom.js diff --git a/flow-typed/xpath.js b/packages/insomnia-app/flow-typed/xpath.js similarity index 100% rename from flow-typed/xpath.js rename to packages/insomnia-app/flow-typed/xpath.js diff --git a/packages/insomnia-app/package-lock.json b/packages/insomnia-app/package-lock.json new file mode 100644 index 0000000000..985deb5453 --- /dev/null +++ b/packages/insomnia-app/package-lock.json @@ -0,0 +1,18559 @@ +{ + "name": "insomnia-app", + "version": "1.0.0", + "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-mac": "1.0.1" + } + }, + "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 + }, + "@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 + }, + "JSONSelect": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/JSONSelect/-/JSONSelect-0.4.0.tgz", + "integrity": "sha1-oI7cxn6z/L6Z7WMIVTRKDPKCu40=" + }, + "JSV": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz", + "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=" + }, + "a-sync-waterfall": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.0.tgz", + "integrity": "sha1-OOgxnXk3niRiiEW1O5ZyKyng5Hw=" + }, + "abab": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", + "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "accepts": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "dev": true, + "requires": { + "mime-types": "2.1.17", + "negotiator": "0.6.1" + } + }, + "acorn": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.2.1.tgz", + "integrity": "sha512-jG0u7c4Ly+3QkkW18V+NRDN+4bWHdln30NL1ZL2AvFZZmQe/BfopYCtghCKKVBUSetZ4QKcyA0pY6/4Gw8Pv8w==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", + "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "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 + } + } + }, + "acorn-globals": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", + "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", + "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 + } + } + }, + "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": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "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": "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" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "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" + } + } + } + }, + "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-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "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" + } + }, + "app-package-builder": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/app-package-builder/-/app-package-builder-1.5.1.tgz", + "integrity": "sha512-kSSYzcoc5Qm5yATmKAoXg0+4bhHfGf5isyMOV/XZHDJ0Z9DUNMi6cp1u5V7qGpOgHlbWAKiALxxI3q4rWc+AaA==", + "dev": true, + "requires": { + "bluebird-lst": "1.0.5", + "builder-util": "3.4.1", + "builder-util-runtime": "3.2.0", + "fs-extra-p": "4.4.4", + "int64-buffer": "0.1.9", + "rabin-bindings": "1.7.3" + } + }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "dev": true, + "requires": { + "default-require-extensions": "1.0.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "archiver": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-2.1.0.tgz", + "integrity": "sha1-0t8ujVdzqCwdzOklzMQUUOqZmv0=", + "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" + } + }, + "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" + } + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.3" + } + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true, + "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-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true + }, + "array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz", + "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=", + "dev": true + }, + "array-includes": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", + "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "dev": true, + "requires": { + "define-properties": "1.1.2", + "es-abstract": "1.10.0" + } + }, + "array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" + }, + "array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" + }, + "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=" + }, + "asar-integrity": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asar-integrity/-/asar-integrity-0.2.3.tgz", + "integrity": "sha512-c+oMuxlpKRDv9Kv6WdjbnkySfSYATAmW+cvy8NIdMg9twY9RMvSdvOoPssroWlTpSra1qX9vLew2ROpV4jQm7w==", + "dev": true, + "requires": { + "bluebird-lst": "1.0.5", + "fs-extra-p": "4.4.4" + } + }, + "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=" + }, + "ast-types": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.15.tgz", + "integrity": "sha1-ju8IJ/BN/w7IhXupJavj/qYZTlI=" + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "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=" + }, + "async-exit-hook": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "autobind-decorator": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/autobind-decorator/-/autobind-decorator-1.4.3.tgz", + "integrity": "sha1-TJb/p3sQYi7eJPEQ9du/VmkUF9E=" + }, + "autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000770", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "1.0.30000770", + "electron-to-chromium": "1.3.27" + } + } + } + }, + "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=" + }, + "axios": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.15.3.tgz", + "integrity": "sha1-LJ1jiy4ZGgjqHWzJiOrda6W9wFM=", + "requires": { + "follow-redirects": "1.0.0" + } + }, + "babel-cli": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", + "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-polyfill": "6.26.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "chokidar": "1.7.0", + "commander": "2.12.1", + "convert-source-map": "1.5.1", + "fs-readdir-recursive": "1.1.0", + "glob": "7.1.2", + "lodash": "4.17.4", + "output-file-sync": "1.1.2", + "path-is-absolute": "1.0.1", + "slash": "1.0.0", + "source-map": "0.5.7", + "v8flags": "2.1.1" + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-core": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.0", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" + } + }, + "babel-eslint": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz", + "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0" + } + }, + "babel-generator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true, + "requires": { + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-builder-react-jsx": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", + "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "esutils": "2.0.2" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-jest": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-19.0.0.tgz", + "integrity": "sha1-WTI87ZmjqE01naIZyogQdP/Gzj8=", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-plugin-istanbul": "4.1.5", + "babel-preset-jest": "19.0.0" + } + }, + "babel-loader": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", + "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", + "dev": true, + "requires": { + "find-cache-dir": "1.0.0", + "loader-utils": "1.1.0", + "mkdirp": "0.5.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-istanbul": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz", + "integrity": "sha1-Z2DN2Xf0EdPhdbsGTyvDJ9mbK24=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "istanbul-lib-instrument": "1.9.1", + "test-exclude": "4.1.1" + } + }, + "babel-plugin-jest-hoist": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-19.0.0.tgz", + "integrity": "sha1-SuKgTqYSpuc2UfP95SwXiZEwS+o=", + "dev": true + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true + }, + "babel-plugin-syntax-decorators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", + "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", + "dev": true + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true + }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", + "dev": true + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "dev": true + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-decorators-legacy": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators-legacy/-/babel-plugin-transform-decorators-legacy-1.3.4.tgz", + "integrity": "sha1-dBtY9sW86eYCfgiC2cmU8E82aSU=", + "dev": true, + "requires": { + "babel-plugin-syntax-decorators": "6.13.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "requires": { + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", + "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "requires": { + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "requires": { + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true, + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "dev": true, + "requires": { + "babel-plugin-syntax-flow": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "dev": true, + "requires": { + "babel-plugin-syntax-object-rest-spread": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-display-name": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", + "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", + "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", + "dev": true, + "requires": { + "babel-helper-builder-react-jsx": "6.26.0", + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx-self": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", + "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx-source": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", + "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "requires": { + "regenerator-transform": "0.10.1" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "core-js": "2.5.1", + "regenerator-runtime": "0.10.5" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + } + } + }, + "babel-preset-env": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", + "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0", + "browserslist": "2.9.1", + "invariant": "2.2.2", + "semver": "5.4.1" + } + }, + "babel-preset-flow": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", + "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", + "dev": true, + "requires": { + "babel-plugin-transform-flow-strip-types": "6.22.0" + } + }, + "babel-preset-jest": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-19.0.0.tgz", + "integrity": "sha1-ItZyAdAjJKGVgRKI6zgpS7PKw5Y=", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "19.0.0" + } + }, + "babel-preset-react": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", + "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-plugin-transform-react-display-name": "6.25.0", + "babel-plugin-transform-react-jsx": "6.24.1", + "babel-plugin-transform-react-jsx-self": "6.22.0", + "babel-plugin-transform-react-jsx-source": "6.22.0", + "babel-preset-flow": "6.23.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-runtime": "6.26.0", + "core-js": "2.5.1", + "home-or-tmp": "2.0.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" + } + }, + "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.1", + "regenerator-runtime": "0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base62": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz", + "integrity": "sha1-e0F0wvlESXU7EcJlHAg9qEGnsIQ=" + }, + "base64-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz", + "integrity": "sha1-o5mS1yNYSBGYK+XikLtqU9hnAPE=" + }, + "base64url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-2.0.0.tgz", + "integrity": "sha1-6sFuA+oUOO/5Qj1puqNiYu0fcLs=" + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" + }, + "binary-extensions": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=" + }, + "binary-search-tree": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz", + "integrity": "sha1-fbs7IQ/coIJFDa0jNMMErzm9x4Q=", + "requires": { + "underscore": "1.4.4" + }, + "dependencies": { + "underscore": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", + "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=" + } + } + }, + "bindings": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", + "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==", + "dev": true + }, + "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" + } + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "requires": { + "inherits": "2.0.3" + } + }, + "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": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.5.tgz", + "integrity": "sha512-Ey0bDNys5qpYPhZ/oQ9vOEvD0TYQDTILMXWP2iGfvMg7rSDde+oV4aQQgqRH+CvBFNz2BSDQnPGMUl6LKBUUQA==", + "dev": true, + "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-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "content-type": "1.0.4", + "debug": "2.6.9", + "depd": "1.1.1", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "1.6.15" + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "2.1.1", + "deep-equal": "1.0.1", + "dns-equal": "1.0.0", + "dns-txt": "2.0.2", + "multicast-dns": "6.2.1", + "multicast-dns-service-types": "1.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": "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" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "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" + } + }, + "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" + } + }, + "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 + }, + "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" + } + } + } + }, + "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" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "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-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.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" + } + }, + "browserslist": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.9.1.tgz", + "integrity": "sha512-3n3nPdbUqn3nWmsy4PeSQthz2ja1ndpoXta+dwFFNhveGjMg6FXpWYe12vsTpNoXJbzx3j7GZXdtoVIdvh3JbA==", + "dev": true, + "requires": { + "caniuse-lite": "1.0.30000770", + "electron-to-chromium": "1.3.27" + } + }, + "bser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", + "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", + "dev": true, + "requires": { + "node-int64": "0.4.0" + } + }, + "buffer": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.0.8.tgz", + "integrity": "sha512-xXvjQhVNz50v2nPeoOsNqWCLGfiv4ji/gXZM28jnVwdLJxH4mFyqgqCKfaK9zf1KUbG6zTkjLOy7ou+jSMarGA==", + "requires": { + "base64-js": "1.2.0", + "ieee754": "1.1.8" + } + }, + "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-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "buffer-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==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builder-util": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-3.4.1.tgz", + "integrity": "sha512-st7TuC6xX7vtkQhNLzxrsBa2nUXcUQ3DGD+QfG7GpxY3OFBN1ZqMGn02u7tLoCzKB7ixo7RbhbfMyceb43VrmA==", + "dev": true, + "requires": { + "7zip-bin": "2.2.7", + "bluebird-lst": "1.0.5", + "builder-util-runtime": "3.2.0", + "chalk": "2.3.0", + "debug": "3.1.0", + "fs-extra-p": "4.4.4", + "ini": "1.3.5", + "is-ci": "1.0.10", + "js-yaml": "3.10.0", + "lazy-val": "1.0.2", + "node-emoji": "1.8.1", + "semver": "5.4.1", + "source-map-support": "0.5.0", + "stat-mode": "0.2.2", + "temp-file": "2.1.3", + "tunnel-agent": "0.6.0" + }, + "dependencies": { + "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" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "4.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.0.tgz", + "integrity": "sha512-vUoN3I7fHQe0R/SJLKRdKYuEdRGogsviXFkHHo17AWaTGv17VLnxw+CFXvqy+y4ORZ3doWLQcxRYfwKrsd/H7Q==", + "dev": true, + "requires": { + "source-map": "0.6.1" + } + }, + "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" + } + } + } + }, + "builder-util-runtime": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-3.2.0.tgz", + "integrity": "sha512-VRvyyLiZZSBjcUTqEsHlBJSK0s6uVQChO7kbmVeU6QmSJ7TtsotNQELO6lbahwZMAQ4Z/haCKhlLBDdhW+3aqA==", + "dev": true, + "requires": { + "bluebird-lst": "1.0.5", + "debug": "3.1.0", + "fs-extra-p": "4.4.4", + "sax": "1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "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 + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + }, + "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" + } + }, + "caniuse-api": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", + "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000770", + "lodash.memoize": "4.1.2", + "lodash.uniq": "4.5.0" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "1.0.30000770", + "electron-to-chromium": "1.3.27" + } + } + } + }, + "caniuse-db": { + "version": "1.0.30000770", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000770.tgz", + "integrity": "sha1-z2iuHLioL208Nd9Bxi3Glz5HAkQ=", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30000770", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000770.tgz", + "integrity": "sha1-vI5/ULBzJzOQ22qzVzeJCaFOm9s=", + "dev": true + }, + "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=" + }, + "catharsis": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.9.tgz", + "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=", + "requires": { + "underscore-contrib": "0.3.0" + } + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "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" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "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" + } + }, + "chownr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" + }, + "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 + }, + "ci-info": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.2.tgz", + "integrity": "sha512-uTGIPNx/nSpBdsF6xnseRXLLtfr9VLqkz8ZqHXr3Y7b6SftyRxBGjwMtJj1OhNbmlc1wZzLNAlAcvyIiE8a6ZA==", + "dev": true + }, + "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 + }, + "cjson": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.2.1.tgz", + "integrity": "sha1-c82KrWXZ4VBfmvF0TTt5wVJ2gqU=" + }, + "clap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", + "dev": true, + "requires": { + "chalk": "1.1.3" + } + }, + "classnames": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz", + "integrity": "sha1-+zgB1FNGdknvNgPH1hoCvRKb3m0=" + }, + "cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", + "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", + "dev": true, + "requires": { + "exit": "0.1.2", + "glob": "7.1.2" + } + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "2.0.0" + } + }, + "cli-spinners": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.1.0.tgz", + "integrity": "sha1-8YR7FohE2RemceudFH499JfJDQY=", + "dev": true + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + } + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "coa": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", + "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", + "dev": true, + "requires": { + "q": "1.5.1" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "codemirror": { + "version": "5.32.0", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.32.0.tgz", + "integrity": "sha512-95OxAlYiigW0g4n4ixFdavG07clJGILp3MvHh2pKR3FvyrTuHHvqtKSVbrV3/Jz6o0YqGvyCDLDTbH4h6ciaSw==" + }, + "codemirror-graphql": { + "version": "0.6.11", + "resolved": "https://registry.npmjs.org/codemirror-graphql/-/codemirror-graphql-0.6.11.tgz", + "integrity": "sha512-wh9lS3FvcKU1NvvE1pAOnsEfgzhSxe0EqxkL1qjbDC/chqPgfEyQB8WmQWnvglmmsUQHTcARY9jfYr6uZYQTVg==", + "requires": { + "graphql-language-service-interface": "0.0.19", + "graphql-language-service-parser": "0.0.15" + } + }, + "color": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", + "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", + "dev": true, + "requires": { + "clone": "1.0.3", + "color-convert": "1.9.1", + "color-string": "0.3.0" + }, + "dependencies": { + "clone": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", + "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", + "dev": true + } + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-string": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", + "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "colormin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", + "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", + "dev": true, + "requires": { + "color": "0.11.4", + "css-color-names": "0.0.4", + "has": "1.0.1" + } + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, + "combined-stream": { + "version": "1.0.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.12.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.1.tgz", + "integrity": "sha512-PCNLExLlI5HiPdaJs4pMXwOTHkSCpNQ1QJH9ykZLKtKEyKu3p9HgmH5l97vM8c0IUz6d54l+xEu2GG9yuYrFzA==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", + "dev": true + }, + "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" + } + }, + "compressible": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz", + "integrity": "sha1-xZpcmdt2dn6YdlAOJx72OzSTvWY=", + "dev": true, + "requires": { + "mime-db": "1.30.0" + } + }, + "compression": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.1.tgz", + "integrity": "sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=", + "dev": true, + "requires": { + "accepts": "1.3.4", + "bytes": "3.0.0", + "compressible": "2.0.12", + "debug": "2.6.9", + "on-headers": "1.0.1", + "safe-buffer": "5.1.1", + "vary": "1.1.2" + } + }, + "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=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" + } + }, + "concurrently": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-3.5.1.tgz", + "integrity": "sha512-689HrwGw8Rbk1xtV9C4dY6TPJAvIYZbRbnKSAtfJ7tHqICFGoZ0PCWYjxfmerRyxBG0o3sbG3pe7N8vqPwIHuQ==", + "dev": true, + "requires": { + "chalk": "0.5.1", + "commander": "2.6.0", + "date-fns": "1.29.0", + "lodash": "4.17.4", + "rx": "2.3.24", + "spawn-command": "0.0.2-1", + "supports-color": "3.2.3", + "tree-kill": "1.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz", + "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=", + "dev": true + }, + "ansi-styles": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz", + "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=", + "dev": true + }, + "chalk": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", + "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", + "dev": true, + "requires": { + "ansi-styles": "1.1.0", + "escape-string-regexp": "1.0.5", + "has-ansi": "0.1.0", + "strip-ansi": "0.3.0", + "supports-color": "0.2.0" + }, + "dependencies": { + "supports-color": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", + "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=", + "dev": true + } + } + }, + "commander": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz", + "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=", + "dev": true + }, + "has-ansi": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", + "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=", + "dev": true, + "requires": { + "ansi-regex": "0.2.1" + } + }, + "strip-ansi": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", + "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=", + "dev": true, + "requires": { + "ansi-regex": "0.2.1" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "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" + } + }, + "connect-history-api-fallback": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=", + "dev": true + }, + "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" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "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 + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "dev": true + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "content-type-parser": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", + "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==", + "dev": true + }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "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=" + }, + "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": "2.0.1", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-2.0.1.tgz", + "integrity": "sha1-8oO0A56nWa2pq36YetO92yQbeaY=", + "dev": true, + "requires": { + "cross-spawn": "3.0.1", + "lodash.assign": "3.2.0" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "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": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/crypto/-/crypto-0.0.3.tgz", + "integrity": "sha1-RwqBuGvkxe4XrMggeh9TFa4g27A=" + }, + "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-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-loader": { + "version": "0.28.7", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.7.tgz", + "integrity": "sha512-GxMpax8a/VgcfRrVy0gXD6yLd5ePYbXX/5zGgTVYp4wXtJklS8Z2VaUArJgc//f6/Dzil7BaJObdSv8eKKCPgg==", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "css-selector-tokenizer": "0.7.0", + "cssnano": "3.10.0", + "icss-utils": "2.1.0", + "loader-utils": "1.1.0", + "lodash.camelcase": "4.3.0", + "object-assign": "4.1.1", + "postcss": "5.2.18", + "postcss-modules-extract-imports": "1.1.0", + "postcss-modules-local-by-default": "1.2.0", + "postcss-modules-scope": "1.1.0", + "postcss-modules-values": "1.3.0", + "postcss-value-parser": "3.3.0", + "source-list-map": "2.0.0" + } + }, + "css-selector-tokenizer": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", + "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", + "dev": true, + "requires": { + "cssesc": "0.1.0", + "fastparse": "1.1.1", + "regexpu-core": "1.0.0" + }, + "dependencies": { + "regexpu-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "dev": true, + "requires": { + "regenerate": "1.3.3", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } + } + } + }, + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "dev": true + }, + "cssnano": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", + "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", + "dev": true, + "requires": { + "autoprefixer": "6.7.7", + "decamelize": "1.2.0", + "defined": "1.0.0", + "has": "1.0.1", + "object-assign": "4.1.1", + "postcss": "5.2.18", + "postcss-calc": "5.3.1", + "postcss-colormin": "2.2.2", + "postcss-convert-values": "2.6.1", + "postcss-discard-comments": "2.0.4", + "postcss-discard-duplicates": "2.1.0", + "postcss-discard-empty": "2.1.0", + "postcss-discard-overridden": "0.1.1", + "postcss-discard-unused": "2.2.3", + "postcss-filter-plugins": "2.0.2", + "postcss-merge-idents": "2.1.7", + "postcss-merge-longhand": "2.0.2", + "postcss-merge-rules": "2.1.2", + "postcss-minify-font-values": "1.0.5", + "postcss-minify-gradients": "1.0.5", + "postcss-minify-params": "1.2.2", + "postcss-minify-selectors": "2.1.1", + "postcss-normalize-charset": "1.1.1", + "postcss-normalize-url": "3.0.8", + "postcss-ordered-values": "2.2.3", + "postcss-reduce-idents": "2.4.0", + "postcss-reduce-initial": "1.0.1", + "postcss-reduce-transforms": "1.0.4", + "postcss-svgo": "2.1.6", + "postcss-unique-selectors": "2.0.2", + "postcss-value-parser": "3.3.0", + "postcss-zindex": "2.2.0" + } + }, + "csso": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", + "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", + "dev": true, + "requires": { + "clap": "1.2.3", + "source-map": "0.5.7" + } + }, + "cssom": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", + "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=", + "dev": true + }, + "cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "dev": true, + "requires": { + "cssom": "0.3.2" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "1.0.2" + } + }, + "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" + } + }, + "date-fns": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz", + "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==", + "dev": true + }, + "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 + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" + }, + "deep-extend": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" + }, + "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=" + }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "dev": true, + "requires": { + "strip-bom": "2.0.0" + } + }, + "define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "dev": true, + "requires": { + "foreach": "2.0.5", + "object-keys": "1.0.11" + }, + "dependencies": { + "object-keys": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", + "dev": true + } + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "object-assign": "4.1.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=" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", + "dev": true + }, + "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" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + }, + "detect-node": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", + "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=", + "dev": true + }, + "diff": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", + "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==", + "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" + } + }, + "disposables": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/disposables/-/disposables-1.0.1.tgz", + "integrity": "sha1-BkcnoltU9QK9griaot+4358bOeM=" + }, + "dmg-builder": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-2.1.7.tgz", + "integrity": "sha512-ZHM1t6kZFO2Qf6c0IpxtJc6dQ/lO+fPY/8O4UK+FCMmajzML4IEEL3zKsEooJV6KmarYnm7kqAWPL2nSNRlLhg==", + "dev": true, + "requires": { + "bluebird-lst": "1.0.5", + "builder-util": "3.4.1", + "debug": "3.1.0", + "fs-extra-p": "4.4.4", + "iconv-lite": "0.4.19", + "js-yaml": "3.10.0", + "parse-color": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "4.0.0" + } + } + } + }, + "dnd-core": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-2.5.4.tgz", + "integrity": "sha512-BcI782MfTm3wCxeIS5c7tAutyTwEIANtuu3W6/xkoJRwiqhRXKX3BbGlycUxxyzMsKdvvoavxgrC3EMPFNYL9A==", + "requires": { + "asap": "2.0.6", + "invariant": "2.2.2", + "lodash": "4.17.4", + "redux": "3.7.2" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.2.2.tgz", + "integrity": "sha512-kN+DjfGF7dJGUL7nWRktL9Z18t1rWP3aQlyZdY8XlpvU3Nc6GeFTQApftcjtWKxAZfiggZSGrCEoszNgvnpwDg==", + "dev": true, + "requires": { + "ip": "1.1.5", + "safe-buffer": "5.1.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "1.1.1" + } + }, + "doctrine": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", + "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", + "dev": true, + "requires": { + "esutils": "2.0.2", + "isarray": "1.0.0" + } + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dev": true, + "requires": { + "domelementtype": "1.1.3", + "entities": "1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", + "dev": true + } + } + }, + "dom-walk": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", + "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=", + "dev": true + }, + "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 + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "dev": true + }, + "domhandler": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", + "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } + }, + "domutils": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.6.2.tgz", + "integrity": "sha1-GVjMC0yUJuntNn+xyOhUiRsPo/8=", + "dev": true, + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "1.0.1" + } + }, + "dotenv": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", + "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=", + "dev": true + }, + "dotenv-expand": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.0.1.tgz", + "integrity": "sha1-aP3cFWGBTgoQlkERBX/xOM7X16g=", + "dev": true + }, + "ducktype": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ducktype/-/ducktype-1.1.0.tgz", + "integrity": "sha1-owrBwDIJFrDCRl19HKj5Vo59kYg=" + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "ebnf-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/ebnf-parser/-/ebnf-parser-0.1.10.tgz", + "integrity": "sha1-zR9rpHfFY4xAyX7ZtXLbW6tdgzE=" + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz", + "integrity": "sha1-S8kmJ07Dtau1AW5+HWCSGsJisqE=", + "requires": { + "base64url": "2.0.0", + "safe-buffer": "5.1.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "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.9", + "resolved": "https://registry.npmjs.org/electron/-/electron-1.7.9.tgz", + "integrity": "sha1-rdVOn4+D7QL2UZ7BATX2mLGTNs8=", + "dev": true, + "requires": { + "@types/node": "7.0.48", + "electron-download": "3.3.0", + "extract-zip": "1.6.6" + } + }, + "electron-builder": { + "version": "19.46.4", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-19.46.4.tgz", + "integrity": "sha512-h5f+7RIz/9pQAZMI7lNe2V/grSvHTbPsOY18JqkUIQkImSJdTcAx/jUrI5bVUXA0GW/ANibVPDw1ZSG6zqK7uA==", + "dev": true, + "requires": { + "bluebird-lst": "1.0.5", + "builder-util": "3.4.1", + "builder-util-runtime": "3.2.0", + "chalk": "2.3.0", + "electron-builder-lib": "19.46.4", + "electron-download-tf": "4.3.4", + "fs-extra-p": "4.4.4", + "is-ci": "1.0.10", + "lazy-val": "1.0.2", + "read-config-file": "1.2.0", + "sanitize-filename": "1.6.1", + "update-notifier": "2.3.0", + "yargs": "10.0.3" + }, + "dependencies": { + "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" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "electron-builder-lib": { + "version": "19.46.4", + "resolved": "https://registry.npmjs.org/electron-builder-lib/-/electron-builder-lib-19.46.4.tgz", + "integrity": "sha512-Pvrl/otLyODkCONybO/HQCyJj+UxRXKKt0oZdjFCRcHX9oYODB7bTkz2NRanaob6yWiFkaB6pnnrVMUpN/kNhQ==", + "dev": true, + "requires": { + "7zip-bin": "2.2.7", + "app-package-builder": "1.5.1", + "asar-integrity": "0.2.3", + "async-exit-hook": "2.0.1", + "bluebird-lst": "1.0.5", + "builder-util": "3.4.1", + "builder-util-runtime": "3.2.0", + "chromium-pickle-js": "0.2.0", + "debug": "3.1.0", + "dmg-builder": "2.1.7", + "ejs": "2.5.7", + "electron-osx-sign": "0.4.7", + "electron-publish": "19.46.4", + "fs-extra-p": "4.4.4", + "hosted-git-info": "2.5.0", + "is-ci": "1.0.10", + "isbinaryfile": "3.0.2", + "js-yaml": "3.10.0", + "lazy-val": "1.0.2", + "minimatch": "3.0.4", + "normalize-package-data": "2.4.0", + "plist": "2.1.0", + "read-config-file": "1.2.0", + "sanitize-filename": "1.6.1", + "semver": "5.4.1", + "temp-file": "2.1.3" + } + }, + "electron-download-tf": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/electron-download-tf/-/electron-download-tf-4.3.4.tgz", + "integrity": "sha512-SQYDGMLpTgty1bx3NycuDb7dNPzktVSdK2sqPZjyRocauq/uN/V4S2lcpFVLupaHhKlD8zozm9fTpm5UdohvTg==", + "dev": true, + "requires": { + "debug": "3.1.0", + "env-paths": "1.0.0", + "fs-extra": "4.0.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" + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "fs-extra": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", + "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "4.0.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "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" + } + } + } + }, + "electron-builder-lib": { + "version": "19.46.5", + "resolved": "https://registry.npmjs.org/electron-builder-lib/-/electron-builder-lib-19.46.5.tgz", + "integrity": "sha512-zV8XVs2zHrWcRtN5pEFHK4KvhlwHa/keGdHas5vZwmwJgpvLbVIVVnJp1R28yyr0fur32ATLtioV3TPOjjjGHA==", + "dev": true, + "requires": { + "7zip-bin": "2.2.7", + "app-package-builder": "1.5.2", + "asar-integrity": "0.2.3", + "async-exit-hook": "2.0.1", + "bluebird-lst": "1.0.5", + "builder-util": "3.4.2", + "builder-util-runtime": "3.3.0", + "chromium-pickle-js": "0.2.0", + "debug": "3.1.0", + "dmg-builder": "2.1.8", + "ejs": "2.5.7", + "electron-osx-sign": "0.4.7", + "electron-publish": "19.46.5", + "fs-extra-p": "4.4.4", + "hosted-git-info": "2.5.0", + "is-ci": "1.0.10", + "isbinaryfile": "3.0.2", + "js-yaml": "3.10.0", + "lazy-val": "1.0.2", + "minimatch": "3.0.4", + "normalize-package-data": "2.4.0", + "plist": "2.1.0", + "read-config-file": "1.2.0", + "sanitize-filename": "1.6.1", + "semver": "5.4.1", + "temp-file": "3.0.0" + }, + "dependencies": { + "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" + } + }, + "app-package-builder": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/app-package-builder/-/app-package-builder-1.5.2.tgz", + "integrity": "sha512-CgUVUZmRSR7+7LHCNcldSKQhJCewEN2zhH1uVkHsQmU8bDd5nwa7LRZTzTmxVnKpTv1+duOytq78an/Yf83NVg==", + "dev": true, + "requires": { + "bluebird-lst": "1.0.5", + "builder-util": "3.4.2", + "builder-util-runtime": "3.3.0", + "fs-extra-p": "4.4.4", + "int64-buffer": "0.1.9", + "rabin-bindings": "1.7.3" + } + }, + "builder-util": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-3.4.2.tgz", + "integrity": "sha512-/PINOWgq3PolxDIiPLV1nxw54XduN/Ev16BR71iRii442yqxykrzj6Pxg1TWBHo1jtL/LL6vuGoTdWRCTqogXA==", + "dev": true, + "requires": { + "7zip-bin": "2.2.7", + "bluebird-lst": "1.0.5", + "builder-util-runtime": "3.3.0", + "chalk": "2.3.0", + "debug": "3.1.0", + "fs-extra-p": "4.4.4", + "ini": "1.3.5", + "is-ci": "1.0.10", + "js-yaml": "3.10.0", + "lazy-val": "1.0.2", + "node-emoji": "1.8.1", + "semver": "5.4.1", + "source-map-support": "0.5.0", + "stat-mode": "0.2.2", + "temp-file": "3.0.0", + "tunnel-agent": "0.6.0" + } + }, + "builder-util-runtime": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-3.3.0.tgz", + "integrity": "sha512-rJreKRttTNgq6gQ5jphlUu8zMk/s0+rAYLIkmHMSTkkFpYJopj1PcimnTTJORUheJ8JLKejv+g2293f9o9YATA==", + "dev": true, + "requires": { + "bluebird-lst": "1.0.5", + "debug": "3.1.0", + "fs-extra-p": "4.4.4", + "sax": "1.2.4" + } + }, + "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" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "dmg-builder": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-2.1.8.tgz", + "integrity": "sha512-fcdvE+Af1nGb0vB5+eDjC2+FWXAjsgpS7HAuM1Gk3wIUQTIv2n503+akKnA2be/5kGlqyJ4zjfo/Lk1f+G/new==", + "dev": true, + "requires": { + "bluebird-lst": "1.0.5", + "builder-util": "3.4.2", + "debug": "3.1.0", + "fs-extra-p": "4.4.4", + "iconv-lite": "0.4.19", + "js-yaml": "3.10.0", + "parse-color": "1.0.0" + } + }, + "electron-publish": { + "version": "19.46.5", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-19.46.5.tgz", + "integrity": "sha512-VuQf8RbtC9At/43nd6fndCBjMWnQfmgP8k1P37c1bTqQtE7YIO0OOw8m3mPfJ1B6RjIlszbamgOjH/C/Zynsfg==", + "dev": true, + "requires": { + "bluebird-lst": "1.0.5", + "builder-util": "3.4.2", + "builder-util-runtime": "3.3.0", + "chalk": "2.3.0", + "fs-extra-p": "4.4.4", + "mime": "2.0.3" + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "4.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.0.tgz", + "integrity": "sha512-vUoN3I7fHQe0R/SJLKRdKYuEdRGogsviXFkHHo17AWaTGv17VLnxw+CFXvqy+y4ORZ3doWLQcxRYfwKrsd/H7Q==", + "dev": true, + "requires": { + "source-map": "0.6.1" + } + }, + "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" + } + }, + "temp-file": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.0.0.tgz", + "integrity": "sha512-WaSZQMckvo975nF1fSv05Nuya63AiLtyn0oYURF1xw1BF092CpIXgRv/Y0vQeocL5pv4ouVsBOnTCoK4kAK2uQ==", + "dev": true, + "requires": { + "async-exit-hook": "2.0.1", + "bluebird-lst": "1.0.5", + "fs-extra-p": "4.4.4", + "lazy-val": "1.0.2" + } + } + } + }, + "electron-builder-squirrel-windows": { + "version": "19.46.5", + "resolved": "https://registry.npmjs.org/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-19.46.5.tgz", + "integrity": "sha512-MYMh8vasBjE0kXXit3qUN2Zl76klXbr2+SFM450q0HjU/58+nTO/9Vw7cCVfPU6xrVOPdYK2le221rNJJTAkZA==", + "dev": true, + "requires": { + "7zip-bin": "2.2.7", + "archiver": "2.1.0", + "bluebird-lst": "1.0.5", + "builder-util": "3.4.2", + "fs-extra-p": "4.4.4", + "sanitize-filename": "1.6.1" + }, + "dependencies": { + "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" + } + }, + "builder-util": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-3.4.2.tgz", + "integrity": "sha512-/PINOWgq3PolxDIiPLV1nxw54XduN/Ev16BR71iRii442yqxykrzj6Pxg1TWBHo1jtL/LL6vuGoTdWRCTqogXA==", + "dev": true, + "requires": { + "7zip-bin": "2.2.7", + "bluebird-lst": "1.0.5", + "builder-util-runtime": "3.3.0", + "chalk": "2.3.0", + "debug": "3.1.0", + "fs-extra-p": "4.4.4", + "ini": "1.3.5", + "is-ci": "1.0.10", + "js-yaml": "3.10.0", + "lazy-val": "1.0.2", + "node-emoji": "1.8.1", + "semver": "5.4.1", + "source-map-support": "0.5.0", + "stat-mode": "0.2.2", + "temp-file": "3.0.0", + "tunnel-agent": "0.6.0" + } + }, + "builder-util-runtime": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-3.3.0.tgz", + "integrity": "sha512-rJreKRttTNgq6gQ5jphlUu8zMk/s0+rAYLIkmHMSTkkFpYJopj1PcimnTTJORUheJ8JLKejv+g2293f9o9YATA==", + "dev": true, + "requires": { + "bluebird-lst": "1.0.5", + "debug": "3.1.0", + "fs-extra-p": "4.4.4", + "sax": "1.2.4" + } + }, + "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" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "4.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.0.tgz", + "integrity": "sha512-vUoN3I7fHQe0R/SJLKRdKYuEdRGogsviXFkHHo17AWaTGv17VLnxw+CFXvqy+y4ORZ3doWLQcxRYfwKrsd/H7Q==", + "dev": true, + "requires": { + "source-map": "0.6.1" + } + }, + "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" + } + }, + "temp-file": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.0.0.tgz", + "integrity": "sha512-WaSZQMckvo975nF1fSv05Nuya63AiLtyn0oYURF1xw1BF092CpIXgRv/Y0vQeocL5pv4ouVsBOnTCoK4kAK2uQ==", + "dev": true, + "requires": { + "async-exit-hook": "2.0.1", + "bluebird-lst": "1.0.5", + "fs-extra-p": "4.4.4", + "lazy-val": "1.0.2" + } + } + } + }, + "electron-context-menu": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-0.9.1.tgz", + "integrity": "sha1-7U3yDAgEkcPJlqv8s2MVmUajgFg=", + "requires": { + "electron-dl": "1.10.0", + "electron-is-dev": "0.1.2" + } + }, + "electron-dl": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/electron-dl/-/electron-dl-1.10.0.tgz", + "integrity": "sha1-+UQWBkBW/G8qhq5JhhTJNSaJCvk=", + "requires": { + "ext-name": "5.0.0", + "pupa": "1.0.0", + "unused-filename": "1.0.0" + } + }, + "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": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + } + } + }, + "electron-is-dev": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-0.1.2.tgz", + "integrity": "sha1-ihBD4ys6HaHD9VPc4oznZCRhZ+M=" + }, + "electron-osx-sign": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.7.tgz", + "integrity": "sha1-HXVkeoJ0jqzUi+pwYW7IP/rePuU=", + "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" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "electron-publish": { + "version": "19.46.4", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-19.46.4.tgz", + "integrity": "sha512-WhWAhPm/ynGQmrbFN4vm4jvlQqUUmsCN3PB7KVoxePtKI9Am99pkRWTjZ5ZKKNJbvanRIn6G8f4nYrc79nT2Ig==", + "dev": true, + "requires": { + "bluebird-lst": "1.0.5", + "builder-util": "3.4.1", + "builder-util-runtime": "3.2.0", + "chalk": "2.3.0", + "fs-extra-p": "4.4.4", + "mime": "2.0.3" + }, + "dependencies": { + "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" + } + }, + "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": "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" + } + } + } + }, + "electron-rebuild": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.6.0.tgz", + "integrity": "sha1-6NJvTY6f5TiN81hks2WOXP1Ny34=", + "dev": true, + "requires": { + "colors": "1.1.2", + "debug": "2.6.9", + "fs-extra": "3.0.1", + "node-abi": "2.1.2", + "node-gyp": "3.6.2", + "ora": "1.3.0", + "rimraf": "2.6.2", + "spawn-rx": "2.0.12", + "yargs": "7.1.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 + }, + "fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "3.0.1", + "universalify": "0.1.1" + } + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "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" + } + }, + "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 + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "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": "5.0.0" + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "requires": { + "camelcase": "3.0.0" + } + } + } + }, + "electron-squirrel-startup": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/electron-squirrel-startup/-/electron-squirrel-startup-1.0.0.tgz", + "integrity": "sha1-GbTlWTP6Dvj1VnhLnGYPdyVGoLg=", + "requires": { + "debug": "2.6.9" + } + }, + "electron-to-chromium": { + "version": "1.3.27", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz", + "integrity": "sha1-eOy4o5kGYYe7N07t412ccFZagD0=", + "dev": true + }, + "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" + } + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "encodeurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", + "dev": true + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "0.4.19" + } + }, + "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=", + "dev": true, + "requires": { + "once": "1.4.0" + } + }, + "enhanced-resolve": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", + "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "memory-fs": "0.4.1", + "object-assign": "4.1.1", + "tapable": "0.2.8" + } + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", + "dev": true + }, + "env-paths": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", + "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=", + "dev": true + }, + "errno": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", + "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", + "dev": true, + "requires": { + "prr": "0.0.0" + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "error-stack-parser": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-1.3.6.tgz", + "integrity": "sha1-4Oc7k+QXE40c18C3RrGkoUhUwpI=", + "dev": true, + "requires": { + "stackframe": "0.3.1" + } + }, + "es-abstract": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz", + "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==", + "dev": true, + "requires": { + "es-to-primitive": "1.1.1", + "function-bind": "1.1.1", + "has": "1.0.1", + "is-callable": "1.1.3", + "is-regex": "1.0.4" + } + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "dev": true, + "requires": { + "is-callable": "1.1.3", + "is-date-object": "1.0.1", + "is-symbol": "1.0.1" + } + }, + "es3ify": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/es3ify/-/es3ify-0.1.4.tgz", + "integrity": "sha1-rZ+l3xrjTz8x4SEbWBiy1RB439E=", + "requires": { + "esprima-fb": "3001.1.0-dev-harmony-fb", + "jstransform": "3.0.0", + "through": "2.3.8" + }, + "dependencies": { + "esprima-fb": { + "version": "3001.1.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz", + "integrity": "sha1-t303q8046gt3Qmu4vCkizmtCZBE=" + } + } + }, + "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-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "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" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + } + } + }, + "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": "3.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz", + "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "chalk": "1.1.3", + "concat-stream": "1.6.0", + "debug": "2.6.9", + "doctrine": "2.0.0", + "escope": "3.6.0", + "espree": "3.5.2", + "esquery": "1.0.0", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "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.7.0", + "json-stable-stringify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "1.2.1", + "progress": "1.1.8", + "require-uncached": "1.0.3", + "shelljs": "0.7.8", + "strip-bom": "3.0.0", + "strip-json-comments": "2.0.1", + "table": "3.8.3", + "text-table": "0.2.0", + "user-home": "2.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "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" + } + } + } + }, + "eslint-config-semistandard": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-semistandard/-/eslint-config-semistandard-11.0.0.tgz", + "integrity": "sha1-RO73z9/Uchnjp7gbkbVA6IC7JhU=", + "dev": true + }, + "eslint-config-standard": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-10.2.1.tgz", + "integrity": "sha1-wGHk0GbzedwXzVYsZOgZtN1FRZE=", + "dev": true + }, + "eslint-import-resolver-node": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz", + "integrity": "sha512-yUtXS15gIcij68NmXmP9Ni77AQuCN0itXbCc/jWd8C6/yKZaSNXicpC8cgvjnxVdmfsosIXrjpzFq7GcDryb6A==", + "dev": true, + "requires": { + "debug": "2.6.9", + "resolve": "1.5.0" + } + }, + "eslint-module-utils": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz", + "integrity": "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==", + "dev": true, + "requires": { + "debug": "2.6.9", + "pkg-dir": "1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "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" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true, + "requires": { + "find-up": "1.1.2" + } + } + } + }, + "eslint-plugin-filenames": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-filenames/-/eslint-plugin-filenames-1.2.0.tgz", + "integrity": "sha1-runByQGJyV0uSZAsFg7O7+zZn1M=", + "dev": true, + "requires": { + "lodash.camelcase": "4.3.0", + "lodash.kebabcase": "4.1.1", + "lodash.snakecase": "4.1.1", + "lodash.upperfirst": "4.3.1" + } + }, + "eslint-plugin-flowtype": { + "version": "2.39.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.39.1.tgz", + "integrity": "sha512-RiQv+7Z9QDJuzt+NO8sYgkLGT+h+WeCrxP7y8lI7wpU41x3x/2o3PGtHk9ck8QnA9/mlbNcy/hG0eKvmd7npaA==", + "dev": true, + "requires": { + "lodash": "4.17.4" + } + }, + "eslint-plugin-html": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-2.0.3.tgz", + "integrity": "sha1-fImIOrDIX6XSi2ZqFKTpBqqQuJc=", + "dev": true, + "requires": { + "htmlparser2": "3.9.2" + } + }, + "eslint-plugin-import": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz", + "integrity": "sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g==", + "dev": true, + "requires": { + "builtin-modules": "1.1.1", + "contains-path": "0.1.0", + "debug": "2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "0.3.1", + "eslint-module-utils": "2.1.1", + "has": "1.0.1", + "lodash.cond": "4.5.2", + "minimatch": "3.0.4", + "read-pkg-up": "2.0.0" + }, + "dependencies": { + "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" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "2.3.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "eslint-plugin-jest": { + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-19.0.1.tgz", + "integrity": "sha1-QqQg6Q6BqnThYsFhZuQ6MbiQ7s4=", + "dev": true + }, + "eslint-plugin-json": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-1.2.0.tgz", + "integrity": "sha1-m6c7sL6Z1QCT6In1uWhGPSow764=", + "dev": true, + "requires": { + "jshint": "2.9.5" + } + }, + "eslint-plugin-node": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-5.2.1.tgz", + "integrity": "sha512-xhPXrh0Vl/b7870uEbaumb2Q+LxaEcOQ3kS1jtIXanBAwpMre1l5q/l2l/hESYJGEFKuI78bp6Uw50hlpr7B+g==", + "dev": true, + "requires": { + "ignore": "3.3.7", + "minimatch": "3.0.4", + "resolve": "1.5.0", + "semver": "5.3.0" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + } + } + }, + "eslint-plugin-promise": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-3.6.0.tgz", + "integrity": "sha512-YQzM6TLTlApAr7Li8vWKR+K3WghjwKcYzY0d2roWap4SLK+kzuagJX/leTetIDWsFcTFnKNJXWupDCD6aZkP2Q==", + "dev": true + }, + "eslint-plugin-react": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.5.1.tgz", + "integrity": "sha512-YGSjB9Qu6QbVTroUZi66pYky3DfoIPLdHQ/wmrBGyBRnwxQsBXAov9j2rpXt/55i8nyMv6IRWJv2s4d4YnduzQ==", + "dev": true, + "requires": { + "doctrine": "2.0.0", + "has": "1.0.1", + "jsx-ast-utils": "2.0.1", + "prop-types": "15.6.0" + } + }, + "eslint-plugin-standard": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz", + "integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=", + "dev": true + }, + "esmangle-evaluator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esmangle-evaluator/-/esmangle-evaluator-1.0.1.tgz", + "integrity": "sha1-Yg2GbvSGGzMR91dm1SqFcrs8YzY=" + }, + "espree": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.2.tgz", + "integrity": "sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==", + "dev": true, + "requires": { + "acorn": "5.2.1", + "acorn-jsx": "3.0.1" + } + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "esquery": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", + "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", + "dev": true, + "requires": { + "estraverse": "4.2.0" + } + }, + "esrecurse": { + "version": "4.2.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.1.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=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1.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=", + "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" + } + }, + "eventemitter3": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", + "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", + "dev": true + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, + "eventsource": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", + "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "dev": true, + "requires": { + "original": "1.0.0" + } + }, + "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" + } + }, + "exec-sh": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz", + "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==", + "dev": true, + "requires": { + "merge": "1.2.0" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + } + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "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" + } + }, + "expand-template": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.0.tgz", + "integrity": "sha512-kkjwkMqj0h4w/sb32ERCDxCQkREMCAgS39DscDnSwDsbxnwwM1BTZySdC3Bn1lhY7vL08n9GoO/fVTynjDgRyQ==", + "dev": true + }, + "expect": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-21.2.1.tgz", + "integrity": "sha512-orfQQqFRTX0jH7znRIGi8ZMR8kTNpXklTTz8+HGTpmTKZo3Occ6JNB5FXMb8cRuiiC/GyDqsr30zUa66ACYlYw==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "jest-diff": "21.2.1", + "jest-get-type": "21.2.0", + "jest-matcher-utils": "21.2.1", + "jest-message-util": "21.2.1", + "jest-regex-util": "21.2.0" + }, + "dependencies": { + "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" + } + } + } + }, + "express": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", + "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", + "dev": true, + "requires": { + "accepts": "1.3.4", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "1.1.1", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "finalhandler": "1.1.0", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "2.0.2", + "qs": "6.5.1", + "range-parser": "1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.1", + "serve-static": "1.13.1", + "setprototypeof": "1.1.0", + "statuses": "1.3.1", + "type-is": "1.6.15", + "utils-merge": "1.0.1", + "vary": "1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + } + } + }, + "ext-list": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", + "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", + "requires": { + "mime-db": "1.30.0" + } + }, + "ext-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", + "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", + "requires": { + "ext-list": "2.2.2", + "sort-keys-length": "1.0.1" + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "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": { + "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": "1.2.0", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-1.2.0.tgz", + "integrity": "sha1-wY0k71CRF0pJfzGM0ksCaiXN2rQ=", + "requires": { + "acorn": "1.2.2", + "foreach": "2.0.5", + "isarray": "0.0.1", + "object-keys": "1.0.11" + }, + "dependencies": { + "acorn": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz", + "integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ=" + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "object-keys": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" + } + } + }, + "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-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=" + }, + "fastparse": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", + "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", + "dev": true + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": "0.7.0" + } + }, + "fb-watchman": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", + "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", + "dev": true, + "requires": { + "bser": "2.0.0" + } + }, + "fbjs": { + "version": "0.8.16", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", + "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.3.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.17" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + } + } + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "requires": { + "pend": "1.2.0" + } + }, + "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" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "1.3.0", + "object-assign": "4.1.1" + } + }, + "file-loader": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.5.tgz", + "integrity": "sha512-RzGHDatcVNpGISTvCpfUfOGpYuSR7HSsSg87ki+wF6rw1Hm0RALPTiAdsxAq1UwLf0RRhbe22/eHK6nhXspiOQ==", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "schema-utils": "0.3.0" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" + }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dev": true, + "requires": { + "glob": "7.1.2", + "minimatch": "3.0.4" + } + }, + "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" + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" + } + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "requires": { + "commondir": "1.0.1", + "make-dir": "1.1.0", + "pkg-dir": "2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "dev": true, + "requires": { + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" + } + }, + "flatten": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", + "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", + "dev": true + }, + "flow": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/flow/-/flow-0.2.3.tgz", + "integrity": "sha1-+Npl76JJEn7Jk3aiiJZXKpeV0a8=", + "dev": true + }, + "flow-bin": { + "version": "0.58.0", + "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.58.0.tgz", + "integrity": "sha512-jMImubdtZxLafc0EXZVCtOIJVknqGrruClPbol6kZ1oVQioMWu95iiKQMaSDJ78F4TjYuZCbqsdZ4LSI7TSsjA==", + "dev": true + }, + "follow-redirects": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.0.0.tgz", + "integrity": "sha1-jjQpjL0uF28lTv/sdaHHjMhJ/Tc=", + "requires": { + "debug": "2.6.9" + } + }, + "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=" + }, + "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" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" + }, + "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" + } + }, + "fs-extra-p": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-4.4.4.tgz", + "integrity": "sha512-zHsMNJWhXD184QfHKEIFSQSgAFNV7v9J+Nt2XpaLZp2nTz6WxZNV+R4G2uYeGeLTMaKvUZiqGKrH/4iFCupcUA==", + "dev": true, + "requires": { + "bluebird-lst": "1.0.5", + "fs-extra": "4.0.2" + }, + "dependencies": { + "fs-extra": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", + "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + } + } + }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, + "fs-readfile-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fs-readfile-promise/-/fs-readfile-promise-2.0.1.tgz", + "integrity": "sha1-gAI4I5gfn//+AWCei+Zo9prknnA=", + "requires": { + "graceful-fs": "4.1.11" + } + }, + "fs-writefile-promise": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-writefile-promise/-/fs-writefile-promise-1.0.3.tgz", + "integrity": "sha1-4C+bWP/CVe2CKtx6ARFPRF1I0GM=", + "requires": { + "mkdirp-promise": "1.1.0", + "pinkie-promise": "1.0.0" + }, + "dependencies": { + "pinkie": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz", + "integrity": "sha1-Wkfyi6EBXQIBvae/DzWOR77Ix+Q=" + }, + "pinkie-promise": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz", + "integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=", + "requires": { + "pinkie": "1.0.0" + } + } + } + }, + "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==", + "optional": true, + "requires": { + "nan": "2.8.0", + "node-pre-gyp": "0.6.39" + }, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "bundled": true, + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.2.9" + } + }, + "asn1": { + "version": "0.2.3", + "bundled": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "requires": { + "inherits": "2.0.3" + } + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "requires": { + "mime-db": "1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.39", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "1.0.2", + "hawk": "3.1.3", + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "bundled": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + } + } + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.2" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "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" + } + }, + "github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", + "dev": true + }, + "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.4.0", + "path-is-absolute": "1.0.1" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "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=", + "dev": true, + "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.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "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" + }, + "dependencies": { + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "graphql": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-0.10.5.tgz", + "integrity": "sha512-Q7cx22DiLhwHsEfUnUip1Ww/Vfx7FS0w6+iHItNuN61+XpegHSa3k5U0+6M5BcpavQImBwFiy0z3uYwY7cXMLQ==", + "requires": { + "iterall": "1.1.3" + } + }, + "graphql-language-service-config": { + "version": "0.0.17", + "resolved": "https://registry.npmjs.org/graphql-language-service-config/-/graphql-language-service-config-0.0.17.tgz", + "integrity": "sha512-TCR3AklPuTfG+tM92XvAx1aiWwa/SuTaQaouMmTV8eoVCBhm98XzoVP626QzQpJ/VnE1+83l9Ljv6PieWgdVDQ==", + "requires": { + "graphql-language-service-types": "0.0.21" + } + }, + "graphql-language-service-interface": { + "version": "0.0.19", + "resolved": "https://registry.npmjs.org/graphql-language-service-interface/-/graphql-language-service-interface-0.0.19.tgz", + "integrity": "sha512-mlZZJeCjv1Gc6cpJHuKOkXY+pne7KlfOo9Lzv9hAW9//zkzKCl9iuv71JnGN/su87z0VqjIUc0Eng4gyd7i1/Q==", + "requires": { + "graphql": "0.10.5", + "graphql-language-service-config": "0.0.17", + "graphql-language-service-parser": "0.0.15", + "graphql-language-service-types": "0.0.21", + "graphql-language-service-utils": "0.0.17" + } + }, + "graphql-language-service-parser": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/graphql-language-service-parser/-/graphql-language-service-parser-0.0.15.tgz", + "integrity": "sha512-D/aWjI8EWQvlpdxN4SuU9Pa6MLq05Kne+nz9UtSFM/H30eNy8vy6HWqQik2qRcxscFJYW6adNvh/i6q23y8hFg==", + "requires": { + "graphql-language-service-types": "0.0.21" + } + }, + "graphql-language-service-types": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/graphql-language-service-types/-/graphql-language-service-types-0.0.21.tgz", + "integrity": "sha512-/fSs1JmGEee8IPd7a7FJRmzK1o0W35nJZO0aJSGk2mq7QCvyKqNC8rgKG5YozAEj4ZY2psKUIxIpm6ssCTuUbw==", + "requires": { + "graphql": "0.10.5" + } + }, + "graphql-language-service-utils": { + "version": "0.0.17", + "resolved": "https://registry.npmjs.org/graphql-language-service-utils/-/graphql-language-service-utils-0.0.17.tgz", + "integrity": "sha512-rL5qQ7Qw55BUHq2CEZEpOarb70eiPPCVNkJbPgUwYsS3FVlONf46+DlKhY7d6OKqNIgelPFZfr5cusuockANTg==", + "requires": { + "graphql": "0.10.5", + "graphql-language-service-types": "0.0.21" + } + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true + }, + "handle-thing": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", + "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", + "dev": true + }, + "handlebars": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "dev": true, + "requires": { + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "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=", + "dev": true, + "requires": { + "function-bind": "1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-color": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", + "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=" + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "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" + } + }, + "highlight.js": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.12.0.tgz", + "integrity": "sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4=" + }, + "hkdf": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/hkdf/-/hkdf-0.0.2.tgz", + "integrity": "sha1-L422Ff3vhwIB+C0rYZym00fQZH4=" + }, + "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==" + }, + "hoist-non-react-statics": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz", + "integrity": "sha1-ND24TGAYxlB3iJgkATWhQg7iLOA=" + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "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 + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "obuf": "1.1.1", + "readable-stream": "2.3.3", + "wbuf": "1.7.2" + } + }, + "html-comment-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", + "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", + "dev": true + }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dev": true, + "requires": { + "whatwg-encoding": "1.0.3" + } + }, + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=" + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "dev": true, + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.4.1", + "domutils": "1.6.2", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "dev": true, + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.3.1" + }, + "dependencies": { + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "dev": true + } + } + }, + "http-parser-js": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.9.tgz", + "integrity": "sha1-6hoE+2St/wJC6ZdPKX3Uw8rSceE=", + "dev": true + }, + "http-proxy": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", + "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", + "dev": true, + "requires": { + "eventemitter3": "1.2.0", + "requires-port": "1.0.0" + } + }, + "http-proxy-middleware": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", + "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", + "dev": true, + "requires": { + "http-proxy": "1.16.2", + "is-glob": "3.1.0", + "lodash": "4.17.4", + "micromatch": "2.3.11" + }, + "dependencies": { + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "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": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "dev": true, + "requires": { + "postcss": "6.0.14" + }, + "dependencies": { + "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" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "postcss": { + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", + "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "4.5.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "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" + } + } + } + }, + "ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" + }, + "ignore": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", + "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", + "dev": true + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "import-local": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-0.1.1.tgz", + "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=", + "dev": true, + "requires": { + "pkg-dir": "2.0.0", + "resolve-cwd": "2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "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=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "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==" + }, + "inline-process-browser": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/inline-process-browser/-/inline-process-browser-1.0.0.tgz", + "integrity": "sha1-RqYbFT3TybFiSxoAYm7bT39BTyI=", + "requires": { + "falafel": "1.2.0", + "through2": "0.6.5" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "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" + } + }, + "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.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "requires": { + "readable-stream": "1.0.34", + "xtend": "4.0.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + } + } + }, + "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" + }, + "dependencies": { + "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" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "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" + } + } + } + }, + "insomnia-cookies": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/insomnia-cookies/-/insomnia-cookies-0.0.2.tgz", + "integrity": "sha512-noG/ZcqtqiMWQWL/Dd0qylfzvc0MTpPlKg169rQSRNcJr486gFdbSd1/XH0gqfx+UuavDs1oXkZ/cFblS4hOMQ==", + "requires": { + "tough-cookie": "2.3.3" + } + }, + "insomnia-httpsnippet": { + "version": "1.16.5", + "resolved": "https://registry.npmjs.org/insomnia-httpsnippet/-/insomnia-httpsnippet-1.16.5.tgz", + "integrity": "sha512-ftsDyY3ImscHM3CxQWXLGjaULj32oN7+L/Ppq69CIjIKbQJy18iLX+EkEWfzZNEmuHj17KpGOPiF1XTnHWUiaQ==", + "requires": { + "chalk": "1.1.3", + "commander": "2.12.1", + "debug": "2.6.9", + "event-stream": "3.3.4", + "form-data": "1.0.1", + "fs-readfile-promise": "2.0.1", + "fs-writefile-promise": "1.0.3", + "har-validator": "2.1.3", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "form-data": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", + "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", + "requires": { + "async": "2.6.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "har-validator": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.1.3.tgz", + "integrity": "sha1-aP9JyFz7wrNPtC9kgKl5a2RB3PM=", + "requires": { + "chalk": "1.1.3", + "commander": "2.12.1", + "is-my-json-valid": "2.16.1" + } + } + } + }, + "insomnia-importers": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/insomnia-importers/-/insomnia-importers-1.5.2.tgz", + "integrity": "sha512-aZ1RmciJ3rScqj3AJZIKLDeXuDroiknDAgvISkeVsA5GSOH7dL2Xrbp/YwVlIjUckKyEicP5vdqzZVkiQrrgig==", + "requires": { + "commander": "2.12.1", + "shell-quote": "1.6.1" + } + }, + "insomnia-node-libcurl": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/insomnia-node-libcurl/-/insomnia-node-libcurl-1.2.4.tgz", + "integrity": "sha512-etMWmbQ93mXcHY4K3SBF7mFu7s3dyI2/TPto9qedVVxIMSEGBzBgoSVrqpcXUCoPeKVG2f9AUVZdSM/JV46gEA==", + "requires": { + "debug": "2.6.9", + "fs-extra": "4.0.2", + "nan": "2.5.1", + "node-gyp": "3.6.2", + "node-pre-gyp": "0.6.39", + "npmlog": "4.0.2" + }, + "dependencies": { + "fs-extra": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", + "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.1" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "4.1.11" + } + }, + "nan": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.5.1.tgz", + "integrity": "sha1-1bAWkSUzJql6K77p5hxV2NYDUeI=" + }, + "npmlog": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.0.2.tgz", + "integrity": "sha1-0DlQ4OeM4VJ7om0qdZLpNIrD518=", + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + } + } + }, + "insomnia-plugin-base64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/insomnia-plugin-base64/-/insomnia-plugin-base64-1.0.1.tgz", + "integrity": "sha512-1iHxTFGcOF7lBODdPPOxR2btFSCpDAQNzQtJ+qnZTOCwKDqViWeAYbNT/mm3HtfT9ldjOFVIKyhn1GO0aQ1GGQ==" + }, + "insomnia-plugin-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/insomnia-plugin-file/-/insomnia-plugin-file-1.0.1.tgz", + "integrity": "sha512-/HcMHmBB4Iq+FMsULRW+ccsn49WnKO5GQV4jW2nTLFsq4plxXawgNd0JeDEOTjobjYvLBwxp9m4LYZATndHUSA==" + }, + "insomnia-plugin-hash": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/insomnia-plugin-hash/-/insomnia-plugin-hash-1.0.1.tgz", + "integrity": "sha512-dxR3aqE7UxF7HB6/yois63yFTSJ1JbK6aEFqGZZY/A6qFoBZVbhAw5SwXNJXg8vBmJf+XA12R0ahA9ofnOkRwQ==" + }, + "insomnia-plugin-now": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/insomnia-plugin-now/-/insomnia-plugin-now-1.0.1.tgz", + "integrity": "sha512-+cJObTNm4tMtpAtq7J/jfSnlWODzoB7TSGwrTEx4CVt8P81sXYHLfg9JqbQY66SGd2daeOhuCN5ounno2tbATA==", + "requires": { + "moment": "2.19.2" + } + }, + "insomnia-plugin-request": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/insomnia-plugin-request/-/insomnia-plugin-request-1.0.1.tgz", + "integrity": "sha512-l2YWNBcfsiF2Pen7uFWTL80OPzmgR7bngEBV77QzQAItlFUdUSHnuxuGPIvYvv9LgKgmMyAAkwDJuoDFrKljew==", + "requires": { + "insomnia-cookies": "0.0.2", + "insomnia-url": "0.0.2" + } + }, + "insomnia-plugin-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/insomnia-plugin-response/-/insomnia-plugin-response-1.0.1.tgz", + "integrity": "sha512-QG02O3TPkU0n1zdpFp+K+qSLY6hU7PAtMpycNC2OK2PlvLG6aVlSe9hO/V95xmluZnAzvYTJS3RjndNnUGFR+g==", + "requires": { + "insomnia-xpath": "0.0.2", + "jsonpath": "1.0.0" + }, + "dependencies": { + "esprima": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" + }, + "jsonpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.0.0.tgz", + "integrity": "sha1-Rc2dTE0NaCXZC9fkD4PxGCsT3Qc=", + "requires": { + "esprima": "1.2.2", + "jison": "0.4.13", + "static-eval": "2.0.0", + "underscore": "1.7.0" + } + }, + "static-eval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.0.tgz", + "integrity": "sha512-6flshd3F1Gwm+Ksxq463LtFd1liC77N/PX1FVVc3OzL3hAmo2fwHFbuArkcfi7s9rTNsLEhcRmXGFZhlgy40uw==", + "requires": { + "escodegen": "1.9.0" + } + }, + "underscore": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" + } + } + }, + "insomnia-plugin-uuid": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/insomnia-plugin-uuid/-/insomnia-plugin-uuid-1.0.1.tgz", + "integrity": "sha512-+PiHlCHGWgXQb0HBQo8nTgkELh6d49S3CJxt6L20OGiMiSjqICBgnZJbKJV+MmXpiSPk01n9x9tluEvl1ydFCQ==", + "requires": { + "uuid": "3.1.0" + } + }, + "insomnia-url": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/insomnia-url/-/insomnia-url-0.0.2.tgz", + "integrity": "sha512-Ep9gqptCcUCrgvwbua4LBC9v5nZnSANULwuOsaN8pCHgJdNb0//lHNEE26JhlE+Ts6jagfSsgH2mUOZyIJhnQQ==" + }, + "insomnia-xpath": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/insomnia-xpath/-/insomnia-xpath-0.0.2.tgz", + "integrity": "sha512-fQ9ir2s9xjkmUpiFmW9xKD+dhe8b0QNHP3LmUNrlYpPF7vSNJPixV3DYe15b9dd7zft9iTLkvxZ30LUXZglGMQ==", + "requires": { + "insomnia-cookies": "0.0.2", + "xmldom": "0.1.27", + "xpath": "0.0.26" + }, + "dependencies": { + "xpath": { + "version": "0.0.26", + "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.26.tgz", + "integrity": "sha512-cn58wPnkUO7woqCLXlg9xeUMsPjMF7ZJ2gExwZ2F0IXkFAkL+6cyMdFUXJkld7Quw4k1y8QY9wlI3lMNNQkroQ==" + } + } + }, + "int64-buffer": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/int64-buffer/-/int64-buffer-0.1.9.tgz", + "integrity": "sha1-ngOdoEOyT3ixlrKD4EZT716ZD2E=", + "dev": true + }, + "internal-ip": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", + "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", + "dev": true, + "requires": { + "meow": "3.7.0" + } + }, + "interpret": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz", + "integrity": "sha1-ggzdWIuGj/sZGoCVBtbJyPISsbA=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "requires": { + "loose-envify": "1.3.1" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ipaddr.js": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", + "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-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=", + "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-callable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", + "dev": true + }, + "is-ci": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.0.10.tgz", + "integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=", + "dev": true, + "requires": { + "ci-info": "1.1.2" + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" + }, + "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=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "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.0" + } + }, + "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==", + "requires": { + "generate-function": "2.0.0", + "generate-object-property": "1.2.0", + "jsonpointer": "4.0.1", + "xtend": "4.0.1" + }, + "dependencies": { + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + } + } + }, + "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.0" + } + }, + "is-path-inside": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", + "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", + "dev": true, + "requires": { + "path-is-inside": "1.0.2" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "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-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-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "1.0.1" + } + }, + "is-resolvable": { + "version": "1.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=" + }, + "is-svg": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "dev": true, + "requires": { + "html-comment-regex": "1.1.1" + } + }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "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=" + }, + "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" + } + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "1.7.3", + "whatwg-fetch": "2.0.3" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "istanbul-api": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.2.1.tgz", + "integrity": "sha512-oFCwXvd65amgaPCzqrR+a2XjanS1MvpXN6l/MlMUTv6uiA1NOgGX+I0uyq8Lg3GDxsxPsaP1049krz3hIJ5+KA==", + "dev": true, + "requires": { + "async": "2.6.0", + "fileset": "2.0.3", + "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", + "js-yaml": "3.7.0", + "mkdirp": "0.5.1", + "once": "1.4.0" + } + }, + "istanbul-lib-coverage": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", + "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", + "dev": true, + "requires": { + "append-transform": "0.4.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz", + "integrity": "sha512-RQmXeQ7sphar7k7O1wTNzVczF9igKpaeGQAG9qR2L+BS4DCJNTI9nytRmIVYevwO0bbq+2CXvJmYDuz0gMrywA==", + "dev": true, + "requires": { + "babel-generator": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.1.1", + "semver": "5.4.1" + } + }, + "istanbul-lib-report": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz", + "integrity": "sha512-UTv4VGx+HZivJQwAo1wnRwe1KTvFpfi/NYwN7DcsrdzMXwpRT/Yb6r4SBPoHWj4VuQPakR32g4PUUeyKkdDkBA==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" + }, + "dependencies": { + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz", + "integrity": "sha512-8BfdqSfEdtip7/wo1RnrvLpHVEd8zMZEDmOFEnpC6dg0vXflHt9nvoAyQUzig2uMSXfF2OBEYBV3CVjIL9JvaQ==", + "dev": true, + "requires": { + "debug": "3.1.0", + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "istanbul-reports": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.3.tgz", + "integrity": "sha512-ZEelkHh8hrZNI5xDaKwPMFwDsUf5wIEI2bXAFGp1e6deR2mnEKBPhLJEgr4ZBt8Gi6Mj38E/C8kcy9XLggVO2Q==", + "dev": true, + "requires": { + "handlebars": "4.0.11" + } + }, + "iterall": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.1.3.tgz", + "integrity": "sha512-Cu/kb+4HiNSejAPhSaN1VukdNTTi/r4/e+yykqjlG/IW+1gZH5b4+Bq3whDX4tvbYugta3r8KTMUiqT3fIGxuQ==" + }, + "jest": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-21.2.1.tgz", + "integrity": "sha512-mXN0ppPvWYoIcC+R+ctKxAJ28xkt/Z5Js875padm4GbgUn6baeR5N4Ng6LjatIRpUQDZVJABT7Y4gucFjPryfw==", + "dev": true, + "requires": { + "jest-cli": "21.2.1" + }, + "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" + } + }, + "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" + } + }, + "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 + }, + "jest-cli": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-21.2.1.tgz", + "integrity": "sha512-T1BzrbFxDIW/LLYQqVfo94y/hhaj1NzVQkZgBumAC+sxbjMROI7VkihOdxNR758iYbQykL2ZOWUBurFgkQrzdg==", + "dev": true, + "requires": { + "ansi-escapes": "3.0.0", + "chalk": "2.3.0", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "is-ci": "1.0.10", + "istanbul-api": "1.2.1", + "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-instrument": "1.9.1", + "istanbul-lib-source-maps": "1.2.2", + "jest-changed-files": "21.2.0", + "jest-config": "21.2.1", + "jest-environment-jsdom": "21.2.1", + "jest-haste-map": "21.2.0", + "jest-message-util": "21.2.1", + "jest-regex-util": "21.2.0", + "jest-resolve-dependencies": "21.2.0", + "jest-runner": "21.2.1", + "jest-runtime": "21.2.1", + "jest-snapshot": "21.2.1", + "jest-util": "21.2.1", + "micromatch": "2.3.11", + "node-notifier": "5.1.2", + "pify": "3.0.0", + "slash": "1.0.0", + "string-length": "2.0.0", + "strip-ansi": "4.0.0", + "which": "1.3.0", + "worker-farm": "1.5.2", + "yargs": "9.0.1" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "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" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "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" + } + }, + "yargs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "dev": true, + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "jest-changed-files": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-21.2.0.tgz", + "integrity": "sha512-+lCNP1IZLwN1NOIvBcV5zEL6GENK6TXrDj4UxWIeLvIsIDa+gf6J7hkqsW2qVVt/wvH65rVvcPwqXdps5eclTQ==", + "dev": true, + "requires": { + "throat": "4.1.0" + } + }, + "jest-config": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-21.2.1.tgz", + "integrity": "sha512-fJru5HtlD/5l2o25eY9xT0doK3t2dlglrqoGpbktduyoI0T5CwuB++2YfoNZCrgZipTwPuAGonYv0q7+8yDc/A==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "glob": "7.1.2", + "jest-environment-jsdom": "21.2.1", + "jest-environment-node": "21.2.1", + "jest-get-type": "21.2.0", + "jest-jasmine2": "21.2.1", + "jest-regex-util": "21.2.0", + "jest-resolve": "21.2.0", + "jest-util": "21.2.1", + "jest-validate": "21.2.1", + "pretty-format": "21.2.1" + }, + "dependencies": { + "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" + } + }, + "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": "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" + } + } + } + }, + "jest-diff": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-21.2.1.tgz", + "integrity": "sha512-E5fu6r7PvvPr5qAWE1RaUwIh/k6Zx/3OOkZ4rk5dBJkEWRrUuSgbMt2EO8IUTPTd6DOqU3LW6uTIwX5FRvXoFA==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "diff": "3.4.0", + "jest-get-type": "21.2.0", + "pretty-format": "21.2.1" + }, + "dependencies": { + "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" + } + }, + "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": "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" + } + } + } + }, + "jest-docblock": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", + "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==", + "dev": true + }, + "jest-environment-jsdom": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-21.2.1.tgz", + "integrity": "sha512-mecaeNh0eWmzNrUNMWARysc0E9R96UPBamNiOCYL28k7mksb1d0q6DD38WKP7ABffjnXyUWJPVaWRgUOivwXwg==", + "dev": true, + "requires": { + "jest-mock": "21.2.0", + "jest-util": "21.2.1", + "jsdom": "9.12.0" + } + }, + "jest-environment-node": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-21.2.1.tgz", + "integrity": "sha512-R211867wx9mVBVHzrjGRGTy5cd05K7eqzQl/WyZixR/VkJ4FayS8qkKXZyYnwZi6Rxo6WEV81cDbiUx/GfuLNw==", + "dev": true, + "requires": { + "jest-mock": "21.2.0", + "jest-util": "21.2.1" + } + }, + "jest-get-type": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-21.2.0.tgz", + "integrity": "sha512-y2fFw3C+D0yjNSDp7ab1kcd6NUYfy3waPTlD8yWkAtiocJdBRQqNoRqVfMNxgj+IjT0V5cBIHJO0z9vuSSZ43Q==", + "dev": true + }, + "jest-haste-map": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-21.2.0.tgz", + "integrity": "sha512-5LhsY/loPH7wwOFRMs+PT4aIAORJ2qwgbpMFlbWbxfN0bk3ZCwxJ530vrbSiTstMkYLao6JwBkLhCJ5XbY7ZHw==", + "dev": true, + "requires": { + "fb-watchman": "2.0.0", + "graceful-fs": "4.1.11", + "jest-docblock": "21.2.0", + "micromatch": "2.3.11", + "sane": "2.2.0", + "worker-farm": "1.5.2" + } + }, + "jest-jasmine2": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-21.2.1.tgz", + "integrity": "sha512-lw8FXXIEekD+jYNlStfgNsUHpfMWhWWCgHV7n0B7mA/vendH7vBFs8xybjQsDzJSduptBZJHqQX9SMssya9+3A==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "expect": "21.2.1", + "graceful-fs": "4.1.11", + "jest-diff": "21.2.1", + "jest-matcher-utils": "21.2.1", + "jest-message-util": "21.2.1", + "jest-snapshot": "21.2.1", + "p-cancelable": "0.3.0" + }, + "dependencies": { + "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" + } + }, + "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": "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" + } + } + } + }, + "jest-matcher-utils": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-21.2.1.tgz", + "integrity": "sha512-kn56My+sekD43dwQPrXBl9Zn9tAqwoy25xxe7/iY4u+mG8P3ALj5IK7MLHZ4Mi3xW7uWVCjGY8cm4PqgbsqMCg==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "jest-get-type": "21.2.0", + "pretty-format": "21.2.1" + }, + "dependencies": { + "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" + } + }, + "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": "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" + } + } + } + }, + "jest-message-util": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-21.2.1.tgz", + "integrity": "sha512-EbC1X2n0t9IdeMECJn2BOg7buOGivCvVNjqKMXTzQOu7uIfLml+keUfCALDh8o4rbtndIeyGU8/BKfoTr/LVDQ==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "micromatch": "2.3.11", + "slash": "1.0.0" + }, + "dependencies": { + "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" + } + }, + "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": "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" + } + } + } + }, + "jest-mock": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-21.2.0.tgz", + "integrity": "sha512-aZDfyVf0LEoABWiY6N0d+O963dUQSyUa4qgzurHR3TBDPen0YxKCJ6l2i7lQGh1tVdsuvdrCZ4qPj+A7PievCw==", + "dev": true + }, + "jest-regex-util": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-21.2.0.tgz", + "integrity": "sha512-BKQ1F83EQy0d9Jen/mcVX7D+lUt2tthhK/2gDWRgLDJRNOdRgSp1iVqFxP8EN1ARuypvDflRfPzYT8fQnoBQFQ==", + "dev": true + }, + "jest-resolve": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-21.2.0.tgz", + "integrity": "sha512-vefQ/Lr+VdNvHUZFQXWtOqHX3HEdOc2MtSahBO89qXywEbUxGPB9ZLP9+BHinkxb60UT2Q/tTDOS6rYc6Mwigw==", + "dev": true, + "requires": { + "browser-resolve": "1.11.2", + "chalk": "2.3.0", + "is-builtin-module": "1.0.0" + }, + "dependencies": { + "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" + } + }, + "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": "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" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-21.2.0.tgz", + "integrity": "sha512-ok8ybRFU5ScaAcfufIQrCbdNJSRZ85mkxJ1EhUp8Bhav1W1/jv/rl1Q6QoVQHObNxmKnbHVKrfLZbCbOsXQ+bQ==", + "dev": true, + "requires": { + "jest-regex-util": "21.2.0" + } + }, + "jest-runner": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-21.2.1.tgz", + "integrity": "sha512-Anb72BOQlHqF/zETqZ2K20dbYsnqW/nZO7jV8BYENl+3c44JhMrA8zd1lt52+N7ErnsQMd2HHKiVwN9GYSXmrg==", + "dev": true, + "requires": { + "jest-config": "21.2.1", + "jest-docblock": "21.2.0", + "jest-haste-map": "21.2.0", + "jest-jasmine2": "21.2.1", + "jest-message-util": "21.2.1", + "jest-runtime": "21.2.1", + "jest-util": "21.2.1", + "pify": "3.0.0", + "throat": "4.1.0", + "worker-farm": "1.5.2" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "jest-runtime": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-21.2.1.tgz", + "integrity": "sha512-6omlpA3+NSE+rHwD0PQjNEjZeb2z+oRmuehMfM1tWQVum+E0WV3pFt26Am0DUfQkkPyTABvxITRjCUclYgSOsA==", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-jest": "21.2.0", + "babel-plugin-istanbul": "4.1.5", + "chalk": "2.3.0", + "convert-source-map": "1.5.1", + "graceful-fs": "4.1.11", + "jest-config": "21.2.1", + "jest-haste-map": "21.2.0", + "jest-regex-util": "21.2.0", + "jest-resolve": "21.2.0", + "jest-util": "21.2.1", + "json-stable-stringify": "1.0.1", + "micromatch": "2.3.11", + "slash": "1.0.0", + "strip-bom": "3.0.0", + "write-file-atomic": "2.3.0", + "yargs": "9.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "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" + } + }, + "babel-jest": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-21.2.0.tgz", + "integrity": "sha512-O0W2qLoWu1QOoOGgxiR2JID4O6WSpxPiQanrkyi9SSlM0PJ60Ptzlck47lhtnr9YZO3zYOsxHwnyeWJ6AffoBQ==", + "dev": true, + "requires": { + "babel-plugin-istanbul": "4.1.5", + "babel-preset-jest": "21.2.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz", + "integrity": "sha512-yi5QuiVyyvhBUDLP4ButAnhYzkdrUwWDtvUJv71hjH3fclhnZg4HkDeqaitcR2dZZx/E67kGkRcPVjtVu+SJfQ==", + "dev": true + }, + "babel-preset-jest": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz", + "integrity": "sha512-hm9cBnr2h3J7yXoTtAVV0zg+3vg0Q/gT2GYuzlreTU0EPkJRtlNgKJJ3tBKEn0+VjAi3JykV6xCJkuUYttEEfA==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "21.2.0", + "babel-plugin-syntax-object-rest-spread": "6.13.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" + } + }, + "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 + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "2.3.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "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" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "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" + } + }, + "yargs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "dev": true, + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "jest-snapshot": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-21.2.1.tgz", + "integrity": "sha512-bpaeBnDpdqaRTzN8tWg0DqOTo2DvD3StOemxn67CUd1p1Po+BUpvePAp44jdJ7Pxcjfg+42o4NHw1SxdCA2rvg==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "jest-diff": "21.2.1", + "jest-matcher-utils": "21.2.1", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "pretty-format": "21.2.1" + }, + "dependencies": { + "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" + } + }, + "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": "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" + } + } + } + }, + "jest-util": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-21.2.1.tgz", + "integrity": "sha512-r20W91rmHY3fnCoO7aOAlyfC51x2yeV3xF+prGsJAUsYhKeV670ZB8NO88Lwm7ASu8SdH0S+U+eFf498kjhA4g==", + "dev": true, + "requires": { + "callsites": "2.0.0", + "chalk": "2.3.0", + "graceful-fs": "4.1.11", + "jest-message-util": "21.2.1", + "jest-mock": "21.2.0", + "jest-validate": "21.2.1", + "mkdirp": "0.5.1" + }, + "dependencies": { + "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" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "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" + } + }, + "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": "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" + } + } + } + }, + "jest-validate": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-21.2.1.tgz", + "integrity": "sha512-k4HLI1rZQjlU+EC682RlQ6oZvLrE5SCh3brseQc24vbZTxzT/k/3urar5QMCVgjadmSO7lECeGdc6YxnM3yEGg==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "jest-get-type": "21.2.0", + "leven": "2.1.0", + "pretty-format": "21.2.1" + }, + "dependencies": { + "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" + } + }, + "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": "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" + } + } + } + }, + "jison": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/jison/-/jison-0.4.13.tgz", + "integrity": "sha1-kEFwfWIkE2f1iDRTK58ZwsNvrHg=", + "requires": { + "JSONSelect": "0.4.0", + "cjson": "0.2.1", + "ebnf-parser": "0.1.10", + "escodegen": "0.0.21", + "esprima": "1.0.4", + "jison-lex": "0.2.1", + "lex-parser": "0.1.4", + "nomnom": "1.5.2" + }, + "dependencies": { + "colors": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", + "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=" + }, + "escodegen": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.21.tgz", + "integrity": "sha1-U9ZSz6EDA4gnlFilJmxf/HCcY8M=", + "requires": { + "esprima": "1.0.4", + "estraverse": "0.0.4", + "source-map": "0.5.7" + } + }, + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" + }, + "estraverse": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-0.0.4.tgz", + "integrity": "sha1-AaCTLf7ldGhKWYr1pnw7+bZCjbI=" + }, + "nomnom": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.5.2.tgz", + "integrity": "sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8=", + "requires": { + "colors": "0.5.1", + "underscore": "1.1.7" + } + }, + "underscore": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz", + "integrity": "sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA=" + } + } + }, + "jison-lex": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/jison-lex/-/jison-lex-0.2.1.tgz", + "integrity": "sha1-rEuBXozOUTLrErXfz+jXB7iETf4=", + "requires": { + "lex-parser": "0.1.4", + "nomnom": "1.5.2" + }, + "dependencies": { + "colors": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", + "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=" + }, + "nomnom": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.5.2.tgz", + "integrity": "sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8=", + "requires": { + "colors": "0.5.1", + "underscore": "1.1.7" + } + }, + "underscore": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz", + "integrity": "sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA=" + } + } + }, + "js-base64": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.3.2.tgz", + "integrity": "sha512-Y2/+DnfJJXT1/FCwUebUhLWb3QihxiSC42+ctHLGogmW2jPY6LCapMdFZXRvVP2z6qyKW7s6qncE/9gSqZiArw==", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "js-yaml": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", + "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "2.7.3" + } + }, + "js2xmlparser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", + "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", + "requires": { + "xmlcreate": "1.0.2" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "jsdoc": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.5.5.tgz", + "integrity": "sha512-6PxB65TAU4WO0Wzyr/4/YhlGovXl0EVYfpKbpSroSj0qBxT4/xod/l40Opkm38dRHRdQgdeY836M0uVnJQG7kg==", + "requires": { + "babylon": "7.0.0-beta.19", + "bluebird": "3.5.1", + "catharsis": "0.8.9", + "escape-string-regexp": "1.0.5", + "js2xmlparser": "3.0.0", + "klaw": "2.0.0", + "marked": "0.3.6", + "mkdirp": "0.5.1", + "requizzle": "0.2.1", + "strip-json-comments": "2.0.1", + "taffydb": "2.6.2", + "underscore": "1.8.3" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.19", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.19.tgz", + "integrity": "sha512-Vg0C9s/REX6/WIXN37UKpv5ZhRi6A4pjHlpkE34+8/a6c2W1Q692n3hmc+SZG5lKRnaExLUbxtJ1SVT+KaCQ/A==" + }, + "klaw": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-2.0.0.tgz", + "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", + "requires": { + "graceful-fs": "4.1.11" + } + }, + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + } + } + }, + "jsdom": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz", + "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=", + "dev": true, + "requires": { + "abab": "1.0.4", + "acorn": "4.0.13", + "acorn-globals": "3.1.0", + "array-equal": "1.0.0", + "content-type-parser": "1.0.2", + "cssom": "0.3.2", + "cssstyle": "0.2.37", + "escodegen": "1.9.0", + "html-encoding-sniffer": "1.0.2", + "nwmatcher": "1.4.3", + "parse5": "1.5.1", + "request": "2.83.0", + "sax": "1.2.4", + "symbol-tree": "3.2.2", + "tough-cookie": "2.3.3", + "webidl-conversions": "4.0.2", + "whatwg-encoding": "1.0.3", + "whatwg-url": "4.8.0", + "xml-name-validator": "2.0.1" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "jshint": { + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.5.tgz", + "integrity": "sha1-HnJSkVzmgbQIJ+4UJIxG006apiw=", + "dev": true, + "requires": { + "cli": "1.0.1", + "console-browserify": "1.1.0", + "exit": "0.1.2", + "htmlparser2": "3.8.3", + "lodash": "3.7.0", + "minimatch": "3.0.4", + "shelljs": "0.3.0", + "strip-json-comments": "1.0.4" + }, + "dependencies": { + "domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } + }, + "entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", + "dev": true + }, + "htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "dev": true, + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.0.0", + "readable-stream": "1.1.14" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "lodash": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz", + "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "shelljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", + "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", + "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 + }, + "strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", + "dev": true + } + } + }, + "json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", + "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": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "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=" + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsonlint": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/jsonlint/-/jsonlint-1.6.2.tgz", + "integrity": "sha1-VzcEUIX1XrRVxosf9OvAG9UOiDA=", + "requires": { + "JSV": "4.0.2", + "nomnom": "1.8.1" + } + }, + "jsonpath": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-0.2.12.tgz", + "integrity": "sha1-W/nZEftGFsHjNwvs658NskrjTNI=", + "requires": { + "esprima": "1.2.2", + "jison": "0.4.13", + "static-eval": "0.2.3", + "underscore": "1.7.0" + }, + "dependencies": { + "esprima": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" + }, + "underscore": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" + } + } + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" + }, + "jsonwebtoken": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-5.7.0.tgz", + "integrity": "sha1-HJD5qGzlt0j1+XnBK3BAK0r83bQ=", + "requires": { + "jws": "3.1.4", + "ms": "0.7.3", + "xtend": "4.0.1" + }, + "dependencies": { + "ms": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.3.tgz", + "integrity": "sha1-cIFVpeROM/X9D8U+gdDUCpG+H/8=" + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + } + } + }, + "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" + } + }, + "jstransform": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-3.0.0.tgz", + "integrity": "sha1-olkats7o2XvzvoMNv6IxO4fNZAs=", + "requires": { + "base62": "0.1.1", + "esprima-fb": "3001.1.0-dev-harmony-fb", + "source-map": "0.1.31" + }, + "dependencies": { + "esprima-fb": { + "version": "3001.1.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz", + "integrity": "sha1-t303q8046gt3Qmu4vCkizmtCZBE=" + }, + "source-map": { + "version": "0.1.31", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", + "integrity": "sha1-n3BNDWnZ4TioG63267T94z0VHGE=", + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "jsx-ast-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", + "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", + "dev": true, + "requires": { + "array-includes": "3.0.3" + } + }, + "jwa": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.5.tgz", + "integrity": "sha1-oFUs4CIHQs1S4VN3SjKQXDDnVuU=", + "requires": { + "base64url": "2.0.0", + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.9", + "safe-buffer": "5.1.1" + } + }, + "jws": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.4.tgz", + "integrity": "sha1-+ei5M46KhHJ31kRLFGT2GIDgUKI=", + "requires": { + "base64url": "2.0.0", + "jwa": "1.1.5", + "safe-buffer": "5.1.1" + } + }, + "jwt-authentication": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/jwt-authentication/-/jwt-authentication-0.3.3.tgz", + "integrity": "sha512-v76wJz9evqOAoDFHC7sWpOSY6701QwlH662yzOPOyHfTpNSWUD/c+rYtRr72jFO2XsVO1BDfD9YsdAuXfMf0JA==", + "requires": { + "axios": "0.15.3", + "crypto": "0.0.3", + "ducktype": "1.1.0", + "jsdoc": "3.5.5", + "jsonwebtoken": "5.7.0", + "lodash": "3.10.1", + "node-cache": "3.2.1", + "node-forge": "0.6.49", + "q": "1.5.1" + }, + "dependencies": { + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" + }, + "node-forge": { + "version": "0.6.49", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.6.49.tgz", + "integrity": "sha1-8e6V1ddGI5OP4Z1piqWibVTS9g8=" + } + } + }, + "killable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz", + "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=", + "dev": true + }, + "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" + } + }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "dev": true, + "requires": { + "package-json": "4.0.1" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + }, + "lazy-val": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.2.tgz", + "integrity": "sha512-2BaSu6qVnicKdWQPysrffZVFAKcPcZQ/q2YyeSjAxWaJlvCvKSrkcvsSHlleeIfA//fW2goTcYDTy2cBLN7+PQ==", + "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=", + "requires": { + "invert-kv": "1.0.0" + } + }, + "less": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/less/-/less-2.7.3.tgz", + "integrity": "sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==", + "dev": true, + "requires": { + "errno": "0.1.4", + "graceful-fs": "4.1.11", + "image-size": "0.5.5", + "mime": "1.5.0", + "mkdirp": "0.5.1", + "promise": "7.3.1", + "request": "2.81.0", + "source-map": "0.5.7" + }, + "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true, + "optional": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "optional": true, + "requires": { + "boom": "2.10.1" + } + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "dev": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "optional": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "mime": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.5.0.tgz", + "integrity": "sha512-v/jMDoK/qKptnTuC3YUNbIj8uUYvTCIHzVu9BHldKSWja48wusAtfjlcBlqnFrqClu3yf69ScDxBPrIyFnF51g==", + "dev": true, + "optional": true + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "dev": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "dev": true, + "optional": true + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "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, + "optional": true, + "requires": { + "hoek": "2.16.3" + } + } + } + }, + "less-loader": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.0.5.tgz", + "integrity": "sha1-rhVadAbKxqzSk9eFWH/P8PR4xN0=", + "dev": true, + "requires": { + "clone": "2.1.1", + "loader-utils": "1.1.0", + "pify": "2.3.0" + } + }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", + "dev": true + }, + "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" + } + }, + "lex-parser": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/lex-parser/-/lex-parser-0.1.4.tgz", + "integrity": "sha1-ZMTwJfF/1Tv7RXY/rrFvAVp0dVA=" + }, + "lie": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.0.2.tgz", + "integrity": "sha1-/9oh17uibzd8rYZdNkmy/Izjn+o=", + "requires": { + "es3ify": "0.1.4", + "immediate": "3.0.6", + "inline-process-browser": "1.0.0", + "unreachable-branch-transform": "0.3.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" + } + }, + "loader-runner": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", + "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", + "dev": true + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "requires": { + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1" + } + }, + "localforage": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.5.3.tgz", + "integrity": "sha1-aYqhavECI0CyQL6dkxkuivAi/xY=", + "requires": { + "lie": "3.0.2" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "lodash-es": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.4.tgz", + "integrity": "sha1-3MHXVS4VCgZABzupyzHXDwMpUOc=" + }, + "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.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.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.cond": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", + "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=", + "dev": true + }, + "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.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=", + "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": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "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.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40=", + "dev": true + }, + "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 + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984=", + "dev": true + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "1.1.3" + } + }, + "loglevel": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.0.tgz", + "integrity": "sha1-rgyqVhERSYxboTcj1vtjHSQAOTQ=", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "requires": { + "js-tokens": "3.0.2" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" + } + }, + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", + "dev": true + }, + "lru-cache": { + "version": "4.1.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 + } + } + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dev": true, + "requires": { + "tmpl": "1.0.4" + } + }, + "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=" + }, + "marked": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz", + "integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc=" + }, + "math-expression-evaluator": { + "version": "1.2.17", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", + "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", + "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" + } + } + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "1.1.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "0.1.4", + "readable-stream": "2.3.3" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "merge": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", + "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=", + "dev": true + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "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": "2.0.3", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.0.3.tgz", + "integrity": "sha512-TrpAd/vX3xaLPDgVRm6JkZwLR0KHfukMdU2wTEbqMDdCnY6Yo3mE+mjs9YE6oMNw2QRfXVeBEYpmpO94BIqiug==", + "dev": true + }, + "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=", + "dev": true, + "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": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "minipass": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.1.tgz", + "integrity": "sha512-u1aUllxPJUI07cOqzR7reGmQxmCqlH88uIIsf6XZFEWgw7gXKpJdR+5R9Y3KEDmWYkdIz9wXZs3C0jOPxejk/Q==", + "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=" + } + } + }, + "minizlib": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.0.4.tgz", + "integrity": "sha512-sN4U9tIJtBRwKbwgFh9qJfrPIQ/GGTRr1MGqkgOeMTLy8/lM0FcWU//FqlnZ3Vb7gJ+Mxh3FOg1EklibdajbaQ==", + "requires": { + "minipass": "2.2.1" + } + }, + "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" + } + }, + "mkdirp-promise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-1.1.0.tgz", + "integrity": "sha1-LISJPtZ24NmPsY+5piEv0bK5qBk=" + }, + "modify-filename": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/modify-filename/-/modify-filename-1.1.0.tgz", + "integrity": "sha1-mi3sg4Bvuy2XXyK+7IWcoms5OqE=" + }, + "moment": { + "version": "2.19.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.19.2.tgz", + "integrity": "sha512-Rf6jiHPEfxp9+dlzxPTmRHbvoFXsh2L/U8hOupUMpnuecHQmI6cF6lUbJl3QqKPko1u6ujO+FxtcajLVfLpAtA==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "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==", + "dev": true, + "requires": { + "dns-packet": "1.2.2", + "thunky": "0.1.0" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "multiparty": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-4.1.3.tgz", + "integrity": "sha1-PEPH/LGJbhdGBDap3Qtu8WaOT5Q=", + "requires": { + "fd-slicer": "1.0.1" + } + }, + "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 + }, + "nan": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", + "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "ncp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", + "dev": true + }, + "nedb": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/nedb/-/nedb-1.8.0.tgz", + "integrity": "sha1-DjUCzYLABNU1WkPJ5VV3vXvZHYg=", + "requires": { + "async": "0.2.10", + "binary-search-tree": "0.2.5", + "localforage": "1.5.3", + "mkdirp": "0.5.1", + "underscore": "1.4.4" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" + }, + "underscore": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", + "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=" + } + } + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true + }, + "node-abi": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.1.2.tgz", + "integrity": "sha512-hmUtb8m75RSi7N+zZLYqe75XDvZB+6LyTBPkj2DConvNgQet2e3BIqEwe1LLvqMrfyjabuT5ZOrTioLCH1HTdA==", + "dev": true, + "requires": { + "semver": "5.4.1" + } + }, + "node-cache": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-3.2.1.tgz", + "integrity": "sha1-p5WNMqikLZEZziWYZWfqLF+WZ3M=", + "requires": { + "clone": "1.0.3", + "lodash": "4.17.4" + }, + "dependencies": { + "clone": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", + "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=" + } + } + }, + "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-ensure": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/node-ensure/-/node-ensure-0.0.0.tgz", + "integrity": "sha1-7K52QVDemYYexcgQ/V0Jaxg5Mqc=" + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "0.1.12", + "is-stream": "1.1.0" + } + }, + "node-forge": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz", + "integrity": "sha1-naYR6giYL0uUIGs760zJZl8gwwA=" + }, + "node-gyp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", + "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", + "requires": { + "fstream": "1.0.11", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "npmlog": "4.1.2", + "osenv": "0.1.4", + "request": "2.83.0", + "rimraf": "2.6.2", + "semver": "5.3.0", + "tar": "2.2.1", + "which": "1.3.0" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + } + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node-libs-browser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "dev": true, + "requires": { + "assert": "1.4.1", + "browserify-zlib": "0.2.0", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.12.0", + "domain-browser": "1.1.7", + "events": "1.1.1", + "https-browserify": "1.0.0", + "os-browserify": "0.3.0", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "2.3.3", + "stream-browserify": "2.0.1", + "stream-http": "2.7.2", + "string_decoder": "1.0.3", + "timers-browserify": "2.0.4", + "tty-browserify": "0.0.0", + "url": "0.11.0", + "util": "0.10.3", + "vm-browserify": "0.0.4" + }, + "dependencies": { + "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.0", + "ieee754": "1.1.8", + "isarray": "1.0.0" + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + } + } + }, + "node-notifier": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz", + "integrity": "sha1-L6nhJgX6EACdRFSdb82KY93g5P8=", + "dev": true, + "requires": { + "growly": "1.3.0", + "semver": "5.4.1", + "shellwords": "0.1.1", + "which": "1.3.0" + } + }, + "node-pre-gyp": { + "version": "0.6.39", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz", + "integrity": "sha512-OsJV74qxnvz/AMGgcfZoDaeDXKD3oY3QVIbBmwszTFkRisTSXbMQyn4UWzUMOtA5SVhrBZOTp0wcoSBgfMfMmQ==", + "requires": { + "detect-libc": "1.0.3", + "hawk": "3.1.3", + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.2", + "rc": "1.2.2", + "request": "2.81.0", + "rimraf": "2.6.2", + "semver": "5.4.1", + "tar": "2.2.1", + "tar-pack": "3.4.1" + }, + "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "requires": { + "hoek": "2.16.3" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "requires": { + "boom": "2.10.1" + } + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "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=" + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "requires": { + "abbrev": "1.1.1", + "osenv": "0.1.4" + } + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "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.17", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "requires": { + "hoek": "2.16.3" + } + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + } + } + }, + "nomnom": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", + "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", + "requires": { + "chalk": "0.4.0", + "underscore": "1.6.0" + }, + "dependencies": { + "ansi-styles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", + "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=" + }, + "chalk": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", + "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", + "requires": { + "ansi-styles": "1.0.0", + "has-color": "0.1.7", + "strip-ansi": "0.1.1" + } + }, + "strip-ansi": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", + "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=" + } + } + }, + "noop-logger": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", + "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=", + "dev": true + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "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" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "prepend-http": "1.0.4", + "query-string": "4.3.4", + "sort-keys": "1.1.2" + } + }, + "npm": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/npm/-/npm-5.5.1.tgz", + "integrity": "sha512-M3aO8EjHebaCw6uur4C86SZqkypnoaEVo5R63FEEU0dw9wLxf/JlwWtJItShYVyQS2WDxG2It10GEe5GmVEM2Q==", + "dev": true, + "requires": { + "JSONStream": "1.3.1", + "abbrev": "1.1.1", + "ansi-regex": "3.0.0", + "ansicolors": "0.3.2", + "ansistyles": "0.1.3", + "aproba": "1.2.0", + "archy": "1.0.0", + "bluebird": "3.5.0", + "cacache": "9.2.9", + "call-limit": "1.1.0", + "chownr": "1.0.1", + "cli-table2": "0.2.0", + "cmd-shim": "2.0.2", + "columnify": "1.5.4", + "config-chain": "1.1.11", + "debuglog": "1.0.1", + "detect-indent": "5.0.0", + "dezalgo": "1.0.3", + "editor": "1.0.0", + "fs-vacuum": "1.2.10", + "fs-write-stream-atomic": "1.0.10", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "has-unicode": "2.0.1", + "hosted-git-info": "2.5.0", + "iferr": "0.1.5", + "imurmurhash": "0.1.4", + "inflight": "1.0.6", + "inherits": "2.0.3", + "ini": "1.3.4", + "init-package-json": "1.10.1", + "is-cidr": "1.0.0", + "lazy-property": "1.0.0", + "libnpx": "9.6.0", + "lockfile": "1.0.3", + "lodash._baseindexof": "3.1.0", + "lodash._baseuniq": "4.6.0", + "lodash._bindcallback": "3.0.1", + "lodash._cacheindexof": "3.0.2", + "lodash._createcache": "3.1.2", + "lodash._getnative": "3.9.1", + "lodash.clonedeep": "4.5.0", + "lodash.restparam": "3.6.1", + "lodash.union": "4.6.0", + "lodash.uniq": "4.5.0", + "lodash.without": "4.4.0", + "lru-cache": "4.1.1", + "meant": "1.0.1", + "mississippi": "1.3.0", + "mkdirp": "0.5.1", + "move-concurrently": "1.0.1", + "node-gyp": "3.6.2", + "nopt": "4.0.1", + "normalize-package-data": "2.4.0", + "npm-cache-filename": "1.0.2", + "npm-install-checks": "3.0.0", + "npm-lifecycle": "1.0.3", + "npm-package-arg": "5.1.2", + "npm-packlist": "1.1.9", + "npm-profile": "2.0.4", + "npm-registry-client": "8.5.0", + "npm-user-validate": "1.0.0", + "npmlog": "4.1.2", + "once": "1.4.0", + "opener": "1.4.3", + "osenv": "0.1.4", + "pacote": "6.0.2", + "path-is-inside": "1.0.2", + "promise-inflight": "1.0.1", + "qrcode-terminal": "0.11.0", + "query-string": "5.0.0", + "qw": "1.0.1", + "read": "1.0.7", + "read-cmd-shim": "1.0.1", + "read-installed": "4.0.3", + "read-package-json": "2.0.12", + "read-package-tree": "5.1.6", + "readable-stream": "2.3.3", + "readdir-scoped-modules": "1.0.2", + "request": "2.83.0", + "retry": "0.10.1", + "rimraf": "2.6.2", + "safe-buffer": "5.1.1", + "semver": "5.4.1", + "sha": "2.0.1", + "slide": "1.1.6", + "sorted-object": "2.0.1", + "sorted-union-stream": "2.1.3", + "ssri": "4.1.6", + "strip-ansi": "4.0.0", + "tar": "4.0.1", + "text-table": "0.2.0", + "uid-number": "0.0.6", + "umask": "1.1.0", + "unique-filename": "1.1.0", + "unpipe": "1.0.0", + "update-notifier": "2.2.0", + "uuid": "3.1.0", + "validate-npm-package-license": "3.0.1", + "validate-npm-package-name": "3.0.0", + "which": "1.3.0", + "worker-farm": "1.5.0", + "wrappy": "1.0.2", + "write-file-atomic": "2.1.0" + }, + "dependencies": { + "JSONStream": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "jsonparse": "1.3.1", + "through": "2.3.8" + }, + "dependencies": { + "jsonparse": { + "version": "1.3.1", + "bundled": true, + "dev": true + }, + "through": { + "version": "2.3.8", + "bundled": true, + "dev": true + } + } + }, + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "ansicolors": { + "version": "0.3.2", + "bundled": true, + "dev": true + }, + "ansistyles": { + "version": "0.1.3", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "archy": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "bluebird": { + "version": "3.5.0", + "bundled": true, + "dev": true + }, + "cacache": { + "version": "9.2.9", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "3.5.0", + "chownr": "1.0.1", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "lru-cache": "4.1.1", + "mississippi": "1.3.0", + "mkdirp": "0.5.1", + "move-concurrently": "1.0.1", + "promise-inflight": "1.0.1", + "rimraf": "2.6.2", + "ssri": "4.1.6", + "unique-filename": "1.1.0", + "y18n": "3.2.1" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + }, + "dependencies": { + "pseudomap": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true, + "dev": true + } + } + }, + "y18n": { + "version": "3.2.1", + "bundled": true, + "dev": true + } + } + }, + "call-limit": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "cli-table2": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "requires": { + "colors": "1.1.2", + "lodash": "3.10.1", + "string-width": "1.0.2" + }, + "dependencies": { + "colors": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "lodash": { + "version": "3.10.1", + "bundled": true, + "dev": 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" + }, + "dependencies": { + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + }, + "dependencies": { + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + } + } + } + } + } + } + }, + "cmd-shim": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1" + } + }, + "columnify": { + "version": "1.5.4", + "bundled": true, + "dev": true, + "requires": { + "strip-ansi": "3.0.1", + "wcwidth": "1.0.1" + }, + "dependencies": { + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + } + } + }, + "wcwidth": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "defaults": "1.0.3" + }, + "dependencies": { + "defaults": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "clone": "1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + } + } + } + } + }, + "config-chain": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "ini": "1.3.4", + "proto-list": "1.2.4" + }, + "dependencies": { + "proto-list": { + "version": "1.2.4", + "bundled": true, + "dev": true + } + } + }, + "debuglog": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "detect-indent": { + "version": "5.0.0", + "bundled": true, + "dev": true + }, + "dezalgo": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "asap": "2.0.5", + "wrappy": "1.0.2" + }, + "dependencies": { + "asap": { + "version": "2.0.5", + "bundled": true, + "dev": true + } + } + }, + "editor": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "fs-vacuum": { + "version": "1.2.10", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "path-is-inside": "1.0.2", + "rimraf": "2.6.2" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "iferr": "0.1.5", + "imurmurhash": "0.1.4", + "readable-stream": "2.3.3" + } + }, + "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" + }, + "dependencies": { + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.8", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true, + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "hosted-git-info": { + "version": "2.5.0", + "bundled": true, + "dev": true + }, + "iferr": { + "version": "0.1.5", + "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 + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "dev": true + }, + "init-package-json": { + "version": "1.10.1", + "bundled": true, + "dev": true, + "requires": { + "glob": "7.1.2", + "npm-package-arg": "5.1.2", + "promzard": "0.3.0", + "read": "1.0.7", + "read-package-json": "2.0.12", + "semver": "5.4.1", + "validate-npm-package-license": "3.0.1", + "validate-npm-package-name": "3.0.0" + }, + "dependencies": { + "promzard": { + "version": "0.3.0", + "bundled": true, + "dev": true, + "requires": { + "read": "1.0.7" + } + } + } + }, + "is-cidr": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "cidr-regex": "1.0.6" + }, + "dependencies": { + "cidr-regex": { + "version": "1.0.6", + "bundled": true, + "dev": true + } + } + }, + "lazy-property": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "libnpx": { + "version": "9.6.0", + "bundled": true, + "dev": true, + "requires": { + "dotenv": "4.0.0", + "npm-package-arg": "5.1.2", + "rimraf": "2.6.2", + "safe-buffer": "5.1.1", + "update-notifier": "2.2.0", + "which": "1.3.0", + "y18n": "3.2.1", + "yargs": "8.0.2" + }, + "dependencies": { + "dotenv": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "y18n": { + "version": "3.2.1", + "bundled": true, + "dev": true + }, + "yargs": { + "version": "8.0.2", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "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" + }, + "dependencies": { + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + }, + "dependencies": { + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "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" + } + } + } + }, + "decamelize": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "get-caller-file": { + "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" + }, + "dependencies": { + "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" + }, + "dependencies": { + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "shebang-regex": "1.0.0" + }, + "dependencies": { + "shebang-regex": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "get-stream": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "path-key": "2.0.1" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "bundled": true, + "dev": true + } + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + }, + "lcid": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "invert-kv": "1.0.0" + }, + "dependencies": { + "invert-kv": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + }, + "mem": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "mimic-fn": "1.1.0" + }, + "dependencies": { + "mimic-fn": { + "version": "1.1.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "read-pkg-up": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "locate-path": "2.0.0" + }, + "dependencies": { + "locate-path": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + }, + "dependencies": { + "p-locate": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-limit": "1.1.0" + }, + "dependencies": { + "p-limit": { + "version": "1.1.0", + "bundled": true, + "dev": true + } + } + }, + "path-exists": { + "version": "3.0.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "read-pkg": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + }, + "dependencies": { + "load-json-file": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + }, + "dependencies": { + "parse-json": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "requires": { + "error-ex": "1.3.1" + }, + "dependencies": { + "error-ex": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.2.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "pify": { + "version": "2.3.0", + "bundled": true, + "dev": true + }, + "strip-bom": { + "version": "3.0.0", + "bundled": true, + "dev": true + } + } + }, + "path-type": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "pify": "2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "bundled": true, + "dev": true + } + } + } + } + } + } + }, + "require-directory": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "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": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + } + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "yargs-parser": { + "version": "7.0.0", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + } + } + }, + "lockfile": { + "version": "1.0.3", + "bundled": true, + "dev": true + }, + "lodash._baseindexof": { + "version": "3.1.0", + "bundled": true, + "dev": true + }, + "lodash._baseuniq": { + "version": "4.6.0", + "bundled": true, + "dev": true, + "requires": { + "lodash._createset": "4.0.3", + "lodash._root": "3.0.1" + }, + "dependencies": { + "lodash._createset": { + "version": "4.0.3", + "bundled": true, + "dev": true + }, + "lodash._root": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, + "lodash._bindcallback": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "lodash._cacheindexof": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "lodash._createcache": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "lodash._getnative": "3.9.1" + } + }, + "lodash._getnative": { + "version": "3.9.1", + "bundled": true, + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "bundled": true, + "dev": true + }, + "lodash.restparam": { + "version": "3.6.1", + "bundled": true, + "dev": true + }, + "lodash.union": { + "version": "4.6.0", + "bundled": true, + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "bundled": true, + "dev": true + }, + "lodash.without": { + "version": "4.4.0", + "bundled": true, + "dev": true + }, + "lru-cache": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + }, + "dependencies": { + "pseudomap": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "2.1.2", + "bundled": true, + "dev": true + } + } + }, + "meant": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "mississippi": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "concat-stream": "1.6.0", + "duplexify": "3.5.0", + "end-of-stream": "1.4.0", + "flush-write-stream": "1.0.2", + "from2": "2.3.0", + "parallel-transform": "1.1.0", + "pump": "1.0.2", + "pumpify": "1.3.5", + "stream-each": "1.2.0", + "through2": "2.0.3" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" + }, + "dependencies": { + "typedarray": { + "version": "0.0.6", + "bundled": true, + "dev": true + } + } + }, + "duplexify": { + "version": "3.5.0", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "1.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "stream-shift": "1.0.0" + }, + "dependencies": { + "end-of-stream": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "once": "1.3.3" + }, + "dependencies": { + "once": { + "version": "1.3.3", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + } + } + }, + "stream-shift": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + }, + "end-of-stream": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "once": "1.4.0" + } + }, + "flush-write-stream": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + }, + "from2": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + }, + "parallel-transform": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "cyclist": "0.2.2", + "inherits": "2.0.3", + "readable-stream": "2.3.3" + }, + "dependencies": { + "cyclist": { + "version": "0.2.2", + "bundled": true, + "dev": true + } + } + }, + "pump": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "1.4.0", + "once": "1.4.0" + } + }, + "pumpify": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "requires": { + "duplexify": "3.5.0", + "inherits": "2.0.3", + "pump": "1.0.2" + } + }, + "stream-each": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "1.4.0", + "stream-shift": "1.0.0" + }, + "dependencies": { + "stream-shift": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + }, + "through2": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "requires": { + "readable-stream": "2.3.3", + "xtend": "4.0.1" + }, + "dependencies": { + "xtend": { + "version": "4.0.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + } + } + }, + "move-concurrently": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "aproba": "1.2.0", + "copy-concurrently": "1.0.3", + "fs-write-stream-atomic": "1.0.10", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "run-queue": "1.0.3" + }, + "dependencies": { + "copy-concurrently": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "aproba": "1.2.0", + "fs-write-stream-atomic": "1.0.10", + "iferr": "0.1.5", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "run-queue": "1.0.3" + } + }, + "run-queue": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "aproba": "1.2.0" + } + } + } + }, + "node-gyp": { + "version": "3.6.2", + "bundled": true, + "dev": true, + "requires": { + "fstream": "1.0.11", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "npmlog": "4.1.2", + "osenv": "0.1.4", + "request": "2.83.0", + "rimraf": "2.6.2", + "semver": "5.3.0", + "tar": "2.2.1", + "which": "1.3.0" + }, + "dependencies": { + "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.2" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.8", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "nopt": { + "version": "3.0.6", + "bundled": true, + "dev": true, + "requires": { + "abbrev": "1.1.1" + } + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "dev": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + }, + "dependencies": { + "block-stream": { + "version": "0.0.9", + "bundled": true, + "dev": true, + "requires": { + "inherits": "2.0.3" + } + } + } + } + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "abbrev": "1.1.1", + "osenv": "0.1.4" + } + }, + "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" + }, + "dependencies": { + "is-builtin-module": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + }, + "dependencies": { + "builtin-modules": { + "version": "1.1.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "npm-cache-filename": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "npm-install-checks": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "semver": "5.4.1" + } + }, + "npm-lifecycle": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "slide": "1.1.6", + "uid-number": "0.0.6", + "umask": "1.1.0", + "which": "1.3.0" + } + }, + "npm-package-arg": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "requires": { + "hosted-git-info": "2.5.0", + "osenv": "0.1.4", + "semver": "5.4.1", + "validate-npm-package-name": "3.0.0" + } + }, + "npm-packlist": { + "version": "1.1.9", + "bundled": true, + "dev": true, + "requires": { + "ignore-walk": "3.0.0", + "npm-bundled": "1.0.3" + }, + "dependencies": { + "ignore-walk": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "minimatch": "3.0.4" + }, + "dependencies": { + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.8", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + } + } + } + } + } + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true + } + } + }, + "npm-profile": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "requires": { + "aproba": "1.2.0", + "make-fetch-happen": "2.5.0" + }, + "dependencies": { + "make-fetch-happen": { + "version": "2.5.0", + "bundled": true, + "dev": true, + "requires": { + "agentkeepalive": "3.3.0", + "cacache": "9.2.9", + "http-cache-semantics": "3.7.3", + "http-proxy-agent": "2.0.0", + "https-proxy-agent": "2.1.0", + "lru-cache": "4.1.1", + "mississippi": "1.3.0", + "node-fetch-npm": "2.0.2", + "promise-retry": "1.1.1", + "socks-proxy-agent": "3.0.1", + "ssri": "4.1.6" + }, + "dependencies": { + "agentkeepalive": { + "version": "3.3.0", + "bundled": true, + "dev": true, + "requires": { + "humanize-ms": "1.2.1" + }, + "dependencies": { + "humanize-ms": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "http-cache-semantics": { + "version": "3.7.3", + "bundled": true, + "dev": true + }, + "http-proxy-agent": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "4.1.1", + "debug": "2.6.9" + }, + "dependencies": { + "agent-base": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "requires": { + "es6-promisify": "5.0.0" + }, + "dependencies": { + "es6-promisify": { + "version": "5.0.0", + "bundled": true, + "dev": true, + "requires": { + "es6-promise": "4.1.1" + }, + "dependencies": { + "es6-promise": { + "version": "4.1.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "https-proxy-agent": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "4.1.1", + "debug": "2.6.9" + }, + "dependencies": { + "agent-base": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "requires": { + "es6-promisify": "5.0.0" + }, + "dependencies": { + "es6-promisify": { + "version": "5.0.0", + "bundled": true, + "dev": true, + "requires": { + "es6-promise": "4.1.1" + }, + "dependencies": { + "es6-promise": { + "version": "4.1.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "node-fetch-npm": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "encoding": "0.1.12", + "json-parse-better-errors": "1.0.1", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "encoding": { + "version": "0.1.12", + "bundled": true, + "dev": true, + "requires": { + "iconv-lite": "0.4.19" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.19", + "bundled": true, + "dev": true + } + } + }, + "json-parse-better-errors": { + "version": "1.0.1", + "bundled": true, + "dev": true + } + } + }, + "promise-retry": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "err-code": "1.1.2", + "retry": "0.10.1" + }, + "dependencies": { + "err-code": { + "version": "1.1.2", + "bundled": true, + "dev": true + } + } + }, + "socks-proxy-agent": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "4.1.1", + "socks": "1.1.10" + }, + "dependencies": { + "agent-base": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "requires": { + "es6-promisify": "5.0.0" + }, + "dependencies": { + "es6-promisify": { + "version": "5.0.0", + "bundled": true, + "dev": true, + "requires": { + "es6-promise": "4.1.1" + }, + "dependencies": { + "es6-promise": { + "version": "4.1.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "socks": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "1.1.15" + }, + "dependencies": { + "ip": { + "version": "1.1.5", + "bundled": true, + "dev": true + }, + "smart-buffer": { + "version": "1.1.15", + "bundled": true, + "dev": true + } + } + } + } + } + } + } + } + }, + "npm-registry-client": { + "version": "8.5.0", + "bundled": true, + "dev": true, + "requires": { + "concat-stream": "1.6.0", + "graceful-fs": "4.1.11", + "normalize-package-data": "2.4.0", + "npm-package-arg": "5.1.2", + "npmlog": "4.1.2", + "once": "1.4.0", + "request": "2.83.0", + "retry": "0.10.1", + "semver": "5.4.1", + "slide": "1.1.6", + "ssri": "4.1.6" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" + }, + "dependencies": { + "typedarray": { + "version": "0.0.6", + "bundled": true, + "dev": true + } + } + } + } + }, + "npm-user-validate": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + }, + "dependencies": { + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.3" + }, + "dependencies": { + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "requires": { + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": 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" + }, + "dependencies": { + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + }, + "dependencies": { + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + } + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "string-width": "1.0.2" + } + } + } + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true + } + } + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "opener": { + "version": "1.4.3", + "bundled": true, + "dev": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + }, + "dependencies": { + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + }, + "pacote": { + "version": "6.0.2", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "3.5.0", + "cacache": "9.2.9", + "glob": "7.1.2", + "lru-cache": "4.1.1", + "make-fetch-happen": "2.5.0", + "minimatch": "3.0.4", + "mississippi": "1.3.0", + "normalize-package-data": "2.4.0", + "npm-package-arg": "5.1.2", + "npm-packlist": "1.1.9", + "npm-pick-manifest": "1.0.4", + "osenv": "0.1.4", + "promise-inflight": "1.0.1", + "promise-retry": "1.1.1", + "protoduck": "4.0.0", + "safe-buffer": "5.1.1", + "semver": "5.4.1", + "ssri": "4.1.6", + "tar": "4.0.1", + "unique-filename": "1.1.0", + "which": "1.3.0" + }, + "dependencies": { + "make-fetch-happen": { + "version": "2.5.0", + "bundled": true, + "dev": true, + "requires": { + "agentkeepalive": "3.3.0", + "cacache": "9.2.9", + "http-cache-semantics": "3.7.3", + "http-proxy-agent": "2.0.0", + "https-proxy-agent": "2.1.0", + "lru-cache": "4.1.1", + "mississippi": "1.3.0", + "node-fetch-npm": "2.0.2", + "promise-retry": "1.1.1", + "socks-proxy-agent": "3.0.0", + "ssri": "4.1.6" + }, + "dependencies": { + "agentkeepalive": { + "version": "3.3.0", + "bundled": true, + "dev": true, + "requires": { + "humanize-ms": "1.2.1" + }, + "dependencies": { + "humanize-ms": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "http-cache-semantics": { + "version": "3.7.3", + "bundled": true, + "dev": true + }, + "http-proxy-agent": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "4.1.1", + "debug": "2.6.8" + }, + "dependencies": { + "agent-base": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "requires": { + "es6-promisify": "5.0.0" + }, + "dependencies": { + "es6-promisify": { + "version": "5.0.0", + "bundled": true, + "dev": true, + "requires": { + "es6-promise": "4.1.1" + }, + "dependencies": { + "es6-promise": { + "version": "4.1.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "https-proxy-agent": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "4.1.1", + "debug": "2.6.8" + }, + "dependencies": { + "agent-base": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "requires": { + "es6-promisify": "5.0.0" + }, + "dependencies": { + "es6-promisify": { + "version": "5.0.0", + "bundled": true, + "dev": true, + "requires": { + "es6-promise": "4.1.1" + }, + "dependencies": { + "es6-promise": { + "version": "4.1.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "node-fetch-npm": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "encoding": "0.1.12", + "json-parse-better-errors": "1.0.1", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "encoding": { + "version": "0.1.12", + "bundled": true, + "dev": true, + "requires": { + "iconv-lite": "0.4.18" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.18", + "bundled": true, + "dev": true + } + } + }, + "json-parse-better-errors": { + "version": "1.0.1", + "bundled": true, + "dev": true + } + } + }, + "socks-proxy-agent": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "4.1.1", + "socks": "1.1.10" + }, + "dependencies": { + "agent-base": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "requires": { + "es6-promisify": "5.0.0" + }, + "dependencies": { + "es6-promisify": { + "version": "5.0.0", + "bundled": true, + "dev": true, + "requires": { + "es6-promise": "4.1.1" + }, + "dependencies": { + "es6-promise": { + "version": "4.1.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "socks": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "1.1.15" + }, + "dependencies": { + "ip": { + "version": "1.1.5", + "bundled": true, + "dev": true + }, + "smart-buffer": { + "version": "1.1.15", + "bundled": true, + "dev": true + } + } + } + } + } + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.8", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "npm-pick-manifest": { + "version": "1.0.4", + "bundled": true, + "dev": true, + "requires": { + "npm-package-arg": "5.1.2", + "semver": "5.4.1" + } + }, + "promise-retry": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "err-code": "1.1.2", + "retry": "0.10.1" + }, + "dependencies": { + "err-code": { + "version": "1.1.2", + "bundled": true, + "dev": true + } + } + }, + "protoduck": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "genfun": "4.0.1" + }, + "dependencies": { + "genfun": { + "version": "4.0.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "path-is-inside": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "qrcode-terminal": { + "version": "0.11.0", + "bundled": true, + "dev": true + }, + "query-string": { + "version": "5.0.0", + "bundled": true, + "dev": true, + "requires": { + "decode-uri-component": "0.2.0", + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" + }, + "dependencies": { + "decode-uri-component": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true + }, + "strict-uri-encode": { + "version": "1.1.0", + "bundled": true, + "dev": true + } + } + }, + "qw": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "read": { + "version": "1.0.7", + "bundled": true, + "dev": true, + "requires": { + "mute-stream": "0.0.7" + }, + "dependencies": { + "mute-stream": { + "version": "0.0.7", + "bundled": true, + "dev": true + } + } + }, + "read-cmd-shim": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "read-installed": { + "version": "4.0.3", + "bundled": true, + "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" + }, + "dependencies": { + "util-extend": { + "version": "1.0.3", + "bundled": true, + "dev": true + } + } + }, + "read-package-json": { + "version": "2.0.12", + "bundled": true, + "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" + }, + "dependencies": { + "json-parse-better-errors": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "slash": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + }, + "read-package-tree": { + "version": "5.1.6", + "bundled": true, + "dev": true, + "requires": { + "debuglog": "1.0.1", + "dezalgo": "1.0.3", + "once": "1.4.0", + "read-package-json": "2.0.12", + "readdir-scoped-modules": "1.0.2" + } + }, + "readable-stream": { + "version": "2.3.3", + "bundled": true, + "dev": true, + "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": { + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true, + "dev": true + }, + "string_decoder": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + }, + "readdir-scoped-modules": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "debuglog": "1.0.1", + "dezalgo": "1.0.3", + "graceful-fs": "4.1.11", + "once": "1.4.0" + } + }, + "request": { + "version": "2.83.0", + "bundled": true, + "dev": true, + "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" + }, + "dependencies": { + "aws-sign2": { + "version": "0.7.0", + "bundled": true, + "dev": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "dev": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + }, + "dependencies": { + "delayed-stream": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "dev": true + }, + "form-data": { + "version": "2.3.1", + "bundled": true, + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + }, + "dependencies": { + "asynckit": { + "version": "0.4.0", + "bundled": true, + "dev": true + } + } + }, + "har-validator": { + "version": "5.0.3", + "bundled": true, + "dev": true, + "requires": { + "ajv": "5.2.3", + "har-schema": "2.0.0" + }, + "dependencies": { + "ajv": { + "version": "5.2.3", + "bundled": true, + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "json-schema-traverse": "0.3.1", + "json-stable-stringify": "1.0.1" + }, + "dependencies": { + "co": { + "version": "4.6.0", + "bundled": true, + "dev": true + }, + "fast-deep-equal": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "bundled": true, + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "jsonify": "0.0.0" + }, + "dependencies": { + "jsonify": { + "version": "0.0.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "har-schema": { + "version": "2.0.0", + "bundled": true, + "dev": true + } + } + }, + "hawk": { + "version": "6.0.2", + "bundled": true, + "dev": true, + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.0", + "sntp": "2.0.2" + }, + "dependencies": { + "boom": { + "version": "4.3.1", + "bundled": true, + "dev": true, + "requires": { + "hoek": "4.2.0" + } + }, + "cryptiles": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "bundled": true, + "dev": true, + "requires": { + "hoek": "4.2.0" + } + } + } + }, + "hoek": { + "version": "4.2.0", + "bundled": true, + "dev": true + }, + "sntp": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "hoek": "4.2.0" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "extsprintf": { + "version": "1.3.0", + "bundled": true, + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "dev": true + }, + "verror": { + "version": "1.10.0", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + } + } + }, + "sshpk": { + "version": "1.13.1", + "bundled": true, + "dev": 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", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "asn1": { + "version": "0.2.3", + "bundled": true, + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "1.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "dev": true, + "optional": true + } + } + } + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "mime-types": { + "version": "2.1.17", + "bundled": true, + "dev": true, + "requires": { + "mime-db": "1.30.0" + }, + "dependencies": { + "mime-db": { + "version": "1.30.0", + "bundled": true, + "dev": true + } + } + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "qs": { + "version": "6.5.1", + "bundled": true, + "dev": true + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "dev": true + }, + "tough-cookie": { + "version": "2.3.3", + "bundled": true, + "dev": true, + "requires": { + "punycode": "1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "bundled": true, + "dev": true + } + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "retry": { + "version": "0.10.1", + "bundled": true, + "dev": true + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": true + }, + "semver": { + "version": "5.4.1", + "bundled": true, + "dev": true + }, + "sha": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "readable-stream": "2.3.3" + } + }, + "slide": { + "version": "1.1.6", + "bundled": true, + "dev": true + }, + "sorted-object": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "sorted-union-stream": { + "version": "2.1.3", + "bundled": true, + "dev": true, + "requires": { + "from2": "1.3.0", + "stream-iterate": "1.2.0" + }, + "dependencies": { + "from2": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "1.1.14" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "bundled": true, + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "isarray": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "bundled": true, + "dev": true + } + } + } + } + }, + "stream-iterate": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "readable-stream": "2.3.3", + "stream-shift": "1.0.0" + }, + "dependencies": { + "stream-shift": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "ssri": { + "version": "4.1.6", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "bundled": true, + "dev": true + } + } + }, + "tar": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "chownr": "1.0.1", + "minipass": "2.2.1", + "minizlib": "1.0.3", + "mkdirp": "0.5.1", + "yallist": "3.0.2" + }, + "dependencies": { + "minipass": { + "version": "2.2.1", + "bundled": true, + "dev": true, + "requires": { + "yallist": "3.0.2" + } + }, + "minizlib": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "minipass": "2.2.1" + } + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true + } + } + }, + "text-table": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "dev": true + }, + "umask": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "unique-filename": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "unique-slug": "2.0.0" + }, + "dependencies": { + "unique-slug": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "imurmurhash": "0.1.4" + } + } + } + }, + "unpipe": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "update-notifier": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "requires": { + "boxen": "1.1.0", + "chalk": "1.1.3", + "configstore": "3.1.0", + "import-lazy": "2.1.0", + "is-npm": "1.0.0", + "latest-version": "3.1.0", + "semver-diff": "2.1.0", + "xdg-basedir": "3.0.0" + }, + "dependencies": { + "boxen": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-align": "2.0.0", + "camelcase": "4.1.0", + "chalk": "1.1.3", + "cli-boxes": "1.0.0", + "string-width": "2.1.0", + "term-size": "0.1.1", + "widest-line": "1.0.0" + }, + "dependencies": { + "ansi-align": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "2.1.0" + } + }, + "camelcase": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "cli-boxes": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "term-size": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "requires": { + "execa": "0.4.0" + }, + "dependencies": { + "execa": { + "version": "0.4.0", + "bundled": true, + "dev": true, + "requires": { + "cross-spawn-async": "2.2.5", + "is-stream": "1.1.0", + "npm-run-path": "1.0.0", + "object-assign": "4.1.1", + "path-key": "1.0.0", + "strip-eof": "1.0.0" + }, + "dependencies": { + "cross-spawn-async": { + "version": "2.2.5", + "bundled": true, + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "which": "1.3.0" + } + }, + "is-stream": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "npm-run-path": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "path-key": "1.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true + }, + "path-key": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "widest-line": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "1.0.2" + }, + "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" + }, + "dependencies": { + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + }, + "dependencies": { + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + } + } + } + } + } + } + } + } + }, + "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" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "bundled": true, + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + } + } + }, + "supports-color": { + "version": "2.0.0", + "bundled": true, + "dev": true + } + } + }, + "configstore": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "dot-prop": "4.1.1", + "graceful-fs": "4.1.11", + "make-dir": "1.0.0", + "unique-string": "1.0.0", + "write-file-atomic": "2.1.0", + "xdg-basedir": "3.0.0" + }, + "dependencies": { + "dot-prop": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "requires": { + "is-obj": "1.0.1" + }, + "dependencies": { + "is-obj": { + "version": "1.0.1", + "bundled": true, + "dev": true + } + } + }, + "make-dir": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "pify": "2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "bundled": true, + "dev": true + } + } + }, + "unique-string": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "crypto-random-string": "1.0.0" + }, + "dependencies": { + "crypto-random-string": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + } + } + }, + "import-lazy": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "is-npm": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "latest-version": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "package-json": "4.0.1" + }, + "dependencies": { + "package-json": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "got": "6.7.1", + "registry-auth-token": "3.3.1", + "registry-url": "3.1.0", + "semver": "5.4.1" + }, + "dependencies": { + "got": { + "version": "6.7.1", + "bundled": true, + "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" + }, + "dependencies": { + "create-error-class": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "capture-stack-trace": "1.0.0" + }, + "dependencies": { + "capture-stack-trace": { + "version": "1.0.0", + "bundled": true, + "dev": true + } + } + }, + "duplexer3": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "is-redirect": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-retry-allowed": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "lowercase-keys": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "timed-out": { + "version": "4.0.1", + "bundled": true, + "dev": true + }, + "unzip-response": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "url-parse-lax": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "prepend-http": "1.0.4" + }, + "dependencies": { + "prepend-http": { + "version": "1.0.4", + "bundled": true, + "dev": true + } + } + } + } + }, + "registry-auth-token": { + "version": "3.3.1", + "bundled": true, + "dev": true, + "requires": { + "rc": "1.2.1", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "rc": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "registry-url": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "rc": "1.2.1" + }, + "dependencies": { + "rc": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true + } + } + } + } + } + } + } + } + }, + "semver-diff": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "semver": "5.4.1" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "bundled": true, + "dev": true + } + } + }, + "uuid": { + "version": "3.1.0", + "bundled": true, + "dev": 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" + }, + "dependencies": { + "spdx-correct": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "spdx-license-ids": "1.2.2" + }, + "dependencies": { + "spdx-license-ids": { + "version": "1.2.2", + "bundled": true, + "dev": true + } + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "bundled": true, + "dev": true + } + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "builtins": "1.0.3" + }, + "dependencies": { + "builtins": { + "version": "1.0.3", + "bundled": true, + "dev": true + } + } + }, + "which": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "isexe": "2.0.0" + }, + "dependencies": { + "isexe": { + "version": "2.0.0", + "bundled": true, + "dev": true + } + } + }, + "worker-farm": { + "version": "1.5.0", + "bundled": true, + "dev": true, + "requires": { + "errno": "0.1.4", + "xtend": "4.0.1" + }, + "dependencies": { + "errno": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "prr": "0.0.0" + }, + "dependencies": { + "prr": { + "version": "0.0.0", + "bundled": true, + "dev": true + } + } + }, + "xtend": { + "version": "4.0.1", + "bundled": true, + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "write-file-atomic": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "slide": "1.1.6" + } + } + } + }, + "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" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "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" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "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=" + }, + "nunjucks": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.0.1.tgz", + "integrity": "sha1-TedKPlULr2+jNwMj89HHwqhr3E0=", + "requires": { + "a-sync-waterfall": "1.0.0", + "asap": "2.0.6", + "chokidar": "1.7.0", + "yargs": "3.32.0" + }, + "dependencies": { + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "requires": { + "lcid": "1.0.0" + } + }, + "window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=" + }, + "yargs": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", + "requires": { + "camelcase": "2.1.1", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "os-locale": "1.4.0", + "string-width": "1.0.2", + "window-size": "0.1.4", + "y18n": "3.2.1" + } + } + } + }, + "nwmatcher": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz", + "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==", + "dev": true + }, + "oauth-1.0a": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/oauth-1.0a/-/oauth-1.0a-2.2.2.tgz", + "integrity": "sha512-fHRvq3aHoYXq8rZrXOX80nYgMc0svd4a88R4W7QLltJ1Rl+GFjW6Eu3rgR1zWB5MbuyqsWojADsS4vbmDiho/w==" + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "dev": true + }, + "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" + } + }, + "obuf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz", + "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4=", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "1.1.0" + } + }, + "opn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz", + "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==", + "dev": true, + "requires": { + "is-wsl": "1.1.0" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + }, + "dependencies": { + "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" + } + }, + "ora": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-1.3.0.tgz", + "integrity": "sha1-gAeN0rkqk0r2ajrXKluRBpTt5Ro=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "cli-cursor": "2.1.0", + "cli-spinners": "1.1.0", + "log-symbols": "1.0.2" + } + }, + "original": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", + "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", + "dev": true, + "requires": { + "url-parse": "1.0.5" + }, + "dependencies": { + "url-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", + "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=", + "dev": true, + "requires": { + "querystringify": "0.0.4", + "requires-port": "1.0.0" + } + } + } + }, + "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 + }, + "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": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "output-file-sync": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", + "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1", + "object-assign": "4.1.1" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", + "dev": true + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "1.1.0" + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true + }, + "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" + } + }, + "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 + }, + "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" + }, + "dependencies": { + "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 + } + } + }, + "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-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" + } + }, + "parse5": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", + "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", + "dev": true + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "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": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "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=", + "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" + } + }, + "pbkdf2-compat": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", + "integrity": "sha1-tuDI+plJTZTgURV1gCpZpcFC8og=", + "dev": true + }, + "pdfjs-dist": { + "version": "1.10.97", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-1.10.97.tgz", + "integrity": "sha1-05mVhslLdf5eboFhpXxEmhOgMPs=", + "requires": { + "node-ensure": "0.0.0", + "worker-loader": "1.1.0" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "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=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "2.0.4" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "2.1.0" + } + }, + "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" + } + }, + "pluralize": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", + "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=", + "dev": true + }, + "portfinder": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz", + "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", + "dev": true, + "requires": { + "async": "1.5.2", + "debug": "2.6.9", + "mkdirp": "0.5.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + }, + "dependencies": { + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-calc": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", + "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "postcss-message-helpers": "2.0.0", + "reduce-css-calc": "1.3.0" + } + }, + "postcss-colormin": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", + "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", + "dev": true, + "requires": { + "colormin": "1.1.2", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-convert-values": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", + "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-discard-comments": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", + "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", + "dev": true, + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-discard-duplicates": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", + "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", + "dev": true, + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-discard-empty": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", + "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", + "dev": true, + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-discard-overridden": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", + "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", + "dev": true, + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-discard-unused": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", + "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "uniqs": "2.0.0" + } + }, + "postcss-filter-plugins": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", + "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "uniqid": "4.1.1" + } + }, + "postcss-merge-idents": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", + "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", + "dev": true, + "requires": { + "has": "1.0.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-merge-longhand": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", + "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", + "dev": true, + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-merge-rules": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", + "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-api": "1.6.1", + "postcss": "5.2.18", + "postcss-selector-parser": "2.2.3", + "vendors": "1.0.1" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "1.0.30000770", + "electron-to-chromium": "1.3.27" + } + } + } + }, + "postcss-message-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", + "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", + "dev": true + }, + "postcss-minify-font-values": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", + "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-minify-gradients": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", + "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-minify-params": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", + "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", + "dev": true, + "requires": { + "alphanum-sort": "1.0.2", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0", + "uniqs": "2.0.0" + } + }, + "postcss-minify-selectors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", + "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", + "dev": true, + "requires": { + "alphanum-sort": "1.0.2", + "has": "1.0.1", + "postcss": "5.2.18", + "postcss-selector-parser": "2.2.3" + } + }, + "postcss-modules-extract-imports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", + "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", + "dev": true, + "requires": { + "postcss": "6.0.14" + }, + "dependencies": { + "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" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "postcss": { + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", + "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "4.5.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "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" + } + } + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "requires": { + "css-selector-tokenizer": "0.7.0", + "postcss": "6.0.14" + }, + "dependencies": { + "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" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "postcss": { + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", + "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "4.5.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "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" + } + } + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "requires": { + "css-selector-tokenizer": "0.7.0", + "postcss": "6.0.14" + }, + "dependencies": { + "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" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "postcss": { + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", + "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "4.5.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "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" + } + } + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "requires": { + "icss-replace-symbols": "1.1.0", + "postcss": "6.0.14" + }, + "dependencies": { + "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" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "postcss": { + "version": "6.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", + "integrity": "sha512-NJ1z0f+1offCgadPhz+DvGm5Mkci+mmV5BqD13S992o0Xk9eElxUfPPF+t2ksH5R/17gz4xVK8KWocUQ5o3Rog==", + "dev": true, + "requires": { + "chalk": "2.3.0", + "source-map": "0.6.1", + "supports-color": "4.5.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "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" + } + } + } + }, + "postcss-normalize-charset": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", + "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", + "dev": true, + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-normalize-url": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", + "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", + "dev": true, + "requires": { + "is-absolute-url": "2.1.0", + "normalize-url": "1.9.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-ordered-values": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", + "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-reduce-idents": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", + "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", + "dev": true, + "requires": { + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-reduce-initial": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", + "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", + "dev": true, + "requires": { + "postcss": "5.2.18" + } + }, + "postcss-reduce-transforms": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", + "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", + "dev": true, + "requires": { + "has": "1.0.1", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", + "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "dev": true, + "requires": { + "flatten": "1.0.2", + "indexes-of": "1.0.1", + "uniq": "1.0.1" + } + }, + "postcss-svgo": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", + "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", + "dev": true, + "requires": { + "is-svg": "2.1.0", + "postcss": "5.2.18", + "postcss-value-parser": "3.3.0", + "svgo": "0.7.2" + } + }, + "postcss-unique-selectors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", + "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", + "dev": true, + "requires": { + "alphanum-sort": "1.0.2", + "postcss": "5.2.18", + "uniqs": "2.0.0" + } + }, + "postcss-value-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "dev": true + }, + "postcss-zindex": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", + "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", + "dev": true, + "requires": { + "has": "1.0.1", + "postcss": "5.2.18", + "uniqs": "2.0.0" + } + }, + "prebuild-install": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.3.0.tgz", + "integrity": "sha512-gzjq2oHB8oMbzJSsSh9MQ64zrXZGt092/uT4TLZlz2qnrPxpWqp4vYB7LZrDxnlxf5RfbCjkgDI/z0EIVuYzAw==", + "dev": true, + "requires": { + "expand-template": "1.1.0", + "github-from-package": "0.0.0", + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "node-abi": "2.1.2", + "noop-logger": "0.1.1", + "npmlog": "4.1.2", + "os-homedir": "1.0.2", + "pump": "1.0.3", + "rc": "1.2.2", + "simple-get": "1.4.3", + "tar-fs": "1.16.0", + "tunnel-agent": "0.6.0", + "xtend": "4.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "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=" + }, + "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-format": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-21.2.1.tgz", + "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", + "dev": true, + "requires": { + "ansi-regex": "3.0.0", + "ansi-styles": "3.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "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" + } + } + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" + }, + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "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" + } + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "2.0.6" + } + }, + "prop-types": { + "version": "15.6.0", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", + "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1" + } + }, + "proxy-addr": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", + "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", + "dev": true, + "requires": { + "forwarded": "0.1.2", + "ipaddr.js": "1.5.2" + } + }, + "prr": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", + "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "end-of-stream": "1.4.0", + "once": "1.4.0" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "pupa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-1.0.0.tgz", + "integrity": "sha1-mpVopa9+ZXuEYqbp1TKHQ1YM7/Y=" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" + } + }, + "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 + }, + "querystringify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz", + "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=", + "dev": true + }, + "rabin-bindings": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/rabin-bindings/-/rabin-bindings-1.7.3.tgz", + "integrity": "sha512-zeVdstq+EWdwQ5JCyuuvOsP2fmGc6993laN+v8eEQsahHwZCy8bt5TefohUpgsetiwQhMMk/o+m/2sYng13Txw==", + "dev": true, + "requires": { + "bindings": "1.3.0", + "nan": "2.8.0", + "prebuild-install": "2.3.0" + } + }, + "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==", + "dev": true, + "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=", + "dev": true + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + } + }, + "rc": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz", + "integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=", + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "react": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/react/-/react-16.1.1.tgz", + "integrity": "sha512-FQfiFfk2z2Fk87OngNJHT05KyC9DOVn8LPeB7ZX+9u5+yU1JK6o5ozRlU3PeOMr0IFkWNvgn9jU8/IhRxR1F0g==", + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.6.0" + } + }, + "react-deep-force-update": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-2.1.1.tgz", + "integrity": "sha1-jqQmPNZFWgULN0RbPwj9g52G6Qk=", + "dev": true + }, + "react-dnd": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-2.5.4.tgz", + "integrity": "sha512-y9YmnusURc+3KPgvhYKvZ9oCucj51MSZWODyaeV0KFU0cquzA7dCD1g/OIYUKtNoZ+MXtacDngkdud2TklMSjw==", + "requires": { + "disposables": "1.0.1", + "dnd-core": "2.5.4", + "hoist-non-react-statics": "2.3.1", + "invariant": "2.2.2", + "lodash": "4.17.4", + "prop-types": "15.6.0" + } + }, + "react-dnd-html5-backend": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-2.5.4.tgz", + "integrity": "sha512-jDqAkm/hI8Tl4HcsbhkBgB6HgpJR1e+ML1SbfxaegXYiuMxEVQm0FOwEH5WxUoo6fmIG4N+H0rSm59POuZOCaA==", + "requires": { + "lodash": "4.17.4" + } + }, + "react-dom": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.1.1.tgz", + "integrity": "sha512-q06jiwST8SEPAMIEkAsu7BgynEZtqF87VrTc70XsW7nxVhWEu2Y4MF5UfxxHQO/mNtQHQWP0YcFxmwm9oMrMaQ==", + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.6.0" + } + }, + "react-hot-loader": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-3.1.3.tgz", + "integrity": "sha512-d7nZf78irxoGN5PY4zd6CSgZiroOhvIWzRast3qwTn4sSnBwlt08kV8WMQ9mitmxEdlCTwZt+5ClrRSjxWguMQ==", + "dev": true, + "requires": { + "global": "4.3.2", + "react-deep-force-update": "2.1.1", + "react-proxy": "3.0.0-alpha.1", + "redbox-react": "1.5.0", + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "react-proxy": { + "version": "3.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-3.0.0-alpha.1.tgz", + "integrity": "sha1-RABCa8+oDKpnJMd1VpUxUgn6Swc=", + "dev": true, + "requires": { + "lodash": "4.17.4" + } + }, + "react-redux": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.6.tgz", + "integrity": "sha512-8taaaGu+J7PMJQDJrk/xiWEYQmdo3mkXw6wPr3K3LxvXis3Fymiq7c13S+Tpls/AyNUAsoONkU81AP0RA6y6Vw==", + "requires": { + "hoist-non-react-statics": "2.3.1", + "invariant": "2.2.2", + "lodash": "4.17.4", + "lodash-es": "4.17.4", + "loose-envify": "1.3.1", + "prop-types": "15.6.0" + } + }, + "react-tabs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-2.1.1.tgz", + "integrity": "sha512-55jl6lsYmPTQarnjgrBU68WZlNtVSngpRxOc4iXm+Te27F9ixUr/IBTbhlhDCMiFJreP+cqu1OaMdNGY2Hg10A==", + "requires": { + "classnames": "2.2.5", + "prop-types": "15.6.0" + } + }, + "read-config-file": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-1.2.0.tgz", + "integrity": "sha512-A1MNfKNIfYV7vXMOQ/CPCuVpCdWoPULu8whmrkKxwN8FUsv6EjwU2SPSNueeTKR6tZPl7+Qeondyb4/pAcoozQ==", + "dev": true, + "requires": { + "ajv": "5.5.0", + "ajv-keywords": "2.1.1", + "bluebird-lst": "1.0.5", + "dotenv": "4.0.0", + "dotenv-expand": "4.0.1", + "fs-extra-p": "4.4.4", + "js-yaml": "3.10.0", + "json5": "0.5.1", + "lazy-val": "1.0.2" + }, + "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 + }, + "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==", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "4.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" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "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" + } + } + } + }, + "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" + } + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "requires": { + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.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" + } + }, + "recast": { + "version": "0.10.43", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.43.tgz", + "integrity": "sha1-uV1Q9tYHYaX2JS4V2AZ4FoSRzn8=", + "requires": { + "ast-types": "0.8.15", + "esprima-fb": "15001.1001.0-dev-harmony-fb", + "private": "0.1.8", + "source-map": "0.5.7" + }, + "dependencies": { + "esprima-fb": { + "version": "15001.1001.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz", + "integrity": "sha1-Q761fsJujPI3092LM+QlM1d/Jlk=" + } + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "1.5.0" + } + }, + "redbox-react": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/redbox-react/-/redbox-react-1.5.0.tgz", + "integrity": "sha512-mdxArOI3sF8K5Nay5NG+lv/VW516TbXjjd4h1wcV1Iy4IMDQPnCayjoQXBAycAFSME4nyXRUXCjHxsw2rYpVRw==", + "dev": true, + "requires": { + "error-stack-parser": "1.3.6", + "object-assign": "4.1.1", + "prop-types": "15.6.0", + "sourcemapped-stacktrace": "1.1.7" + } + }, + "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" + } + }, + "reduce-css-calc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "dev": true, + "requires": { + "balanced-match": "0.4.2", + "math-expression-evaluator": "1.2.17", + "reduce-function-call": "1.0.2" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + } + } + }, + "reduce-function-call": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", + "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", + "dev": true, + "requires": { + "balanced-match": "0.4.2" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + } + } + }, + "redux": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", + "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", + "requires": { + "lodash": "4.17.4", + "lodash-es": "4.17.4", + "loose-envify": "1.3.1", + "symbol-observable": "1.0.4" + } + }, + "redux-mock-store": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/redux-mock-store/-/redux-mock-store-1.3.0.tgz", + "integrity": "sha512-TiwaDF4WLX/lJP0v1j4CMYUEfaIftTGuMUOYb7hmYJjLMAdgj2b/LOf+G9QDssNKFOpSl4B8St8TMUzF3hx92Q==", + "dev": true + }, + "redux-thunk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.2.0.tgz", + "integrity": "sha1-5hWhbha0ehmlFXZhM9Hj6Zt4UuU=" + }, + "regenerate": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", + "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", + "dev": true + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" + } + }, + "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" + } + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "1.3.3", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } + }, + "registry-auth-token": { + "version": "3.3.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" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "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" + } + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "requizzle": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.1.tgz", + "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", + "requires": { + "underscore": "1.6.0" + } + }, + "reselect": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-3.0.1.tgz", + "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=" + }, + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "resolve-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 + }, + "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" + } + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "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": "0.1.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", + "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", + "dev": true, + "requires": { + "once": "1.4.0" + } + }, + "rx": { + "version": "2.3.24", + "resolved": "https://registry.npmjs.org/rx/-/rx-2.3.24.tgz", + "integrity": "sha1-FPlQpCF9fjXapxu8vljv9o6ksrc=", + "dev": true + }, + "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 + }, + "rxjs": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.2.tgz", + "integrity": "sha512-oRYoIKWBU3Ic37fLA5VJu31VqQO4bWubRntcHSJ+cwaDQBwdnZ9x4zmhJfm/nFQ2E82/I4loSioHnACamrKGgA==", + "dev": true, + "requires": { + "symbol-observable": "1.0.4" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "sane": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-2.2.0.tgz", + "integrity": "sha512-OSJxhHO0CgPUw3lUm3GhfREAfza45smvEI9ozuFrxKG10GHVo0ryW9FK5VYlLvxj0SV7HVKHW0voYJIRu27GWg==", + "dev": true, + "requires": { + "anymatch": "1.3.2", + "exec-sh": "0.2.1", + "fb-watchman": "2.0.0", + "fsevents": "1.1.3", + "minimatch": "3.0.4", + "minimist": "1.2.0", + "walker": "1.0.7", + "watch": "0.18.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "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" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "requires": { + "ajv": "5.5.0" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selfsigned": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.1.tgz", + "integrity": "sha1-v4y3uDJWxFUeMTR8YxF3jbme7FI=", + "dev": true, + "requires": { + "node-forge": "0.6.33" + }, + "dependencies": { + "node-forge": { + "version": "0.6.33", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.6.33.tgz", + "integrity": "sha1-RjgRh59XPUUVWtap9D3ClujoXrw=", + "dev": true + } + } + }, + "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" + } + }, + "send": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", + "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "1.1.1", + "destroy": "1.0.4", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "http-errors": "1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" + }, + "dependencies": { + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true + } + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "1.0.3", + "http-errors": "1.6.2", + "mime-types": "2.1.17", + "parseurl": "1.3.2" + } + }, + "serve-static": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", + "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", + "dev": true, + "requires": { + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "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=" + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "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" + } + }, + "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 + }, + "shell-quote": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "requires": { + "array-filter": "0.0.1", + "array-map": "0.0.0", + "array-reduce": "0.0.0", + "jsonify": "0.0.0" + } + }, + "shelljs": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", + "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", + "dev": true, + "requires": { + "glob": "7.1.2", + "interpret": "1.0.4", + "rechoir": "0.6.2" + } + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "simple-get": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-1.4.3.tgz", + "integrity": "sha1-6XVe2kB+ltpAxeUVjJ6jezO+y+s=", + "dev": true, + "requires": { + "once": "1.4.0", + "unzip-response": "1.0.2", + "xtend": "4.0.1" + }, + "dependencies": { + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "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" + } + }, + "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 + }, + "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" + } + }, + "sockjs": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz", + "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=", + "dev": true, + "requires": { + "faye-websocket": "0.10.0", + "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 + } + } + }, + "sockjs-client": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", + "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", + "dev": true, + "requires": { + "debug": "2.6.9", + "eventsource": "0.1.6", + "faye-websocket": "0.11.1", + "inherits": "2.0.3", + "json3": "3.3.2", + "url-parse": "1.2.0" + }, + "dependencies": { + "faye-websocket": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", + "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "dev": true, + "requires": { + "websocket-driver": "0.7.0" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "requires": { + "is-plain-obj": "1.1.0" + } + }, + "sort-keys-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", + "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", + "requires": { + "sort-keys": "1.1.2" + } + }, + "source-list-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + }, + "sourcemapped-stacktrace": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/sourcemapped-stacktrace/-/sourcemapped-stacktrace-1.1.7.tgz", + "integrity": "sha512-pgHNUACbafkQ+M5zR00NSOtSKBc/i40prgN+SY07J/pghClwVNWNTTMa0JuXj4lriR2TvMKcPAHw5KN9tVFRhA==", + "dev": true, + "requires": { + "source-map": "0.5.6" + }, + "dependencies": { + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + } + } + }, + "spawn-command": { + "version": "0.0.2-1", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", + "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", + "dev": true + }, + "spawn-rx": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/spawn-rx/-/spawn-rx-2.0.12.tgz", + "integrity": "sha512-gOPXiQQFQ9lTOLuys0iMn3jfxxv9c7zzwhbYLOEbQGvEShHVJ5sSR1oD3Daj88os7jKArDYT7rbOKdvNhe7iEg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "lodash.assign": "4.2.0", + "rxjs": "5.5.2" + }, + "dependencies": { + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true + } + } + }, + "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 + }, + "spdy": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", + "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", + "dev": true, + "requires": { + "debug": "2.6.9", + "handle-thing": "1.2.5", + "http-deceiver": "1.2.7", + "safe-buffer": "5.1.1", + "select-hose": "2.0.0", + "spdy-transport": "2.0.20" + } + }, + "spdy-transport": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz", + "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=", + "dev": true, + "requires": { + "debug": "2.6.9", + "detect-node": "2.0.3", + "hpack.js": "2.1.6", + "obuf": "1.1.1", + "readable-stream": "2.3.3", + "safe-buffer": "5.1.1", + "wbuf": "1.7.2" + } + }, + "speedometer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", + "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", + "dev": true + }, + "split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "requires": { + "through": "2.3.8" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "srp-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/srp-js/-/srp-js-0.2.0.tgz", + "integrity": "sha1-G40Jb0RvDW6iiULzUBSKmNpeemk=", + "requires": { + "buffer": "5.0.8", + "jsbn": "0.1.1" + } + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + } + }, + "stackframe": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-0.3.1.tgz", + "integrity": "sha1-M6qE8Rd6VUjIk1Uzy/6zQgl19aQ=", + "dev": true + }, + "stat-mode": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz", + "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=", + "dev": true + }, + "static-eval": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-0.2.3.tgz", + "integrity": "sha1-Aj8XrJ/uQm6niMEuo5IG3Bdfiyo=", + "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.5.7" + } + }, + "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=" + } + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + }, + "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-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "requires": { + "duplexer": "0.1.1" + } + }, + "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" + }, + "dependencies": { + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string-length": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", + "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", + "dev": true, + "requires": { + "astral-regex": "1.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "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" + } + } + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "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=" + }, + "style-loader": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.0.tgz", + "integrity": "sha512-9mx9sC9nX1dgP96MZOODpGC6l1RzQBITI2D5WJhu+wnbrSYVKLGuy14XJSLVQih/0GFrPpjelt+s//VcZQ2Evw==", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "schema-utils": "0.3.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": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "svgo": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", + "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", + "dev": true, + "requires": { + "coa": "1.0.4", + "colors": "1.1.2", + "csso": "2.3.2", + "js-yaml": "3.7.0", + "mkdirp": "0.5.1", + "sax": "1.2.4", + "whet.extend": "0.9.9" + } + }, + "symbol-observable": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", + "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=" + }, + "symbol-tree": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", + "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" + } + }, + "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 + }, + "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 + }, + "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" + } + } + } + }, + "taffydb": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=" + }, + "tapable": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", + "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", + "dev": true + }, + "tar": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-3.2.1.tgz", + "integrity": "sha512-ZSzds1E0IqutvMU8HxjMaU8eB7urw2fGwTq88ukDOVuUIh0656l7/P7LiVPxhO5kS4flcRJQk8USG+cghQbTUQ==", + "requires": { + "chownr": "1.0.1", + "minipass": "2.2.1", + "minizlib": "1.0.4", + "mkdirp": "0.5.1", + "yallist": "3.0.2" + }, + "dependencies": { + "yallist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" + } + } + }, + "tar-fs": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.0.tgz", + "integrity": "sha512-I9rb6v7mjWLtOfCau9eH5L7sLJyU2BnxtEZRQ5Mt+eRKmf1F0ohXmT/Jc3fr52kDvjJ/HV5MH3soQfPL5bQ0Yg==", + "dev": true, + "requires": { + "chownr": "1.0.1", + "mkdirp": "0.5.1", + "pump": "1.0.3", + "tar-stream": "1.5.5" + } + }, + "tar-pack": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.1.tgz", + "integrity": "sha512-PPRybI9+jM5tjtCbN2cxmmRU7YmqT3Zv/UDy48tAh2XRkLa9bAORtSWLkVc13+GJF+cdTh1yEnHEk3cpTaL5Kg==", + "requires": { + "debug": "2.6.9", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.3.3", + "rimraf": "2.6.2", + "tar": "2.2.1", + "uid-number": "0.0.6" + }, + "dependencies": { + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + } + } + }, + "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" + }, + "dependencies": { + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "temp-file": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-2.1.3.tgz", + "integrity": "sha512-UP2O7J8OGDElktJy+WRkKHqNBXTOK2NRQM0TBhq8jpPReHBaWgUsX6sQfElcEVjiyJKVwJWE3kgWz9SIFRAFpA==", + "dev": true, + "requires": { + "async-exit-hook": "2.0.1", + "bluebird-lst": "1.0.5", + "fs-extra-p": "4.4.4", + "lazy-val": "1.0.2" + } + }, + "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" + } + }, + "test-exclude": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", + "integrity": "sha512-35+Asrsk3XHJDBgf/VRFexPgh3UyETv8IAn/LRTiZjVy6rjPVqdEk8dJcJYBzl1w0XCJM48lvTy8SfEsCWS4nA==", + "dev": true, + "requires": { + "arrify": "1.0.1", + "micromatch": "2.3.11", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" + } + }, + "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 + }, + "throat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", + "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", + "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=" + }, + "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" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "thunky": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz", + "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4=", + "dev": true + }, + "time-stamp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.0.tgz", + "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c=", + "dev": true + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", + "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", + "dev": true, + "requires": { + "setimmediate": "1.0.5" + } + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", + "dev": true + }, + "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-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "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" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true + }, + "tree-kill": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz", + "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==", + "dev": true + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "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 + }, + "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" + } + }, + "type-is": { + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", + "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.17" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.17", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", + "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==" + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true + }, + "uglifyjs-webpack-plugin": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", + "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "dev": true, + "requires": { + "source-map": "0.5.7", + "uglify-js": "2.8.29", + "webpack-sources": "1.0.2" + } + }, + "uid-number": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=" + }, + "underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=" + }, + "underscore-contrib": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz", + "integrity": "sha1-ZltmwkeD+PorGMn4y7Dix9SMJsc=", + "requires": { + "underscore": "1.6.0" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqid": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", + "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", + "dev": true, + "requires": { + "macaddress": "0.2.8" + } + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "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" + } + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unreachable-branch-transform": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unreachable-branch-transform/-/unreachable-branch-transform-0.3.0.tgz", + "integrity": "sha1-2ZzExudG0mSSiEW2EdtUsPNHTKo=", + "requires": { + "esmangle-evaluator": "1.0.1", + "recast": "0.10.43", + "through2": "0.6.5" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "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" + } + }, + "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.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "requires": { + "readable-stream": "1.0.34", + "xtend": "4.0.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + } + } + }, + "unused-filename": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unused-filename/-/unused-filename-1.0.0.tgz", + "integrity": "sha1-00CID3GuIRXrqhMlvvBcxmhEacY=", + "requires": { + "modify-filename": "1.1.0", + "path-exists": "3.0.0" + } + }, + "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": "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" + }, + "dependencies": { + "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" + } + }, + "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": "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" + } + } + } + }, + "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-loader": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.6.2.tgz", + "integrity": "sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q==", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "mime": "1.5.0", + "schema-utils": "0.3.0" + }, + "dependencies": { + "mime": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.5.0.tgz", + "integrity": "sha512-v/jMDoK/qKptnTuC3YUNbIj8uUYvTCIHzVu9BHldKSWja48wusAtfjlcBlqnFrqClu3yf69ScDxBPrIyFnF51g==", + "dev": true + } + } + }, + "url-parse": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz", + "integrity": "sha512-DT1XbYAfmQP65M/mE6OALxmXzZ/z1+e5zk2TcSKe/KiYbNGZxgtttzC0mR/sjopbpOXcbniq7eIKmocJnUWlEw==", + "dev": true, + "requires": { + "querystringify": "1.0.0", + "requires-port": "1.0.0" + }, + "dependencies": { + "querystringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz", + "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=", + "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": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, + "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=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true, + "requires": { + "user-home": "1.1.1" + } + }, + "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" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vendors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", + "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=", + "dev": true + }, + "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" + } + }, + "vkbeautify": { + "version": "0.99.3", + "resolved": "https://registry.npmjs.org/vkbeautify/-/vkbeautify-0.99.3.tgz", + "integrity": "sha512-2ozZEFfmVvQcHWoHLNuiKlUfDKlhh4KGsy54U0UrlLMR1SO+XKAIDqBxtBwHgNrekurlJwE8A9K6L49T78ZQ9Q==" + }, + "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" + } + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "dev": true, + "requires": { + "makeerror": "1.0.11" + } + }, + "watch": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", + "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", + "dev": true, + "requires": { + "exec-sh": "0.2.1", + "minimist": "1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "watchpack": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", + "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", + "dev": true, + "requires": { + "async": "2.6.0", + "chokidar": "1.7.0", + "graceful-fs": "4.1.11" + } + }, + "wbuf": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz", + "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=", + "dev": true, + "requires": { + "minimalistic-assert": "1.0.0" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webpack": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.8.1.tgz", + "integrity": "sha512-5ZXLWWsMqHKFr5y0N3Eo5IIisxeEeRAajNq4mELb/WELOR7srdbQk2N5XiyNy2A/AgvlR3AmeBCZJW8lHrolbw==", + "dev": true, + "requires": { + "acorn": "5.2.1", + "acorn-dynamic-import": "2.0.2", + "ajv": "5.5.0", + "ajv-keywords": "2.1.1", + "async": "2.6.0", + "enhanced-resolve": "3.4.1", + "escope": "3.6.0", + "interpret": "1.0.4", + "json-loader": "0.5.7", + "json5": "0.5.1", + "loader-runner": "2.3.0", + "loader-utils": "1.1.0", + "memory-fs": "0.4.1", + "mkdirp": "0.5.1", + "node-libs-browser": "2.1.0", + "source-map": "0.5.7", + "supports-color": "4.5.0", + "tapable": "0.2.8", + "uglifyjs-webpack-plugin": "0.4.6", + "watchpack": "1.4.0", + "webpack-sources": "1.0.2", + "yargs": "8.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "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 + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "2.3.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "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" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "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" + } + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "dev": true, + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "webpack-core": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", + "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", + "dev": true, + "requires": { + "source-list-map": "0.1.8", + "source-map": "0.4.4" + }, + "dependencies": { + "source-list-map": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", + "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", + "dev": true + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "webpack-dev-middleware": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.1.tgz", + "integrity": "sha512-UzyVg/CKBKkymDpqOoQ4mWTs9zQp0DPCY8zbol9K0tPhqoM+JU5knKGXyMQ/Cdrmzb9Cw3eetm67fIsJ7u7ryg==", + "dev": true, + "requires": { + "memory-fs": "0.4.1", + "mime": "1.5.0", + "path-is-absolute": "1.0.1", + "range-parser": "1.2.0", + "time-stamp": "2.0.0" + }, + "dependencies": { + "mime": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.5.0.tgz", + "integrity": "sha512-v/jMDoK/qKptnTuC3YUNbIj8uUYvTCIHzVu9BHldKSWja48wusAtfjlcBlqnFrqClu3yf69ScDxBPrIyFnF51g==", + "dev": true + } + } + }, + "webpack-dev-server": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.9.4.tgz", + "integrity": "sha512-thrqC0EQEoSjXeYgP6pUXcUCZ+LNrKsDPn+mItLnn5VyyNZOJKd06hUP5vqkYwL8nWWXsii0loSF9NHNccT6ow==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "array-includes": "3.0.3", + "bonjour": "3.5.0", + "chokidar": "1.7.0", + "compression": "1.7.1", + "connect-history-api-fallback": "1.5.0", + "debug": "3.1.0", + "del": "3.0.0", + "express": "4.16.2", + "html-entities": "1.2.1", + "http-proxy-middleware": "0.17.4", + "import-local": "0.1.1", + "internal-ip": "1.2.0", + "ip": "1.1.5", + "killable": "1.0.0", + "loglevel": "1.6.0", + "opn": "5.1.0", + "portfinder": "1.0.13", + "selfsigned": "1.10.1", + "serve-index": "1.9.1", + "sockjs": "0.3.18", + "sockjs-client": "1.1.4", + "spdy": "3.4.7", + "strip-ansi": "3.0.1", + "supports-color": "4.5.0", + "webpack-dev-middleware": "1.12.1", + "yargs": "6.6.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 + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "dev": true, + "requires": { + "globby": "6.1.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "p-map": "1.2.0", + "pify": "3.0.0", + "rimraf": "2.6.2" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "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" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "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" + } + }, + "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 + }, + "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" + } + }, + "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" + } + } + } + }, + "webpack-sources": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.2.tgz", + "integrity": "sha512-Y7UddMCv6dGjy81nBv6nuQeFFIt5aalHm7uyDsAsW86nZwfOVPGRr3XMjEQLaT+WKo8rlzhC9qtbJvYKLtAwaw==", + "dev": true, + "requires": { + "source-list-map": "2.0.0", + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "webpack-target-electron-renderer": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/webpack-target-electron-renderer/-/webpack-target-electron-renderer-0.4.0.tgz", + "integrity": "sha1-UJM3CIVgRM/vFBk8qvMgriGc/aI=", + "dev": true, + "requires": { + "webpack": "1.15.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 + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "browserify-aes": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz", + "integrity": "sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw=", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "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.0", + "ieee754": "1.1.8", + "isarray": "1.0.0" + } + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } + }, + "clone": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", + "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", + "dev": true + }, + "crypto-browserify": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.3.0.tgz", + "integrity": "sha1-ufx1u0oO1h3PHNXa6W6zDJw+UGw=", + "dev": true, + "requires": { + "browserify-aes": "0.4.0", + "pbkdf2-compat": "2.0.1", + "ripemd160": "0.2.0", + "sha.js": "2.2.6" + } + }, + "enhanced-resolve": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", + "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "memory-fs": "0.2.0", + "tapable": "0.1.10" + }, + "dependencies": { + "memory-fs": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", + "dev": true + } + } + }, + "https-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", + "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", + "dev": true + }, + "interpret": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz", + "integrity": "sha1-/s16GOfOXKar+5U+H4YhOknxYls=", + "dev": true + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.1" + } + }, + "memory-fs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", + "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=", + "dev": true, + "requires": { + "errno": "0.1.4", + "readable-stream": "2.3.3" + } + }, + "node-libs-browser": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz", + "integrity": "sha1-PicsCBnjCJNeJmdECNevDhSRuDs=", + "dev": true, + "requires": { + "assert": "1.4.1", + "browserify-zlib": "0.1.4", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.3.0", + "domain-browser": "1.1.7", + "events": "1.1.1", + "https-browserify": "0.0.1", + "os-browserify": "0.2.1", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "2.3.3", + "stream-browserify": "2.0.1", + "stream-http": "2.7.2", + "string_decoder": "0.10.31", + "timers-browserify": "2.0.4", + "tty-browserify": "0.0.0", + "url": "0.11.0", + "util": "0.10.3", + "vm-browserify": "0.0.4" + } + }, + "os-browserify": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", + "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", + "dev": true + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "ripemd160": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", + "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=", + "dev": true + }, + "sha.js": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", + "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=", + "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 + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + }, + "tapable": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", + "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", + "dev": true + }, + "uglify-js": { + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", + "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", + "dev": true, + "requires": { + "async": "0.2.10", + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + } + } + }, + "watchpack": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", + "integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=", + "dev": true, + "requires": { + "async": "0.9.2", + "chokidar": "1.7.0", + "graceful-fs": "4.1.11" + }, + "dependencies": { + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + } + } + }, + "webpack": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.15.0.tgz", + "integrity": "sha1-T/MfU9sDM55VFkqdRo7gMklo/pg=", + "dev": true, + "requires": { + "acorn": "3.3.0", + "async": "1.5.2", + "clone": "1.0.3", + "enhanced-resolve": "0.9.1", + "interpret": "0.6.6", + "loader-utils": "0.2.17", + "memory-fs": "0.3.0", + "mkdirp": "0.5.1", + "node-libs-browser": "0.7.0", + "optimist": "0.6.1", + "supports-color": "3.2.3", + "tapable": "0.1.10", + "uglify-js": "2.7.5", + "watchpack": "0.2.9", + "webpack-core": "0.6.9" + } + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "websocket-driver": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", + "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "dev": true, + "requires": { + "http-parser-js": "0.4.9", + "websocket-extensions": "0.1.3" + } + }, + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", + "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.19" + } + }, + "whatwg-fetch": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", + "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" + }, + "whatwg-url": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", + "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", + "dev": true, + "requires": { + "tr46": "0.0.3", + "webidl-conversions": "3.0.1" + }, + "dependencies": { + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "dev": true + } + } + }, + "whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", + "dev": true + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wide-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "requires": { + "string-width": "1.0.2" + } + }, + "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" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "worker-farm": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.2.tgz", + "integrity": "sha512-XxiQ9kZN5n6mmnW+mFJ+wXjNNI/Nx4DIdaAKLX1Bn6LYBWlN/zaBhu34DQYPZ1AJobQuu67S2OfDdNSVULvXkQ==", + "dev": true, + "requires": { + "errno": "0.1.4", + "xtend": "4.0.1" + }, + "dependencies": { + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "worker-loader": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-1.1.0.tgz", + "integrity": "sha512-W91q8Wi1JxbzFQZuLJlFK4x8UuWjKgeOX9IMMyng007K0UkP6I8lOejckoCWY61QmnJq2x9qZ/Viru+uF8g6nA==", + "requires": { + "loader-utils": "1.1.0", + "schema-utils": "0.3.0" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + } + }, + "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": "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 + }, + "xml-name-validator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", + "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", + "dev": true + }, + "xmlbuilder": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", + "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=", + "dev": true + }, + "xmlcreate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", + "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=" + }, + "xmldom": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", + "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=" + }, + "xpath": { + "version": "0.0.23", + "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.23.tgz", + "integrity": "sha1-9ej9xr3H5yiFsyNPQMuiZpWAqvo=" + }, + "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" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.0.3.tgz", + "integrity": "sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==", + "dev": true, + "requires": { + "cliui": "3.2.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "8.0.0" + }, + "dependencies": { + "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 + }, + "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" + } + } + } + }, + "yargs-parser": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.0.0.tgz", + "integrity": "sha1-IdR2Mw5agieaS4gTRb8GYQLiGcY=", + "dev": true, + "requires": { + "camelcase": "4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + } + } + }, + "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" + } + }, + "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/packages/insomnia-app/package.json b/packages/insomnia-app/package.json new file mode 100644 index 0000000000..3909084141 --- /dev/null +++ b/packages/insomnia-app/package.json @@ -0,0 +1,185 @@ +{ + "name": "insomnia-app", + "private": true, + "version": "1.0.0", + "description": "Insomnia App", + "licence": "GNU AGPLv3", + "homepage": "https://insomnia.rest", + "repository": { + "type": "git", + "url": "https://github.com/getinsomnia/insomnia" + }, + "scripts": { + "lint": "eslint \"**/*.js\" \"**/*.html\" \"**/*.json\"", + "test": "flow check && npm run lint && cross-env NODE_ENV=test jest --silent", + "test-appveyor": "npm run test -- --maxWorkers 1", + "bootstrap": "npm install && electron-rebuild -f -w node-libcurl", + "start:electron": "cross-env NODE_ENV=development webpack --config ./webpack/webpack.config.electron.babel.js && INSOMNIA_ENV=development electron app", + "start:dev-server": "webpack-dev-server --config ./webpack/webpack.config.development.babel.js", + "start": "concurrently --kill-others \"npm run start:dev-server\" \"npm run start:electron\"", + "build": "node ./scripts/build.js", + "package": "node ./scripts/package.js" + }, + "dev": { + "dev-server-port": 3333 + }, + "jest": { + "setupFiles": [ + "./__jest__/setup.js" + ], + "moduleNameMapper": { + "\\.(css|less|png)$": "/__mocks__/dummy.js", + "^worker-loader!": "/__mocks__/dummy.js" + }, + "testMatch": [ + "**/__tests__/**/*.test.js?(x)" + ], + "rootDir": "app", + "verbose": false, + "resetMocks": true, + "resetModules": true, + "collectCoverage": false, + "collectCoverageFrom": [ + "**/*.js", + "!**/*.min.js", + "!**/main.development.js", + "!**/static/**", + "!**/ui/components/**", + "!**/__fixtures__/**", + "!**/__tests__/**", + "!**/__jest__/**", + "!**/__mocks__/**", + "!**/node_modules/**" + ] + }, + "packedDependencies": [ + "autobind-decorator", + "codemirror", + "codemirror-graphql", + "highlight.js", + "pdfjs-dist", + "prop-types", + "react", + "react-dnd", + "react-dnd-html5-backend", + "react-dom", + "react-redux", + "react-tabs", + "redux", + "redux-thunk", + "reselect", + "srp-js", + "vkbeautify" + ], + "dependencies": { + "autobind-decorator": "^1.3.4", + "aws4": "^1.6.0", + "classnames": "^2.2.5", + "clone": "^2.1.0", + "codemirror": "^5.24.2", + "codemirror-graphql": "^0.6.11", + "deep-equal": "^1.0.1", + "electron-context-menu": "^0.9.0", + "electron-squirrel-startup": "^1.0.0", + "graphql": "^0.10.5", + "hawk": "^6.0.2", + "highlight.js": "^9.12.0", + "hkdf": "^0.0.2", + "html-entities": "^1.2.0", + "iconv-lite": "^0.4.15", + "insomnia-cookies": "^0.0.2", + "insomnia-httpsnippet": "^1.16.5", + "insomnia-importers": "^1.5.0", + "insomnia-node-libcurl": "^1.2.4", + "insomnia-plugin-base64": "^1.0.0", + "insomnia-plugin-file": "^1.0.0", + "insomnia-plugin-hash": "^1.0.0", + "insomnia-plugin-now": "^1.0.0", + "insomnia-plugin-request": "^1.0.0", + "insomnia-plugin-response": "^1.0.0", + "insomnia-plugin-uuid": "^1.0.0", + "insomnia-prettify": "^0.0.3", + "insomnia-url": "^0.0.2", + "insomnia-xpath": "^0.0.2", + "jsonlint": "^1.6.2", + "jsonpath": "^0.2.12", + "jwt-authentication": "^0.3.3", + "marked": "^0.3.6", + "mime-types": "^2.1.14", + "mkdirp": "^0.5.1", + "moment": "^2.18.1", + "multiparty": "^4.1.3", + "nedb": "^1.8.0", + "node-forge": "^0.7.0", + "nunjucks": "^3.0.0", + "oauth-1.0a": "^2.2.2", + "pdfjs-dist": "^1.9.640", + "prop-types": "^15.5.10", + "react": "^16.0.0", + "react-dnd": "^2.4.0", + "react-dnd-html5-backend": "^2.4.1", + "react-dom": "^16.0.0", + "react-redux": "^5.0.6", + "react-tabs": "^2.1.1", + "redux": "^3.7.2", + "redux-thunk": "^2.2.0", + "reselect": "^3.0.1", + "srp-js": "^0.2.0", + "tar": "^3.1.7", + "tough-cookie": "^2.3.1", + "uuid": "^3.0.0", + "vkbeautify": "^0.99.1", + "whatwg-fetch": "^2.0.1", + "xmldom": "^0.1.22", + "xpath": "^0.0.23" + }, + "devDependencies": { + "babel-cli": "^6.23.0", + "babel-core": "^6.23.1", + "babel-eslint": "^7.1.1", + "babel-jest": "^19.0.0", + "babel-loader": "^7.1.2", + "babel-plugin-transform-decorators-legacy": "^1.3.4", + "babel-plugin-transform-object-rest-spread": "^6.23.0", + "babel-preset-env": "^1.6.0", + "babel-preset-flow": "^6.23.0", + "babel-preset-react": "^6.23.0", + "concurrently": "^3.5.0", + "cross-env": "^2.0.0", + "css-loader": "^0.28.7", + "electron": "^1.7.9", + "electron-builder": "^19.45.5", + "electron-builder-lib": "^19.46.3", + "electron-builder-squirrel-windows": "^19.46.0", + "electron-rebuild": "^1.6.0", + "eslint": "^3.16.1", + "eslint-config-semistandard": "^11.0.0", + "eslint-config-standard": "^10.2.1", + "eslint-plugin-filenames": "^1.1.0", + "eslint-plugin-flowtype": "^2.36.0", + "eslint-plugin-html": "^2.0.1", + "eslint-plugin-import": "^2.8.0", + "eslint-plugin-jest": "^19.0.1", + "eslint-plugin-json": "^1.2.0", + "eslint-plugin-node": "^5.2.1", + "eslint-plugin-promise": "^3.5.0", + "eslint-plugin-react": "^7.4.0", + "eslint-plugin-standard": "^3.0.1", + "file-loader": "^1.1.5", + "flow": "^0.2.3", + "flow-bin": "^0.58.0", + "jest": "^21.2.1", + "less": "^2.7.2", + "less-loader": "^4.0.5", + "ncp": "^2.0.0", + "npm": "^5.5.1", + "react-hot-loader": "^3.1.3", + "redux-mock-store": "^1.0.2", + "rimraf": "^2.6.2", + "style-loader": "^0.19.0", + "url-loader": "^0.6.2", + "webpack": "^3.5.5", + "webpack-dev-server": "^2.9.4", + "webpack-target-electron-renderer": "^0.4.0" + } +} diff --git a/scripts/build.js b/packages/insomnia-app/scripts/build.js similarity index 59% rename from scripts/build.js rename to packages/insomnia-app/scripts/build.js index 999705fb7c..01cc960f4a 100644 --- a/scripts/build.js +++ b/packages/insomnia-app/scripts/build.js @@ -4,10 +4,18 @@ const rimraf = require('rimraf'); const ncp = require('ncp').ncp; const path = require('path'); const mkdirp = require('mkdirp'); +const fs = require('fs'); const configRenderer = require('../webpack/webpack.config.production.babel'); const configMain = require('../webpack/webpack.config.electron.babel'); -async function run () { +// Start build if ran from CLI +if (require.start === module) { + process.nextTick(async () => { + await module.exports.start(); + }); +} + +module.exports.start = async function () { // Remove folders first console.log('[build] Removing existing directories'); await emptyDir('../build'); @@ -19,18 +27,19 @@ async function run () { // Copy necessary files console.log('[build] Copying files'); - await copyFiles('../app/package.json', '../build/package.json'); - await copyFiles('../app/package-lock.json', '../build/package-lock.json'); await copyFiles('../bin', '../build/'); await copyFiles('../app/static', '../build/static'); await copyFiles('../app/icons/', '../build/'); + // Generate package.json + await generatePackageJson('../package.json', '../app/package.json', '../build/package.json'); + // Install Node modules console.log('[build] Installing dependencies'); await install('../build/'); console.log('[build] Complete!'); -} +}; async function buildWebpack (config) { return new Promise((resolve, reject) => { @@ -75,7 +84,7 @@ async function copyFiles (relSource, relDest) { async function install (relDir) { return new Promise((resolve, reject) => { const prefix = path.resolve(__dirname, relDir); - npm.load({prefix}, err => { + npm.load({prefix, production: true}, err => { if (err) { return reject(err); } @@ -91,4 +100,33 @@ async function install (relDir) { }); } -run(); +function generatePackageJson (relBasePkg, relAppPkg, relOutPkg) { + // Read package.json's + const basePath = path.resolve(__dirname, relBasePkg); + const appPath = path.resolve(__dirname, relAppPkg); + const outPath = path.resolve(__dirname, relOutPkg); + + const basePkg = JSON.parse(fs.readFileSync(basePath)); + const appPkg = JSON.parse(fs.readFileSync(appPath)); + + appPkg.dependencies = {}; + + // Figure out which dependencies to pack + const allDependencies = Object.keys(basePkg.dependencies); + const packedDependencies = basePkg.packedDependencies; + const unpackedDependencies = allDependencies.filter( + name => !packedDependencies.includes(name) + ); + + // Add dependencies + for (const name of unpackedDependencies) { + const version = basePkg.dependencies[name]; + if (!version) { + throw new Error(`Failed to find packed dep "${name}" in dependencies`); + } + appPkg.dependencies[name] = version; + console.log(`[build] Setting packed dep ${name}`); + } + + fs.writeFileSync(outPath, JSON.stringify(appPkg, null, 2)); +} diff --git a/scripts/package.js b/packages/insomnia-app/scripts/package.js similarity index 77% rename from scripts/package.js rename to packages/insomnia-app/scripts/package.js index de1600ea32..01c85c3952 100644 --- a/scripts/package.js +++ b/packages/insomnia-app/scripts/package.js @@ -3,6 +3,7 @@ const path = require('path'); const rimraf = require('rimraf'); const fs = require('fs'); const mkdirp = require('mkdirp'); +const buildTask = require('./build'); const PLATFORM_MAP = { darwin: 'mac', @@ -10,17 +11,25 @@ const PLATFORM_MAP = { win32: 'win' }; -async function run () { +// Start package if ran from CLI +if (require.start === module) { + process.nextTick(async () => { + await buildTask.start(); + await module.exports.start(); + }); +} + +module.exports.start = async function () { console.log('[package] Removing existing directories'); await emptyDir('../dist'); console.log('[package] Packaging app'); - await build('../.electronbuilder'); + await pkg('../.electronbuilder'); console.log('[package] Complete!'); -} +}; -async function build (relConfigPath) { +async function pkg (relConfigPath) { try { const configPath = path.resolve(__dirname, relConfigPath); const config = JSON.parse(fs.readFileSync(configPath, 'utf8')); @@ -31,7 +40,7 @@ async function build (relConfigPath) { cscKeyPassword: process.env.CSC_KEY_PASSWORD, [targetPlatform]: config[targetPlatform].target }); - return packager.build(); + return packager.start(); } catch (err) { console.log('[package] Failed: ' + err.stack); @@ -52,5 +61,3 @@ async function emptyDir (relPath) { }); }); } - -run(); diff --git a/webpack/webpack.config.base.babel.js b/packages/insomnia-app/webpack/webpack.config.base.babel.js similarity index 91% rename from webpack/webpack.config.base.babel.js rename to packages/insomnia-app/webpack/webpack.config.base.babel.js index deb3268199..34a1d8167d 100644 --- a/webpack/webpack.config.base.babel.js +++ b/packages/insomnia-app/webpack/webpack.config.base.babel.js @@ -1,6 +1,5 @@ -const webpack = require('webpack'); const path = require('path'); -const pkg = require('../app/package.json'); +const pkg = require('../package.json'); module.exports = { devtool: 'source-map', @@ -57,7 +56,7 @@ module.exports = { }, externals: [ // Omit all dependencies in app/package.json (we want them loaded at runtime via NodeJS) - ...Object.keys(pkg.dependencies), + ...Object.keys(pkg.dependencies).filter(name => !pkg.packedDependencies.includes(name)), // To get jsonlint working... 'file', 'system' diff --git a/webpack/webpack.config.development.babel.js b/packages/insomnia-app/webpack/webpack.config.development.babel.js similarity index 87% rename from webpack/webpack.config.development.babel.js rename to packages/insomnia-app/webpack/webpack.config.development.babel.js index e1fc96e204..951abe40a6 100644 --- a/webpack/webpack.config.development.babel.js +++ b/packages/insomnia-app/webpack/webpack.config.development.babel.js @@ -2,14 +2,14 @@ const webpack = require('webpack'); const baseConfig = require('./webpack.config.base.babel'); const pkg = require('../package.json'); -const port = pkg.dev['webpack-dev-server-port']; +const PORT = pkg.dev['dev-server-port']; module.exports = { ...baseConfig, devtool: 'eval-source-map', entry: [ 'react-hot-loader/patch', - `webpack-dev-server/client?http://localhost:${port}`, + `webpack-dev-server/client?http://localhost:${PORT}`, 'webpack/hot/only-dev-server', ...baseConfig.entry ], @@ -19,7 +19,7 @@ module.exports = { }, devServer: { host: 'localhost', - port: port, + port: PORT, publicPath: '/', hot: true }, diff --git a/webpack/webpack.config.electron.babel.js b/packages/insomnia-app/webpack/webpack.config.electron.babel.js similarity index 92% rename from webpack/webpack.config.electron.babel.js rename to packages/insomnia-app/webpack/webpack.config.electron.babel.js index 0ec8400b67..05eaecf0ea 100644 --- a/webpack/webpack.config.electron.babel.js +++ b/packages/insomnia-app/webpack/webpack.config.electron.babel.js @@ -3,6 +3,8 @@ const path = require('path'); const productionConfig = require('./webpack.config.production.babel'); const pkg = require('../package.json'); +const PORT = pkg.dev['dev-server-port']; + let devtool; let plugins; const output = { @@ -13,14 +15,13 @@ const output = { if (process.env.NODE_ENV === 'development') { output.path = path.join(__dirname, '../app'); devtool = 'eval-source-map'; - const port = pkg.dev['webpack-dev-server-port']; plugins = [ new webpack.DefinePlugin({ - 'process.env.APP_RENDER_URL': JSON.stringify(`http://localhost:${port}/renderer.html`), + 'process.env.APP_RENDER_URL': JSON.stringify(`http://localhost:${PORT}/renderer.html`), 'process.env.NODE_ENV': JSON.stringify('development'), 'process.env.INSOMNIA_ENV': JSON.stringify('development') }) - ] + ]; } else { output.path = path.join(__dirname, '../build'); devtool = productionConfig.devtool; diff --git a/webpack/webpack.config.production.babel.js b/packages/insomnia-app/webpack/webpack.config.production.babel.js similarity index 100% rename from webpack/webpack.config.production.babel.js rename to packages/insomnia-app/webpack/webpack.config.production.babel.js diff --git a/packages/insomnia-cookies/README.md b/packages/insomnia-cookies/README.md new file mode 100644 index 0000000000..6b7402e148 --- /dev/null +++ b/packages/insomnia-cookies/README.md @@ -0,0 +1,5 @@ +# Insomnia Cookie Utilities + +[![Npm Version](https://img.shields.io/npm/v/insomnia-cookies.svg)](https://www.npmjs.com/package/insomnia-cookies) + +Various utility functions for interacting with cookies and cookie jars. \ No newline at end of file diff --git a/packages/insomnia-cookies/__tests__/index.test.js b/packages/insomnia-cookies/__tests__/index.test.js new file mode 100644 index 0000000000..b67ffdaee9 --- /dev/null +++ b/packages/insomnia-cookies/__tests__/index.test.js @@ -0,0 +1,65 @@ +const {CookieJar} = require('tough-cookie'); +const {cookieToString, jarFromCookies, cookiesFromJar} = require('..'); + +describe('jarFromCookies()', () => { + it('returns valid cookies', done => { + const jar = jarFromCookies([{ + key: 'foo', + value: 'bar', + domain: 'google.com' + }]); + + jar.store.getAllCookies((err, cookies) => { + expect(err).toBeNull(); + expect(cookies[0].domain).toEqual('google.com'); + expect(cookies[0].key).toEqual('foo'); + expect(cookies[0].value).toEqual('bar'); + expect(cookies[0].creation instanceof Date).toEqual(true); + expect(cookies[0].expires).toEqual('Infinity'); + done(); + }); + }); + + it('handles malformed JSON', () => { + const jar = jarFromCookies('not a jar'); + expect(jar.constructor.name).toBe('CookieJar'); + }); +}); + +describe('cookiesFromJar()', () => { + it('returns valid jar', async () => { + const d = new Date(); + const initialCookies = [{ + key: 'bar', + value: 'baz', + domain: 'insomnia.rest', + expires: d + }, { + // This one will fail to parse, and be skipped + bad: 'cookie' + }]; + + const jar = CookieJar.fromJSON({cookies: initialCookies}); + + const cookies = await cookiesFromJar(jar); + + expect(cookies[0].domain).toBe('insomnia.rest'); + expect(cookies[0].key).toBe('bar'); + expect(cookies[0].value).toBe('baz'); + expect(cookies[0].creation).toMatch(/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/); + expect(cookies[0].expires).toEqual(d.toISOString()); + }); + + it('handles bad jar', async () => { + const jar = CookieJar.fromJSON({cookies: []}); + + // MemoryStore never actually throws errors, so lets mock the + // function to force it to this time. + jar.store.getAllCookies = cb => cb(new Error('Dummy Error')); + const cookies = await cookiesFromJar(jar); + + // Cookies failed to p + expect(cookies.length).toBe(0); + }); +}); + diff --git a/app/common/cookies.js b/packages/insomnia-cookies/index.js similarity index 71% rename from app/common/cookies.js rename to packages/insomnia-cookies/index.js index fae89e211c..59ca172313 100644 --- a/app/common/cookies.js +++ b/packages/insomnia-cookies/index.js @@ -1,11 +1,11 @@ -import {CookieJar, Cookie} from 'tough-cookie'; +const {CookieJar, Cookie} = require('tough-cookie'); /** * Get a list of cookie objects from a request.jar() * * @param jar */ -export function cookiesFromJar (jar) { +module.exports.cookiesFromJar = function (jar) { return new Promise(resolve => { jar.store.getAllCookies((err, cookies) => { if (err) { @@ -17,29 +17,14 @@ export function cookiesFromJar (jar) { } }); }); -} - -/** - * Get cookies header - * @param jar - * @param uri - * @returns {Promise} - */ -export function cookieHeaderValueForUri (jar, uri) { - return new Promise(resolve => { - jar.getCookies(uri, (err, cookies) => { - cookies = err ? [] : cookies; - resolve(cookies.map(c => c.cookieString()).join('; ')); - }); - }); -} +}; /** * Get a request.jar() from a list of cookie objects * * @param cookies */ -export function jarFromCookies (cookies) { +module.exports.jarFromCookies = function (cookies) { let jar; try { @@ -56,9 +41,9 @@ export function jarFromCookies (cookies) { jar.looseMode = true; return jar; -} +}; -export function cookieToString (cookie) { +module.exports.cookieToString = function (cookie) { // Cookie can either be a plain JS object or Cookie instance if (!(cookie instanceof Cookie)) { cookie = Cookie.fromJSON(cookie); @@ -73,4 +58,5 @@ export function cookieToString (cookie) { } return str; -} +}; + diff --git a/packages/insomnia-cookies/package-lock.json b/packages/insomnia-cookies/package-lock.json new file mode 100644 index 0000000000..4cff1c53ee --- /dev/null +++ b/packages/insomnia-cookies/package-lock.json @@ -0,0 +1,19 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "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" + } + } + } +} diff --git a/packages/insomnia-cookies/package.json b/packages/insomnia-cookies/package.json new file mode 100644 index 0000000000..85d4fd371a --- /dev/null +++ b/packages/insomnia-cookies/package.json @@ -0,0 +1,14 @@ +{ + "name": "insomnia-cookies", + "version": "0.0.2", + "author": "Gregory Schier ", + "description": "Cookie utilities", + "license": "MIT", + "main": "index.js", + "scripts": { + "test": "jest --silent" + }, + "dependencies": { + "tough-cookie": "^2.3.3" + } +} diff --git a/packages/insomnia-importers/README.md b/packages/insomnia-importers/README.md new file mode 100755 index 0000000000..9dea19eb3b --- /dev/null +++ b/packages/insomnia-importers/README.md @@ -0,0 +1,57 @@ +# Importers + +[![Npm Version](https://img.shields.io/npm/v/insomnia-importers.svg)](https://www.npmjs.com/package/insomnia-importers) + +This repository contains converters to translate popular HTTP data formats to +Insomnia v2 format. + +- Insomnia v1 +- Postman v2 +- cURL +- HTTP Archive Format 1.2 (HAR) + +## Installation + +For usage on **command line**, install globally + +```bash +npm install -g insomnia-importers +``` + +For programmatic usage, install in project + +```bash +npm install --save insomnia-importers +``` + +## Command Line Usage + +```shell +insomnia-import /path/to/har-export.json > insomnia-export.json +``` + +## Programmatic Usage + +```javascript +const importers = require('insomnia-importers') + +// Convert a Curl command +const output = importers.convert('curl -X POST https://insomnia.rest --data "Cool!"') + +// Pretty print the result +console.log(JSON.stringify(output.data, null, 2)); +``` + +## Running Tests + +Run all tests + +```shell +npm test +``` + +Run test watcher + +```shell +npm run test:watch +``` diff --git a/packages/insomnia-importers/bin/cli b/packages/insomnia-importers/bin/cli new file mode 100755 index 0000000000..c832b180e1 --- /dev/null +++ b/packages/insomnia-importers/bin/cli @@ -0,0 +1,3 @@ +#!/usr/bin/env node + +require('../src/cli').go(); diff --git a/packages/insomnia-importers/index.js b/packages/insomnia-importers/index.js new file mode 100755 index 0000000000..94d2c279c2 --- /dev/null +++ b/packages/insomnia-importers/index.js @@ -0,0 +1,36 @@ +const utils = require('./src/utils'); + +const importers = [ + require('./src/importers/insomnia-1'), + require('./src/importers/insomnia-2'), + require('./src/importers/insomnia-3'), + require('./src/importers/postman'), + require('./src/importers/postman-env'), + require('./src/importers/har'), + require('./src/importers/curl'), +]; + +module.exports.convert = function (contents) { + for (const importer of importers) { + const resources = importer.convert(contents); + + if (resources) { + return { + type: { + id: importer.id, + name: importer.name, + description: importer.description + }, + data: { + _type: 'export', + __export_format: 3, + __export_date: utils.getDateString(), + __export_source: 'insomnia.importers:v0.1.0', + resources: resources.map(utils.setDefaults), + } + } + } + } + + throw new Error('No importers found for file'); +}; diff --git a/packages/insomnia-importers/package-lock.json b/packages/insomnia-importers/package-lock.json new file mode 100644 index 0000000000..c2aca510e1 --- /dev/null +++ b/packages/insomnia-importers/package-lock.json @@ -0,0 +1,42 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" + }, + "array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" + }, + "array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" + }, + "commander": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.1.tgz", + "integrity": "sha512-PCNLExLlI5HiPdaJs4pMXwOTHkSCpNQ1QJH9ykZLKtKEyKu3p9HgmH5l97vM8c0IUz6d54l+xEu2GG9yuYrFzA==" + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "shell-quote": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "requires": { + "array-filter": "0.0.1", + "array-map": "0.0.0", + "array-reduce": "0.0.0", + "jsonify": "0.0.0" + } + } + } +} diff --git a/packages/insomnia-importers/package.json b/packages/insomnia-importers/package.json new file mode 100755 index 0000000000..d27b4a0d7b --- /dev/null +++ b/packages/insomnia-importers/package.json @@ -0,0 +1,22 @@ +{ + "name": "insomnia-importers", + "version": "1.5.2", + "author": "Gregory Schier ", + "description": "Various data importers for Insomnia", + "license": "MIT", + "repository": "https://github.com/getinsomnia/insomnia/tree/master/packages/insomnia-importers", + "bugs": { + "url": "https://github.com/getinsomnia/insomnia" + }, + "main": "index.js", + "bin": { + "insomnia-import": "./bin/cli" + }, + "scripts": { + "test": "jest --silent" + }, + "dependencies": { + "commander": "^2.9.0", + "shell-quote": "^1.6.1" + } +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures.test.js b/packages/insomnia-importers/src/__tests__/fixtures.test.js new file mode 100755 index 0000000000..8b94e66cd6 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures.test.js @@ -0,0 +1,41 @@ +'use strict'; + +const fs = require('fs'); +const path = require('path'); + +const importers = require('../../index'); +const fixturesPath = path.join(__dirname, './fixtures'); +const fixtures = fs.readdirSync(fixturesPath); + + +describe('Fixtures', () => { + for (const name of fixtures) { + const dir = path.join(fixturesPath, `./${name}`); + const inputs = fs.readdirSync(dir) + .filter(name => !!name.match(/^(.+)-?input\.[^.]+$/)); + + for (const input of inputs) { + const prefix = input.replace(/-input\.[^.]+/, ''); + const output = `${prefix}-output.json`; + + it(`Import ${name} ${input}`, () => { + + expect(typeof input).toBe('string'); + expect(typeof output).toBe('string'); + + const inputContents = fs.readFileSync(path.join(dir, input), 'utf8'); + const outputContents = fs.readFileSync(path.join(dir, output), 'utf8'); + + expect(typeof inputContents).toBe('string'); + expect(typeof outputContents).toBe('string'); + + const results = importers.convert(inputContents); + const expected = JSON.parse(outputContents); + + expected.__export_date = results.data.__export_date; + + expect(results.data).toEqual(expected); + }) + } + } +}); diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/complex-input.sh b/packages/insomnia-importers/src/__tests__/fixtures/curl/complex-input.sh new file mode 100755 index 0000000000..35e8d3fd76 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/complex-input.sh @@ -0,0 +1,12 @@ +curl \ + --request POST \ + -i \ + --url http://localhost:8000/api/v1/send \ + --header 'x-custom-header :foo bar' \ + --header 'content-type: application/json' \ + --header 'Cookie: foo=bar' \ + --user 'My User:My:Secret:Password' \ + --cookie NID=91=iOf1sU9Ovlns9Dzn2Ipz05syr2K4AlZ4Kgp84eRVLf3_6DgcNrkqpWg4lfUvCB5cNxD26t \ + -H 'another-header: foo' \ + --data '{"email_id": "tem_123"}'; + diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/complex-output.json b/packages/insomnia-importers/src/__tests__/fixtures/curl/complex-output.json new file mode 100755 index 0000000000..1c360d8dfa --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/complex-output.json @@ -0,0 +1,43 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__WORKSPACE_ID__", + "url": "http://localhost:8000/api/v1/send", + "name": "http://localhost:8000/api/v1/send", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\"email_id\": \"tem_123\"}" + }, + "parameters": [], + "headers": [ + { + "name": "x-custom-header", + "value": "foo bar" + }, + { + "name": "content-type", + "value": "application/json" + }, + { + "name": "Cookie", + "value": "foo=bar; NID=91=iOf1sU9Ovlns9Dzn2Ipz05syr2K4AlZ4Kgp84eRVLf3_6DgcNrkqpWg4lfUvCB5cNxD26t" + }, + { + "name": "another-header", + "value": "foo" + } + ], + "authentication": { + "username": "My User", + "password": "My:Secret:Password" + } + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/form-input.sh b/packages/insomnia-importers/src/__tests__/fixtures/curl/form-input.sh new file mode 100755 index 0000000000..e6e8817449 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/form-input.sh @@ -0,0 +1,4 @@ +curl https://insomnia.rest/signup \ + -F file=@/home/user/file.txt \ + -F foo=bar \ + -F baz=qux diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/form-output.json b/packages/insomnia-importers/src/__tests__/fixtures/curl/form-output.json new file mode 100755 index 0000000000..60309bfafe --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/form-output.json @@ -0,0 +1,40 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__WORKSPACE_ID__", + "url": "https://insomnia.rest/signup", + "name": "https://insomnia.rest/signup", + "method": "POST", + "body": { + "mimeType": "multipart/form-data", + "params": [ + { + "name": "file", + "type": "file", + "fileName": "/home/user/file.txt" + }, + { + "type": "text", + "name": "foo", + "value": "bar" + }, + { + "type": "text", + "name": "baz", + "value": "qux" + } + ] + }, + "parameters": [], + "headers": [], + "authentication": {} + } + ] +} + diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/from-chrome-input.sh b/packages/insomnia-importers/src/__tests__/fixtures/curl/from-chrome-input.sh new file mode 100755 index 0000000000..a40a188762 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/from-chrome-input.sh @@ -0,0 +1 @@ +curl 'http://requestb.in/api/v1/bins' -H 'Cookie: __cfduid=d9e3031f00abce97dfdf7119a2d4620cc1478677611; _gat=1; session=eyJyZWNlbnQiOlsiMTlwd3g5NzEiLCIxYTNsaHg2MSJdfQ.CxF25Q.WfyUPLe9lQjtibrpD55c2gOD-YA; _ga=GA1.2.525721040.1478677612' -H 'Origin: http://requestb.in' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: en-US,en;q=0.8' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' -H 'Accept: */*' -H 'Referer: http://requestb.in/' -H 'X-Requested-With: XMLHttpRequest' -H 'Connection: keep-alive' --data 'private=false' --compressed diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/from-chrome-output.json b/packages/insomnia-importers/src/__tests__/fixtures/curl/from-chrome-output.json new file mode 100755 index 0000000000..9a780ea57b --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/from-chrome-output.json @@ -0,0 +1,69 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__WORKSPACE_ID__", + "url": "http://requestb.in/api/v1/bins", + "name": "http://requestb.in/api/v1/bins", + "method": "POST", + "body": { + "mimeType": "application/x-www-form-urlencoded", + "params": [ + { + "name": "private", + "value": "false" + } + ] + }, + "parameters": [], + "headers": [ + { + "name": "Cookie", + "value": "__cfduid=d9e3031f00abce97dfdf7119a2d4620cc1478677611; _gat=1; session=eyJyZWNlbnQiOlsiMTlwd3g5NzEiLCIxYTNsaHg2MSJdfQ.CxF25Q.WfyUPLe9lQjtibrpD55c2gOD-YA; _ga=GA1.2.525721040.1478677612" + }, + { + "name": "Origin", + "value": "http://requestb.in" + }, + { + "name": "Accept-Encoding", + "value": "gzip, deflate" + }, + { + "name": "Accept-Language", + "value": "en-US,en;q=0.8" + }, + { + "name": "User-Agent", + "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36" + }, + { + "name": "Content-Type", + "value": "application/x-www-form-urlencoded; charset=UTF-8" + }, + { + "name": "Accept", + "value": "*/*" + }, + { + "name": "Referer", + "value": "http://requestb.in/" + }, + { + "name": "X-Requested-With", + "value": "XMLHttpRequest" + }, + { + "name": "Connection", + "value": "keep-alive" + } + ], + "authentication": {} + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/get-input.sh b/packages/insomnia-importers/src/__tests__/fixtures/curl/get-input.sh new file mode 100755 index 0000000000..888dcdcf44 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/get-input.sh @@ -0,0 +1 @@ +curl -X GET 'http://somesite.com/getdata' -i -G -d 'id=1234' diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/get-output.json b/packages/insomnia-importers/src/__tests__/fixtures/curl/get-output.json new file mode 100755 index 0000000000..f13b503e01 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/get-output.json @@ -0,0 +1,23 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__WORKSPACE_ID__", + "url": "http://somesite.com/getdata", + "name": "http://somesite.com/getdata", + "method": "GET", + "body": {}, + "parameters": [{ + "name": "id", + "value": "1234" + }], + "headers": [], + "authentication": {} + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/header-colon-input.sh b/packages/insomnia-importers/src/__tests__/fixtures/curl/header-colon-input.sh new file mode 100755 index 0000000000..7923efec85 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/header-colon-input.sh @@ -0,0 +1 @@ +curl https://insomnia.rest -H 'X-Something: foo: bar:baz' diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/header-colon-output.json b/packages/insomnia-importers/src/__tests__/fixtures/curl/header-colon-output.json new file mode 100755 index 0000000000..e72af774d6 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/header-colon-output.json @@ -0,0 +1,23 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__WORKSPACE_ID__", + "url": "https://insomnia.rest", + "name": "https://insomnia.rest", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [{ + "name": "X-Something", + "value": "foo: bar:baz" + }], + "authentication": {} + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/multi-input.sh b/packages/insomnia-importers/src/__tests__/fixtures/curl/multi-input.sh new file mode 100755 index 0000000000..55d329798d --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/multi-input.sh @@ -0,0 +1,8 @@ +curl https://insomnia.rest/1/2/3; +curl https://insomnia.rest/foo/bar; + + + +curl https://insomnia.rest/ --cookie foo=bar; +echo "hello"; +curl https://insomnia.rest; diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/multi-output.json b/packages/insomnia-importers/src/__tests__/fixtures/curl/multi-output.json new file mode 100755 index 0000000000..276fa895d1 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/multi-output.json @@ -0,0 +1,59 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__WORKSPACE_ID__", + "url": "https://insomnia.rest/1/2/3", + "name": "https://insomnia.rest/1/2/3", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [], + "authentication": {} + }, + { + "_id": "__REQ_2__", + "_type": "request", + "parentId": "__WORKSPACE_ID__", + "url": "https://insomnia.rest/foo/bar", + "name": "https://insomnia.rest/foo/bar", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [], + "authentication": {} + }, + { + "_id": "__REQ_3__", + "_type": "request", + "parentId": "__WORKSPACE_ID__", + "url": "https://insomnia.rest/", + "name": "https://insomnia.rest/", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [{ + "name": "Cookie", + "value": "foo=bar" + }], + "authentication": {} + }, + { + "_id": "__REQ_4__", + "_type": "request", + "parentId": "__WORKSPACE_ID__", + "url": "https://insomnia.rest", + "name": "https://insomnia.rest", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [], + "authentication": {} + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/no-url-input.sh b/packages/insomnia-importers/src/__tests__/fixtures/curl/no-url-input.sh new file mode 100755 index 0000000000..83f92fdf5a --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/no-url-input.sh @@ -0,0 +1 @@ +curl -X POST diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/no-url-output.json b/packages/insomnia-importers/src/__tests__/fixtures/curl/no-url-output.json new file mode 100755 index 0000000000..95120d0030 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/no-url-output.json @@ -0,0 +1,20 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__WORKSPACE_ID__", + "url": "", + "name": "cURL Import 1", + "method": "POST", + "body": {}, + "parameters": [], + "headers": [], + "authentication": {} + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/question-mark-input.sh b/packages/insomnia-importers/src/__tests__/fixtures/curl/question-mark-input.sh new file mode 100755 index 0000000000..b8d9cb3157 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/question-mark-input.sh @@ -0,0 +1 @@ +curl http://192.168.1.1:9200/executions/_search\?pretty --data '{"query":{"match_all":{}}}' diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/question-mark-output.json b/packages/insomnia-importers/src/__tests__/fixtures/curl/question-mark-output.json new file mode 100755 index 0000000000..1c24a0d17d --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/question-mark-output.json @@ -0,0 +1,23 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__WORKSPACE_ID__", + "url": "http://192.168.1.1:9200/executions/_search?pretty", + "name": "http://192.168.1.1:9200/executions/_search?pretty", + "method": "POST", + "body": { + "mimeType": "", + "text": "{\"query\":{\"match_all\":{}}}" + }, + "parameters": [], + "headers": [], + "authentication": {} + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/squished-input.sh b/packages/insomnia-importers/src/__tests__/fixtures/curl/squished-input.sh new file mode 100755 index 0000000000..c2f458148a --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/squished-input.sh @@ -0,0 +1 @@ +curl -XPOST -did=1234 https://insomnia.rest diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/squished-output.json b/packages/insomnia-importers/src/__tests__/fixtures/curl/squished-output.json new file mode 100755 index 0000000000..8e9121898d --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/squished-output.json @@ -0,0 +1,22 @@ +{ + "__export_format": 3, + "__export_source": "insomnia.importers:v0.1.0", + "_type": "export", + "resources": [ + { + "_id": "__REQ_1__", + "_type": "request", + "authentication": {}, + "body": { + "mimeType": "", + "text": "id=1234" + }, + "headers": [], + "method": "POST", + "name": "https://insomnia.rest", + "parameters": [], + "parentId": "__WORKSPACE_ID__", + "url": "https://insomnia.rest" + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/url-only-input.sh b/packages/insomnia-importers/src/__tests__/fixtures/curl/url-only-input.sh new file mode 100755 index 0000000000..62179818e4 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/url-only-input.sh @@ -0,0 +1 @@ +curl https://insomnia.rest/foo/bar diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/url-only-output.json b/packages/insomnia-importers/src/__tests__/fixtures/curl/url-only-output.json new file mode 100755 index 0000000000..5d3d238b1e --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/url-only-output.json @@ -0,0 +1,20 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__WORKSPACE_ID__", + "url": "https://insomnia.rest/foo/bar", + "name": "https://insomnia.rest/foo/bar", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [], + "authentication": {} + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/urlencoded-input.sh b/packages/insomnia-importers/src/__tests__/fixtures/curl/urlencoded-input.sh new file mode 100755 index 0000000000..ce177b1b2d --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/urlencoded-input.sh @@ -0,0 +1,3 @@ +curl -X POST https://insomnia.rest/ \ + --data "foo=bar&baz=qux" \ + -H Content-Type:application/x-www-form-urlencoded diff --git a/packages/insomnia-importers/src/__tests__/fixtures/curl/urlencoded-output.json b/packages/insomnia-importers/src/__tests__/fixtures/curl/urlencoded-output.json new file mode 100755 index 0000000000..84f4b60561 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/curl/urlencoded-output.json @@ -0,0 +1,32 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__WORKSPACE_ID__", + "url": "https://insomnia.rest/", + "name": "https://insomnia.rest/", + "method": "POST", + "body": { + "mimeType": "application/x-www-form-urlencoded", + "params": [{ + "name": "foo", + "value": "bar" + }, { + "name": "baz", + "value": "qux" + }] + }, + "parameters": [], + "headers": [{ + "name": "Content-Type", + "value": "application/x-www-form-urlencoded" + }], + "authentication": {} + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/har/deep-input.json b/packages/insomnia-importers/src/__tests__/fixtures/har/deep-input.json new file mode 100755 index 0000000000..9695735518 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/har/deep-input.json @@ -0,0 +1,153 @@ +{ + "log": { + "version": "1.2", + "creator": { + "name": "WebInspector", + "version": "537.36" + }, + "pages": [], + "entries": [ + { + "request": { + "method": "POST", + "url": "", + "httpVersion": "HTTP/1.1", + "postData": {} + } + }, + { + "startedDateTime": "2016-11-18T23:13:35.385Z", + "time": 403.58199999900535, + "request": { + "method": "POST", + "url": "https://insomnia.rest/foo/bar", + "httpVersion": "HTTP/1.1", + "headers": [ + { + "name": "Host", + "value": "insomnia.rest" + }, + { + "name": "cookie", + "value": "foo=bar" + } + ], + "postData": { + "params": [], + "text": "hello world!" + }, + "queryString": [{ + "name": "foo", + "value": "bar", + "comment": "This is a comment" + }], + "cookies": [ + { + "name": "__cfduid", + "value": "df7b43586f071c4aaa79dc8a9de0845771478571055", + "expires": null, + "httpOnly": false, + "secure": false + }, + { + "name": "_ga", + "value": "GA1.2.697086801.1478571058", + "expires": null, + "httpOnly": false, + "secure": false + } + ], + "headersSize": 529, + "bodySize": 0 + }, + "response": { + "status": 200, + "statusText": "OK", + "httpVersion": "HTTP/1.1", + "headers": [ + { + "name": "Date", + "value": "Fri, 18 Nov 2016 23:13:35 GMT" + }, + { + "name": "Content-Encoding", + "value": "gzip" + }, + { + "name": "Vary", + "value": "Accept-Encoding" + }, + { + "name": "CF-Cache-Status", + "value": "EXPIRED" + }, + { + "name": "Last-Modified", + "value": "Tue, 08 Nov 2016 10:57:32 GMT" + }, + { + "name": "Server", + "value": "cloudflare-nginx" + }, + { + "name": "ETag", + "value": "W/\"5821af9c-27563\"" + }, + { + "name": "Transfer-Encoding", + "value": "chunked" + }, + { + "name": "Content-Type", + "value": "application/json" + }, + { + "name": "access-control-allow-origin", + "value": "*" + }, + { + "name": "Cache-Control", + "value": "public, max-age=14400" + }, + { + "name": "Connection", + "value": "keep-alive" + }, + { + "name": "CF-RAY", + "value": "303f1d248fc02a43-SEA" + }, + { + "name": "Expires", + "value": "Sat, 19 Nov 2016 03:13:35 GMT" + } + ], + "cookies": [], + "content": { + "size": 161123, + "mimeType": "application/json", + "compression": 142237, + "text": "{...}" + }, + "redirectURL": "", + "headersSize": 451, + "bodySize": 18886, + "_transferSize": 19337 + }, + "cache": {}, + "timings": { + "blocked": 0.739, + "dns": 29.483999999999998, + "connect": 29.497999999999998, + "send": 0.09900000000000375, + "wait": 319.437, + "receive": 24.324999999005342, + "ssl": 15.764000000000003 + }, + "serverIPAddress": "104.20.23.46", + "connection": "687662", + "pageref": "page_1" + } + ] + } +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/har/deep-output.json b/packages/insomnia-importers/src/__tests__/fixtures/har/deep-output.json new file mode 100755 index 0000000000..5390aca5ee --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/har/deep-output.json @@ -0,0 +1,52 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__WORKSPACE_ID__", + "url": "", + "name": "HAR Import 1", + "method": "POST", + "body": { + "mimeType": "", + "text": "" + }, + "parameters": [], + "headers": [], + "authentication": {} + }, + { + "_id": "__REQ_2__", + "_type": "request", + "parentId": "__WORKSPACE_ID__", + "url": "https://insomnia.rest/foo/bar", + "name": "https://insomnia.rest/foo/bar", + "method": "POST", + "body": { + "mimeType": "", + "text": "hello world!" + }, + "parameters": [ + { + "name": "foo", + "value": "bar" + } + ], + "headers": [ + { + "name": "Host", + "value": "insomnia.rest" + }, + { + "name": "cookie", + "value": "foo=bar; __cfduid=df7b43586f071c4aaa79dc8a9de0845771478571055; _ga=GA1.2.697086801.1478571058" + } + ], + "authentication": {} + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/har/form-data-input.json b/packages/insomnia-importers/src/__tests__/fixtures/har/form-data-input.json new file mode 100755 index 0000000000..728fcd7404 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/har/form-data-input.json @@ -0,0 +1,21 @@ +{ + "method": "POST", + "url": "https://insomnia.rest/foo/bar", + "httpVersion": "HTTP/1.1", + "headers": [], + "postData": { + "params": [ + { + "name": "file", + "fileName": "/home/user/test.txt" + }, + { + "name": "foo", + "value": "bar", + "fileName": null, + "contentType": null, + "comment": "hahah" + } + ] + } +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/har/form-data-output.json b/packages/insomnia-importers/src/__tests__/fixtures/har/form-data-output.json new file mode 100755 index 0000000000..057c180905 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/har/form-data-output.json @@ -0,0 +1,32 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__WORKSPACE_ID__", + "url": "https://insomnia.rest/foo/bar", + "name": "https://insomnia.rest/foo/bar", + "method": "POST", + "body": { + "mimeType": "application/x-www-form-urlencoded", + "params": [ + { + "name": "file", + "fileName": "/home/user/test.txt" + }, + { + "name": "foo", + "value": "bar" + } + ] + }, + "parameters": [], + "headers": [], + "authentication": {} + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/har/minimal-input.json b/packages/insomnia-importers/src/__tests__/fixtures/har/minimal-input.json new file mode 100755 index 0000000000..73cd34a925 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/har/minimal-input.json @@ -0,0 +1,6 @@ +{ + "method": "GET", + "httpVersion": "HTTP/1.1", + "url": "https://insomnia.rest/foo/bar", + "comment": "My Request" +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/har/minimal-output.json b/packages/insomnia-importers/src/__tests__/fixtures/har/minimal-output.json new file mode 100755 index 0000000000..0e3a001597 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/har/minimal-output.json @@ -0,0 +1,20 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__WORKSPACE_ID__", + "url": "https://insomnia.rest/foo/bar", + "name": "My Request", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [], + "authentication": {} + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/har/no-requests-input.json b/packages/insomnia-importers/src/__tests__/fixtures/har/no-requests-input.json new file mode 100755 index 0000000000..e11e348ca4 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/har/no-requests-input.json @@ -0,0 +1,12 @@ +{ + "log": { + "version": "1.2", + "creator": { + "name": "WebInspector", + "version": "537.36" + }, + "pages": [], + "entries": [] + } +} + diff --git a/packages/insomnia-importers/src/__tests__/fixtures/har/no-requests-output.json b/packages/insomnia-importers/src/__tests__/fixtures/har/no-requests-output.json new file mode 100755 index 0000000000..071cbb6f55 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/har/no-requests-output.json @@ -0,0 +1,7 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/har/shallow-input.json b/packages/insomnia-importers/src/__tests__/fixtures/har/shallow-input.json new file mode 100755 index 0000000000..704699b25d --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/har/shallow-input.json @@ -0,0 +1,46 @@ +{ + "method": "POST", + "url": "https://insomnia.rest/foo/bar", + "httpVersion": "HTTP/1.1", + "headers": [ + { + "name": "Host", + "value": "insomnia.rest" + } + ], + "postData": { + "params": [{ + "name": "foo", + "value": "bar", + "filename": null, + "contentType": null, + "comment": "hahah" + }], + "text": "" + }, + "queryString": [ + { + "name": "foo", + "value": "bar", + "comment": "This is a comment" + } + ], + "cookies": [ + { + "name": "__cfduid", + "value": "df7b43586f071c4aaa79dc8a9de0845771478571055", + "expires": null, + "httpOnly": false, + "secure": false + }, + { + "name": "_ga", + "value": "GA1.2.697086801.1478571058", + "expires": null, + "httpOnly": false, + "secure": false + } + ], + "headersSize": 529, + "bodySize": 0 +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/har/shallow-output.json b/packages/insomnia-importers/src/__tests__/fixtures/har/shallow-output.json new file mode 100755 index 0000000000..be24699bd4 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/har/shallow-output.json @@ -0,0 +1,42 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__WORKSPACE_ID__", + "url": "https://insomnia.rest/foo/bar", + "name": "https://insomnia.rest/foo/bar", + "method": "POST", + "body": { + "mimeType": "application/x-www-form-urlencoded", + "params": [ + { + "name": "foo", + "value": "bar" + } + ] + }, + "parameters": [ + { + "name": "foo", + "value": "bar" + } + ], + "headers": [ + { + "name": "Host", + "value": "insomnia.rest" + }, + { + "name": "Cookie", + "value": "__cfduid=df7b43586f071c4aaa79dc8a9de0845771478571055; _ga=GA1.2.697086801.1478571058" + } + ], + "authentication": {} + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/insomnia-1/complex-input.json b/packages/insomnia-importers/src/__tests__/fixtures/insomnia-1/complex-input.json new file mode 100755 index 0000000000..318dcf29cc --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/insomnia-1/complex-input.json @@ -0,0 +1,52 @@ +{ + "_type": "export", + "__export_format": 1, + "__export_date": "2016-04-24T01:54:07.153Z", + "__export_source": "insomnia.chrome.app:v2.6.10", + "items": [ + { + "_type": "request_group", + "_id": "c_1415844880580", + "name": "Test Folder", + "environments": { + "base": { + "base_url": "https://insomnia.rest/api/v1", + "api_key": "live_123" + } + }, + "requests": [ + { + "_type": "request", + "_id": "sc_1415844884091", + "url": "{{ base_url }}/users", + "method": "POST", + "body": "{\"foo\": \"bar\"}", + "headers": [{ + "name": "Content-TYPE", + "value": "application/json; charset=utf-8" + }], + "params": [ + { + "name": "testing", + "value": "hi 123" + }, + { + "name": "testing 2", + "value": "hi 456" + } + ], + "authentication": { + "_type": "basic", + "username": "{{ api_key }}", + "password": "" + }, + "__insomnia": { + "format": "json", + "panel_width": 0.5 + }, + "name": "Test Request" + } + ] + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/insomnia-1/complex-output.json b/packages/insomnia-importers/src/__tests__/fixtures/insomnia-1/complex-output.json new file mode 100755 index 0000000000..1fdff93109 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/insomnia-1/complex-output.json @@ -0,0 +1,50 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__GRP_1__", + "_type": "request_group", + "parentId": "__WORKSPACE_ID__", + "name": "Test Folder", + "environment": { + "base_url": "https://insomnia.rest/api/v1", + "api_key": "live_123" + } + }, + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__GRP_1__", + "url": "{{ base_url }}/users", + "name": "Test Request", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\"foo\": \"bar\"}" + }, + "parameters": [ + { + "name": "testing", + "value": "hi 123" + }, + { + "name": "testing 2", + "value": "hi 456" + } + ], + "headers": [ + { + "name": "Content-TYPE", + "value": "application/json; charset=utf-8" + } + ], + "authentication": { + "username": "{{ api_key }}", + "password": "" + } + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/insomnia-1/form-input.json b/packages/insomnia-importers/src/__tests__/fixtures/insomnia-1/form-input.json new file mode 100755 index 0000000000..7cb6fd99ce --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/insomnia-1/form-input.json @@ -0,0 +1,31 @@ +{ + "_type": "export", + "__export_format": 1, + "__export_date": "2016-04-24T01:54:07.153Z", + "__export_source": "insomnia.chrome.app:v2.6.10", + "items": [ + { + "_type": "request_group", + "_id": "c_1415844880580", + "requests": [ + { + "_type": "request", + "_id": "sc_1415844884091", + "__insomnia": { + "format": "form" + }, + "body": "foo=bar&baz=qux&msg=Hello%20World!&flag" + }, + { + "_type": "request", + "_id": "sc_123", + "headers": [{ + "name": "content-type", + "value": "multipart/form-encoded" + }], + "body": "foo=bar&baz=qux&msg=Hello%20World!&flag" + } + ] + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/insomnia-1/form-output.json b/packages/insomnia-importers/src/__tests__/fixtures/insomnia-1/form-output.json new file mode 100755 index 0000000000..8ce273ec5d --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/insomnia-1/form-output.json @@ -0,0 +1,89 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__GRP_1__", + "_type": "request_group", + "parentId": "__WORKSPACE_ID__", + "name": "Imported Folder 1", + "environment": {} + }, + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__GRP_1__", + "url": "", + "name": "Imported HAR 1", + "method": "GET", + "body": { + "mimeType": "application/x-www-form-urlencoded", + "params": [ + { + "name": "foo", + "value": "bar" + }, + { + "name": "baz", + "value": "qux" + }, + { + "name": "msg", + "value": "Hello World!" + }, + { + "name": "flag", + "value": "" + } + ] + }, + "parameters": [], + "headers": [ + { + "name": "Content-Type", + "value": "application/x-www-form-urlencoded" + } + ], + "authentication": {} + }, + { + "_id": "__REQ_2__", + "_type": "request", + "parentId": "__GRP_1__", + "url": "", + "name": "Imported HAR 2", + "method": "GET", + "body": { + "mimeType": "multipart/form-encoded", + "params": [ + { + "name": "foo", + "value": "bar" + }, + { + "name": "baz", + "value": "qux" + }, + { + "name": "msg", + "value": "Hello World!" + }, + { + "name": "flag", + "value": "" + } + ] + }, + "parameters": [], + "headers": [ + { + "name": "content-type", + "value": "multipart/form-encoded" + } + ], + "authentication": {} + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/insomnia-1/minimal-input.json b/packages/insomnia-importers/src/__tests__/fixtures/insomnia-1/minimal-input.json new file mode 100755 index 0000000000..79f145fa04 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/insomnia-1/minimal-input.json @@ -0,0 +1,18 @@ +{ + "_type": "export", + "__export_format": 1, + "__export_date": "2016-04-24T01:54:07.153Z", + "__export_source": "insomnia.chrome.app:v2.6.10", + "items": [ + { + "_type": "request_group", + "_id": "c_1415844880580", + "requests": [ + { + "_type": "request", + "_id": "sc_1415844884091" + } + ] + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/insomnia-1/minimal-output.json b/packages/insomnia-importers/src/__tests__/fixtures/insomnia-1/minimal-output.json new file mode 100755 index 0000000000..f2e8ac01e3 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/insomnia-1/minimal-output.json @@ -0,0 +1,27 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__GRP_1__", + "_type": "request_group", + "parentId": "__WORKSPACE_ID__", + "name": "Imported Folder 1", + "environment": {} + }, + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__GRP_1__", + "url": "", + "name": "Imported HAR 1", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [], + "authentication": {} + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/insomnia-2/complex-input.json b/packages/insomnia-importers/src/__tests__/fixtures/insomnia-2/complex-input.json new file mode 100755 index 0000000000..d3d90e78ff --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/insomnia-2/complex-input.json @@ -0,0 +1,71 @@ +{ + "_type": "export", + "__export_format": 2, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__GRP_1__", + "_type": "request_group", + "parentId": "__WORKSPACE_ID__", + "name": "Test Folder", + "environment": { + "base_url": "https://insomnia.rest/api/v1", + "api_key": "live_123" + } + }, + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__GRP_1__", + "url": "{{ base_url }}/users", + "name": "Test Request", + "method": "POST", + "body": "{\"foo\": \"bar\"}", + "parameters": [ + { + "name": "testing", + "value": "hi 123" + }, + { + "name": "testing 2", + "value": "hi 456" + } + ], + "headers": [ + { + "name": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "authentication": { + "username": "{{ api_key }}", + "password": "" + } + }, + { + "_id": "__REQ_2__", + "_type": "request", + "parentId": "__GRP_1__", + "url": "{{ base_url }}/users", + "name": "Test Request", + "method": "POST", + "body": "Hello World!", + "parameters": [ + { + "name": "testing", + "value": "hi 123" + }, + { + "name": "testing 2", + "value": "hi 456" + } + ], + "authentication": { + "username": "{{ api_key }}", + "password": "" + } + } + ] +} + diff --git a/packages/insomnia-importers/src/__tests__/fixtures/insomnia-2/complex-output.json b/packages/insomnia-importers/src/__tests__/fixtures/insomnia-2/complex-output.json new file mode 100755 index 0000000000..430db6b3d9 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/insomnia-2/complex-output.json @@ -0,0 +1,77 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__GRP_1__", + "_type": "request_group", + "parentId": "__WORKSPACE_ID__", + "name": "Test Folder", + "environment": { + "base_url": "https://insomnia.rest/api/v1", + "api_key": "live_123" + } + }, + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__GRP_1__", + "url": "{{ base_url }}/users", + "name": "Test Request", + "method": "POST", + "body": { + "mimeType": "application/json", + "text": "{\"foo\": \"bar\"}" + }, + "parameters": [ + { + "name": "testing", + "value": "hi 123" + }, + { + "name": "testing 2", + "value": "hi 456" + } + ], + "headers": [ + { + "name": "Content-Type", + "value": "application/json; charset=utf-8" + } + ], + "authentication": { + "username": "{{ api_key }}", + "password": "" + } + }, + { + "_id": "__REQ_2__", + "_type": "request", + "parentId": "__GRP_1__", + "url": "{{ base_url }}/users", + "name": "Test Request", + "method": "POST", + "body": { + "mimeType": "", + "text": "Hello World!" + }, + "parameters": [ + { + "name": "testing", + "value": "hi 123" + }, + { + "name": "testing 2", + "value": "hi 456" + } + ], + "headers": [], + "authentication": { + "username": "{{ api_key }}", + "password": "" + } + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/insomnia-3/basic-input.json b/packages/insomnia-importers/src/__tests__/fixtures/insomnia-3/basic-input.json new file mode 100755 index 0000000000..fc83f9154a --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/insomnia-3/basic-input.json @@ -0,0 +1,18 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-12-03T04:07:20.499Z", + "__export_source": "insomnia.desktop.app:v4.0.1", + "resources": [ + { + "_id": "wrk_123abc", + "parentId": null, + "modified": 1477939910686, + "created": 1474340560460, + "name": "Insomnia", + "description": "", + "certificates": [], + "_type": "workspace" + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/insomnia-3/basic-output.json b/packages/insomnia-importers/src/__tests__/fixtures/insomnia-3/basic-output.json new file mode 100755 index 0000000000..e0684b0450 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/insomnia-3/basic-output.json @@ -0,0 +1,18 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "wrk_123abc", + "parentId": null, + "modified": 1477939910686, + "created": 1474340560460, + "name": "Insomnia", + "description": "", + "certificates": [], + "_type": "workspace" + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/postman-env/basic-input.json b/packages/insomnia-importers/src/__tests__/fixtures/postman-env/basic-input.json new file mode 100755 index 0000000000..7abc5c0015 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/postman-env/basic-input.json @@ -0,0 +1,22 @@ +{ + "id": "fd5ae82a-d4c3-fa38-b53f-cddafb084535", + "name": "Production Env", + "values": [ + { + "key": "foo", + "value": "production", + "type": "text", + "enabled": true + }, + { + "key": "bar", + "value": "hahah", + "type": "text", + "enabled": false + } + ], + "timestamp": 1480561592875, + "_postman_variable_scope": "environment", + "_postman_exported_at": "2016-12-01T03:06:36.191Z", + "_postman_exported_using": "Postman/4.8.3" +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/postman-env/basic-output.json b/packages/insomnia-importers/src/__tests__/fixtures/postman-env/basic-output.json new file mode 100755 index 0000000000..17a11712bb --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/postman-env/basic-output.json @@ -0,0 +1,17 @@ +{ + "__export_date": "2016-12-01T03:24:37.929Z", + "__export_format": 3, + "__export_source": "insomnia.importers:v0.1.0", + "_type": "export", + "resources": [ + { + "_id": "__ENV_1__", + "_type": "environment", + "name": "Production Env", + "parentId": "__BASE_ENVIRONMENT_ID__", + "data": { + "foo": "production" + } + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/postman-env/no-name-input.json b/packages/insomnia-importers/src/__tests__/fixtures/postman-env/no-name-input.json new file mode 100755 index 0000000000..a1c347c3b9 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/postman-env/no-name-input.json @@ -0,0 +1,21 @@ +{ + "id": "fd5ae82a-d4c3-fa38-b53f-cddafb084535", + "values": [ + { + "key": "foo", + "value": "production", + "type": "text", + "enabled": true + }, + { + "key": "bar", + "value": "hahah", + "type": "text", + "enabled": false + } + ], + "timestamp": 1480561592875, + "_postman_variable_scope": "environment", + "_postman_exported_at": "2016-12-01T03:06:36.191Z", + "_postman_exported_using": "Postman/4.8.3" +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/postman-env/no-name-output.json b/packages/insomnia-importers/src/__tests__/fixtures/postman-env/no-name-output.json new file mode 100755 index 0000000000..167d05c00b --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/postman-env/no-name-output.json @@ -0,0 +1,17 @@ +{ + "__export_date": "2016-12-01T03:24:37.929Z", + "__export_format": 3, + "__export_source": "insomnia.importers:v0.1.0", + "_type": "export", + "resources": [ + { + "_id": "__ENV_1__", + "_type": "environment", + "name": "Postman Environment", + "parentId": "__BASE_ENVIRONMENT_ID__", + "data": { + "foo": "production" + } + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/postman/complex-input.json b/packages/insomnia-importers/src/__tests__/fixtures/postman/complex-input.json new file mode 100755 index 0000000000..223edcc4ca --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/postman/complex-input.json @@ -0,0 +1,103 @@ +{ + "variables": [], + "info": { + "name": "Test Collection", + "_postman_id": "250d5bd3-4f7e-8fd0-7744-35e942e36a78", + "description": "A collection for testing", + "schema": "https://schema.getpostman.com/json/collection/v2.0.0/collection.json" + }, + "item": [ + { + "name": "First Folder", + "description": "The first folder", + "item": [ + { + "name": "{{base_url}}/api/users", + "request": { + "url": "{{base_url}}/api/users", + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "Basic dXNlcm5hbWU6cGFzc3dvcmQ=", + "description": "" + } + ], + "body": { + "mode": "formdata", + "formdata": [ + { + "key": "file", + "src": "/home/user/test.txt", + "type": "file", + "enabled": true + }, + { + "key": "foo", + "value": "bar", + "type": "text", + "enabled": true + } + ] + }, + "description": "First Request" + }, + "response": [] + }, + { + "name": "Urlencoded Form Test", + "request": { + "url": "{{base_url}}/api/users", + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "Basic dXNlcm5hbWU6cGFzc3dvcmQ=", + "description": "" + } + ], + "body": { + "mode": "urlencoded", + "urlencoded": [ + { + "key": "foo", + "value": "bar", + "type": "text", + "enabled": true + } + ] + }, + "description": "First Request" + }, + "response": [] + } + ] + }, + { + "name": "Test Request", + "request": { + "url": "{{base_url}}/api/users", + "method": "POST", + "body": { + "mode": "raw", + "raw": "hello world!" + }, + "description": "Request with raw body" + }, + "response": [] + }, + { + "name": "Test Request", + "request": { + "url": "{{base_url}}/api/users", + "method": "POST", + "body": { + "mode": "unknown", + "unknown": "foo" + }, + "description": "Request with raw body" + }, + "response": [] + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/postman/complex-output.json b/packages/insomnia-importers/src/__tests__/fixtures/postman/complex-output.json new file mode 100755 index 0000000000..3d62da3448 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/postman/complex-output.json @@ -0,0 +1,114 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__GRP_1__", + "_type": "request_group", + "parentId": "__WORKSPACE_ID__", + "name": "Test Collection", + "description": "A collection for testing", + "environment": {} + }, + { + "_id": "__GRP_2__", + "_type": "request_group", + "parentId": "__GRP_1__", + "name": "First Folder", + "description": "The first folder", + "environment": {} + }, + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__GRP_2__", + "url": "{{base_url}}/api/users", + "name": "{{base_url}}/api/users", + "description": "First Request", + "method": "POST", + "body": { + "mimeType": "multipart/form-data", + "params": [ + { + "disabled": false, + "type": "file", + "name": "file", + "fileName": "/home/user/test.txt" + }, + { + "disabled": false, + "type": "text", + "name": "foo", + "value": "bar" + } + ] + }, + "parameters": [], + "headers": [ + { + "name": "Authorization", + "value": "Basic dXNlcm5hbWU6cGFzc3dvcmQ=" + } + ], + "authentication": {} + }, + { + "_id": "__REQ_2__", + "_type": "request", + "parentId": "__GRP_2__", + "url": "{{base_url}}/api/users", + "name": "Urlencoded Form Test", + "description": "First Request", + "method": "POST", + "body": { + "mimeType": "application/x-www-form-urlencoded", + "params": [ + { + "disabled": false, + "name": "foo", + "value": "bar" + } + ] + }, + "parameters": [], + "headers": [ + { + "name": "Authorization", + "value": "Basic dXNlcm5hbWU6cGFzc3dvcmQ=" + } + ], + "authentication": {} + }, + { + "_id": "__REQ_3__", + "_type": "request", + "parentId": "__GRP_1__", + "url": "{{base_url}}/api/users", + "name": "Test Request", + "description": "Request with raw body", + "method": "POST", + "body": { + "mimeType": "", + "text": "hello world!" + }, + "parameters": [], + "headers": [], + "authentication": {} + }, + { + "_id": "__REQ_4__", + "_type": "request", + "parentId": "__GRP_1__", + "url": "{{base_url}}/api/users", + "name": "Test Request", + "description": "Request with raw body", + "method": "POST", + "body": {}, + "parameters": [], + "headers": [], + "authentication": {} + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/postman/minimal-input.json b/packages/insomnia-importers/src/__tests__/fixtures/postman/minimal-input.json new file mode 100755 index 0000000000..8f16ad00ff --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/postman/minimal-input.json @@ -0,0 +1,14 @@ +{ + "variables": [], + "info": { + "name": "Test Collection", + "_postman_id": "250d5bd3-4f7e-8fd0-7744-35e942e36a78", + "description": "A collection for testing", + "schema": "https://schema.getpostman.com/json/collection/v2.0.0/collection.json" + }, + "item": [ + { + "request": {} + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/fixtures/postman/minimal-output.json b/packages/insomnia-importers/src/__tests__/fixtures/postman/minimal-output.json new file mode 100755 index 0000000000..52a13dad06 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/fixtures/postman/minimal-output.json @@ -0,0 +1,29 @@ +{ + "_type": "export", + "__export_format": 3, + "__export_date": "2016-11-18T22:34:51.526Z", + "__export_source": "insomnia.importers:v0.1.0", + "resources": [ + { + "_id": "__GRP_1__", + "_type": "request_group", + "parentId": "__WORKSPACE_ID__", + "name": "Test Collection", + "description": "A collection for testing", + "environment": {} + }, + { + "_id": "__REQ_1__", + "_type": "request", + "parentId": "__GRP_1__", + "url": "", + "name": "", + "description": "", + "method": "GET", + "body": {}, + "parameters": [], + "headers": [], + "authentication": {} + } + ] +} diff --git a/packages/insomnia-importers/src/__tests__/import-errors.test.js b/packages/insomnia-importers/src/__tests__/import-errors.test.js new file mode 100755 index 0000000000..6987f0473d --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/import-errors.test.js @@ -0,0 +1,10 @@ +'use strict'; + +const importers = require('../../index'); + +describe('Import errors', () => { + it('fail to find importer', () => { + const fn = () => importers.convert('foo'); + expect(fn).toThrowError('No importers found for file') + }) +}); diff --git a/packages/insomnia-importers/src/__tests__/utils.test.js b/packages/insomnia-importers/src/__tests__/utils.test.js new file mode 100755 index 0000000000..c0eb8e33c1 --- /dev/null +++ b/packages/insomnia-importers/src/__tests__/utils.test.js @@ -0,0 +1,46 @@ +'use strict'; + +const utils = require('../../src/utils'); + +describe('setDefaults()', () => { + it('should leave non-objects alone', () => { + expect(utils.setDefaults(null)).toBe(null) + }); + + it('should leave unrecognized types alone', () => { + const obj = {_type: 'weird'}; + expect(utils.setDefaults(obj)).toBe(obj) + }); + + it('should set correct request defaults', () => { + expect(utils.setDefaults({_type: 'request'})).toEqual({ + _type: 'request', + parentId: '__WORKSPACE_ID__', + name: 'Imported', + url: '', + body: '', + method: 'GET', + parameters: [], + headers: [], + authentication: {}, + }) + }); + + it('should set correct request_group defaults', () => { + expect(utils.setDefaults({_type: 'request_group'})).toEqual({ + _type: 'request_group', + parentId: '__WORKSPACE_ID__', + name: 'Imported', + environment: {}, + }) + }); + + it('should set correct environment defaults', () => { + expect(utils.setDefaults({_type: 'environment'})).toEqual({ + _type: 'environment', + parentId: '__BASE_ENVIRONMENT_ID__', + name: 'Imported Environment', + data: {}, + }) + }); +}); diff --git a/packages/insomnia-importers/src/cli.js b/packages/insomnia-importers/src/cli.js new file mode 100755 index 0000000000..093b9ce280 --- /dev/null +++ b/packages/insomnia-importers/src/cli.js @@ -0,0 +1,53 @@ +'use strict'; + +const program = require('commander'); +const path = require('path'); +const importers = require('../index'); +const fs = require('fs'); +const {version} = require('../package.json'); + +module.exports.go = function () { + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // + // Configure the arguments parsing // + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // + + program + .version(version, '-v, --version') + .usage('[options] ') + .option('-o, --output ', 'output directory') + .parse(process.argv); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // + // Set up the directory to work on // + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // + + const inputPath = program.args[0]; + const outputPath = program.output || program.args[1]; + + if (!inputPath) { + console.log('Input path not specified'); + process.exit(1); + } + + // ~~~~~~~~~~~~~~~~~~~~~~ // + // Convert the input file // + // ~~~~~~~~~~~~~~~~~~~~~~ // + + const fullInputPath = path.resolve(inputPath); + const fileContents = fs.readFileSync(fullInputPath, 'utf8'); + + const result = importers.convert(fileContents); + const exportContents = JSON.stringify(result.data, null, 2); + + // ~~~~~~~~~~~~~~~~ // + // Write the output // + // ~~~~~~~~~~~~~~~~ // + + if (outputPath) { + const fullOutputPath = path.resolve(outputPath); + fs.writeFileSync(fullOutputPath, exportContents); + } else { + console.log(exportContents); + } +}; diff --git a/packages/insomnia-importers/src/importers/curl.js b/packages/insomnia-importers/src/importers/curl.js new file mode 100755 index 0000000000..47a3e0489b --- /dev/null +++ b/packages/insomnia-importers/src/importers/curl.js @@ -0,0 +1,213 @@ +'use strict'; + +const {parse} = require('shell-quote'); + +let requestCount = 1; + +module.exports.id = 'curl'; +module.exports.name = 'cURL'; +module.exports.description = 'cURL command line tool'; + +module.exports.convert = function (rawData) { + requestCount = 1; + + if (!rawData.match(/^\s*curl /)) { + return null; + } + + const requests = []; + + // Parse the whole thing into one big tokenized list + const allArgs = parse(rawData); + + + // ~~~~~~~~~~~~~~~~~~~~~~ // + // Aggregate the commands // + // ~~~~~~~~~~~~~~~~~~~~~~ // + + const commands = []; + + let currentCommand = []; + for (const arg of allArgs) { + if (typeof arg === 'object' && arg.op === ';') { + commands.push(currentCommand); + currentCommand = []; + } else if (typeof arg === 'object' && arg.op === 'glob') { + currentCommand.push(arg.pattern); + } else if (typeof arg === 'object') { + // Not sure what this could be, so just skip it + } else { + currentCommand.push(arg); + } + } + + // Push the last unfinished command + commands.push(currentCommand); + + for (const args of commands) { + if (args[0] !== 'curl') { + continue; + } + + requests.push(importArgs(args)); + } + + return requests; +}; + +function importArgs (args) { + + // ~~~~~~~~~~~~~~~~~~~~~ // + // Collect all the flags // + // ~~~~~~~~~~~~~~~~~~~~~ // + + const pairs = {}; + const singletons = []; + + // Start at 1 so we can skip the ^curl part + for (let i = 1; i < args.length; i++) { + const arg = args[i]; + if (arg.match(/^-{1,2}[\w\-]+/)) { + const isSingleDash = arg[0] === '-' && arg[1] !== '-'; + let name = arg.replace(/^-{1,2}/, ''); + + let value; + if (isSingleDash && name.length > 1) { + // Handle squished arguments like -XPOST + value = name.slice(1); + name = name.slice(0, 1); + } else if (args[i + 1] && args[i + 1].indexOf('-') !== 0) { + // Next arg is not a flag, so assign it as the value + value = args[i + 1]; + i++; // Skip next one + } else { + value = true; + } + + if (!pairs[name]) { + pairs[name] = [value]; + } else { + pairs[name].push(value); + } + } else if (arg) { + singletons.push(arg); + } + } + + // ~~~~~~~~~~~~~~~~~ // + // Build the request // + // ~~~~~~~~~~~~~~~~~ // + + // Url + const url = getPairValue(pairs, singletons[0] || '', 'url'); + + // Authentication + const [username, password] = getPairValue(pairs, '', 'u', 'user').split(/:(.*)$/); + const authentication = username + ? {username: username.trim(), password: password.trim()} + : {}; + + // Headers + const headers = [ + ...(pairs['header'] || []), + ...(pairs['H'] || []) + ].map(str => { + const [name, value] = str.split(/:(.*)$/); + return {name: name.trim(), value: value.trim()}; + }); + + // Cookies + const cookieHeaderValue = [ + ...(pairs.cookie || []), + ...(pairs.b || []) + ].map(str => { + const name = str.split('=', 1)[0]; + const value = str.replace(`${name}=`, ''); + return `${name}=${value}`; + }).join('; '); + + // Convert cookie value to header + const existingCookieHeader = headers.find(h => h.name.toLowerCase() === 'cookie'); + if (cookieHeaderValue && existingCookieHeader) { + // Has existing cookie header, so let's update it + existingCookieHeader.value += `; ${cookieHeaderValue}`; + } else if (cookieHeaderValue) { + // No existing cookie header, so let's make a new one + headers.push({name: 'Cookie', value: cookieHeaderValue}); + } + + // Body (Text or Blob) + const bodyAsGET = getPairValue(pairs, false, 'G', 'get'); + const textBody = getPairValue( + pairs, null, 'd', 'data', 'data-raw', 'data-urlencode', 'data-binary', 'data-ascii'); + const contentTypeHeader = headers.find(h => h.name.toLowerCase() === 'content-type'); + const mimeType = contentTypeHeader ? contentTypeHeader.value.split(';')[0] : null; + + // Body (Multipart Form Data) + const formDataParams = [ + ...(pairs['form'] || []), + ...(pairs['F'] || []) + ].map(str => { + const [name, value] = str.split('='); + const item = {name}; + + if (value.indexOf('@') === 0) { + item.fileName = value.slice(1); + item.type = 'file'; + } else { + item.value = value; + item.type = 'text'; + } + return item; + }); + + // Body + let parameters = []; + let body = mimeType ? {mimeType: mimeType} : {}; + if (textBody && bodyAsGET) { + parameters = textBody.split('&').map(v => { + const [name, value] = v.split('='); + return {name: name || '', value: value || ''}; + }); + } else if (textBody && mimeType === 'application/x-www-form-urlencoded') { + body.params = textBody.split('&').map(v => { + const [name, value] = v.split('='); + return {name: name || '', value: value || ''}; + }); + } else if (textBody) { + body.text = textBody; + body.mimeType = mimeType || ''; + } else if (formDataParams.length) { + body.params = formDataParams; + body.mimeType = mimeType || 'multipart/form-data'; + } + + // Method + let method = getPairValue(pairs, '__UNSET__', 'X', 'request').toUpperCase(); + if (method === '__UNSET__') { + method = (body.text || body.params) ? 'POST' : 'GET'; + } + + const count = requestCount++; + return { + _id: `__REQ_${count}__`, + _type: 'request', + parentId: '__WORKSPACE_ID__', + name: url || `cURL Import ${count}`, + parameters, + url, + method, + headers, + authentication, + body, + }; +} + +function getPairValue (pairs, defaultValue, ...names) { + for (const name of names) { + if (pairs[name] && pairs[name].length) { + return pairs[name][0]; + } + } + return defaultValue; +} diff --git a/packages/insomnia-importers/src/importers/har.js b/packages/insomnia-importers/src/importers/har.js new file mode 100755 index 0000000000..d71fc03857 --- /dev/null +++ b/packages/insomnia-importers/src/importers/har.js @@ -0,0 +1,134 @@ +'use strict'; + +const utils = require('../utils'); + +let requestCount = 1; + +module.exports.id = 'har'; +module.exports.name = 'HAR 1.2'; +module.exports.description = 'Importer for HTTP Archive 1.2'; + +module.exports.convert = function (rawData) { + requestCount = 1; + + let data; + try { + data = JSON.parse(rawData); + const requests = extractRequests(data); + return requests.map(importRequest); + } catch (e) { + return null; + } +}; + +function importRequest (request) { + const cookieHeaderValue = mapImporter(request.cookies, importCookieToHeaderString).join('; '); + const headers = mapImporter(request.headers, importHeader); + + // Convert cookie value to header + const existingCookieHeader = headers.find(h => h.name.toLowerCase() === 'cookie'); + if (cookieHeaderValue && existingCookieHeader) { + // Has existing cookie header, so let's update it + existingCookieHeader.value += `; ${cookieHeaderValue}`; + } else if (cookieHeaderValue) { + // No existing cookie header, so let's make a new one + headers.push({name: 'Cookie', value: cookieHeaderValue}); + } + + const count = requestCount++; + + return { + _type: 'request', + _id: `__REQ_${count}__`, + name: request.comment || request.url || `HAR Import ${count}`, + parentId: '__WORKSPACE_ID__', + url: importUrl(request.url), + method: importMethod(request.method), + body: importPostData(request.postData), + parameters: mapImporter(request.queryString, importQueryString), + headers: headers, + + // Authentication isn't part of HAR, but we should be able to + // sniff for things like Basic Authentication headers and pull + // out the auth info + authentication: {}, + }; +} + +function importUrl (url) { + return url; +} + +function importMethod (method) { + return method.toUpperCase(); +} + +function importCookieToHeaderString (obj) { + return `${obj.name}=${obj.value}` +} + +function importHeader (obj) { + return removeComment(obj); +} + +function importQueryString (obj) { + return removeComment(obj); +} + +function importPostData (obj) { + if (!obj) { + return {}; + } + + if (obj.params && obj.params.length) { + const mimeType = obj.mimeType || 'application/x-www-form-urlencoded'; + const params = obj.params.map(p => { + const item = {name: p.name}; + if (p.fileName) { + item.fileName = p.fileName; + } else { + item.value = p.value || ''; + } + return item; + }); + + return {params, mimeType}; + } else { + return { + mimeType: obj.mimeType || '', + text: obj.text || '' + }; + } +} + +function removeComment (obj) { + const newObj = Object.assign({}, obj); + delete newObj['comment']; + return newObj; +} + +function mapImporter (arr, importFn) { + if (!arr) { + return []; + } else { + return arr.map(importFn) + } +} + +function extractRequests (harRoot) { + const requests = []; + + const log = harRoot.log; + if (!log && harRoot.httpVersion && harRoot.method && harRoot.url) { + // If there is not "log" property, try to use the root object + // if it looks like a request + requests.push(harRoot); + return requests; + } + + for (const entry of log.entries) { + requests.push(entry.request); + } + + return requests; +} diff --git a/packages/insomnia-importers/src/importers/insomnia-1.js b/packages/insomnia-importers/src/importers/insomnia-1.js new file mode 100755 index 0000000000..a227e5c770 --- /dev/null +++ b/packages/insomnia-importers/src/importers/insomnia-1.js @@ -0,0 +1,118 @@ +'use strict'; + +let requestCount = 1; +let requestGroupCount = 1; + +const FORMAT_MAP = { + json: 'application/json', + xml: 'application/xml', + form: 'application/x-www-form-urlencoded', + text: 'text/plain' +}; + +module.exports.id = 'insomnia-1'; +module.exports.name = 'Insomnia v1'; +module.exports.description = 'Legacy Insomnia format'; + +module.exports.convert = function (rawData) { + requestCount = 1; + requestGroupCount = 1; + + let data; + try { + data = JSON.parse(rawData); + } catch (e) { + return null; + } + + if (data.__export_format !== 1) { + // Bail early if it's not the legacy format + return null; + } + + return importItems(data.items, '__WORKSPACE_ID__'); +}; + +function importItems (items, parentId) { + let resources = []; + + for (const item of items) { + const requestGroup = importRequestGroupItem(item, parentId); + resources = [ + ...resources, + requestGroup, + ...item.requests.map(item => importRequestItem(item, requestGroup._id)) + ]; + } + + return resources; +} + +function importRequestGroupItem (item, parentId) { + let environment = {}; + if (item.environments && item.environments.base) { + environment = item.environments.base; + } + + const count = requestGroupCount++; + return { + _type: 'request_group', + _id: `__GRP_${count}__`, + parentId, + environment, + name: item.name || `Imported Folder ${count}`, + } +} + +function importRequestItem (item, parentId) { + let authentication = {}; + if (item.authentication) { + authentication.username = item.authentication.username; + authentication.password = item.authentication.password; + } + + const headers = item.headers || []; + let contentTypeHeader = headers.find(h => h.name.toLowerCase() === 'content-type'); + if (item.__insomnia && item.__insomnia.format) { + const contentType = FORMAT_MAP[item.__insomnia.format]; + if (!contentTypeHeader) { + contentTypeHeader = {name: 'Content-Type', value: contentType}; + headers.push(contentTypeHeader); + } + } + + let body = {}; + if (contentTypeHeader && ( + contentTypeHeader.value.match(/^application\/x-www-form-urlencoded/i) || + contentTypeHeader.value.match(/^multipart\/form-encoded/i) + ) + ) { + body.mimeType = contentTypeHeader.value.split(';')[0]; + body.params = (item.body || '').split('&').map(v => { + const [name, value] = v.split('='); + return { + name: decodeURIComponent(name), + value: decodeURIComponent(value || '') + }; + }) + } else if (item.body) { + body = { + mimeType: FORMAT_MAP[item.__insomnia.format] || '', + text: item.body, + } + } + + const count = requestCount++; + return { + _type: 'request', + _id: `__REQ_${count}__`, + parentId, + name: item.name || `Imported HAR ${count}`, + url: item.url || '', + method: item.method || 'GET', + body: body, + parameters: item.params || [], + headers, + authentication, + } +} diff --git a/packages/insomnia-importers/src/importers/insomnia-2.js b/packages/insomnia-importers/src/importers/insomnia-2.js new file mode 100755 index 0000000000..2187ce9f1e --- /dev/null +++ b/packages/insomnia-importers/src/importers/insomnia-2.js @@ -0,0 +1,39 @@ +'use strict'; + +const utils = require('../utils'); + +module.exports.id = 'insomnia-2'; +module.exports.name = 'Insomnia v2'; +module.exports.description = 'Insomnia export format 2'; + +module.exports.convert = function (rawData) { + let data; + try { + data = JSON.parse(rawData); + } catch (e) { + return null; + } + + if (data.__export_format !== 2) { + // Bail early if it's not the legacy format + return null; + } + + // The only difference between 2 and 3 is the request body object + for (const resource of data.resources) { + if (resource._type !== 'request') { + continue; + } + + // Convert old String request bodies to new (HAR) schema + const headers = resource.headers || []; + const contentTypeHeader = headers.find(h => h.name.toLowerCase() === 'content-type'); + const mimeType = contentTypeHeader ? contentTypeHeader.value.split(';')[0] : null; + resource.body = { + mimeType: mimeType || '', + text: resource.body + }; + } + + return data.resources; +}; diff --git a/packages/insomnia-importers/src/importers/insomnia-3.js b/packages/insomnia-importers/src/importers/insomnia-3.js new file mode 100755 index 0000000000..9f6ea9f5a7 --- /dev/null +++ b/packages/insomnia-importers/src/importers/insomnia-3.js @@ -0,0 +1,24 @@ +'use strict'; + +const utils = require('../utils'); + +module.exports.id = 'insomnia-3'; +module.exports.name = 'Insomnia v3'; +module.exports.description = 'Insomnia export format 3'; + +module.exports.convert = function (rawData) { + let data; + try { + data = JSON.parse(rawData); + } catch (e) { + return null; + } + + if (data.__export_format !== 3) { + // Bail early if it's not the legacy format + return null; + } + + // This is the target export format so nothing needs to change + return data.resources; +}; diff --git a/packages/insomnia-importers/src/importers/postman-env.js b/packages/insomnia-importers/src/importers/postman-env.js new file mode 100755 index 0000000000..7c87c4d662 --- /dev/null +++ b/packages/insomnia-importers/src/importers/postman-env.js @@ -0,0 +1,39 @@ +'use strict'; + +module.exports.id = 'postman-environment'; +module.exports.name = 'Postman Environment'; +module.exports.description = 'Importer for Postman environments'; + +module.exports.convert = function (rawData) { + + let data; + try { + data = JSON.parse(rawData); + if (data['_postman_variable_scope'] === 'environment') { + return importEnvironment(data); + } + } catch (e) { + // Nothing + } + + return null; +}; + +function importEnvironment (environment) { + const newEnvironment = { + _id: '__ENV_1__', + _type: 'environment', + name: environment.name || 'Postman Environment', + data: {} + }; + + for (const value of environment.values) { + if (!value.enabled) { + continue; + } + + newEnvironment.data[value.key] = value.value; + } + + return [newEnvironment]; +} diff --git a/packages/insomnia-importers/src/importers/postman.js b/packages/insomnia-importers/src/importers/postman.js new file mode 100755 index 0000000000..4958af86ab --- /dev/null +++ b/packages/insomnia-importers/src/importers/postman.js @@ -0,0 +1,159 @@ +'use strict'; + +module.exports.id = 'postman'; +module.exports.name = 'Postman'; +module.exports.description = 'Importer for Postman collections'; + +let requestCount = 1; +let requestGroupCount = 1; + +module.exports.convert = function (rawData) { + requestCount = 1; + requestGroupCount = 1; + + let data; + try { + data = JSON.parse(rawData); + if (data.info.schema === 'https://schema.getpostman.com/json/collection/v2.0.0/collection.json') { + return importCollection(data); + } + } catch (e) { + // Nothing + } + + return null; +}; + +function importCollection (collection) { + const collectionFolder = { + parentId: '__WORKSPACE_ID__', + _id: `__GRP_${requestGroupCount++}__`, + _type: 'request_group', + name: collection.info.name, + description: collection.info.description, + }; + return [ + collectionFolder, + ...importItem(collection.item, collectionFolder._id) + ] +} + +function importItem (items, parentId = '__WORKSPACE_ID__') { + let resources = []; + + for (const item of items) { + if (item.hasOwnProperty('request')) { + resources = [ + ...resources, + importRequestItem(item, parentId) + ]; + } else { + const requestGroup = importFolderItem(item, parentId); + resources = [ + ...resources, + requestGroup, + ...importItem(item.item, requestGroup._id) + ]; + } + } + + return resources; +} + +function importFolderItem (item, parentId) { + return { + parentId, + _id: `__GRP_${requestGroupCount++}__`, + _type: 'request_group', + name: item.name, + description: item.description || '', + } +} + +function importRequestItem (item, parentId) { + const {request} = item; + return { + parentId, + _id: `__REQ_${requestCount++}__`, + _type: 'request', + name: item.name || '', + description: request.description || '', + url: request.url || '', + method: request.method || 'GET', + headers: mapImporter(request.header, importHeader), + body: importBody(request.body), + } +} + +function importHeader (header) { + return Object.assign({ + name: header.key, + value: header.value, + }) +} + +function importBody (body) { + if (!body) { + return {}; + } else if (body.mode === 'raw') { + return importBodyRaw(body.raw) + } else if (body.mode === 'urlencoded') { + return importBodyFormUrlEncoded(body.urlencoded) + } else if (body.mode === 'formdata') { + // TODO: Handle this as properly as multipart/form-data + return importBodyFormdata(body.formdata) + } else { + return {}; + } +} + +function importBodyFormdata (formdata) { + const params = formdata.map(({key, value, type, enabled, src}) => { + const item = { + type, + name: key, + disabled: !enabled + }; + + if (type === 'file') { + item.fileName = src; + } else { + item.value = value; + } + + return item; + }); + + return { + params, + mimeType: 'multipart/form-data', + } +} + +function importBodyFormUrlEncoded (urlEncoded) { + const params = urlEncoded.map(({key, value, enabled}) => ({ + value, + name: key, + disabled: !enabled + })); + + return { + params, + mimeType: 'application/x-www-form-urlencoded', + } +} + +function importBodyRaw (raw) { + return { + mimeType: '', + text: raw + }; +} + +function mapImporter (arr, importFn) { + if (!arr) { + return []; + } else { + return arr.map(importFn) + } +} diff --git a/packages/insomnia-importers/src/utils.js b/packages/insomnia-importers/src/utils.js new file mode 100755 index 0000000000..decac6a3d3 --- /dev/null +++ b/packages/insomnia-importers/src/utils.js @@ -0,0 +1,48 @@ + +module.exports.setDefaults = function (obj) { + if (!obj || !obj._type) { + return obj; + } else if (obj._type === 'request') { + return module.exports.setDefaultsRequest(obj); + } else if (obj._type === 'request_group') { + return module.exports.setDefaultsRequestGroup(obj); + } else if (obj._type === 'environment') { + return module.exports.setDefaultsEnvironment(obj); + } else { + return obj; + } +}; + +module.exports.setDefaultsRequest = function (request) { + request.method = (request.method || 'GET').toUpperCase(); + return Object.assign({ + parentId: '__WORKSPACE_ID__', + name: 'Imported', + url: '', + body: '', + method: 'GET', + parameters: [], + headers: [], + authentication: {}, + }, request) +}; + +module.exports.setDefaultsRequestGroup = function (requestGroup) { + return Object.assign({ + parentId: '__WORKSPACE_ID__', + name: 'Imported', + environment: {}, + }, requestGroup) +}; + +module.exports.setDefaultsEnvironment = function (environment) { + return Object.assign({ + parentId: '__BASE_ENVIRONMENT_ID__', + name: 'Imported Environment', + data: {}, + }, environment) +}; + +module.exports.getDateString = function () { + return new Date().toISOString(); +}; diff --git a/packages/insomnia-prettify/README.md b/packages/insomnia-prettify/README.md new file mode 100644 index 0000000000..3385e68228 --- /dev/null +++ b/packages/insomnia-prettify/README.md @@ -0,0 +1,5 @@ +# Insomnia Prettify + +[![Npm Version](https://img.shields.io/npm/v/insomnia-prettify.svg)](https://www.npmjs.com/package/insomnia-prettify) + +Prettification utilities for various formats. diff --git a/packages/insomnia-prettify/index.js b/packages/insomnia-prettify/index.js new file mode 100644 index 0000000000..e2562cbfa3 --- /dev/null +++ b/packages/insomnia-prettify/index.js @@ -0,0 +1,3 @@ +module.exports = { + json: require('./src/json').prettify +}; diff --git a/packages/insomnia-prettify/package-lock.json b/packages/insomnia-prettify/package-lock.json new file mode 100644 index 0000000000..0f91264690 --- /dev/null +++ b/packages/insomnia-prettify/package-lock.json @@ -0,0 +1,5 @@ +{ + "name": "insomnia-prettify", + "version": "0.0.1", + "lockfileVersion": 1 +} diff --git a/packages/insomnia-prettify/package.json b/packages/insomnia-prettify/package.json new file mode 100644 index 0000000000..038e7dee20 --- /dev/null +++ b/packages/insomnia-prettify/package.json @@ -0,0 +1,11 @@ +{ + "name": "insomnia-prettify", + "version": "0.0.3", + "author": "Gregory Schier ", + "description": "Prettification utilities for Insomnia", + "license": "MIT", + "main": "index.js", + "scripts": { + "test": "jest --silent" + } +} diff --git a/packages/insomnia-prettify/src/__fixtures__/escaped-characters-input.json b/packages/insomnia-prettify/src/__fixtures__/escaped-characters-input.json new file mode 100644 index 0000000000..d010282a45 --- /dev/null +++ b/packages/insomnia-prettify/src/__fixtures__/escaped-characters-input.json @@ -0,0 +1 @@ +{"slash": "\\", "slashes": "\\\\", "quote": "\""} diff --git a/packages/insomnia-prettify/src/__fixtures__/escaped-characters-output.json b/packages/insomnia-prettify/src/__fixtures__/escaped-characters-output.json new file mode 100644 index 0000000000..e090c2d776 --- /dev/null +++ b/packages/insomnia-prettify/src/__fixtures__/escaped-characters-output.json @@ -0,0 +1,6 @@ +{ + "slash": "\\", + "slashes": "\\\\", + "quote": "\"" +} + diff --git a/packages/insomnia-prettify/src/__fixtures__/extra-whitespace-input.json b/packages/insomnia-prettify/src/__fixtures__/extra-whitespace-input.json new file mode 100644 index 0000000000..ad917731c6 --- /dev/null +++ b/packages/insomnia-prettify/src/__fixtures__/extra-whitespace-input.json @@ -0,0 +1,12 @@ +{ + + "foo": "bar", + "arr": [ + 1, + 2, + + 3, + 4 + + ] +} diff --git a/packages/insomnia-prettify/src/__fixtures__/extra-whitespace-output.json b/packages/insomnia-prettify/src/__fixtures__/extra-whitespace-output.json new file mode 100644 index 0000000000..4d6acc68a6 --- /dev/null +++ b/packages/insomnia-prettify/src/__fixtures__/extra-whitespace-output.json @@ -0,0 +1,9 @@ +{ + "foo": "bar", + "arr": [ + 1, + 2, + 3, + 4 + ] +} diff --git a/packages/insomnia-prettify/src/__fixtures__/minimal-whitespace-input.json b/packages/insomnia-prettify/src/__fixtures__/minimal-whitespace-input.json new file mode 100644 index 0000000000..fe03eaf146 --- /dev/null +++ b/packages/insomnia-prettify/src/__fixtures__/minimal-whitespace-input.json @@ -0,0 +1 @@ +{"foo":"bar","arr":[1,2,3,4],"object":{"foo":{},"empty":[]}} diff --git a/packages/insomnia-prettify/src/__fixtures__/minimal-whitespace-output.json b/packages/insomnia-prettify/src/__fixtures__/minimal-whitespace-output.json new file mode 100644 index 0000000000..05859469de --- /dev/null +++ b/packages/insomnia-prettify/src/__fixtures__/minimal-whitespace-output.json @@ -0,0 +1,13 @@ +{ + "foo": "bar", + "arr": [ + 1, + 2, + 3, + 4 + ], + "object": { + "foo": {}, + "empty": [] + } +} diff --git a/packages/insomnia-prettify/src/__fixtures__/nunjucks-input.json b/packages/insomnia-prettify/src/__fixtures__/nunjucks-input.json new file mode 100644 index 0000000000..f9595cd083 --- /dev/null +++ b/packages/insomnia-prettify/src/__fixtures__/nunjucks-input.json @@ -0,0 +1 @@ +{"quoted": "{{ bar }}", "variable": {{ hello }}, {# This is a comment #} "tag": {% foo 'bar', "baz" %}} diff --git a/packages/insomnia-prettify/src/__fixtures__/nunjucks-output.json b/packages/insomnia-prettify/src/__fixtures__/nunjucks-output.json new file mode 100644 index 0000000000..6231a7af4e --- /dev/null +++ b/packages/insomnia-prettify/src/__fixtures__/nunjucks-output.json @@ -0,0 +1,7 @@ +{ + "quoted": "{{ bar }}", + "variable": {{ hello }}, + {# This is a comment #} + "tag": {% foo 'bar', "baz" %} +} + diff --git a/packages/insomnia-prettify/src/__fixtures__/precision-input.json b/packages/insomnia-prettify/src/__fixtures__/precision-input.json new file mode 100644 index 0000000000..5a9c3ab3c0 --- /dev/null +++ b/packages/insomnia-prettify/src/__fixtures__/precision-input.json @@ -0,0 +1,6 @@ +{ + "float": 1.24815739284710478594274018450372432784024, + "round": 1.000000, + "invalid": foo, + "exponent": 1E5 +} \ No newline at end of file diff --git a/packages/insomnia-prettify/src/__fixtures__/precision-output.json b/packages/insomnia-prettify/src/__fixtures__/precision-output.json new file mode 100644 index 0000000000..c375ecc361 --- /dev/null +++ b/packages/insomnia-prettify/src/__fixtures__/precision-output.json @@ -0,0 +1,6 @@ +{ + "float": 1.24815739284710478594274018450372432784024, + "round": 1.000000, + "invalid": foo, + "exponent": 1E5 +} diff --git a/packages/insomnia-prettify/src/__fixtures__/root-array-input.json b/packages/insomnia-prettify/src/__fixtures__/root-array-input.json new file mode 100644 index 0000000000..3a26a2e5e9 --- /dev/null +++ b/packages/insomnia-prettify/src/__fixtures__/root-array-input.json @@ -0,0 +1 @@ +[1,2,3] \ No newline at end of file diff --git a/packages/insomnia-prettify/src/__fixtures__/root-array-output.json b/packages/insomnia-prettify/src/__fixtures__/root-array-output.json new file mode 100644 index 0000000000..e7023e6f13 --- /dev/null +++ b/packages/insomnia-prettify/src/__fixtures__/root-array-output.json @@ -0,0 +1,6 @@ +[ + 1, + 2, + 3 +] + diff --git a/packages/insomnia-prettify/src/__fixtures__/root-string-input.json b/packages/insomnia-prettify/src/__fixtures__/root-string-input.json new file mode 100644 index 0000000000..693cf43e59 --- /dev/null +++ b/packages/insomnia-prettify/src/__fixtures__/root-string-input.json @@ -0,0 +1 @@ +"Hello World!" \ No newline at end of file diff --git a/packages/insomnia-prettify/src/__fixtures__/root-string-output.json b/packages/insomnia-prettify/src/__fixtures__/root-string-output.json new file mode 100644 index 0000000000..cdeaded96e --- /dev/null +++ b/packages/insomnia-prettify/src/__fixtures__/root-string-output.json @@ -0,0 +1 @@ +"Hello World!" diff --git a/packages/insomnia-prettify/src/__fixtures__/trailing-comma-input.json b/packages/insomnia-prettify/src/__fixtures__/trailing-comma-input.json new file mode 100644 index 0000000000..32034b614a --- /dev/null +++ b/packages/insomnia-prettify/src/__fixtures__/trailing-comma-input.json @@ -0,0 +1 @@ +{"foo": "bar", "array": [1,2,3,4,],"last": "comma",} \ No newline at end of file diff --git a/packages/insomnia-prettify/src/__fixtures__/trailing-comma-output.json b/packages/insomnia-prettify/src/__fixtures__/trailing-comma-output.json new file mode 100644 index 0000000000..04a19d2f28 --- /dev/null +++ b/packages/insomnia-prettify/src/__fixtures__/trailing-comma-output.json @@ -0,0 +1,10 @@ +{ + "foo": "bar", + "array": [ + 1, + 2, + 3, + 4, + ], + "last": "comma", +} diff --git a/packages/insomnia-prettify/src/__fixtures__/unquoted-strings-input.json b/packages/insomnia-prettify/src/__fixtures__/unquoted-strings-input.json new file mode 100644 index 0000000000..6b7e616034 --- /dev/null +++ b/packages/insomnia-prettify/src/__fixtures__/unquoted-strings-input.json @@ -0,0 +1 @@ +{foo: bar, bar: [1,2,3,number?]} \ No newline at end of file diff --git a/packages/insomnia-prettify/src/__fixtures__/unquoted-strings-output.json b/packages/insomnia-prettify/src/__fixtures__/unquoted-strings-output.json new file mode 100644 index 0000000000..dc0dc6bead --- /dev/null +++ b/packages/insomnia-prettify/src/__fixtures__/unquoted-strings-output.json @@ -0,0 +1,10 @@ +{ + foo: bar, + bar: [ + 1, + 2, + 3, + number? + ] +} + diff --git a/app/common/__tests__/prettify.test.js b/packages/insomnia-prettify/src/__tests__/json.test.js similarity index 64% rename from app/common/__tests__/prettify.test.js rename to packages/insomnia-prettify/src/__tests__/json.test.js index 107731c584..e609fb36e7 100644 --- a/app/common/__tests__/prettify.test.js +++ b/packages/insomnia-prettify/src/__tests__/json.test.js @@ -1,11 +1,9 @@ -import {prettifyJson} from '../prettify'; -import fs from 'fs'; -import path from 'path'; -import {globalBeforeEach} from '../../__jest__/before-each'; +const fs = require('fs'); +const path = require('path'); +const {prettify} = require('../json'); describe('prettify()', () => { - beforeEach(globalBeforeEach); - const basePath = path.join(__dirname, '../__fixtures__/prettify'); + const basePath = path.join(__dirname, '../__fixtures__'); const files = fs.readdirSync(basePath); for (const file of files) { if (!file.match(/-input\.json$/)) { @@ -18,7 +16,7 @@ describe('prettify()', () => { it(`handles ${name}`, () => { const input = fs.readFileSync(path.join(basePath, `${slug}-input.json`), 'utf8').trim(); const output = fs.readFileSync(path.join(basePath, `${slug}-output.json`), 'utf8').trim(); - const result = prettifyJson(input, ' '); + const result = prettify(input, ' '); expect(result).toBe(output); }); } diff --git a/app/common/prettify.js b/packages/insomnia-prettify/src/json.js similarity index 98% rename from app/common/prettify.js rename to packages/insomnia-prettify/src/json.js index 207989d087..a0a2bc4865 100644 --- a/app/common/prettify.js +++ b/packages/insomnia-prettify/src/json.js @@ -25,7 +25,7 @@ const NUNJUCKS_CLOSE_STATES = { * @param indentChars * @returns {string} */ -export function prettifyJson (json, indentChars = '\t') { +module.exports.prettify = function (json, indentChars = '\t') { if (!json) { return ''; } @@ -152,7 +152,7 @@ export function prettifyJson (json, indentChars = '\t') { // Remove lines that only contain whitespace return newJson.replace(/^\s*\n/gm, ''); -} +}; function _repeatString (s, count) { return new Array(count + 1).join(s); diff --git a/packages/insomnia-url/README.md b/packages/insomnia-url/README.md new file mode 100644 index 0000000000..4b23053873 --- /dev/null +++ b/packages/insomnia-url/README.md @@ -0,0 +1,5 @@ +# Insomnia URL Utilities + +[![Npm Version](https://img.shields.io/npm/v/insomnia-url.svg)](https://www.npmjs.com/package/insomnia-url) + +Utilities for URLs. diff --git a/packages/insomnia-url/index.js b/packages/insomnia-url/index.js new file mode 100644 index 0000000000..39bb81d69c --- /dev/null +++ b/packages/insomnia-url/index.js @@ -0,0 +1,12 @@ +const protocol = require('./src/protocol'); +const querystring = require('./src/querystring'); + +module.exports = { + setDefaultProtocol: protocol.setDefaultProtocol, + smartEncodeUrl: querystring.smartEncodeUrl, + joinUrlAndQueryString: querystring.joinUrlAndQueryString, + extractQueryStringFromUrl: querystring.extractQueryStringFromUrl, + deconstructQueryStringToParams: querystring.deconstructQueryStringToParams, + buildQueryParameter: querystring.buildQueryParameter, + buildQueryStringFromParams: querystring.buildQueryStringFromParams +}; diff --git a/packages/insomnia-url/package.json b/packages/insomnia-url/package.json new file mode 100644 index 0000000000..77c186d82d --- /dev/null +++ b/packages/insomnia-url/package.json @@ -0,0 +1,11 @@ +{ + "name": "insomnia-url", + "version": "0.0.2", + "author": "Gregory Schier ", + "description": "URL Utilities", + "license": "MIT", + "main": "index.js", + "scripts": { + "test": "jest --silent" + } +} diff --git a/packages/insomnia-url/src/__tests__/protocol.test.js b/packages/insomnia-url/src/__tests__/protocol.test.js new file mode 100644 index 0000000000..fb01044495 --- /dev/null +++ b/packages/insomnia-url/src/__tests__/protocol.test.js @@ -0,0 +1,30 @@ +const {setDefaultProtocol} = require('../protocol'); + +describe('setDefaultProtocol()', () => { + it('no-ops on empty url', () => { + const url = setDefaultProtocol(''); + expect(url).toBe(''); + }); + + it('correctly sets protocol for empty', () => { + const url = setDefaultProtocol('google.com'); + expect(url).toBe('http://google.com'); + }); + + it('does not set for valid url', () => { + const url = setDefaultProtocol('https://google.com'); + expect(url).toBe('https://google.com'); + }); + + it('does not set for valid url', () => { + const url = setDefaultProtocol('http://google.com'); + expect(url).toBe('http://google.com'); + }); + + it('does not set for invalid url', () => { + const url = setDefaultProtocol('httbad://google.com'); + expect(url).toBe('httbad://google.com'); + }); +}); + + diff --git a/packages/insomnia-url/src/__tests__/querystring.test.js b/packages/insomnia-url/src/__tests__/querystring.test.js new file mode 100644 index 0000000000..2009288b34 --- /dev/null +++ b/packages/insomnia-url/src/__tests__/querystring.test.js @@ -0,0 +1,239 @@ +const querystring = require('../querystring'); +const {getJoiner} = querystring._internal; +const { + joinUrlAndQueryString, + buildQueryParameter, + buildQueryStringFromParams, + deconstructQueryStringToParams, + smartEncodeUrl +} = querystring; + +describe('querystring', () => { + describe('_getJoiner()', () => { + it('gets joiner for bare URL', () => { + const joiner = getJoiner('http://google.com'); + expect(joiner).toBe('?'); + }); + + it('gets joiner for invalid URL', () => { + const joiner = getJoiner('hi'); + expect(joiner).toBe('?'); + }); + + it('gets joiner for URL with question mark', () => { + const joiner = getJoiner('http://google.com?'); + expect(joiner).toBe('&'); + }); + + it('gets joiner for URL with params', () => { + const joiner = getJoiner('http://google.com?foo=bar'); + expect(joiner).toBe('&'); + }); + + it('gets joiner for URL with hash', () => { + const joiner = getJoiner('http://google.com?foo=bar#hi'); + expect(joiner).toBe('&'); + }); + + it('gets joiner for URL with ampersand', () => { + const joiner = getJoiner( + 'http://google.com?foo=bar&baz=qux' + ); + expect(joiner).toBe('&'); + }); + }); + + describe('joinUrlAndQueryString()', () => { + it('joins bare URL', () => { + const url = joinUrlAndQueryString( + 'http://google.com', + 'foo=bar' + ); + expect(url).toBe('http://google.com?foo=bar'); + }); + + it('joins with hash', () => { + const url = joinUrlAndQueryString( + 'http://google.com#hash', + 'foo=bar' + ); + expect(url).toBe('http://google.com?foo=bar#hash'); + }); + + it('joins hash and querystring', () => { + const url = joinUrlAndQueryString( + 'http://google.com?baz=qux#hash', + 'foo=bar' + ); + expect(url).toBe('http://google.com?baz=qux&foo=bar#hash'); + }); + + it('joins multi-hash and querystring', () => { + const url = joinUrlAndQueryString( + 'http://google.com?hi=there&baz=qux#hash#hi#hi', + 'foo=bar' + ); + expect(url).toBe('http://google.com?hi=there&baz=qux&foo=bar#hash#hi#hi'); + }); + + it('joins URL with querystring', () => { + const url = joinUrlAndQueryString( + 'http://google.com?hi=there', + 'foo=bar%20baz' + ); + expect(url).toBe('http://google.com?hi=there&foo=bar%20baz'); + }); + }); + + describe('build()', () => { + it('builds simple param', () => { + const str = buildQueryParameter({name: 'foo', value: 'bar??'}); + expect(str).toBe('foo=bar%3F%3F'); + }); + + it('builds param without value', () => { + const str = buildQueryParameter({name: 'foo'}); + expect(str).toBe('foo'); + }); + + it('builds empty param without name', () => { + const str = buildQueryParameter({value: 'bar'}); + expect(str).toBe(''); + }); + + it('builds with numbers', () => { + const str = buildQueryParameter({name: 'number', value: 10}); + const str2 = buildQueryParameter({name: 'number', value: 0}); + + expect(str).toBe('number=10'); + expect(str2).toBe('number=0'); + }); + }); + + describe('buildFromParams()', () => { + it('builds from params', () => { + const str = buildQueryStringFromParams([ + {name: 'foo', value: 'bar??'}, + {name: 'hello'}, + {name: 'hi there', value: 'bar??'}, + {name: '', value: 'bar??'}, + {name: '', value: ''} + ]); + + expect(str).toBe('foo=bar%3F%3F&hello&hi%20there=bar%3F%3F'); + }); + it('builds from params', () => { + const str = buildQueryStringFromParams([ + {name: 'foo', value: 'bar??'}, + {name: 'hello'}, + {name: 'hi there', value: 'bar??'}, + {name: '', value: 'bar??'}, + {name: '', value: ''} + ], false); + + expect(str).toBe('foo=bar%3F%3F&hello=&hi%20there=bar%3F%3F&=bar%3F%3F&='); + }); + }); + + describe('deconstructToParams()', () => { + it('builds from params', () => { + const str = deconstructQueryStringToParams( + 'foo=bar%3F%3F&hello&hi%20there=bar%3F%3F&=&=val' + ); + + expect(str).toEqual([ + {name: 'foo', value: 'bar??'}, + {name: 'hello', value: ''}, + {name: 'hi there', value: 'bar??'} + ]); + }); + it('builds from params with =', () => { + const str = deconstructQueryStringToParams( + 'foo=bar&1=2=3=4&hi' + ); + + expect(str).toEqual([ + {name: 'foo', value: 'bar'}, + {name: '1', value: '2=3=4'}, + {name: 'hi', value: ''} + ]); + }); + + it('builds from params not strict', () => { + const str = deconstructQueryStringToParams( + 'foo=bar%3F%3F&hello&hi%20there=bar%3F%3F&=&=val', + false + ); + + expect(str).toEqual([ + {name: 'foo', value: 'bar??'}, + {name: 'hello', value: ''}, + {name: 'hi there', value: 'bar??'}, + {name: '', value: ''}, + {name: '', value: 'val'} + ]); + }); + }); + + describe('smartEncodeUrl()', () => { + it('does not touch normal url', () => { + const url = smartEncodeUrl('http://google.com'); + expect(url).toBe('http://google.com/'); + }); + + it('works with no protocol', () => { + const url = smartEncodeUrl('google.com'); + expect(url).toBe('http://google.com/'); + }); + + it('encodes pathname', () => { + const url = smartEncodeUrl('https://google.com/foo bar/100%/foo'); + expect(url).toBe('https://google.com/foo%20bar/100%25/foo'); + }); + + it('encodes pathname mixed encoding', () => { + const url = smartEncodeUrl('https://google.com/foo bar baz%20qux/100%/foo%25'); + expect(url).toBe('https://google.com/foo%20bar%20baz%20qux/100%25/foo%25'); + }); + + it('leaves already encoded pathname', () => { + const url = smartEncodeUrl('https://google.com/foo%20bar%20baz/100%25/foo'); + expect(url).toBe('https://google.com/foo%20bar%20baz/100%25/foo'); + }); + + it('encodes querystring', () => { + const url = smartEncodeUrl('https://google.com?s=foo bar 100%&hi'); + expect(url).toBe('https://google.com/?s=foo%20bar%20100%25&hi'); + }); + + it('encodes querystring with mixed spaces', () => { + const url = smartEncodeUrl('https://google.com?s=foo %20100%'); + expect(url).toBe('https://google.com/?s=foo%20%20100%25'); + }); + + it('encodes querystring with repeated keys', () => { + const url = smartEncodeUrl('https://google.com/;@,!?s=foo,;@-!&s=foo %20100%'); + expect(url).toBe('https://google.com/;@,!?s=foo,%3B%40-!&s=foo%20%20100%25'); + }); + + it('doesn\'t decode ignored characters', () => { + // Encoded should skip raw versions of @ ; , + const url = smartEncodeUrl('https://google.com/@;,&^+'); + expect(url).toBe('https://google.com/@;,%26%5E+'); + + // Encoded should skip encoded versions of @ ; , + const url2 = smartEncodeUrl('https://google.com/%40%3B%2C%26%5E'); + expect(url2).toBe('https://google.com/%40%3B%2C%26%5E'); + }); + + it('leaves already encoded characters alone', () => { + const url = smartEncodeUrl('https://google.com/%2B%2A%2F>'); + expect(url).toBe('https://google.com/%2B%2A%2F%3E'); + }); + + it('doesn\'t encode if last param set', () => { + const url = smartEncodeUrl('https://google.com/%%?foo=%%', false); + expect(url).toBe('https://google.com/%%?foo=%%'); + }); + }); +}); diff --git a/packages/insomnia-url/src/protocol.js b/packages/insomnia-url/src/protocol.js new file mode 100644 index 0000000000..fe616b1124 --- /dev/null +++ b/packages/insomnia-url/src/protocol.js @@ -0,0 +1,21 @@ +/** + * Set a default protocol for a URL + * @param url {string} - URL to set protocol on + * @param [defaultProto='http:'] {string} - default protocol + * @returns {string} + */ +module.exports.setDefaultProtocol = function (url, defaultProto) { + defaultProto = defaultProto || 'http:'; + + // If no url, don't bother returning anything + if (!url) { + return ''; + } + + // Default the proto if it doesn't exist + if (url.indexOf('://') === -1) { + url = `${defaultProto}//${url}`; + } + + return url; +}; diff --git a/packages/insomnia-url/src/querystring.js b/packages/insomnia-url/src/querystring.js new file mode 100644 index 0000000000..0fc58e5077 --- /dev/null +++ b/packages/insomnia-url/src/querystring.js @@ -0,0 +1,253 @@ +const {parse: urlParse, format: urlFormat} = require('url'); +const {setDefaultProtocol} = require('./protocol'); + +const ESCAPE_REGEX_MATCH = /[-[\]/{}()*+?.\\^$|]/g; +const URL_PATH_CHARACTER_WHITELIST = '+,;@=:'; + +/** + * Join querystring to URL + * @param url {string} + * @param qs {string} + * @returns {string} + */ +module.exports.joinUrlAndQueryString = function (url, qs) { + if (!qs) { + return url; + } + + if (!url) { + return qs; + } + + const [base, ...hashes] = url.split('#'); + + // TODO: Make this work with URLs that have a #hash component + const baseUrl = base || ''; + const joiner = _getJoiner(base); + const hash = hashes.length ? `#${hashes.join('#')}` : ''; + return `${baseUrl}${joiner}${qs}${hash}`; +}; + +/** + * Extract querystring from URL + * @param url {string} + * @returns {string} + */ +module.exports.extractQueryStringFromUrl = function (url) { + if (!url) { + return ''; + } + + // NOTE: This only splits on first ? sign. '1=2=3' --> ['1', '2=3'] + const things = url.split('?'); + if (things.length === 1) { + return ''; + } else { + const qsWithHash = things.slice(1).join('?'); + return qsWithHash.replace(/#.*/, ''); + } +}; + +/** + * Build a querystring parameter from a param object + * @param param <{name: string, value: string}> + * @param [strict=true] {boolean} + * @returns {string} + */ +module.exports.buildQueryParameter = function (param, strict) { + strict = strict === undefined ? true : strict; + + // Skip non-name ones in strict mode + if (strict && !param.name) { + return ''; + } + + // Cast number values to strings + if (typeof param.value === 'number') { + param.value += ''; + } + + if (!strict || param.value) { + // Don't encode ',' in values + const value = module.exports.flexibleEncodeComponent(param.value || '').replace(/%2C/gi, ','); + const name = module.exports.flexibleEncodeComponent(param.name || ''); + + return `${name}=${value}`; + } else { + return module.exports.flexibleEncodeComponent(param.name); + } +}; + +/** + * Build a querystring from a list of name/value pairs + * @param parameters {{name: string, value: string}[]} + * @param [strict=true] {boolean} - allow empty names and values + * @returns {string} + */ +module.exports.buildQueryStringFromParams = function (parameters, strict) { + strict = strict === undefined ? true : strict; + let items = []; + + for (const param of parameters) { + let built = module.exports.buildQueryParameter(param, strict); + + if (!built) { + continue; + } + + items.push(built); + } + + return items.join('&'); +}; + +/** + * Deconstruct a querystring to name/value pairs + * @param [qs] {string} + * @param [strict=true] {boolean} - allow empty names and values + * @returns {{name: string, value: string}[]} + */ +module.exports.deconstructQueryStringToParams = function (qs, strict) { + strict = strict === undefined ? true : strict; + const pairs = []; + + if (!qs) { + return pairs; + } + + const stringPairs = qs.split('&'); + + for (let stringPair of stringPairs) { + // NOTE: This only splits on first equals sign. '1=2=3' --> ['1', '2=3'] + const [encodedName, ...encodedValues] = stringPair.split('='); + const encodedValue = encodedValues.join('='); + + let name = ''; + try { + name = decodeURIComponent(encodedName || ''); + } catch (e) { + // Just leave it + name = encodedName; + } + + let value = ''; + try { + value = decodeURIComponent(encodedValue || ''); + } catch (e) { + // Just leave it + value = encodedValue; + } + + if (strict && !name) { + continue; + } + + pairs.push({name, value}); + } + + return pairs; +}; + +/** + * Automatically encode the path and querystring components + * @param url {string} - url to encode + * @param [encode=true] - enable encoding + * @returns {string} + */ +module.exports.smartEncodeUrl = function (url, encode) { + // Default autoEncode = true if not passed + encode = encode === undefined ? true : encode; + + const urlWithProto = setDefaultProtocol(url); + + if (!encode) { + return urlWithProto; + } else { + // Parse the URL into components + const parsedUrl = urlParse(urlWithProto); + + // ~~~~~~~~~~~ // + // 1. Pathname // + // ~~~~~~~~~~~ // + + if (parsedUrl.pathname) { + const segments = parsedUrl.pathname.split('/'); + parsedUrl.pathname = segments.map( + s => module.exports.flexibleEncodeComponent(s, URL_PATH_CHARACTER_WHITELIST) + ).join('/'); + } + + // ~~~~~~~~~~~~~~ // + // 2. Querystring // + // ~~~~~~~~~~~~~~ // + + if (parsedUrl.query) { + const qsParams = module.exports.deconstructQueryStringToParams(parsedUrl.query); + const encodedQsParams = []; + for (const {name, value} of qsParams) { + encodedQsParams.push({ + name: module.exports.flexibleEncodeComponent(name), + value: module.exports.flexibleEncodeComponent(value) + }); + } + + parsedUrl.query = module.exports.buildQueryStringFromParams(encodedQsParams); + parsedUrl.search = `?${parsedUrl.query}`; + } + + return urlFormat(parsedUrl); + } +}; + +/** + * URL encode a string in a module.exports.flexible way + * @param str {string} - string to encode + * @param [ignore=''] {string} - characters to ignore + * @returns {string} + */ +module.exports.flexibleEncodeComponent = function (str, ignore) { + ignore = ignore || ''; + // Sometimes spaces screw things up because of url.parse + str = str.replace(/%20/g, ' '); + + // Handle all already-encoded characters so we don't touch them + str = str.replace(/%([0-9a-fA-F]{2})/g, '__ENC__$1'); + + // Do a special encode of ignored chars, so they aren't touched. + // This first pass, surrounds them with a special tag (anything unique + // will work), so it can change them back later + // Example: will replace %40 with __LEAVE_40_LEAVE__, and we'll change + // it back to %40 at the end. + for (const c of ignore) { + const code = encodeURIComponent(c).replace('%', ''); + const escaped = c.replace(ESCAPE_REGEX_MATCH, '\\$&'); + const re2 = new RegExp(escaped, 'g'); + str = str.replace(re2, `__RAW__${code}`); + } + + // Encode it + str = encodeURIComponent(str); + + // Put back the raw version of the ignored chars + for (const match of str.match(/__RAW__([0-9a-fA-F]{2})/g) || []) { + const code = match.replace('__RAW__', ''); + str = str.replace(match, decodeURIComponent(`%${code}`)); + } + + // Put back the encoded version of the ignored chars + for (const match of str.match(/__ENC__([0-9a-fA-F]{2})/g) || []) { + const code = match.replace('__ENC__', ''); + str = str.replace(match, `%${code}`); + } + + return str; +}; + +function _getJoiner (url) { + url = url || ''; + return url.indexOf('?') === -1 ? '?' : '&'; +} + +module.exports._internal = { + getJoiner: _getJoiner +}; diff --git a/packages/insomnia-xpath/README.md b/packages/insomnia-xpath/README.md new file mode 100644 index 0000000000..2792534073 --- /dev/null +++ b/packages/insomnia-xpath/README.md @@ -0,0 +1,5 @@ +# Insomnia XPath + +[![Npm Version](https://img.shields.io/npm/v/insomnia-xpath.svg)](https://www.npmjs.com/package/insomnia-xpath) + +Execute XPath queries on XML. diff --git a/packages/insomnia-xpath/__tests__/index.test.js b/packages/insomnia-xpath/__tests__/index.test.js new file mode 100644 index 0000000000..1bf602fa01 --- /dev/null +++ b/packages/insomnia-xpath/__tests__/index.test.js @@ -0,0 +1,33 @@ +const {query} = require('..'); + +function q (description, args, result) { + it(description, () => { + expect(query(...args)).toEqual(result); + }); +} + +describe('query()', () => { + q('handles missing query', + [''], + [] + ); + + q('handles basic query', + ['foobar', '//y'], + [ + {inner: 'foo', outer: 'foo'}, + {inner: 'bar', outer: 'bar'} + ] + ); + + q('handles attribute query', + ['foobar', '//*[@foo="bar"]'], + [ + {inner: 'foo', outer: 'foo'} + ] + ); + + it('handles invalid query', () => { + expect(() => query('there', '//[]')).toThrowError('Invalid XPath query: //[]'); + }); +}); diff --git a/app/common/xpath.js b/packages/insomnia-xpath/index.js similarity index 70% rename from app/common/xpath.js rename to packages/insomnia-xpath/index.js index be77442499..1157aa1d73 100644 --- a/app/common/xpath.js +++ b/packages/insomnia-xpath/index.js @@ -1,8 +1,13 @@ -// @flow -import xpath from 'xpath'; -import {DOMParser} from 'xmldom'; +const xpath = require('xpath'); +const {DOMParser} = require('xmldom'); -export function query (xml: string, query: string): Array<{outer: string, inner: string}> { +/** + * Query an XML blob with XPath + * @param xml {string} + * @param query {string} + * @returns {Array<{outer: string, inner: string}>} + */ +module.exports.query = function (xml, query) { const dom = new DOMParser().parseFromString(xml); let rawResults = []; @@ -28,4 +33,4 @@ export function query (xml: string, query: string): Array<{outer: string, inner: } return results; -} +}; diff --git a/packages/insomnia-xpath/package-lock.json b/packages/insomnia-xpath/package-lock.json new file mode 100644 index 0000000000..b624788181 --- /dev/null +++ b/packages/insomnia-xpath/package-lock.json @@ -0,0 +1,16 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "xmldom": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", + "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=" + }, + "xpath": { + "version": "0.0.26", + "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.26.tgz", + "integrity": "sha512-cn58wPnkUO7woqCLXlg9xeUMsPjMF7ZJ2gExwZ2F0IXkFAkL+6cyMdFUXJkld7Quw4k1y8QY9wlI3lMNNQkroQ==" + } + } +} diff --git a/packages/insomnia-xpath/package.json b/packages/insomnia-xpath/package.json new file mode 100644 index 0000000000..436e5b823a --- /dev/null +++ b/packages/insomnia-xpath/package.json @@ -0,0 +1,16 @@ +{ + "name": "insomnia-xpath", + "version": "0.0.2", + "author": "Gregory Schier ", + "description": "Query XML using XPath", + "license": "MIT", + "main": "index.js", + "scripts": { + "test": "jest --silent" + }, + "dependencies": { + "insomnia-cookies": "^0.0.2", + "xmldom": "^0.1.27", + "xpath": "^0.0.26" + } +} diff --git a/plugins/insomnia-plugin-base64/README.md b/plugins/insomnia-plugin-base64/README.md new file mode 100644 index 0000000000..e806ef01a4 --- /dev/null +++ b/plugins/insomnia-plugin-base64/README.md @@ -0,0 +1,5 @@ +# Insomnia Base64 Template Tag + +[![Npm Version](https://img.shields.io/npm/v/insomnia-plugin-base64.svg)](https://www.npmjs.com/package/insomnia-plugin-base64) + +This is a core Insomnia plugin. \ No newline at end of file diff --git a/plugins/insomnia-plugin-base64/__tests__/index.test.js b/plugins/insomnia-plugin-base64/__tests__/index.test.js new file mode 100644 index 0000000000..2b78ef34e6 --- /dev/null +++ b/plugins/insomnia-plugin-base64/__tests__/index.test.js @@ -0,0 +1,27 @@ +const tag = require('..').templateTags[0]; + +function assertTemplate (args, expected) { + return async function () { + const result = await tag.run(null, ...args); + expect(result).toBe(expected); + }; +} + +function assertTemplateFails (args, expected) { + return async function () { + try { + await tag.run(null, ...args); + fail(`Render should have thrown ${expected}`); + } catch (err) { + expect(err.message).toContain(expected); + } + }; +} + +describe('Base64EncodeExtension', () => { + it('encodes nothing', assertTemplate(['encode'], '')); + it('encodes something', assertTemplate(['encode', 'my string'], 'bXkgc3RyaW5n')); + it('decodes nothing', assertTemplate(['decode'], '')); + it('decodes something', assertTemplate(['decode', 'bXkgc3RyaW5n'], 'my string')); + it('fails on invalid op', assertTemplateFails(['foo'], 'Unsupported operation "foo". Must be encode or decode.')); +}); diff --git a/app/templating/extensions/base-64-extension.js b/plugins/insomnia-plugin-base64/index.js similarity index 95% rename from app/templating/extensions/base-64-extension.js rename to plugins/insomnia-plugin-base64/index.js index e4c996e548..f6f7160157 100644 --- a/app/templating/extensions/base-64-extension.js +++ b/plugins/insomnia-plugin-base64/index.js @@ -1,4 +1,4 @@ -export default { +module.exports.templateTags = [{ name: 'base64', displayName: 'Base64', description: 'encode or decode values', @@ -28,4 +28,4 @@ export default { throw new Error('Unsupported operation "' + op + '". Must be encode or decode.'); } } -}; +}]; diff --git a/plugins/insomnia-plugin-base64/package.json b/plugins/insomnia-plugin-base64/package.json new file mode 100644 index 0000000000..c1f1b664ec --- /dev/null +++ b/plugins/insomnia-plugin-base64/package.json @@ -0,0 +1,19 @@ +{ + "name": "insomnia-plugin-base64", + "version": "1.0.1", + "author": "Gregory Schier ", + "description": "Insomnia base64 template tag", + "license": "MIT", + "repository": "https://github.com/getinsomnia/insomnia/tree/master/plugins/insomnia-plugin-base64", + "bugs": { + "url": "https://github.com/getinsomnia/insomnia" + }, + "main": "index.js", + "insomnia": { + "name": "base64", + "description": "Encode/Decode base64 strings" + }, + "scripts": { + "test": "node --version" + } +} diff --git a/plugins/insomnia-plugin-default-headers/README.md b/plugins/insomnia-plugin-default-headers/README.md new file mode 100644 index 0000000000..b119de8c39 --- /dev/null +++ b/plugins/insomnia-plugin-default-headers/README.md @@ -0,0 +1,24 @@ +# Insomnia Default Headers + +[![Npm Version](https://img.shields.io/npm/v/insomnia-plugin-default-headers.svg)](https://www.npmjs.com/package/insomnia-plugin-default-headers) + +This is a plugin for [Insomnia](https://insomnia.rest) that allows users to set default +headers for requests. + +## Installation + +Install the `insomnia-plugin-default-headers` plugin from Preferences > Plugins. + +## Usage + +Headers can be added by setting a `DEFAULT_HEADERS` environment variable. + +```json +{ + "DEFAULT_HEADERS": { + "Content-Type": "application/json", + "Connection": "close" + } +} +``` + diff --git a/plugins/insomnia-plugin-default-headers/index.js b/plugins/insomnia-plugin-default-headers/index.js new file mode 100644 index 0000000000..073897e3d6 --- /dev/null +++ b/plugins/insomnia-plugin-default-headers/index.js @@ -0,0 +1,3 @@ +module.exports.requestHooks = [ + require('./src/request-hook') +]; diff --git a/plugins/insomnia-plugin-default-headers/package.json b/plugins/insomnia-plugin-default-headers/package.json new file mode 100644 index 0000000000..259c4bd887 --- /dev/null +++ b/plugins/insomnia-plugin-default-headers/package.json @@ -0,0 +1,16 @@ +{ + "name": "insomnia-plugin-default-headers", + "version": "1.0.2", + "author": "Gregory Schier ", + "description": "Various data importers for Insomnia", + "license": "MIT", + "repository": "https://github.com/getinsomnia/insomnia/tree/master/plugins/insomnia-plugin-default-headers", + "bugs": { + "url": "https://github.com/getinsomnia/insomnia" + }, + "main": "index.js", + "insomnia": { + "name": "default-headers", + "description": "Add default headers to requests" + } +} diff --git a/plugins/insomnia-plugin-default-headers/src/request-hook.js b/plugins/insomnia-plugin-default-headers/src/request-hook.js new file mode 100644 index 0000000000..64f7fbcd08 --- /dev/null +++ b/plugins/insomnia-plugin-default-headers/src/request-hook.js @@ -0,0 +1,13 @@ +module.exports = function (context) { + const headers = context.request.getEnvironmentVariable('DEFAULT_HEADERS'); + + if (!headers) { + return; + } + + for (const name of Object.keys(headers)) { + const value = headers[name]; + context.request.setHeader(name, value); + console.log(`[header] Set default header ${name}: ${value}`); + } +}; diff --git a/plugins/insomnia-plugin-file/README.md b/plugins/insomnia-plugin-file/README.md new file mode 100644 index 0000000000..17f7b72f94 --- /dev/null +++ b/plugins/insomnia-plugin-file/README.md @@ -0,0 +1,5 @@ +# Insomnia File Template Tag + +[![Npm Version](https://img.shields.io/npm/v/insomnia-plugin-file.svg)](https://www.npmjs.com/package/insomnia-plugin-file) + +This is a core Insomnia plugin. \ No newline at end of file diff --git a/plugins/insomnia-plugin-file/__tests__/index.test.js b/plugins/insomnia-plugin-file/__tests__/index.test.js new file mode 100644 index 0000000000..f480d70238 --- /dev/null +++ b/plugins/insomnia-plugin-file/__tests__/index.test.js @@ -0,0 +1,28 @@ +const path = require('path'); +const tag = require('..').templateTags[0]; + +function assertTemplate (args, expected) { + return async function () { + const result = await tag.run(null, ...args); + expect(result).toBe(expected); + }; +} + +function assertTemplateFails (args, expected) { + return async function () { + try { + await tag.run(null, ...args); + fail(`Render should have thrown ${expected}`); + } catch (err) { + expect(err.message).toContain(expected); + } + }; +} + +describe('FileExtension', () => { + const filename = path.resolve(__dirname, path.join('./test.txt')); + const escaped = filename.replace(/\\/g, '\\\\'); + it('reads from string', assertTemplate([escaped], 'Hello World!')); + it('fails on missing file', assertTemplateFails(['/foo'], `ENOENT: no such file or directory, open '${path.resolve('/foo')}'`)); + it('fails on no 2nd param', assertTemplateFails([], 'No file selected')); +}); diff --git a/app/templating/extensions/__tests__/test.txt b/plugins/insomnia-plugin-file/__tests__/test.txt similarity index 100% rename from app/templating/extensions/__tests__/test.txt rename to plugins/insomnia-plugin-file/__tests__/test.txt diff --git a/app/templating/extensions/file-extension.js b/plugins/insomnia-plugin-file/index.js similarity index 73% rename from app/templating/extensions/file-extension.js rename to plugins/insomnia-plugin-file/index.js index eef25db0e3..361d2fde37 100644 --- a/app/templating/extensions/file-extension.js +++ b/plugins/insomnia-plugin-file/index.js @@ -1,7 +1,6 @@ -// @flow -import fs from 'fs'; +const fs = require('fs'); -export default { +module.exports.templateTags = [{ name: 'file', displayName: 'File', description: 'read contents from a file', @@ -11,11 +10,11 @@ export default { type: 'file' } ], - run (context: Object, path: string): string { + run (context, path) { if (!path) { throw new Error('No file selected'); } return fs.readFileSync(path, 'utf8'); } -}; +}]; diff --git a/plugins/insomnia-plugin-file/package.json b/plugins/insomnia-plugin-file/package.json new file mode 100644 index 0000000000..abc495452d --- /dev/null +++ b/plugins/insomnia-plugin-file/package.json @@ -0,0 +1,18 @@ +{ + "name": "insomnia-plugin-file", + "version": "1.0.1", + "author": "Gregory Schier ", + "description": "Insomnia file templte tag", + "license": "MIT", + "repository": "https://github.com/getinsomnia/insomnia/tree/master/plugins/insomnia-plugin-file", + "bugs": { + "url": "https://github.com/getinsomnia/insomnia" + }, + "main": "index.js", + "insomnia": { + "name": "file" + }, + "scripts": { + "test": "jest --silent" + } +} diff --git a/plugins/insomnia-plugin-hash/README.md b/plugins/insomnia-plugin-hash/README.md new file mode 100644 index 0000000000..34ab7db23d --- /dev/null +++ b/plugins/insomnia-plugin-hash/README.md @@ -0,0 +1,5 @@ +# Insomnia Hash Template Tag + +[![Npm Version](https://img.shields.io/npm/v/insomnia-plugin-hash.svg)](https://www.npmjs.com/package/insomnia-plugin-hash) + +This is a core Insomnia plugin. \ No newline at end of file diff --git a/app/templating/extensions/__tests__/hash-extension.test.js b/plugins/insomnia-plugin-hash/__tests__/index.test.js similarity index 60% rename from app/templating/extensions/__tests__/hash-extension.test.js rename to plugins/insomnia-plugin-hash/__tests__/index.test.js index 8a0c05a449..9df1099d46 100644 --- a/app/templating/extensions/__tests__/hash-extension.test.js +++ b/plugins/insomnia-plugin-hash/__tests__/index.test.js @@ -1,17 +1,16 @@ -import * as templating from '../../index'; -import {globalBeforeEach} from '../../../__jest__/before-each'; +const tag = require('..').templateTags[0]; -function assertTemplate (txt, expected) { +function assertTemplate (args, expected) { return async function () { - const result = await templating.render(txt); + const result = await tag.run(null, ...args); expect(result).toBe(expected); }; } -function assertTemplateFails (txt, expected) { +function assertTemplateFails (args, expected) { return async function () { try { - await templating.render(txt); + await tag.run(null, ...args); fail(`Render should have thrown ${expected}`); } catch (err) { expect(err.message).toContain(expected); @@ -19,55 +18,54 @@ function assertTemplateFails (txt, expected) { }; } -describe('FileExtension', () => { - beforeEach(globalBeforeEach); +describe('Plugin', () => { // Algorithms it('hashes sha1', assertTemplate( - '{% hash "sha1", "hex", "foo" %}', + ['sha1', 'hex', 'foo'], '0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33' )); it('hashes sha256', assertTemplate( - '{% hash "sha256", "hex", "foo" %}', + ['sha256', 'hex', 'foo'], '2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae' )); it('hashes md5', assertTemplate( - '{% hash "md5", "hex", "foo" %}', + ['md5', 'hex', 'foo'], 'acbd18db4cc2f85cedef654fccc4a4d8' )); it('fails to hash invalid algorithm', assertTemplateFails( - '{% hash "bad", "hex", "foo" %}', + ['bad', 'hex', 'foo'], 'Digest method not supported' )); // Digests it('hashes to latin1', assertTemplate( - '{% hash "md5", "latin1", "foo" %}', + ['md5', 'latin1', 'foo'], '¬½ÛLÂø\\íïeOÌĤØ' )); it('hashes to hex', assertTemplate( - '{% hash "md5", "hex", "foo" %}', + ['md5', 'hex', 'foo'], 'acbd18db4cc2f85cedef654fccc4a4d8' )); it('hashes to base64', assertTemplate( - '{% hash "md5", "base64", "foo" %}', + ['md5', 'base64', 'foo'], 'rL0Y20zC+Fzt72VPzMSk2A==' )); it('fails to hash to invalid', assertTemplateFails( - '{% hash "md5", "bad", "foo" %}', - 'Invalid encoding bad. Choices are hex, latin1, base64' + ['md5', 'bad', 'foo'], + 'Invalid encoding bad. Choices are hex, latin1, base64' )); // Values it('hashes empty string', assertTemplate( - '{% hash "md5", "hex", "" %}', + ['md5', 'hex', ''], 'd41d8cd98f00b204e9800998ecf8427e' )); it('hashes no string', assertTemplate( - '{% hash "md5", "hex" %}', + ['md5', 'hex'], 'd41d8cd98f00b204e9800998ecf8427e' )); it('fails to hash non string', assertTemplateFails( - '{% hash "md5", "hex", true %}', + ['md5', 'hex', true], 'Cannot hash value of type "boolean"' )); }); diff --git a/app/templating/extensions/hash-extension.js b/plugins/insomnia-plugin-hash/index.js similarity index 84% rename from app/templating/extensions/hash-extension.js rename to plugins/insomnia-plugin-hash/index.js index 1b9174eac0..143b9b7be0 100644 --- a/app/templating/extensions/hash-extension.js +++ b/plugins/insomnia-plugin-hash/index.js @@ -1,8 +1,6 @@ -// @flow -import crypto from 'crypto'; -import type {PluginTemplateTag} from './index'; +const crypto = require('crypto'); -export default ({ +module.exports.templateTags = [{ name: 'hash', displayName: 'Hash', description: 'Apply hash to a value', @@ -32,7 +30,7 @@ export default ({ placeholder: 'Value to hash' } ], - run (context: Object, algorithm: string, encoding: string, value: string = ''): string { + run (context, algorithm, encoding, value = '') { if (encoding !== 'hex' && encoding !== 'latin1' && encoding !== 'base64') { throw new Error(`Invalid encoding ${encoding}. Choices are hex, latin1, base64`); } @@ -46,4 +44,4 @@ export default ({ hash.update(value || '', 'utf8'); return hash.digest(encoding); } -}: PluginTemplateTag); +}]; diff --git a/plugins/insomnia-plugin-hash/package.json b/plugins/insomnia-plugin-hash/package.json new file mode 100644 index 0000000000..cf6909b799 --- /dev/null +++ b/plugins/insomnia-plugin-hash/package.json @@ -0,0 +1,19 @@ +{ + "name": "insomnia-plugin-hash", + "version": "1.0.1", + "author": "Gregory Schier ", + "description": "Insomnia hash template tag", + "license": "MIT", + "repository": "https://github.com/getinsomnia/insomnia/tree/master/plugins/insomnia-plugin-hash", + "bugs": { + "url": "https://github.com/getinsomnia/insomnia" + }, + "main": "index.js", + "insomnia": { + "name": "hash", + "core": true + }, + "scripts": { + "test": "jest --silent" + } +} diff --git a/plugins/insomnia-plugin-now/README.md b/plugins/insomnia-plugin-now/README.md new file mode 100644 index 0000000000..c1dcf0d5d2 --- /dev/null +++ b/plugins/insomnia-plugin-now/README.md @@ -0,0 +1,5 @@ +# Insomnia Timestamp Template Tag + +[![Npm Version](https://img.shields.io/npm/v/insomnia-plugin-now.svg)](https://www.npmjs.com/package/insomnia-plugin-now) + +This is a core Insomnia plugin. \ No newline at end of file diff --git a/plugins/insomnia-plugin-now/__tests__/index.test.js b/plugins/insomnia-plugin-now/__tests__/index.test.js new file mode 100644 index 0000000000..5c99c9fb92 --- /dev/null +++ b/plugins/insomnia-plugin-now/__tests__/index.test.js @@ -0,0 +1,38 @@ +const tag = require('..').templateTags[0]; + +function assertTemplate (args, expected) { + return async function () { + const result = await tag.run(null, ...args); + if (expected instanceof RegExp) { + expect(result).toMatch(expected); + } else { + expect(result).toBe(expected); + } + }; +} + +function assertTemplateFails (args, expected) { + return async function () { + try { + await tag.run(null, ...args); + fail(`Render should have thrown ${expected}`); + } catch (err) { + expect(err.message).toContain(expected); + } + }; +} + +const isoRe = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z$/; +const secondsRe = /^\d{10}$/; +const millisRe = /^\d{13}$/; + +describe('NowExtension', () => { + it('renders default ISO', assertTemplate([], isoRe)); + it('renders ISO-8601', assertTemplate(['ISO-8601'], isoRe)); + it('renders seconds', assertTemplate(['seconds'], secondsRe)); + it('renders s', assertTemplate(['s'], secondsRe)); + it('renders unix', assertTemplate(['unix'], secondsRe)); + it('renders millis', assertTemplate(['millis'], millisRe)); + it('renders ms', assertTemplate(['ms'], millisRe)); + it('fails on other', assertTemplateFails(['foo'], 'Invalid date type "foo"')); +}); diff --git a/app/templating/extensions/now-extension.js b/plugins/insomnia-plugin-now/index.js similarity index 75% rename from app/templating/extensions/now-extension.js rename to plugins/insomnia-plugin-now/index.js index 190cdb1943..96ef6de0c4 100644 --- a/app/templating/extensions/now-extension.js +++ b/plugins/insomnia-plugin-now/index.js @@ -1,6 +1,6 @@ -import moment from 'moment'; +const moment = require('moment'); -export default { +module.exports.templateTags = [{ name: 'now', displayName: 'Timestamp', description: 'get the current time', @@ -33,11 +33,11 @@ export default { switch (dateType) { case 'millis': case 'ms': - return now.getTime(); + return now.getTime() + ''; case 'unix': case 'seconds': case 's': - return Math.round(now.getTime() / 1000); + return Math.round(now.getTime() / 1000) + ''; case 'iso-8601': return now.toISOString(); case 'custom': @@ -46,4 +46,13 @@ export default { throw new Error(`Invalid date type "${dateType}"`); } } -}; +}, { + // Old deprecated "timestamp" tag + deprecated: true, + name: 'timestamp', + displayName: 'Timestamp', + description: 'generate timestamp in milliseconds', + run (context) { + return Date.now(); + } +}]; diff --git a/plugins/insomnia-plugin-now/package-lock.json b/plugins/insomnia-plugin-now/package-lock.json new file mode 100644 index 0000000000..b9415f25b7 --- /dev/null +++ b/plugins/insomnia-plugin-now/package-lock.json @@ -0,0 +1,11 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "moment": { + "version": "2.19.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.19.2.tgz", + "integrity": "sha512-Rf6jiHPEfxp9+dlzxPTmRHbvoFXsh2L/U8hOupUMpnuecHQmI6cF6lUbJl3QqKPko1u6ujO+FxtcajLVfLpAtA==" + } + } +} diff --git a/plugins/insomnia-plugin-now/package.json b/plugins/insomnia-plugin-now/package.json new file mode 100644 index 0000000000..e724c9f2d9 --- /dev/null +++ b/plugins/insomnia-plugin-now/package.json @@ -0,0 +1,21 @@ +{ + "name": "insomnia-plugin-now", + "version": "1.0.1", + "author": "Gregory Schier ", + "description": "Insomnia now template tag", + "license": "MIT", + "repository": "https://github.com/getinsomnia/insomnia/tree/master/plugins/insomnia-plugin-now", + "bugs": { + "url": "https://github.com/getinsomnia/insomnia" + }, + "main": "index.js", + "insomnia": { + "name": "now" + }, + "scripts": { + "test": "jest --silent" + }, + "dependencies": { + "moment": "^2.19.2" + } +} diff --git a/plugins/insomnia-plugin-request/README.md b/plugins/insomnia-plugin-request/README.md new file mode 100644 index 0000000000..ac1cce2484 --- /dev/null +++ b/plugins/insomnia-plugin-request/README.md @@ -0,0 +1,5 @@ +# Insomnia Request Template Tag + +[![Npm Version](https://img.shields.io/npm/v/insomnia-plugin-request.svg)](https://www.npmjs.com/package/insomnia-plugin-request) + +This is a core Insomnia plugin. \ No newline at end of file diff --git a/plugins/insomnia-plugin-request/__tests__/index.test.js b/plugins/insomnia-plugin-request/__tests__/index.test.js new file mode 100644 index 0000000000..3abeaf01f1 --- /dev/null +++ b/plugins/insomnia-plugin-request/__tests__/index.test.js @@ -0,0 +1,99 @@ +const {jarFromCookies, cookiesFromJar} = require('insomnia-cookies'); +const tag = require('..').templateTags[0]; + +describe('plugin', () => { + describe('RequestExtension cookie', async () => { + it('should get cookie by name', async () => { + const jar = jarFromCookies([]); + jar.setCookieSync([ + 'foo=bar', + 'path=/', + 'domain=.insomnia.rest', + 'HttpOnly Cache-Control: public, no-cache' + ].join('; '), 'https://insomnia.rest'); + + const cookies = await cookiesFromJar(jar); + const requests = [{_id: 'req_1', parameters: [], url: 'https://insomnia.rest/foo/bar'}]; + const jars = [{_id: 'jar_1', parentId: 'wrk_1', cookies}]; + const context = _getTestContext([{_id: 'wrk_1'}], requests, jars); + const result = await tag.run(context, 'cookie', 'foo'); + + expect(result).toBe('bar'); + }); + }); + + describe('RequestExtension url', async () => { + it('should get url', async () => { + const requests = [{ + _id: 'req_1', + parameters: [{name: 'foo', value: 'bar'}], + url: 'https://insomnia.rest/foo/bar' + }]; + const context = _getTestContext([{_id: 'wrk_1'}], requests); + const result = await tag.run(context, 'url'); + + expect(result).toBe('https://insomnia.rest/foo/bar?foo=bar'); + }); + + it('should get rendered url', async () => { + const requests = [{ + _id: 'req_1', + parameters: [{name: 'foo', value: '{{ foo }}'}], + url: 'https://insomnia.rest/foo/bar' + }]; + const context = _getTestContext([{_id: 'wrk_1'}], requests); + const result = await tag.run(context, 'url'); + + expect(result).toBe('https://insomnia.rest/foo/bar?foo=bar'); + }); + }); + + describe('RequestExtension header', async () => { + it('should get url', async () => { + const requests = [{ + _id: 'req_1', + headers: [{name: 'foo', value: '{{ foo }}'}], + url: 'https://insomnia.rest/foo/bar' + }]; + const context = _getTestContext([{_id: 'wrk_1'}], requests); + const result = await tag.run(context, 'header', 'foo'); + + expect(result).toBe('bar'); + }); + }); +}); + +function _getTestContext (workspaces, requests, jars) { + jars = jars || []; + return { + meta: { + requestId: requests[0]._id, + workspaceId: workspaces[0]._id + }, + util: { + render (str) { + return str.replace(/{{ foo }}/g, 'bar'); + }, + models: { + request: { + getById (id) { + return requests.find(r => r._id === id); + } + }, + workspace: { + getById (id) { + return workspaces.find(w => w._id === id); + } + }, + cookieJar: { + getOrCreateForWorkspace (workspace) { + return jars.find(j => j.parentId === workspace._id) || { + parentId: workspace._id, + cookies: [] + }; + } + } + } + } + }; +} diff --git a/app/templating/extensions/request-extension.js b/plugins/insomnia-plugin-request/index.js similarity index 88% rename from app/templating/extensions/request-extension.js rename to plugins/insomnia-plugin-request/index.js index 47ef200caf..80020c1c11 100644 --- a/app/templating/extensions/request-extension.js +++ b/plugins/insomnia-plugin-request/index.js @@ -1,8 +1,7 @@ -import * as querystring from '../../common/querystring'; -import {prepareUrlForSending} from '../../common/misc'; -import {jarFromCookies} from '../../common/cookies'; +const {buildQueryStringFromParams, joinUrlAndQueryString, smartEncodeUrl} = require('insomnia-url'); +const {jarFromCookies} = require('insomnia-cookies'); -export default { +module.exports.templateTags = [{ name: 'request', displayName: 'Request', description: 'reference value from current request', @@ -61,8 +60,7 @@ export default { const cookieJar = await context.util.models.cookieJar.getOrCreateForWorkspace(workspace); const url = await getRequestUrl(context, request); - const value = await getCookieValue(cookieJar, url, name); - return value; + return getCookieValue(cookieJar, url, name); case 'header': if (!name) { throw new Error('No header specified'); @@ -88,7 +86,7 @@ export default { return null; } -}; +}]; async function getRequestUrl (context, request) { const url = await context.util.render(request.url); @@ -100,10 +98,10 @@ async function getRequestUrl (context, request) { }); } - const qs = querystring.buildFromParams(parameters); - const finalUrl = querystring.joinUrl(url, qs); + const qs = buildQueryStringFromParams(parameters); + const finalUrl = joinUrlAndQueryString(url, qs); - return prepareUrlForSending(finalUrl, request.settingEncodeUrl); + return smartEncodeUrl(finalUrl, request.settingEncodeUrl); } function getCookieValue (cookieJar, url, name) { diff --git a/plugins/insomnia-plugin-request/package.json b/plugins/insomnia-plugin-request/package.json new file mode 100644 index 0000000000..b5000dc987 --- /dev/null +++ b/plugins/insomnia-plugin-request/package.json @@ -0,0 +1,22 @@ +{ + "name": "insomnia-plugin-request", + "version": "1.0.1", + "author": "Gregory Schier ", + "description": "Insomnia request template tag", + "license": "MIT", + "repository": "https://github.com/getinsomnia/insomnia/tree/master/plugins/insomnia-plugin-request", + "bugs": { + "url": "https://github.com/getinsomnia/insomnia" + }, + "main": "index.js", + "insomnia": { + "name": "request" + }, + "scripts": { + "test": "jest --silent" + }, + "dependencies": { + "insomnia-cookies": "^0.0.2", + "insomnia-url": "^0.0.2" + } +} diff --git a/plugins/insomnia-plugin-response/README.md b/plugins/insomnia-plugin-response/README.md new file mode 100644 index 0000000000..67a92901f1 --- /dev/null +++ b/plugins/insomnia-plugin-response/README.md @@ -0,0 +1,5 @@ +# Insomnia Response Template Tag + +[![Npm Version](https://img.shields.io/npm/v/insomnia-plugin-response.svg)](https://www.npmjs.com/package/insomnia-plugin-response) + +This is a core Insomnia plugin. \ No newline at end of file diff --git a/plugins/insomnia-plugin-response/__tests__/index.test.js b/plugins/insomnia-plugin-response/__tests__/index.test.js new file mode 100644 index 0000000000..adf9ca6d8e --- /dev/null +++ b/plugins/insomnia-plugin-response/__tests__/index.test.js @@ -0,0 +1,364 @@ +const tag = require('..').templateTags[0]; + +describe('Response tag', () => { + describe('General', () => { + it('fails on no responses', async () => { + const requests = [{_id: 'req_1', parentId: 'wrk_1'}]; + + const context = _genTestContext(requests); + + try { + await tag.run(context, 'body', 'req_1', '$.foo'); + fail('JSON should have failed'); + } catch (err) { + expect(err.message).toContain('No responses for request'); + } + }); + + it('fails on no request', async () => { + const requests = [{_id: 'req_1', parentId: 'wrk_1'}]; + + const responses = [{ + _id: 'res_1', + parentId: 'req_1', + statusCode: 200, + _body: '{"foo": "bar"}' + }]; + + const context = _genTestContext(requests, responses); + + try { + await tag.run(context, 'body', 'req_test', '$.foo'); + fail('JSON should have failed'); + } catch (err) { + expect(err.message).toContain('Could not find request req_test'); + } + }); + + it('fails on empty filter', async () => { + const requests = [{_id: 'req_1', parentId: 'wrk_1'}]; + + const responses = [{ + _id: 'res_1', + parentId: 'req_1', + statusCode: 200, + _body: '{"foo": "bar"}' + }]; + + const context = _genTestContext(requests, responses); + + try { + await tag.run(context, 'body', 'req_1', ''); + fail('JSON should have failed'); + } catch (err) { + expect(err.message).toContain('No body filter specified'); + } + }); + }); + + describe('JSONPath', () => { + it('basic query', async () => { + const requests = [{_id: 'req_1', parentId: 'wrk_1'}]; + + const responses = [{ + _id: 'res_1', + parentId: 'req_1', + statusCode: 200, + _body: '{"foo": "bar"}' + }]; + + const context = _genTestContext(requests, responses); + const result = await tag.run(context, 'body', 'req_1', '$.foo'); + + expect(result).toBe('bar'); + }); + + it('fails on invalid JSON', async () => { + const requests = [{_id: 'req_1', parentId: 'wrk_1'}]; + + const responses = [{ + _id: 'res_1', + parentId: 'req_1', + statusCode: 200, + _body: '{"foo": "' + }]; + + const context = _genTestContext(requests, responses); + + try { + await tag.run(context, 'body', 'req_1', '$.foo'); + fail('JSON should have failed'); + } catch (err) { + expect(err.message).toContain('Invalid JSON: Unexpected end of JSON input'); + } + }); + + it('fails on invalid query', async () => { + const requests = [{_id: 'req_1', parentId: 'wrk_1'}]; + + const responses = [{ + _id: 'res_1', + parentId: 'req_1', + statusCode: 200, + _body: '{"foo": "bar"}' + }]; + + const context = _genTestContext(requests, responses); + + try { + await tag.run(context, 'body', 'req_1', '$$'); + fail('JSON should have failed'); + } catch (err) { + expect(err.message).toContain('Invalid JSONPath query: $$'); + } + }); + + it('fails on no results', async () => { + const requests = [{_id: 'req_1', parentId: 'wrk_1'}]; + + const responses = [{ + _id: 'res_1', + parentId: 'req_1', + statusCode: 200, + _body: '{"foo": "bar"}' + }]; + + const context = _genTestContext(requests, responses); + + try { + await tag.run(context, 'body', 'req_1', '$.missing'); + fail('JSON should have failed'); + } catch (err) { + expect(err.message).toContain('Returned no results: $.missing'); + } + }); + + it('fails on more than 1 result', async () => { + const requests = [{_id: 'req_1', parentId: 'wrk_1'}]; + + const responses = [{ + _id: 'res_1', + parentId: 'req_1', + statusCode: 200, + _body: '{"array": ["bar", "baz"]}' + }]; + + const context = _genTestContext(requests, responses); + + try { + await tag.run(context, 'body', 'req_1', '$.array.*'); + fail('JSON should have failed to parse'); + } catch (err) { + expect(err.message).toContain('Returned more than one result: $.array.*'); + } + }); + }); + + describe('XPath', async () => { + it('renders basic response "body" query', async () => { + const requests = [{_id: 'req_1', parentId: 'wrk_1'}]; + + const responses = [{ + _id: 'res_1', + parentId: 'req_1', + statusCode: 200, + _body: 'Hello World!' + }]; + + const context = _genTestContext(requests, responses); + const result = await tag.run(context, 'body', 'req_1', '/foo/bar'); + + expect(result).toBe('Hello World!'); + }); + + it('renders basic response "body" attribute query', async () => { + const requests = [{_id: 'req_1', parentId: 'wrk_1'}]; + + const responses = [{ + _id: 'res_1', + parentId: 'req_1', + statusCode: 200, + _body: 'Hello World!' + }]; + + const context = _genTestContext(requests, responses); + const result = await tag.run(context, 'body', 'req_1', '/foo/bar/@hello'); + + expect(result).toBe('World'); + }); + + it('no results on invalid XML', async () => { + const requests = [{_id: 'req_1', parentId: 'wrk_1'}]; + + const responses = [{ + _id: 'res_1', + parentId: 'req_1', + statusCode: 200, + _body: '' + }]; + + const context = _genTestContext(requests, responses); + + try { + await tag.run(context, 'body', 'req_1', '/foo'); + fail('Should have failed'); + } catch (err) { + expect(err.message).toContain('Returned no results: /foo'); + } + }); + + it('fails on invalid query', async () => { + const requests = [{_id: 'req_1', parentId: 'wrk_1'}]; + + const responses = [{ + _id: 'res_1', + parentId: 'req_1', + statusCode: 200, + _body: '' + }]; + + const context = _genTestContext(requests, responses); + + try { + await tag.run(context, 'body', 'req_1', '//'); + fail('Should have failed'); + } catch (err) { + expect(err.message).toContain('Invalid XPath query: //'); + } + }); + + it('fails on no results', async () => { + const requests = [{_id: 'req_1', parentId: 'wrk_1'}]; + + const responses = [{ + _id: 'res_1', + parentId: 'req_1', + statusCode: 200, + _body: '' + }]; + + const context = _genTestContext(requests, responses); + + try { + await tag.run(context, 'body', 'req_1', '/missing'); + fail('Should have failed'); + } catch (err) { + expect(err.message).toContain('Returned no results: /missing'); + } + }); + + it('fails on more than 1 result', async () => { + const requests = [{_id: 'req_1', parentId: 'wrk_1'}]; + + const responses = [{ + _id: 'res_1', + parentId: 'req_1', + statusCode: 200, + _body: 'Hello World!And again!' + }]; + + const context = _genTestContext(requests, responses); + + try { + await tag.run(context, 'body', 'req_1', '/foo/*'); + fail('Should have failed'); + } catch (err) { + expect(err.message).toContain('Returned more than one result: /foo/*'); + } + }); + }); + + describe('ResponseExtension Header', async () => { + it('renders basic response "header"', async () => { + const requests = [{_id: 'req_1', parentId: 'wrk_1'}]; + + const responses = [{ + _id: 'res_1', + parentId: 'req_1', + statusCode: 200, + headers: [ + {name: 'Content-Type', value: 'application/json'}, + {name: 'Content-Length', value: '20'} + ] + }]; + + const context = _genTestContext(requests, responses); + + expect(await tag.run(context, 'header', 'req_1', 'content-type')).toBe('application/json'); + expect(await tag.run(context, 'header', 'req_1', 'Content-Type')).toBe('application/json'); + expect(await tag.run(context, 'header', 'req_1', 'CONTENT-type')).toBe('application/json'); + expect(await tag.run(context, 'header', 'req_1', 'CONTENT-type ')).toBe('application/json'); + }); + + it('no results on missing header', async () => { + const requests = [{_id: 'req_1', parentId: 'wrk_1'}]; + + const responses = [{ + _id: 'res_1', + parentId: 'req_1', + statusCode: 200, + headers: [ + {name: 'Content-Type', value: 'application/json'}, + {name: 'Content-Length', value: '20'} + ] + }]; + + const context = _genTestContext(requests, responses); + + try { + await tag.run(context, 'header', 'req_1', 'missing'); + fail('should have failed'); + } catch (err) { + expect(err.message).toBe('No header with name "missing".\n' + + 'Choices are [\n\t"Content-Type",\n\t"Content-Length"\n]'); + } + }); + }); + + describe('Raw', async () => { + it('renders basic response', async () => { + const requests = [{_id: 'req_1', parentId: 'wrk_1'}]; + + const responses = [{ + _id: 'res_1', + parentId: 'req_1', + statusCode: 200, + _body: 'Hello World!' + }]; + + const context = _genTestContext(requests, responses); + + expect(await tag.run(context, 'raw', 'req_1')).toBe('Hello World!'); + }); + }); +}); + +function _genTestContext (requests, responses) { + requests = requests || []; + responses = responses || []; + const bodies = {}; + for (const res of responses) { + bodies[res._id] = res._body || null; + delete res._body; + } + return { + util: { + models: { + request: { + getById (requestId) { + return requests.find(r => r._id === requestId) || null; + } + }, + response: { + getLatestForRequestId (requestId) { + return responses.find(r => r.parentId === requestId) || null; + }, + getBodyBuffer (response) { + const str = bodies[response._id]; + return str ? Buffer.from(str) : null; + } + } + } + } + }; +} diff --git a/app/templating/extensions/response-extension.js b/plugins/insomnia-plugin-response/index.js similarity index 81% rename from app/templating/extensions/response-extension.js rename to plugins/insomnia-plugin-response/index.js index 286513b8a1..4e49207e2e 100644 --- a/app/templating/extensions/response-extension.js +++ b/plugins/insomnia-plugin-response/index.js @@ -1,11 +1,7 @@ -// @flow -import jq from 'jsonpath'; -import * as xpath from '../../common/xpath'; -import type {ResponseHeader} from '../../models/response'; -import type {PluginTemplateTag, PluginTemplateTagContext} from './index'; -import type {NunjucksParsedTagArg} from '../utils'; +const jq = require('jsonpath'); +const {query: queryXPath} = require('insomnia-xpath'); -export default ({ +module.exports.templateTags = [{ name: 'response', displayName: 'Response', description: 'reference values from other request\'s responses', @@ -26,8 +22,8 @@ export default ({ }, { type: 'string', - hide: (args: Array): boolean => args[0].value === 'raw', - displayName: (args: Array): string => { + hide: args => args[0].value === 'raw', + displayName: args => { switch (args[0].value) { case 'body': return 'Filter (JSONPath or XPath)'; @@ -40,7 +36,9 @@ export default ({ } ], - async run (context: PluginTemplateTagContext, field: string, id: string, filter: string) { + async run (context, field, id, filter) { + filter = filter || ''; + if (!['body', 'header', 'raw'].includes(field)) { throw new Error(`Invalid response field ${field}`); } @@ -88,9 +86,9 @@ export default ({ throw new Error(`Unknown field ${field}`); } } -}: PluginTemplateTag); +}]; -function matchJSONPath (bodyStr: string, query: string): string { +function matchJSONPath (bodyStr, query) { let body; let results; @@ -119,8 +117,8 @@ function matchJSONPath (bodyStr: string, query: string): string { } } -function matchXPath (bodyStr: string, query: string): string { - const results = xpath.query(bodyStr, query); +function matchXPath (bodyStr, query) { + const results = queryXPath(bodyStr, query); if (results.length === 0) { throw new Error(`Returned no results: ${query}`); @@ -131,7 +129,7 @@ function matchXPath (bodyStr: string, query: string): string { return results[0].inner; } -function matchHeader (headers: Array, name: string): string { +function matchHeader (headers, name) { if (!headers.length) { throw new Error(`No headers available`); } @@ -147,3 +145,4 @@ function matchHeader (headers: Array, name: string): string { return header.value; } + diff --git a/plugins/insomnia-plugin-response/package-lock.json b/plugins/insomnia-plugin-response/package-lock.json new file mode 100644 index 0000000000..13b83df0c0 --- /dev/null +++ b/plugins/insomnia-plugin-response/package-lock.json @@ -0,0 +1,220 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "JSONSelect": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/JSONSelect/-/JSONSelect-0.4.0.tgz", + "integrity": "sha1-oI7cxn6z/L6Z7WMIVTRKDPKCu40=" + }, + "cjson": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.2.1.tgz", + "integrity": "sha1-c82KrWXZ4VBfmvF0TTt5wVJ2gqU=" + }, + "colors": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", + "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=" + }, + "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=" + }, + "ebnf-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/ebnf-parser/-/ebnf-parser-0.1.10.tgz", + "integrity": "sha1-zR9rpHfFY4xAyX7ZtXLbW6tdgzE=" + }, + "escodegen": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.21.tgz", + "integrity": "sha1-U9ZSz6EDA4gnlFilJmxf/HCcY8M=", + "requires": { + "esprima": "1.0.4", + "estraverse": "0.0.4", + "source-map": "0.6.1" + }, + "dependencies": { + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" + } + } + }, + "esprima": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" + }, + "estraverse": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-0.0.4.tgz", + "integrity": "sha1-AaCTLf7ldGhKWYr1pnw7+bZCjbI=" + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "jison": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/jison/-/jison-0.4.13.tgz", + "integrity": "sha1-kEFwfWIkE2f1iDRTK58ZwsNvrHg=", + "requires": { + "JSONSelect": "0.4.0", + "cjson": "0.2.1", + "ebnf-parser": "0.1.10", + "escodegen": "0.0.21", + "esprima": "1.0.4", + "jison-lex": "0.2.1", + "lex-parser": "0.1.4", + "nomnom": "1.5.2" + }, + "dependencies": { + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" + } + } + }, + "jison-lex": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/jison-lex/-/jison-lex-0.2.1.tgz", + "integrity": "sha1-rEuBXozOUTLrErXfz+jXB7iETf4=", + "requires": { + "lex-parser": "0.1.4", + "nomnom": "1.5.2" + } + }, + "jsonpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.0.0.tgz", + "integrity": "sha1-Rc2dTE0NaCXZC9fkD4PxGCsT3Qc=", + "requires": { + "esprima": "1.2.2", + "jison": "0.4.13", + "static-eval": "2.0.0", + "underscore": "1.7.0" + } + }, + "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" + } + }, + "lex-parser": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/lex-parser/-/lex-parser-0.1.4.tgz", + "integrity": "sha1-ZMTwJfF/1Tv7RXY/rrFvAVp0dVA=" + }, + "nomnom": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.5.2.tgz", + "integrity": "sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8=", + "requires": { + "colors": "0.5.1", + "underscore": "1.1.7" + }, + "dependencies": { + "underscore": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz", + "integrity": "sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA=" + } + } + }, + "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" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + }, + "static-eval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.0.tgz", + "integrity": "sha512-6flshd3F1Gwm+Ksxq463LtFd1liC77N/PX1FVVc3OzL3hAmo2fwHFbuArkcfi7s9rTNsLEhcRmXGFZhlgy40uw==", + "requires": { + "escodegen": "1.9.0" + }, + "dependencies": { + "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" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "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" + } + }, + "underscore": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + } + } +} diff --git a/plugins/insomnia-plugin-response/package.json b/plugins/insomnia-plugin-response/package.json new file mode 100644 index 0000000000..defc19330a --- /dev/null +++ b/plugins/insomnia-plugin-response/package.json @@ -0,0 +1,22 @@ +{ + "name": "insomnia-plugin-response", + "version": "1.0.1", + "author": "Gregory Schier ", + "description": "Insomnia response template tag", + "license": "MIT", + "repository": "https://github.com/getinsomnia/insomnia/tree/master/plugins/insomnia-plugin-response", + "bugs": { + "url": "https://github.com/getinsomnia/insomnia" + }, + "main": "index.js", + "insomnia": { + "name": "response" + }, + "scripts": { + "test": "jest --silent" + }, + "dependencies": { + "insomnia-xpath": "^0.0.2", + "jsonpath": "^1.0.0" + } +} diff --git a/plugins/insomnia-plugin-uuid/README.md b/plugins/insomnia-plugin-uuid/README.md new file mode 100644 index 0000000000..3e7d2e17bd --- /dev/null +++ b/plugins/insomnia-plugin-uuid/README.md @@ -0,0 +1,5 @@ +# Insomnia UUID Template Tag + +[![Npm Version](https://img.shields.io/npm/v/insomnia-plugin-uuid.svg)](https://www.npmjs.com/package/insomnia-plugin-uuid) + +This is a core Insomnia plugin. \ No newline at end of file diff --git a/plugins/insomnia-plugin-uuid/__tests__/index.test.js b/plugins/insomnia-plugin-uuid/__tests__/index.test.js new file mode 100644 index 0000000000..d0189241c8 --- /dev/null +++ b/plugins/insomnia-plugin-uuid/__tests__/index.test.js @@ -0,0 +1,36 @@ +const tag = require('..').templateTags[0]; + +function assertTemplate (args, expected) { + return async function () { + const result = await tag.run(null, ...args); + if (expected instanceof RegExp) { + expect(result).toMatch(expected); + } else { + expect(result).toBe(expected); + } + }; +} + +function assertTemplateFails (args, expected) { + return async function () { + try { + await tag.run(null, ...args); + fail(`Render should have thrown ${expected}`); + } catch (err) { + expect(err.message).toContain(expected); + } + }; +} + +const UUID_RE = /[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}/; + +describe('UuidExtension', () => { + it('renders default v4', assertTemplate([], UUID_RE)); + it('renders 4', assertTemplate(['4'], UUID_RE)); + it('renders 4 num', assertTemplate([4], UUID_RE)); + it('renders v4', assertTemplate(['v4'], UUID_RE)); + it('renders 1', assertTemplate(['1'], UUID_RE)); + it('renders 1 num', assertTemplate([1], UUID_RE)); + it('renders v1', assertTemplate(['v1'], UUID_RE)); + it('fails on other', assertTemplateFails(['foo'], 'Invalid UUID type "foo"')); +}); diff --git a/app/templating/extensions/uuid-extension.js b/plugins/insomnia-plugin-uuid/index.js similarity index 84% rename from app/templating/extensions/uuid-extension.js rename to plugins/insomnia-plugin-uuid/index.js index 61cbb000c2..a0abf7d5c3 100644 --- a/app/templating/extensions/uuid-extension.js +++ b/plugins/insomnia-plugin-uuid/index.js @@ -1,8 +1,6 @@ -// @flow -import uuid from 'uuid'; -import type {PluginTemplateTag} from './index'; +const uuid = require('uuid'); -export default ({ +module.exports.templateTags = [{ displayName: 'UUID', name: 'uuid', description: 'generate v1 or v4 UUIDs', @@ -32,4 +30,4 @@ export default ({ throw new Error(`Invalid UUID type "${uuidType}"`); } } -}: PluginTemplateTag); +}]; diff --git a/plugins/insomnia-plugin-uuid/package-lock.json b/plugins/insomnia-plugin-uuid/package-lock.json new file mode 100644 index 0000000000..103b537eda --- /dev/null +++ b/plugins/insomnia-plugin-uuid/package-lock.json @@ -0,0 +1,11 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + } + } +} diff --git a/plugins/insomnia-plugin-uuid/package.json b/plugins/insomnia-plugin-uuid/package.json new file mode 100644 index 0000000000..f47af900d4 --- /dev/null +++ b/plugins/insomnia-plugin-uuid/package.json @@ -0,0 +1,21 @@ +{ + "name": "insomnia-plugin-uuid", + "version": "1.0.1", + "author": "Gregory Schier ", + "description": "Insomnia uuid template tag", + "license": "MIT", + "repository": "https://github.com/getinsomnia/insomnia/tree/master/plugins/insomnia-plugin-uuid", + "bugs": { + "url": "https://github.com/getinsomnia/insomnia" + }, + "main": "index.js", + "insomnia": { + "name": "uuid" + }, + "scripts": { + "test": "jest --silent" + }, + "dependencies": { + "uuid": "^3.1.0" + } +} diff --git a/website/.gitignore b/website/.gitignore new file mode 100644 index 0000000000..63af966d2b --- /dev/null +++ b/website/.gitignore @@ -0,0 +1,3 @@ +_speedpack +_hugo +site/static/javascript/build/ diff --git a/website/LICENSE b/website/LICENSE new file mode 100644 index 0000000000..886ab448c9 --- /dev/null +++ b/website/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Insomnia REST Client + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/website/README.md b/website/README.md new file mode 100644 index 0000000000..4715b9c26e --- /dev/null +++ b/website/README.md @@ -0,0 +1,20 @@ +# Insomnia Landing + +This is the source code for [insomnia.rest](https://insomnia.rest), built with +[Hugo Static Website Engine](https://gohugo.io/) and +[Speedpack](https://github.com/gschier/speedpack) to compress static assets on +deploy. + +```shell +# run watch server (production) +npm start + +# run watch server (with drafts) +npm run dev + +# build to _hugo/ +npm run build + +# deploy (need Surge.sh access) +npm run deploy +``` diff --git a/website/package-lock.json b/website/package-lock.json new file mode 100644 index 0000000000..3309a9b1a6 --- /dev/null +++ b/website/package-lock.json @@ -0,0 +1,6999 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" + }, + "acorn-dynamic-import": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", + "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "requires": { + "acorn": "4.0.13" + } + }, + "acorn-to-esprima": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/acorn-to-esprima/-/acorn-to-esprima-2.0.8.tgz", + "integrity": "sha1-AD8MZC65ITL0F9NwjxStqCrfLrE=" + }, + "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" + }, + "dependencies": { + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + } + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "alter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz", + "integrity": "sha1-x1iICGF1cgNKrmJICvJrHU0cs80=", + "requires": { + "stable": "0.1.6" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + }, + "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" + } + }, + "archive-type": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-3.2.0.tgz", + "integrity": "sha1-nNnABpV+vpX62tW9YJiUKoE3N/Y=", + "requires": { + "file-type": "3.9.0" + }, + "dependencies": { + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" + } + } + }, + "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-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" + }, + "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=" + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "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=" + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1.js": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz", + "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==", + "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=", + "requires": { + "util": "0.10.3" + } + }, + "ast-traverse": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ast-traverse/-/ast-traverse-0.1.1.tgz", + "integrity": "sha1-ac8rg4bxnc2hux4F1o/jWdiJfeY=" + }, + "ast-types": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz", + "integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=" + }, + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "requires": { + "lodash": "4.17.4" + }, + "dependencies": { + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + } + } + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" + }, + "async-each-series": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-1.1.0.tgz", + "integrity": "sha1-9C/YFV048hpbjqB8KOBj7RcAsTg=" + }, + "babel": { + "version": "6.3.13", + "resolved": "https://registry.npmjs.org/babel/-/babel-6.3.13.tgz", + "integrity": "sha1-mjZs6TyyT2IHFMFRRCJcCu0345o=" + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-core": { + "version": "6.1.18", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.1.18.tgz", + "integrity": "sha1-l2zdqfwuE1PkFRMbzhRn9+JDhuc=", + "requires": { + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.0", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "5.8.38", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "esutils": "2.0.2", + "home-or-tmp": "1.0.0", + "json5": "0.4.0", + "lodash": "3.10.1", + "minimatch": "2.0.10", + "path-exists": "1.0.0", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "regenerator": "0.8.35", + "shebang-regex": "1.0.0", + "slash": "1.0.0", + "source-map": "0.5.7", + "source-map-support": "0.2.10" + } + }, + "babel-eslint": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-5.0.0.tgz", + "integrity": "sha1-R8/tiIAJD/34Vp+oKtq1dX6lUS8=", + "requires": { + "acorn-to-esprima": "2.0.8", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash.assign": "3.2.0", + "lodash.pick": "3.1.0" + } + }, + "babel-generator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + } + } + }, + "babel-helper-builder-react-jsx": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", + "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "esutils": "2.0.2" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + } + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "requires": { + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + } + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "requires": { + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-loader": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.1.0.tgz", + "integrity": "sha1-HcaY979/OXXDeVqNX8WiRsgghrc=", + "requires": { + "loader-utils": "0.2.17", + "object-assign": "4.1.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-add-module-exports": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.1.2.tgz", + "integrity": "sha1-TTiQAMndPJiLPtIwBOuV4ntC3lk=", + "requires": { + "babel-template": "6.26.0", + "lodash": "3.10.1" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-syntax-class-properties": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=" + }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=" + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" + }, + "babel-plugin-transform-class-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", + "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-plugin-syntax-class-properties": "6.13.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + } + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "requires": { + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", + "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "requires": { + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "requires": { + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "requires": { + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "requires": { + "babel-plugin-syntax-flow": "6.18.0", + "babel-runtime": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "requires": { + "babel-plugin-syntax-object-rest-spread": "6.13.0", + "babel-runtime": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-react-display-name": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", + "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-react-jsx": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", + "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", + "requires": { + "babel-helper-builder-react-jsx": "6.26.0", + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-react-jsx-self": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", + "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-react-jsx-source": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", + "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "requires": { + "regenerator-transform": "0.10.1" + } + }, + "babel-plugin-transform-runtime": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", + "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", + "requires": { + "babel-runtime": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "babel-preset-es2015": { + "version": "6.3.13", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.3.13.tgz", + "integrity": "sha1-l9zn7ykuGMubK3VF2AxZPCjZUX8=", + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0" + } + }, + "babel-preset-flow": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", + "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", + "requires": { + "babel-plugin-transform-flow-strip-types": "6.22.0" + } + }, + "babel-preset-react": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", + "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-plugin-transform-react-display-name": "6.25.0", + "babel-plugin-transform-react-jsx": "6.24.1", + "babel-plugin-transform-react-jsx-self": "6.22.0", + "babel-plugin-transform-react-jsx-source": "6.22.0", + "babel-preset-flow": "6.23.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "requires": { + "babel-core": "6.26.0", + "babel-runtime": "6.26.0", + "core-js": "2.5.1", + "home-or-tmp": "2.0.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" + }, + "dependencies": { + "babel-core": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "requires": { + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.0", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "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" + } + }, + "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" + } + } + } + }, + "babel-runtime": { + "version": "5.8.38", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz", + "integrity": "sha1-HAsC62MxL18If/IEUIJ7QlydTBk=", + "requires": { + "core-js": "1.2.7" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + } + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "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" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + } + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base64-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==" + }, + "beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=" + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" + }, + "bin-build": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-2.2.0.tgz", + "integrity": "sha1-EfjdYfcP/Por3KpbRvXo/t1CIcw=", + "requires": { + "archive-type": "3.2.0", + "decompress": "3.0.0", + "download": "4.4.3", + "exec-series": "1.0.3", + "rimraf": "2.6.2", + "tempfile": "1.1.1", + "url-regex": "3.2.0" + }, + "dependencies": { + "tempfile": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz", + "integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=", + "requires": { + "os-tmpdir": "1.0.2", + "uuid": "2.0.3" + } + }, + "uuid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=" + } + } + }, + "bin-check": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-2.0.0.tgz", + "integrity": "sha1-hvjm9CU4k99g3DFpV/WvAqywWTA=", + "requires": { + "executable": "1.1.0" + } + }, + "bin-version": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-1.0.4.tgz", + "integrity": "sha1-nrSY7m/Xb3q5p8FgQ2+JV5Q1144=", + "requires": { + "find-versions": "1.2.1" + } + }, + "bin-version-check": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-2.1.0.tgz", + "integrity": "sha1-5OXfKQuQaffRETJAMe/BP90RpbA=", + "requires": { + "bin-version": "1.0.4", + "minimist": "1.2.0", + "semver": "4.3.6", + "semver-truncate": "1.1.2" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=" + } + } + }, + "bin-wrapper": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-3.0.2.tgz", + "integrity": "sha1-Z9MwYmLksaXy+I7iNGT2plVneus=", + "requires": { + "bin-check": "2.0.0", + "bin-version-check": "2.1.0", + "download": "4.4.3", + "each-async": "1.1.1", + "lazy-req": "1.1.0", + "os-filter-obj": "1.0.3" + } + }, + "binary-extensions": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=" + }, + "bl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", + "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", + "requires": { + "readable-stream": "2.3.3" + } + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "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" + } + }, + "breakable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz", + "integrity": "sha1-eEp5eRWjjq0nutRWtVcstLuqeME=" + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browserify-aes": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", + "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", + "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=", + "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=", + "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=", + "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=", + "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.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "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==", + "requires": { + "base64-js": "1.2.1", + "ieee754": "1.1.8" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, + "buffer-to-vinyl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz", + "integrity": "sha1-APFfruOreh3aLN5tkSG//dB7ImI=", + "requires": { + "file-type": "3.9.0", + "readable-stream": "2.3.3", + "uuid": "2.0.3", + "vinyl": "1.2.0" + }, + "dependencies": { + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" + }, + "uuid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=" + } + } + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, + "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=" + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "requires": { + "no-case": "2.3.2", + "upper-case": "1.1.3" + } + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "requires": { + "camelcase": "2.1.1", + "map-obj": "1.0.1" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + } + } + }, + "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=" + }, + "caw": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/caw/-/caw-1.2.0.tgz", + "integrity": "sha1-/7Im/n78VHKI3GLuPpcHPCEtEDQ=", + "requires": { + "get-proxy": "1.1.0", + "is-obj": "1.0.1", + "object-assign": "3.0.0", + "tunnel-agent": "0.4.3" + }, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=" + } + } + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "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" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "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" + }, + "dependencies": { + "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" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "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" + } + } + } + }, + "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==", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + }, + "clap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", + "requires": { + "chalk": "1.1.3" + } + }, + "clean-css": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.9.tgz", + "integrity": "sha1-Nc7ornaHpJuYA09w3gDE7dOCYwE=", + "requires": { + "source-map": "0.5.7" + } + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } + }, + "clone": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", + "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=" + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" + }, + "co": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz", + "integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=" + }, + "coa": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", + "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", + "requires": { + "q": "1.5.1" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=" + }, + "commander": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.1.tgz", + "integrity": "sha512-PCNLExLlI5HiPdaJs4pMXwOTHkSCpNQ1QJH9ykZLKtKEyKu3p9HgmH5l97vM8c0IUz6d54l+xEu2GG9yuYrFzA==" + }, + "commoner": { + "version": "0.10.8", + "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.8.tgz", + "integrity": "sha1-NPw2cs0kOT6LtH5wyqApOBH08sU=", + "requires": { + "commander": "2.12.1", + "detective": "4.5.0", + "glob": "5.0.15", + "graceful-fs": "4.1.11", + "iconv-lite": "0.4.19", + "mkdirp": "0.5.1", + "private": "0.1.8", + "q": "1.5.1", + "recast": "0.11.23" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "recast": { + "version": "0.11.23", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", + "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=", + "requires": { + "ast-types": "0.9.6", + "esprima": "3.1.3", + "private": "0.1.8", + "source-map": "0.5.7" + } + } + } + }, + "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" + } + }, + "concurrently": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-3.5.1.tgz", + "integrity": "sha512-689HrwGw8Rbk1xtV9C4dY6TPJAvIYZbRbnKSAtfJ7tHqICFGoZ0PCWYjxfmerRyxBG0o3sbG3pe7N8vqPwIHuQ==", + "requires": { + "chalk": "0.5.1", + "commander": "2.6.0", + "date-fns": "1.29.0", + "lodash": "4.17.4", + "rx": "2.3.24", + "spawn-command": "0.0.2-1", + "supports-color": "3.2.3", + "tree-kill": "1.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz", + "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=" + }, + "ansi-styles": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz", + "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=" + }, + "chalk": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", + "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", + "requires": { + "ansi-styles": "1.1.0", + "escape-string-regexp": "1.0.5", + "has-ansi": "0.1.0", + "strip-ansi": "0.3.0", + "supports-color": "0.2.0" + }, + "dependencies": { + "supports-color": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", + "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=" + } + } + }, + "commander": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz", + "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=" + }, + "has-ansi": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", + "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=", + "requires": { + "ansi-regex": "0.2.1" + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "strip-ansi": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", + "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=", + "requires": { + "ansi-regex": "0.2.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" + } + } + } + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "requires": { + "date-now": "0.1.4" + } + }, + "console-stream": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz", + "integrity": "sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ=" + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" + }, + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=" + }, + "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=" + }, + "create-ecdh": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", + "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "requires": { + "bn.js": "4.11.8", + "elliptic": "6.4.0" + } + }, + "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=", + "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=", + "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=", + "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" + } + }, + "create-react-class": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.2.tgz", + "integrity": "sha1-zx7RXxKq1/FO9fLf4F5sQvke8Co=", + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.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=", + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.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==", + "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" + } + }, + "csso": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", + "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", + "requires": { + "clap": "1.2.3", + "source-map": "0.5.7" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "requires": { + "array-find-index": "1.0.2" + } + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "requires": { + "es5-ext": "0.10.37" + } + }, + "date-fns": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz", + "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==" + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" + }, + "dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decompress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-3.0.0.tgz", + "integrity": "sha1-rx3VDQbjv8QyRh033hGzjA2ZG+0=", + "requires": { + "buffer-to-vinyl": "1.1.0", + "concat-stream": "1.6.0", + "decompress-tar": "3.1.0", + "decompress-tarbz2": "3.1.0", + "decompress-targz": "3.1.0", + "decompress-unzip": "3.4.0", + "stream-combiner2": "1.1.1", + "vinyl-assign": "1.2.1", + "vinyl-fs": "2.4.4" + } + }, + "decompress-tar": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-3.1.0.tgz", + "integrity": "sha1-IXx4n5uURQ76rcXF5TeXj8MzxGY=", + "requires": { + "is-tar": "1.0.0", + "object-assign": "2.1.1", + "strip-dirs": "1.1.1", + "tar-stream": "1.5.5", + "through2": "0.6.5", + "vinyl": "0.4.6" + }, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=" + }, + "object-assign": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", + "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=" + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "requires": { + "clone": "0.2.0", + "clone-stats": "0.0.1" + } + } + } + }, + "decompress-tarbz2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz", + "integrity": "sha1-iyOTVoE1X58YnYclag+L3ZbZZm0=", + "requires": { + "is-bzip2": "1.0.0", + "object-assign": "2.1.1", + "seek-bzip": "1.0.5", + "strip-dirs": "1.1.1", + "tar-stream": "1.5.5", + "through2": "0.6.5", + "vinyl": "0.4.6" + }, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=" + }, + "object-assign": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", + "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=" + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "requires": { + "clone": "0.2.0", + "clone-stats": "0.0.1" + } + } + } + }, + "decompress-targz": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-3.1.0.tgz", + "integrity": "sha1-ssE9+YFmJomRtxXWRH9kLpaW9aA=", + "requires": { + "is-gzip": "1.0.0", + "object-assign": "2.1.1", + "strip-dirs": "1.1.1", + "tar-stream": "1.5.5", + "through2": "0.6.5", + "vinyl": "0.4.6" + }, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=" + }, + "object-assign": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", + "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=" + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "requires": { + "clone": "0.2.0", + "clone-stats": "0.0.1" + } + } + } + }, + "decompress-unzip": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-3.4.0.tgz", + "integrity": "sha1-YUdbQVIGa74/7hL51inRX+ZHjus=", + "requires": { + "is-zip": "1.0.0", + "read-all-stream": "3.1.0", + "stat-mode": "0.2.2", + "strip-dirs": "1.1.1", + "through2": "2.0.3", + "vinyl": "1.2.0", + "yauzl": "2.9.1" + }, + "dependencies": { + "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" + } + } + } + }, + "deep-extend": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, + "defs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/defs/-/defs-1.1.1.tgz", + "integrity": "sha1-siYJ8sehG6ej2xFoBcE5scr/qdI=", + "requires": { + "alter": "0.2.0", + "ast-traverse": "0.1.1", + "breakable": "1.0.0", + "esprima-fb": "15001.1001.0-dev-harmony-fb", + "simple-fmt": "0.1.0", + "simple-is": "0.2.0", + "stringmap": "0.2.2", + "stringset": "0.2.1", + "tryor": "0.1.2", + "yargs": "3.27.0" + }, + "dependencies": { + "esprima-fb": { + "version": "15001.1001.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz", + "integrity": "sha1-Q761fsJujPI3092LM+QlM1d/Jlk=" + } + } + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "requires": { + "repeating": "2.0.1" + } + }, + "detective": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-4.5.0.tgz", + "integrity": "sha1-blqMaybmx6JUsca210kNmOyR7dE=", + "requires": { + "acorn": "4.0.13", + "defined": "1.0.0" + } + }, + "diffie-hellman": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", + "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "requires": { + "bn.js": "4.11.8", + "miller-rabin": "4.0.1", + "randombytes": "2.0.5" + } + }, + "domain-browser": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=" + }, + "download": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/download/-/download-4.4.3.tgz", + "integrity": "sha1-qlX9rTktldS2jowr4D4MKqIbqaw=", + "requires": { + "caw": "1.2.0", + "concat-stream": "1.6.0", + "each-async": "1.1.1", + "filenamify": "1.2.1", + "got": "5.7.1", + "gulp-decompress": "1.2.0", + "gulp-rename": "1.2.2", + "is-url": "1.2.2", + "object-assign": "4.1.1", + "read-all-stream": "3.1.0", + "readable-stream": "2.3.3", + "stream-combiner2": "1.1.1", + "vinyl": "1.2.0", + "vinyl-fs": "2.4.4", + "ware": "1.3.0" + } + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "requires": { + "readable-stream": "2.3.3" + } + }, + "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" + } + }, + "each-async": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz", + "integrity": "sha1-3uUim98KtrogEqOV4bhpq/iBNHM=", + "requires": { + "onetime": "1.1.0", + "set-immediate-shim": "1.0.1" + } + }, + "elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.3", + "hmac-drbg": "1.0.1", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "0.4.19" + } + }, + "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" + } + }, + "enhanced-resolve": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", + "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "requires": { + "graceful-fs": "4.1.11", + "memory-fs": "0.4.1", + "object-assign": "4.1.1", + "tapable": "0.2.8" + } + }, + "errno": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", + "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", + "requires": { + "prr": "0.0.0" + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "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=", + "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=", + "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=", + "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-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.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=", + "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=", + "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=" + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "requires": { + "es6-map": "0.1.5", + "es6-weak-map": "2.0.2", + "esrecurse": "4.2.0", + "estraverse": "4.2.0" + } + }, + "esprima-fb": { + "version": "15001.1.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz", + "integrity": "sha1-MKlHMDxrjV6VW+4rmbHSMyBqaQE=" + }, + "esrecurse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", + "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "requires": { + "estraverse": "4.2.0", + "object-assign": "4.1.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=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.37" + } + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + }, + "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==", + "requires": { + "md5.js": "1.3.4", + "safe-buffer": "5.1.1" + } + }, + "exec-buffer": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz", + "integrity": "sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA==", + "requires": { + "execa": "0.7.0", + "p-finally": "1.0.0", + "pify": "3.0.0", + "rimraf": "2.6.2", + "tempfile": "2.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "exec-series": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/exec-series/-/exec-series-1.0.3.tgz", + "integrity": "sha1-bSV6m+rEgqhyx3g7yGFYOfx3FDo=", + "requires": { + "async-each-series": "1.1.0", + "object-assign": "4.1.1" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + } + }, + "executable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/executable/-/executable-1.1.0.tgz", + "integrity": "sha1-h3mA6REvM5EGbaNyZd562ENKtNk=", + "requires": { + "meow": "3.7.0" + } + }, + "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" + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + }, + "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" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + } + } + }, + "fancy-log": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz", + "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=", + "requires": { + "chalk": "1.1.3", + "time-stamp": "1.1.0" + } + }, + "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-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=" + }, + "fbjs": { + "version": "0.8.16", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", + "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.3.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.17" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + } + } + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "requires": { + "pend": "1.2.0" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "requires": { + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.1" + } + }, + "file-size": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-size/-/file-size-1.0.0.tgz", + "integrity": "sha1-MzgmfV0ga79g9N9gwZ1+04E6Rlc=" + }, + "file-type": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", + "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU=" + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" + }, + "filename-reserved-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz", + "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=" + }, + "filenamify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz", + "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=", + "requires": { + "filename-reserved-regex": "1.0.0", + "strip-outer": "1.0.0", + "trim-repeated": "1.0.0" + } + }, + "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" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "2.0.1" + } + } + } + }, + "find-versions": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-1.2.1.tgz", + "integrity": "sha1-y96fEuOFdaCvG+G5osXV/Y8Ya2I=", + "requires": { + "array-uniq": "1.0.3", + "get-stdin": "4.0.1", + "meow": "3.7.0", + "semver-regex": "1.0.0" + } + }, + "first-chunk-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", + "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=" + }, + "flow": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/flow/-/flow-0.2.3.tgz", + "integrity": "sha1-+Npl76JJEn7Jk3aiiJZXKpeV0a8=" + }, + "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" + } + }, + "foreachasync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", + "integrity": "sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY=" + }, + "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==", + "optional": true, + "requires": { + "nan": "2.8.0", + "node-pre-gyp": "0.6.39" + }, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "bundled": true, + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.2.9" + } + }, + "asn1": { + "version": "0.2.3", + "bundled": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "requires": { + "inherits": "2.0.3" + } + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "requires": { + "mime-db": "1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.39", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "1.0.2", + "hawk": "3.1.3", + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "bundled": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + } + } + }, + "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=" + }, + "get-proxy": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-1.1.0.tgz", + "integrity": "sha1-iUhUSRvFkbDxR9euVw9cZ4tyVus=", + "requires": { + "rc": "1.2.2" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "gifsicle": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/gifsicle/-/gifsicle-3.0.4.tgz", + "integrity": "sha1-9Fy17RAWW2ZdySng6TKLbIId+js=", + "requires": { + "bin-build": "2.2.0", + "bin-wrapper": "3.0.2", + "logalot": "2.1.0" + } + }, + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "2.0.10", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + }, + "dependencies": { + "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" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "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" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + } + }, + "glob-stream": { + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz", + "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=", + "requires": { + "extend": "3.0.1", + "glob": "5.0.15", + "glob-parent": "3.1.0", + "micromatch": "2.3.11", + "ordered-read-streams": "0.3.0", + "through2": "0.6.5", + "to-absolute-glob": "0.1.1", + "unique-stream": "2.2.1" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "requires": { + "array-union": "1.0.2", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "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.4.0", + "path-is-absolute": "1.0.1" + } + }, + "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" + } + } + } + }, + "glogg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", + "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", + "requires": { + "sparkles": "1.0.0" + } + }, + "got": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-5.7.1.tgz", + "integrity": "sha1-X4FjWmHkplifGAVp6k44FoClHzU=", + "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.1.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" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" + }, + "gulp-decompress": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gulp-decompress/-/gulp-decompress-1.2.0.tgz", + "integrity": "sha1-jutlpeAV+O2FMsr+KEVJYGJvDcc=", + "requires": { + "archive-type": "3.2.0", + "decompress": "3.0.0", + "gulp-util": "3.0.8", + "readable-stream": "2.3.3" + } + }, + "gulp-rename": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz", + "integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc=" + }, + "gulp-sourcemaps": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz", + "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=", + "requires": { + "convert-source-map": "1.5.1", + "graceful-fs": "4.1.11", + "strip-bom": "2.0.0", + "through2": "2.0.3", + "vinyl": "1.2.0" + }, + "dependencies": { + "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" + } + } + } + }, + "gulp-util": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", + "requires": { + "array-differ": "1.0.0", + "array-uniq": "1.0.3", + "beeper": "1.1.1", + "chalk": "1.1.3", + "dateformat": "2.2.0", + "fancy-log": "1.3.0", + "gulplog": "1.0.0", + "has-gulplog": "0.1.0", + "lodash._reescape": "3.0.0", + "lodash._reevaluate": "3.0.0", + "lodash._reinterpolate": "3.0.0", + "lodash.template": "3.6.2", + "minimist": "1.2.0", + "multipipe": "0.1.2", + "object-assign": "3.0.0", + "replace-ext": "0.0.1", + "through2": "2.0.3", + "vinyl": "0.5.3" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=" + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" + }, + "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" + } + }, + "vinyl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "requires": { + "clone": "1.0.3", + "clone-stats": "0.0.1", + "replace-ext": "0.0.1" + } + } + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "requires": { + "glogg": "1.0.0" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "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=" + }, + "has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "requires": { + "sparkles": "1.0.0" + } + }, + "hash-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", + "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "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==", + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" + }, + "hkdf": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/hkdf/-/hkdf-0.0.2.tgz", + "integrity": "sha1-L422Ff3vhwIB+C0rYZym00fQZH4=" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "1.1.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "home-or-tmp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-1.0.0.tgz", + "integrity": "sha1-S58eQIAMPlDGwn94FnavzOcfOYU=", + "requires": { + "os-tmpdir": "1.0.2", + "user-home": "1.1.1" + } + }, + "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==" + }, + "html-comment-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", + "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=" + }, + "html-minifier": { + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.6.tgz", + "integrity": "sha512-88FjtKrlak2XjczhxrBomgzV4jmGzM3UnHRBScRkJcmcRum0kb+IwhVAETJ8AVp7j0p3xugjSaw9L+RmI5/QOA==", + "requires": { + "camel-case": "3.0.0", + "clean-css": "4.1.9", + "commander": "2.11.0", + "he": "1.1.1", + "ncname": "1.0.0", + "param-case": "2.1.1", + "relateurl": "0.2.7", + "uglify-js": "3.1.10" + }, + "dependencies": { + "commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "uglify-js": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.1.10.tgz", + "integrity": "sha512-0ul3BWx79We0mIPM1l72oqpMtWL0TVMnKZZY6FaHPy3tDzCZGXeFxw5N1ZvtkmQsLI+ECR/tUQyIYbyHUcuvEw==", + "requires": { + "commander": "2.11.0", + "source-map": "0.6.1" + } + } + } + }, + "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=" + }, + "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==" + }, + "ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" + }, + "imagemin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-5.3.1.tgz", + "integrity": "sha1-8Zwu7h5xumxlWMUV+fyWaAGJptQ=", + "requires": { + "file-type": "4.4.0", + "globby": "6.1.0", + "make-dir": "1.1.0", + "p-pipe": "1.2.0", + "pify": "2.3.0", + "replace-ext": "1.0.0" + } + }, + "imagemin-gifsicle": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/imagemin-gifsicle/-/imagemin-gifsicle-5.2.0.tgz", + "integrity": "sha512-K01m5QuPK+0en8oVhiOOAicF7KjrHlCZxS++mfLI2mV/Ksfq/Y9nCXCWDz6jRv13wwlqe5T7hXT+ji2DnLc2yQ==", + "requires": { + "exec-buffer": "3.2.0", + "gifsicle": "3.0.4", + "is-gif": "1.0.0" + } + }, + "imagemin-jpegtran": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/imagemin-jpegtran/-/imagemin-jpegtran-5.0.2.tgz", + "integrity": "sha1-5ogiY7j3kW/duABkDPddLpcNKtY=", + "requires": { + "exec-buffer": "3.2.0", + "is-jpg": "1.0.0", + "jpegtran-bin": "3.2.0" + } + }, + "imagemin-mozjpeg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/imagemin-mozjpeg/-/imagemin-mozjpeg-6.0.0.tgz", + "integrity": "sha1-caMqRXqhsmEXpo7u8tmxkMLlCR4=", + "requires": { + "exec-buffer": "3.2.0", + "is-jpg": "1.0.0", + "mozjpeg": "4.1.1" + } + }, + "imagemin-optipng": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-5.2.1.tgz", + "integrity": "sha1-0i2kEsCfX/AKQzmWC5ioix2+hpU=", + "requires": { + "exec-buffer": "3.2.0", + "is-png": "1.1.0", + "optipng-bin": "3.1.4" + } + }, + "imagemin-pngquant": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/imagemin-pngquant/-/imagemin-pngquant-5.0.1.tgz", + "integrity": "sha1-2KMp2lU6+iJrEc5i3r4Lfje0OeY=", + "requires": { + "exec-buffer": "3.2.0", + "is-png": "1.1.0", + "pngquant-bin": "3.1.1" + } + }, + "imagemin-svgo": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-5.2.4.tgz", + "integrity": "sha512-1bNZdlWVKdfxzu0xDD1pWjwK/G8FLcztUh/GWaI7xLgCFrn0j35o+uBbY7VcdY2AmKgiLYTXhrzrbkQk6xj8aA==", + "requires": { + "is-svg": "2.1.0", + "svgo": "0.7.2" + } + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "requires": { + "repeating": "2.0.1" + } + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "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==" + }, + "interpret": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz", + "integrity": "sha1-ggzdWIuGj/sZGoCVBtbJyPISsbA=" + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "requires": { + "loose-envify": "1.3.1" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "ip-regex": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz", + "integrity": "sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0=" + }, + "is-absolute": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz", + "integrity": "sha1-hHSREZ/MtftDYhfMc39/qtUPYD8=", + "requires": { + "is-relative": "0.1.3" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "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=", + "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=", + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-bzip2": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-bzip2/-/is-bzip2-1.0.0.tgz", + "integrity": "sha1-XuWOqlounIDiFAe+3yOuWsCRs/w=" + }, + "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-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": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "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=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-gif": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-gif/-/is-gif-1.0.0.tgz", + "integrity": "sha1-ptKumIkwB7/6l6HYwB1jIFgyCX4=" + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-gzip": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz", + "integrity": "sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM=" + }, + "is-jpg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-1.0.0.tgz", + "integrity": "sha1-KVnBfnNDDbOCZNp1uQ3VTy2G2hw=" + }, + "is-natural-number": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-2.1.1.tgz", + "integrity": "sha1-fUxXKDd+84bD4ZSpkRv1fG3DNec=" + }, + "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=" + }, + "is-png": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-png/-/is-png-1.1.0.tgz", + "integrity": "sha1-1XSxK/J1wDUEVVcLDltXqwYgd84=" + }, + "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-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" + }, + "is-relative": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz", + "integrity": "sha1-kF/uiuhvRbPsYUvDwVyGnfCHboI=" + }, + "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=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-svg": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "requires": { + "html-comment-regex": "1.1.1" + } + }, + "is-tar": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-tar/-/is-tar-1.0.0.tgz", + "integrity": "sha1-L2suF5LB9bs2UZrKqdZcDSb+hT0=" + }, + "is-url": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz", + "integrity": "sha1-SYkFpZO/R8wtnn9zg3K792lsfyY=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-valid-glob": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz", + "integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=" + }, + "is-zip": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-zip/-/is-zip-1.0.0.tgz", + "integrity": "sha1-R7Co/004p2QxzP2ZqOFaTIa6IyU=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "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" + } + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "1.7.3", + "whatwg-fetch": "2.0.3" + } + }, + "jpegtran-bin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jpegtran-bin/-/jpegtran-bin-3.2.0.tgz", + "integrity": "sha1-9g7PSumZwL2tLp+83ytvCYHnops=", + "requires": { + "bin-build": "2.2.0", + "bin-wrapper": "3.0.2", + "logalot": "2.1.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "js-yaml": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", + "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", + "requires": { + "argparse": "1.0.9", + "esprima": "2.7.3" + }, + "dependencies": { + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=" + } + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + }, + "json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==" + }, + "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": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "requires": { + "jsonify": "0.0.0" + } + }, + "json5": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz", + "integrity": "sha1-BUNS5MTIDIbAkjh31EneF2pzLI0=" + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsonminify": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/jsonminify/-/jsonminify-0.4.1.tgz", + "integrity": "sha1-gF2vuzk5UYjO6atYLIHvlZ1+cQw=" + }, + "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" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + }, + "lazy-req": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/lazy-req/-/lazy-req-1.1.0.tgz", + "integrity": "sha1-va6+rTD42CQDnODOFJ1Nqge6H6w=" + }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "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=", + "requires": { + "invert-kv": "1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "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" + } + }, + "loader-runner": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", + "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=" + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "requires": { + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.1" + }, + "dependencies": { + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" + }, + "lodash._baseassign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", + "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", + "requires": { + "lodash._basecopy": "3.0.1", + "lodash.keys": "3.1.2" + } + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=" + }, + "lodash._baseflatten": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-3.1.4.tgz", + "integrity": "sha1-B3D/gBMa9uNPO1EXlqe6UhTmX/c=", + "requires": { + "lodash.isarguments": "3.1.0", + "lodash.isarray": "3.0.4" + } + }, + "lodash._basefor": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.3.tgz", + "integrity": "sha1-dVC06SGO8J+tJDQ7YSAhx5tMIMI=" + }, + "lodash._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=" + }, + "lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=" + }, + "lodash._bindcallback": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", + "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=" + }, + "lodash._createassigner": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", + "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", + "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=" + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=" + }, + "lodash._pickbyarray": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/lodash._pickbyarray/-/lodash._pickbyarray-3.0.2.tgz", + "integrity": "sha1-H4mNlgfrVgsOFnOEt3x8bRCKpMU=" + }, + "lodash._pickbycallback": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._pickbycallback/-/lodash._pickbycallback-3.0.0.tgz", + "integrity": "sha1-/2G5oBens699MObFPeKK+hm4dQo=", + "requires": { + "lodash._basefor": "3.0.3", + "lodash.keysin": "3.0.8" + } + }, + "lodash._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=" + }, + "lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=" + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + }, + "lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=" + }, + "lodash.assign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", + "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", + "requires": { + "lodash._baseassign": "3.2.0", + "lodash._createassigner": "3.1.1", + "lodash.keys": "3.1.2" + } + }, + "lodash.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "requires": { + "lodash._root": "3.0.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=" + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "requires": { + "lodash._getnative": "3.9.1", + "lodash.isarguments": "3.1.0", + "lodash.isarray": "3.0.4" + } + }, + "lodash.keysin": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-3.0.8.tgz", + "integrity": "sha1-IsRJPrvtsUJ5YqVLRFssinZ/tH8=", + "requires": { + "lodash.isarguments": "3.1.0", + "lodash.isarray": "3.0.4" + } + }, + "lodash.pick": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-3.1.0.tgz", + "integrity": "sha1-8lKoVbIEa2G805BLJvdr0u/GVVA=", + "requires": { + "lodash._baseflatten": "3.1.4", + "lodash._bindcallback": "3.0.1", + "lodash._pickbyarray": "3.0.2", + "lodash._pickbycallback": "3.0.0", + "lodash.restparam": "3.6.1" + } + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=" + }, + "lodash.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", + "requires": { + "lodash._basecopy": "3.0.1", + "lodash._basetostring": "3.0.1", + "lodash._basevalues": "3.0.0", + "lodash._isiterateecall": "3.0.9", + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0", + "lodash.keys": "3.1.2", + "lodash.restparam": "3.6.1", + "lodash.templatesettings": "3.1.1" + } + }, + "lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "requires": { + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0" + } + }, + "logalot": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz", + "integrity": "sha1-X46MkNME7fElMJUaVVSruMXj9VI=", + "requires": { + "figures": "1.7.0", + "squeak": "1.3.0" + } + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "requires": { + "js-tokens": "3.0.2" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "requires": { + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" + }, + "lpad-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz", + "integrity": "sha1-IfYArBwwlcPG5JfuZyce4ISB/p4=", + "requires": { + "get-stdin": "4.0.1", + "indent-string": "2.1.0", + "longest": "1.0.1", + "meow": "3.7.0" + } + }, + "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==", + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "make-dir": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", + "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", + "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=" + } + } + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + }, + "md5.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.3" + }, + "dependencies": { + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + } + } + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "requires": { + "mimic-fn": "1.1.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "requires": { + "errno": "0.1.4", + "readable-stream": "2.3.3" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "requires": { + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "merge-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", + "requires": { + "readable-stream": "2.3.3" + } + }, + "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" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "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" + } + } + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0" + } + }, + "mime": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.5.0.tgz", + "integrity": "sha512-v/jMDoK/qKptnTuC3YUNbIj8uUYvTCIHzVu9BHldKSWja48wusAtfjlcBlqnFrqClu3yf69ScDxBPrIyFnF51g==" + }, + "mimic-fn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" + }, + "minimalistic-assert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=" + }, + "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=" + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "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" + } + }, + "mozjpeg": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/mozjpeg/-/mozjpeg-4.1.1.tgz", + "integrity": "sha1-hZAwsk9omlPbm0DwFg2JGVuI/VA=", + "requires": { + "bin-build": "2.2.0", + "bin-wrapper": "3.0.2", + "logalot": "2.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multipipe": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "requires": { + "duplexer2": "0.0.2" + }, + "dependencies": { + "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" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "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=" + } + } + }, + "nan": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", + "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", + "optional": true + }, + "ncname": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz", + "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=", + "requires": { + "xml-char-classes": "1.0.0" + } + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "1.1.4" + } + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "0.1.12", + "is-stream": "1.1.0" + } + }, + "node-forge": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz", + "integrity": "sha1-naYR6giYL0uUIGs760zJZl8gwwA=" + }, + "node-libs-browser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "requires": { + "assert": "1.4.1", + "browserify-zlib": "0.2.0", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.12.0", + "domain-browser": "1.1.7", + "events": "1.1.1", + "https-browserify": "1.0.0", + "os-browserify": "0.3.0", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "2.3.3", + "stream-browserify": "2.0.1", + "stream-http": "2.7.2", + "string_decoder": "1.0.3", + "timers-browserify": "2.0.4", + "tty-browserify": "0.0.0", + "url": "0.11.0", + "util": "0.10.3", + "vm-browserify": "0.0.4" + }, + "dependencies": { + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "requires": { + "base64-js": "1.2.1", + "ieee754": "1.1.8", + "isarray": "1.0.0" + } + } + } + }, + "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=" + }, + "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==", + "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-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "2.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "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" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=" + }, + "optipng-bin": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/optipng-bin/-/optipng-bin-3.1.4.tgz", + "integrity": "sha1-ldNPLEiHBPb9cGBr/qDGWfHZXYQ=", + "requires": { + "bin-build": "2.2.0", + "bin-wrapper": "3.0.2", + "logalot": "2.1.0" + } + }, + "ordered-read-streams": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz", + "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=", + "requires": { + "is-stream": "1.1.0", + "readable-stream": "2.3.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "os-filter-obj": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-1.0.3.tgz", + "integrity": "sha1-WRUzDZDs7VV9LZOKMcbdIU2cY60=" + }, + "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=", + "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=" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=" + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "1.1.0" + } + }, + "p-pipe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz", + "integrity": "sha1-SxoROZoRUgpneQ7loMHViB1r7+k=" + }, + "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==" + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "requires": { + "no-case": "2.3.2" + } + }, + "parse-asn1": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", + "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "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-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" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "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" + } + } + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "1.3.1" + } + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz", + "integrity": "sha1-1aiZjrce83p0w06w2eum6HjuoIE=" + }, + "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-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "pbkdf2": { + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", + "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", + "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" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "2.0.4" + } + }, + "pngquant-bin": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pngquant-bin/-/pngquant-bin-3.1.1.tgz", + "integrity": "sha1-0STZinWpSH9AwWQLTb/Lsr1aH9E=", + "requires": { + "bin-build": "2.2.0", + "bin-wrapper": "3.0.2", + "logalot": "2.1.0" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" + }, + "pretty-data": { + "version": "0.40.0", + "resolved": "https://registry.npmjs.org/pretty-data/-/pretty-data-0.40.0.tgz", + "integrity": "sha1-Vyqo6iNGdGerlLa1Jmpv2cj93XI=" + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "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=" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "2.0.6" + } + }, + "prop-types": { + "version": "15.6.0", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", + "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1" + } + }, + "prr": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", + "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "public-encrypt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", + "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "requires": { + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "parse-asn1": "5.1.0", + "randombytes": "2.0.5" + } + }, + "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=" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "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==", + "requires": { + "randombytes": "2.0.5", + "safe-buffer": "5.1.1" + } + }, + "rc": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz", + "integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=", + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "react": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz", + "integrity": "sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=", + "requires": { + "create-react-class": "15.6.2", + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.6.0" + } + }, + "react-dom": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.2.tgz", + "integrity": "sha1-Qc+t9pO3V/rycIRDodH9WgK+9zA=", + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.6.0" + } + }, + "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=", + "requires": { + "pinkie-promise": "2.0.1", + "readable-stream": "2.3.3" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "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=", + "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" + } + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "requires": { + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.3", + "set-immediate-shim": "1.0.1" + }, + "dependencies": { + "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" + } + } + } + }, + "recast": { + "version": "0.10.24", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.24.tgz", + "integrity": "sha1-7DR4EjIqyJWuGxLjBrZ/CE8CJ3o=", + "requires": { + "ast-types": "0.8.5", + "esprima-fb": "15001.1.0-dev-harmony-fb", + "private": "0.1.8", + "source-map": "0.4.4" + }, + "dependencies": { + "ast-types": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.5.tgz", + "integrity": "sha1-WhJzMMxeyXrFMpLj3PGhSptugD8=" + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "requires": { + "indent-string": "2.1.0", + "strip-indent": "1.0.1" + } + }, + "regenerate": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", + "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==" + }, + "regenerator": { + "version": "0.8.35", + "resolved": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.35.tgz", + "integrity": "sha1-0LyuslGlCQG0FqfGvPUhXSbGgds=", + "requires": { + "commoner": "0.10.8", + "defs": "1.1.1", + "esprima-fb": "15001.1.0-dev-harmony-fb", + "private": "0.1.8", + "recast": "0.10.24", + "through": "2.3.8" + } + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==" + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" + }, + "dependencies": { + "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=", + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + } + } + }, + "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" + } + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "requires": { + "regenerate": "1.3.3", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "requires": { + "jsesc": "0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + }, + "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=", + "requires": { + "is-finite": "1.0.2" + } + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "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=" + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "requires": { + "glob": "7.1.2" + }, + "dependencies": { + "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.4.0", + "path-is-absolute": "1.0.1" + } + }, + "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" + } + } + } + }, + "ripemd160": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", + "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "requires": { + "hash-base": "2.0.2", + "inherits": "2.0.3" + } + }, + "rx": { + "version": "2.3.24", + "resolved": "https://registry.npmjs.org/rx/-/rx-2.3.24.tgz", + "integrity": "sha1-FPlQpCF9fjXapxu8vljv9o6ksrc=" + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "seek-bzip": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", + "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", + "requires": { + "commander": "2.8.1" + }, + "dependencies": { + "commander": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", + "requires": { + "graceful-readlink": "1.0.1" + } + } + } + }, + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" + }, + "semver-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz", + "integrity": "sha1-kqSWkGX5xwxpR1PVUkj8aPj2Usk=" + }, + "semver-truncate": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz", + "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=", + "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=" + }, + "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=" + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "sha.js": { + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", + "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "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=" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "simple-fmt": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz", + "integrity": "sha1-GRv1ZqWeZTBILLJatTtKjchcOms=" + }, + "simple-is": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/simple-is/-/simple-is-0.2.0.tgz", + "integrity": "sha1-Krt1qt453rXMgVzhDmGRFkhQuvA=" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "source-list-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-support": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.2.10.tgz", + "integrity": "sha1-6lo5AKHByyUJagrozFwrSxDe09w=", + "requires": { + "source-map": "0.1.32" + }, + "dependencies": { + "source-map": { + "version": "0.1.32", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz", + "integrity": "sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY=", + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "sparkles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", + "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=" + }, + "spawn-command": { + "version": "0.0.2-1", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", + "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=" + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "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=" + }, + "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=" + }, + "speedpack": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/speedpack/-/speedpack-0.2.0.tgz", + "integrity": "sha512-7vaQgzZjERrlT9KirRRXtiBnuGQzeBeXsMBVziJUW8oKFM5X0tAsHExSAP0w9odaHX5NtcwQH/2TFxFAA9Jcew==", + "requires": { + "commander": "2.12.1", + "csso": "2.3.2", + "file-size": "1.0.0", + "html-minifier": "3.5.6", + "imagemin": "5.3.1", + "imagemin-gifsicle": "5.2.0", + "imagemin-jpegtran": "5.0.2", + "imagemin-mozjpeg": "6.0.0", + "imagemin-optipng": "5.2.1", + "imagemin-pngquant": "5.0.1", + "imagemin-svgo": "5.2.4", + "jsonminify": "0.4.1", + "mime": "1.5.0", + "mkdirp": "0.5.1", + "pretty-data": "0.40.0", + "progress": "1.1.8", + "uglify-js": "2.8.29", + "walk": "2.3.9" + }, + "dependencies": { + "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" + } + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "squeak": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz", + "integrity": "sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=", + "requires": { + "chalk": "1.1.3", + "console-stream": "0.1.1", + "lpad-align": "1.1.2" + } + }, + "srp-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/srp-js/-/srp-js-0.2.0.tgz", + "integrity": "sha1-G40Jb0RvDW6iiULzUBSKmNpeemk=", + "requires": { + "buffer": "5.0.8", + "jsbn": "0.1.1" + } + }, + "stable": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", + "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=" + }, + "stat-mode": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz", + "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=" + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + }, + "stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "requires": { + "duplexer2": "0.1.4", + "readable-stream": "2.3.3" + } + }, + "stream-http": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", + "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", + "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=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "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=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "stringmap": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz", + "integrity": "sha1-VWwTeyWPlCuHdvWy71gqoGnX0bE=" + }, + "stringset": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/stringset/-/stringset-0.2.1.tgz", + "integrity": "sha1-7yWcTjSTRDd/zRyRPdLoSMnAQrU=" + }, + "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=", + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-bom-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz", + "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=", + "requires": { + "first-chunk-stream": "1.0.0", + "strip-bom": "2.0.0" + } + }, + "strip-dirs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-1.1.1.tgz", + "integrity": "sha1-lgu9EoeETzl1pFWKoQOoJV4kVqA=", + "requires": { + "chalk": "1.1.3", + "get-stdin": "4.0.1", + "is-absolute": "0.1.7", + "is-natural-number": "2.1.1", + "minimist": "1.2.0", + "sum-up": "1.0.3" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "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=" + }, + "strip-outer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.0.tgz", + "integrity": "sha1-qsC6YNLpDF1PJ1/Yhp/ZotMQ/7g=", + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "sum-up": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sum-up/-/sum-up-1.0.3.tgz", + "integrity": "sha1-HGYfZnBX9jvLeHWqFDi8FiUlFW4=", + "requires": { + "chalk": "1.1.3" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "svgo": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", + "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", + "requires": { + "coa": "1.0.4", + "colors": "1.1.2", + "csso": "2.3.2", + "js-yaml": "3.7.0", + "mkdirp": "0.5.1", + "sax": "1.2.4", + "whet.extend": "0.9.9" + } + }, + "tapable": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", + "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=" + }, + "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==", + "requires": { + "bl": "1.2.1", + "end-of-stream": "1.4.0", + "readable-stream": "2.3.3", + "xtend": "4.0.1" + } + }, + "temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=" + }, + "tempfile": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz", + "integrity": "sha1-awRGhWqbERTRhW/8vlCczLCXcmU=", + "requires": { + "temp-dir": "1.0.0", + "uuid": "3.1.0" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "requires": { + "readable-stream": "1.0.34", + "xtend": "4.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "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" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "through2-filter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz", + "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", + "requires": { + "through2": "2.0.3", + "xtend": "4.0.1" + }, + "dependencies": { + "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" + } + } + } + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" + }, + "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=" + }, + "timers-browserify": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", + "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", + "requires": { + "setimmediate": "1.0.5" + } + }, + "to-absolute-glob": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz", + "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=", + "requires": { + "extend-shallow": "2.0.1" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + }, + "tree-kill": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz", + "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==" + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" + }, + "trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + }, + "tryor": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/tryor/-/tryor-0.1.2.tgz", + "integrity": "sha1-gUXkynyv9ArN48z5Rui4u3W0Fys=" + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "ua-parser-js": { + "version": "0.7.17", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", + "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==" + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "optional": true + }, + "uglifyjs-webpack-plugin": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", + "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "requires": { + "source-map": "0.5.7", + "uglify-js": "2.8.29", + "webpack-sources": "1.0.2" + } + }, + "unique-stream": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz", + "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", + "requires": { + "json-stable-stringify": "1.0.1", + "through2-filter": "2.0.0" + } + }, + "unzip-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", + "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=" + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "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=" + } + } + }, + "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=", + "requires": { + "prepend-http": "1.0.4" + } + }, + "url-regex": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/url-regex/-/url-regex-3.2.0.tgz", + "integrity": "sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=", + "requires": { + "ip-regex": "1.0.3" + } + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "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=" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + }, + "vali-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", + "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=" + }, + "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=", + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "requires": { + "clone": "1.0.3", + "clone-stats": "0.0.1", + "replace-ext": "0.0.1" + }, + "dependencies": { + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" + } + } + }, + "vinyl-assign": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/vinyl-assign/-/vinyl-assign-1.2.1.tgz", + "integrity": "sha1-TRmIkbVRWRHXcajNnFSApGoHSkU=", + "requires": { + "object-assign": "4.1.1", + "readable-stream": "2.3.3" + } + }, + "vinyl-fs": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz", + "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=", + "requires": { + "duplexify": "3.5.1", + "glob-stream": "5.3.5", + "graceful-fs": "4.1.11", + "gulp-sourcemaps": "1.6.0", + "is-valid-glob": "0.3.0", + "lazystream": "1.0.0", + "lodash.isequal": "4.5.0", + "merge-stream": "1.0.1", + "mkdirp": "0.5.1", + "object-assign": "4.1.1", + "readable-stream": "2.3.3", + "strip-bom": "2.0.0", + "strip-bom-stream": "1.0.0", + "through2": "2.0.3", + "through2-filter": "2.0.0", + "vali-date": "1.0.0", + "vinyl": "1.2.0" + }, + "dependencies": { + "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" + } + } + } + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "requires": { + "indexof": "0.0.1" + } + }, + "walk": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.9.tgz", + "integrity": "sha1-MbTbZnjyrgHDnqn7hyWpAx5Vins=", + "requires": { + "foreachasync": "3.0.0" + } + }, + "ware": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ware/-/ware-1.3.0.tgz", + "integrity": "sha1-0bFPOdLiy0q4xAmPdW/ksWTkc9Q=", + "requires": { + "wrap-fn": "0.1.5" + } + }, + "watchpack": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", + "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", + "requires": { + "async": "2.6.0", + "chokidar": "1.7.0", + "graceful-fs": "4.1.11" + } + }, + "webpack": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.8.1.tgz", + "integrity": "sha512-5ZXLWWsMqHKFr5y0N3Eo5IIisxeEeRAajNq4mELb/WELOR7srdbQk2N5XiyNy2A/AgvlR3AmeBCZJW8lHrolbw==", + "requires": { + "acorn": "5.2.1", + "acorn-dynamic-import": "2.0.2", + "ajv": "5.5.0", + "ajv-keywords": "2.1.1", + "async": "2.6.0", + "enhanced-resolve": "3.4.1", + "escope": "3.6.0", + "interpret": "1.0.4", + "json-loader": "0.5.7", + "json5": "0.5.1", + "loader-runner": "2.3.0", + "loader-utils": "1.1.0", + "memory-fs": "0.4.1", + "mkdirp": "0.5.1", + "node-libs-browser": "2.1.0", + "source-map": "0.5.7", + "supports-color": "4.5.0", + "tapable": "0.2.8", + "uglifyjs-webpack-plugin": "0.4.6", + "watchpack": "1.4.0", + "webpack-sources": "1.0.2", + "yargs": "8.0.2" + }, + "dependencies": { + "acorn": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.2.1.tgz", + "integrity": "sha512-jG0u7c4Ly+3QkkW18V+NRDN+4bWHdln30NL1ZL2AvFZZmQe/BfopYCtghCKKVBUSetZ4QKcyA0pY6/4Gw8Pv8w==" + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "2.0.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "requires": { + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1" + } + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "2.3.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + } + } + } + }, + "webpack-sources": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.2.tgz", + "integrity": "sha512-Y7UddMCv6dGjy81nBv6nuQeFFIt5aalHm7uyDsAsW86nZwfOVPGRr3XMjEQLaT+WKo8rlzhC9qtbJvYKLtAwaw==", + "requires": { + "source-list-map": "2.0.0", + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "whatwg-fetch": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", + "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" + }, + "whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=" + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=" + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "wrap-fn": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/wrap-fn/-/wrap-fn-0.1.5.tgz", + "integrity": "sha1-8htuQQFv9KfjFyDbxjoJAWvfmEU=", + "requires": { + "co": "3.1.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xml-char-classes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz", + "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=" + }, + "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=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "3.27.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.27.0.tgz", + "integrity": "sha1-ISBUaTFuk5Ex1Z8toMbX+YIh6kA=", + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "os-locale": "1.4.0", + "window-size": "0.1.4", + "y18n": "3.2.1" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "requires": { + "camelcase": "4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + } + } + }, + "yauzl": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.9.1.tgz", + "integrity": "sha1-qBmB6nCleUYTOIPwKcWCGok1mn8=", + "requires": { + "buffer-crc32": "0.2.13", + "fd-slicer": "1.0.1" + } + } + } +} diff --git a/website/package.json b/website/package.json new file mode 100644 index 0000000000..44d694da53 --- /dev/null +++ b/website/package.json @@ -0,0 +1,66 @@ +{ + "name": "insomnia-website", + "private": true, + "version": "1.0.0", + "description": "Website for https://insomnia.rest", + "author": "Gregory Schier ", + "licence": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/getinsomnia/insomnia.git" + }, + "homepage": "https://github.com/getinsomnia/insomnia/website#readme", + "scripts": { + "bootstrap": "npm install", + "clean": "rm -rf _hugo", + "build:changelog": "rm -rf ./site/content/changelog-json && cp -r ./site/content/changelog ./site/content/changelog-json", + "build:generate": "npm run build:changelog && hugo --source site --destination $PWD/_hugo", + "build:pack": "speedpack _hugo --output _speedpack", + "build:app": "NODE_ENV=production webpack --config webpack.config.babel.js", + "build": "npm run build:clean && npm run build:app && npm run build:generate && npm run build:pack", + "dev:app": "NODE_ENV=development webpack --config webpack.config.babel.js --watch", + "dev:hugo": "hugo --source site serve --buildDrafts --buildFuture --bind 0.0.0.0", + "dev": "npm run build:changelog && concurrently --kill-others \"npm run dev:hugo\" \"npm run dev:app\"", + "start": "npm run build:changelog && hugo --source site serve --bind 0.0.0.0", + "test": "node --version" + }, + "devDependencies": { + "babel": "6.3.13", + "babel-core": "6.1.18", + "babel-eslint": "5.0.0", + "babel-loader": "6.1.0", + "babel-plugin-add-module-exports": "0.1.2", + "babel-plugin-transform-class-properties": "^6.19.0", + "babel-plugin-transform-object-rest-spread": "^6.20.2", + "babel-plugin-transform-regenerator": "^6.16.1", + "babel-plugin-transform-runtime": "^6.15.0", + "babel-preset-es2015": "6.3.13", + "babel-preset-react": "^6.24.1", + "concurrently": "^3.1.0", + "flow": "^0.2.3", + "json-loader": "^0.5.7", + "speedpack": "^0.2.0", + "webpack": "^3.5.1" + }, + "dependencies": { + "hkdf": "0.0.2", + "node-forge": "^0.7.1", + "react": "^15.4.1", + "react-dom": "^15.4.1", + "srp-js": "^0.2.0", + "whatwg-fetch": "^2.0.1" + }, + "babel": { + "presets": [ + "es2015", + "react" + ], + "plugins": [ + "transform-object-rest-spread", + "transform-class-properties", + "add-module-exports", + "transform-regenerator", + "transform-runtime" + ] + } +} diff --git a/website/site/config.yaml b/website/site/config.yaml new file mode 100644 index 0000000000..790c826494 --- /dev/null +++ b/website/site/config.yaml @@ -0,0 +1,126 @@ +--- +baseurl: "https://insomnia.rest/" +languageCode: "en-us" +copyright: "Floating Keyboard Software, Victoria BC, Canada" +title: "Insomnia REST Client" +theme: "hugo-insomnia-theme" +publishdir: "_hugo" +disqusShortname: "insomnia-rest" +googleAnalytics: "UA-9837747-12" +permalinks: + blog: /blog/:slug +menu: + main: + - Name: "Pricing" + Identifier: "pricing" + URL: "/pricing/" + Weight: 2 + - Name: "Docs" + Identifier: "docs" + URL: "https://support.insomnia.rest" + Weight: 1 + - Name: "Blog" + Identifier: "blog" + URL: "/blog/" + Weight: 2 + - Name: "Download" + Identifier: "download" + URL: "/download/" + Weight: 3 + - Name: "Account" + Identifier: "account" + Pre: "button" + URL: "/app/account/" + Weight: 10 + - Name: "Sign Up" + Identifier: "signup" + Pre: "button" + URL: "/app/signup/" + Weight: 10 + - Name: "Download" + Identifier: "download" + URL: "/download/" + Weight: 100 + footer: + - Name: Contact + Identifier: support + URL: /support/ + weight: 1 + - Name: Open Source + Identifier: opensource + URL: https://github.com/getinsomnia + weight: 4 + - Name: Blog + Identifier: blog + URL: /blog/ + weight: 5 + - Name: Transparency + Identifier: transparency + URL: /transparency/ + weight: 6 + - Name: Changelog + Identifier: changelog + URL: /changelog/ + weight: 7 + - Name: Teams + Identifier: teams + URL: /teams/ + weight: 8 + - Name: Plus + Identifier: plus + URL: /plus/ + weight: 9 + - Name: Terms + Identifier: terms + URL: /terms/ + weight: 100 + - Name: Code of Conduct + Identifier: coc + URL: /code-of-conduct/ + weight: 101 + docs: + - Name: "" + Identifier: "welcome" + Weight: 0 + - Name: "Getting Started" + Identifier: "starting" + Weight: 1 + - Name: "Help Topics" + Identifier: "topics" + Weight: 2 + - Name: "Other" + Identifier: "other" + Weight: 3 +author: + name: "Gregory Schier" + image: "me.jpg" +taxonomies: + tag: "tags" + category: "categories" + series: "series" +params: + copyrightURL: "https://floatingkeyboard.com" + repo: "https://github.com/getinsomnia/website" + docsCategories: + - "welcome" + - "starting" + - "topics" + stylesheets: + - "main.css" + scripts: + - "build/main.min.js" + email: "support@insomnia.rest" + pageNotFoundTitle: "Sorry, that page doesn't exist" + shortName: "Insomnia" + bio: "Independent software developer" + location: "Victoria BC, Canada" + description: "A powerful REST API Client with cookie management, environment variables, code generation, and authentication for Mac, Window, and Linux" + twitter: "GetInsomnia" + googlePlus: "InsomniaRest" + keepReadingStr: "Read More" +pygmentsCodeFences: true +pygmentsStyle: "monokai" +pygmentsUseClasses: true +metaDataFormat: "yaml" +blackfriday: + fractions: false diff --git a/website/site/content/activated.html b/website/site/content/activated.html new file mode 100644 index 0000000000..d04c6e26e6 --- /dev/null +++ b/website/site/content/activated.html @@ -0,0 +1,16 @@ +--- +title: Email Address Verified +slug: activated +subTitle: Thank you for verifying your email address +--- + + + +Party Parrot diff --git a/website/site/content/app/account.html b/website/site/content/app/account.html new file mode 100644 index 0000000000..e8fe26cfa9 --- /dev/null +++ b/website/site/content/app/account.html @@ -0,0 +1,8 @@ +--- +slug: account +title: Welcome to Insomnia +subtitle: Manage your Insomnia account +noRobots: true +--- + +
diff --git a/website/site/content/app/change-email.html b/website/site/content/app/change-email.html new file mode 100644 index 0000000000..6e9f497371 --- /dev/null +++ b/website/site/content/app/change-email.html @@ -0,0 +1,8 @@ +--- +title: Update Email Address +subtitle: Your communication link with Insomnia +slug: change-email +noRobots: true +--- + +
diff --git a/website/site/content/app/change-password.html b/website/site/content/app/change-password.html new file mode 100644 index 0000000000..68ffff9899 --- /dev/null +++ b/website/site/content/app/change-password.html @@ -0,0 +1,8 @@ +--- +title: Update Password +subtitle: Your safe and secret key to Insomnia +slug: change-password +noRobots: true +--- + +
diff --git a/website/site/content/app/login.html b/website/site/content/app/login.html new file mode 100644 index 0000000000..9ecc9d4a02 --- /dev/null +++ b/website/site/content/app/login.html @@ -0,0 +1,8 @@ +--- +title: Log In +subtitle: Access your account 😀 +slug: login +noRobots: true +--- + +
diff --git a/website/site/content/app/logout.html b/website/site/content/app/logout.html new file mode 100644 index 0000000000..6730eec19b --- /dev/null +++ b/website/site/content/app/logout.html @@ -0,0 +1,10 @@ +--- +title: Good Bye +subtitle: You are now logged out +slug: logout +noRobots: true +--- + +Homer Simpson receding into a bush diff --git a/website/site/content/app/signup.html b/website/site/content/app/signup.html new file mode 100644 index 0000000000..d542dc6927 --- /dev/null +++ b/website/site/content/app/signup.html @@ -0,0 +1,8 @@ +--- +title: Sign Up +subtitle: Access data sync and other features 🌥 +slug: signup +noRobots: true +--- + +
diff --git a/website/site/content/app/subscribe.html b/website/site/content/app/subscribe.html new file mode 100644 index 0000000000..253b9e9c95 --- /dev/null +++ b/website/site/content/app/subscribe.html @@ -0,0 +1,10 @@ +--- +title: Subscribe to Plan +subtitle: Visa, MasterCard, or American Express +slug: subscribe +noRobots: true +--- + +
+ + diff --git a/website/site/content/app/teams.html b/website/site/content/app/teams.html new file mode 100644 index 0000000000..04d9e1fb78 --- /dev/null +++ b/website/site/content/app/teams.html @@ -0,0 +1,8 @@ +--- +title: Manage Teams +subtitle: Collaborate within Insomnia +slug: teams +noRobots: true +--- + +
diff --git a/website/site/content/blog/chrome-discontinuing-apps.md b/website/site/content/blog/chrome-discontinuing-apps.md new file mode 100644 index 0000000000..2a13ef9f7e --- /dev/null +++ b/website/site/content/blog/chrome-discontinuing-apps.md @@ -0,0 +1,37 @@ +--- +date: 2016-08-19T22:01:22-07:00 +title: "Google to Discontinue Chrome Apps" +slug: "google-discontinuing-chrome-apps" +tags: ["announcement"] +--- + +**Don't worry!** +The Chrome version of Insomnia will be available until 2017, but you should upgrade to the +[standalone version (3.0)](/download) as soon as possible. + + + +

+Download Version 3.0 (Standalone) +

+ +Google [announced today](http://blog.chromium.org/2016/08/from-chrome-apps-to-web.html) that they +will be phasing out Chrome Apps by mid-2017. This means that the Chrome version (2.0) of Insomnia +will become unavailable. + +> We will be removing support for packaged and hosted apps from Chrome on Windows, Mac, and +> Linux over the next two years. + +To make sure that you are unaffected by this change, [upgrade](/download) to the +standalone version (3.0) today which is supported on Mac, Windows, and Linux platforms. After +installation, export your data from 2.0 and import it into 3.0. Then, carry on with your work +and enjoy the new features like +[cookie management](/documentation/cookie-management), +[global environments](/documentation/environment-variables), and +[code snippet generation](/documentation/code-snippets). + +If you have any questions, email [support@insomnia.rest](mailto:support@insomnia.rest) or reach out +on Twitter [@GetInsomnia](https://twitter.com/GetInsomnia). + + + diff --git a/website/site/content/blog/chrome-rest-client-alternative.md b/website/site/content/blog/chrome-rest-client-alternative.md new file mode 100644 index 0000000000..42d6d2d651 --- /dev/null +++ b/website/site/content/blog/chrome-rest-client-alternative.md @@ -0,0 +1,56 @@ +--- +date: 2016-08-20T13:45:27-07:00 +title: "Chrome REST Client Alternatives" +slug: "chrome-rest-client-alternatives" +tags: ["resource", "info"] +--- + +Yesterday, [Google announced](http://blog.chromium.org/2016/08/from-chrome-apps-to-web.html) that +it would be discontinuing Chrome Apps in mid-2017. This means that popular Chrome-based REST clients like +[Insomnia (2.0)](https://chrome.google.com/webstore/detail/insomnia-rest-client/gmodihnfibbjdecbanmpmbmeffnmloel?hl=en), +[Postman](https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en), +[Advanced REST Client](https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo), and +[DHC](https://chrome.google.com/webstore/detail/dhc-rest-client/aejoelaoggembcahagimdiliamlcdmfm) will +become unavailable. + + + +Luckily, there are many non-Chrome alternatives to choose from so you can quickly get on with your +work. Here are some of the most popular alternatives. + + +## Insomnia 3.0 (Mac, Windows, and Linux) + +[Insomnia](/download) (what you're looking at), is a well-designed cross-platform REST client. +It's free, easy to use, and offers advanced features like cookie management, global environments, +and code snippet generation. + +

+Download Version 3.0 (Standalone) +

+ + +## Postman Desktop (Mac and Windows) + +[Postman](http://getpostman.com/) is probably the most popular REST client. It offers advanced +features like automated API testing, team collaboration (paid), and even documentation generation. +It's vast feature list makes it a bit harder to learn than other clients, but it's very powerful +once you get up and running. + +_Update Aug 22, 2016: Postman now has a +[blog post](http://blog.getpostman.com/2016/08/23/using-the-postman-chrome-app-implications-from-the-recent-google-announcement/) +on the Chrome App shutdown as well._ + + +## Paw (Mac) $ + +[Paw](https://luckymarmot.com/paw) is a fully native and well-designed desktop app for Mac. It +offers many of the same features as Postman, and is easy to use due to the teams' focus on design. +Paw comes in at a $50 (USD) price tag but offers a 30 day free trial as well as a 30% discount for students. + + +## HTTPie (Command Line) + +[HTTPie](https://github.com/jkbrzt/httpie) is a very intuitive command line tool that makes +interacting with HTTP APIs a joy. If you aren't looking for a visual application, I definitely +recommend checking it out. diff --git a/website/site/content/blog/electron-is-a-dream.md b/website/site/content/blog/electron-is-a-dream.md new file mode 100644 index 0000000000..b25b161159 --- /dev/null +++ b/website/site/content/blog/electron-is-a-dream.md @@ -0,0 +1,171 @@ +--- +date: 2016-12-09 +title: Electron is a Web Developer's Dream +tags: ["electron", "software"] +--- + +[Electron](http://electron.atom.io/) is a framework for building cross-platform +desktop apps in Javascript, HTML, and CSS. The folks at GitHub somehow +managed to cram the [Node.js](https://nodejs.org) runtime into the +[Chromium](https://www.chromium.org/) web browser, letting developers combine +the flexibility of HTML and CSS with the ever expanding ecosystem of +over 380,000 Node modules. + + + +What an amazing time to be alive! 🙌 + +I've been using Electron for almost six months now, and am loving it. As an +independent developer with a background in web, Electron provides an extremely +productive environment to build and ship a cross-platform desktop app. + +Let me explain... + +## One Browser to Support + +The most significant benefit of Electron, from a web developer's perspective, is +that it provides a consistent and modern runtime. No more worrying if the new +HTML5 form validation features will work in Safari or IE. If it works in Chrome, +you can use it. + +_This is not really a feature of Electron, but more of a side-effect gained by +constraining yourself to it. You could easily write a website that only works in +Chrome and get the same effect. With this in mind, let's move on to the more +tangible advantages._ + +## Node.js Modules and ES6 Syntax + +The Electron runtime includes the latest version of Node.js and Chromium. +This means you can use the fancy new ES6 features without being at the mercy of +complex build tools like [Webpack](https://webpack.github.io/). + +Here's a basic cross-platform example of how to use Electron/Node/ES6 to write a file +to the user's desktop. I've also nested the JavaScript inside of an HTML page to +demonstrate the combined Node and HTML environment. + +```html + + + Electron File Demo + + + + + +``` + +Try doing that in a web browser 😛 + +## CSS Grid and Variables + +[CSS Grid](https://css-tricks.com/snippets/css/complete-guide-grid/) is a new +grid-based layout system for CSS. It lets you define grid regions, specify constraints, +and easily change the entire layout with a media query and a few lines of CSS. Grid is +designed to make single page app (SPA) layouts easier to manage, so it fits perfectly +with the desktop app use case of Electron. + +Grid is still an experimental feature, but can be enabled in Electron by setting a +Chromium flag on launch. And, as soon as fully supported by Chromium, it will be +fully supported by Electron. + +```js +// Enable experimental features to get Grid +const {app} = require('electron'); +app.commandLine.appendSwitch( + 'enable-experimental-web-platform-features' +); +``` + +_Note: Grid is still **very buggy**. However, for complex layouts, the extra work of +dealing with bugs far outweighs the endless pain of implementing the same layout with +existing CSS features (yes, even flexbox. I've tried)._ + +Once enabling the flag, you can make your first grid. Here is simplified example +taken from Insomnia that uses both Grid and Variables. + +```css +:root { + --brand-color: #7568be; +} + +.container{ + grid-template-columns: 12rem 0.5fr 0.5fr; + grid-template-rows: 4rem 1fr; + grid-template-areas: "sidebar header header" + "sidebar col1 col2" +} +.header { + background: var(--brand-color); + grid-area: header; +} +.col1 { grid-area: col1; } +.col2 { grid-area: col2; } +.sidebar { grid-area: sidebar; } +``` + +Even though the above example was simplified for demonstration, it doesn't take much +more to end up with a fully-responsive layout like the one you see here. + +![Insomnia Grid](/images/blog/insomnia-grid.png) + +## Desktop Features + +There are a lot of awesome [Electron APIs](http://electron.atom.io/docs/api/) that +can be used to do things that aren't yet possible inside a web browser. Here are +just a few examples: + +- [Record the user's screen](http://electron.atom.io/docs/api/desktop-capturer/) +- [Define global keyboard shortcuts](http://electron.atom.io/docs/api/accelerator/) +- [Add an icon to the notification tray](http://electron.atom.io/docs/api/tray/) + +You can also bundle native modules with Electron apps, so the possibilities are +endless. One of the most common pairings I've noticed is using Electron with +[SQLite](https://sqlite.org/). + +## First-Class Testing Tools + +Electron maintains two tools awesome tools that make it easier to write and maintain +high quality apps. + +**[Spectron](http://electron.atom.io/spectron/)** is a framework for running interactive +test suites, which is useful for automating user flows and interactions. + +**[Devtron](http://electron.atom.io/devtron/)** is a DevTools extension that provides +useful insight about your app such ash displaying the _require_ graph, active event listeners, +and accessibility issues (amazing!). + +![Electron Devtron Accessibility](/images/blog/devtron.png) + +Many other tools have been built from the community as well. My favourite tool right now +is [electron-builder](https://github.com/electron-userland/electron-builder), which handles +the ugly process of building, packaging, signing, and deploying cross-platform apps. + +## Closing Thoughts + +This post has covered all of my favourite things about Electron, but those things come at +a high cost. Since every Electron app is essentially a Chromium web browser running your +JavaScript code, even the most basic applications have a **base size of 150MB +(~60MB zipped) and consume 100MB of RAM**. + +

+You may want to think twice before choosing Electron to build that slick new weather widget +of yours 🙊 +

+ +**Think of Electron as a monster truck**. It's powerful, strong, and very durable, +but you wouldn't use it to take your daughter to violin lessons. + +![Electron as a Monster Truck](https://media.giphy.com/media/Lv6v0fAcPDfnW/giphy.gif) + +...or would you? diff --git a/website/site/content/blog/first-year.md b/website/site/content/blog/first-year.md new file mode 100644 index 0000000000..4db7595d79 --- /dev/null +++ b/website/site/content/blog/first-year.md @@ -0,0 +1,28 @@ +--- +date: 2017-07-02 +title: A Year of Insomnia +slug: one-year-update +draft: true +series: ["transparency"] +tags: ["company", "progress"] +--- + +It's now been **one full year** since quitting my job to pursue Insomnia full-time. + +## Notable Stats + +- Open source'd the app +- $7,000 revenue from 152 customers +- 100,000 app downloads +- 500,000 app launches +- 400,000 website visits +- 4,000 stars on [GitHub](https://github.com/getinsomnia/insomnia) + +## News Coverage + +- [Indie Hackers Interview](https://www.indiehackers.com/businesses/insomnia) +- [Electron Home Page](https://electron.atom.io/) +- [Smashing Magazine Tweet](https://twitter.com/smashingmag/status/872165992708927488) +- [CSS Tricks Tweet](https://twitter.com/real_css_tricks/status/779357247184908288) +- [Dave Cheney Tweet](https://twitter.com/davecheney/status/820937289370980352) +- [Hacker News Front Page 3 times](https://news.ycombinator.com/from?site=insomnia.rest) diff --git a/website/site/content/blog/go-srp.md b/website/site/content/blog/go-srp.md new file mode 100644 index 0000000000..5ca2fe22b1 --- /dev/null +++ b/website/site/content/blog/go-srp.md @@ -0,0 +1,16 @@ +--- +date: 2016-11-16T17:04:48-08:00 +title: "Secure Remote Passwords for Go" +tags: ["golang", "open source"] +--- + +Insomnia's cloud sync feature makes use of the +[Secure Remote Passwords](https://en.wikipedia.org/wiki/Secure_Remote_Password_protocol) +protocol to help protect the user's credentials during authentication. The folks at +Mozilla maintain a great library called +[`node-srp`](https://github.com/mozilla/node-srp) but nothing as good existed for Go. So, +I spent a few hours to port it. + +

+View go-srp on GitHub +

diff --git a/website/site/content/blog/graphql.md b/website/site/content/blog/graphql.md new file mode 100644 index 0000000000..2a151951bb --- /dev/null +++ b/website/site/content/blog/graphql.md @@ -0,0 +1,28 @@ +--- +date: 2017-08-09 +title: Introducing GraphQL Support! +slug: introducing-graphql +tags: ["feature"] +--- + +Starting in version [5.7.0](/changelog/5.7.0/), you can now interact with a +[GraphQL](http://graphql.org/) server just the same as any other HTTP request inside +Insomnia 🤗! + +[![GraphQL Screenshot](/images/blog/graphql.png)](/images/blog/graphql.png) + +Along with defining and sending queries, the GraphQL integration also provides the +following benefits: + +- Autocomplete for field names, variables, and types + - _Schema is fetched automatically by sending an introspection query to the same URL_ +- Linting with friendly error messages +- Vertical split view for editing GraphQL variables +- Integration with all existing Insomnia features + +**Special Thanks: 🍻**
+I'd like to give a huge thanks to the brilliant folks responsible for developing the +[Codemirror GraphQL plugin](https://github.com/graphql/codemirror-graphql), which powers +linting, error messages, autocomplete, and syntax highlighting. Without it, this feature +would have taken A LOT more work. + diff --git a/website/site/content/blog/insomnia-3.2.0-beta.md b/website/site/content/blog/insomnia-3.2.0-beta.md new file mode 100644 index 0000000000..39e0c3efda --- /dev/null +++ b/website/site/content/blog/insomnia-3.2.0-beta.md @@ -0,0 +1,45 @@ +--- +date: 2016-08-15T10:17:00-07:00 +title: "Cookie Management, Global Environments, and Code Generation" +slug: "insomnia-3.2.0-beta-update" +tags: ["update"] +--- + +Only a week has gone by since the last update, but a lot has changed. This release introduces three +brand new features – cookie management, global environment variables, and code snippet generation! + + + +## Cookie Management + +The ability to manage cookies has been the most requested feature (by far) of the beta, so I'm +pleased to announce that you can now do it! + +![Insomnia REST Client Cookie Management](/images/blog/cookies.png) + +Easily view and manage cookies in a simple yet powerful interface. Cookies are automatically stored +and sent with every request, just as you would expect. cookies.png There is a new button at the top +of the sidebar to open the cookie manager. You can also now view cookies sent back in a response by +clicking on the cookies tab. + +## Global Environments + +The previous version of Insomnia already had the ability to define environment variables, but it +was at the folder level. Now you can define environments globally (workspace level) and even +create sub-environments that you can quickly switch between. environments.png You can access the +environment manager by clicking the new dropdown at the top of the sidebar. + +![Insomnia REST Client Global Environments](/images/blog/environments.png) + +## Code Snippet Generation + +You can now automatically generate code snippets for over thirty different languages and libraries, +including NodeJS, Go, Swift, Python, Java, and C. Access it by clicking the dropdown next to the +request in the sidebar. code.png + +![Insomnia REST Client Code Snippet Generation](/images/blog/code.png) + +## Wrap Up + +A lot has changed in this latest release, so be sure to reply to this email with your +questions/comments/complaints. And, as always, thanks for being part of the beta! diff --git a/website/site/content/blog/insomnia-3.4.0.md b/website/site/content/blog/insomnia-3.4.0.md new file mode 100644 index 0000000000..4105a23ae1 --- /dev/null +++ b/website/site/content/blog/insomnia-3.4.0.md @@ -0,0 +1,93 @@ +--- +date: 2016-09-13T11:41:49-07:00 +title: "Hacker News, JSONPath, And More!" +slug: "3.4.0-changelog" +tags: ["update"] +--- + +Exactly one week ago Insomnia reached #1 on HackerNews, generating around +`50,000` website visits, `10,000` new users, and `200` email conversations. I +spent the week going through these conversations and implementing common +complaints, suggestions and feedback. There are a lot of exciting new features +in this release so pay grab some popcorn and take a seat. + + + + +## More Powerful JSON and XML Features + +One of the most common requests was to support XML responses. Not only does +Insomnia format XML automatically now, but you can also filter responses using +XPath and JSONPath notation. + +![XPath filtering](/images/blog/xpath.png) + +The editor also now has a _Beautify_ button that will automatically format the +request body for you. + + +## Better Keyboard Support + +Having to use the mouse is never fun, and this release allows you to use it +even less! + +- You can now toggle the sidebar with `ctrl+\` (`cmd+\` for Mac) +- Workspaces now appear up in the _Quick Switcher_ `ctrl+p` (`cmd+p` for Mac) + +![Fast workspace switching](/images/blog/switch-workspace.png) + + +## Advanced Templating + +You can now use Nunjucks templating inside environments. This can save a lot +of repetition if used correctly. Here is a very basic example of what it could +be used for. + +```json +{ + "url": "{{ base_url }}/{{ resource_type }}/{{ user_id }}", + "base_url": "https://mysite.com", + "resource_type": "users", + "user_id": "user_123" +} +``` + +In this case, `{{ url }}` acts as a template, combining three environment +variables into a single string. With this, you can reference `{{ url }}` inside +each request instead of `{{ base_url }}/{{ resource_type }}/{{ user_id }}`. + +Complementing this, you can now generate UUIDs with the new `{% uuid %}` tag. +_(more of these generators coming soon...)_ + + +## A Lot More + +To keep this post short, here is a list of some of the more minor things that +made it into the release. + +- Add button to duplicate folder +- Add confirmation step before deleting things +- _Cancel Request_ button +- Improved "Raw" response view performance +- Comments in editor are now more visible +- Reduced update check frequency from 30 minutes to 3 hours +- Renamed "Params" tab to "Query" to avoid confusion + + +## Fixes + +Thank you to everyone who reported bugs! Here are the fixes that made it into +this release. + +- Querystring is now added to generated code (oops) +- Can now re-open window via doc icon if closed (Mac) +- HTTPS proxy now works again +- Fixed minor bug with Curl import +- Global shortcuts (like sending request) are now prevented when dialogs are open +- Dragging sidebar dropdowns no longer triggers drag-n-drop + + +## Thanks! + +Once again, thanks to everyone who reached out via email, Twitter, or other +means. I hope you enjoy the update! diff --git a/website/site/content/blog/insomnia-4.0.md b/website/site/content/blog/insomnia-4.0.md new file mode 100644 index 0000000000..d3d8863033 --- /dev/null +++ b/website/site/content/blog/insomnia-4.0.md @@ -0,0 +1,90 @@ +--- +date: 2016-12-01 +title: "Insomnia 4.0 – Out of Beta at Last!" +slug: insomnia-4-announcement +tags: ["update", "announcement"] +--- + +**Version 4 brings multipart support, response history, performance, and more!** + +The number 3 just wasn't big enough to contain all the awesome stuff in this +release, so it's been bumped to **4.0**! This version fills in all of the major +usability gaps that I've noticed from talking to over 400 users since the initial +beta launch over four months ago. Keep reading to see what's new. + + + +![Puppy Surprise](https://media.giphy.com/media/t0TNY68t8wq2Y/giphy.gif) + +## Multipart Form Data and Binary File Support + +The ability to send multipart form data with requests has been the +most requested feature since launch (by far). You can now +change the body type to `Form Data` or to start using it. + +Insomnia Multipart Form Data + +You can also now send raw files with requests. This can be useful for images +and attachments, but it's also helpful for sending large JSON or XML bodies +instead of pasting them into the body editor. + +Insomnia Binary Files + +## History Viewer + +Every request now keeps track of it's past responses so you can go back later and +see exactly what happened. + +Insomnia Response History + +## Client Certificates + +Client certificates can now be used to authenticate requests. Import your own `PFX`, +`PKCS12`, or `PEM` certificates into the workspace settings screen and Insomnia +will automatically send these for the specified host. + +![Insomnia Client Certificates](/images/blog/certificates.png) + +## More Import Formats + +Getting data into Insomnia has been a pain point for a lot of users, and has +prevented some from from even trying the app. + +To help alleviate this pain, Insomnia 4 now supports **Postman (v2)**, **HTTP Archive (HAR)**, +and **Curl command** import formats. And, if your format still isn't supported, you can help add your own +importer by contributing to the +[importers project on GitHub](https://github.com/getinsomnia/importers). + +HAR support means that you can now **export requests from the Chrome developer tools** right +into Insomnia. + +Insomnia HAR Export + + +## Advanced Sending Options + +Holding down `Ctrl` (`Cmd` on Mac), will now reveal extra sending options, including +the ability to send a request after a delay or on a set interval. + +Insomnia Advanced Sending + +## Toggleable Everything! + +Query parameters, headers, form data, authentication, and client certificates can now +be toggled on or off. _Toggling something off will behave the same as if it was deleted +entirely_. + +## Performance Improvements + +This release includes performance improvements to the interface. Everything you do in +the app should now be noticeably faster, especially if you have a lot of requests. Enjoy! + +![F-Zero](https://media.giphy.com/media/h41bl4ZNk276w/giphy.gif) + +## Thanks for The Support! + +I've said it before, but I'll say it again. It's been amazing to be able to interact +with so many of you, and I hope we can keep this going. Each conversation +provides more context to help make Insomnia a better tool for everyone, so thanks! + +~ Gregory diff --git a/website/site/content/blog/insomnia-5.0.md b/website/site/content/blog/insomnia-5.0.md new file mode 100644 index 0000000000..eb7dbd06e3 --- /dev/null +++ b/website/site/content/blog/insomnia-5.0.md @@ -0,0 +1,118 @@ +--- +date: 2017-04-05 +title: Insomnia 5.0 – The Biggest Release Yet! +slug: insomnia-5-announcement +tags: ["update", "announcement"] +--- + +**TL;DR – This update brings contextual autocomplete, more authentication types, and +better debugging!** 👏 + +It's been over a month since the last release but version 5.0 is finally here! +So, find a chair, take a seat, and brace yourself for what's about to come. + + + +![Excited dog sitting](https://media.giphy.com/media/grjSZjbnxudq0/giphy.gif) + +Now that you're prepared, let's dive into the new stuff. + +## Autocomplete, Everywhere 🚀 + +By far the biggest feature of 5.0 is the introduction of autocomplete. Now, just +like your favourite code editor, Insomnia will suggest completions for common things +like variable names, URLs, HTTP headers, and template tags. + + + +## Rendering Errors and Debugging 🚨 + +The new autocomplete system involved making some core changes to the rendering pipeline so, +while that was happening, I spent some time improving the user experience around render +errors. + +The app now displays errors inline *before* the request is sent. That's right! No more +wondering whether or not you typed in your variable name correctly. 😎 + + + +Besides better error reporting, the debug experience is also improved. Insomnia can now +render previews on hover, and also now provides and interactive variable editor for even +more control. + + + +## New `libcurl` Network Backend and Timeline 🏗 + +[Curl](https://curl.haxx.se/) is one of the most popular and feature-rich HTTP clients in +the world and its command-line interface is often used for debugging and testing of APIs – +making it a perfect fit for powering Insomnia's network stack. + +Every network request made through Insomnia will now be sent using the `libcurl` C API. +Using Curl not only improves Insomnia's reliability, but it also makes it possible to +implement more advanced features like network throttling and download progress in the future +(coming soon). + +Thanks to `libcurl`, there is a new _Timeline_ view that shows a debug log similar to the +output when using Curl's `--verbose` flag. This is extremely valuable for debugging +network problems when it's not clear exactly what's going wrong. + + + +I would like to give a huge thanks to the maintainer of +[`node-libcurl`](https://github.com/JCMais/node-libcurl/). Without this project, integrating +Curl into Insomnia would have taken a lot more work. + +## OAuth 2.0, Digest, and NTLM Authentication 🔐 + +OAuth 2.0 is an extremely popular authentication mechanism, meaning Insomnia can now +easily interact with many popular APIs like GitHub, Dropbox, Facebook, and Google. Simply +fill out a few OAuth 2.0 parameters and Insomnia will take care of user authentication, +generation of the `Authorization` header, and renewing refresh tokens when needed. + +_Insomnia supports all four OAuth 2.0 grant types so it should be able to handle anything +you throw at it._ + +![Insomnia OAuth 2.0 Demo](/images/blog/version-5/dropbox.gif) + +Along with OAuth 2.0, Insomnia now supports both +[Digest](https://en.wikipedia.org/wiki/Digest_access_authentication) and +[NTLM (Windows)](https://msdn.microsoft.com/en-us/library/windows/desktop/aa378749(v=vs.85).aspx) +authentication. + +## Sortable Key-Value Editors ✊ + +If you like dragons, you'll love the new drag-n-drop sorting of Insomnia's key-value fields. +Satisfy your inner perfectionist and sort your headers, query parameters, and form data whatever +way you want! + + + +_Alright, this one isn't that exciting, but it was so heavily requested that it made sense +to talk about it in this post._ + +## So Much More 🍅🍇🍉🍌🍓 + +There is so much more that didn't make it into this post that I know you'll love. +If you're curious you can view the full [release notes](/changelog/5.0.1/), but here's +a summary of the most notable ones missed: + + - Environment variables and template tags now highlighted throughout the app + - Added per-request settings for controlling cookies, rendering, and URL encoding + - Digest and NTLM authentication now supported in proxy + - Custom HTTP methods now supported + - App panes now resizable when in vertical layout + - Response view types have been reworked to behave more intuitively + +## Thanks for the Support! 🍻 + +Almost all of the changes in version 5 are a direct result of the +hundreds of email conversations I've had with users over the past year so "**thank you!**" +and keep them email coming! 💌 + +Also, if you'd like to help support future development and get bonus features like +cloud sync, check out [Insomnia Plus](/pricing). + +🏃💨 Time to get started on the next big thing... + +~ Gregory diff --git a/website/site/content/blog/insomnia-plus-beta.md b/website/site/content/blog/insomnia-plus-beta.md new file mode 100644 index 0000000000..61cdb53146 --- /dev/null +++ b/website/site/content/blog/insomnia-plus-beta.md @@ -0,0 +1,68 @@ +--- +date: 2016-10-25T12:20:37-07:00 +title: Insomnia Plus Is Now in Beta +slug: insomnia-plus-beta +tags: ["announcement", "beta"] +--- + +_tl;dr visit the [Insomnia Plus Beta Documentation](/documentation/plus)_ + +Four months ago +[I left my previous job](https://schier.co/blog/2016/08/05/forging-a-new-path/) +to work full-time on Insomnia. Since then, I've had over 300 amazing +conversations with users have helped identify bugs, given feedback, and +suggested new features. Insomnia now has over 2000 daily active users across +the Mac, Windows, and Linux platforms. + + + +These conversations have not only helped improve stability and usability of the +app, but have also helped validate and shape the first features of Insomnia +Plus – a premium add-on for Insomnia that enables powerful features like +**data sync** and **collaboration**. + + +## Data Sync + +Data sync provides the ability to securely sync Insomnia data across multiple +machines, which also acts as an up-to-date backup of all your data (in case +something terrible happens). + +While Insomnia is running, the app will actively sync data to and from the +server whenever changes occur. On top of this, sync is +**end-to-end encrypted**, meaning that all data is first encrypted in the +app before sending it to the server. + +### Encryption Overview + +Data is encrypted with a key that is derived from your account password (which +is never sent to the server), meaning that Insomnia (or any third party) +cannot read your data. Privacy is crucial for Insomnia users, because +requests often contain important API keys, usernames, and passwords. + +In case you're curious, or need more information, there will be a future article +explaining encryption and security in more detail. + + +## Team Collaboration + +_NOTE: Team collaboration is not yet available in the beta but is coming +soon..._ + +Automated sync can be useful for individual users, but the same workflow does +not translate well to teams. + +Imagine working in a code editor where every line of code you typed was +immediately synced to all of your coworkers computers, and vice versa. It would +be chaos! Because of this, Insomnia takes a different approach for teams, +providing a a manual push/pull model similar to the version control system +Git. + + +## Join the Beta! + +If you would like to help test Insomnia Plus, head over to the +[Getting Started Documentation](/documentation/plus) to learn how to enable it. + +As always, please send all feedback my way. + diff --git a/website/site/content/blog/introducing-insomnia-plus.md b/website/site/content/blog/introducing-insomnia-plus.md new file mode 100644 index 0000000000..54675def5f --- /dev/null +++ b/website/site/content/blog/introducing-insomnia-plus.md @@ -0,0 +1,65 @@ +--- +date: 2016-11-15T13:30:50-07:00 +title: Introducing Insomnia Plus +slug: introducing-insomnia-plus +tags: ["announcement"] +--- + +Today, I'm proud to introduce Insomnia Plus – the first paid addition to Insomnia +that syncs data seamlessly across all of your devices. Insomnia Plus also acts as +a secure backup, so you can _rest_ assured that you will never accidentally +lose your work! + + + +![Minions Celebrating](https://media.giphy.com/media/11sBLVxNs7v6WA/giphy.gif) + +With Plus, simply sign into your account and your data will be there. It +just works. However, there a lot happening behind the scenes, such as +**end-to-end data encryption**, **smart conflict resolution**, and robust **offline +support**. + +

+Upgrade to Insomnia Plus +

+

+ +## Always Backed up and in Sync + +We all know how important it is to keep frequent backups of our data. Hard drive +failures and crashes happen all the time. Now, you have one less thing to worry +about. + +Insomnia Plus Sync Menu + +Once signed in to Plus, data is automatically synced whenever a change is +detected. And, if you are signed in to multiple devices, these changes +will automatically be pulled down and merged within seconds. Furthermore, +this all happens in an encrypted and secure manner. + + +## Secure and Private by Default + +Before any data is synced to Insomnia's servers, it is first **encrypted locally** using a +key generated on your device. This means that any sensitive information you +enter into the app (API keys, passwords, etc) will be kept private. **Not even the Insomnia +servers have the ability to read your data.** + +_Check out the [Security Overview](/documentation/security) to find more +on the Insomnia Plus architecture._ + +![Raccoon Stealing Carpet](https://media.giphy.com/media/N6sPcUBbayGoo/giphy.gif) + +## Final Words + +Building the initial iteration of sync was a major effort, but it's just the first +step. Now, with a stable and secure foundation to build on, expect to see more advanced +features like **team collaboration** and **versioning** in the near future. + +If you decide to sign up for Plus, I'd like to say a huge _THANK YOU_ for helping +support my continuous effort of making Insomnia awesome! Also, be sure to reach out +with your thoughts, so we can work together to ensure the product keeps heading +in the right direction. + diff --git a/website/site/content/blog/linux-update-notifications.md b/website/site/content/blog/linux-update-notifications.md new file mode 100644 index 0000000000..d59e74847f --- /dev/null +++ b/website/site/content/blog/linux-update-notifications.md @@ -0,0 +1,10 @@ +--- +date: 2016-08-20T15:14:49-07:00 +title: "Linux Update Notifications" +slug: "linux-update-notifications" +tags: ["update", "linux"] +--- + +As you may know, the existing Linux version of Insomnia does not auto-update like the Windows and +Mac versions. However, starting with version 3.2.2, the app will display a prompt when a new +update is available. This will make keeping up to date with the latest releases much easier. diff --git a/website/site/content/blog/oauth-1-announcement.md b/website/site/content/blog/oauth-1-announcement.md new file mode 100644 index 0000000000..ca0655bc06 --- /dev/null +++ b/website/site/content/blog/oauth-1-announcement.md @@ -0,0 +1,25 @@ +--- +date: 2017-11-08 +title: OAuth 1.0 Support is Here! +slug: introducing-oauth-1.0-support +tags: ["feature"] +--- + +Starting with **v5.11.0**, Insomnia users can now authenticate using the +[OAuth 1.0](https://tools.ietf.org/html/rfc5849) authentication framework! + + + +![Twitter OAuth 1.0](/images/blog/twitter-oauth.png) + +OAuth 1.0 support was an extremely popular request so I'm proud to finally announce that +it's finished. In fact, it was the most popular +[issue](https://github.com/getinsomnia/insomnia/issues/197) on GitHub for a long time. I'd +like to give a huge thanks to [besolov](https://github.com/besolov) who stepped up and +provided then initial implementation, and to [EpocDotFr](https://github.com/EpocDotFr) as well +for doing initial testing. + +Since OAuth is a fairly complicated framework, please report any bugs or issues you run into +on [GitHub](https://github.com/getinsomnia/insomnia/issues). + +Thanks! diff --git a/website/site/content/blog/open-source-announcement.md b/website/site/content/blog/open-source-announcement.md new file mode 100644 index 0000000000..320f55896c --- /dev/null +++ b/website/site/content/blog/open-source-announcement.md @@ -0,0 +1,41 @@ +--- +date: 2017-05-10 +title: Insomnia Is Now Open Source +slug: open-source-announcement +tags: ["announcement"] +--- + +Today, I'm happy to announce that the Insomnia desktop app is now open source software +under the GPLv3 license! The source code is hosted on +[GitHub](https://github.com/getinsomnia/insomnia) for your viewing pleasure. + + + +

+Insomnia on GitHub +

+ +## Journey to Open Source + +I launched Insomnia more than two years ago with no expectation that it would grow to +over 30,000 monthly users. This growth motivated me to leave my job in July of 2016 +and is still the main reason I wake up every morning. Before the transition to full-time, +I set a goal of [documenting the journey](/transparency) as transparently as +possible so that others could benefit from my mistakes and successes. +Now, ten months later, it's time to fit the open-source piece into the +transparency puzzle. + +So why not open-source sooner? **Fear**. Fear of public judgement, fear of being +told my code sucks, fear of showing how much time I spent on it. Being independent +leaves you wide open with nothing to hide behind. You _are_ the product, and the +product embodies _your_ personality. If the product is a failure, so are _you_. Exposing +the code that powers the product just adds another dimension to criticise. That's what +the voices in my head keep repeating, anyway. + +The truth is that the fear I feel is irrational. Life is too short to avoid following your +dreams and the Internet has a terrible memory anyway. So, here I am, setting my fear aside +to continue on with the next phase of the journey. + +See you on the other side 🍻 + +~ Gregory diff --git a/website/site/content/blog/pdf-support.md b/website/site/content/blog/pdf-support.md new file mode 100644 index 0000000000..9a4199c078 --- /dev/null +++ b/website/site/content/blog/pdf-support.md @@ -0,0 +1,17 @@ +--- +date: 2017-06-30 +title: Response Previews for PDFs +slug: pdf-previews +tags: ["feature"] +--- + +Insomnia tries to display HTTP responses in the most friendly way possible. +For example, HTML files are rendered as web pages, images and SVGs are displayed as bitmaps, +and JSON and XML responses are syntax highlighted and interactive. Now, thanks to a community +[contribution by Antoine38660](https://github.com/getinsomnia/insomnia/pull/325), Insomnia +is able to display PDF files using Mozilla's [PDF.js](https://github.com/mozilla/pdf.js/) +project. + + + +![PDF Preview](/images/blog/pdf-preview.png) diff --git a/website/site/content/blog/progress-reports/progress-report-1.md b/website/site/content/blog/progress-reports/progress-report-1.md new file mode 100644 index 0000000000..4720a48773 --- /dev/null +++ b/website/site/content/blog/progress-reports/progress-report-1.md @@ -0,0 +1,172 @@ +--- +date: 2016-10-30 +title: Month 1-4 Recap – A Good Start +slug: progress-report-1 +series: ["transparency"] +tags: ["company", "stats"] +--- + +One major goal when transitioning to Insomnia full-time was to share as much +about the process as possible. As an independent developer with little time, +success heavily relies on the effective use of shared knowledge, tools, +resources, and peers. Without things like blog posts, open source, and friends, +Insomnia would not be where it is today. This post is an attempt to give back. + + + +This is the first post in a series titled +[Transparency](/series/transparency), where I share numbers and talk about what +I've done, what I'm thinking, and the mistakes I've made. If there is anything +you think that's missing from these posts, feel free to reach out and let me +know. I'll try to accommodate as many requests as possible. + +Alright, let's dive in. + + +## User Growth and Other Stats + +I'd like to start this post by going over some interesting statistics on how +Insomnia has been doing so far. Since Insomnia is a desktop app, these stats +will be divided into application stats and website stats. + +### Active App Users + +Here is a screenshot from [Mixpanel](https://mixpanel.com/) on daily active app +users. I've chosen to define an active user as someone who has sent at least one +API request from the app in a given day. + +![Insomnia Active Users](/images/blog/active-users-four-months.png) + +If you're curious, the lines marked on the graph are the following. + +- September 5 – [#1 on Hacker News](https://news.ycombinator.com/item?id=12432859) +- September 15 – [OMG! Ubuntu!](http://www.omgubuntu.co.uk/2016/09/insomnia-3-is-free-rest-client-for-linux) +- October 17 – [Laravel News](https://laravel-news.com/2016/10/insomnia-a-simple-beautiful-and-free-rest-api-client/) + +As you can see, most of the user base can be attributed to being featured on +Hacker News in early September. Since then, retention has been high and growth +has been steady but slow. High retention is good. Slow growth either means I'm +doing a poor job at getting the word out, or the target market is too small. +I have a suspicion it's the former, because similar applications exist with +millions of users. + +### Website Traffic + +In my opinion, one of the biggest mistakes made by independent developers is +not having a proper website. A website is one of the only ways of gaining +users organically (unless you are in an app store), so a website should be a +huge priority. + +Here are some website stats taken from +[Google Analytics](https://www.google.com/analytics/) over the same time +period as the one above. Notice the huge spike from Hacker News. + +![Insomnia Web Traffic](/images/blog/web-traffic-four-months.png) + +It's harder to see in this graph, but if you ignore the spikes, there is also +a steady growth here. Another good sign. + +### Miscellaneous Stats + +In order to keep this post relatively short, I've condensed the rest of the +stats into tables. If there is anything else you want to see here, just let me +know. + +**App Stats** + +| Value | Description | +|---------|------------------------| +| 2,000 | daily active users | +| 5,000 | weekly active users | +| 40,000 | downloads | + +**Website Stats** + +| Value | Description | +|----------|------------------------| +| 110,000 | sessions | +| 00:01:22 | average session length | +| 54% | average bounce rate | + +**General Stats** + +| Value | Description | +|-----------|--------------------------------------------------------------| +| 29 | [App Releases](/changelog) | +| 320 | [Help Scout](https://www.helpscout.net/) email conversations | +| 10 months | **Financial runway** | + +**Financial Spend** + +| Cost | Description | +|----------|-----------------------------------| +| $300 | S3 for download hosting | +| $150 | SSL wildcard certificate | +| $70 | Business registration | +| $50 | [Heroku](https://www.heroku.com/) | +| $40 | [Sentry](https://sentry.io) | + +**Financial Earnings** + +| Cost | Description | +|----------|-----------------------------------| +| $0 | :( | + +Insomnia currently has no premium features, so has been unable to +generate revenue. However, A beta version of the first paid feature (sync) is +almost complete, and additional team collaboration features are in the works. +This number should be greater than zero in the next post. + + +## Time Allocation, Priorities, and Roadmap + +The last four month have been crazy. Full-time work on Insomnia +began on July 5th, and the app launched on +[July 24th](/changelog/3.0.10/). Effectively, the last four months +looked like this. + +- **July** – Finish development for initial public launch +- **August** – Implement remaining core features (environments, and cookie support) +- **September** – Bug fixes, website, small improvements, and talking to users +- **October** – Research and implement cloud sync features + +I don't have the next four months planned out, so I can't tell you exactly what +will happen, but I do have some general goals. + +- Have sync and team features available for purchase by December +- Begin open-sourcing parts of the codebase +- Implement highly requested features + - Binary file support + - Request chaining and/or scripting + - More import sources (Postman, Swagger, etc) +- Write more content like this + +## Mistakes and Lessons Learned + +Here are the main things that I have learned so far. Each one of these could +probably have a separate blog post written about it. + +- Talking to users takes is extremely valuable, but takes a lot of time + - [Help Scout](https://www.helpscout.net/) has helped make email more efficient +- Code quality usually only matters for the core components + - Because those are the hardest parts to refactor + - For Insomnia, it's the data model and storage system +- Hosting Electron apps (50MB each) on S3 is expensive + - $200/mo after Hacker News post + - Used [Cloudflare](https://www.cloudflare.com/) to cut costs (now $10/mo) +- People don't like receiving app updates every day (who knew!?) +- Working at home makes you feel like a slob + - Have transitioned to coffee shops +- Cloud sync is more complicated than expected + +## Wrap Up + +Overall, Insomnia is doing well. The user base is growing, the app is becoming +more stable, and the people using it are amazing to interact with. +However, it's not generating revenue yet, and user growth is slow. Considering +the sync beta should be ready to go live this week, the next few weeks should +be very interesting. + +I plan to try and write one of these posts every month, so keep your eyes out +for that. Again, if there is anything else that you would like to see included +in these posts, just let me know. diff --git a/website/site/content/blog/progress-reports/progress-report-10.md b/website/site/content/blog/progress-reports/progress-report-10.md new file mode 100644 index 0000000000..d588a48478 --- /dev/null +++ b/website/site/content/blog/progress-reports/progress-report-10.md @@ -0,0 +1,52 @@ +--- +date: 2017-08-01 +title: July Recap – One Simple Trick Increased MRR 45% +slug: progress-report-10 +series: ["transparency"] +tags: ["company", "progress"] +--- + +Well, another month has passed and Insomnia continues to grow 📈. Unfortunately, number of +active users didn't budge, but **MRR increased by a whopping 45% 🤑!** That's is the largest +increase Insomnia has seen in a long time, and I attribute most of it to one simple trick: +**asking users to pay**. _Keep reading for more on this._ + + + +_If you like this post, be sure to check out [the other recaps](/series/transparency/). +There's one every month!_ + +## Metrics Overview + +Last month, the user base didn't grow at all. This would normally be worrying but, honestly, +the huge increase in MRR takes away all the worry I might have of that. I'm hoping user growth +will be back up to health levels next month. + +| Metric | Value This Month | Change | Reaction | +| ------------------------- | ---------------- | --------- | -------- | +| Active App Users | 34,376 | 0% | 😐 | +| New App Users | 12,044 | -10% | 😐 | +| Monthly Recurring Revenue | $1338 | +45% | 🤑 | +| Recognized Revenue | $2352 | +77% | 🤑 | +| New Trial Customers | 341 | -18% | 😐 | +| New Paying Customers | 34 | +100% | 😀 | +| Churned Customers | 2 | -78% | ☺️ | +| Trial Conversion Rate | 1% | -75% | ☺️ | + +Even though total active users for the month didn't increase, weekly active users seemed to +go up slightly. Here's what the trend looks like + +![Daily Active Users](/images/blog/dau-13.png) + +I've mentioned this in previous recaps, but I've always had a hunch that a +significant portion of early adopters were still unaware of Insomnia' paid plans (there were +none in the early days). So, I finally did something to remind them. I +**added a simple push notification** to prompt users to upgrade every 30 launches 💬. + +Shortly after implementing the notification, I checked the stats and observed that many +of July's new customers had launched the app **over 100 times**! My hypothesis was correct. + +![Monthly Recurring Revenue](/images/blog/mrr-13.png) + +Now I'm left wondering what other money I've been leaving on the table. + diff --git a/website/site/content/blog/progress-reports/progress-report-11.md b/website/site/content/blog/progress-reports/progress-report-11.md new file mode 100644 index 0000000000..9a7a34dd35 --- /dev/null +++ b/website/site/content/blog/progress-reports/progress-report-11.md @@ -0,0 +1,40 @@ +--- +date: 2017-09-01 +title: August Recap – Still Growing +slug: progress-report-11 +series: ["transparency"] +tags: ["company", "progress"] +--- + +I spent most of August getting ready to go on a +[long-term travel trip](https://schier.co/blog/2017/08/06/moving-into-a-30-liter-backpack/), +meaning not much got done in August. As a result, this recap will be quite short. + + + +_If you like this post, be sure to check out [the other recaps](/series/transparency/). +There's one every month!_ + +## Metrics Overview + +Even though August was a slow month, things are still growing at a healthy rate. +Recognized revenue is down but that's because a large team purchased an annual subscription +the month prior. + +| Metric | Value This Month | Change | Reaction | +| -------------------------- | ---------------- | --------- | -------- | +| Active App Users | 39,199 | +14% | 🙂 | +| New App Users | 14,449 | +20% | 🙂 | +| Monthly Recurring Revenue | $1654 | +24% | 🙂 | +| Recognized Revenue | $1824 | -22% | 😐 | +| New Trial Customers | 442 | +30% | 🙂 | +| New Paying Customers | 40 | +18% | 🙂 | +| Subscription Churn | $124 | +95% | 😕 | +| Subscription Cancellations | 9 | +125% | 😕 | + +![Daily Active Users](/images/blog/dau-14.png) + +![Monthly Recurring Revenue](/images/blog/mrr-14.png) + +I'm still very satisfied with the rate of growth of Insomnia, and I look forward to continue +working on it as I travel the globe for the next year. diff --git a/website/site/content/blog/progress-reports/progress-report-12.md b/website/site/content/blog/progress-reports/progress-report-12.md new file mode 100644 index 0000000000..d540050d22 --- /dev/null +++ b/website/site/content/blog/progress-reports/progress-report-12.md @@ -0,0 +1,37 @@ +--- +date: 2017-10-01 +title: September Recap +slug: progress-report-12 +series: ["transparency"] +tags: ["company", "progress"] +--- + +Here is a short and sweet recap of September's metrics for Insomnia. + + + +_If you like this post, be sure to check out [the other recaps](/series/transparency/). +There's one every month!_ + +## Metrics Overview + +Revenue growth is still looking healthy. There have been a lot more teams signing up lately, +which helps a lot. However, user growth is slowing down significantly from it's usual 15-20% +month-over-month. + +| Metric | Value This Month | Change | +| -------------------------- | ---------------- | --------- | +| Active App Users | 40,837 | +4% | +| New App Users | 13,583 | -6% | +| Monthly Recurring Revenue | $1817 | +13% | +| Recognized Revenue | $2627 | +49% | +| New Trial Customers | 477 | +8% | +| New Paying Customers | 26 | -37% | +| Subscription Churn | $143 | +15% | +| Subscription Cancellations | 13 | +44% | + +![Daily Active Users](/images/blog/dau-15.png) + +![Monthly Recurring Revenue](/images/blog/mrr-15.png) + +Be sure to stay tuned to see next month's recap! diff --git a/website/site/content/blog/progress-reports/progress-report-13.md b/website/site/content/blog/progress-reports/progress-report-13.md new file mode 100644 index 0000000000..2951797aae --- /dev/null +++ b/website/site/content/blog/progress-reports/progress-report-13.md @@ -0,0 +1,57 @@ +--- +date: 2017-11-01 +title: October Recap +slug: progress-report-13 +series: ["transparency"] +tags: ["company", "progress"] +--- + +October saw a large increase of traffic due to a very positive +[Hacker News comment](https://news.ycombinator.com/item?id=15536364) that got a lot af attention. +This also produced a large ripple effect of sharing on other social networks like Twitter and +Facebook. + + + +This influx of users was obviously great for business, but it was also great for morale. +Insomnia has been on Hacker News multiple times before, but this time was different. This +was the first time where people _actually_ knew what Insomnia was and had something to say +about it instead of the usual "How is this different than Postman?" I can't tell you have +good that feels. + +Okay, let's dive into this month's metrics. + +_If you like this post, be sure to check out [the other recaps](/series/transparency/). +There's one every month!_ + +## Metrics Overview + +Basically everything is up this month, which is awesome. If only it were easier to get attention +on Hacker News. + +| Metric | Value This Month | Change | +| -------------------------- | ---------------- | --------- | +| Active App Users | 47,880 | +17% | +| New App Users | 17,788 | +31% | +| Monthly Recurring Revenue | $2368 | +30% | +| Recognized Revenue | $3092 | +20% | +| New Trial Customers | 575 | +21% | +| New Paying Customers | 44 | +69% | +| Subscription Churn | $75 | −47% | +| Subscription Cancellations | 12 | +9% | + +Daily active users had a big spike, which is clearly visible in the following graph. Notice how +it also drops off the following week as new users don't continue to use the app. + +![Daily Active Users](/images/blog/dau-16.png) + +Revenue is also up, but this is less related to the traffic spike. Revenue usually trails behind +traffic spikes by a few weeks in order to get to know the app before committing to a purchase. + +![Monthly Recurring Revenue](/images/blog/mrr-16.png) + +And that's it! There are big plans for November including launching both a long-awaited feature +a new documentation site! October's success has left plenty of fuel in the tank to accomplish +both of these so I'm excited to see what happens. + +Be sure to stay tuned to see how that goes! diff --git a/website/site/content/blog/progress-reports/progress-report-2.md b/website/site/content/blog/progress-reports/progress-report-2.md new file mode 100644 index 0000000000..e0c941f23e --- /dev/null +++ b/website/site/content/blog/progress-reports/progress-report-2.md @@ -0,0 +1,150 @@ +--- +date: 2016-12-06 +title: Month 5 Recap – First Revenue +slug: progress-report-2 +series: ["transparency"] +tags: ["company", "progress"] +--- + +Welcome to the recap of my **fifth month** working on Insomnia full time. In this blog series, +I analyse interesting growth metrics and reflect on valuable lessons learned while trying to take +Insomnia from a part-time hobby to a full-time business. My motivation for writing these posts +is to help hold myself accountable, and also share my experience with readers +who may be trying to do something similar. + +Since publishing the first recap ([First Four Months](/blog/progress-report-1/)) I've had a +month to reflect on it, and have decided to apply a slightly different format this time. +Stats can be interesting, but they are not very useful or descriptive on their own. So, this +update will try to adhere to a more expository style. Let's get right into it then, shall we? + + + +## Growth Paralysis + +Insomnia is growing, but at a snail's pace. Only **1200 new users per week** are launching the +app for the first time, and that number is not improving. Here is the same active users chart +that was shown last month with Novembers numbers added on. + +![Insomnia Daily Active Users](/images/blog/dau-5.png) + +I must say, looking at these analytics can be a downer at times. However, this stagnation +means that there should be at least a few key things that can be improved. Keep reading to +find out what those were. + +## Loyal and Enthusiastic Users + +Apart from the rather unfortunate user growth, there _are_ some positive things that can +be gleaned from the analytics data. Insomnia is sticky, and users love it. 😊 + +Insomnia has a **bounce rate of only 10%**, with **over 90% of usage coming from return +visitors**. That's really good (I think)! + +A Low bounce rate is not the only thing to get excited about though. **Over 80 users reached +out via email in November** (more than any previous month), pushing the total conversation +count to over 400. Feedback from these conversations has been overwhelmingly positive and +supportive, making it one of the largest contributors to my motivation to keep going. If +you were one of those people who has reached out, then thank you for being so kind, generous, +and (when needed) forgiving. + +Just for fun, here are a few Tweets that have caught my attention over the last week or two. + + + + + +## Revenue at Last + +One of the future goals from the last recap was to launch Insomnia Plus and team features. +Unfortunately the team features did not make it into last month's release, so the +launch was strictly announcing a $5 per month subscription that provides cloud backup and +multi-device sync (honestly not something that most people need). But, in the spirit of +being lean, I launched early with low expectations with hopes of getting feedback. + +On November 15th, I published a [blog post](/blog/introducing-insomnia-plus/) +and pushed an in-app notification announcing the Plus launch. +Fast forward two weeks later to today, and Insomnia is at **$30 monthly recurring revenue** +(MRR). It's a start, but not cause for celebration. I had reasonably low expectations +before launch, but the result somehow undercut those by less than half. Time to try +something else. + +## Out of Beta with Version 4.0 + +As mentioned previously, over **400 users have now reached out** via email. These conversations +have provided me with an extraordinary amount of context, and led me to a sudden decision +part way through November. All of a sudden, I had the urge to take all the +blockers that prevented certain groups of users from using the app, and address all of them in +one big release. I also took this opportunity to stop calling Insomnia _beta_, and +increment the version number from 3 to 4. + +You can read the [announcement of 4.0](/blog/insomnia-4-announcement/) if you're curious, but +the main things that were missing for users were the inability to send +`multipart/form-data`, lack of client certificate authentication, and the manual effort required +to migrate from existing apps like Postman. Version 4.0 was an attempt to open the app to +a larger market, so look forward to next month's recap to see what sort of impact that had. + +## Lessons learned + +Now for the hard earned (and partly embarrassing) lessons I've learned this month. + +**People would rather donate then pay for something they don't need.**
+In November, more than one person reached out to say that they didn't need the sync feature, +but still wanted to provide monetary support. I had naively expected users interested +in donating to sign up for Plus and just not use it, but apparently is some sort of +mental blocker that makes a user want to give money nothing in return, rather than pay +for something that won't be used. + +**Too much time spent heads-down.**
+This is something I'm often guilty of as a software developer. It's really easy to focus on +the fun stuff like writing code and forget about the important things that actually matter, +like growing the user base or making an income. The naive developer would say +that a great app is easy to sell, but they would be wrong. The stats revealed at the start of +this recap directly disprove correlation between building something useful and attracting +new users. I've learnt this lesson the hard way several times in my life already, but that +doesn't seem to prevent me from falling into the same trap over and over again. + +**Too many critical bugs shipped.**
+In the last week, I have introduced and fixed more critical bugs than ever before (sorry about that). All +of these bugs were caused by changes in the 4.0 release, and were simply due to moving +too quickly without enough thought. Don't take this the wrong way. I am _not_ going +to stop moving quickly, but I _am_ going to try to be more mindful during future releases. +There's nothing worse than getting an email from someone saying that they can no longer use +the app because an update caused it to stop working for them. + +## Next Month Goals + +One of the best parts about writing these recap posts is that they act as a +retrospective, which is something I don't usually get as a result of working alone. +All of the lessons I learned in November help to provide the following +well-defined goals for the December. + +**Publish content once a week (at least).**
+In an effort to try to bump up new user growth, I'm going to put more time into releasing +high quality content. What your reading now is my first attempt at that (so let me know +your feedback). Currently, the plan is to update documentation for the added 4.0 features, +and write a few blog posts about the technology and tools that have helped +my small one-person team make such an impact. + +**Launch team sync and reach $100 MRR.**
+Since 90% of the infrastructure for team sync already exists, this goal should be +easy (knock on wood). However, I would like to start playing the role of startup founder +a bit better and proactively reach out to users before building too much. This will add +a considerable amount of effort. + +**Start reacting to more actionable metrics**
+Before now, most of the metrics that I have been monitoring can be classified as +[Vanity Metrics](https://techcrunch.com/2011/07/30/vanity-metrics/). These are metrics +that look impressive, but are not really useful for decision making or planning because +they are too vague. Last month I transitioned from using Mixpanel to Google Analytics +for tracking, which provides much more powerful ways for segmenting and understanding +users. + +## Wrap Up + +November was a jam-packed month, full of excitement, joy, and depression. Even though most +of the content of this recap was full of negativity and full of failure, I learnt enough to +convince me that what I'm trying to do is still an achievable goal. I have around 9 months +of runway left, so figuring out a sustainable revenue stream will need to happen soon. + +If you enjoyed this post let me know, and if you want to get updated you can subscribe to +this blog series via RSS or follow [@GetInsomnia](https://twitter.com/GetInsomnia) on Twitter. +Thanks again for reading, and I hope you learned something today. diff --git a/website/site/content/blog/progress-reports/progress-report-3.md b/website/site/content/blog/progress-reports/progress-report-3.md new file mode 100644 index 0000000000..4848af787d --- /dev/null +++ b/website/site/content/blog/progress-reports/progress-report-3.md @@ -0,0 +1,84 @@ +--- +date: 2017-01-01 +title: December Recap – Happy New Year! +slug: progress-report-3 +series: ["transparency"] +tags: ["company", "progress"] +--- + +December is a notoriously slow month because of the holidays. I also decided to take some +time off to reflect on things and spend time with family, so this recap will be +relatively short. _(Still interesting, I promise!)_ + + + +## Daily Active Users + +Since Insomnia is mostly used in the workplace, holiday vacation time made a +large dent in the usage numbers this month. The daily active users chart below shows +clear growth at the start of the month but begins to drop off near the end, and is +cut in half during the last week. This should bounce back quickly though. + +![Insomnia Daily Active Users December 2016](/images/blog/dau-6.png) + +## Monthly Recurring Revenue + +Much like usage, monthly recurring revenue (MRR) also seemed to be affected +by the holiday season (although it's hard to tell with such small numbers). +In December, **MRR increased by 67%**, ending the month at $45.78 MRR. The +following chart shows MRR over the last five months. + +![Insomnia Monthly Recurring Revenue December 2016](/images/blog/mrr-6.png) + +To put this into perspective, **$50 MRR is 1% of a moderate salary** where I live, +meaning that success will require 100x growth. The finish line is in sight, but very +far away. + +In order to reach the magic $5000/mo mark before my savings run dry, I will +need to grow MRR by 50% per month for the next twelve months. This seems like a +difficult goal but I hope the launch of teams in January will help get there. + +## This Month's Wins and Losses + +This month I wanted to force myself to think back on more specific things that happened, +so this section is a new attempt at doing that. It's not very organized, but here's a +list of noteworthy things that happened this month. + +- **WIN:** Got Insomnia featured on the [Electron home page](http://electron.atom.io/) +- **WIN:** Finished and deployed the [web interface](/app/) to manage Insomnia accounts +- **WIN:** Someone [donated](https://www.paypal.me/gschier) $100! +- **WIN:** Had a blog post [do well on Reddit](https://www.reddit.com/r/webdev/comments/5hf898/wrote_about_why_i_think_electron_is_a_web/) +- **WIN:** deleted custom (buggy) DNS resolution code after discovering the proper way to do it +- **LOSS:** Didn't finish Teams on time +- **LOSS:** Didn't hit any set goals + +## Next Month Goals + +Last month I set three goals for myself and failed to meet all of them. I failed +to **launch Teams and reach $100 MRR**, didn't **publish content once a week**, and +didn't **start reacting to more actionable metrics**. I _did_ make a sizable dent in +all of them, but more important things came up and prevented their completion. + +This month I chose only important and achievable goals. Here's what I plan to +accomplish in January. + +**Get first paying team:**
+Teams wasn't completed in December, but most of the work is now +done. I've set a hard launch date of **Wednesday January 11th**, which should leave enough +time to get the first team on board (even if it requires cold emails and hand-holding). + +**Finish [console.rest](https://console.rest/) integration:**
+[Console.rest](https://console.rest/) is an open source project started by the folks at +[Paw](https://paw.cloud/). I have most of the integration work completed, so wrapping it +up should take a few days at most. + +## Wrap Up + +Well, that's it for 2016! It's been almost exactly six months since I quit my job to +take on Insomnia full-time. I'm super excited to have passed the $1 MRR milestone and +can't wait to see what happens in 2017. + +![Happy New Year Charlie Brown](https://media.giphy.com/media/1PMVNNKVIL8Ig/giphy.gif) + +If you feel that I left anything out of this post or have questions, feel free to leave +a comment below and I'll respond ASAP. diff --git a/website/site/content/blog/progress-reports/progress-report-4.md b/website/site/content/blog/progress-reports/progress-report-4.md new file mode 100644 index 0000000000..681ffc6a58 --- /dev/null +++ b/website/site/content/blog/progress-reports/progress-report-4.md @@ -0,0 +1,135 @@ +--- +date: 2017-02-03 +title: January Recap – $110 MRR +slug: progress-report-4 +series: ["transparency"] +tags: ["company", "progress"] +--- + +[Last Month's Recap](/blog/progress-report-3) was fairly uneventful due to extremely low app usage +during the holiday season. Thankfully, usage is back up this month and things are looking +great! Insomnia crossed last month's failed goal of **$100 MRR** and also **surpassed 3,000 +daily active users**. + + + +Inspired by the last +[Indie Hackers Month in Review](https://www.indiehackers.com/blog/month-in-review-2016-12), +I decided to throw in a few more metrics into this post, making it longer than usual. Let me +know if you like it more or less. + +_I also added a [Transparency Page](/transparency/) if you want to follow progress +throughout the month._ + +## January Overview + +As an attempt to provide more high-level context for how Insomnia is doing, I put together +a list of high-level metrics that I'll be covering from now on. + +| Metric | Value This Month | Change | Reaction | +| ------------------------- | ---------------- | ------- | ---------- | +| Active App Users | 16,131 | +27% | 😀 | +| New App Users | 7,539 | +40% | 😀 | +| Monthly Recurring Revenue | $110 | +140% | 😀 | +| Recognized Revenue | $390 | +25% | 😁 | +| New Trial Customers | 146 | +200% | 😀 | +| New Paying Customers | 11 | +57% | 😀 | +| Trial Conversion Rate | 8% | -2% | 😕 | + +I also decided to move the wins/losses section here too. Here are a few of the most notable +events that happened. + +- **WIN**: Passed $100 MRR +- **WIN**: First paying team on board +- **WIN**: On deck for an Indie Hackers interview +- **WIN**: Dave Chaney [tweeted](https://twitter.com/davecheney/status/820937289370980352) about Insomnia +- **WIN**: Added [New Relic](https://newrelic.com/) and fixed performance problems +- **WIN**: Insomnia is being talked about more on Twitter +- **WIN**: Launched app themes +- **WIN**: Revised pricing page +- **LOSS**: Spent too much time fighting with bugs +- **LOSS**: No marketing efforts made + +## App Usage Growth + +App usage picked up a lot since the holiday season ended. Insomnia **crossed 3,000 +daily active users** – which is an arbitrary vanity metric – and it's awesome to see the +user base continue to grow organically with almost no PR and marketing efforts. With that being +said, spending more effort on PR and marketing would probably go a long way. + +To give a more visual representation to this growth, here is the daily active users chart. + +![Insomnia Daily Active Users January 2017](/images/blog/dau-7.png) + +## Revenue Growth + +I've always shared MRR numbers in previous recaps, but have neglected to mention actual _recognized +revenue_ (the money that hits the bank). In most subscription businesses these numbers +are fairly similar, but due to Insomnia's option of annual billing (instead of monthly), +recognized revenue is much higher than MRR. Because of this, I'll start covering both numbers +from now on. + +Insomnia **earned $390 in January**, which is $280 (woah!) more than MRR. This is +because **45% of customers subscribe to annual billing**. This is huge when thinking +about sustainability! + +If this high proportion of annual subscribers continues, it will greatly decrease the time it +takes to become sustainable. So, if you're thinking of subscribing, save the 16% and choose the +annual plan. 😊 + +Alright, enough talk about _actual_ revenue. Let's continue the monthly tradition of examining +MRR growth. Here's an impressive hockey-stick-shaped chart for your viewing pleasure. + +![Insomnia Monthly Recurring Revenue January 2017](/images/blog/mrr-7.png) + +MRR is now up to $110, which is **140% growth over last month**. Since the number of paying +customers is still extremely low (23), this growth rate doesn't really mean anything. It's actually +about four times higher than it _should_ be. + +Assuming the user demographic doesn't change and the proportion of upgrading users remains +constant, MRR growth should match user base growth, which has historically been between +20-30% per month. MRR growth should eventually settle down to a similar rate. + +### Will Insomnia Succeed? + +The MRR goal for sustainability is $5000. Hitting this number would mean being able to +sustain my current lifestyle. In December's recap I mentioned MRR +would need to grow 50% for 12 months to reach $5000, but that calculation didn't take into +account the added runway that incoming revenue would provide. So I wrote a small script to +calculate a more accurate projection. + +After running the numbers, **the lowest MRR growth that will eventually +lead to sustainability is 25%**. This is currently less than the user base growth rate, which makes +sustainability plausible. However, I would prefer to tread with my whole head out of water, +instead of just my nose. + +## February Goals + +I took some time last week to make a long-term roadmap. While I don't believe the resulting road map +is useful, the process helped me pin down the highest priority items to work on next. Here's what +I want to have done by the end of February. + +- **$150 MRR** (50% growth) +- **4,000 Daily Active Users** +- Finish first version of plugin system +- Contact 25 publications/blogs/sites for plugins PR +- Open-source the Insomnia networking backend +- Add "offboarding" survey to better understand trial user churn + +## Personal Feelings + +I felt really good throughout most of January. The community around Insomnia is really beginning +to evolve, which is both awesome and humbling. This has been my primary source of motivation. + +Right now it feels like Insomnia is at a turning point. The app is now good enough to satisfy +most user's needs, and is stable enough to start building the next big thing. At this point, +I'm also more confident than ever that – if I can improve customer conversion rates and +do more PR and marketing – Insomnia will be able to reach sustainability. + +## Wrap Up + +I hope you enjoyed reading January's recap. It takes about a day to write one of these, but the +process helps me stay on track and keep focused on the end goal. I've also had a few conversations +spawned from the things I've discussed, which is awesome to see. + +As always, let me know if you have any feedback or thoughts, and enjoy the app! diff --git a/website/site/content/blog/progress-reports/progress-report-5.md b/website/site/content/blog/progress-reports/progress-report-5.md new file mode 100644 index 0000000000..c9edb04bb0 --- /dev/null +++ b/website/site/content/blog/progress-reports/progress-report-5.md @@ -0,0 +1,114 @@ +--- +date: 2017-03-07 +title: February Recap – 192% MRR Growth +slug: progress-report-5 +series: ["transparency"] +tags: ["company", "progress"] +--- + +February was an exciting month for Insomnia with **monthly recurring revenue growing +192%** and **monthly active users growing 14%**. Considering how little time (none) was put into +marketing and promotion, that's really exciting. + + + +Since most of February was spent on feature development, there wasn't much to reflect on for +this post. So, on top of the usual stats, I'll be doing a deep-dive on some things +I did to help understand where exactly the growth is coming from. + +Spoiler alert: It's interesting! + +_If you like this post, be sure to check out [the other recaps](/series/transparency/). +There's one every month!_ + +## February Metrics Overview + +Since February is a short month, metrics were slightly lower than usual, but still great. + +| Metric | Value This Month | Change | Reaction | +| ------------------------- | ---------------- | ------- | ---------- | +| Active App Users | 18,422 | +14% | 😊 | +| New App Users | 7,872 | +4% | 😊 | +| Monthly Recurring Revenue | $322 | +192% | 😁 | +| Recognized Revenue | $614 | +57% | 😁 | +| New Trial Customers | 224 | +53% | 😀 | +| New Paying Customers | 20 | +81% | 😀 | +| Churned Customers | 0 | 0% | 😊 | +| Trial Conversion Rate | 9% | +12% | 😊 | + +I'm really happy with where things are at. It's satisfying to have active users +continue to grow, while also maintaining an increasing conversion rate. + +The following chart does a better job showcasing recent growth. + +![Insomnia Daily Active Users February 2017](/images/blog/dau-8.png) + +And the same thing for revenue. + +![Insomnia Monthly Recurring Revenue February 2017](/images/blog/mrr-8.png) + +MRR grew a lot in February – **jumping from $110 to $322** – with a large portion coming +from new team subscriptions. The number of team subscription is still in the single digits, but +it's exciting considering the feature's lack of visibility. (Definitely something to +focus on in the future.) + +### Where is The Money Coming From? + +A few weeks ago, I decided to figure out whether subscriptions were coming from existing users +or new users. This question had been on my mind for a while and knowing the answer is +critical for calculating long-term revenue forecasts. + +For example, if only new users are upgrading, the conversion rate is effectively +`subscriptions / ~15,000 new users`. If the opposite is true, the conversion rate decreases +dramatically due to the much larger pool and becomes `subscriptions / ~40,000 total new users`. + +The best-case scenario is that only new users have upgraded and existing users don't even know the +paid plans exist. This scenario would put the conversion rate at 0.3% and also present the +opportunity to increase it by targeting existing users. + +If the opposite is true, the conversion rate drops to 0.1% with no opportunities to +improve. Luckily (thanks to some foresight early on) I was able to collect enough data +to answer this question. + +Every ten minutes, the app pings the server for notifications and sends the following information: + +- App version and platform +- **Number of launches, first launch**, and last launch +- Number of entities (workspaces, environments, folders, and requests) +- Current session (if logged in) + +I wrote some code to start storing this information on the user object and looked at the data +couple weeks later. Here are the most interesting things I found: + +- **50% of paid customers started using the app in the last two months** +- paid customers have launched the app 24 times on average +- All team customers have launched the app fewer than 20 times +- Paid customers consist of 43% Mac, 37% Windows, 20% Linux + +This data shows a large portion of the customer base coming from new users, putting the +effective conversion rate around 0.2%. Extrapolating average monthly customer revenue ($8.29), +Insomnia would need 125,000 new users to reach $2,000 MRR (sustainability) and +600,000 new users to reach $10,000 MRR (goal). Assuming the current growth rate of 20% +remains constant, it should take **7 months to reach sustainability** and 14 months to reach +goal MRR. + +Last month I attempted a similar revenue forecast using a different set of data, but came to a +similar conclusion. The fact that both calculations produced similar results drastically +increases my confidence of success, which is extremely motivating. + +## No More Goals! + +**I've had enough with goals**, so I'm not doing them anymore! Every month I come up +with 3-5 high level goals and fail to meet almost all of them. + +I _will_, however, say that something big is coming. I can't give an exact release date yet, +but I hope to do a version 5.0 launch within the next month. The goal of version 5.0 is to +add a couple major features that have prevented certain major use cases, as well as sand +off some of the rough edges I've noticed from talking to users. + +## Wrap Up + +Well, another great month has come and gone. I'm super excited about how things are going, and can't +wait to get this new release into users' hands. Next month should be awesome! + +As always, let me know if you have any feedback or thoughts, and enjoy the app! diff --git a/website/site/content/blog/progress-reports/progress-report-6.md b/website/site/content/blog/progress-reports/progress-report-6.md new file mode 100644 index 0000000000..7544d61d17 --- /dev/null +++ b/website/site/content/blog/progress-reports/progress-report-6.md @@ -0,0 +1,58 @@ +--- +date: 2017-04-03 +title: March Recap – Calm Before the Storm +slug: progress-report-6 +series: ["transparency"] +tags: ["company", "progress"] +--- + +As Insomnia slowly grows into a sustainable business it becomes more and more difficult to +find things to put in these updates. I'm currently heads-down putting the finishing touches on +a **very major release** so, instead of spending a day or two drafting and editing a recap, +I'm choosing to keep this one short and focus on the release ahead. Don't worry, though. Next +month's release will be jam-packed. + + + +_If you like this post, be sure to check out [the other recaps](/series/transparency/). +There's one every month!_ + +## March Metrics Overview + +March's metrics are still growing, but at a slightly lower rate than usual. + +| Metric | Value This Month | Change | Reaction | +| ------------------------- | ---------------- | --------- | ---------- | +| Active App Users | 22,089 | +20% | 😊 | +| New App Users | 9,373 | +19% | 😊 | +| Monthly Recurring Revenue | $490 | +52% | 🙂 | +| Recognized Revenue | $640 | +4% | 😐 | +| New Trial Customers | 203 | -10% | 😧 | +| New Paying Customers | 22 | +10% | 🙂 | +| Churned Customers | 3 | +∞% | 😟 | +| Trial Conversion Rate | 11% | +22% | 🙂 | + +The most notable thing here is that Insomnia had it's first real churn. This doesn't +seem like a big deal yet, but I'll definitely be keeping an eye on it. I _did_ +try to reach out to the churned customers but failed to get a response from any, which is +bothersome. + +Over the last few months, user growth has slowly decreased from +30% to +20%. I would like to +keep this number above 20% for as long as possible, so I'll be doing some extra PR this month +to try and push it back up. + +![Insomnia Daily Active Users February 2017](/images/blog/dau-9.png) + +Similar to user growth, revenue growth has also been declining steadily. This is expected, +however, because revenue and user growth should be the same (+20%) if conversion rate +remains constants. + +![Insomnia Monthly Recurring Revenue February 2017](/images/blog/mrr-9.png) + +## Wrap Up + +That's it for this month. As I mentioned earlier, this recap was intentionally short. +I have some awesome things ready to release in a few days, so keep an eye out for that. There +will definitely be a lot to talk about next month! + +As always, let me know if you have any feedback or thoughts, and enjoy the app. diff --git a/website/site/content/blog/progress-reports/progress-report-7.md b/website/site/content/blog/progress-reports/progress-report-7.md new file mode 100644 index 0000000000..d76329157f --- /dev/null +++ b/website/site/content/blog/progress-reports/progress-report-7.md @@ -0,0 +1,60 @@ +--- +date: 2017-05-06 +title: April Recap – Burnout and Declining Growth +slug: progress-report-7 +series: ["transparency"] +tags: ["company", "progress"] +--- + +April was the most difficult month yet. +I [Launched Version 5.0](/blog/insomnia-5-announcement/) with +some large new features, and the release went fairly smoothly. +However, 5.0 introduced a major compatibility problem for subset of Linux and +OSX versions. This unexpected headache piled on a lot of stressful +work, leading to a dark spiral of burnout. I ended taking the second half +of the month off (for the most part) to recover. + + + +_If you like this post, be sure to check out [the other recaps](/series/transparency/). +There's one every month!_ + +## April Metrics Overview + +Since inception, the rate of growth of Insomnia's user base has been steadily decreasing +every month, from +30% to +10%. This decrease is to be expected as Insomnia outgrows +the early adopter market. However, if this number drops below 10% I'll be worried. +Revenue growth is still very healthy though, which is awesome to see. + +| Metric | Value This Month | Change | Reaction | +| ------------------------- | ---------------- | --------- | ---------- | +| Active App Users | 24,203 | +10% | 😐 | +| New App Users | 10,035 | +7% | 😐 | +| Monthly Recurring Revenue | $660 | +35% | 🙂 | +| Recognized Revenue | $1045 | +63% | 😂 | +| New Trial Customers | 224 | +10% | 😧 | +| New Paying Customers | 19 | -13% | 😧 | +| Churned Customers | 4 | +33% | 😧 | +| Trial Conversion Rate | 8% | -27% | 🙂 | + +The following chart does a great job of visualizing the user growth decline. +If you connect the peaks with a straight line you'll see that growth has been roughly +linear since January. This is likely due to low word-of-mouth referral traffic, which is +perplexing because Insomnia users are consistently fanatical. + +![Insomnia Daily Active Users February 2017](/images/blog/dau-10.png) + +MRR growth has also been declining steadily over the last few months, although it's still +in a healthy place at +35%. + +![Insomnia Monthly Recurring Revenue February 2017](/images/blog/mrr-10.png) + +## Wrap Up + +I've mentioned in previous posts that I want to spend more time on content and marketing +but have yet to have the motivation to do so. Now that growth is a problem, I +have no choice. Everyone knows that building a great product does not guarantee success +and I'm beginning to live that reality. It's time to make some changes. + +As always, let me know if you have any feedback or thoughts, and enjoy the app! + diff --git a/website/site/content/blog/progress-reports/progress-report-8.md b/website/site/content/blog/progress-reports/progress-report-8.md new file mode 100644 index 0000000000..76676089e0 --- /dev/null +++ b/website/site/content/blog/progress-reports/progress-report-8.md @@ -0,0 +1,49 @@ +--- +date: 2017-06-07 +title: May Recap – Open Source and Community Building +slug: progress-report-8 +series: ["transparency"] +tags: ["company", "progress"] +--- + +On May 10th, I [Announced](/blog/open-source-announcement/) +that the Insomnia desktop app is now open source under the GNU AGPLv3 license. + + + +_If you like this post, be sure to check out [the other recaps](/series/transparency/). +There's one every month!_ + +## May Metrics Overview + +Because the [open source announcement](/blog/open-source-announcement/) +made it to the front page of Hacker News, there was a massive **65% increase in new users**. +This also lead to a significant bump in paid customers. + +| Metric | Value This Month | Change | Reaction | +| ------------------------- | ---------------- | --------- | ---------- | +| Active App Users | 33,452 | +38% | 😀 | +| New App Users | 16,543 | +65% | 😀 | +| Monthly Recurring Revenue | $848 | +28% | 😀 | +| Recognized Revenue | $1234 | +18% | 😐 | +| New Trial Customers | 455 | +103% | 😀 | +| New Paying Customers | 28 | +47% | 😀 | +| Churned Customers | 5 | +25% | 😐 | +| Trial Conversion Rate | 6% | -33% | 😧 | + +![Daily Active Users](/images/blog/dau-11.png) + +![Monthly Recurring Revenue](/images/blog/mrr-11.png) + +## Wrap Up + +It's been a few weeks since Insomnia went open source and it's been a wild ride so far! +The [GitHub repo](https://github.com/getinsomnia/insomnia) is now at **3,900 stars and +127 forks**, and there are over **60 members in the [Slack Group](https://chat.insomnia.rest/)**. + +The open source announcement also amassed a tonne of unexpected positivity from users. +Countless people have reached out to say "thanks" and many others have submitted bug +reports, feature request, and pull requests. + +I want to give a huge "thanks" to everyone for all the support, and I can't wait to see +what happens next! diff --git a/website/site/content/blog/progress-reports/progress-report-9.md b/website/site/content/blog/progress-reports/progress-report-9.md new file mode 100644 index 0000000000..2e4ff67cab --- /dev/null +++ b/website/site/content/blog/progress-reports/progress-report-9.md @@ -0,0 +1,69 @@ +--- +date: 2017-07-01 +title: June Recap – A Roller Coaster +slug: progress-report-9 +series: ["transparency"] +tags: ["company", "progress"] +--- + +If you were to ask me which month has felt the most like a roller coaster, it +would have been June. Major community-developed features were released 🦄, a blog post +[hit front page 😄](https://news.ycombinator.com/item?id=14622528) of Hacker News, +Smashing Magazine [tweeted about Insomnia 🤗](https://twitter.com/smashingmag/status/872165992708927488), +the first churn of Insomnia Teams happened 😤, and there were an annoyingly large +increase of failed payments 😤. And, to top it all off, June's metrics look extremely sad +due to the huge spike of traffic that happened in May 😳. + + + +_If you like this post, be sure to check out [the other recaps](/series/transparency/). +There's one every month!_ + +## Metrics Overview + +This month's metrics are low across the board due to the spike of traffic the previous month. +However, I'm surprised that the number of paid conversions is so low +because the 14 day trials from the traffic spike should have started converting at the +beginning of the month. + +My theory for the lack of conversions is that, because the announcement was centered around +_free open source software_, it was more likely to attract users who don't typically buy +software. There's really no way to prove this, but I think the overall effect of more +users is still a net win. + +| Metric | Value This Month | Change | Reaction | +| ------------------------- | ---------------- | --------- | ---------- | +| Active App Users | 33,995 | +2% | 😐 | +| New App Users | 13,349 | -19% | 😧 | +| Monthly Recurring Revenue | $925 | +9% | 😐 | +| Recognized Revenue | $1332 | +8% | 😐 | +| New Trial Customers | 415 | -9% | 😧 | +| New Paying Customers | 17 | -39% | 😐 | +| Churned Customers | 9 | +80% | 😧 | +| Trial Conversion Rate | 4% | -33% | 😐 | + +As mentioned, June's metrics are lower compared to the huge increase in May. However, if +you ignore May's spike, growth is still on a similar upward path as it has been.🙂 + +![Daily Active Users](/images/blog/dau-12.png) + +The first team churns happened in June, which was an unwelcome surprise. I reached out to +both team accounts, but only one replied saying that they loved Insomnia, but no longer had +a use for the application. I wish I were able to get feedback from the other team as well. + +Such a large churn bummed me out for a few days, but I bounced back pretty quick! Money has +never been much of a motivation, so I was quickly brought back into reality by all of the +other awesome things that this project brings me (writing code, community, feedback, etc). + +![Monthly Recurring Revenue](/images/blog/mrr-12.png) + +## Wrap Up + +Well that's it for this month! Along with this, I will be publishing a 1-year recap before +the end of the month, as June marked the 12th month since I've been working on Insomnia full-time. + +I've also had some requests to add a few more metrics and to these posts. I'd like to +keep the monthly recaps short and focused, but I might try to publish one-off posts to +cover notable discoveries or insights that come up. Let me know if you have any ideas in +the comments below. + diff --git a/website/site/content/blog/revamped-documentation.md b/website/site/content/blog/revamped-documentation.md new file mode 100644 index 0000000000..a2b3ccdf32 --- /dev/null +++ b/website/site/content/blog/revamped-documentation.md @@ -0,0 +1,61 @@ +--- +date: 2017-11-13 +title: New Documentation Website +slug: new-documentation-website +tags: ["announcement"] +--- + +I'm happy to announce that there is a brand new +[Documentation Website](https://support.insomnia.rest) for Insomnia! +The new site is built using [HelpScout](http://helpscout.com/) Knowledge Base, which was +chosen for two reasons. (1) Insomnia was already using HelpScout to manage support email, +and (2) it solved three of the major shortcomings of the old documentation site with no extra +development effort. + + + +## Lower Maintenance Friction 📝 + +Creating and updating help docs on the old system was not easy. It required +creating or editing markdown files in a text editor, syncing changes with Git, and deploying +a new release. This meant simple things like fixing a typo could take upwards of ten minutes. +And don't even get me started on how hard it was to add screenshot images. + +With the new system, all editing is done online. This makes creating, organizing, and managing +help articles a breeze and should dramatically increase the quality of documentation in the +future. Also, uploading screenshots is as simple as dragging or pasting an image into the editor. + +## Better Discoverability 🔍 + +HelpScout's Knowledge Base tool is specifically designed for hosting documentation so it +comes bundled with many features that help improve discoverability. The main one being search. + +![Documentation Search](/images/blog/docs-search.png) + +If you visit the main [insomnia.rest](https://insomnia.rest/) website, you will also notice a +help _beacon_ at the bottom-right of every page. This beacon gives the ability to quickly search +and view help articles and provides the option to send an email if more assistance is required. + +## Search Analytics 📊 + +With the old documentation site it was possible to tell what the most popular _existing_ +articles were, but it was impossible to tell which help articles didn't exist yet that +should be created. This is where search comes in. Search terms that yield no results can +effectively be treated as a to-do list for documentation. + +In fact, less than a day after launching the new documentation site, there were +many failed searches for _graphql_. So, I put together an article on +[Using GraphQL](support.insomnia.rest/article/61-graphql) in less than an hour and published it +that same day! + +![Search Analytics](/images/blog/docs-analytics.png) + +## Wrap-Up + +It's been less than a week since the new [Documentation Website](https://support.insomnia.rest) +has been live but it's already having a positive effect. The reduced editing friction has +already improved the quality of articles and I already have a growing list of new articles +that need creating. + +I hope you all enjoy the new and improved documentation site and please feel free to reach out +with any feedback or questions you may have! diff --git a/website/site/content/blog/slack-channel.md b/website/site/content/blog/slack-channel.md new file mode 100644 index 0000000000..6d6d70122f --- /dev/null +++ b/website/site/content/blog/slack-channel.md @@ -0,0 +1,20 @@ +--- +date: 2017-05-11 +title: You're Invited to The Slack Team +slug: slack-channel +tags: ["announcement"] +--- + +Since the [Open Source Announcement](/blog/open-source-announcement/) yesterday, many +people have submitted bugs, asked questions, and proposed features via GitHub issues. +However, this is not always the most suitable medium for discussion. Now, Thanks +to a [suggestion](https://github.com/getinsomnia/insomnia/issues/188) by `ctnordcl`, I've +created a public Slack Team that anyone can join. + +

+Join Insomnia on Slack +

+ +So, head on over, introduce yourself, and join in on the discussion. + +See you there! diff --git a/website/site/content/blog/themes.md b/website/site/content/blog/themes.md new file mode 100644 index 0000000000..20529228fa --- /dev/null +++ b/website/site/content/blog/themes.md @@ -0,0 +1,39 @@ +--- +date: 2017-01-23 +title: Introducing Color Themes! +slug: introducing-color-themes +tags: ["announcement", "feature"] +--- + +Superb design has always been treated as a core feature of Insomnia. However, I recently +noticed that no design-related work had been done on Insomnia in months. Because of this, +I decided to spend a few days and implement a new design-related feature. Themes! + + + +There are now **nine themes to choose from**. Three _basic_ and +and six _premium_. Basic themes are available to everyone, while premium themes +are available [Insomnia Plus](/pricing/) users. + +## Basic Themes + +The idea of themes first started as a way to provide better visual accessibility to +Insomnia users. The following _Basic_ themes provide a higher-contrast experience for +users who want or need it. + +Insomnia Color Themes + +## Premium Themes + +The following _Premium_ themes are available to all [Insomnia Plus](/pricing/) users. I had +a lot of fun creating these, and I hope to expand on this collection in the future. + +Insomnia Premium Color Themes + +For a closer look, here is a larger screenshot of the Material theme (my favourite). + +![Insomnia Material Design Theme](/images/blog/material-theme.png) + +
+ +I hope you enjoy the new colors. Let me know if you have any suggestions for more! diff --git a/website/site/content/blog/unix-domain-sockets.md b/website/site/content/blog/unix-domain-sockets.md new file mode 100644 index 0000000000..e56a4fac2b --- /dev/null +++ b/website/site/content/blog/unix-domain-sockets.md @@ -0,0 +1,47 @@ +--- +date: 2017-06-20 +title: Introducing Unix Domain Socket Support +slug: unix-domain-sockets +tags: ["feature"] +--- + +One of the headlining features of [Insomnia 5.4.0](/changelog/5.4.0/) is support for +[UNIX Domain Sockets](https://en.wikipedia.org/wiki/Unix_domain_socket) – a mechanism +typically used for communication between processes running on the same host operating +system. This post gives a brief introduction on connecting to a socket within Insomnia. + + + +In order for Insomnia to distinguish socket requests, a slightly different +URL syntax is required. The following syntax was borrowed from the popular NodeJS +[`request`](https://github.com/request/request#unix-domain-sockets) library. + +```bash +# Syntax for UNIX domain sockets +http://unix:$SOCKET:$PATH +``` + +_Note: This feature provides same functionality as using the +`--unix-socket FILE` flag with `curl`._ + +## Example Using Docker Engine API + +To demonstrate socket support, we'll issue a request to the `/images` endpoint that is exposed +by the [Docker Engine's](https://docs.docker.com/engine/api/v1.24/) socket API. +Using the following URL in Insomnia will list the available Docker images on the host machine. + +```bash +# Sample URL to communicate with Docker socket +http://unix:/var/run/docker.sock:/v1.24/images/json +``` + +This URL is specifying the path to the socket (`/var/run/docker.sock`) and the API +endpoint path (`/v1.24/images/json`) using the previously mentioned URL syntax. Here's what +it looks like within Insomnia. + +![Domain Sockets Example](/images/blog/unix-sockets.png) + +Since the Docker socket communicates using HTTP and JSON, it looks indistinguishable from +regular TCP/IP-based HTTP requests being made over the network. + +And that's it! I can't wait to hear what you think! diff --git a/website/site/content/blog/using-github-api.md b/website/site/content/blog/using-github-api.md new file mode 100644 index 0000000000..28b9c6c409 --- /dev/null +++ b/website/site/content/blog/using-github-api.md @@ -0,0 +1,179 @@ +--- +date: 2017-06-23 +title: GitHub API Authentication using OAuth 2.0 +slug: oauth2-github-api +tags: [] +series: ["tutorial"] +--- + +OAuth 2.0 has been a supported authentication scheme in Insomnia for some time now but – if +you are new to OAuth – can still be quite complicated. +This post walks through an example using OAuth 2.0 to authenticate and create a +repository on GitHub using the [GitHub API](https://developer.github.com/v3/). + +

+If you don't already have a GitHub OAuth application registered for your account, you can +create a one from Developer Settings +Note, "Callback URL" can be whatever you want for this tutorial. +

+ +## Gathering OAuth Credentials + +The GitHub API uses the OAuth _Authorization Code_ grant type, which requires five things +from you. Note that you don't need to know what a _grant type_ is to follow along. + +**Client ID**, **Client Secret**, and **Callback URL**: +: These are specific to the GitHub OAuth application and can be found on its + [details page](https://github.com/settings/developers). The **Callback URL** is often + optional but we're going to specify it anyway in the name of completeness. + +**Authorization URL** and **Access Token URL**: +: These are static values, listed on the [GitHub API Docs](https://developer.github.com/apps/building-integrations/setting-up-and-registering-oauth-apps/about-authorization-options-for-oauth-apps/). + As a convenience, Insomnia will autocomplete these while you type them and I will also include + them here:
+ `http://github.com/login/oauth/authorize`
+ `https://github.com/login/oauth/access_token` + +This following step is optional, but I recommend specifying the application-specific values +as [Environment Variables](/documentation/environment-variables/) so they can easily be reused +or modified. For my setup, I have created a sub environment called "Test Application" and included +the following JSON value: + +```json +{ + "client_id": "fa122270cdf09954296d", + "client_secret": "274e6d43420c73d9c89f52a4a99a9731e6bdb96c", + "redirect_url": "https://insomnia.rest" +} +``` + +

+Don't forget to activate your new environment in the sidebar after creating it +

+ +Now that we have everything we need, let's start setting up a request. + +## Setting Up The Request + +Most read-only endpoints on GitHub don't require authentication (not very useful for +demoing OAuth) so we'll be using the +[create repository](https://developer.github.com/v3/repos/#create) endpoint for this +demonstration. + +To get started, open Insomnia and create a new request by the name of "Create Repository". +Then, copy and paste the following curl command into the URL bar. + +

+We're making use of Insomnia's import from Curl feature here to +save on typing. +

+ +```bash +curl --request POST \ + --url 'https://api.github.com/user/repos' \ + --header 'content-type: application/json' \ + --data '{ + "name": "insomnia-test-repo", + "description": "Test repo for Insomnia tutorial" +}' +``` + +You should end up with a request that looks like this. + +![Imported request](/images/blog/github-oauth/request.png) + +## Setting up OAuth 2.0 + +If you sent the request now, before setting up authentication, you would receive a +`401 Unauthorized` response. This is because the `POST /user/repos` endpoint requires +an OAuth token to be sent with the request. However, obtaining an OAuth token manually is not +easy and requires multiple, complicated steps. This is where Insomnia into play. + +Insomnia deals with the complex task of obtaining and managing OAuth tokens so you don't +have to. You don't even need to understand how it works – although I still recommend you learn. 👩‍💻 + +Now, back to the request. Select the Auth tab of your "Create Repository" request and change +the authentication type to "OAuth 2". After doing that, fill out the values you collected earlier. +If you made use of environment variables, it should look something like this. + +![Fill out authentication settings](/images/blog/github-oauth/authentication-settings.png) + +Congratulations! The request is now ready to be sent. 😄👏🤖 + +## Sending the Request + +

+Submitting the following request will create a new repository on your GitHub account. You can +delete the respository from the GitHub website later. +

+ +As soon as you send the request, Insomnia will detect that a token has not yet been obtained and +start the authentication process. You will be prompted to sign in with your GitHub +credentials and authorize the OAuth application to act on your behalf. + +![Allow application access](/images/blog/github-oauth/authorize.png) + +After logging in, the token will be extracted from the resulting URL and stored in Insomnia. +The request will then be sent using the newly acquired token. If all went well +you should see a successful `201 Created` response with information about your newly +created repository. + +![Create repository response](/images/blog/github-oauth/response.png) + +

+Make use of Insomnia's response filtering by entering a JSONPath query such as +$.owner.login below the response body +

+ +## More About OAuth 2.0 + +Even though Insomnia handles most of the complexities of OAuth for you, there are a +few notable things that may come in handy. + +### Viewing the Authorization Header + +If you take a look at the Timeline tab, you will see the `Authorization` header that +was sent with the request. The value of the header `Bearer ` contains the token that +Insomnia extracted during the login process. This token will also appear in the Auth +tab of the request, where you can either refetch a new token or clear the existing one. + +![Timeline view](/images/blog/github-oauth/timeline.png) + +### Expiring Tokens and Refresh Tokens + +Some OAuth 2.0 APIs make use of expiring tokens and/or refresh tokens. If the API token +received has an expiry, Insomnia will show it at the bottom of the Auth tab. If a token expires, +Insomnia will automatically try to refresh it when the next request. You can also trigger a +refresh manually from the Auth tab. + +### Other Grant Types + +OAuth 2.0 defines four [grant types](https://tools.ietf.org/html/rfc6749#section-1.3) +that can be used to fetch a token, each to facilitate different use cases. + +- Authorization Code +- Implicit +- Resource Owner Password Credentials +- Client Credentials + +Insomnia supports all of these grant types and will take care of all the complexities so you +don't have to. + +

+OAuth 2.0 has the ability for custom grant types, but these are not +yet supported +

+ +### Login Window Cookies + +Currently, the OAuth 2.0 login window uses a single global session that is cleared on every +restart of the app. That means, if you already signed in with one GitHub account, it won't need +ask you again. However, this also means that, if you want to switch GitHub accounts, you will +need to restart the app to clear the current session. + +## Wrap-Up + +There have been a significant number of users asking for help with the OAuth 2.0 process. +Hopefully this post was able to clear up some of the more common issues around the OAuth process. +Even if you are not interacting with the GitHub API specifically, the information covered +here will work for most other OAuth 2.0 APIs. diff --git a/website/site/content/changelog-json/v3.0.10.md b/website/site/content/changelog-json/v3.0.10.md new file mode 100644 index 0000000000..8241e4c7e2 --- /dev/null +++ b/website/site/content/changelog-json/v3.0.10.md @@ -0,0 +1,13 @@ +--- +title: Insomnia v3.0.10 Release +slug: 3.0.10 +date: '2016-07-25T20:31:28-07:00' +major: +- Redesigned interface +- No longer a Chrome app +- Lots more! +--- + +Welcome to the first beta release of v3.0! If you have any complaints, +questions, comments, or just want to chat, send an email to +support@insomnia.rest. diff --git a/website/site/content/changelog-json/v3.0.11.md b/website/site/content/changelog-json/v3.0.11.md new file mode 100644 index 0000000000..af02763768 --- /dev/null +++ b/website/site/content/changelog-json/v3.0.11.md @@ -0,0 +1,17 @@ +--- +title: Insomnia v3.0.11 Release +slug: 3.0.11 +date: '2016-07-27T19:33:15-07:00' +major: +- Format JSON even when JSON content-type response header missing +- Remember last window size and position on launch +minor: +- Made the import feature more apparent on first launch +- Now check for updates every hour (instead of just on launch) +fixes: +- Drag-n-drop folders now works again (oops) +- Adjusted sidebar colors for better visibility +--- + +Here a few minor updates based on the first round of beta feedback. Keep +sending your feedback to support@insomnia.rest :) diff --git a/website/site/content/changelog-json/v3.0.13.md b/website/site/content/changelog-json/v3.0.13.md new file mode 100644 index 0000000000..5671020513 --- /dev/null +++ b/website/site/content/changelog-json/v3.0.13.md @@ -0,0 +1,15 @@ +--- +title: Insomnia v3.0.13 Release +slug: 3.0.13 +date: '2016-07-28T18:19:47-07:00' +major: +- Added setting to disable SSL validation +- Save and send cookies (more/better cookie support coming soon...) +minor: +- Made initial app window size larger +- Specify that environment data needs to be JSON format +fixes: +- Fixed bug where certain input fields would override user input +- Params editor now scrolls when too long +--- + diff --git a/website/site/content/changelog-json/v3.0.14.md b/website/site/content/changelog-json/v3.0.14.md new file mode 100644 index 0000000000..20e4ab2579 --- /dev/null +++ b/website/site/content/changelog-json/v3.0.14.md @@ -0,0 +1,13 @@ +--- +title: Insomnia v3.0.14 Release +slug: 3.0.14 +date: '2016-07-29T16:31:40-07:00' +fixes: +- Environment editor now updates properly again +minor: +- Adjusted cursor padding in the request body editor +- 'Remember zoom level on app launch (note: your saved window size/position will +be reset)' +--- + +Just a few minor fixes. Nothing to see here... diff --git a/website/site/content/changelog-json/v3.0.15.md b/website/site/content/changelog-json/v3.0.15.md new file mode 100644 index 0000000000..2a4a04eaf1 --- /dev/null +++ b/website/site/content/changelog-json/v3.0.15.md @@ -0,0 +1,10 @@ +--- +title: Insomnia v3.0.15 Release +slug: 3.0.15 +date: '2016-07-29T20:31:19-07:00' +fixes: +- Request body editor now updates again when changing modes +- JSON highlighting edge case fixed +--- + +A few more small things before the weekend. diff --git a/website/site/content/changelog-json/v3.0.16.md b/website/site/content/changelog-json/v3.0.16.md new file mode 100644 index 0000000000..3616502fe4 --- /dev/null +++ b/website/site/content/changelog-json/v3.0.16.md @@ -0,0 +1,8 @@ +--- +title: Insomnia v3.0.16 Release +slug: 3.0.16 +date: '2016-08-03T16:57:51-07:00' +fixes: +- Fix for app crash on first launch +--- + diff --git a/website/site/content/changelog-json/v3.2.0.md b/website/site/content/changelog-json/v3.2.0.md new file mode 100644 index 0000000000..12b8be2787 --- /dev/null +++ b/website/site/content/changelog-json/v3.2.0.md @@ -0,0 +1,25 @@ +--- +title: Insomnia v3.2.0 Release +slug: 3.2.0 +date: '2016-08-09T22:13:16-07:00' +major: +- Can now create global environments! (folder environments will extend them) +- Cookie management! View/create/update/delete those tasty cookies +- Now generate code snippets for nodeJS, Java, Python, Go, and more! +- Added new Cookies tab to response pane +- Added network proxy setting (experimental) +minor: +- Now prompt for name when creating new requests and folders +- Now support Nunjucks templating in form data bodies +- Focusing URL bar (cmd+L) now selects text all text +- Minor style updates +- Exported data now includes workspace information +- Added ability to export only the current workspace +fixes: +- Data export now exports properly (was broken before) +- Fixed the key/value editor from resetting cursor while typing +- Send-request keyboard shortcut no longer adds new key/value pairs +--- + +This release brings cookie management, global environments, and code snippet +generation. diff --git a/website/site/content/changelog-json/v3.2.1.md b/website/site/content/changelog-json/v3.2.1.md new file mode 100644 index 0000000000..637aa5e8a4 --- /dev/null +++ b/website/site/content/changelog-json/v3.2.1.md @@ -0,0 +1,12 @@ +--- +title: Insomnia v3.2.1 Release +slug: 3.2.1 +date: '2016-08-17T17:49:00-07:00' +fixes: +- Settings dialog no longer resets after toggling +- Request duplication works again +- Silence auto-update errors when no internet +minor: +- Params tab Url Preview is now selectable +- Add hotkey for app minimize +--- diff --git a/website/site/content/changelog-json/v3.2.2.md b/website/site/content/changelog-json/v3.2.2.md new file mode 100644 index 0000000000..aaa9069031 --- /dev/null +++ b/website/site/content/changelog-json/v3.2.2.md @@ -0,0 +1,10 @@ +--- +title: Insomnia v3.2.2 Release +slug: 3.2.2 +date: '2016-08-23T17:56:50-07:00' +fixes: +- Cookies dialog showed nothing in some cases +minor: +- Linux version will now prompt when an update is available +--- + diff --git a/website/site/content/changelog-json/v3.2.3.md b/website/site/content/changelog-json/v3.2.3.md new file mode 100644 index 0000000000..fde96055c6 --- /dev/null +++ b/website/site/content/changelog-json/v3.2.3.md @@ -0,0 +1,14 @@ +--- +title: Insomnia v3.2.3 Release +slug: 3.2.3 +date: '2016-08-28T17:56:50-07:00' +major: +- Added ability to edit headers in bulk +fixes: +- Environment manager now shows detailed JSON errors when invalid +minor: +- Improved menu bar menus on MacOS +- Update Nunjucks to version 2.4.2 +--- + +Bulk header editing is back for those who missed it coming from version 2.0! diff --git a/website/site/content/changelog-json/v3.2.6.md b/website/site/content/changelog-json/v3.2.6.md new file mode 100644 index 0000000000..5b25735747 --- /dev/null +++ b/website/site/content/changelog-json/v3.2.6.md @@ -0,0 +1,11 @@ +--- +title: Insomnia v3.2.6 Release +slug: 3.2.6 +date: '2016-09-01T17:56:50-07:00' +fixes: +- Stop checking for updates after initial update prompt +minor: +- Add helpful hints on certain request errors +- Increased default font size (adjustable with ctrl+Plus and ctrl+Minus) +--- + diff --git a/website/site/content/changelog-json/v3.2.9.md b/website/site/content/changelog-json/v3.2.9.md new file mode 100644 index 0000000000..e7da652590 --- /dev/null +++ b/website/site/content/changelog-json/v3.2.9.md @@ -0,0 +1,12 @@ +--- +title: Insomnia v3.2.9 Release +slug: 3.2.9 +date: '2016-09-03T17:56:50-07:00' +fixes: +- Properly encode URI paths (like v2.0 used to) +- Copy/paste from context menu now works on Windows and Linux +minor: +- More flexible JSON content-type matching for responses +- Editor rendering no longer blocks UI navigation on larger responses +--- + diff --git a/website/site/content/changelog-json/v3.3.1.md b/website/site/content/changelog-json/v3.3.1.md new file mode 100644 index 0000000000..e2379f2044 --- /dev/null +++ b/website/site/content/changelog-json/v3.3.1.md @@ -0,0 +1,15 @@ +--- +title: Insomnia v3.3.1 Release +slug: 3.3.1 +date: '2016-09-05T17:56:50-07:00' +fixes: +- Small bug causing some dialogs to not work +major: +- Improved speed of rendering large responses +- Old responses are no longer kept around when not needed +- Decreased initial app loading times +- Reduced RAM usage +--- + +Feature development for the public beta is coming to an end so this release +is all about performance. diff --git a/website/site/content/changelog-json/v3.3.2.md b/website/site/content/changelog-json/v3.3.2.md new file mode 100644 index 0000000000..9e11d86980 --- /dev/null +++ b/website/site/content/changelog-json/v3.3.2.md @@ -0,0 +1,9 @@ +--- +title: Insomnia v3.3.2 Release +slug: 3.3.2 +date: '2016-09-10T17:56:50-07:00' +fixes: +- Template variables were being persisted after render in some cases +- Fixed incorrect binding of checkbox label in settings +--- + diff --git a/website/site/content/changelog-json/v3.4.1.md b/website/site/content/changelog-json/v3.4.1.md new file mode 100644 index 0000000000..b2ce6f8d87 --- /dev/null +++ b/website/site/content/changelog-json/v3.4.1.md @@ -0,0 +1,34 @@ +--- +title: Insomnia v3.4.1 Release +slug: 3.4.1 +date: '2016-09-13T17:56:50-07:00' +major: +- XML response formatting +- XPath and JSONPath filtering for responses +- Workspaces now appear in the Quick Switcher +- Hide the sidebar with ctrl+\\ (cmd on Mac) +- Use template variables inside environments +- Ability to beautify the request body for JSON or XML +- Added button to cancel the current request +minor: +- Added ability to duplicate folders +- Add extra prompt before deleting things +- Added Nunjucks tags {% timestamp %} and {% uuid %} +- Renamed Params tab to Query to avoid confusion +- Improved response Raw view performance +- Comments in editor are now more visible +- Reduced update check frequency from 30 minutes to 3 hours +fixes: +- Fixed minor bug with Curl import +- Querystring is now added to generated code (oops) +- Can now re-open window via doc icon if closed (Mac) +- HTTPS proxy now works again +- Dragging sidebar dropdowns no longer triggers drag-n-drop +- Global shortcuts (like sending request) are now prevented when dialogs are open +--- + +I want to start off by saying hello to everyone who found Insomnia on the front +page of Hacker News! This update addresses some of the feedback received from +over 200 email conversations. + +Enjoy! diff --git a/website/site/content/changelog-json/v3.4.4.md b/website/site/content/changelog-json/v3.4.4.md new file mode 100644 index 0000000000..a83c8d7bdf --- /dev/null +++ b/website/site/content/changelog-json/v3.4.4.md @@ -0,0 +1,15 @@ +--- +title: Insomnia v3.4.4 Release +slug: 3.4.4 +date: '2016-09-21T01:58:49-07:00' +minor: +- Specify better default monospace font for Windows +fixes: +- Fixed environments not refreshing or updating sometimes +- Fixed sidebar double toggling with keyboard shortcut +- Fix for certain users that could not communicate with localhost +- Fixed bug that allowed the addition of multiple rows on the auth form +--- + +This update contains a few fixes and a lot of under-the-hood stuff that +you (hopefully) won't notice. diff --git a/website/site/content/changelog-json/v3.5.1.md b/website/site/content/changelog-json/v3.5.1.md new file mode 100644 index 0000000000..a29fce67f4 --- /dev/null +++ b/website/site/content/changelog-json/v3.5.1.md @@ -0,0 +1,15 @@ +--- +title: Insomnia v3.5.1 Release +slug: 3.5.1 +date: '2016-09-22T19:27:39-07:00' +major: +- Huge performance improvements for bulk action like deleting/duplicating folders +minor: +- No longer encode already encoded URLs +- Updates are now served through a CDN (faster downloads) +fixes: +- Fixed styles for cookie editor filter text box +- Fixed double encoding spaces in urls +- Improved layout for bulk headers editor +--- + diff --git a/website/site/content/changelog-json/v3.5.10.md b/website/site/content/changelog-json/v3.5.10.md new file mode 100644 index 0000000000..a3e6a75728 --- /dev/null +++ b/website/site/content/changelog-json/v3.5.10.md @@ -0,0 +1,10 @@ +--- +title: Insomnia v3.5.10 Release +slug: 3.5.10 +date: '2016-10-05T16:52:28-07:00' +minor: +- Better handling of malformed cookies +fixes: +- Syntax checking in editor now works again +--- + diff --git a/website/site/content/changelog-json/v3.5.11.md b/website/site/content/changelog-json/v3.5.11.md new file mode 100644 index 0000000000..dcb11aa918 --- /dev/null +++ b/website/site/content/changelog-json/v3.5.11.md @@ -0,0 +1,9 @@ +--- +title: Insomnia v3.5.11 Release +slug: 3.5.11 +date: '2016-10-06T17:39:13-07:00' +minor: +- Reworded some error messages +- Made cookie parsing less strict (closer to web browser behaviour) +--- + diff --git a/website/site/content/changelog-json/v3.5.12.md b/website/site/content/changelog-json/v3.5.12.md new file mode 100644 index 0000000000..3b47db6850 --- /dev/null +++ b/website/site/content/changelog-json/v3.5.12.md @@ -0,0 +1,8 @@ +--- +title: Insomnia v3.5.12 Release +slug: 3.5.12 +date: '2016-10-10T18:27:02-07:00' +fixes: +- Fixed certain connection problems related to HTTP keep-alive +--- + diff --git a/website/site/content/changelog-json/v3.5.13.md b/website/site/content/changelog-json/v3.5.13.md new file mode 100644 index 0000000000..38c4f7e6f7 --- /dev/null +++ b/website/site/content/changelog-json/v3.5.13.md @@ -0,0 +1,13 @@ +--- +title: Insomnia v3.5.13 Release +slug: 3.5.13 +date: '2016-10-11T17:21:26-07:00' +fixes: +- Some improvements for URL pathname encoding +- Setting to disable following redirects now works again +minor: +- Update code generation for Swift 3 +- Prevent window from being placed outside viewable desktop on launch +- Updates no longer prompt the user, but show an unobtrusive notification instead +--- + diff --git a/website/site/content/changelog-json/v3.5.2.md b/website/site/content/changelog-json/v3.5.2.md new file mode 100644 index 0000000000..1637ec851e --- /dev/null +++ b/website/site/content/changelog-json/v3.5.2.md @@ -0,0 +1,10 @@ +--- +title: Insomnia v3.5.2 Release +slug: 3.5.2 +date: '2016-09-24T03:00:39-07:00' +minor: +- Query tab parameters no longer encode already encoded data +fixes: +- Fixed code generation not working in some cases +--- + diff --git a/website/site/content/changelog-json/v3.5.3.md b/website/site/content/changelog-json/v3.5.3.md new file mode 100644 index 0000000000..093e150e48 --- /dev/null +++ b/website/site/content/changelog-json/v3.5.3.md @@ -0,0 +1,13 @@ +--- +title: Insomnia v3.5.3 Release +slug: 3.5.3 +date: '2016-09-28T22:24:05-07:00' +minor: +- Now automatically treat responses without Content-Type as JSON if possible +fixes: +- Fixed certain data being reset after changing HTTP method +- Fixed response viewer showing nothing for malformed responses +--- + +This week I began work on a cloud sync feature (premium)! If you're interested +in sync, I'd love to chat at support@insomnia.rest. diff --git a/website/site/content/changelog-json/v3.5.6.md b/website/site/content/changelog-json/v3.5.6.md new file mode 100644 index 0000000000..0a97e80a70 --- /dev/null +++ b/website/site/content/changelog-json/v3.5.6.md @@ -0,0 +1,11 @@ +--- +title: Insomnia v3.5.6 Release +slug: 3.5.6 +date: '2016-10-02T22:46:37-07:00' +major: +- Hide large responses by default to prevent app from hanging unexpectedly +minor: +- Add background color to editor line numbers +- Change DNS lookup method to use host machine getaddrinfo +--- + diff --git a/website/site/content/changelog-json/v3.5.7.md b/website/site/content/changelog-json/v3.5.7.md new file mode 100644 index 0000000000..d78533d36f --- /dev/null +++ b/website/site/content/changelog-json/v3.5.7.md @@ -0,0 +1,9 @@ +--- +title: Insomnia v3.5.7 Release +slug: 3.5.7 +date: '2016-10-05T05:13:09-07:00' +fixes: +- Fix for cookies not being saved sometimes +- Fix for environment editor line numbers background +--- + diff --git a/website/site/content/changelog-json/v3.6.0.md b/website/site/content/changelog-json/v3.6.0.md new file mode 100644 index 0000000000..5c87f69ef9 --- /dev/null +++ b/website/site/content/changelog-json/v3.6.0.md @@ -0,0 +1,14 @@ +--- +title: Insomnia v3.6.0 Release +slug: 3.6.0 +date: '2016-10-21T17:33:58-07:00' +fixes: +- Fixed scrolling bug for form encoded request bodies +- Fixed rare case where cursor would jump to the end of the URL +- The show passwords setting no longer requires an app restart +--- + +This update includes a few small fixes, and many under-the-hood changes to +prepare for the upcoming cloud sync beta. If you would like to participate, send +me an email at support@insomnia.rest + diff --git a/website/site/content/changelog-json/v3.6.2.md b/website/site/content/changelog-json/v3.6.2.md new file mode 100644 index 0000000000..6e234cbb92 --- /dev/null +++ b/website/site/content/changelog-json/v3.6.2.md @@ -0,0 +1,10 @@ +--- +title: Insomnia v3.6.2 Release +slug: 3.6.2 +date: '2016-10-25T02:01:10-07:00' +minor: +- Updates for the Insomnia Plus beta +fixes: +- Loading spinner no longer gets stuck when quitting the app mid-request +--- + diff --git a/website/site/content/changelog-json/v3.6.4.md b/website/site/content/changelog-json/v3.6.4.md new file mode 100644 index 0000000000..29f69cbcc2 --- /dev/null +++ b/website/site/content/changelog-json/v3.6.4.md @@ -0,0 +1,11 @@ +--- +date: 2016-10-26T20:35:02-07:00 +title: Insomnia v3.6.4 Release +slug: 3.6.4 +minor: + - Added PURGE and FIND custom HTTP methods + - New setting to force stacked layout + - Prefer IPv6 addresses and fallback to IPv4 on failure (same behaviour as curl) +fixes: + - Fixed problem where editing environment name would overwrite changes +--- diff --git a/website/site/content/changelog-json/v3.6.6.md b/website/site/content/changelog-json/v3.6.6.md new file mode 100644 index 0000000000..c173848d69 --- /dev/null +++ b/website/site/content/changelog-json/v3.6.6.md @@ -0,0 +1,12 @@ +--- +date: 2016-10-27T03:58:48-07:00 +title: Insomnia v3.6.6 Release +slug: 3.6.6 +major: +- Added support for responses that return images +fixes: +- Fixed some minor edge cases thanks to better error reporting in the last update +--- + +There is now a setting to enable the cloud sync beta features! Give them a try +and let me know what you think! diff --git a/website/site/content/changelog-json/v3.6.7.md b/website/site/content/changelog-json/v3.6.7.md new file mode 100644 index 0000000000..d9194aa740 --- /dev/null +++ b/website/site/content/changelog-json/v3.6.7.md @@ -0,0 +1,12 @@ +--- +date: 2016-11-01T10:53:38-07:00 +title: Insomnia v3.6.7 Release +slug: 3.6.7 +major: +- New option to download responses in the response preview dropdown +minor: +- Synced workspaces no longer default to automatic mode +fixes: +- Better handling of ENETUNREACH error +- Minor tweaks an fixes for the cloud sync beta +--- diff --git a/website/site/content/changelog-json/v3.6.8.md b/website/site/content/changelog-json/v3.6.8.md new file mode 100644 index 0000000000..a6afb51c55 --- /dev/null +++ b/website/site/content/changelog-json/v3.6.8.md @@ -0,0 +1,7 @@ +--- +date: 2016-11-07T12:22:03-08:00 +title: Insomnia v3.6.8 Release +slug: 3.6.8 +minor: +- Minor improvements and bug fixes +--- diff --git a/website/site/content/changelog-json/v3.7.0.md b/website/site/content/changelog-json/v3.7.0.md new file mode 100644 index 0000000000..d915665c5b --- /dev/null +++ b/website/site/content/changelog-json/v3.7.0.md @@ -0,0 +1,17 @@ +--- +date: 2016-11-15 +title: Insomnia v3.7.0 Release +slug: 3.7.0 +major: +- Insomnia Cloud Sync is here! +- Nested folders now supported +minor: +- Minor improvements and bug fixes +- Rearranges settings menus +fixes: +- Fixed incrementing response size on keep-alive connections +- App new refreshes after importing a Curl command +--- + +Version 3.7.0 brings with it the announcement of Insomnia Plus, a subscription add-on to Insomnia +that ensures all of your data is securely backed up and available on all of your devices! diff --git a/website/site/content/changelog-json/v3.7.1.md b/website/site/content/changelog-json/v3.7.1.md new file mode 100644 index 0000000000..62f97601af --- /dev/null +++ b/website/site/content/changelog-json/v3.7.1.md @@ -0,0 +1,11 @@ +--- +date: 2016-11-17 +title: Insomnia v3.7.1 Release +slug: 3.7.1 +minor: +- Improved error handling when editing form data +- Improved signup flow +fixes: +- Fix for environment not being used to render Query preview +- Minor bug fixes +--- diff --git a/website/site/content/changelog-json/v3.7.3.md b/website/site/content/changelog-json/v3.7.3.md new file mode 100644 index 0000000000..3a8004c792 --- /dev/null +++ b/website/site/content/changelog-json/v3.7.3.md @@ -0,0 +1,11 @@ +--- +date: 2016-11-18 +title: Insomnia v3.7.3 Release +slug: 3.7.3 +minor: +- No longer automatically URL encode semicolons or commas in URL pathname +- Some minor improvements to sync logic +fixes: +- Fixed app updates requiring two restarts to take effect +- Fixed credit card form to support American Express cards +--- diff --git a/website/site/content/changelog-json/v4.0.12.md b/website/site/content/changelog-json/v4.0.12.md new file mode 100644 index 0000000000..cdc1180d0a --- /dev/null +++ b/website/site/content/changelog-json/v4.0.12.md @@ -0,0 +1,12 @@ +--- +date: 2016-12-23 +title: Insomnia v4.0.12 Release +slug: 4.0.12 +major: +- Code editors now auto-closes brackets and quotes +fixes: +- Prevent sidebar dragging when editing request names +- Fix body still showing after switching to No Body +- Fix sidebar footer obscuring Beautify button when collapsed +- Added potential fix for some edge case DNS issues +--- diff --git a/website/site/content/changelog-json/v4.0.13.md b/website/site/content/changelog-json/v4.0.13.md new file mode 100644 index 0000000000..731314a44a --- /dev/null +++ b/website/site/content/changelog-json/v4.0.13.md @@ -0,0 +1,12 @@ +--- +date: 2016-12-30 +title: Insomnia v4.0.13 Release +slug: 4.0.13 +minor: +- Now import form data properly from Insomnia 2.0 +fixes: +- Fixed response size showing 0GB sometimes +- Temporary fix to automatically flush responses when DB file too big to load (256GB) +- Fixed filename not being added to multipart entries +- Fixed sync menu not showing up for some users +--- diff --git a/website/site/content/changelog-json/v4.0.2.md b/website/site/content/changelog-json/v4.0.2.md new file mode 100644 index 0000000000..0db18ac0a8 --- /dev/null +++ b/website/site/content/changelog-json/v4.0.2.md @@ -0,0 +1,42 @@ +--- +date: 2016-12-01 +title: Insomnia v4.0.2 Release +slug: 4.0.2 +link: https://insomnia.rest/blog/insomnia-4-announcement/ +summary: "Insomnia 4.0 is here, and is packed with awesome features and improvements!" +major: +- Insomnia is now out of beta! +- Multipart form support (with files) +- Binary data support (file uploads) +- Response history viewer +- Support for importing Postman v2 and HTTP Archive (HAR) formats +- All query parameters, headers, form data, and authentication items are now toggleable +- New advanced sending options (hold CMD on Mac or Ctrl on Windows) +- Huge performance improvements!!! +minor: +- Much better support for cURL import format (past command into URL) +- Code generation now remembers your preferences +- Can now import query parameters from Url to query editor +- Changed default request body type to none, and improved selection process +- Dropdowns now scroll instead of being cut off if not enough room +- Selected tab now remembered when changing requests +- Can now delete your last workspace (will prompt to create a new one) +- Show milliseconds when hovering over response time +- Show bytes when hovering over response size +fixes: +- Fixed nested folders not highlighting correctly sometimes +- Requests are now activated after duplicating +- Lots and lots of small fixes +- Fixed various import bugs +--- + +I'm happy to announce that version 4.0 is here! This marks the end of the five month +beta period since launch. I would like to thank the over 400 people who I've talked +to that helped make Insomnia great. + + + +![Puppy Surprise](https://media.giphy.com/media/t0TNY68t8wq2Y/giphy.gif) + + + diff --git a/website/site/content/changelog-json/v4.0.5.md b/website/site/content/changelog-json/v4.0.5.md new file mode 100644 index 0000000000..305c40626a --- /dev/null +++ b/website/site/content/changelog-json/v4.0.5.md @@ -0,0 +1,12 @@ +--- +date: 2016-12-05 +title: Insomnia v4.0.5 Release +slug: 4.0.5 +minor: +- Curl import now supports form data +- Deleting header/query/form items now required a confirmation click +fixes: +- Fixed header/query/form delete functionality +- Fixed some bugs in the installation process from some machines +- Attempt to fix icon on some Linux distributions +--- diff --git a/website/site/content/changelog-json/v4.0.9.md b/website/site/content/changelog-json/v4.0.9.md new file mode 100644 index 0000000000..1a8535567e --- /dev/null +++ b/website/site/content/changelog-json/v4.0.9.md @@ -0,0 +1,15 @@ +--- +date: 2016-12-08 +title: Insomnia v4.0.9 Release +slug: 4.0.9 +minor: +- Curl import now supports application/x-www-form-urlencoded +- Better error handling during requests +- Create top level folder when importing Postman collection +- Add default Accept header to all requests +- Add default User-Agent header to all requests +fixes: +- Recursive environment variables with double quotes now work +- Second attempt at fixing app icon for certain Linux environments +- Fixes for more advanced Curl import commands +--- diff --git a/website/site/content/changelog-json/v4.1.1.md b/website/site/content/changelog-json/v4.1.1.md new file mode 100644 index 0000000000..c6ff22e524 --- /dev/null +++ b/website/site/content/changelog-json/v4.1.1.md @@ -0,0 +1,15 @@ +--- +date: 2017-01-11 +title: Insomnia v4.1.1 Release +slug: 4.1.1 +summary: Welcome to 2017. This update brings support for Team sync and collaboration! +link: https://insomnia.rest/teams/ +major: +- Support for Insomnia Teams +minor: +- Sync is now more immediate +fixes: +- Manually set Host header no longer gets overridden +- Fixed synced workspaces reappearing after deletion +- Many other sync-related fixes +--- diff --git a/website/site/content/changelog-json/v4.2.0.md b/website/site/content/changelog-json/v4.2.0.md new file mode 100644 index 0000000000..815ffa2f97 --- /dev/null +++ b/website/site/content/changelog-json/v4.2.0.md @@ -0,0 +1,16 @@ +--- +date: 2017-01-23 +title: Insomnia v4.2.0 Release +slug: 4.2.0 +link: https://insomnia.rest/blog/introducing-color-themes/ +major: +- Color Themes! +fixes: +- Fixed problems with editing cookies +- Fixed bug with sidebar drag-n-drop +- Minor URL encoding tweaks +--- + +Color themes are here! Check out the [Blog Post](/blog/introducing-color-themes/) for more info. + +Insomnia Premium Color Themes diff --git a/website/site/content/changelog-json/v4.2.11.md b/website/site/content/changelog-json/v4.2.11.md new file mode 100644 index 0000000000..0d64b3bfed --- /dev/null +++ b/website/site/content/changelog-json/v4.2.11.md @@ -0,0 +1,12 @@ +--- +date: 2017-02-07 +title: Insomnia v4.2.11 Release +slug: 4.2.11 +major: +- URLs in responses are now clickable +fixes: +- JSON pretty printing no longer parses as JavaScript (1.000 will not get rounded) +minor: +- Dropdowns in sidebar and on the send button now trigger on right-click +- Now support more than one level of recursive template variables +--- diff --git a/website/site/content/changelog-json/v4.2.14.md b/website/site/content/changelog-json/v4.2.14.md new file mode 100644 index 0000000000..125a69e080 --- /dev/null +++ b/website/site/content/changelog-json/v4.2.14.md @@ -0,0 +1,14 @@ +--- +date: 2017-02-15 +title: Insomnia v4.2.14 Release +slug: 4.2.14 +major: +- Add support for private environments which will not be exported or synced +- Highlight Nunjucks variables in code editors +minor: +- Now show escaped unicode characters in response +- Add LINK and UNLINK HTTP methods +fixes: +- Render errors are now displayed again +- Fixed deleted synced resources sometimes reappearing +--- diff --git a/website/site/content/changelog-json/v4.2.2.md b/website/site/content/changelog-json/v4.2.2.md new file mode 100644 index 0000000000..6e7fa9bd3d --- /dev/null +++ b/website/site/content/changelog-json/v4.2.2.md @@ -0,0 +1,13 @@ +--- +date: 2017-01-25 +title: Insomnia v4.2.2 Release +slug: 4.2.2 +major: +- New editor key maps (Vim, Emacs, Sublime) +minor: +- Workspaces now visible in request switcher +fixes: +- Fixed issue with recursive environment variables not resolving +- Fixed webview background color not being white +- Fixed label click region in settings menu +--- diff --git a/website/site/content/changelog-json/v4.2.3.md b/website/site/content/changelog-json/v4.2.3.md new file mode 100644 index 0000000000..5733e77364 --- /dev/null +++ b/website/site/content/changelog-json/v4.2.3.md @@ -0,0 +1,12 @@ +--- +date: 2017-01-26 +title: Insomnia v4.2.3 Release +slug: 4.2.3 +major: +- No longer lose body data when switching formats when possible +- Fixed memory leak for users with a lot of large request bodies +minor: +- Minor performance improvements in some areas +fixes: +- Fixed textarea padding in some menus +--- diff --git a/website/site/content/changelog-json/v4.2.4.md b/website/site/content/changelog-json/v4.2.4.md new file mode 100644 index 0000000000..ef6ee24e90 --- /dev/null +++ b/website/site/content/changelog-json/v4.2.4.md @@ -0,0 +1,8 @@ +--- +date: 2017-01-29 +title: Insomnia v4.2.4 Release +slug: 4.2.4 +fixes: +- Fixed pasting into URL not persisting +- Fixed webview background (again) +--- diff --git a/website/site/content/changelog-json/v4.2.5.md b/website/site/content/changelog-json/v4.2.5.md new file mode 100644 index 0000000000..992c0eeae8 --- /dev/null +++ b/website/site/content/changelog-json/v4.2.5.md @@ -0,0 +1,7 @@ +--- +date: 2017-01-30 +title: Insomnia v4.2.5 Release +slug: 4.2.5 +fixes: +- Fixed pasting inside of URL +--- diff --git a/website/site/content/changelog-json/v4.2.7.md b/website/site/content/changelog-json/v4.2.7.md new file mode 100644 index 0000000000..87d7a9b2a8 --- /dev/null +++ b/website/site/content/changelog-json/v4.2.7.md @@ -0,0 +1,14 @@ +--- +date: 2017-01-31 +title: Insomnia v4.2.7 Release +slug: 4.2.7 +major: +- Added ability to auto-download response bodies to file +fixes: +- Fixed sidebar filtering for nested folders +- Fixed binary file uploads missing Content-Length header +- Fixed pasting Curl command into URL wouldn't update URL +- Fixed code generation only operating on active request +minor: +- Clicking Cancel Account after trial ends now signs out +--- diff --git a/website/site/content/changelog-json/v4.2.8.md b/website/site/content/changelog-json/v4.2.8.md new file mode 100644 index 0000000000..7d5d89ec17 --- /dev/null +++ b/website/site/content/changelog-json/v4.2.8.md @@ -0,0 +1,7 @@ +--- +date: 2017-02-01 +title: Insomnia v4.2.8 Release +slug: 4.2.8 +fixes: +- Fixed app crashing on first launch :( +--- diff --git a/website/site/content/changelog-json/v4.2.9.md b/website/site/content/changelog-json/v4.2.9.md new file mode 100644 index 0000000000..db0982eefc --- /dev/null +++ b/website/site/content/changelog-json/v4.2.9.md @@ -0,0 +1,8 @@ +--- +date: 2017-02-02 +title: Insomnia v4.2.9 Release +slug: 4.2.9 +fixes: +- Fixed network request DNS fallback logic in some cases +- Minor bug fixes +--- diff --git a/website/site/content/changelog-json/v5.0.1.md b/website/site/content/changelog-json/v5.0.1.md new file mode 100644 index 0000000000..caf9dc01e0 --- /dev/null +++ b/website/site/content/changelog-json/v5.0.1.md @@ -0,0 +1,43 @@ +--- +date: 2017-04-05 +title: Insomnia v5.0.1 Release +slug: 5.0.1 +summary: Version 5.0 is here and it is the biggest release yet! +link: https://insomnia.rest/blog/insomnia-5-announcement/ +major: + - Contextual autocomplete for environments, URLs, header names/values, and more + - All key-value editors are now sortable + - Add OAuth 2.0, Digest, and NTLM authentication + - New Timeline response tab that shows much more detail about the request + - Environment variables and template tags now highlighted throughout the app + - Replaced NodeJS networking backend with libcurl + - Added per-request settings for controlling cookies, template rendering, and URL encoding + - Proxy now supports Digest and NTLM auth types + - Support for custom HTTP methods + - App panes now resizable when in vertical layout + - Many minor performance improvements +minor: + - Environment editor now respects line wrap setting + - App now prompts to sync unrecognized workspaces instead of syncing without asking + - Response view types have been reworked to behave more intuitively + - Enable context (right-click) menu in response web view + - Request body syntax highlighting recognizes more content-types + - Better errors for render failures + - HTTP proxy can now be toggled on and off + - Tabs no longer lose state after switching + - Update bracket match style in editor + - Window title now reflects active workspace and request + - Header names now trimmed of whitespace before sending + - Add warning when environments exist, but none are selected + - Better styling of numeric counters on tabs + - Added tooltip help hints in various places +fixes: + - No longer auto-encode equals sign in URL path + - Cookies now stored on redirects + - More reliable sort order after duplicating requests + - Clicking on workspaces in request switcher now works again + - More reliable querystring importing + - Fixed drag-n-drop support within code editor + - Headers editor now refreshed after changing body content-type +--- + diff --git a/website/site/content/changelog-json/v5.0.10.md b/website/site/content/changelog-json/v5.0.10.md new file mode 100644 index 0000000000..1b9bd243b0 --- /dev/null +++ b/website/site/content/changelog-json/v5.0.10.md @@ -0,0 +1,18 @@ +--- +date: 2017-04-20 +title: Insomnia v5.0.10 Release +slug: 5.0.10 +summary: Not much new – just lots of fixes and improvements! +minor: + - Improved autocompletion suggestion of URLs + - Leave Content-Type header in place when switching body type to Other +fixes: + - Fixed automatic gzip decoding of responses if Accept header set manually + - Correctly handle ISO-8859-1 responses + - Prevent showing autocomplete if input loses focus + - Now send correct grant type during OAuth 2.0 token refresh + - OAuth 2.0 now shows when token expires + - Prevent request from sending twice sometimes via keyboard shortcut + - No longer fail when HEAD requests return body +--- + diff --git a/website/site/content/changelog-json/v5.0.12.md b/website/site/content/changelog-json/v5.0.12.md new file mode 100644 index 0000000000..88b35210b0 --- /dev/null +++ b/website/site/content/changelog-json/v5.0.12.md @@ -0,0 +1,14 @@ +--- +date: 2017-05-03 +title: Insomnia v5.0.12 Release +slug: 5.0.12 +minor: + - Add ability to import from URL + - Made theme more compact + - Performance improvements +fixes: + - Better handling of Windows line endings + - Fixed importing curl commands containing question marks + - Minor bug fixes +--- + diff --git a/website/site/content/changelog-json/v5.0.2.md b/website/site/content/changelog-json/v5.0.2.md new file mode 100644 index 0000000000..13102af345 --- /dev/null +++ b/website/site/content/changelog-json/v5.0.2.md @@ -0,0 +1,17 @@ +--- +date: 2017-04-07 +title: Insomnia v5.0.2 Release +slug: 5.0.2 +summary: Check out the full version 5.0 announcement if you missed it! +link: https://insomnia.rest/blog/insomnia-5-announcement/ +major: + - Added new base64 encode/decode template tag +minor: + - More reliable file uploads +fixes: + - Fixed body type selection in Create Request dialog + - Fixed minor bug with OAuth 2.0 access token handling + - Now escape unicode double quotes during JSON formatting + - Fixed ampersands in clicked links +--- + diff --git a/website/site/content/changelog-json/v5.0.20.md b/website/site/content/changelog-json/v5.0.20.md new file mode 100644 index 0000000000..681b1dffc0 --- /dev/null +++ b/website/site/content/changelog-json/v5.0.20.md @@ -0,0 +1,8 @@ +--- +date: 2017-05-05 +title: Insomnia v5.0.20 Release +slug: 5.0.20 +minor: + - Behind-the-scenes update for new auto-update server +--- + diff --git a/website/site/content/changelog-json/v5.0.3.md b/website/site/content/changelog-json/v5.0.3.md new file mode 100644 index 0000000000..1a95913cb2 --- /dev/null +++ b/website/site/content/changelog-json/v5.0.3.md @@ -0,0 +1,10 @@ +--- +date: 2017-04-09 +title: Insomnia v5.0.3 Release +slug: 5.0.3 +fixes: + - Fix Content-Length on binary file uploads + - Send more specific Content-Type in multipart uploads + - Fix cursors resetting to start of input when switching apps +--- + diff --git a/website/site/content/changelog-json/v5.0.4.md b/website/site/content/changelog-json/v5.0.4.md new file mode 100644 index 0000000000..5a7bd2ee9b --- /dev/null +++ b/website/site/content/changelog-json/v5.0.4.md @@ -0,0 +1,14 @@ +--- +date: 2017-04-11 +title: Insomnia v5.0.4 Release +slug: 5.0.4 +minor: + - Add keyboard shortcut to view hotkey help + - Remove var prefix on environment variables + - Add link to httpsnippet library in code generation dialog +fixes: + - Fix cursor unfocusing when editing environment variables + - No longer add default content-type or content-length when no request body + - Quick switcher now scrolls properly again +--- + diff --git a/website/site/content/changelog-json/v5.0.5.md b/website/site/content/changelog-json/v5.0.5.md new file mode 100644 index 0000000000..5b12aeac4b --- /dev/null +++ b/website/site/content/changelog-json/v5.0.5.md @@ -0,0 +1,11 @@ +--- +date: 2017-04-14 +title: Insomnia v5.0.5 Release +slug: 5.0.5 +summary: A few last remaining fixes after the 5.0 launch. Thanks for all the feedback! +minor: + - New setting to specify indent size in code editors +fixes: + - Minor bug fixes +--- + diff --git a/website/site/content/changelog-json/v5.1.0.md b/website/site/content/changelog-json/v5.1.0.md new file mode 100644 index 0000000000..6a06829449 --- /dev/null +++ b/website/site/content/changelog-json/v5.1.0.md @@ -0,0 +1,19 @@ +--- +date: 2017-05-24 +title: Insomnia v5.1.0 Release +slug: 5.1.0 +summary: This is the first release containing open-source contributions. Thanks to all contributors! +major: + - New option to auto-hide menubar on Windows and Linux! + - New template tag to reference values from other responses + - More friendly Template Tag editor + - Ability to save full HTTP response to file, including headers +minor: + - Data exports now have friendlier names + - Unreferenced template tags are longer rendered +fixes: + - Fix cookie handling for localhost domains + - Better handle of JSON when root is a String + - File selector no longer clears file on Cancel + - Many more fixes fixes +--- diff --git a/website/site/content/changelog-json/v5.1.1.md b/website/site/content/changelog-json/v5.1.1.md new file mode 100644 index 0000000000..7699fc6e3c --- /dev/null +++ b/website/site/content/changelog-json/v5.1.1.md @@ -0,0 +1,16 @@ +--- +date: 2017-05-29 +title: Insomnia v5.1.1 Release +slug: 5.1.1 +major: + - Environment editor now warns about invalid variable names and errors +minor: + - OAuth now uses a password field for password credentials + - OAuth authorization window session is now cleared on app launch + - Now show folder as prefix when selecting requests for Response Value tag + - More appropriate size for app icon +fixes: + - Fix right-click context menu staying open + - No longer error when response contains invalid cookie + - Always include equals sign in x-www-form-urlencoded bodies when value is empty +--- diff --git a/website/site/content/changelog-json/v5.10.1.md b/website/site/content/changelog-json/v5.10.1.md new file mode 100644 index 0000000000..79508b84ad --- /dev/null +++ b/website/site/content/changelog-json/v5.10.1.md @@ -0,0 +1,21 @@ +--- +date: 2017-11-01 +title: Insomnia v5.10.1 Release +slug: 5.10.1 +channel: stable +major: +- Ability to export workspace as HAR (PR:523:Atvaark) +- Can now drag-n-drop files to import +- Client certificates can now be made private (never synced) +- GraphQL now sends operationName automatically +- New template tags for hashing and reading files +fixes: +- Fixed cookies being deleted when editing (sometimes) +- Closing environment editor too quickly no longer loses changes +- Multipart handling works with large files again (above 2GB) +- Other minor fixes +minor: +- Minor tweaks to template tag editor +- Keyboard shortcut to refresh all plugins +- New plugin API methods to set request settings (eg. cookie send behavior) +--- diff --git a/website/site/content/changelog-json/v5.11.0.md b/website/site/content/changelog-json/v5.11.0.md new file mode 100644 index 0000000000..d81a76f6c2 --- /dev/null +++ b/website/site/content/changelog-json/v5.11.0.md @@ -0,0 +1,22 @@ +--- +date: 2017-11-08 +title: Insomnia v5.11.0 Release +slug: 5.11.0 +channel: stable +major: +- OAuth 1.0 Support (PR:571:besolov) +- Atlassian ASAP Auth Support (PR:566:gerrytan) +- No longer require global npm to install plugins (included standalone Yarn) +fixes: +- Fix GraphQL autocompletion not working +- Fix scroll jumping issue in key-value editors (headers, query, etc) +- Fix Cmd+Enter conflict in Sublime keymap +- Fix for raw cookie editor deleting cookies +minor: +- Print Curl version in Timeline +- Template tag editor no longer has delay when opening +- Added debug logging to OAuth 2.0 flow +- Support wildcards in port for client certificates +- Use more unique temporary director name to avoid conflicts +- No longer send default Accept and Accept-Encoding headers +--- diff --git a/website/site/content/changelog-json/v5.11.5.md b/website/site/content/changelog-json/v5.11.5.md new file mode 100644 index 0000000000..29d53b5616 --- /dev/null +++ b/website/site/content/changelog-json/v5.11.5.md @@ -0,0 +1,17 @@ +--- +date: 2017-11-10 +title: Insomnia v5.11.5 Release +slug: 5.11.5 +channel: stable +fixes: +- Fix bug where dragging a folder into itself would make it disappear +minor: +- OAuth 2.0 requests now use same settings as current request +- Environment editor now refreshes from sync change when it's open +- Improvements to Curl importer +- Add back default Accept header from v5.11.0 but not Accept-Encoding +- New keyboard shortcut to delete active request +- Prompt user to automatically change Content-Type when binary file is selected +- Update documentation links to point to new support website +--- + diff --git a/website/site/content/changelog-json/v5.11.7.md b/website/site/content/changelog-json/v5.11.7.md new file mode 100644 index 0000000000..21089d33c2 --- /dev/null +++ b/website/site/content/changelog-json/v5.11.7.md @@ -0,0 +1,12 @@ +--- +date: 2017-11-14 +title: Insomnia v5.11.7 Release +slug: 5.11.7 +channel: stable +major: +- First-party support for viewing multipart responses +fixes: +- Accept header now overridable again +- Support showing multiple response headers with the same name +--- + diff --git a/website/site/content/changelog-json/v5.12.0-beta.2.md b/website/site/content/changelog-json/v5.12.0-beta.2.md new file mode 100644 index 0000000000..2f39948b1b --- /dev/null +++ b/website/site/content/changelog-json/v5.12.0-beta.2.md @@ -0,0 +1,19 @@ +--- +date: 2017-11-21 +title: Insomnia v5.12.0 Beta 2 +slug: 5.12.0-beta.2 +channel: beta +major: +- Less obtrusive update notification +fixes: +- Support for downloading huge files (over ~2GB) +- Fixed HAWK algorithm selection +minor: +- Response timer always shows 1 decimal place (PR:617:k-nut) +- Ability to specify auto-update channel +- Ability to disable auto-updates +- Moved database to the Electron main thread +- Use Google analytics API directly (no more external JS!) +--- + +Thanks to [@lifewcody](https://github.com/lifewcody) for helping debug large file downloads. diff --git a/website/site/content/changelog-json/v5.12.0-beta.3.md b/website/site/content/changelog-json/v5.12.0-beta.3.md new file mode 100644 index 0000000000..6fc61a1690 --- /dev/null +++ b/website/site/content/changelog-json/v5.12.0-beta.3.md @@ -0,0 +1,12 @@ +--- +date: 2017-11-23 +title: Insomnia v5.12.0 Beta 3 +slug: 5.12.0-beta.3 +channel: beta +fixes: +- Fix environment editor not saving immediately after fixing an error +- Fix environment editor not always refreshing after data sync +minor: +- Faster storing of large response bodies +- Provide a convenient save button when large response gets hidden +--- diff --git a/website/site/content/changelog-json/v5.12.0.md b/website/site/content/changelog-json/v5.12.0.md new file mode 100644 index 0000000000..4421e6f1ba --- /dev/null +++ b/website/site/content/changelog-json/v5.12.0.md @@ -0,0 +1,20 @@ +--- +date: 2017-11-23 +title: Insomnia v5.12.0 +slug: 5.12.0 +draft: true +summary: Thanks to @lifewcody for helping debug large file downloads. +major: +- Less obtrusive update notification +fixes: +- Support for downloading huge files (over ~2GB) +- Fixed HAWK algorithm selection +minor: +- Response timer always shows 1 decimal place (PR:617:k-nut) +- Ability to specify auto-update channel +- Ability to disable auto-updates +- Moved database to the Electron main thread +- Use Google analytics API directly (no more external JS!) +--- + +Thanks to [@lifewcody](https://github.com/lifewcody) for helping debug large file downloads. diff --git a/website/site/content/changelog-json/v5.2.0.md b/website/site/content/changelog-json/v5.2.0.md new file mode 100644 index 0000000000..bad168f4b7 --- /dev/null +++ b/website/site/content/changelog-json/v5.2.0.md @@ -0,0 +1,17 @@ +--- +date: 2017-06-06 +title: Insomnia v5.2.0 Release +slug: 5.2.0 +major: + - Ability to document requests and workspaces using Markdown + - Added Bearer authentication helper + - Added setting to whitelist hostnames from proxy setting + - Ability to duplicate workspace +minor: + - Setting to disable analytics tracking + - URL preview copy button + - Experimental plugin support (still undocumented) +fixes: + - Fixed Client Credentials setting in OAuth form not changing + - Other minor UI fixes +--- diff --git a/website/site/content/changelog-json/v5.3.0.md b/website/site/content/changelog-json/v5.3.0.md new file mode 100644 index 0000000000..9bcb1a11ff --- /dev/null +++ b/website/site/content/changelog-json/v5.3.0.md @@ -0,0 +1,21 @@ +--- +date: 2017-06-12 +title: Insomnia v5.3.0 Release +slug: 5.3.0 +major: +- Multi-line text values now supported in form data editors +- New template tag to reference cookie values +- Request snapshot now stored and recovered with response history +- Previous response filters are now persisted +minor: +- Can now send requests with cmdOrCtr+R or F5 keys +- Added ability to delete custom HTTP methods +- Added ability to delete current response +- Markdown descriptions now sanitize HTML input +- Markdown descriptions now selectable +- Postman imports now included description field +fixes: +- More robust JSON formatting on content containing escaped characters +- Fix stale requests sometimes being sent soon after editing URL +- Query preview view now scrolls when too long +--- diff --git a/website/site/content/changelog-json/v5.3.3.md b/website/site/content/changelog-json/v5.3.3.md new file mode 100644 index 0000000000..1a6f86597d --- /dev/null +++ b/website/site/content/changelog-json/v5.3.3.md @@ -0,0 +1,10 @@ +--- +date: 2017-06-13 +title: Insomnia v5.3.3 Release +slug: 5.3.3 +major: +- Can now sort requests and folders together in sidebar +fixes: +- Fix Markdown description editor height from last update +- Much more robust handling when sorting nested sidebar items +--- diff --git a/website/site/content/changelog-json/v5.3.6.md b/website/site/content/changelog-json/v5.3.6.md new file mode 100644 index 0000000000..eb0e720a84 --- /dev/null +++ b/website/site/content/changelog-json/v5.3.6.md @@ -0,0 +1,12 @@ +--- +date: 2017-06-15 +title: Insomnia v5.3.6 Release +slug: 5.3.6 +minor: +- Added option to use custom date format with Timestamp tag +fixes: +- Improve cookie handling with redirects +- Fixed workspace duplication active environment bug +- Fixed status tag in response history showing ERROR for responses with no HTTP Reason +- Fixed autocomplete constants filling with undefined +--- diff --git a/website/site/content/changelog-json/v5.4.0.md b/website/site/content/changelog-json/v5.4.0.md new file mode 100644 index 0000000000..ef866bc073 --- /dev/null +++ b/website/site/content/changelog-json/v5.4.0.md @@ -0,0 +1,21 @@ +--- +date: 2017-06-22 +title: Insomnia v5.4.0 Release +slug: 5.4.0 +major: +- Support for unix domain sockets using URL format http://unix:SOCKET:PATH +- Dedicated Description tab for request documentation +- Wildcards now supported in client certificate host +minor: +- Dropdowns within tabs now only open if tab is already active +- Tab lists now scrolls horizontally when too long +- Markdown description style improvements +- Vastly improved dropdown positioning algorithm +- Add back ability to change text editor keymap to Sublime Text +fixes: +- Prevent opening links multiple times in description preview +- Fixed Content-Length not being sent with initial NTLM authorization request +- Fixed client certificate toggling not working +--- + + diff --git a/website/site/content/changelog-json/v5.5.2.md b/website/site/content/changelog-json/v5.5.2.md new file mode 100644 index 0000000000..fc9c3c5ccf --- /dev/null +++ b/website/site/content/changelog-json/v5.5.2.md @@ -0,0 +1,15 @@ +--- +date: 2017-06-30 +title: Insomnia v5.5.2 Release +slug: 5.5.2 +major: +- Added ability to preview PDF responses (PR:325:Antoine38660) +- Added ability to assign colors to environments (PR:334) +- All dropdown menus are now filterable by typing (PR:340) +minor: +- Window maximized state now remembered +- Response bodies no longer stored in memory (PR:338) +fixes: +- Fixed dropdown dismissing reliability inside modal dialogs +- Fixed unix hostname being confused with domain socket syntax +--- diff --git a/website/site/content/changelog-json/v5.6.1.md b/website/site/content/changelog-json/v5.6.1.md new file mode 100644 index 0000000000..b609a57a01 --- /dev/null +++ b/website/site/content/changelog-json/v5.6.1.md @@ -0,0 +1,16 @@ +--- +date: 2017-07-17 +title: Insomnia v5.6.1 Release +slug: 5.6.1 +major: +- Basic AWS authentication v4 support (PR:347:focusaurus) +- Fuzzy searching support for request switcher (PR:204:dmlittle) +- Prompt to include private environments on data export, if any exist +minor: +- More useful error messages in Request Cookie template tag +- Add application/vnd.api+json to Content-Type autocomplete (PR:349:synthtech) +fixes: +- null values within environments no longer break autocomplete +- Better handling of environment variables containing Template Tags +- Handle protocol-less URLs in OAuth 2 settings (PR:346:NicholasMata) +--- diff --git a/website/site/content/changelog-json/v5.6.3.md b/website/site/content/changelog-json/v5.6.3.md new file mode 100644 index 0000000000..291b9e7394 --- /dev/null +++ b/website/site/content/changelog-json/v5.6.3.md @@ -0,0 +1,7 @@ +--- +date: 2017-07-18 +title: Insomnia v5.6.3 Release +slug: 5.6.3 +fixes: +- Fixed downloading response bodies +--- diff --git a/website/site/content/changelog-json/v5.7.0.md b/website/site/content/changelog-json/v5.7.0.md new file mode 100644 index 0000000000..258e6fe255 --- /dev/null +++ b/website/site/content/changelog-json/v5.7.0.md @@ -0,0 +1,22 @@ +--- +date: 2017-08-02 +title: Insomnia v5.7.0 Release +slug: 5.7.0 +channel: stable +major: +- New GraphQL request body type +- New netrc authentication type (PR:384:moxuz) +minor: +- Add autodetection for XML when no Content-Type present +- Workspaces created by import or sync now marked indicated in UI +- Data imports no longer update modified time +- Plugin system improvements (still experimental) +- Data sync networking improvements +fixes: +- Fixed downloading response bodies +- Do not include literal newline characters in Curl snippets +- Change HTTP method to GET on redirects +- Fix AWS authentication for GET requests +- Colons in header values now handled properly +- No longer close search box on Enter +--- diff --git a/website/site/content/changelog-json/v5.7.10.md b/website/site/content/changelog-json/v5.7.10.md new file mode 100644 index 0000000000..676d34ca88 --- /dev/null +++ b/website/site/content/changelog-json/v5.7.10.md @@ -0,0 +1,12 @@ +--- +date: 2017-08-12T10:00:00-07:00 +title: Insomnia v5.7.10 Release +slug: 5.7.10 +channel: stable +fixes: +- Fixed race condition causing request creation to fail +- Large response size check now uses uncompressed size +- Fixed invalid cookies causing code generation to break +minor: +- Show both compressed and uncompressed of responses +--- diff --git a/website/site/content/changelog-json/v5.7.11.md b/website/site/content/changelog-json/v5.7.11.md new file mode 100644 index 0000000000..48f1b8abd8 --- /dev/null +++ b/website/site/content/changelog-json/v5.7.11.md @@ -0,0 +1,8 @@ +--- +date: 2017-08-12T15:00:00-07:00 +title: Insomnia v5.7.11 Release +slug: 5.7.11 +channel: stable +fixes: +- Fixed some modal dialogs not refreshing when opened +--- diff --git a/website/site/content/changelog-json/v5.7.12.md b/website/site/content/changelog-json/v5.7.12.md new file mode 100644 index 0000000000..bf0e804d17 --- /dev/null +++ b/website/site/content/changelog-json/v5.7.12.md @@ -0,0 +1,11 @@ +--- +date: 2017-08-14 +title: Insomnia v5.7.12 Release +slug: 5.7.12 +channel: stable +fixes: +- GraphQL schema fetching failed when using environment variables +- Copying large text blobs sometimes yielded a hyphen +minor: +- Now show render errors when fetching GraphQL schema +--- diff --git a/website/site/content/changelog-json/v5.7.14.md b/website/site/content/changelog-json/v5.7.14.md new file mode 100644 index 0000000000..c7f5cf0538 --- /dev/null +++ b/website/site/content/changelog-json/v5.7.14.md @@ -0,0 +1,11 @@ +--- +date: 2017-08-16 +title: Insomnia v5.7.14 Release +slug: 5.7.14 +channel: stable +summary: Sorry to those Windows users who were impacted by hanging requests! +fixes: +- Fixed requests hanging for a subset of Windows users +minor: +- Made max redirects configurable in settings +--- diff --git a/website/site/content/changelog-json/v5.7.4.md b/website/site/content/changelog-json/v5.7.4.md new file mode 100644 index 0000000000..3ddc4875b8 --- /dev/null +++ b/website/site/content/changelog-json/v5.7.4.md @@ -0,0 +1,15 @@ +--- +date: 2017-08-04 +title: Insomnia v5.7.4 Release +slug: 5.7.4 +channel: stable +major: +- Template tags now work with prettify feature +fixes: +- Fixed GraphQL incorrectly JSON stringifying variables body +minor: +- More accurate logic for catching OAuth redirect URL (PR:396:starJammer) +- Added Help menu item for displaying keyboard shortcuts +- Added contact link to About section +- Default GraphQL introspection query content-type to application/json +--- diff --git a/website/site/content/changelog-json/v5.7.9.md b/website/site/content/changelog-json/v5.7.9.md new file mode 100644 index 0000000000..17d9bc1787 --- /dev/null +++ b/website/site/content/changelog-json/v5.7.9.md @@ -0,0 +1,17 @@ +--- +date: 2017-08-11 +title: Insomnia v5.7.9 Release +slug: 5.7.9 +channel: stable +fixes: +- Cap number of redirects to 20 (instead of unlimited) +- Over-selecting input bounds no longer clears selection +- Don't allow password input text to be copied +- Some performance improvements +minor: +- Add ability to specify Authorization token prefix for OAuth 2.0 Requests +- GraphQL schema introspection requests now apply cookies, auth, and all other Insomnia features +- GraphQL prettify no longer recursively stringifies variables object +- Display schema fetch information for GraphQL +- Automatically switch to POST when choosing GraphQL body +--- diff --git a/website/site/content/changelog-json/v5.8.2.md b/website/site/content/changelog-json/v5.8.2.md new file mode 100644 index 0000000000..cddec7931d --- /dev/null +++ b/website/site/content/changelog-json/v5.8.2.md @@ -0,0 +1,20 @@ +--- +date: 2017-09-11 +title: Insomnia v5.8.2 Release +slug: 5.8.2 +channel: stable +major: +- New cookie editing flow (PR:448:BeeeQueue) +- Support templating in cookies (PR:448:BeeeQueue) +- HAWK authentication (PR:446:jgiovaresco) +fixes: +- Blocker for large responses works again +- Prevent modal dialogs from closing when escaping autocomplete +- Prevent Content-Length integer overflow for uploads over 2GB +minor: +- Environment functions on plugin API (PR:443:Xuanwo) +- Fuzzy filtering now used in all UI filter inputs +- Request method now shown in tag editor (PR:453:derpoho) +- Don't touch already-encoded characters in URL +- Add HTML content-type detection +--- diff --git a/website/site/content/changelog-json/v5.8.3.md b/website/site/content/changelog-json/v5.8.3.md new file mode 100644 index 0000000000..6adb87df8f --- /dev/null +++ b/website/site/content/changelog-json/v5.8.3.md @@ -0,0 +1,10 @@ +--- +date: 2017-09-13 +title: Insomnia v5.8.3 Release +slug: 5.8.3 +channel: stable +fixes: +- Fixed cookie jar not being created for new workspaces +minor: +- Add button to refresh GraphQL schema (PR:481:ganderzz) +--- diff --git a/website/site/content/changelog-json/v5.8.4.md b/website/site/content/changelog-json/v5.8.4.md new file mode 100644 index 0000000000..51595f18e7 --- /dev/null +++ b/website/site/content/changelog-json/v5.8.4.md @@ -0,0 +1,13 @@ +--- +date: 2017-09-18 +title: Insomnia v5.8.4 Release +slug: 5.8.4 +channel: stable +major: +- More keyboard shortcuts (see preferences for details) +- Properly catch and handle plugin errors on app launch +fixes: +- Fixed GraphQL and cookie list scroll overflow issue +minor: +- Added menu item to show dev tools +--- diff --git a/website/site/content/changelog-json/v5.9.2.md b/website/site/content/changelog-json/v5.9.2.md new file mode 100644 index 0000000000..bf2662b636 --- /dev/null +++ b/website/site/content/changelog-json/v5.9.2.md @@ -0,0 +1,22 @@ +--- +date: 2017-10-12 +title: Insomnia v5.9.2 Release +slug: 5.9.2 +channel: stable +major: +- Can now use environment variables inside template tags +fixes: +- Autocomplete no longer breaks on template tags containing no arguments (rare case) +- Null values in environments no longer cause problems +- Fix client certificates not working sometimes on Windows +- Fix AWS auth for non POST/GET methods +minor: +- Support attribute XPath queries +- Faster prettify for large responses +- File downloads now use name from Content-Disposition header when available +- Upgrade to React 16 (10% faster render performance) +- Auto-select active environment when opening environment editor +- Added menu option to show app data folder +- Improved robustness of template tag editor +--- + diff --git a/website/site/content/changelog-json/v5.9.6.md b/website/site/content/changelog-json/v5.9.6.md new file mode 100644 index 0000000000..d3ea1326ec --- /dev/null +++ b/website/site/content/changelog-json/v5.9.6.md @@ -0,0 +1,20 @@ +--- +date: 2017-10-13 +title: Insomnia v5.9.6 Release +slug: 5.9.6 +channel: stable +major: +- Rewrote PDF response preview for better performance and retina support +- Can now use boolean type in template tag arguments (plugins) +fixes: +- PDF response preview works again +- Render failures in cookie dialog no longer prevent it from opening +- Fix refresh button in template tag editor +- Add React 16 error boundaries so unhandled errors will do less harm +minor: +- Moved multipart/form-data generation from libcurl into Insomnia +- New setting to display all template tags and variables in raw text +--- + + + diff --git a/website/site/content/changelog/v3.0.10.md b/website/site/content/changelog/v3.0.10.md new file mode 100644 index 0000000000..8241e4c7e2 --- /dev/null +++ b/website/site/content/changelog/v3.0.10.md @@ -0,0 +1,13 @@ +--- +title: Insomnia v3.0.10 Release +slug: 3.0.10 +date: '2016-07-25T20:31:28-07:00' +major: +- Redesigned interface +- No longer a Chrome app +- Lots more! +--- + +Welcome to the first beta release of v3.0! If you have any complaints, +questions, comments, or just want to chat, send an email to +support@insomnia.rest. diff --git a/website/site/content/changelog/v3.0.11.md b/website/site/content/changelog/v3.0.11.md new file mode 100644 index 0000000000..af02763768 --- /dev/null +++ b/website/site/content/changelog/v3.0.11.md @@ -0,0 +1,17 @@ +--- +title: Insomnia v3.0.11 Release +slug: 3.0.11 +date: '2016-07-27T19:33:15-07:00' +major: +- Format JSON even when JSON content-type response header missing +- Remember last window size and position on launch +minor: +- Made the import feature more apparent on first launch +- Now check for updates every hour (instead of just on launch) +fixes: +- Drag-n-drop folders now works again (oops) +- Adjusted sidebar colors for better visibility +--- + +Here a few minor updates based on the first round of beta feedback. Keep +sending your feedback to support@insomnia.rest :) diff --git a/website/site/content/changelog/v3.0.13.md b/website/site/content/changelog/v3.0.13.md new file mode 100644 index 0000000000..5671020513 --- /dev/null +++ b/website/site/content/changelog/v3.0.13.md @@ -0,0 +1,15 @@ +--- +title: Insomnia v3.0.13 Release +slug: 3.0.13 +date: '2016-07-28T18:19:47-07:00' +major: +- Added setting to disable SSL validation +- Save and send cookies (more/better cookie support coming soon...) +minor: +- Made initial app window size larger +- Specify that environment data needs to be JSON format +fixes: +- Fixed bug where certain input fields would override user input +- Params editor now scrolls when too long +--- + diff --git a/website/site/content/changelog/v3.0.14.md b/website/site/content/changelog/v3.0.14.md new file mode 100644 index 0000000000..20e4ab2579 --- /dev/null +++ b/website/site/content/changelog/v3.0.14.md @@ -0,0 +1,13 @@ +--- +title: Insomnia v3.0.14 Release +slug: 3.0.14 +date: '2016-07-29T16:31:40-07:00' +fixes: +- Environment editor now updates properly again +minor: +- Adjusted cursor padding in the request body editor +- 'Remember zoom level on app launch (note: your saved window size/position will +be reset)' +--- + +Just a few minor fixes. Nothing to see here... diff --git a/website/site/content/changelog/v3.0.15.md b/website/site/content/changelog/v3.0.15.md new file mode 100644 index 0000000000..2a4a04eaf1 --- /dev/null +++ b/website/site/content/changelog/v3.0.15.md @@ -0,0 +1,10 @@ +--- +title: Insomnia v3.0.15 Release +slug: 3.0.15 +date: '2016-07-29T20:31:19-07:00' +fixes: +- Request body editor now updates again when changing modes +- JSON highlighting edge case fixed +--- + +A few more small things before the weekend. diff --git a/website/site/content/changelog/v3.0.16.md b/website/site/content/changelog/v3.0.16.md new file mode 100644 index 0000000000..3616502fe4 --- /dev/null +++ b/website/site/content/changelog/v3.0.16.md @@ -0,0 +1,8 @@ +--- +title: Insomnia v3.0.16 Release +slug: 3.0.16 +date: '2016-08-03T16:57:51-07:00' +fixes: +- Fix for app crash on first launch +--- + diff --git a/website/site/content/changelog/v3.2.0.md b/website/site/content/changelog/v3.2.0.md new file mode 100644 index 0000000000..12b8be2787 --- /dev/null +++ b/website/site/content/changelog/v3.2.0.md @@ -0,0 +1,25 @@ +--- +title: Insomnia v3.2.0 Release +slug: 3.2.0 +date: '2016-08-09T22:13:16-07:00' +major: +- Can now create global environments! (folder environments will extend them) +- Cookie management! View/create/update/delete those tasty cookies +- Now generate code snippets for nodeJS, Java, Python, Go, and more! +- Added new Cookies tab to response pane +- Added network proxy setting (experimental) +minor: +- Now prompt for name when creating new requests and folders +- Now support Nunjucks templating in form data bodies +- Focusing URL bar (cmd+L) now selects text all text +- Minor style updates +- Exported data now includes workspace information +- Added ability to export only the current workspace +fixes: +- Data export now exports properly (was broken before) +- Fixed the key/value editor from resetting cursor while typing +- Send-request keyboard shortcut no longer adds new key/value pairs +--- + +This release brings cookie management, global environments, and code snippet +generation. diff --git a/website/site/content/changelog/v3.2.1.md b/website/site/content/changelog/v3.2.1.md new file mode 100644 index 0000000000..637aa5e8a4 --- /dev/null +++ b/website/site/content/changelog/v3.2.1.md @@ -0,0 +1,12 @@ +--- +title: Insomnia v3.2.1 Release +slug: 3.2.1 +date: '2016-08-17T17:49:00-07:00' +fixes: +- Settings dialog no longer resets after toggling +- Request duplication works again +- Silence auto-update errors when no internet +minor: +- Params tab Url Preview is now selectable +- Add hotkey for app minimize +--- diff --git a/website/site/content/changelog/v3.2.2.md b/website/site/content/changelog/v3.2.2.md new file mode 100644 index 0000000000..aaa9069031 --- /dev/null +++ b/website/site/content/changelog/v3.2.2.md @@ -0,0 +1,10 @@ +--- +title: Insomnia v3.2.2 Release +slug: 3.2.2 +date: '2016-08-23T17:56:50-07:00' +fixes: +- Cookies dialog showed nothing in some cases +minor: +- Linux version will now prompt when an update is available +--- + diff --git a/website/site/content/changelog/v3.2.3.md b/website/site/content/changelog/v3.2.3.md new file mode 100644 index 0000000000..fde96055c6 --- /dev/null +++ b/website/site/content/changelog/v3.2.3.md @@ -0,0 +1,14 @@ +--- +title: Insomnia v3.2.3 Release +slug: 3.2.3 +date: '2016-08-28T17:56:50-07:00' +major: +- Added ability to edit headers in bulk +fixes: +- Environment manager now shows detailed JSON errors when invalid +minor: +- Improved menu bar menus on MacOS +- Update Nunjucks to version 2.4.2 +--- + +Bulk header editing is back for those who missed it coming from version 2.0! diff --git a/website/site/content/changelog/v3.2.6.md b/website/site/content/changelog/v3.2.6.md new file mode 100644 index 0000000000..5b25735747 --- /dev/null +++ b/website/site/content/changelog/v3.2.6.md @@ -0,0 +1,11 @@ +--- +title: Insomnia v3.2.6 Release +slug: 3.2.6 +date: '2016-09-01T17:56:50-07:00' +fixes: +- Stop checking for updates after initial update prompt +minor: +- Add helpful hints on certain request errors +- Increased default font size (adjustable with ctrl+Plus and ctrl+Minus) +--- + diff --git a/website/site/content/changelog/v3.2.9.md b/website/site/content/changelog/v3.2.9.md new file mode 100644 index 0000000000..e7da652590 --- /dev/null +++ b/website/site/content/changelog/v3.2.9.md @@ -0,0 +1,12 @@ +--- +title: Insomnia v3.2.9 Release +slug: 3.2.9 +date: '2016-09-03T17:56:50-07:00' +fixes: +- Properly encode URI paths (like v2.0 used to) +- Copy/paste from context menu now works on Windows and Linux +minor: +- More flexible JSON content-type matching for responses +- Editor rendering no longer blocks UI navigation on larger responses +--- + diff --git a/website/site/content/changelog/v3.3.1.md b/website/site/content/changelog/v3.3.1.md new file mode 100644 index 0000000000..e2379f2044 --- /dev/null +++ b/website/site/content/changelog/v3.3.1.md @@ -0,0 +1,15 @@ +--- +title: Insomnia v3.3.1 Release +slug: 3.3.1 +date: '2016-09-05T17:56:50-07:00' +fixes: +- Small bug causing some dialogs to not work +major: +- Improved speed of rendering large responses +- Old responses are no longer kept around when not needed +- Decreased initial app loading times +- Reduced RAM usage +--- + +Feature development for the public beta is coming to an end so this release +is all about performance. diff --git a/website/site/content/changelog/v3.3.2.md b/website/site/content/changelog/v3.3.2.md new file mode 100644 index 0000000000..9e11d86980 --- /dev/null +++ b/website/site/content/changelog/v3.3.2.md @@ -0,0 +1,9 @@ +--- +title: Insomnia v3.3.2 Release +slug: 3.3.2 +date: '2016-09-10T17:56:50-07:00' +fixes: +- Template variables were being persisted after render in some cases +- Fixed incorrect binding of checkbox label in settings +--- + diff --git a/website/site/content/changelog/v3.4.1.md b/website/site/content/changelog/v3.4.1.md new file mode 100644 index 0000000000..b2ce6f8d87 --- /dev/null +++ b/website/site/content/changelog/v3.4.1.md @@ -0,0 +1,34 @@ +--- +title: Insomnia v3.4.1 Release +slug: 3.4.1 +date: '2016-09-13T17:56:50-07:00' +major: +- XML response formatting +- XPath and JSONPath filtering for responses +- Workspaces now appear in the Quick Switcher +- Hide the sidebar with ctrl+\\ (cmd on Mac) +- Use template variables inside environments +- Ability to beautify the request body for JSON or XML +- Added button to cancel the current request +minor: +- Added ability to duplicate folders +- Add extra prompt before deleting things +- Added Nunjucks tags {% timestamp %} and {% uuid %} +- Renamed Params tab to Query to avoid confusion +- Improved response Raw view performance +- Comments in editor are now more visible +- Reduced update check frequency from 30 minutes to 3 hours +fixes: +- Fixed minor bug with Curl import +- Querystring is now added to generated code (oops) +- Can now re-open window via doc icon if closed (Mac) +- HTTPS proxy now works again +- Dragging sidebar dropdowns no longer triggers drag-n-drop +- Global shortcuts (like sending request) are now prevented when dialogs are open +--- + +I want to start off by saying hello to everyone who found Insomnia on the front +page of Hacker News! This update addresses some of the feedback received from +over 200 email conversations. + +Enjoy! diff --git a/website/site/content/changelog/v3.4.4.md b/website/site/content/changelog/v3.4.4.md new file mode 100644 index 0000000000..a83c8d7bdf --- /dev/null +++ b/website/site/content/changelog/v3.4.4.md @@ -0,0 +1,15 @@ +--- +title: Insomnia v3.4.4 Release +slug: 3.4.4 +date: '2016-09-21T01:58:49-07:00' +minor: +- Specify better default monospace font for Windows +fixes: +- Fixed environments not refreshing or updating sometimes +- Fixed sidebar double toggling with keyboard shortcut +- Fix for certain users that could not communicate with localhost +- Fixed bug that allowed the addition of multiple rows on the auth form +--- + +This update contains a few fixes and a lot of under-the-hood stuff that +you (hopefully) won't notice. diff --git a/website/site/content/changelog/v3.5.1.md b/website/site/content/changelog/v3.5.1.md new file mode 100644 index 0000000000..a29fce67f4 --- /dev/null +++ b/website/site/content/changelog/v3.5.1.md @@ -0,0 +1,15 @@ +--- +title: Insomnia v3.5.1 Release +slug: 3.5.1 +date: '2016-09-22T19:27:39-07:00' +major: +- Huge performance improvements for bulk action like deleting/duplicating folders +minor: +- No longer encode already encoded URLs +- Updates are now served through a CDN (faster downloads) +fixes: +- Fixed styles for cookie editor filter text box +- Fixed double encoding spaces in urls +- Improved layout for bulk headers editor +--- + diff --git a/website/site/content/changelog/v3.5.10.md b/website/site/content/changelog/v3.5.10.md new file mode 100644 index 0000000000..a3e6a75728 --- /dev/null +++ b/website/site/content/changelog/v3.5.10.md @@ -0,0 +1,10 @@ +--- +title: Insomnia v3.5.10 Release +slug: 3.5.10 +date: '2016-10-05T16:52:28-07:00' +minor: +- Better handling of malformed cookies +fixes: +- Syntax checking in editor now works again +--- + diff --git a/website/site/content/changelog/v3.5.11.md b/website/site/content/changelog/v3.5.11.md new file mode 100644 index 0000000000..dcb11aa918 --- /dev/null +++ b/website/site/content/changelog/v3.5.11.md @@ -0,0 +1,9 @@ +--- +title: Insomnia v3.5.11 Release +slug: 3.5.11 +date: '2016-10-06T17:39:13-07:00' +minor: +- Reworded some error messages +- Made cookie parsing less strict (closer to web browser behaviour) +--- + diff --git a/website/site/content/changelog/v3.5.12.md b/website/site/content/changelog/v3.5.12.md new file mode 100644 index 0000000000..3b47db6850 --- /dev/null +++ b/website/site/content/changelog/v3.5.12.md @@ -0,0 +1,8 @@ +--- +title: Insomnia v3.5.12 Release +slug: 3.5.12 +date: '2016-10-10T18:27:02-07:00' +fixes: +- Fixed certain connection problems related to HTTP keep-alive +--- + diff --git a/website/site/content/changelog/v3.5.13.md b/website/site/content/changelog/v3.5.13.md new file mode 100644 index 0000000000..38c4f7e6f7 --- /dev/null +++ b/website/site/content/changelog/v3.5.13.md @@ -0,0 +1,13 @@ +--- +title: Insomnia v3.5.13 Release +slug: 3.5.13 +date: '2016-10-11T17:21:26-07:00' +fixes: +- Some improvements for URL pathname encoding +- Setting to disable following redirects now works again +minor: +- Update code generation for Swift 3 +- Prevent window from being placed outside viewable desktop on launch +- Updates no longer prompt the user, but show an unobtrusive notification instead +--- + diff --git a/website/site/content/changelog/v3.5.2.md b/website/site/content/changelog/v3.5.2.md new file mode 100644 index 0000000000..1637ec851e --- /dev/null +++ b/website/site/content/changelog/v3.5.2.md @@ -0,0 +1,10 @@ +--- +title: Insomnia v3.5.2 Release +slug: 3.5.2 +date: '2016-09-24T03:00:39-07:00' +minor: +- Query tab parameters no longer encode already encoded data +fixes: +- Fixed code generation not working in some cases +--- + diff --git a/website/site/content/changelog/v3.5.3.md b/website/site/content/changelog/v3.5.3.md new file mode 100644 index 0000000000..093e150e48 --- /dev/null +++ b/website/site/content/changelog/v3.5.3.md @@ -0,0 +1,13 @@ +--- +title: Insomnia v3.5.3 Release +slug: 3.5.3 +date: '2016-09-28T22:24:05-07:00' +minor: +- Now automatically treat responses without Content-Type as JSON if possible +fixes: +- Fixed certain data being reset after changing HTTP method +- Fixed response viewer showing nothing for malformed responses +--- + +This week I began work on a cloud sync feature (premium)! If you're interested +in sync, I'd love to chat at support@insomnia.rest. diff --git a/website/site/content/changelog/v3.5.6.md b/website/site/content/changelog/v3.5.6.md new file mode 100644 index 0000000000..0a97e80a70 --- /dev/null +++ b/website/site/content/changelog/v3.5.6.md @@ -0,0 +1,11 @@ +--- +title: Insomnia v3.5.6 Release +slug: 3.5.6 +date: '2016-10-02T22:46:37-07:00' +major: +- Hide large responses by default to prevent app from hanging unexpectedly +minor: +- Add background color to editor line numbers +- Change DNS lookup method to use host machine getaddrinfo +--- + diff --git a/website/site/content/changelog/v3.5.7.md b/website/site/content/changelog/v3.5.7.md new file mode 100644 index 0000000000..d78533d36f --- /dev/null +++ b/website/site/content/changelog/v3.5.7.md @@ -0,0 +1,9 @@ +--- +title: Insomnia v3.5.7 Release +slug: 3.5.7 +date: '2016-10-05T05:13:09-07:00' +fixes: +- Fix for cookies not being saved sometimes +- Fix for environment editor line numbers background +--- + diff --git a/website/site/content/changelog/v3.6.0.md b/website/site/content/changelog/v3.6.0.md new file mode 100644 index 0000000000..5c87f69ef9 --- /dev/null +++ b/website/site/content/changelog/v3.6.0.md @@ -0,0 +1,14 @@ +--- +title: Insomnia v3.6.0 Release +slug: 3.6.0 +date: '2016-10-21T17:33:58-07:00' +fixes: +- Fixed scrolling bug for form encoded request bodies +- Fixed rare case where cursor would jump to the end of the URL +- The show passwords setting no longer requires an app restart +--- + +This update includes a few small fixes, and many under-the-hood changes to +prepare for the upcoming cloud sync beta. If you would like to participate, send +me an email at support@insomnia.rest + diff --git a/website/site/content/changelog/v3.6.2.md b/website/site/content/changelog/v3.6.2.md new file mode 100644 index 0000000000..6e234cbb92 --- /dev/null +++ b/website/site/content/changelog/v3.6.2.md @@ -0,0 +1,10 @@ +--- +title: Insomnia v3.6.2 Release +slug: 3.6.2 +date: '2016-10-25T02:01:10-07:00' +minor: +- Updates for the Insomnia Plus beta +fixes: +- Loading spinner no longer gets stuck when quitting the app mid-request +--- + diff --git a/website/site/content/changelog/v3.6.4.md b/website/site/content/changelog/v3.6.4.md new file mode 100644 index 0000000000..29f69cbcc2 --- /dev/null +++ b/website/site/content/changelog/v3.6.4.md @@ -0,0 +1,11 @@ +--- +date: 2016-10-26T20:35:02-07:00 +title: Insomnia v3.6.4 Release +slug: 3.6.4 +minor: + - Added PURGE and FIND custom HTTP methods + - New setting to force stacked layout + - Prefer IPv6 addresses and fallback to IPv4 on failure (same behaviour as curl) +fixes: + - Fixed problem where editing environment name would overwrite changes +--- diff --git a/website/site/content/changelog/v3.6.6.md b/website/site/content/changelog/v3.6.6.md new file mode 100644 index 0000000000..c173848d69 --- /dev/null +++ b/website/site/content/changelog/v3.6.6.md @@ -0,0 +1,12 @@ +--- +date: 2016-10-27T03:58:48-07:00 +title: Insomnia v3.6.6 Release +slug: 3.6.6 +major: +- Added support for responses that return images +fixes: +- Fixed some minor edge cases thanks to better error reporting in the last update +--- + +There is now a setting to enable the cloud sync beta features! Give them a try +and let me know what you think! diff --git a/website/site/content/changelog/v3.6.7.md b/website/site/content/changelog/v3.6.7.md new file mode 100644 index 0000000000..d9194aa740 --- /dev/null +++ b/website/site/content/changelog/v3.6.7.md @@ -0,0 +1,12 @@ +--- +date: 2016-11-01T10:53:38-07:00 +title: Insomnia v3.6.7 Release +slug: 3.6.7 +major: +- New option to download responses in the response preview dropdown +minor: +- Synced workspaces no longer default to automatic mode +fixes: +- Better handling of ENETUNREACH error +- Minor tweaks an fixes for the cloud sync beta +--- diff --git a/website/site/content/changelog/v3.6.8.md b/website/site/content/changelog/v3.6.8.md new file mode 100644 index 0000000000..a6afb51c55 --- /dev/null +++ b/website/site/content/changelog/v3.6.8.md @@ -0,0 +1,7 @@ +--- +date: 2016-11-07T12:22:03-08:00 +title: Insomnia v3.6.8 Release +slug: 3.6.8 +minor: +- Minor improvements and bug fixes +--- diff --git a/website/site/content/changelog/v3.7.0.md b/website/site/content/changelog/v3.7.0.md new file mode 100644 index 0000000000..d915665c5b --- /dev/null +++ b/website/site/content/changelog/v3.7.0.md @@ -0,0 +1,17 @@ +--- +date: 2016-11-15 +title: Insomnia v3.7.0 Release +slug: 3.7.0 +major: +- Insomnia Cloud Sync is here! +- Nested folders now supported +minor: +- Minor improvements and bug fixes +- Rearranges settings menus +fixes: +- Fixed incrementing response size on keep-alive connections +- App new refreshes after importing a Curl command +--- + +Version 3.7.0 brings with it the announcement of Insomnia Plus, a subscription add-on to Insomnia +that ensures all of your data is securely backed up and available on all of your devices! diff --git a/website/site/content/changelog/v3.7.1.md b/website/site/content/changelog/v3.7.1.md new file mode 100644 index 0000000000..62f97601af --- /dev/null +++ b/website/site/content/changelog/v3.7.1.md @@ -0,0 +1,11 @@ +--- +date: 2016-11-17 +title: Insomnia v3.7.1 Release +slug: 3.7.1 +minor: +- Improved error handling when editing form data +- Improved signup flow +fixes: +- Fix for environment not being used to render Query preview +- Minor bug fixes +--- diff --git a/website/site/content/changelog/v3.7.3.md b/website/site/content/changelog/v3.7.3.md new file mode 100644 index 0000000000..3a8004c792 --- /dev/null +++ b/website/site/content/changelog/v3.7.3.md @@ -0,0 +1,11 @@ +--- +date: 2016-11-18 +title: Insomnia v3.7.3 Release +slug: 3.7.3 +minor: +- No longer automatically URL encode semicolons or commas in URL pathname +- Some minor improvements to sync logic +fixes: +- Fixed app updates requiring two restarts to take effect +- Fixed credit card form to support American Express cards +--- diff --git a/website/site/content/changelog/v4.0.12.md b/website/site/content/changelog/v4.0.12.md new file mode 100644 index 0000000000..cdc1180d0a --- /dev/null +++ b/website/site/content/changelog/v4.0.12.md @@ -0,0 +1,12 @@ +--- +date: 2016-12-23 +title: Insomnia v4.0.12 Release +slug: 4.0.12 +major: +- Code editors now auto-closes brackets and quotes +fixes: +- Prevent sidebar dragging when editing request names +- Fix body still showing after switching to No Body +- Fix sidebar footer obscuring Beautify button when collapsed +- Added potential fix for some edge case DNS issues +--- diff --git a/website/site/content/changelog/v4.0.13.md b/website/site/content/changelog/v4.0.13.md new file mode 100644 index 0000000000..731314a44a --- /dev/null +++ b/website/site/content/changelog/v4.0.13.md @@ -0,0 +1,12 @@ +--- +date: 2016-12-30 +title: Insomnia v4.0.13 Release +slug: 4.0.13 +minor: +- Now import form data properly from Insomnia 2.0 +fixes: +- Fixed response size showing 0GB sometimes +- Temporary fix to automatically flush responses when DB file too big to load (256GB) +- Fixed filename not being added to multipart entries +- Fixed sync menu not showing up for some users +--- diff --git a/website/site/content/changelog/v4.0.2.md b/website/site/content/changelog/v4.0.2.md new file mode 100644 index 0000000000..0db18ac0a8 --- /dev/null +++ b/website/site/content/changelog/v4.0.2.md @@ -0,0 +1,42 @@ +--- +date: 2016-12-01 +title: Insomnia v4.0.2 Release +slug: 4.0.2 +link: https://insomnia.rest/blog/insomnia-4-announcement/ +summary: "Insomnia 4.0 is here, and is packed with awesome features and improvements!" +major: +- Insomnia is now out of beta! +- Multipart form support (with files) +- Binary data support (file uploads) +- Response history viewer +- Support for importing Postman v2 and HTTP Archive (HAR) formats +- All query parameters, headers, form data, and authentication items are now toggleable +- New advanced sending options (hold CMD on Mac or Ctrl on Windows) +- Huge performance improvements!!! +minor: +- Much better support for cURL import format (past command into URL) +- Code generation now remembers your preferences +- Can now import query parameters from Url to query editor +- Changed default request body type to none, and improved selection process +- Dropdowns now scroll instead of being cut off if not enough room +- Selected tab now remembered when changing requests +- Can now delete your last workspace (will prompt to create a new one) +- Show milliseconds when hovering over response time +- Show bytes when hovering over response size +fixes: +- Fixed nested folders not highlighting correctly sometimes +- Requests are now activated after duplicating +- Lots and lots of small fixes +- Fixed various import bugs +--- + +I'm happy to announce that version 4.0 is here! This marks the end of the five month +beta period since launch. I would like to thank the over 400 people who I've talked +to that helped make Insomnia great. + + + +![Puppy Surprise](https://media.giphy.com/media/t0TNY68t8wq2Y/giphy.gif) + + + diff --git a/website/site/content/changelog/v4.0.5.md b/website/site/content/changelog/v4.0.5.md new file mode 100644 index 0000000000..305c40626a --- /dev/null +++ b/website/site/content/changelog/v4.0.5.md @@ -0,0 +1,12 @@ +--- +date: 2016-12-05 +title: Insomnia v4.0.5 Release +slug: 4.0.5 +minor: +- Curl import now supports form data +- Deleting header/query/form items now required a confirmation click +fixes: +- Fixed header/query/form delete functionality +- Fixed some bugs in the installation process from some machines +- Attempt to fix icon on some Linux distributions +--- diff --git a/website/site/content/changelog/v4.0.9.md b/website/site/content/changelog/v4.0.9.md new file mode 100644 index 0000000000..1a8535567e --- /dev/null +++ b/website/site/content/changelog/v4.0.9.md @@ -0,0 +1,15 @@ +--- +date: 2016-12-08 +title: Insomnia v4.0.9 Release +slug: 4.0.9 +minor: +- Curl import now supports application/x-www-form-urlencoded +- Better error handling during requests +- Create top level folder when importing Postman collection +- Add default Accept header to all requests +- Add default User-Agent header to all requests +fixes: +- Recursive environment variables with double quotes now work +- Second attempt at fixing app icon for certain Linux environments +- Fixes for more advanced Curl import commands +--- diff --git a/website/site/content/changelog/v4.1.1.md b/website/site/content/changelog/v4.1.1.md new file mode 100644 index 0000000000..c6ff22e524 --- /dev/null +++ b/website/site/content/changelog/v4.1.1.md @@ -0,0 +1,15 @@ +--- +date: 2017-01-11 +title: Insomnia v4.1.1 Release +slug: 4.1.1 +summary: Welcome to 2017. This update brings support for Team sync and collaboration! +link: https://insomnia.rest/teams/ +major: +- Support for Insomnia Teams +minor: +- Sync is now more immediate +fixes: +- Manually set Host header no longer gets overridden +- Fixed synced workspaces reappearing after deletion +- Many other sync-related fixes +--- diff --git a/website/site/content/changelog/v4.2.0.md b/website/site/content/changelog/v4.2.0.md new file mode 100644 index 0000000000..815ffa2f97 --- /dev/null +++ b/website/site/content/changelog/v4.2.0.md @@ -0,0 +1,16 @@ +--- +date: 2017-01-23 +title: Insomnia v4.2.0 Release +slug: 4.2.0 +link: https://insomnia.rest/blog/introducing-color-themes/ +major: +- Color Themes! +fixes: +- Fixed problems with editing cookies +- Fixed bug with sidebar drag-n-drop +- Minor URL encoding tweaks +--- + +Color themes are here! Check out the [Blog Post](/blog/introducing-color-themes/) for more info. + +Insomnia Premium Color Themes diff --git a/website/site/content/changelog/v4.2.11.md b/website/site/content/changelog/v4.2.11.md new file mode 100644 index 0000000000..0d64b3bfed --- /dev/null +++ b/website/site/content/changelog/v4.2.11.md @@ -0,0 +1,12 @@ +--- +date: 2017-02-07 +title: Insomnia v4.2.11 Release +slug: 4.2.11 +major: +- URLs in responses are now clickable +fixes: +- JSON pretty printing no longer parses as JavaScript (1.000 will not get rounded) +minor: +- Dropdowns in sidebar and on the send button now trigger on right-click +- Now support more than one level of recursive template variables +--- diff --git a/website/site/content/changelog/v4.2.14.md b/website/site/content/changelog/v4.2.14.md new file mode 100644 index 0000000000..125a69e080 --- /dev/null +++ b/website/site/content/changelog/v4.2.14.md @@ -0,0 +1,14 @@ +--- +date: 2017-02-15 +title: Insomnia v4.2.14 Release +slug: 4.2.14 +major: +- Add support for private environments which will not be exported or synced +- Highlight Nunjucks variables in code editors +minor: +- Now show escaped unicode characters in response +- Add LINK and UNLINK HTTP methods +fixes: +- Render errors are now displayed again +- Fixed deleted synced resources sometimes reappearing +--- diff --git a/website/site/content/changelog/v4.2.2.md b/website/site/content/changelog/v4.2.2.md new file mode 100644 index 0000000000..6e7fa9bd3d --- /dev/null +++ b/website/site/content/changelog/v4.2.2.md @@ -0,0 +1,13 @@ +--- +date: 2017-01-25 +title: Insomnia v4.2.2 Release +slug: 4.2.2 +major: +- New editor key maps (Vim, Emacs, Sublime) +minor: +- Workspaces now visible in request switcher +fixes: +- Fixed issue with recursive environment variables not resolving +- Fixed webview background color not being white +- Fixed label click region in settings menu +--- diff --git a/website/site/content/changelog/v4.2.3.md b/website/site/content/changelog/v4.2.3.md new file mode 100644 index 0000000000..5733e77364 --- /dev/null +++ b/website/site/content/changelog/v4.2.3.md @@ -0,0 +1,12 @@ +--- +date: 2017-01-26 +title: Insomnia v4.2.3 Release +slug: 4.2.3 +major: +- No longer lose body data when switching formats when possible +- Fixed memory leak for users with a lot of large request bodies +minor: +- Minor performance improvements in some areas +fixes: +- Fixed textarea padding in some menus +--- diff --git a/website/site/content/changelog/v4.2.4.md b/website/site/content/changelog/v4.2.4.md new file mode 100644 index 0000000000..ef6ee24e90 --- /dev/null +++ b/website/site/content/changelog/v4.2.4.md @@ -0,0 +1,8 @@ +--- +date: 2017-01-29 +title: Insomnia v4.2.4 Release +slug: 4.2.4 +fixes: +- Fixed pasting into URL not persisting +- Fixed webview background (again) +--- diff --git a/website/site/content/changelog/v4.2.5.md b/website/site/content/changelog/v4.2.5.md new file mode 100644 index 0000000000..992c0eeae8 --- /dev/null +++ b/website/site/content/changelog/v4.2.5.md @@ -0,0 +1,7 @@ +--- +date: 2017-01-30 +title: Insomnia v4.2.5 Release +slug: 4.2.5 +fixes: +- Fixed pasting inside of URL +--- diff --git a/website/site/content/changelog/v4.2.7.md b/website/site/content/changelog/v4.2.7.md new file mode 100644 index 0000000000..87d7a9b2a8 --- /dev/null +++ b/website/site/content/changelog/v4.2.7.md @@ -0,0 +1,14 @@ +--- +date: 2017-01-31 +title: Insomnia v4.2.7 Release +slug: 4.2.7 +major: +- Added ability to auto-download response bodies to file +fixes: +- Fixed sidebar filtering for nested folders +- Fixed binary file uploads missing Content-Length header +- Fixed pasting Curl command into URL wouldn't update URL +- Fixed code generation only operating on active request +minor: +- Clicking Cancel Account after trial ends now signs out +--- diff --git a/website/site/content/changelog/v4.2.8.md b/website/site/content/changelog/v4.2.8.md new file mode 100644 index 0000000000..7d5d89ec17 --- /dev/null +++ b/website/site/content/changelog/v4.2.8.md @@ -0,0 +1,7 @@ +--- +date: 2017-02-01 +title: Insomnia v4.2.8 Release +slug: 4.2.8 +fixes: +- Fixed app crashing on first launch :( +--- diff --git a/website/site/content/changelog/v4.2.9.md b/website/site/content/changelog/v4.2.9.md new file mode 100644 index 0000000000..db0982eefc --- /dev/null +++ b/website/site/content/changelog/v4.2.9.md @@ -0,0 +1,8 @@ +--- +date: 2017-02-02 +title: Insomnia v4.2.9 Release +slug: 4.2.9 +fixes: +- Fixed network request DNS fallback logic in some cases +- Minor bug fixes +--- diff --git a/website/site/content/changelog/v5.0.1.md b/website/site/content/changelog/v5.0.1.md new file mode 100644 index 0000000000..caf9dc01e0 --- /dev/null +++ b/website/site/content/changelog/v5.0.1.md @@ -0,0 +1,43 @@ +--- +date: 2017-04-05 +title: Insomnia v5.0.1 Release +slug: 5.0.1 +summary: Version 5.0 is here and it is the biggest release yet! +link: https://insomnia.rest/blog/insomnia-5-announcement/ +major: + - Contextual autocomplete for environments, URLs, header names/values, and more + - All key-value editors are now sortable + - Add OAuth 2.0, Digest, and NTLM authentication + - New Timeline response tab that shows much more detail about the request + - Environment variables and template tags now highlighted throughout the app + - Replaced NodeJS networking backend with libcurl + - Added per-request settings for controlling cookies, template rendering, and URL encoding + - Proxy now supports Digest and NTLM auth types + - Support for custom HTTP methods + - App panes now resizable when in vertical layout + - Many minor performance improvements +minor: + - Environment editor now respects line wrap setting + - App now prompts to sync unrecognized workspaces instead of syncing without asking + - Response view types have been reworked to behave more intuitively + - Enable context (right-click) menu in response web view + - Request body syntax highlighting recognizes more content-types + - Better errors for render failures + - HTTP proxy can now be toggled on and off + - Tabs no longer lose state after switching + - Update bracket match style in editor + - Window title now reflects active workspace and request + - Header names now trimmed of whitespace before sending + - Add warning when environments exist, but none are selected + - Better styling of numeric counters on tabs + - Added tooltip help hints in various places +fixes: + - No longer auto-encode equals sign in URL path + - Cookies now stored on redirects + - More reliable sort order after duplicating requests + - Clicking on workspaces in request switcher now works again + - More reliable querystring importing + - Fixed drag-n-drop support within code editor + - Headers editor now refreshed after changing body content-type +--- + diff --git a/website/site/content/changelog/v5.0.10.md b/website/site/content/changelog/v5.0.10.md new file mode 100644 index 0000000000..1b9bd243b0 --- /dev/null +++ b/website/site/content/changelog/v5.0.10.md @@ -0,0 +1,18 @@ +--- +date: 2017-04-20 +title: Insomnia v5.0.10 Release +slug: 5.0.10 +summary: Not much new – just lots of fixes and improvements! +minor: + - Improved autocompletion suggestion of URLs + - Leave Content-Type header in place when switching body type to Other +fixes: + - Fixed automatic gzip decoding of responses if Accept header set manually + - Correctly handle ISO-8859-1 responses + - Prevent showing autocomplete if input loses focus + - Now send correct grant type during OAuth 2.0 token refresh + - OAuth 2.0 now shows when token expires + - Prevent request from sending twice sometimes via keyboard shortcut + - No longer fail when HEAD requests return body +--- + diff --git a/website/site/content/changelog/v5.0.12.md b/website/site/content/changelog/v5.0.12.md new file mode 100644 index 0000000000..88b35210b0 --- /dev/null +++ b/website/site/content/changelog/v5.0.12.md @@ -0,0 +1,14 @@ +--- +date: 2017-05-03 +title: Insomnia v5.0.12 Release +slug: 5.0.12 +minor: + - Add ability to import from URL + - Made theme more compact + - Performance improvements +fixes: + - Better handling of Windows line endings + - Fixed importing curl commands containing question marks + - Minor bug fixes +--- + diff --git a/website/site/content/changelog/v5.0.2.md b/website/site/content/changelog/v5.0.2.md new file mode 100644 index 0000000000..13102af345 --- /dev/null +++ b/website/site/content/changelog/v5.0.2.md @@ -0,0 +1,17 @@ +--- +date: 2017-04-07 +title: Insomnia v5.0.2 Release +slug: 5.0.2 +summary: Check out the full version 5.0 announcement if you missed it! +link: https://insomnia.rest/blog/insomnia-5-announcement/ +major: + - Added new base64 encode/decode template tag +minor: + - More reliable file uploads +fixes: + - Fixed body type selection in Create Request dialog + - Fixed minor bug with OAuth 2.0 access token handling + - Now escape unicode double quotes during JSON formatting + - Fixed ampersands in clicked links +--- + diff --git a/website/site/content/changelog/v5.0.20.md b/website/site/content/changelog/v5.0.20.md new file mode 100644 index 0000000000..681b1dffc0 --- /dev/null +++ b/website/site/content/changelog/v5.0.20.md @@ -0,0 +1,8 @@ +--- +date: 2017-05-05 +title: Insomnia v5.0.20 Release +slug: 5.0.20 +minor: + - Behind-the-scenes update for new auto-update server +--- + diff --git a/website/site/content/changelog/v5.0.3.md b/website/site/content/changelog/v5.0.3.md new file mode 100644 index 0000000000..1a95913cb2 --- /dev/null +++ b/website/site/content/changelog/v5.0.3.md @@ -0,0 +1,10 @@ +--- +date: 2017-04-09 +title: Insomnia v5.0.3 Release +slug: 5.0.3 +fixes: + - Fix Content-Length on binary file uploads + - Send more specific Content-Type in multipart uploads + - Fix cursors resetting to start of input when switching apps +--- + diff --git a/website/site/content/changelog/v5.0.4.md b/website/site/content/changelog/v5.0.4.md new file mode 100644 index 0000000000..5a7bd2ee9b --- /dev/null +++ b/website/site/content/changelog/v5.0.4.md @@ -0,0 +1,14 @@ +--- +date: 2017-04-11 +title: Insomnia v5.0.4 Release +slug: 5.0.4 +minor: + - Add keyboard shortcut to view hotkey help + - Remove var prefix on environment variables + - Add link to httpsnippet library in code generation dialog +fixes: + - Fix cursor unfocusing when editing environment variables + - No longer add default content-type or content-length when no request body + - Quick switcher now scrolls properly again +--- + diff --git a/website/site/content/changelog/v5.0.5.md b/website/site/content/changelog/v5.0.5.md new file mode 100644 index 0000000000..5b12aeac4b --- /dev/null +++ b/website/site/content/changelog/v5.0.5.md @@ -0,0 +1,11 @@ +--- +date: 2017-04-14 +title: Insomnia v5.0.5 Release +slug: 5.0.5 +summary: A few last remaining fixes after the 5.0 launch. Thanks for all the feedback! +minor: + - New setting to specify indent size in code editors +fixes: + - Minor bug fixes +--- + diff --git a/website/site/content/changelog/v5.1.0.md b/website/site/content/changelog/v5.1.0.md new file mode 100644 index 0000000000..6a06829449 --- /dev/null +++ b/website/site/content/changelog/v5.1.0.md @@ -0,0 +1,19 @@ +--- +date: 2017-05-24 +title: Insomnia v5.1.0 Release +slug: 5.1.0 +summary: This is the first release containing open-source contributions. Thanks to all contributors! +major: + - New option to auto-hide menubar on Windows and Linux! + - New template tag to reference values from other responses + - More friendly Template Tag editor + - Ability to save full HTTP response to file, including headers +minor: + - Data exports now have friendlier names + - Unreferenced template tags are longer rendered +fixes: + - Fix cookie handling for localhost domains + - Better handle of JSON when root is a String + - File selector no longer clears file on Cancel + - Many more fixes fixes +--- diff --git a/website/site/content/changelog/v5.1.1.md b/website/site/content/changelog/v5.1.1.md new file mode 100644 index 0000000000..7699fc6e3c --- /dev/null +++ b/website/site/content/changelog/v5.1.1.md @@ -0,0 +1,16 @@ +--- +date: 2017-05-29 +title: Insomnia v5.1.1 Release +slug: 5.1.1 +major: + - Environment editor now warns about invalid variable names and errors +minor: + - OAuth now uses a password field for password credentials + - OAuth authorization window session is now cleared on app launch + - Now show folder as prefix when selecting requests for Response Value tag + - More appropriate size for app icon +fixes: + - Fix right-click context menu staying open + - No longer error when response contains invalid cookie + - Always include equals sign in x-www-form-urlencoded bodies when value is empty +--- diff --git a/website/site/content/changelog/v5.10.1.md b/website/site/content/changelog/v5.10.1.md new file mode 100644 index 0000000000..79508b84ad --- /dev/null +++ b/website/site/content/changelog/v5.10.1.md @@ -0,0 +1,21 @@ +--- +date: 2017-11-01 +title: Insomnia v5.10.1 Release +slug: 5.10.1 +channel: stable +major: +- Ability to export workspace as HAR (PR:523:Atvaark) +- Can now drag-n-drop files to import +- Client certificates can now be made private (never synced) +- GraphQL now sends operationName automatically +- New template tags for hashing and reading files +fixes: +- Fixed cookies being deleted when editing (sometimes) +- Closing environment editor too quickly no longer loses changes +- Multipart handling works with large files again (above 2GB) +- Other minor fixes +minor: +- Minor tweaks to template tag editor +- Keyboard shortcut to refresh all plugins +- New plugin API methods to set request settings (eg. cookie send behavior) +--- diff --git a/website/site/content/changelog/v5.11.0.md b/website/site/content/changelog/v5.11.0.md new file mode 100644 index 0000000000..d81a76f6c2 --- /dev/null +++ b/website/site/content/changelog/v5.11.0.md @@ -0,0 +1,22 @@ +--- +date: 2017-11-08 +title: Insomnia v5.11.0 Release +slug: 5.11.0 +channel: stable +major: +- OAuth 1.0 Support (PR:571:besolov) +- Atlassian ASAP Auth Support (PR:566:gerrytan) +- No longer require global npm to install plugins (included standalone Yarn) +fixes: +- Fix GraphQL autocompletion not working +- Fix scroll jumping issue in key-value editors (headers, query, etc) +- Fix Cmd+Enter conflict in Sublime keymap +- Fix for raw cookie editor deleting cookies +minor: +- Print Curl version in Timeline +- Template tag editor no longer has delay when opening +- Added debug logging to OAuth 2.0 flow +- Support wildcards in port for client certificates +- Use more unique temporary director name to avoid conflicts +- No longer send default Accept and Accept-Encoding headers +--- diff --git a/website/site/content/changelog/v5.11.5.md b/website/site/content/changelog/v5.11.5.md new file mode 100644 index 0000000000..29d53b5616 --- /dev/null +++ b/website/site/content/changelog/v5.11.5.md @@ -0,0 +1,17 @@ +--- +date: 2017-11-10 +title: Insomnia v5.11.5 Release +slug: 5.11.5 +channel: stable +fixes: +- Fix bug where dragging a folder into itself would make it disappear +minor: +- OAuth 2.0 requests now use same settings as current request +- Environment editor now refreshes from sync change when it's open +- Improvements to Curl importer +- Add back default Accept header from v5.11.0 but not Accept-Encoding +- New keyboard shortcut to delete active request +- Prompt user to automatically change Content-Type when binary file is selected +- Update documentation links to point to new support website +--- + diff --git a/website/site/content/changelog/v5.11.7.md b/website/site/content/changelog/v5.11.7.md new file mode 100644 index 0000000000..21089d33c2 --- /dev/null +++ b/website/site/content/changelog/v5.11.7.md @@ -0,0 +1,12 @@ +--- +date: 2017-11-14 +title: Insomnia v5.11.7 Release +slug: 5.11.7 +channel: stable +major: +- First-party support for viewing multipart responses +fixes: +- Accept header now overridable again +- Support showing multiple response headers with the same name +--- + diff --git a/website/site/content/changelog/v5.12.0-beta.2.md b/website/site/content/changelog/v5.12.0-beta.2.md new file mode 100644 index 0000000000..2f39948b1b --- /dev/null +++ b/website/site/content/changelog/v5.12.0-beta.2.md @@ -0,0 +1,19 @@ +--- +date: 2017-11-21 +title: Insomnia v5.12.0 Beta 2 +slug: 5.12.0-beta.2 +channel: beta +major: +- Less obtrusive update notification +fixes: +- Support for downloading huge files (over ~2GB) +- Fixed HAWK algorithm selection +minor: +- Response timer always shows 1 decimal place (PR:617:k-nut) +- Ability to specify auto-update channel +- Ability to disable auto-updates +- Moved database to the Electron main thread +- Use Google analytics API directly (no more external JS!) +--- + +Thanks to [@lifewcody](https://github.com/lifewcody) for helping debug large file downloads. diff --git a/website/site/content/changelog/v5.12.0-beta.3.md b/website/site/content/changelog/v5.12.0-beta.3.md new file mode 100644 index 0000000000..6fc61a1690 --- /dev/null +++ b/website/site/content/changelog/v5.12.0-beta.3.md @@ -0,0 +1,12 @@ +--- +date: 2017-11-23 +title: Insomnia v5.12.0 Beta 3 +slug: 5.12.0-beta.3 +channel: beta +fixes: +- Fix environment editor not saving immediately after fixing an error +- Fix environment editor not always refreshing after data sync +minor: +- Faster storing of large response bodies +- Provide a convenient save button when large response gets hidden +--- diff --git a/website/site/content/changelog/v5.12.0.md b/website/site/content/changelog/v5.12.0.md new file mode 100644 index 0000000000..4421e6f1ba --- /dev/null +++ b/website/site/content/changelog/v5.12.0.md @@ -0,0 +1,20 @@ +--- +date: 2017-11-23 +title: Insomnia v5.12.0 +slug: 5.12.0 +draft: true +summary: Thanks to @lifewcody for helping debug large file downloads. +major: +- Less obtrusive update notification +fixes: +- Support for downloading huge files (over ~2GB) +- Fixed HAWK algorithm selection +minor: +- Response timer always shows 1 decimal place (PR:617:k-nut) +- Ability to specify auto-update channel +- Ability to disable auto-updates +- Moved database to the Electron main thread +- Use Google analytics API directly (no more external JS!) +--- + +Thanks to [@lifewcody](https://github.com/lifewcody) for helping debug large file downloads. diff --git a/website/site/content/changelog/v5.2.0.md b/website/site/content/changelog/v5.2.0.md new file mode 100644 index 0000000000..bad168f4b7 --- /dev/null +++ b/website/site/content/changelog/v5.2.0.md @@ -0,0 +1,17 @@ +--- +date: 2017-06-06 +title: Insomnia v5.2.0 Release +slug: 5.2.0 +major: + - Ability to document requests and workspaces using Markdown + - Added Bearer authentication helper + - Added setting to whitelist hostnames from proxy setting + - Ability to duplicate workspace +minor: + - Setting to disable analytics tracking + - URL preview copy button + - Experimental plugin support (still undocumented) +fixes: + - Fixed Client Credentials setting in OAuth form not changing + - Other minor UI fixes +--- diff --git a/website/site/content/changelog/v5.3.0.md b/website/site/content/changelog/v5.3.0.md new file mode 100644 index 0000000000..9bcb1a11ff --- /dev/null +++ b/website/site/content/changelog/v5.3.0.md @@ -0,0 +1,21 @@ +--- +date: 2017-06-12 +title: Insomnia v5.3.0 Release +slug: 5.3.0 +major: +- Multi-line text values now supported in form data editors +- New template tag to reference cookie values +- Request snapshot now stored and recovered with response history +- Previous response filters are now persisted +minor: +- Can now send requests with cmdOrCtr+R or F5 keys +- Added ability to delete custom HTTP methods +- Added ability to delete current response +- Markdown descriptions now sanitize HTML input +- Markdown descriptions now selectable +- Postman imports now included description field +fixes: +- More robust JSON formatting on content containing escaped characters +- Fix stale requests sometimes being sent soon after editing URL +- Query preview view now scrolls when too long +--- diff --git a/website/site/content/changelog/v5.3.3.md b/website/site/content/changelog/v5.3.3.md new file mode 100644 index 0000000000..1a6f86597d --- /dev/null +++ b/website/site/content/changelog/v5.3.3.md @@ -0,0 +1,10 @@ +--- +date: 2017-06-13 +title: Insomnia v5.3.3 Release +slug: 5.3.3 +major: +- Can now sort requests and folders together in sidebar +fixes: +- Fix Markdown description editor height from last update +- Much more robust handling when sorting nested sidebar items +--- diff --git a/website/site/content/changelog/v5.3.6.md b/website/site/content/changelog/v5.3.6.md new file mode 100644 index 0000000000..eb0e720a84 --- /dev/null +++ b/website/site/content/changelog/v5.3.6.md @@ -0,0 +1,12 @@ +--- +date: 2017-06-15 +title: Insomnia v5.3.6 Release +slug: 5.3.6 +minor: +- Added option to use custom date format with Timestamp tag +fixes: +- Improve cookie handling with redirects +- Fixed workspace duplication active environment bug +- Fixed status tag in response history showing ERROR for responses with no HTTP Reason +- Fixed autocomplete constants filling with undefined +--- diff --git a/website/site/content/changelog/v5.4.0.md b/website/site/content/changelog/v5.4.0.md new file mode 100644 index 0000000000..ef866bc073 --- /dev/null +++ b/website/site/content/changelog/v5.4.0.md @@ -0,0 +1,21 @@ +--- +date: 2017-06-22 +title: Insomnia v5.4.0 Release +slug: 5.4.0 +major: +- Support for unix domain sockets using URL format http://unix:SOCKET:PATH +- Dedicated Description tab for request documentation +- Wildcards now supported in client certificate host +minor: +- Dropdowns within tabs now only open if tab is already active +- Tab lists now scrolls horizontally when too long +- Markdown description style improvements +- Vastly improved dropdown positioning algorithm +- Add back ability to change text editor keymap to Sublime Text +fixes: +- Prevent opening links multiple times in description preview +- Fixed Content-Length not being sent with initial NTLM authorization request +- Fixed client certificate toggling not working +--- + + diff --git a/website/site/content/changelog/v5.5.2.md b/website/site/content/changelog/v5.5.2.md new file mode 100644 index 0000000000..fc9c3c5ccf --- /dev/null +++ b/website/site/content/changelog/v5.5.2.md @@ -0,0 +1,15 @@ +--- +date: 2017-06-30 +title: Insomnia v5.5.2 Release +slug: 5.5.2 +major: +- Added ability to preview PDF responses (PR:325:Antoine38660) +- Added ability to assign colors to environments (PR:334) +- All dropdown menus are now filterable by typing (PR:340) +minor: +- Window maximized state now remembered +- Response bodies no longer stored in memory (PR:338) +fixes: +- Fixed dropdown dismissing reliability inside modal dialogs +- Fixed unix hostname being confused with domain socket syntax +--- diff --git a/website/site/content/changelog/v5.6.1.md b/website/site/content/changelog/v5.6.1.md new file mode 100644 index 0000000000..b609a57a01 --- /dev/null +++ b/website/site/content/changelog/v5.6.1.md @@ -0,0 +1,16 @@ +--- +date: 2017-07-17 +title: Insomnia v5.6.1 Release +slug: 5.6.1 +major: +- Basic AWS authentication v4 support (PR:347:focusaurus) +- Fuzzy searching support for request switcher (PR:204:dmlittle) +- Prompt to include private environments on data export, if any exist +minor: +- More useful error messages in Request Cookie template tag +- Add application/vnd.api+json to Content-Type autocomplete (PR:349:synthtech) +fixes: +- null values within environments no longer break autocomplete +- Better handling of environment variables containing Template Tags +- Handle protocol-less URLs in OAuth 2 settings (PR:346:NicholasMata) +--- diff --git a/website/site/content/changelog/v5.6.3.md b/website/site/content/changelog/v5.6.3.md new file mode 100644 index 0000000000..291b9e7394 --- /dev/null +++ b/website/site/content/changelog/v5.6.3.md @@ -0,0 +1,7 @@ +--- +date: 2017-07-18 +title: Insomnia v5.6.3 Release +slug: 5.6.3 +fixes: +- Fixed downloading response bodies +--- diff --git a/website/site/content/changelog/v5.7.0.md b/website/site/content/changelog/v5.7.0.md new file mode 100644 index 0000000000..258e6fe255 --- /dev/null +++ b/website/site/content/changelog/v5.7.0.md @@ -0,0 +1,22 @@ +--- +date: 2017-08-02 +title: Insomnia v5.7.0 Release +slug: 5.7.0 +channel: stable +major: +- New GraphQL request body type +- New netrc authentication type (PR:384:moxuz) +minor: +- Add autodetection for XML when no Content-Type present +- Workspaces created by import or sync now marked indicated in UI +- Data imports no longer update modified time +- Plugin system improvements (still experimental) +- Data sync networking improvements +fixes: +- Fixed downloading response bodies +- Do not include literal newline characters in Curl snippets +- Change HTTP method to GET on redirects +- Fix AWS authentication for GET requests +- Colons in header values now handled properly +- No longer close search box on Enter +--- diff --git a/website/site/content/changelog/v5.7.10.md b/website/site/content/changelog/v5.7.10.md new file mode 100644 index 0000000000..676d34ca88 --- /dev/null +++ b/website/site/content/changelog/v5.7.10.md @@ -0,0 +1,12 @@ +--- +date: 2017-08-12T10:00:00-07:00 +title: Insomnia v5.7.10 Release +slug: 5.7.10 +channel: stable +fixes: +- Fixed race condition causing request creation to fail +- Large response size check now uses uncompressed size +- Fixed invalid cookies causing code generation to break +minor: +- Show both compressed and uncompressed of responses +--- diff --git a/website/site/content/changelog/v5.7.11.md b/website/site/content/changelog/v5.7.11.md new file mode 100644 index 0000000000..48f1b8abd8 --- /dev/null +++ b/website/site/content/changelog/v5.7.11.md @@ -0,0 +1,8 @@ +--- +date: 2017-08-12T15:00:00-07:00 +title: Insomnia v5.7.11 Release +slug: 5.7.11 +channel: stable +fixes: +- Fixed some modal dialogs not refreshing when opened +--- diff --git a/website/site/content/changelog/v5.7.12.md b/website/site/content/changelog/v5.7.12.md new file mode 100644 index 0000000000..bf0e804d17 --- /dev/null +++ b/website/site/content/changelog/v5.7.12.md @@ -0,0 +1,11 @@ +--- +date: 2017-08-14 +title: Insomnia v5.7.12 Release +slug: 5.7.12 +channel: stable +fixes: +- GraphQL schema fetching failed when using environment variables +- Copying large text blobs sometimes yielded a hyphen +minor: +- Now show render errors when fetching GraphQL schema +--- diff --git a/website/site/content/changelog/v5.7.14.md b/website/site/content/changelog/v5.7.14.md new file mode 100644 index 0000000000..c7f5cf0538 --- /dev/null +++ b/website/site/content/changelog/v5.7.14.md @@ -0,0 +1,11 @@ +--- +date: 2017-08-16 +title: Insomnia v5.7.14 Release +slug: 5.7.14 +channel: stable +summary: Sorry to those Windows users who were impacted by hanging requests! +fixes: +- Fixed requests hanging for a subset of Windows users +minor: +- Made max redirects configurable in settings +--- diff --git a/website/site/content/changelog/v5.7.4.md b/website/site/content/changelog/v5.7.4.md new file mode 100644 index 0000000000..3ddc4875b8 --- /dev/null +++ b/website/site/content/changelog/v5.7.4.md @@ -0,0 +1,15 @@ +--- +date: 2017-08-04 +title: Insomnia v5.7.4 Release +slug: 5.7.4 +channel: stable +major: +- Template tags now work with prettify feature +fixes: +- Fixed GraphQL incorrectly JSON stringifying variables body +minor: +- More accurate logic for catching OAuth redirect URL (PR:396:starJammer) +- Added Help menu item for displaying keyboard shortcuts +- Added contact link to About section +- Default GraphQL introspection query content-type to application/json +--- diff --git a/website/site/content/changelog/v5.7.9.md b/website/site/content/changelog/v5.7.9.md new file mode 100644 index 0000000000..17d9bc1787 --- /dev/null +++ b/website/site/content/changelog/v5.7.9.md @@ -0,0 +1,17 @@ +--- +date: 2017-08-11 +title: Insomnia v5.7.9 Release +slug: 5.7.9 +channel: stable +fixes: +- Cap number of redirects to 20 (instead of unlimited) +- Over-selecting input bounds no longer clears selection +- Don't allow password input text to be copied +- Some performance improvements +minor: +- Add ability to specify Authorization token prefix for OAuth 2.0 Requests +- GraphQL schema introspection requests now apply cookies, auth, and all other Insomnia features +- GraphQL prettify no longer recursively stringifies variables object +- Display schema fetch information for GraphQL +- Automatically switch to POST when choosing GraphQL body +--- diff --git a/website/site/content/changelog/v5.8.2.md b/website/site/content/changelog/v5.8.2.md new file mode 100644 index 0000000000..cddec7931d --- /dev/null +++ b/website/site/content/changelog/v5.8.2.md @@ -0,0 +1,20 @@ +--- +date: 2017-09-11 +title: Insomnia v5.8.2 Release +slug: 5.8.2 +channel: stable +major: +- New cookie editing flow (PR:448:BeeeQueue) +- Support templating in cookies (PR:448:BeeeQueue) +- HAWK authentication (PR:446:jgiovaresco) +fixes: +- Blocker for large responses works again +- Prevent modal dialogs from closing when escaping autocomplete +- Prevent Content-Length integer overflow for uploads over 2GB +minor: +- Environment functions on plugin API (PR:443:Xuanwo) +- Fuzzy filtering now used in all UI filter inputs +- Request method now shown in tag editor (PR:453:derpoho) +- Don't touch already-encoded characters in URL +- Add HTML content-type detection +--- diff --git a/website/site/content/changelog/v5.8.3.md b/website/site/content/changelog/v5.8.3.md new file mode 100644 index 0000000000..6adb87df8f --- /dev/null +++ b/website/site/content/changelog/v5.8.3.md @@ -0,0 +1,10 @@ +--- +date: 2017-09-13 +title: Insomnia v5.8.3 Release +slug: 5.8.3 +channel: stable +fixes: +- Fixed cookie jar not being created for new workspaces +minor: +- Add button to refresh GraphQL schema (PR:481:ganderzz) +--- diff --git a/website/site/content/changelog/v5.8.4.md b/website/site/content/changelog/v5.8.4.md new file mode 100644 index 0000000000..51595f18e7 --- /dev/null +++ b/website/site/content/changelog/v5.8.4.md @@ -0,0 +1,13 @@ +--- +date: 2017-09-18 +title: Insomnia v5.8.4 Release +slug: 5.8.4 +channel: stable +major: +- More keyboard shortcuts (see preferences for details) +- Properly catch and handle plugin errors on app launch +fixes: +- Fixed GraphQL and cookie list scroll overflow issue +minor: +- Added menu item to show dev tools +--- diff --git a/website/site/content/changelog/v5.9.2.md b/website/site/content/changelog/v5.9.2.md new file mode 100644 index 0000000000..bf2662b636 --- /dev/null +++ b/website/site/content/changelog/v5.9.2.md @@ -0,0 +1,22 @@ +--- +date: 2017-10-12 +title: Insomnia v5.9.2 Release +slug: 5.9.2 +channel: stable +major: +- Can now use environment variables inside template tags +fixes: +- Autocomplete no longer breaks on template tags containing no arguments (rare case) +- Null values in environments no longer cause problems +- Fix client certificates not working sometimes on Windows +- Fix AWS auth for non POST/GET methods +minor: +- Support attribute XPath queries +- Faster prettify for large responses +- File downloads now use name from Content-Disposition header when available +- Upgrade to React 16 (10% faster render performance) +- Auto-select active environment when opening environment editor +- Added menu option to show app data folder +- Improved robustness of template tag editor +--- + diff --git a/website/site/content/changelog/v5.9.6.md b/website/site/content/changelog/v5.9.6.md new file mode 100644 index 0000000000..d3ea1326ec --- /dev/null +++ b/website/site/content/changelog/v5.9.6.md @@ -0,0 +1,20 @@ +--- +date: 2017-10-13 +title: Insomnia v5.9.6 Release +slug: 5.9.6 +channel: stable +major: +- Rewrote PDF response preview for better performance and retina support +- Can now use boolean type in template tag arguments (plugins) +fixes: +- PDF response preview works again +- Render failures in cookie dialog no longer prevent it from opening +- Fix refresh button in template tag editor +- Add React 16 error boundaries so unhandled errors will do less harm +minor: +- Moved multipart/form-data generation from libcurl into Insomnia +- New setting to display all template tags and variables in raw text +--- + + + diff --git a/website/site/content/code-of-conduct.md b/website/site/content/code-of-conduct.md new file mode 100644 index 0000000000..814e8e80b7 --- /dev/null +++ b/website/site/content/code-of-conduct.md @@ -0,0 +1,72 @@ +--- +title: Community Code of Conduct +slug: code-of-conduct +type: skinny +--- + +Like the technical community as a whole, the Insomnia community is made up of a mixture +of professionals and volunteers from all over the world, working on every aspect of the +mission – including mentorship, teaching, and connecting people. + +Diversity is a huge priority, but it can also lead to communication issues and +unhappiness. To that end, we have a few ground rules that we ask people to adhere to. This +code applies equally to founders, mentors and those seeking help and guidance. + +This isn’t an exhaustive list of things that you can’t do. Rather, take it in the spirit +in which it’s intended - a guide to make it easier to enrich all of us and the technical +communities in which we participate. + +This code of conduct applies to all spaces managed by the Insomnia project, including Slack, +the issue tracker, and any other forums created for the project which the community uses +for communication. In addition, violations of this code outside these spaces may affect +a person's ability to participate within them. + +If you believe someone is violating the code of conduct, we ask that you report it by +emailing [support@insomnia.rest](mailto:support@insomnia.rest). For more details +please see our Reporting Guidelines + +- **Be friendly and patient.** +- **Be welcoming.** We strive to be a community that welcomes and supports people of all + backgrounds and identities. This includes, but is not limited to members of any race, + ethnicity, culture, national origin, colour, immigration status, social and economic + class, educational level, sex, sexual orientation, gender identity and expression, age, + size, family status, political belief, religion, and mental and physical ability. +- **Be considerate.** Your work will be used by other people, and you in turn will + depend on the work of others. Any decision you take will affect users and colleagues, + and you should take those consequences into account when making decisions. Remember + that we're a world-wide community, so you might not be communicating in someone + else's primary language. +- **Be respectful.** Not all of us will agree all the time, but disagreement is no + excuse for poor behavior and poor manners. We might all experience some frustration + now and then, but we cannot allow that frustration to turn into a personal attack. + It’s important to remember that a community where people feel uncomfortable or + threatened is not a productive one. Members of the Insomnia community should be respectful + when dealing with other members as well as with people outside the Insomnia community. +- **Be careful in the words that you choose.** We are a community of professionals, + and we conduct ourselves professionally. Be kind to others. Do not insult or put + down other participants. Harassment and other exclusionary behavior aren't acceptable. + This includes, but is not limited to: + - Violent threats or language directed against another person. + - Discriminatory jokes and language. + - Posting sexually explicit or violent material. + - Posting (or threatening to post) other people's personally identifying information ("doxing"). + - Personal insults, especially those using racist or sexist terms. + - Unwelcome sexual attention. + - Advocating for, or encouraging, any of the above behavior. + - Repeated harassment of others. In general, if someone asks you to stop, then stop. +- **When we disagree, try to understand why.** Disagreements, both social and technical, +happen all the time and Insomnia is no exception. It is important that we resolve +disagreements and differing views constructively. Remember that we’re different. The +strength of Insomnia comes from its varied community, people from a wide range of backgrounds. +Different people have different perspectives on issues. Being unable to understand why +someone holds a viewpoint doesn’t mean that they’re wrong. Don’t forget that it is human +to err and blaming each other doesn’t get us anywhere. Instead, focus on helping to resolve +issues and learning from mistakes. + +Original text courtesy of the +[Speak Up! project](http://web.archive.org/web/20141109123859/http://speakup.io/coc.html). + +## Questions? + +Please send all questions or concerns to [support@insomnia.rest](mailto:support@insomnia.rest). + diff --git a/website/site/content/download.html b/website/site/content/download.html new file mode 100644 index 0000000000..1430fc73f7 --- /dev/null +++ b/website/site/content/download.html @@ -0,0 +1,97 @@ +--- +title: Download Insomnia +subTitle: So you can finally `GET` some `REST` 😴 +--- + +
+
+ +

+ + + OS X 10.9+ + +

+

+ or brew cask install insomnia +

+
+
+ +

+ + + Windows 7+ + +

+

+ (64-bit only) +

+
+ +
+
+
+
+
+
+
+
+
+
+

Thanks for choosing Insomnia

+

+ Help out by spreading the word 😊 +

+ + +
+
+ + diff --git a/website/site/content/paypal.md b/website/site/content/paypal.md new file mode 100644 index 0000000000..23d6349408 --- /dev/null +++ b/website/site/content/paypal.md @@ -0,0 +1,12 @@ +--- +title: Hello Friend +subTitle: I'm sorry, but PayPal is not yet supported +slug: paypal +type: skinny +--- + +At this time, Insomnia only supports payment by credit card. If you **absolutely** must +pay a different way, [Send an Email](/documentation/support-and-feedback/) and we may be +able to set up a manual billing process by other means. + +~ Gregory diff --git a/website/site/content/plus.md b/website/site/content/plus.md new file mode 100644 index 0000000000..71dff5a003 --- /dev/null +++ b/website/site/content/plus.md @@ -0,0 +1,36 @@ +--- +title: Insomnia Plus +slug: plus +subTitle: Your API workspaces, backed up and in sync +type: splash +cta: + text: Start Free Trial + href: /pricing/ +image: + alt: Insomnia plus + src: /images/screens/main.png +--- + +## Sync your API workspaces across devices + +Create an account, log in, and relax. With Plus, your application +data will be automatically backed on the cloud and synced across all +your devices. +

+ +**Automatic or manual sync** 🕰 choose when to sync + +**End-to-end encryption** 🔐 know your data is safe + +**Sync unlimited data** 🚀 never worry about limits + +--- + +## Start using Plus for free + +Sign up to start a 14-day free trial (no credit card required). + +

+
+Start Free Trial +

diff --git a/website/site/content/pricing.html b/website/site/content/pricing.html new file mode 100644 index 0000000000..42283587eb --- /dev/null +++ b/website/site/content/pricing.html @@ -0,0 +1,88 @@ +--- +title: Insomnia Addons +slug: pricing +subTitle: Enhance the power of the app 🚀 +type: wide +--- + +
+ +
+
+

Free

+
+
+

+ Free
+ forever +

+
    +
  • Mac/Windows/Linux App
  • +
  • Unlimited installations
  • +
  • Future updates
  • +
  • Open source
  • +
+
+ +
+ +
+
+

Plus

+
+
+

+ $5 / month
+ or $50 / year +

+
    +
  • All Free features
  • +
  • E2EE Data Sync 🔐
  • +
  • Unlimited devices
  • +
  • Premium color themes
  • +
  • Support future dev 💻
  • +
+
+ +
+ +
+
+

Teams

+
+
+

+ $8 / user / month
+ or $80 / user / year
+

+
    +
  • All Plus features
  • +
  • Workspace sharing 🙌
  • +
  • Team management
  • +
  • Priority email support
  • +
+
+ +
+
+ +
+
+

+ Please send any questions to + support@insomnia.rest +

+
+
diff --git a/website/site/content/support.md b/website/site/content/support.md new file mode 100644 index 0000000000..e4c30195f0 --- /dev/null +++ b/website/site/content/support.md @@ -0,0 +1,34 @@ +--- +title: Support and Feedback +slug: support +subTitle: Get Help or Join the Community +type: skinny +--- + +## Documentation + +View full help articles at [support.insomnia.rest](https://support.insomnia.rest). + +## Bug Reports and Feature Requests + +General application bugs and issues should be submitted to the +GitHub Repository. Please see the +[Contributing Guidelines](https://github.com/getinsomnia/insomnia/blob/develop/CONTRIBUTING.md) +to get started. + +## Slack Group + +Have a quick question? Chatting on Slack is a great way to get answers from real +people. [Join Now](https://chat.insomnia.rest) to get started. + +## Email Support + +Any other feedback, questions, concerns can be sent to +[support@insomnia.rest](mailto:support@insomnia.rest) and I will respond ASAP. + +

+Please do not send bug reports or feature requests via email. It benefits everyone if these +are submitted to the +[GitHub Repository](https://github.com/getinsomnia/insomnia/blob/develop/CONTRIBUTING.md) +instead. +

diff --git a/website/site/content/teams.md b/website/site/content/teams.md new file mode 100644 index 0000000000..5497704228 --- /dev/null +++ b/website/site/content/teams.md @@ -0,0 +1,36 @@ +--- +title: Insomnia for Teams +slug: teams +subTitle: Share API workspaces, stay in sync +type: splash +cta: + text: Start Free Trial + href: /pricing/ +image: + alt: Insomnia team sharing menu + src: /images/screens/sharing.png +--- + +## Collaborate on APIs with your team + +Create a team, invite coworkers, and stay in sync. Any +changes will seamlessly and securely transfer between all members, +making collaboration a breeze. +

+ +**Automatic or manual sync** 🕰 choose when to share + +**End-to-end encryption** 🔐 know your data is safe + +**No limits** 🚀 share unlimited API workspaces + +--- + +## Start using Teams for free + +Sign up to start a 14-day free trial (no credit card required). + +

+
+Start Free Trial +

diff --git a/website/site/content/terms.md b/website/site/content/terms.md new file mode 100644 index 0000000000..0680d22935 --- /dev/null +++ b/website/site/content/terms.md @@ -0,0 +1,67 @@ +--- +title: Terms of Service Agreement +slug: terms +type: skinny +--- + +By using Insomnia and the insomnia.rest app and web site ("Service"), a service of Insomnia, Inc. +("Insomnia"), you are agreeing to be bound to the following terms and conditions +("Terms of Service"). + +Insomnia reserves the right to update and change the Terms of Service at it's discretion without +notice. Any new features in excess to the current Service shall be subject to the Terms of Service. +Continued use of the Service after any such changes shall constitute your consent to such changes. + +You can review the most current version of the Terms of Service at any time at: +https://insomnia.rest/terms + +Violation of any of the terms below may result in immediate termination of your Service account. + +## Account Terms + +- Accounts registered by automated methods are not permitted and will be deleted immediately without notice. +- You must provide your legal full name, a valid email address, and any other pertinent information requested in order to complete the sign-up process. +- You are responsible for maintaining the security of your account and password. Insomnia cannot and will not be liable for any loss of information or security breaches that result from your failure to comply with this security obligation. +- You are hereby considered fully responsible for all content posted and any and all activity that occurs under your account. +- You may not use the Service for any illegal activities. You must not, in your use of the Service, violate any laws in your jurisdiction (including but not limited to copyright laws). Should you engage in any illegal activities through the Service, you agree to hold Insomnia blameless and not liable for any damages or crimes that may occur as a result. You will also have your account immediately shut down, and all data there-in removed. +- You may not use the Service to sell or distribute offensive or illegal content (goods, software, products or material). You agree Insomnia holds the right to determine what is considered "offensive" as pertaining to this agreement. Offensive and illegal content include: things that are sexually-oriented or pornographic, drugs, gambling, things that promote hate or violence towards others. You will have your account immediately shut down, and all data there-in deleted should you sell or distribute illegal or offensive content. +- You understand that the Service uses a the 3rd party payment processor Stripe (https://stripe.com) to handle payment transactions, and that all monetary transactions made through your use of the Service are subject to any fees Stripe may charge. + +## Payment and Refunds Terms + +- A valid credit card is required for paying accounts. A credit card is not required upon initial sign up. +- The Service charges it's transaction fee immediately at the point of each transaction. Transaction fees vary depending on the account plan you sign up for. +- For accounts that are signed up to a plan that charges a monthly fee, the Service bills on a monthly basis and that fee is non-refundable. Accounts are not prorated. There will be no refunds or credits or upgrade/downgrade refunds. +- All fees exclude any taxes, levies, or duties imposed by taxing authorities, and you shall be responsible for payment of all such taxes, levies, or duties. + +## Cancellation and Termination + +- It is your responsibility to ensure that your account has been properly canceled. An email requesting an account to be canceled is not considered a cancellation. You can cancel your account at any time from the "Account" section within the Service. +- All of your Content will be immediately removed from the Service should you initiate cancellation. This information can not be recovered once your account is canceled. +- Your cancellation will be effective immediately once initiated. You will not be charged again from that point forward. +- Insomnia has the right to suspend or terminate your account and refuse any and all current or future use of the Service for any reason at any time. Insomnia, in it's sole discretion, reserves the right to refuse service to anyone for any reason at any time. + +## Modifications to the Service and Prices + +- Insomnia reserves the right at any time, with or without notice, to modify or discontinue the Service, temporarily or permanently. +- Insomnia reserves the right to change the prices of any and all Services at any time. +- Insomnia shall not be liable to you or to any third party for any modification, price change, suspension or discontinuance of the Service. + +## Copyright and Content Ownership + +- The Service itself including the use of the Insomnia name, logos, domain names and other distinctive brand features are protected by copyright and other laws: © Insomnia, All rights reserved. You may not duplicate, copy, or reuse any portion of the code (HTML/CSS/Javascript) or visual design elements. +- You retain your rights to any content you submit, post or display on or through the Service. Insomnia claims no ownership to any content you post to the Service. + +## General Conditions + +- Your use of the Service is at your own risk. The service is provided on an "as is" and "as available" basis. +- Technical support is available to account holders and is only available via our social channels and email. +- You acknowledge and understand that Insomnia uses third party vendors to provide the necessary hardware, software, networking, storage, and related technology required to run the Service. +- You must not modify, adapt or hack the Service or modify another website so as to falsely imply that it is associated with the Service or Insomnia. +- You agree not to reproduce, duplicate, copy, sell, resell or exploit any portion of the Service, use of the Service, or access to the Service. +- Verbal, physical, written or other abuse (including threats of abuse or retribution) of any Insomnia employee, member, or officer will result in immediate account termination and potential criminal charges. +- Insomnia does not warrant that (i) the service will meet your specific requirements, (ii) the service will be uninterrupted, timely, or error-free, (iii) the quality of any products, services, information, or other material purchased or obtained by you through the service will meet your expectations. +- You expressly understand and agree that Insomnia shall not be liable for any direct, indirect, incidental, special, consequential or exemplary damages, including but not limited to, damages for loss of profits, goodwill, use, data or other intangible losses (even if Insomnia has been advised of the possibility of such damages), resulting from: (i) the use or the inability to use the service; (ii) the cost of procurement of substitute goods and services resulting from any goods, data, information or services purchased or obtained or messages received or transactions entered into through or from the service; (iii) unauthorized access to or alteration of your transmissions or data; (iv) statements or conduct of any third party on the service; (v) or any other matter relating to the service. +- You expressly understand and agree that Insomnia shall not be liable for any payments and monetary transactions that occur through your use of the Service. You expressly understand and agree that all payments and monetary transactions are handled by the 3rd party payment platform the Service uses: Stripe (https://stripe.com). You agree Insomnia shall not be liable for any issues regrading financial and monetary transactions between you and any other party. +- The failure of Insomnia to aggressively enforce any right or provision of the Terms of Service shall not be construed as a waiver of such right or provision. The Terms of Service outlines the entire agreement between you and Insomnia and supersedes any prior agreements between you and Insomnia including prior iterations of the Terms of Service. + diff --git a/website/site/content/transparency.md b/website/site/content/transparency.md new file mode 100644 index 0000000000..2475ad610a --- /dev/null +++ b/website/site/content/transparency.md @@ -0,0 +1,36 @@ +--- +title: Transparency +subTitle: Sharing the Road to Insomnia +slug: transparency +type: skinny +--- + +One of my goals when starting Insomnia was to share as much about the process as possible. +The first step towards that goal was publishing a monthly [transparency report](/series/transparency/) +outlining growth, mistakes, successes, and general thoughts. + +This page is the +next attempt at sharing even more. It's fairly basic right now, but I plan to add more numbers +here as time goes on. If you have any suggestions for things you want to see, just +[send an email](/documentation/support-and-feedback/) and let me know. + +## Weekly Active Users + +The following chart shows the number of weekly active users for the Insomnia desktop app. + +![Weekly Active Users](https://docs.google.com/spreadsheets/d/1VisLOuV4X3h6T5hNCk60oVIP3s80x5AWJ3duygmkkWI/pubchart?oid=1228212532&format=image) + + +Open interactive chart + + + +## Monthly Recurring Revenue + +The following chart shows the amount of monthly recurring revenue for all paid plans combined. + +![Weekly Active Users](https://docs.google.com/spreadsheets/d/1VisLOuV4X3h6T5hNCk60oVIP3s80x5AWJ3duygmkkWI/pubchart?oid=2111297713&format=image) + + +Open interactive chart + diff --git a/website/site/layouts/index.html b/website/site/layouts/index.html new file mode 100644 index 0000000000..74d8c8e74a --- /dev/null +++ b/website/site/layouts/index.html @@ -0,0 +1,213 @@ +{{ partial "head" . }} + + +{{ partial "navbar" . }} + +
+
+
+
+

+ Debug APIs like a human, not a robot +

+

+ Finally, a REST client you'll love +

+ {{ partial "download-button" }} +
+
+
+ Insomnia REST Client +
+
+
+ +
+
+
+
+
+

+ Powerful HTTP toolbelt, in one intuitive app +

+

+ Free and open source on Mac, Windows, and Linux +

+
+
+
+
+
+ Insomnia Request Templating +
+

Create HTTP requests

+

+ Specify URL, payload, headers, and authorization all in one place. Then + just hit send. +

+
+
+
+ Insomnia Response Details +
+

View entire transaction

+

+ Get all the details on every response. View status code, body, + headers, cookies, and more! +

+
+
+
+ Insomnia Request Organization +
+

Organize everything

+

+ Create workspaces or folders, drag-and-drop requests, and easily + import and export your data. +

+
+
+
+
+ +
+
+
+
+

Get more done, faster

+

+ Insomnia is more than just an HTTP client +
+
+ {{ partial "download-button" }} +

+
+
+
+
+ +
+
+
+
+

Never repeat yourself

+

+ Reuse common values like API keys or + session IDs. Define environment variables globally or + switch between sub-environments for a seamless + development/production workflow. +

+
+
+ Insomnia REST Client Cookies +
+
+
+
+

Write less code

+

+ Generate code snippets for over thirty + language libraries, including Curl, NodeJS, Go, Swift, + Python, Java, C, and others. +

+
+
+ Insomnia REST Client Cookies +
+
+
+
+

Love the experience

+

+ Get started quickly with Insomnia's + intuitive interface, and choose from nine unique color themes + to tailor the experience to you. +

+
+
+ Insomnia REST Client Themes +
+
+
+
+ +
+
+
+
+

Insomnia is for everyone

+

+ Insomnia is collaborative, free, + open source, and + cross-platform – making it the perfect companion for both individuals and teams. +

+ {{ partial "download-button" }} +   + Learn About Teams +
+
+
+
+ +
+
+
+
+

Still not convinced?

+

Maybe this big ol' list of features will help

+
+
+
+
+
    +
  • OAuth 2.0 authentication
  • +
  • GraphQL editor
  • +
  • Multipart form builder
  • +
  • Query parameter builder
  • +
  • SSL client certificates
  • +
  • JSONPath and XPath
  • +
  • Response history
  • +
  • Data import/export
  • +
  • Rendered HTML preview
  • +
  • Image and SVG preview
  • +
  • Configurable proxy
  • +
  • Color themes
  • +
  • Cloud sync and sharing
  • +
+
+
+
    +
  • Import from curl
  • +
  • Digest, Basic, NTLM Auth
  • +
  • Nunjucks templating
  • +
  • Configurable timeout
  • +
  • HAR import
  • +
  • Request filtering
  • +
  • Toggle SSL validation
  • +
  • Keyboard shortcuts
  • +
  • Usable at almost all sizes
  • +
  • Responsive interface
  • +
  • Autocomplete Hints
  • +
  • Redirect chain visualization
  • +
  • Mac, Windows and Linux
  • +
+
+
+
+
+

Go on, give it a try. You won't regret it.

+
+ {{ partial "download-button" }} +
+
+
+
+
+ +{{ partial "footer" . }} +{{ partial "js" . }} + + + diff --git a/website/site/layouts/partials/extra-head.html b/website/site/layouts/partials/extra-head.html new file mode 100644 index 0000000000..72f18da589 --- /dev/null +++ b/website/site/layouts/partials/extra-head.html @@ -0,0 +1,35 @@ + + diff --git a/website/site/layouts/section/changelog.rss.xml b/website/site/layouts/section/changelog.rss.xml new file mode 100644 index 0000000000..ff8a9b3545 --- /dev/null +++ b/website/site/layouts/section/changelog.rss.xml @@ -0,0 +1,38 @@ + + + {{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }} + {{ .Permalink }} + Recent content {{ with .Title }}in {{.}} {{ end }}on + {{ .Site.Title }} + + Hugo -- gohugo.io{{ with .Site.LanguageCode }} + {{.}}{{end}}{{ with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} + ({{.}}){{end}}{{end}}{{ with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}} + {{end}}{{ with .Site.Copyright }} + {{.}}{{end}}{{ if not .Date.IsZero }} + + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{ end }} + + {{ range first 15 .Data.Pages }} + {{ if or (not (isset .Params "channel")) (eq .Params.channel "stable") }} + + {{ .Title }} + {{ .Permalink }} + + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + + {{ with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}} + {{end}} + {{ .Permalink }} + + {{ partial "changelog-details" . | html }} + + + {{ end }} + {{ end }} + + diff --git a/website/site/static/_redirects b/website/site/static/_redirects new file mode 100644 index 0000000000..d33521a557 --- /dev/null +++ b/website/site/static/_redirects @@ -0,0 +1,51 @@ +/beta.html /documentation/3_0-beta/ +/blog/:year/:month/:day/changelog-for-:rest /documentation/migrate-from-chrome/ +/blog/google-discontinuing-chrome-apps/.com / +/blog/google-discontinuing-chrome-apps/support@insomnia.rest / +/code.html /documentation/code-snippets/ +/cookies.html /documentation/cookie-management/ +/documentation/3.0-beta /documentation/3_0-beta/ +/documentation/keyboard-shortcuts.html /documentation/keyboard-shortcuts/ +/documentation/order-requests-in-the-sidebar.html /documentation/ +/documentation/schedule-a-request-on-a-set-interval.html /documentation/ +/documentation/swig-templating-language.html /documentation/environment-variables/ +/documentation/export-spec/ /documentation/import-export/ +/environments.html /documentation/environment-variables/ +/feedback.html /documentation/support-and-feedback/ +/installation.html /documentation/installation/ +/migrate-from-chrome.html /documentation/migrate-from-chrome/ +/shortcuts.html /documentation/keyboard-shortcuts/ +/tags/announcement/support@insomnia.rest /documentation/support-and-feedback/ +/workspaces.html /documentation/workspaces/ +/index.xml /blog/index.xml +/contact/ /support/ +/eula/ https://github.com/getinsomnia/insomnia/blob/master/LICENSE + +# Legacy Docs +/documentation/support-and-feedback/* /support/ +/documentation/installation/* https://support.insomnia.rest/article/23-installation +/documentation/plus/* https://support.insomnia.rest/article/47-insomnia-plus +/documentation/teams/* https://support.insomnia.rest/article/20-teams +/documentation/faq/* https://support.insomnia.rest/article/48-frequently-asked-questions +/documentation/environment-variables/* https://support.insomnia.rest/article/18-environment-variables +/documentation/template-tags/* https://support.insomnia.rest/article/40-template-tags +/documentation/cookie-management/* https://support.insomnia.rest/article/49-cookies +/documentation/workspaces/* https://support.insomnia.rest/article/50-workspaces +/documentation/authentication/* https://support.insomnia.rest/article/38-authentication +/documentation/request-chaining/* https://support.insomnia.rest/article/43-chaining-requests +/documentation/code-snippets/* https://support.insomnia.rest/article/37-code-snippet-generation +/documentation/client-certificates/* https://support.insomnia.rest/article/51-client-certificates +/documentation/import-export/* https://support.insomnia.rest/article/52-importing-and-exporting-data +/documentation/plugins/* https://support.insomnia.rest/article/26-plugins +/documentation/proxy/* https://support.insomnia.rest/article/53-http-s-proxy +/documentation/ssl-validation/* https://support.insomnia.rest/article/54-ssl-validation +/documentation/migrate-from-chrome/* https://support.insomnia.rest/article/55-migrate-from-2-0 +/documentation/security/* https://support.insomnia.rest/article/57-encryption +/documentation/forgot-password/* https://support.insomnia.rest/article/56-forgot-password +/documentation/how-you-can-help/* https://support.insomnia.rest/article/58-how-you-can-help +/documentation/keyboard-shortcuts/* https://support.insomnia.rest/article/59-keyboard-shortcuts +/documentation/backstory/* https://support.insomnia.rest/article/60-backstory +/documentation/* https://support.insomnia.rest +/docs/* https://support.insomnia.rest + + diff --git a/website/site/static/browserconfig.xml b/website/site/static/browserconfig.xml new file mode 100644 index 0000000000..8828da25cb --- /dev/null +++ b/website/site/static/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #da532c + + + diff --git a/website/site/static/css/main.css b/website/site/static/css/main.css new file mode 100644 index 0000000000..0f00d92e77 --- /dev/null +++ b/website/site/static/css/main.css @@ -0,0 +1,540 @@ +/* ~~~~~ */ +/* LINKS */ +/* ~~~~~ */ + +a, .button { + color: #745be6; + font-weight: 400 !important; +} + +a:hover, .button:hover { + color: #6147d1; +} + +/* ~~~~~~~~~ */ +/* JUMBOTRON */ +/* ~~~~~~~~~ */ + +.jumbotron { + background: linear-gradient(165deg, #6e60cc 0%, #484389 100%); + text-align: center; + padding: 9rem 0 8rem 0; + margin-bottom: 2rem; +} + +.jumbotron *:not(.button) { + color: #fff; + line-height: 1.5em; +} + +img.jumbotron__icon { + max-height: 8rem; + margin: -2rem auto 3rem; +} + +.jumbotron__undie { + border-bottom: 0.1em solid white; +} + +.jumbotron h1 { + font-size: 2.3rem; + margin: 0; +} + +.jumbotron h2 { + margin: 0; + padding-top: 1rem; + font-size: 1.7rem; + color: #eee; +} + +.jumbotron .button { + color: #fff; + border: 1px solid #fff; + margin: 4rem auto 5rem; + font-size: 1.1em; +} + +.jumbotron .button:hover { + text-decoration: none; + background: #fff; + color: #675BC0; +} + +.jumbotron__img-container { + position: absolute; + left: 1.5rem; + right: 1.5rem; + height: 0; + max-width: 55rem; + margin: auto; +} + +.jumbotron__img { + display: block; + margin: auto; + z-index: 1; + border-radius: 0.2rem; + box-shadow: 0 0 5rem rgba(0, 0, 0, 0.2); +} + +/* ~~~~~~~~~~~~ */ +/* NOTIFICATION */ +/* ~~~~~~~~~~~~ */ + +.notification { + box-shadow: 0 0 1rem rgba(0, 0, 0, 0.3); + position: relative; + z-index: 0; +} + +.notification__content { + padding: 0.5rem; + text-align: center; +} + +/* ~~~~~~~~~~~~~ */ +/* FEATURES LIST */ +/* ~~~~~~~~~~~~~ */ + +.feature-list { + max-width: 40rem; + margin: 1rem auto; +} + +.feature-list ul { + width: 14rem; + margin: 0 auto; +} + +.feature-list li { + line-height: 1.9em; + list-style: circle; + margin: auto; + width: auto; +} + +/* ~~~~~~~~ */ +/* ARTICLES */ +/* ~~~~~~~~ */ + +article h1[id], +article h2[id], +article h3[id] { + position: relative; +} + +article h1[id]:hover::before, +article h2[id]:hover::before, +article h3[id]:hover::before { + position: absolute; + left: -1em; + content: ' ¶'; +} + +article a > img { + outline: 2px solid transparent; +} + +article a > img:hover { + outline: 2px solid #eee; + transition: outline 200ms; +} + +/* ~~~~~~~~~~~~~~ */ +/* DOWNLOADS PAGE */ +/* ~~~~~~~~~~~~~~ */ + +.platform-download .button { + margin-top: 2rem; + width: 10rem; +} + +.platform-download__icon { + background: #ccc; + width: 10rem; + height: 10rem; +} + +.platform-download__icon::before { + display: block; + line-height: 10rem; + font-size: 4rem !important; + text-align: center; + color: #fff; +} + +/* ~~~~~~ */ +/* IMAGES */ +/* ~~~~~~ */ + +.img--promo { + width: auto; + display: inline-block; + border-radius: 0.2rem; + overflow: hidden; + box-shadow: 0 0 2rem rgba(0, 0, 0, 0.1); + border: 1px solid #ededed; + max-height: 12rem; + margin: 1rem auto; +} + +/* ~~~~~~ */ +/* COLORS */ +/* ~~~~~~ */ + +.bg-mac { + background-color: #bbb; +} + +.bg-windows { + background-color: #00bcf2; +} + +.bg-linux { + background-color: #333; +} + +/* ~~~~~~~~~~~~~ */ +/* PRICING PAGE */ +/* ~~~~~~~~~~~~~ */ + +.pricing { + margin-top: 1rem; +} + +.pricing__column { + box-sizing: border-box; + border: 1px solid #ddd; + position: relative; + padding-bottom: 5rem; + border-radius: 3px; + overflow: hidden; + transform: scale(0.9); +} + +.pricing__column__header { + padding: 1rem 1.5rem; + background: #eee; + border-bottom: 1px solid #ddd; +} + +.pricing__column__header h1 { + font-size: 1.4rem; +} + +.pricing__column__body { + padding: 1.5rem; +} + +.pricing__column__body h2 { + font-size: 1.3rem; + margin-top: 0; + padding-bottom: 1rem; +} + +.pricing__column__footer { + padding: 0 1.5rem 1.5rem 1.5rem; + text-align: center; + position: absolute; + bottom: 0; + left: 0; + right: 0; +} + +.pricing__column__footer .button { + width: 100%; + border-color: #aaa; + color: #777; +} + +.pricing__column__footer .button:hover { + width: 100%; + border-color: #888; + background-color: #888; + color: #fff; +} + +.pricing__column__body ul { + padding-left: 1rem; + margin: 0; + display: block; +} + +.pricing__column--best { + box-shadow: 0 0 2em rgba(91, 79, 169, 0.3); + transform: scale(1); +} + +.pricing__column--best, .pricing__column--best > .pricing__column__header { + border-color: #6a57d5; +} + +.pricing__column--best > .pricing__column__header { + background: #6a57d5; +} + +.pricing__column--best > .pricing__column__footer .button { + color: #6a57d5; + border-color: #6a57d5; +} + +.pricing__column--best > .pricing__column__footer .button:hover { + color: #fff; + border-color: #6a57d5; + background-color: #6a57d5; +} + +.pricing__column--best > .pricing__column__header h1 { + color: #fff; +} + +.pricing__column--better { + box-shadow: 0 0 2em rgba(68, 68, 68, 0.3); + transform: scale(0.95); +} + +.pricing__column--better, .pricing__column--better > .pricing__column__header { + border-color: #555; +} + +.pricing__column--better > .pricing__column__header { + background: #555; +} + +.pricing__column--better > .pricing__column__footer .button { + color: #555; + border-color: #555; +} + +.pricing__column--better > .pricing__column__footer .button:hover { + color: #fff; + border-color: #555; + background-color: #555; +} + +.pricing__column--better > .pricing__column__header h1 { + color: #fff; +} + +/* ~~~~~~~ */ +/* SIDEBAR */ +/* ~~~~~~~ */ + +.docs-sidebar { + max-width: 15rem; +} + +.docs-sidebar ul { + padding: 0; + margin: 0 0 1.4rem; +} + +.docs-sidebar li { + list-style: none; + width: 100%; +} + +.docs-sidebar__entry { + padding: 0.2rem 0; + display: inline-block; + font-weight: normal; +} + +.docs-sidebar__entry--active::after { + content: "→"; +} + +.docs-sidebar h2 { + font-size: 1.2rem; + padding: 0; + margin-bottom: 0.4rem; +} + +/* ~~~~~ */ +/* LISTS */ +/* ~~~~~ */ + +ul.ul--decorated { + list-style: none; +} + +ul.ul--decorated li { + position: relative; +} + +ul.ul--decorated li:before { + position: absolute; + font-size: 0.9em; + font-weight: bold; + left: -1.4rem; +} + +li.li--major:before, +ul.ul--major li:before { + content: '\01F680'; +} + +li.li--fix:before, +ul.ul--fix li:before { + content: '\01F691'; +} + +li.li--minor:before, +ul.ul--minor li:before { + content: '\01F484'; +} + +/* ~~~~~~~~~ */ +/* APP STUFF */ +/* ~~~~~~~~~ */ + +.app-container { + max-width: 30rem; + margin: auto; +} + +.show-logged-out, +.show-logged-in { + opacity: 0; + transition: opacity 0.2s ease; +} + +.show-logged-in { + display: none; + transition: opacity 0.2s ease; +} + +body[data-logged-in="yes"] .show-logged-in { + display: block; + opacity: 1; +} + +body[data-logged-in="yes"] .show-logged-out { + display: none; + opacity: 0; +} + +body[data-logged-in="no"] .show-logged-in { + display: none; + opacity: 0; +} + +body[data-logged-in="no"] .show-logged-out { + display: block; + opacity: 1; +} + +[data-hide-until-rendered="hide"] > * { + opacity: 0 !important; +} + +[data-hide-until-rendered="show"] > * { + opacity: 1 !important; + transition: all 0.7s ease; +} + +[data-hide-until-rendered="hide"]::before { + font-size: 3rem; + content: 'Loading...'; + opacity: 0.2; + display: block; + margin: 4rem auto; + width: 100%; + text-align: center; +} + +/* ~~~~~~~~~~~~~ */ +/* MEDIA QUERIES */ +/* ~~~~~~~~~~~~~ */ + +@media only screen and (max-width: 33.75rem) { + .navbar__items { + margin-right: 0; + } + + .navbar__items li[data-menu-item="download"], + .navbar__items li[data-menu-item="account"], + .navbar__items li[data-menu-item="signup"] { + display: none; + } +} + +@media only screen and (max-width: 45rem) { + .docs-sidebar__entry--active::after { + content: "↓"; + } + + .docs-sidebar { + border-bottom: 1px solid #eee; + padding-bottom: 2rem; + max-width: none; + } + + .docs-sidebar li { + display: inline-block; + width: auto; + } + + .docs-sidebar li { + margin-right: 0.5rem; + } + + .docs-sidebar li:not(:last-child)::after { + margin-left: 0.5rem; + content: '|'; + } + + .navbar__items li[data-menu-item="download"] { + display: none; + } +} + +@media only screen and (min-width: 23rem) { + .jumbotron { + margin-bottom: 7rem; + } +} + +@media only screen and (min-width: 33.75rem) { + .img--promo { + max-height: 12rem; + } + + .jumbotron { + margin-bottom: 12rem; + } +} + +@media only screen and (min-width: 45rem) { + .img--promo { + max-height: 7rem; + } + + .jumbotron { + margin-bottom: 17rem; + } + + .pricing { + display: flex; + flex-direction: row; + } +} + +@media only screen and (min-width: 60rem) { + .img--promo { + max-height: 10rem; + } + + .jumbotron { + margin-bottom: 19rem; + } + + .jumbotron__img-container { + position: absolute; + left: 0; + right: 0; + height: 0; + margin: auto; + } +} diff --git a/website/site/static/favicon.ico b/website/site/static/favicon.ico new file mode 100644 index 0000000000..890b17f1bb Binary files /dev/null and b/website/site/static/favicon.ico differ diff --git a/website/site/static/images/blog/active-users-four-months.png b/website/site/static/images/blog/active-users-four-months.png new file mode 100644 index 0000000000..6d7f217d66 Binary files /dev/null and b/website/site/static/images/blog/active-users-four-months.png differ diff --git a/website/site/static/images/blog/advanced-send.png b/website/site/static/images/blog/advanced-send.png new file mode 100644 index 0000000000..c80d737ad3 Binary files /dev/null and b/website/site/static/images/blog/advanced-send.png differ diff --git a/website/site/static/images/blog/binaryfile.png b/website/site/static/images/blog/binaryfile.png new file mode 100644 index 0000000000..e9cc917683 Binary files /dev/null and b/website/site/static/images/blog/binaryfile.png differ diff --git a/website/site/static/images/blog/certificates.png b/website/site/static/images/blog/certificates.png new file mode 100644 index 0000000000..1249217443 Binary files /dev/null and b/website/site/static/images/blog/certificates.png differ diff --git a/website/site/static/images/blog/code.png b/website/site/static/images/blog/code.png new file mode 100644 index 0000000000..9cbe3ad855 Binary files /dev/null and b/website/site/static/images/blog/code.png differ diff --git a/website/site/static/images/blog/cookies.png b/website/site/static/images/blog/cookies.png new file mode 100644 index 0000000000..e47ef70b5f Binary files /dev/null and b/website/site/static/images/blog/cookies.png differ diff --git a/website/site/static/images/blog/dau-10.png b/website/site/static/images/blog/dau-10.png new file mode 100644 index 0000000000..c5f8bd48e0 Binary files /dev/null and b/website/site/static/images/blog/dau-10.png differ diff --git a/website/site/static/images/blog/dau-11.png b/website/site/static/images/blog/dau-11.png new file mode 100644 index 0000000000..884398a902 Binary files /dev/null and b/website/site/static/images/blog/dau-11.png differ diff --git a/website/site/static/images/blog/dau-12.png b/website/site/static/images/blog/dau-12.png new file mode 100644 index 0000000000..a229c400b4 Binary files /dev/null and b/website/site/static/images/blog/dau-12.png differ diff --git a/website/site/static/images/blog/dau-13.png b/website/site/static/images/blog/dau-13.png new file mode 100644 index 0000000000..4837d7dcd2 Binary files /dev/null and b/website/site/static/images/blog/dau-13.png differ diff --git a/website/site/static/images/blog/dau-14.png b/website/site/static/images/blog/dau-14.png new file mode 100644 index 0000000000..1106a1148e Binary files /dev/null and b/website/site/static/images/blog/dau-14.png differ diff --git a/website/site/static/images/blog/dau-15.png b/website/site/static/images/blog/dau-15.png new file mode 100644 index 0000000000..d8304983b0 Binary files /dev/null and b/website/site/static/images/blog/dau-15.png differ diff --git a/website/site/static/images/blog/dau-16.png b/website/site/static/images/blog/dau-16.png new file mode 100644 index 0000000000..5782eb7884 Binary files /dev/null and b/website/site/static/images/blog/dau-16.png differ diff --git a/website/site/static/images/blog/dau-5.png b/website/site/static/images/blog/dau-5.png new file mode 100644 index 0000000000..954adeee53 Binary files /dev/null and b/website/site/static/images/blog/dau-5.png differ diff --git a/website/site/static/images/blog/dau-6.png b/website/site/static/images/blog/dau-6.png new file mode 100644 index 0000000000..37675bc5e0 Binary files /dev/null and b/website/site/static/images/blog/dau-6.png differ diff --git a/website/site/static/images/blog/dau-7.png b/website/site/static/images/blog/dau-7.png new file mode 100644 index 0000000000..f4101382a2 Binary files /dev/null and b/website/site/static/images/blog/dau-7.png differ diff --git a/website/site/static/images/blog/dau-8.png b/website/site/static/images/blog/dau-8.png new file mode 100644 index 0000000000..d4833a4c43 Binary files /dev/null and b/website/site/static/images/blog/dau-8.png differ diff --git a/website/site/static/images/blog/dau-9.png b/website/site/static/images/blog/dau-9.png new file mode 100644 index 0000000000..0853a7d18b Binary files /dev/null and b/website/site/static/images/blog/dau-9.png differ diff --git a/website/site/static/images/blog/devtron.png b/website/site/static/images/blog/devtron.png new file mode 100644 index 0000000000..2fcc1b902f Binary files /dev/null and b/website/site/static/images/blog/devtron.png differ diff --git a/website/site/static/images/blog/docs-analytics.png b/website/site/static/images/blog/docs-analytics.png new file mode 100644 index 0000000000..d95a8803db Binary files /dev/null and b/website/site/static/images/blog/docs-analytics.png differ diff --git a/website/site/static/images/blog/docs-search.png b/website/site/static/images/blog/docs-search.png new file mode 100644 index 0000000000..5c63bca724 Binary files /dev/null and b/website/site/static/images/blog/docs-search.png differ diff --git a/website/site/static/images/blog/electron-apps.png b/website/site/static/images/blog/electron-apps.png new file mode 100644 index 0000000000..571d5c8b7d Binary files /dev/null and b/website/site/static/images/blog/electron-apps.png differ diff --git a/website/site/static/images/blog/electron-hosting-cost.png b/website/site/static/images/blog/electron-hosting-cost.png new file mode 100644 index 0000000000..44055924c9 Binary files /dev/null and b/website/site/static/images/blog/electron-hosting-cost.png differ diff --git a/website/site/static/images/blog/environments.png b/website/site/static/images/blog/environments.png new file mode 100644 index 0000000000..3a74330e63 Binary files /dev/null and b/website/site/static/images/blog/environments.png differ diff --git a/website/site/static/images/blog/github-oauth/authentication-settings.png b/website/site/static/images/blog/github-oauth/authentication-settings.png new file mode 100644 index 0000000000..54f4b2a846 Binary files /dev/null and b/website/site/static/images/blog/github-oauth/authentication-settings.png differ diff --git a/website/site/static/images/blog/github-oauth/authorize.png b/website/site/static/images/blog/github-oauth/authorize.png new file mode 100644 index 0000000000..38a4df610a Binary files /dev/null and b/website/site/static/images/blog/github-oauth/authorize.png differ diff --git a/website/site/static/images/blog/github-oauth/request.png b/website/site/static/images/blog/github-oauth/request.png new file mode 100644 index 0000000000..498c168c18 Binary files /dev/null and b/website/site/static/images/blog/github-oauth/request.png differ diff --git a/website/site/static/images/blog/github-oauth/response.png b/website/site/static/images/blog/github-oauth/response.png new file mode 100644 index 0000000000..a7dc97c7a4 Binary files /dev/null and b/website/site/static/images/blog/github-oauth/response.png differ diff --git a/website/site/static/images/blog/github-oauth/timeline.png b/website/site/static/images/blog/github-oauth/timeline.png new file mode 100644 index 0000000000..bf13872962 Binary files /dev/null and b/website/site/static/images/blog/github-oauth/timeline.png differ diff --git a/website/site/static/images/blog/graphql.png b/website/site/static/images/blog/graphql.png new file mode 100644 index 0000000000..48e9a70d0f Binary files /dev/null and b/website/site/static/images/blog/graphql.png differ diff --git a/website/site/static/images/blog/har.png b/website/site/static/images/blog/har.png new file mode 100644 index 0000000000..6990cd879d Binary files /dev/null and b/website/site/static/images/blog/har.png differ diff --git a/website/site/static/images/blog/history.png b/website/site/static/images/blog/history.png new file mode 100644 index 0000000000..1d1feedd1e Binary files /dev/null and b/website/site/static/images/blog/history.png differ diff --git a/website/site/static/images/blog/insomnia-grid.png b/website/site/static/images/blog/insomnia-grid.png new file mode 100644 index 0000000000..2fa037780e Binary files /dev/null and b/website/site/static/images/blog/insomnia-grid.png differ diff --git a/website/site/static/images/blog/material-theme.png b/website/site/static/images/blog/material-theme.png new file mode 100644 index 0000000000..a6db655f60 Binary files /dev/null and b/website/site/static/images/blog/material-theme.png differ diff --git a/website/site/static/images/blog/mrr-10.png b/website/site/static/images/blog/mrr-10.png new file mode 100644 index 0000000000..06baa16c57 Binary files /dev/null and b/website/site/static/images/blog/mrr-10.png differ diff --git a/website/site/static/images/blog/mrr-11.png b/website/site/static/images/blog/mrr-11.png new file mode 100644 index 0000000000..13918deaf8 Binary files /dev/null and b/website/site/static/images/blog/mrr-11.png differ diff --git a/website/site/static/images/blog/mrr-12.png b/website/site/static/images/blog/mrr-12.png new file mode 100644 index 0000000000..56920fb09d Binary files /dev/null and b/website/site/static/images/blog/mrr-12.png differ diff --git a/website/site/static/images/blog/mrr-13.png b/website/site/static/images/blog/mrr-13.png new file mode 100644 index 0000000000..716887520b Binary files /dev/null and b/website/site/static/images/blog/mrr-13.png differ diff --git a/website/site/static/images/blog/mrr-14.png b/website/site/static/images/blog/mrr-14.png new file mode 100644 index 0000000000..dd2084075d Binary files /dev/null and b/website/site/static/images/blog/mrr-14.png differ diff --git a/website/site/static/images/blog/mrr-15.png b/website/site/static/images/blog/mrr-15.png new file mode 100644 index 0000000000..306e3c4e75 Binary files /dev/null and b/website/site/static/images/blog/mrr-15.png differ diff --git a/website/site/static/images/blog/mrr-16.png b/website/site/static/images/blog/mrr-16.png new file mode 100644 index 0000000000..8c0eee4cd8 Binary files /dev/null and b/website/site/static/images/blog/mrr-16.png differ diff --git a/website/site/static/images/blog/mrr-6.png b/website/site/static/images/blog/mrr-6.png new file mode 100644 index 0000000000..7157b07c0d Binary files /dev/null and b/website/site/static/images/blog/mrr-6.png differ diff --git a/website/site/static/images/blog/mrr-7.png b/website/site/static/images/blog/mrr-7.png new file mode 100644 index 0000000000..bbb2cfcbd2 Binary files /dev/null and b/website/site/static/images/blog/mrr-7.png differ diff --git a/website/site/static/images/blog/mrr-8.png b/website/site/static/images/blog/mrr-8.png new file mode 100644 index 0000000000..d7759e4d1d Binary files /dev/null and b/website/site/static/images/blog/mrr-8.png differ diff --git a/website/site/static/images/blog/mrr-9.png b/website/site/static/images/blog/mrr-9.png new file mode 100644 index 0000000000..7fe8123191 Binary files /dev/null and b/website/site/static/images/blog/mrr-9.png differ diff --git a/website/site/static/images/blog/multipart.png b/website/site/static/images/blog/multipart.png new file mode 100644 index 0000000000..a3560de718 Binary files /dev/null and b/website/site/static/images/blog/multipart.png differ diff --git a/website/site/static/images/blog/pdf-preview.png b/website/site/static/images/blog/pdf-preview.png new file mode 100644 index 0000000000..fb23e5b844 Binary files /dev/null and b/website/site/static/images/blog/pdf-preview.png differ diff --git a/website/site/static/images/blog/premium-themes.png b/website/site/static/images/blog/premium-themes.png new file mode 100644 index 0000000000..ced207e190 Binary files /dev/null and b/website/site/static/images/blog/premium-themes.png differ diff --git a/website/site/static/images/blog/steps-8.png b/website/site/static/images/blog/steps-8.png new file mode 100644 index 0000000000..a52d12f0b5 Binary files /dev/null and b/website/site/static/images/blog/steps-8.png differ diff --git a/website/site/static/images/blog/switch-workspace.png b/website/site/static/images/blog/switch-workspace.png new file mode 100644 index 0000000000..c10a15a015 Binary files /dev/null and b/website/site/static/images/blog/switch-workspace.png differ diff --git a/website/site/static/images/blog/sync-menu.png b/website/site/static/images/blog/sync-menu.png new file mode 100644 index 0000000000..db6bba0adf Binary files /dev/null and b/website/site/static/images/blog/sync-menu.png differ diff --git a/website/site/static/images/blog/themes.png b/website/site/static/images/blog/themes.png new file mode 100644 index 0000000000..06bb12c5e6 Binary files /dev/null and b/website/site/static/images/blog/themes.png differ diff --git a/website/site/static/images/blog/time-8.png b/website/site/static/images/blog/time-8.png new file mode 100644 index 0000000000..8be8104ea4 Binary files /dev/null and b/website/site/static/images/blog/time-8.png differ diff --git a/website/site/static/images/blog/twitter-oauth.png b/website/site/static/images/blog/twitter-oauth.png new file mode 100644 index 0000000000..bf5e4faaeb Binary files /dev/null and b/website/site/static/images/blog/twitter-oauth.png differ diff --git a/website/site/static/images/blog/unix-sockets.png b/website/site/static/images/blog/unix-sockets.png new file mode 100644 index 0000000000..ac20400de5 Binary files /dev/null and b/website/site/static/images/blog/unix-sockets.png differ diff --git a/website/site/static/images/blog/version-5/autocomplete.gif b/website/site/static/images/blog/version-5/autocomplete.gif new file mode 100644 index 0000000000..b7aa4e8454 Binary files /dev/null and b/website/site/static/images/blog/version-5/autocomplete.gif differ diff --git a/website/site/static/images/blog/version-5/curl.png b/website/site/static/images/blog/version-5/curl.png new file mode 100644 index 0000000000..c3bc254e4a Binary files /dev/null and b/website/site/static/images/blog/version-5/curl.png differ diff --git a/website/site/static/images/blog/version-5/dropbox.gif b/website/site/static/images/blog/version-5/dropbox.gif new file mode 100644 index 0000000000..64f51579f5 Binary files /dev/null and b/website/site/static/images/blog/version-5/dropbox.gif differ diff --git a/website/site/static/images/blog/version-5/render-errors.png b/website/site/static/images/blog/version-5/render-errors.png new file mode 100644 index 0000000000..c9765b0507 Binary files /dev/null and b/website/site/static/images/blog/version-5/render-errors.png differ diff --git a/website/site/static/images/blog/version-5/sort.gif b/website/site/static/images/blog/version-5/sort.gif new file mode 100644 index 0000000000..31c11fc76b Binary files /dev/null and b/website/site/static/images/blog/version-5/sort.gif differ diff --git a/website/site/static/images/blog/version-5/variable-error.gif b/website/site/static/images/blog/version-5/variable-error.gif new file mode 100644 index 0000000000..9afdb4b900 Binary files /dev/null and b/website/site/static/images/blog/version-5/variable-error.gif differ diff --git a/website/site/static/images/blog/web-traffic-four-months.png b/website/site/static/images/blog/web-traffic-four-months.png new file mode 100644 index 0000000000..7a051138c7 Binary files /dev/null and b/website/site/static/images/blog/web-traffic-four-months.png differ diff --git a/website/site/static/images/blog/xpath.png b/website/site/static/images/blog/xpath.png new file mode 100644 index 0000000000..51898ecc2c Binary files /dev/null and b/website/site/static/images/blog/xpath.png differ diff --git a/website/site/static/images/favicons/android-chrome-192x192.png b/website/site/static/images/favicons/android-chrome-192x192.png new file mode 100644 index 0000000000..2bad63e5f9 Binary files /dev/null and b/website/site/static/images/favicons/android-chrome-192x192.png differ diff --git a/website/site/static/images/favicons/android-chrome-512x512.png b/website/site/static/images/favicons/android-chrome-512x512.png new file mode 100644 index 0000000000..f0ca6c43ad Binary files /dev/null and b/website/site/static/images/favicons/android-chrome-512x512.png differ diff --git a/website/site/static/images/favicons/apple-touch-icon.png b/website/site/static/images/favicons/apple-touch-icon.png new file mode 100644 index 0000000000..07ea488326 Binary files /dev/null and b/website/site/static/images/favicons/apple-touch-icon.png differ diff --git a/website/site/static/images/favicons/browserconfig.xml b/website/site/static/images/favicons/browserconfig.xml new file mode 100644 index 0000000000..98e5cd4c3b --- /dev/null +++ b/website/site/static/images/favicons/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #584dbc + + + diff --git a/website/site/static/images/favicons/favicon-16x16.png b/website/site/static/images/favicons/favicon-16x16.png new file mode 100644 index 0000000000..73d55d5202 Binary files /dev/null and b/website/site/static/images/favicons/favicon-16x16.png differ diff --git a/website/site/static/images/favicons/favicon-32x32.png b/website/site/static/images/favicons/favicon-32x32.png new file mode 100644 index 0000000000..80b9387955 Binary files /dev/null and b/website/site/static/images/favicons/favicon-32x32.png differ diff --git a/website/site/static/images/favicons/favicon.ico b/website/site/static/images/favicons/favicon.ico new file mode 100644 index 0000000000..890b17f1bb Binary files /dev/null and b/website/site/static/images/favicons/favicon.ico differ diff --git a/website/site/static/images/favicons/manifest.json b/website/site/static/images/favicons/manifest.json new file mode 100644 index 0000000000..c0a1e1612c --- /dev/null +++ b/website/site/static/images/favicons/manifest.json @@ -0,0 +1,18 @@ +{ + "name": "", + "icons": [ + { + "src": "/images/favicon/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/images/favicon/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} \ No newline at end of file diff --git a/website/site/static/images/favicons/mstile-150x150.png b/website/site/static/images/favicons/mstile-150x150.png new file mode 100644 index 0000000000..5af9081053 Binary files /dev/null and b/website/site/static/images/favicons/mstile-150x150.png differ diff --git a/website/site/static/images/favicons/safari-pinned-tab.svg b/website/site/static/images/favicons/safari-pinned-tab.svg new file mode 100644 index 0000000000..5598dba1c6 --- /dev/null +++ b/website/site/static/images/favicons/safari-pinned-tab.svg @@ -0,0 +1,20 @@ + + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + diff --git a/website/site/static/images/icon-small.png b/website/site/static/images/icon-small.png new file mode 100644 index 0000000000..ec07979ab9 Binary files /dev/null and b/website/site/static/images/icon-small.png differ diff --git a/website/site/static/images/icon.png b/website/site/static/images/icon.png new file mode 100644 index 0000000000..4e1e53dfc8 Binary files /dev/null and b/website/site/static/images/icon.png differ diff --git a/website/site/static/images/screens/big/code.png b/website/site/static/images/screens/big/code.png new file mode 100644 index 0000000000..ba62394ae5 Binary files /dev/null and b/website/site/static/images/screens/big/code.png differ diff --git a/website/site/static/images/screens/big/cookies.png b/website/site/static/images/screens/big/cookies.png new file mode 100644 index 0000000000..a40dc273d2 Binary files /dev/null and b/website/site/static/images/screens/big/cookies.png differ diff --git a/website/site/static/images/screens/big/environments.png b/website/site/static/images/screens/big/environments.png new file mode 100644 index 0000000000..6f5e3b34cc Binary files /dev/null and b/website/site/static/images/screens/big/environments.png differ diff --git a/website/site/static/images/screens/big/themes.png b/website/site/static/images/screens/big/themes.png new file mode 100644 index 0000000000..c38ab161e9 Binary files /dev/null and b/website/site/static/images/screens/big/themes.png differ diff --git a/website/site/static/images/screens/drag.png b/website/site/static/images/screens/drag.png new file mode 100644 index 0000000000..7ec6e9ce7a Binary files /dev/null and b/website/site/static/images/screens/drag.png differ diff --git a/website/site/static/images/screens/main.png b/website/site/static/images/screens/main.png new file mode 100644 index 0000000000..6da627f230 Binary files /dev/null and b/website/site/static/images/screens/main.png differ diff --git a/website/site/static/images/screens/responses.png b/website/site/static/images/screens/responses.png new file mode 100644 index 0000000000..d5256693fa Binary files /dev/null and b/website/site/static/images/screens/responses.png differ diff --git a/website/site/static/images/screens/sharing.png b/website/site/static/images/screens/sharing.png new file mode 100644 index 0000000000..67951d8ac7 Binary files /dev/null and b/website/site/static/images/screens/sharing.png differ diff --git a/website/site/static/images/screens/template.png b/website/site/static/images/screens/template.png new file mode 100644 index 0000000000..a5bdf8dba3 Binary files /dev/null and b/website/site/static/images/screens/template.png differ diff --git a/website/site/static/images/twitter-card-icon.png b/website/site/static/images/twitter-card-icon.png new file mode 100644 index 0000000000..a130269ee6 Binary files /dev/null and b/website/site/static/images/twitter-card-icon.png differ diff --git a/website/site/static/images/twitter-promo-3.png b/website/site/static/images/twitter-promo-3.png new file mode 100644 index 0000000000..d29752acd9 Binary files /dev/null and b/website/site/static/images/twitter-promo-3.png differ diff --git a/website/site/static/robots.txt b/website/site/static/robots.txt new file mode 100644 index 0000000000..50c84e2df5 --- /dev/null +++ b/website/site/static/robots.txt @@ -0,0 +1,3 @@ +User-agent: * +Allow: / +Disallow: /app/* diff --git a/website/site/themes/hugo-insomnia-theme/layouts/404.html b/website/site/themes/hugo-insomnia-theme/layouts/404.html new file mode 100644 index 0000000000..395a96e937 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/404.html @@ -0,0 +1,23 @@ +{{ partial "head" . }} + + +{{ partial "navbar" . }} + +
+
+
+

+ {{ .Site.Params.pageNotFoundTitle }} +

+

+ Take me Home +

+
+
+
+ +{{ partial "footer" . }} +{{ partial "js" . }} + + + \ No newline at end of file diff --git a/website/site/themes/hugo-insomnia-theme/layouts/_default/list.html b/website/site/themes/hugo-insomnia-theme/layouts/_default/list.html new file mode 100644 index 0000000000..b1dc2b8ef5 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/_default/list.html @@ -0,0 +1,23 @@ +{{ partial "head" . }} + + +{{ partial "navbar" . }} + +
+ {{ $paginator := .Paginate .Data.Pages.ByDate.Reverse 10 }} + {{ range $paginator.Pages }} + + {{ end }} + + {{ partial "pagination" . }} +
+ +{{ partial "footer" . }} +{{ partial "js" . }} + + + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/_default/rss.xml b/website/site/themes/hugo-insomnia-theme/layouts/_default/rss.xml new file mode 100644 index 0000000000..de6f6c9321 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/_default/rss.xml @@ -0,0 +1,36 @@ + + + {{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }} + {{ .Permalink }} + Recent content {{ with .Title }}in {{.}} {{ end }}on + {{ .Site.Title }} + + Hugo -- gohugo.io{{ with .Site.LanguageCode }} + {{.}}{{end}}{{ with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} + ({{.}}){{end}}{{end}}{{ with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}} + {{end}}{{ with .Site.Copyright }} + {{.}}{{end}}{{ if not .Date.IsZero }} + + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{ end }} + + {{ range first 15 .Data.Pages }} + + {{ .Title }} + {{ .Permalink }} + + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + + {{ with .Site.Author.email }} + {{.}}{{ with $.Site.Author.name }} ({{.}}){{end}} + {{end}} + {{ .Permalink }} + + {{ partial "changelog-details" . | html }} + + + {{ end }} + + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/_default/single.html b/website/site/themes/hugo-insomnia-theme/layouts/_default/single.html new file mode 100644 index 0000000000..a15252bd83 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/_default/single.html @@ -0,0 +1,37 @@ +{{ partial "head" . }} + + +{{ partial "fontawesome" }} + +{{ partial "navbar" . }} + +
+
+ {{ if not .Params.hideheader }} +
+
+
+

{{ .Title }}

+ {{ if isset .Params "subtitle" }} +

{{ .Params.subtitle | markdownify }}

+ {{ end }} +
+
+
+ {{ end }} + +
+
+
+ {{ .Content }} +
+
+
+
+
+ +{{ partial "footer" . }} +{{ partial "js" . }} + + + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/_default/terms.html b/website/site/themes/hugo-insomnia-theme/layouts/_default/terms.html new file mode 100644 index 0000000000..b9aabdd647 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/_default/terms.html @@ -0,0 +1,36 @@ +{{ partial "head" . }} + + +{{ partial "navbar" . }} + +
+ +
+ +{{ partial "footer" . }} +{{ partial "js" . }} + + + + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/app/list.html b/website/site/themes/hugo-insomnia-theme/layouts/app/list.html new file mode 100644 index 0000000000..20ebfc813d --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/app/list.html @@ -0,0 +1,13 @@ + + + Redirecting to account... + + + +Redirecting to account... + + + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/app/single.html b/website/site/themes/hugo-insomnia-theme/layouts/app/single.html new file mode 100644 index 0000000000..6254b62e25 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/app/single.html @@ -0,0 +1,39 @@ +{{ partial "head" . }} + + +{{ partial "fontawesome" }} + +{{ partial "navbar" . }} + +
+
+ {{ if not .Params.hideheader }} +
+
+
+

{{ .Title }}

+ {{ if isset .Params "subtitle" }} +

{{ .Params.subtitle | markdownify }}

+ {{ end }} +
+
+
+ {{ end }} + +
+
+
+ {{ .Content }} +
+
+
+
+
+ +{{ partial "footer" . }} +{{ partial "js" . }} + + + + + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/blog/single.html b/website/site/themes/hugo-insomnia-theme/layouts/blog/single.html new file mode 100644 index 0000000000..2a9a660efb --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/blog/single.html @@ -0,0 +1,103 @@ +{{ partial "head" . }} + + + +{{ partial "fontawesome" }} + +{{ partial "navbar" . }} + +
+
+
+
+
+
+

{{ .Title }}

+ {{ if isset .Params "subtitle" }} +

{{ .Params.subtitle }}

+ {{ end }} +
+ {{ if not .Date.IsZero }} + + {{ end }} +
+
+
+
+
+ + {{ partial "post-series-notice" . }} + +
+
+
+ {{ .Content }} +
+
+
+ + {{ partial "post-series-notice" . }} + {{ partial "post-tags" . }} + + {{ if .Site.Params.enableAuthor }} +
+
+
+ {{ partial "author" . }} +
+
+
+ {{ end }} +
+ + {{ if not .Params.disableSharing }} + + {{ end }} + + {{ if not .Params.disablecomments }} +
+
+
+
+ {{ if .Site.BuildDrafts }} + Hiding comments in dev mode + {{ else }} + {{ template "_internal/disqus.html" . }} + {{ end }} +
+
+
+
+ {{ end }} + +
+
+
+
+

+ Ready to speed up your API testing workflow? +

+
+
+ {{ partial "download-button" }} +
+
+
+
+
+ +{{ partial "footer" . }} +{{ partial "js" . }} + + + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/changelog/single.html b/website/site/themes/hugo-insomnia-theme/layouts/changelog/single.html new file mode 100644 index 0000000000..df11198ed9 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/changelog/single.html @@ -0,0 +1,97 @@ +{{ partial "head" . }} + + + +{{ partial "fontawesome" }} + +{{ partial "navbar" . }} + +
+
+
+
+
+
+

Insomnia {{ .Slug }} Release

+
+ +
+
+
+
+
+ + {{ partial "post-tags" . }} + +
+
+
+ {{ partial "changelog-details" . }} +
+
+
+ + {{ partial "post-tags" . }} + + {{ if .Site.Params.enableAuthor }} +
+
+
+ {{ partial "author" . }} +
+
+
+ {{ end }} +
+ + {{ if not .Params.disableSharing }} + + {{ end }} + + {{ if not .Params.disablecomments }} +
+
+
+
+ {{ if .Site.BuildDrafts }} + Hiding comments in dev mode + {{ else }} + {{ template "_internal/disqus.html" . }} + {{ end }} +
+
+
+
+ {{ end }} + +
+
+
+
+

+ Ready to speed up your API testing workflow? +

+
+
+ {{ partial "download-button" }} +
+
+
+
+
+ +{{ partial "footer" . }} +{{ partial "js" . }} + + + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/author.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/author.html new file mode 100644 index 0000000000..a8e68295ab --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/partials/author.html @@ -0,0 +1,11 @@ +
+ Gregory Schier +
+

{{ .Site.Params.name }}

+

{{ .Site.Params.bio | markdownify }}

+

+ {{ with .Site.Params.location }}{{ . }}{{ end }} +

+
+
\ No newline at end of file diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/beta-download-button.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/beta-download-button.html new file mode 100644 index 0000000000..bf5418d76d --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/partials/beta-download-button.html @@ -0,0 +1,3 @@ + + Download on GitHub + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/changelog-details.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/changelog-details.html new file mode 100644 index 0000000000..5d84ee8b50 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/partials/changelog-details.html @@ -0,0 +1,48 @@ +{{ if .Content }} +{{ .Content }} +{{ else }} +

+ Version {{ .Slug }} is here! +

+{{ end }} +

+ {{ if or (not (isset .Params "channel")) (eq .Params.channel "stable") }} + {{ partial "download-button" }} +   + + View on GitHub + + {{ else }} + {{ partial "beta-download-button" . }} + {{ end }} +

+ + +{{ if isset .Params "major" }} +

Major Changes

+
    + {{ range .Params.major }} +
  • {{ . }}
  • + {{ end }} +
+{{ end }} + +{{ if isset .Params "fixes" }} +

Bug Fixes

+
    + {{ range .Params.fixes }} +
  • {{ . }}
  • + {{ end }} +
+{{ end }} + +{{ if isset .Params "minor" }} +

Minor Changes

+
    + {{ range .Params.minor }} +
  • {{ . }}
  • + {{ end }} +
+{{ end }} diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/changelog-list.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/changelog-list.html new file mode 100644 index 0000000000..486b705f78 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/partials/changelog-list.html @@ -0,0 +1,38 @@ +{{ range .Pages }} +{{ if or (not (isset .Params "channel")) (eq .Params.channel "stable") }} + +{{ end }} +{{ end }} diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/changelog-summary.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/changelog-summary.html new file mode 100644 index 0000000000..176a6361d3 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/partials/changelog-summary.html @@ -0,0 +1,28 @@ +{{ if .Summary }} +{{ .Summary }} +{{ else }} +

+ Version {{ .Slug }} is here! +

+{{ end }} + +
    + {{ if isset .Params "major" }} + {{ range .Params.major }} +
  • {{ . }}
  • + {{ end }} + {{ end }} + + {{ if isset .Params "fixes" }} + {{ range .Params.fixes }} +
  • {{ . }}
  • + {{ end }} + {{ end }} + + {{ if isset .Params "minor" }} + {{ range .Params.minor }} +
  • {{ . }}
  • + {{ end }} + {{ end }} +
+ diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/contact-button.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/contact-button.html new file mode 100644 index 0000000000..c7bd3ab2a5 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/partials/contact-button.html @@ -0,0 +1,5 @@ + + Send an Email + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/contribution-notice.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/contribution-notice.html new file mode 100644 index 0000000000..d7ca497e23 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/partials/contribution-notice.html @@ -0,0 +1,9 @@ + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/download-button.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/download-button.html new file mode 100644 index 0000000000..baed921902 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/partials/download-button.html @@ -0,0 +1 @@ +Download diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/extra-head.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/extra-head.html new file mode 100644 index 0000000000..2fdc61ad34 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/partials/extra-head.html @@ -0,0 +1 @@ + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/fontawesome.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/fontawesome.html new file mode 100644 index 0000000000..dba789c773 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/partials/fontawesome.html @@ -0,0 +1 @@ + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/footer.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/footer.html new file mode 100644 index 0000000000..48b80b40a8 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/partials/footer.html @@ -0,0 +1,47 @@ +
+
+ + +

+ © {{ now.Format "2006"}} + + {{ .Site.Copyright }} + +

+
+
diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/head.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/head.html new file mode 100644 index 0000000000..cd966cce00 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/partials/head.html @@ -0,0 +1,137 @@ + + + + + + + + {{ if .IsHome }}{{ .Title }}{{ else }}{{ .Title }} | + {{ .Site.Title }}{{ end }} + + + + {{ .Hugo.Generator }} + + + + + + + + + {{ if eq .Section "changelog" }} + + + + + + + + + + + + + {{ else if .IsPage }} + + + + + + + + + + + + + {{ else if .IsHome }} + + + + + + + + + + + + + + {{ else if .IsNode }} + + + + + + + + + + + + + {{ end }} + + + {{ partial "extra-head" . }} + + + {{ if .RSSLink }} + + + {{ end }} + + + + + + + + + + + + + + + {{ range .Site.Params.stylesheets }} + + {{ end }} + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/js.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/js.html new file mode 100644 index 0000000000..b0e3a7c4fd --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/partials/js.html @@ -0,0 +1,4 @@ + +{{ range .Site.Params.scripts }} + +{{ end }} diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/logo.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/logo.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/navbar.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/navbar.html new file mode 100644 index 0000000000..7efddf1080 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/partials/navbar.html @@ -0,0 +1,48 @@ + + + + + + + + + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/pagination.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/pagination.html new file mode 100644 index 0000000000..68d3f31575 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/partials/pagination.html @@ -0,0 +1,29 @@ +
+
+
+ +
+
+
diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/post-list.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/post-list.html new file mode 100644 index 0000000000..2d28e1d5c1 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/partials/post-list.html @@ -0,0 +1,45 @@ +{{ range .Pages }} + +{{ end }} diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/post-series-notice.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/post-series-notice.html new file mode 100644 index 0000000000..89c58a3e12 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/partials/post-series-notice.html @@ -0,0 +1,15 @@ +{{ if isset .Params "series" }} +
+
+
+

+ {{ with .Params.series }} + This post is part of the + + {{ index . 0 }} series + {{ end }} +

+
+
+
+{{ end }} diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/post-tags.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/post-tags.html new file mode 100644 index 0000000000..e9f56cf508 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/partials/post-tags.html @@ -0,0 +1,11 @@ +{{ if .Params.tags }} +
+
+
+
+ {{ partial "tags" . }} +
+
+
+
+{{ end }} diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/share-links.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/share-links.html new file mode 100644 index 0000000000..13ebf22afe --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/partials/share-links.html @@ -0,0 +1,65 @@ +

+ Share this post 😊 🚀 +

+ diff --git a/website/site/themes/hugo-insomnia-theme/layouts/partials/tags.html b/website/site/themes/hugo-insomnia-theme/layouts/partials/tags.html new file mode 100644 index 0000000000..2fc060a568 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/partials/tags.html @@ -0,0 +1,6 @@ +{{ range .Params.tags }} + + {{ . }} + +{{ end }} diff --git a/website/site/themes/hugo-insomnia-theme/layouts/section/blog.html b/website/site/themes/hugo-insomnia-theme/layouts/section/blog.html new file mode 100644 index 0000000000..58c61f601c --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/section/blog.html @@ -0,0 +1,34 @@ +{{ partial "head" . }} + + +{{ partial "navbar" . }} + +
+
+
+
+

Welcome to the Blog!

+

+ + Subscribe via RSS + +

+
+
+
+ {{ with .Paginate (where .Data.Pages.ByDate.Reverse "Type" "blog") 10 }} + {{ partial "post-list" . }} + {{ end }} + {{ partial "pagination" . }} +
+ +{{ partial "footer" . }} +{{ partial "js" . }} + + + + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/section/changelog-json.html b/website/site/themes/hugo-insomnia-theme/layouts/section/changelog-json.html new file mode 100644 index 0000000000..0d698edd49 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/section/changelog-json.html @@ -0,0 +1,45 @@ +[ +{{ $total := len .Data.Pages }} +{{ $pages := .Data.Pages.ByDate.Reverse }} +{{ range $i, $page := $pages }} +{ +"version": "{{ .Slug }}", +{{ if isset .Params "link" }} +"link": "{{ .Params.link }}", +{{ end }} +{{ if isset .Params "channel" }} +"channel": "{{ .Params.channel }}", +{{ else }} +"channel": "stable", +{{ end }} +{{ if isset .Params "summary" }} +"summary": "{{ .Params.summary }}", +{{ end }} +"major": [ +{{ if isset .Params "major" }} +{{ $majorTotal := len .Params.major }} +{{ range $i, $v := .Params.major }} +"{{ . }}"{{ if eq $i (add $majorTotal -1) }}{{ else }},{{ end }} +{{ end }} +{{ end }} +], +"fixes": [ +{{ if isset .Params "fixes" }} +{{ $fixesTotal := len .Params.fixes }} +{{ range $i, $v := .Params.fixes }} +"{{ . }}"{{ if eq $i (add $fixesTotal -1) }}{{ else }},{{ end }} +{{ end }} +{{ end }} +], +"minor": [ +{{ if isset .Params "minor" }} +{{ $minorTotal := len .Params.minor }} +{{ range $i, $v := .Params.minor }} +"{{ . }}"{{ if eq $i (add $minorTotal -1) }}{{ else }},{{ end }} +{{ end }} +{{ end }} +] +{{ if eq $i (add $total -1) }}}{{ else }}}, +{{ end }} +{{ end }} +] diff --git a/website/site/themes/hugo-insomnia-theme/layouts/section/changelog.html b/website/site/themes/hugo-insomnia-theme/layouts/section/changelog.html new file mode 100644 index 0000000000..cd82a52f36 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/section/changelog.html @@ -0,0 +1,34 @@ +{{ partial "head" . }} + + +{{ partial "navbar" . }} + +
+
+
+
+

Insomnia Changelog

+

+ + Subscribe via RSS + +

+
+
+
+ {{ with .Paginate (where .Data.Pages.ByDate.Reverse "Type" "changelog") 10 }} + {{ partial "changelog-list" . }} + {{ end }} + {{ partial "pagination" . }} +
+ +{{ partial "footer" . }} +{{ partial "js" . }} + + + + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/sitemap.xml b/website/site/themes/hugo-insomnia-theme/layouts/sitemap.xml new file mode 100644 index 0000000000..a94731d6b8 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/sitemap.xml @@ -0,0 +1,19 @@ + + {{ range .Data.Pages }} + {{ if .Params.norobots }} + {{ else }} + + {{ .Permalink }} + + {{ if .Date.IsZero }} + 2017-01-19T00:00:00-00:00 + {{ else }} + {{ safeHTML ( .Date.Format "2006-01-02T15:04:05-07:00" ) }} + {{ end }} + + {{ with .Sitemap.ChangeFreq }}{{ . }}{{ end }}{{ if ge .Sitemap.Priority 0.0 }} + {{ .Sitemap.Priority }}{{ end }} + + {{ end }} + {{ end }} + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/skinny/single.html b/website/site/themes/hugo-insomnia-theme/layouts/skinny/single.html new file mode 100644 index 0000000000..bcdf9dfb78 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/skinny/single.html @@ -0,0 +1,38 @@ +{{ partial "head" . }} + + +{{ partial "fontawesome" }} + +{{ partial "navbar" . }} + +
+
+ {{ if not .Params.hideheader }} +
+
+
+

{{ .Title }}

+ {{ if isset .Params "subtitle" }} +

{{ .Params.subtitle | markdownify }}

+ {{ end }} +
+
+
+ {{ end }} + +
+
+
+ {{ .Content }} +
+
+
+
+
+ +{{ partial "footer" . }} +{{ partial "js" . }} + + + + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/splash/single.html b/website/site/themes/hugo-insomnia-theme/layouts/splash/single.html new file mode 100644 index 0000000000..d4b801b0cc --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/splash/single.html @@ -0,0 +1,53 @@ +{{ partial "head" . }} + + +{{ partial "navbar" . }} + +
+
+
+
+

+ {{ .Title }} +

+

+ {{ .Params.subtitle }} +

+ {{ .Params.cta.text }} +
+
+
+ {{ .Params.image.alt }} +
+
+
+ +
+
+
+ {{ .Content }} +
+
+
+ +
+
+
+
+

+ Want to talk more? Just reach out, I'd love to help! +

+
+
+ {{ partial "contact-button" . }} +
+
+
+
+ +{{ partial "footer" . }} +{{ partial "js" . }} + + + + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/taxonomy/series.html b/website/site/themes/hugo-insomnia-theme/layouts/taxonomy/series.html new file mode 100644 index 0000000000..2cbdb71819 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/taxonomy/series.html @@ -0,0 +1,34 @@ +{{ partial "head" . }} + + +{{ partial "navbar" . }} + +
+
+
+
+

{{ .Title }} Blog Series

+

+ + Subscribe via RSS + +

+
+
+
+ {{ with .Paginate (where .Data.Pages.ByDate.Reverse "Type" "blog") 10 }} + {{ partial "post-list" . }} + {{ end }} + {{ partial "pagination" . }} +
+ +{{ partial "footer" . }} +{{ partial "js" . }} + + + + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/taxonomy/series.terms.html b/website/site/themes/hugo-insomnia-theme/layouts/taxonomy/series.terms.html new file mode 100644 index 0000000000..37559e54fb --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/taxonomy/series.terms.html @@ -0,0 +1,36 @@ +{{ partial "head" . }} + + +{{ partial "navbar" . }} + +
+ +
+ +{{ partial "footer" . }} +{{ partial "js" . }} + + + + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/taxonomy/tag.html b/website/site/themes/hugo-insomnia-theme/layouts/taxonomy/tag.html new file mode 100644 index 0000000000..e996d19ecd --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/taxonomy/tag.html @@ -0,0 +1,33 @@ +{{ partial "head" . }} + + +{{ partial "navbar" . }} + +
+
+
+
+

Blog Tag: {{ .Title }}

+
+
+
+ {{ with .Paginate (where .Data.Pages.ByDate.Reverse "Type" "blog") 10 }} + {{ partial "post-list" . }} + {{ end }} + {{ partial "pagination" . }} + + +
+ +{{ partial "footer" . }} +{{ partial "js" . }} + + + + diff --git a/website/site/themes/hugo-insomnia-theme/layouts/wide/single.html b/website/site/themes/hugo-insomnia-theme/layouts/wide/single.html new file mode 100644 index 0000000000..26e2129f77 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/layouts/wide/single.html @@ -0,0 +1,38 @@ +{{ partial "head" . }} + + +{{ partial "fontawesome" }} + +{{ partial "navbar" . }} + +
+
+ {{ if not .Params.hideheader }} +
+
+
+

{{ .Title }}

+ {{ if isset .Params "subtitle" }} +

{{ .Params.subtitle | markdownify }}

+ {{ end }} +
+
+
+ {{ end }} + +
+
+
+ {{ .Content }} +
+
+
+
+
+ +{{ partial "footer" . }} +{{ partial "js" . }} + + + + diff --git a/website/site/themes/hugo-insomnia-theme/static/css/base.css b/website/site/themes/hugo-insomnia-theme/static/css/base.css new file mode 100644 index 0000000000..57b5b50f9d --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/static/css/base.css @@ -0,0 +1,1379 @@ +html { + font-family: 'Lato', Helvetica, 'Roboto', sans-serif; + font-size: 15px; +} + +html, body { + margin: 0; + padding: 0; +} + +main { + min-height: 28rem; +} + +hr { + border: 0; + border-bottom: 1px solid #eee; + background: none; + margin: 3rem 0; +} + +hr.hr--skinny { + margin: 1.5rem 0; +} + +/* ~~~~~~~~~~ */ +/* ANIMATIONS */ +/* ~~~~~~~~~~ */ + +@-moz-keyframes spin { + from { + -moz-transform: rotate(0deg); + } + to { + -moz-transform: rotate(360deg); + } +} + +@-webkit-keyframes spin { + from { + -webkit-transform: rotate(0deg); + } + to { + -webkit-transform: rotate(360deg); + } +} + +@keyframes spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +.spin { + -webkit-animation-name: spin; + -webkit-animation-duration: 4000ms; + -webkit-animation-iteration-count: infinite; + -webkit-animation-timing-function: linear; + -moz-animation-name: spin; + -moz-animation-duration: 4000ms; + -moz-animation-iteration-count: infinite; + -moz-animation-timing-function: linear; + animation-name: spin; + animation-duration: 4000ms; + animation-iteration-count: infinite; + animation-timing-function: linear; +} + +/* ~~~~~~~~~~~~ */ +/* BASIC STYLES */ +/* ~~~~~~~~~~~~ */ + +a { + color: #1975ff; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +a[disabled]:hover { + text-decoration: none; +} + +.error { + color: #f13d2d; +} + +.success { + color: #50a253; +} + +.boring { + color: #888; +} + +a * { + color: inherit !important; +} + +* { + line-height: 1.6em; + font-weight: 300; +} + +strong, +strong * { + font-weight: 500; +} + +p, ul, table { + font-size: 1.1rem; +} + +h1, h2, h3, h4, h5, h6, +h1 *, h2 *, h3 *, h4 *, h5 *, h6 * { + font-weight: 500; + margin: 0.5rem 0; +} + +h1 { + font-size: 2.2rem; +} + +h2 { + font-size: 1.6rem; +} + +h3 { + font-size: 1.3rem; +} + +h4 { + font-size: 1.1rem; +} + +h5 { + font-size: 1rem; + color: #555; + font-weight: 600; +} + +h6 { + font-size: 1rem; + color: #666; + font-weight: 600; +} + +p, ul { + margin: 1rem 0 1.7rem 0; +} + +img { + display: block; + margin: auto; + max-width: 100%; + max-height: 60vh; +} + +details summary { + user-select: none; + font-weight: 500; + cursor: pointer; +} + +details summary:focus { + outline: 0; +} + +details { + border: 1px dashed #ccc; + padding: 0.5rem 1rem; +} + +details *:last-child { + margin-bottom: 0; +} + +section { + margin: 3rem 0; +} + +section.section--bordered { + margin-top: 0; + margin-bottom: 0; + padding: 2rem 0; + border-top: 1px solid #f0f0f0; +} + +article { + margin-bottom: 3rem; +} + +article ul, +article ol { + padding-left: 1.5rem; +} + +article ul ol, +article ol ol, +article ol ul, +article ul ul { + margin: 0; +} + +article table { + width: 100%; + border-spacing: 0; + border-collapse: separate; +} + +article table th { + text-align: left; + font-weight: 600; +} + +article table th, +article table td { + font-size: 1rem; + padding: 0.1rem 0.5rem; +} + +article table th, +article table td { + border-right: 1px solid #e2e2e2; +} + +article table { + border: 1px solid #e2e2e2; + margin-bottom: 2rem; +} + +article table th:last-child, +article table td:last-child { + border-right: 0; +} + +article table thead th { + border-bottom: 1px solid #e2e2e2; +} + +article table tbody tr:nth-child(odd) { + background: #f8f8f8; +} + +article.article--preview { + margin: 2rem auto; +} + +article.article--preview .article--preview__content { +} + +article.article--preview .article--preview__footer { + margin-bottom: 1rem; +} + +article.article--preview .article--preview__footer .tags__tag { + margin: 0 1rem 0 0; +} + +article.article--preview .article--preview__read-more { + text-align: right; +} + +article.article--preview .article--preview__separator { + border-bottom: 1px solid #eee; +} + +article.article--preview h1 { + font-size: 1.7rem; +} + +article h1 { + font-size: 1.9rem; +} + +article.article--preview section { + margin: 0; +} + +article.article--preview header * { + color: inherit; +} + +article section { + margin: 1rem 0; +} + +article img.small { + display: block; + max-width: 100%; + max-height: 40vh; + border: 1px solid #f5f5f5; + box-shadow: 0 0 2rem rgba(0, 0, 0, 0.1); +} + +article img { + border-radius: 3px; + margin: 2rem auto 3rem auto; +} + +article iframe { + display: block; + border: 1px solid #eee; + margin: 2rem auto 3rem auto; + width: 100%; +} + +header.header--big { + text-align: center; + padding: 3rem 0 2rem 0; +} + +/* ~~~~~~~ */ +/* NOTICES */ +/* ~~~~~~~ */ + +.notice { + display: block; + border: 1px dashed #d0d0d0; + padding: 1rem 1.5rem; + text-align: center; + color: #999; + border-radius: 0.25rem; + margin: 2rem auto; +} + +.notice code { + background-color: rgba(0, 0, 0, 0.08); +} + +.notice.info { + color: #222; + border-color: rgb(97, 71, 209); + background: rgba(97, 71, 209, 0.05); +} + +.notice.warn { + color: #222; + border-color: rgb(209, 141, 43); + background: rgba(223, 116, 10, 0.05); +} + +article header * { + margin: 0; +} + +article header p { + font-size: 1.3rem; +} + +article header time { + color: #666; +} + +article footer { + padding: 3rem 0; +} + +article .twitter-tweet { + margin: 2rem auto !important; +} + +code { + font-size: 0.75em; + border-radius: 0.2em; + tab-size: 2; + color: inherit; + white-space: nowrap; +} + +pre code { + white-space: pre; + margin-bottom: 2rem; + margin-top: 2rem; +} + +code, code * { + font-family: Menlo, 'Source Code Pro', monospace; +} + +blockquote { + border-left: 0.5rem solid #f0f0f0; + padding: 1rem 1rem 1rem 2rem; + margin: 0 0 2rem; +} + +blockquote * { + margin: 0; + font-style: italic; + font-size: 1.1em; + color: #888; +} + +*:not(pre) > code { + padding: 0.2em 0.5em; + background-color: #f3f3f3; + font-weight: 400; +} + +pre > code { + background: #f8f8f8; + display: block; + padding: 1rem 1.5rem; + border-radius: 0.3rem; + overflow: auto; +} + +.fa { + width: 1.2em; + display: inline-block; + height: 1em; + text-align: center; +} + +.row-center-y { + display: flex; + flex-direction: row; + align-items: center; + flex-wrap: wrap; +} + +/* ~~~~~~~~~~ */ +/* PAGINATION */ +/* ~~~~~~~~~~ */ + +.pagination { + display: flex; + flex-direction: row; + justify-content: space-between; +} + +/* ~~~~~~~ */ +/* BUTTONS */ +/* ~~~~~~~ */ + +.button { + display: inline-block; + text-align: center; + min-width: 6em; + box-sizing: border-box; + padding: 0.5em 0.8em; + margin: auto; + font-size: 1rem; + background: transparent; + border: 1px solid; + border-radius: 3px; + cursor: pointer; + outline: none; + transition: all 0.2s ease; +} + +.button--inline { + display: inline-block; +} + +.button--compact { + padding: 0.25rem 0.8rem; +} + +button[disabled], +.button[disabled] { + cursor: default; + opacity: 0.5; +} + +.button:not([disabled]):focus, +.button:not([disabled]):hover { + background: #675BC0; +} + +.button:not([disabled]):focus, +.button:not([disabled]):focus *, +.button:not([disabled]):hover, +.button:not([disabled]):hover * { + text-decoration: none; + color: #fff; +} + +.button--no-outline { + border-color: transparent !important; +} + +/* ~~~~~ */ +/* FORMS */ +/* ~~~~~ */ + +.form-control { + font-size: 1.1rem; + border: 0; + width: 100%; + box-sizing: border-box; + margin-bottom: 1rem; +} + +.form-row { + display: flex; + align-items: center; + justify-content: center; + align-content: center; + flex-direction: row; +} + +.form-row > * { + width: 100%; + margin-left: 0.5rem; + margin-right: 0.5rem; +} + +.form-row > p { + margin: 0; +} + +.form-row > *:first-child { + margin-left: 0; +} + +.form-row > *:last-child { + margin-right: 0; +} + +.form-control label * { + font-size: 1rem; +} + +.form-control label, +.form-control label > a, +.form-control label > button, +.form-control label > small, +.form-control label > span { + font-weight: 500; + font-size: 0.9rem; +} + +.form-control label > * { + margin-top: 0; +} + +.form-control input, +.form-control select { + font-size: 1rem; + display: block; + border: 1px solid #ddd; + padding: 0.3rem 0.5rem; + border-radius: 3px; + box-sizing: border-box; + width: 100%; + background: #fbfbfb; +} + +.form-control--no-label { + padding-top: 1.8rem; +} + +.form-control input, +.form-control select, +.form-control button { + height: 2.4rem; +} + +.form-control input[type="checkbox"], +.form-control input[type="radio"] { + margin-right: 0.5rem; + height: 1em; +} + +.form-control select { + display: inline-block; + width: auto; +} + +.form-control input[type="checkbox"], +.form-control input[type="radio"] { + display: inline-block; + width: auto; +} + +.form-control.error input, +.form-control.error input:focus { + color: #ff3138; + border-color: inherit; +} + +.form-control input:focus, +.form-control select:focus { + border: 1px solid #aaa; + background: #fff; +} + +.form-control input:not([type="radio"]):not([type="checkbox"]):focus, +.form-control select:focus { + outline: 0; +} + +.form-control > .button { + white-space: nowrap; + padding: 0.3rem 1rem; +} + +.form-pair { + width: 100%; +} + +.form-pair > .form-control { + width: 50%; + float: left; + display: inline-block; +} + +.form-pair > .form-control:first-child { + padding-right: 0.5rem; +} + +.form-pair > .form-control:last-child { + padding-left: 0.5rem; +} + +/* ~~~~~~~ */ +/* HELPERS */ +/* ~~~~~~~ */ + +.text-xxl { + font-size: 2rem; +} + +.text-xl { + font-size: 1.7rem; +} + +.text-lg { + font-size: 1.4rem; +} + +.text-md { + font-size: 1.1rem; +} + +.text-sm { + font-size: 0.95rem; +} + +.subtle { + opacity: 0.7; +} + +.hide { + display: none; +} + +small, +.small { + font-size: 0.85em !important; +} + +.italic { + font-style: italic; +} + +.bold, +.bold * { + font-weight: 600; +} + +.wide { + width: 100% !important; +} + +.width--auto { + width: auto; +} + +.no-margin { + margin: 0; +} + +.no-margin-bottom { + margin-bottom: 0; +} + +.no-wrap { + white-space: nowrap; +} + +.padding-top { + padding-top: 3rem; +} + +.padding-top-lg { + padding-top: 6rem; +} + +.padding-top-sm { + padding-top: 1.5rem; +} + +.padding-bottom { + padding-bottom: 3rem; +} + +.padding-bottom-lg { + padding-bottom: 6rem; +} + +.margin-top { + margin-top: 3rem; +} + +/* ~~~~~~ */ +/* THEMES */ +/* ~~~~~~ */ + +.dark { + background: radial-gradient(circle at 50% 50%, #292A26, #1d1e1b 400%) +} + +.dark h1, .dark h2, .dark h3 { + color: #eee; +} + +.dark, .dark .button, .dark a, .dark * { + color: #ccc; +} + +.dark a:hover { + color: #ddd; +} + +.dark .button:hover { + color: #333; + background: #fff; +} + +.light { + background: #f5f5f5; +} + +/* ~~~~~~~ */ +/* NAV BAR */ +/* ~~~~~~~ */ + +body.floating-navbar .navbar { + float: left; + width: 100%; +} + +body.floating-navbar .navbar a { + opacity: 0.5; + transition: opacity 200ms; + color: #fff !important; +} + +body.floating-navbar .navbar a:hover { + color: #fff; + opacity: 1; +} + +.navbar * { + color: #555; + font-weight: 400; +} + +.navbar a:hover, .navbar a:hover * { + color: #000; +} + +.navbar__container { + display: flex; + align-items: center; + flex-direction: row; + height: 5rem; + margin-top: 0 !important; +} + +.navbar__container * { + margin: 0; +} + +.navbar__title { + white-space: nowrap; +} + +.navbar__title h1 { + font-size: 1.3rem; +} + +.navbar__title:hover { + text-decoration: none !important; +} + +.navbar__icon { + min-width: 2.9rem; + width: 2.9rem; +} + +.navbar__icon img { + background: #5b4fa9; + border-radius: 50%; + height: 2.0rem; + width: 2.0rem; + padding: 3px; + box-sizing: border-box; +} + +body.floating-navbar .navbar__icon img { + background: none; +} + +.navbar__items { + text-align: right; + width: 100%; + white-space: nowrap; + margin-right: -1rem; +} + +.navbar__items li { + list-style: none; + display: inline-block; +} + +.navbar__items li > * { + padding: 1rem; +} + +/* ~~~~~~ */ +/* FOOTER */ +/* ~~~~~~ */ + +.footer { + text-align: center; + background: linear-gradient(165deg, #6e60cc 0%, #484389 100%); + overflow: auto; + align-self: flex-end; +} + +.footer * { + color: rgba(255, 255, 255, 0.6); +} + +.footer a:hover, .footer a:hover * { + color: #fff; + text-decoration: none; +} + +.footer__menu { + max-width: 40rem; + margin: 0 auto 3rem auto; +} + +.footer__menu a { + margin: 0.8rem 1rem; + font-size: 1rem; + display: inline-block; +} + +/* ~~~~~~~~ */ +/* COMMENTS */ +/* ~~~~~~~~ */ + +.comments { + background: #f5f5f5; + padding: 3rem 0; + margin: 0; +} + +/* ~~~~~~~~~~~ */ +/* SHARE LINKS */ +/* ~~~~~~~~~~~ */ + +.share { + border-top: 1px solid #f5f5f5; + padding: 2rem 0; + margin: 0; +} + +.share-buttons { + display: flex; + width: 100%; + flex-direction: row; + justify-content: space-between; + flex-wrap: wrap; +} + +.button--share { + text-align: center; + display: inline-block; + color: #ffffff; + outline: none; + margin: 0.5rem 0.1rem; + padding: 0.3rem 0; + min-width: 4.5rem; +} + +.button--share.twitter { + color: #55acee; +} + +.button--share.twitter:hover { + background: #55acee; +} + +.button--share.google-plus { + color: #dd4b39; +} + +.button--share.google-plus:hover { + background: #dd4b39; +} + +.button--share.facebook { + color: #3B5998; +} + +.button--share.facebook:hover { + background: #3B5998; +} + +.button--share.stumbleupon { + color: #EB4823; +} + +.button--share.stumbleupon:hover { + background: #EB4823; +} + +.button--share.reddit { + color: #ff5700; +} + +.button--share.reddit:hover { + background: #ff5700; +} + +.button--share.linkedin { + color: #4875B4; +} + +.button--share.linkedin:hover { + background: #4875B4; +} + +.button--share.email { + color: #444444; +} + +.button--share.email:hover { + background: #444444; +} + +.button--share:hover { + color: #fff; +} + +.button--share:active { + color: #e2e2e2; + outline: none; +} + +/* ~~~~ */ +/* TAGS */ +/* ~~~~ */ + +.tags { + margin: 0; +} + +a.tags__tag { + display: inline-block; + padding: 0.2rem 0.5rem; + font-size: 0.8rem; + font-weight: 300; + margin-right: 0.5rem; + margin-top: 0.5rem; + margin-bottom: 0.5rem; + text-transform: uppercase; +} + +a.tags__tag:hover { + text-decoration: none; + background: #7f62f3; + color: #fff; +} + +.tags__tag:hover { + opacity: 1; +} + +/* ~~~~~~~~~~~~~~~~~~ */ +/* TEMPLATE OVERRIDES */ +/* ~~~~~~~~~~~~~~~~~~ */ + +body.template-skinny main { + max-width: 58rem; + margin-left: auto; + margin-right: auto; +} + +body.template-wide .container { + max-width: 60rem; + width: 90%; +} + +body.template-splash main h2 { + margin-top: 4rem; +} + +body.template-changelog main .container, +body.template-splash main .container, +body.template-blog main .container { + max-width: 44rem; +} + +body.template-blog article > header { + margin-top: 2rem; +} + +body.template-app main { + max-width: 44rem; + margin: auto; +} + +/* ~~~~~~~~~~~~ */ +/* EDITOR THEME */ +/* ~~~~~~~~~~~~ */ + +.highlight .hll { + background-color: #ffffcc +} + +.highlight .c { + color: #999988; + font-style: italic +} + +/* Comment */ +.highlight .err { + color: #a61717; + background-color: #e3d2d2 +} + +/* Error */ +.highlight .k { + color: #000000; + font-weight: bold +} + +/* Keyword */ +.highlight .o { + color: #000000; + font-weight: bold +} + +/* Operator */ +.highlight .cm { + color: #999988; + font-style: italic +} + +/* Comment.Multiline */ +.highlight .cp { + color: #999999; + font-weight: bold; + font-style: italic +} + +/* Comment.Preproc */ +.highlight .c1 { + color: #999988; + font-style: italic +} + +/* Comment.Single */ +.highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic +} + +/* Comment.Special */ +.highlight .gd { + color: #000000; + background-color: #ffdddd +} + +/* Generic.Deleted */ +.highlight .ge { + color: #000000; + font-style: italic +} + +/* Generic.Emph */ +.highlight .gr { + color: #aa0000 +} + +/* Generic.Error */ +.highlight .gh { + color: #999999 +} + +/* Generic.Heading */ +.highlight .gi { + color: #000000; + background-color: #ddffdd +} + +/* Generic.Inserted */ +.highlight .go { + color: #888888 +} + +/* Generic.Output */ +.highlight .gp { + color: #555555 +} + +/* Generic.Prompt */ +.highlight .gs { + font-weight: bold +} + +/* Generic.Strong */ +.highlight .gu { + color: #aaaaaa +} + +/* Generic.Subheading */ +.highlight .gt { + color: #aa0000 +} + +/* Generic.Traceback */ +.highlight .kc { + color: #000000; + font-weight: bold +} + +/* Keyword.Constant */ +.highlight .kd { + color: #000000; + font-weight: bold +} + +/* Keyword.Declaration */ +.highlight .kn { + color: #000000; + font-weight: bold +} + +/* Keyword.Namespace */ +.highlight .kp { + color: #000000; + font-weight: bold +} + +/* Keyword.Pseudo */ +.highlight .kr { + color: #000000; + font-weight: bold +} + +/* Keyword.Reserved */ +.highlight .kt { + color: #445588; + font-weight: bold +} + +/* Keyword.Type */ +.highlight .m { + color: #009999 +} + +/* Literal.Number */ +.highlight .s { + color: #d01040 +} + +/* Literal.String */ +.highlight .na { + color: #008080 +} + +/* Name.Attribute */ +.highlight .nb { + color: #0086B3 +} + +/* Name.Builtin */ +.highlight .nc { + color: #445588; + font-weight: bold +} + +/* Name.Class */ +.highlight .no { + color: #008080 +} + +/* Name.Constant */ +.highlight .nd { + color: #3c5d5d; + font-weight: bold +} + +/* Name.Decorator */ +.highlight .ni { + color: #800080 +} + +/* Name.Entity */ +.highlight .ne { + color: #990000; + font-weight: bold +} + +/* Name.Exception */ +.highlight .nf { + color: #990000; + font-weight: bold +} + +/* Name.Function */ +.highlight .nl { + color: #990000; + font-weight: bold +} + +/* Name.Label */ +.highlight .nn { + color: #555555 +} + +/* Name.Namespace */ +.highlight .nt { + color: #000080 +} + +/* Name.Tag */ +.highlight .nv { + color: #008080 +} + +/* Name.Variable */ +.highlight .ow { + color: #000000; + font-weight: bold +} + +/* Operator.Word */ +.highlight .w { + color: #bbbbbb +} + +/* Text.Whitespace */ +.highlight .mf { + color: #009999 +} + +/* Literal.Number.Float */ +.highlight .mh { + color: #009999 +} + +/* Literal.Number.Hex */ +.highlight .mi { + color: #009999 +} + +/* Literal.Number.Integer */ +.highlight .mo { + color: #009999 +} + +/* Literal.Number.Oct */ +.highlight .sb { + color: #d01040 +} + +/* Literal.String.Backtick */ +.highlight .sc { + color: #d01040 +} + +/* Literal.String.Char */ +.highlight .sd { + color: #d01040 +} + +/* Literal.String.Doc */ +.highlight .s2 { + color: #d01040 +} + +/* Literal.String.Double */ +.highlight .se { + color: #d01040 +} + +/* Literal.String.Escape */ +.highlight .sh { + color: #d01040 +} + +/* Literal.String.Heredoc */ +.highlight .si { + color: #d01040 +} + +/* Literal.String.Interpol */ +.highlight .sx { + color: #d01040 +} + +/* Literal.String.Other */ +.highlight .sr { + color: #009926 +} + +/* Literal.String.Regex */ +.highlight .s1 { + color: #d01040 +} + +/* Literal.String.Single */ +.highlight .ss { + color: #990073 +} + +/* Literal.String.Symbol */ +.highlight .bp { + color: #999999 +} + +/* Name.Builtin.Pseudo */ +.highlight .vc { + color: #008080 +} + +/* Name.Variable.Class */ +.highlight .vg { + color: #008080 +} + +/* Name.Variable.Global */ +.highlight .vi { + color: #008080 +} + +/* Name.Variable.Instance */ +.highlight .il { + color: #009999 +} + +/* Literal.Number.Integer.Long */ + +/* ~~~~~~~~~~~~~ */ +/* MEDIA QUERIES */ +/* ~~~~~~~~~~~~~ */ + +@media only screen and (max-width: 33.75rem) { + .navbar__title { + display: none; + } +} + +@media only screen and (max-width: 45rem) { + article.article--preview .article--preview__read-more { + text-align: left; + } +} + +@media only screen and (min-width: 45rem) { + html { + font-size: 16px; + } +} diff --git a/website/site/themes/hugo-insomnia-theme/static/css/simple-grid.min.css b/website/site/themes/hugo-insomnia-theme/static/css/simple-grid.min.css new file mode 100644 index 0000000000..15971d1735 --- /dev/null +++ b/website/site/themes/hugo-insomnia-theme/static/css/simple-grid.min.css @@ -0,0 +1 @@ +body,html{height:100%;width:100%;margin:0;padding:0;left:0;top:0;font-size:100%}.center,.container{margin-left:auto;margin-right:auto}*{font-family:Lato,Helvetica,sans-serif;color:#333447;line-height:1.5}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.375rem}h4{font-size:1.125rem}h5{font-size:1rem}h6{font-size:.875rem}.font-light{font-weight:300}.font-regular{font-weight:400}.font-heavy{font-weight:700}.left{text-align:left}.right{text-align:right}.center{text-align:center}.justify{text-align:justify}.container{width:90%}.row{position:relative;width:100%}.row [class^=col]{float:left;margin:.5rem 2%;min-height:.125rem}.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9{width:96%}.col-1-sm{width:4.33%}.col-2-sm{width:12.66%}.col-3-sm{width:21%}.col-4-sm{width:29.33%}.col-5-sm{width:37.66%}.col-6-sm{width:46%}.col-7-sm{width:54.33%}.col-8-sm{width:62.66%}.col-9-sm{width:71%}.col-10-sm{width:79.33%}.col-11-sm{width:87.66%}.col-12-sm{width:96%}.row::after{content:"";display:table;clear:both}.hidden-sm{display:none}@media only screen and (min-width:33.75em){.container{width:80%}}@media only screen and (min-width:45em){.col-1{width:4.33%}.col-2{width:12.66%}.col-3{width:21%}.col-4{width:29.33%}.col-5{width:37.66%}.col-6{width:46%}.col-7{width:54.33%}.col-8{width:62.66%}.col-9{width:71%}.col-10{width:79.33%}.col-11{width:87.66%}.col-12{width:96%}.hidden-sm{display:block}}@media only screen and (min-width:60em){.container{width:75%;max-width:60rem}} diff --git a/website/src/analytics.js b/website/src/analytics.js new file mode 100644 index 0000000000..3c73bbbfe1 --- /dev/null +++ b/website/src/analytics.js @@ -0,0 +1,7 @@ +export function trackEvent (...args) { + window.ga && window.ga('send', 'event', ...args); +} + +export function setUserId (accountId) { + window.ga && window.ga('set', 'userId', accountId); +} diff --git a/website/src/components/change-email.js b/website/src/components/change-email.js new file mode 100644 index 0000000000..a98b79911b --- /dev/null +++ b/website/src/components/change-email.js @@ -0,0 +1,90 @@ +import React, {Component, PropTypes} from 'react'; +import * as session from '../session'; +import {trackEvent} from '../analytics'; + +class ChangeEmail extends Component { + state = { + loading: false, + password: '', + newEmail: '', + loginError: '', + error: '', + }; + + _handleUpdateInput = e => { + this.setState({[e.target.name]: e.target.value, error: ''}); + }; + + _handleSubmit = async e => { + e.preventDefault(); + + this.setState({loading: true}); + const {whoami} = this.props; + + try { + await session.login(whoami.email, this.state.password); + } catch (err) { + this.setState({loginError: err.message, error: '', loading: false}); + trackEvent('Account', 'Change Email Error Logging In'); + return; + } + + try { + await session.changePasswordAndEmail( + this.state.password, + this.state.password, + this.state.newEmail + ); + window.location = '/app/account/'; + trackEvent('Account', 'Change Email Success'); + } catch (err) { + console.error('Failed to update email', err.stack); + this.setState({error: err.message, loading: false}); + trackEvent('Account', 'Change Email Error'); + } + }; + + render () { + const {whoami} = this.props; + const {error, loginError, loading} = this.state; + return ( +
+

Your current email is {whoami.email}

+
+ +
+
+ +
+ {error ?
** {error}
: null} +
+ {loading ? + : + + } +
+
+ ) + } +} + +ChangeEmail.propTypes = { + whoami: PropTypes.shape({ + email: PropTypes.string.isRequired, + }).isRequired +}; + +export default ChangeEmail; diff --git a/website/src/components/change-password.js b/website/src/components/change-password.js new file mode 100644 index 0000000000..57cc8e6960 --- /dev/null +++ b/website/src/components/change-password.js @@ -0,0 +1,110 @@ +import React, {Component, PropTypes} from 'react'; +import * as session from '../session'; +import {trackEvent} from '../analytics'; + +class ChangePassword extends Component { + state = { + loading: false, + oldPassword: '', + newPassword: '', + confirmNewPassword: '', + loginError: '', + error: '', + }; + + _handleUpdateInput = e => { + this.setState({[e.target.name]: e.target.value, error: ''}); + }; + + _handleUpdateConfirmPasswordInput = e => { + this._handleUpdateInput(e); + + if (this.state.newPassword !== e.target.value) { + e.target.setCustomValidity('Passwords did not match'); + } else { + e.target.setCustomValidity(''); + } + }; + + _handleSubmit = async e => { + e.preventDefault(); + + this.setState({loading: true}); + + const {whoami} = this.props; + + try { + await session.login(whoami.email, this.state.oldPassword); + } catch (err) { + this.setState({loginError: err.message, error: '', loading: false}); + trackEvent('Account', 'Change Password Error Logging In'); + return; + } + + try { + await session.changePasswordAndEmail( + this.state.oldPassword, + this.state.newPassword, + whoami.email + ); + window.location = '/app/account/'; + trackEvent('Account', 'Change Password Success'); + } catch (err) { + console.error('Failed to update password', err.stack); + this.setState({error: err.message, loading: false}); + trackEvent('Account', 'Change Password Error'); + } + }; + + render () { + const {error, loginError, loading} = this.state; + return ( +
+
+ +
+
+ +
+
+ +
+ {error ?
** {error}
: null} +
+ {loading ? + : + + } +
+
+ ) + } +} + +ChangePassword.propTypes = { + whoami: PropTypes.shape({ + email: PropTypes.string.isRequired, + }).isRequired +}; + +export default ChangePassword; diff --git a/website/src/components/common/cancel.js b/website/src/components/common/cancel.js new file mode 100644 index 0000000000..d50592142c --- /dev/null +++ b/website/src/components/common/cancel.js @@ -0,0 +1,31 @@ +import React, {Component, PropTypes} from 'react'; +import * as session from '../../session'; +import {trackEvent} from '../../analytics'; + +class CancelLink extends Component { + _handleClick = async e => { + e.preventDefault(); + + const confirmed = confirm( + 'Are you sure? Your subscription will remain active ' + + 'until the end of your current billing period' + ); + + if (!confirmed) { + trackEvent('Account', 'Cancel Cancelled'); + return; + } + + await session.cancelAccount(); + trackEvent('Account', 'Cancel'); + window.location.reload(); + }; + + render () { + return Cancel Subscription + } +} + +CancelLink.propTypes = {}; + +export default CancelLink; diff --git a/website/src/components/common/reverify.js b/website/src/components/common/reverify.js new file mode 100644 index 0000000000..e78cf73d09 --- /dev/null +++ b/website/src/components/common/reverify.js @@ -0,0 +1,65 @@ +import React, {Component, PropTypes} from 'react'; +import * as session from '../../session'; +import {trackEvent} from '../../analytics'; + +const STATE_DEFAULT = 'default'; +const STATE_LOADING = 'loading'; +const STATE_DONE = 'done'; + +class VerifyButton extends Component { + state = { + state: STATE_DEFAULT, + error: '', + }; + + _noOp = e => e.preventDefault(); + + _handleClick = async e => { + e.preventDefault(); + this.setState({state: STATE_LOADING}); + + try { + await session.verify(); + trackEvent('Account', 'Resend Verification Email'); + this.setState({state: STATE_DONE}); + } catch (err) { + this.setState({error: err.message}) + } + }; + + render () { + const {state, error} = this.state; + + if (error) { + return ( + + {error} + + ) + } + + if (state === STATE_LOADING) { + return ( + + Loading... + + ) + } else if (state === STATE_DONE) { + return ( + + Verification Email Sent + + ) + } else { + return ( + + Resend Verification Email + + ) + } + } +} + +VerifyButton.propTypes = {}; + +export default VerifyButton; diff --git a/website/src/components/common/sign-out.js b/website/src/components/common/sign-out.js new file mode 100644 index 0000000000..ae5f6efa5c --- /dev/null +++ b/website/src/components/common/sign-out.js @@ -0,0 +1,20 @@ +import React, {Component} from 'react'; +import * as session from '../../session'; +import {trackEvent} from '../../analytics'; + +class SignOutLink extends Component { + _handleClick = async e => { + e.preventDefault(); + await session.logout(); + trackEvent('Account', 'Logout'); + window.location = '/app/logout/'; + }; + + render () { + return Sign Out + } +} + +SignOutLink.propTypes = {}; + +export default SignOutLink; diff --git a/website/src/components/home.js b/website/src/components/home.js new file mode 100644 index 0000000000..3b5b125312 --- /dev/null +++ b/website/src/components/home.js @@ -0,0 +1,168 @@ +import React, {Component, PropTypes} from 'react'; +import SignOutLink from './common/sign-out'; +import CancelLink from './common/cancel'; +import VerifyButton from './common/reverify'; + +class Home extends Component { + renderNotice () { + const {billingDetails, whoami} = this.props; + + let notice = null; + + const trialEndDate = new Date(whoami.trialEnd * 1000); + const trialEndMillis = trialEndDate.getTime() - Date.now(); + const trialDays = Math.ceil(trialEndMillis / 1000 / 60 / 60 / 24); + const isTrialOver = trialDays <= 0; + + if (!billingDetails && !isTrialOver) { + notice = ( +

+ You still have {trialDays} day{trialDays === 1 ? '' : 's'} left + on your free trial +

+ ) + } else if (billingDetails && billingDetails.isPaymentRequired) { + notice = ( +

+ Payment Required. Please subscribe to a plan to continue + using Insomnia. +
+
+ + Update Subscription + +

+ ) + } else if (!billingDetails && isTrialOver) { + notice = ( +

+ Your trial ended {-1 * trialDays} day{trialDays === 1 ? '' : 's'} ago. + Please subscribe to a plan to continue using your account. +
+
+ + Update Subscription + +

+ ) + } else if (billingDetails.subCancelled && billingDetails.subPeriodEnd * 1000 > Date.now()) { + const dateString = (new Date(billingDetails.subPeriodEnd * 1000)).toDateString(); + notice = ( +

+ Subscription Cancelled and will end {dateString} +
+
+ + Resubscribe + +

+ ) + } else if (billingDetails.subCancelled) { + notice = ( +

+ Your subscription is Cancelled +
+
+ + Resubscribe + +

+ ) + } + + return
{notice}
; + } + + renderLoginNotice () { + if (this.props.whoami.appNumLaunches) { + return null; + } + + return ( +

+ You may now sign in to the app 💻 +

+ ) + } + + render () { + const {whoami, billingDetails} = this.props; + const description = billingDetails && billingDetails.description; + + const total = billingDetails && billingDetails.subTotal; + const discountAmount = billingDetails ? total * (billingDetails.subPercentOff / 100) : 0; + const totalAfterDiscount = total - discountAmount; + const periodEnd = billingDetails && new Date(billingDetails.subPeriodEnd * 1000).toDateString(); + + return ( +
+ {this.renderLoginNotice()} + {this.renderNotice()} +

Hi {whoami.firstName},

+

Your email address is {whoami.email}.

+ {description ?

You are subscribed to {description}!

: null} + {(billingDetails && !billingDetails.subCancelled) ? ( +

+ Your next invoice is scheduled for {periodEnd} and will be + {" "} + ${(totalAfterDiscount / 100).toFixed(2)} USD + {billingDetails.subPercentOff ? ( + + {" "} + (after {billingDetails.subPercentOff}% discount) + + ) : null} + . +

+ ) : null} +

Here are some things you might want to do.

+ +
+ ) + } +} + +Home.propTypes = { + whoami: PropTypes.shape({ + firstName: PropTypes.string.isRequired, + planName: PropTypes.string.isRequired, + trialEnd: PropTypes.number.isRequired, + isTrialing: PropTypes.bool.isRequired, + isPaymentRequired: PropTypes.bool.isRequired, + isVerified: PropTypes.bool.isRequired, + appNumLaunches: PropTypes.number.isRequired, + canManageTeams: PropTypes.bool.isRequired, + }).isRequired, + billingDetails: PropTypes.shape({ + description: PropTypes.string.isRequired, + isPaymentRequired: PropTypes.bool.isRequired, + subTrialing: PropTypes.bool.isRequired, + subTrialEnd: PropTypes.number.isRequired, + subCancelled: PropTypes.bool.isRequired, + subPeriodEnd: PropTypes.number.isRequired, + subPercentOff: PropTypes.number.isRequired, + subTotal: PropTypes.number.isRequired, + }), +}; + +export default Home; diff --git a/website/src/components/index.js b/website/src/components/index.js new file mode 100644 index 0000000000..c8f176c509 --- /dev/null +++ b/website/src/components/index.js @@ -0,0 +1,109 @@ +import React, {Component, PropTypes} from 'react'; +import Home from './home'; +import Login from './login'; +import SignUp from './signup'; +import Subscribe from './subscribe'; +import Teams from './teams'; +import ChangePassword from './change-password'; +import ChangeEmail from './change-email'; +import * as session from '../session'; +import {setUserId} from '../analytics'; + +class App extends Component { + state = {loading: true}; + component = null; + + _handleReload = async () => { + let whoami; + + const whoamiTask = session.whoami(); + const billingDetailsTask = session.billingDetails(); + const teamsTask = session.listTeams(); + + // Fetch Account info + try { + whoami = await whoamiTask; + } catch (err) { + // If not logged in, logout and redirect to login page + if (err.statusCode === 403) { + await session.logout(); + } + + localStorage.setItem('login.next', window.location.href); + window.location = '/app/signup/'; + return; + } + + setUserId(whoami.accountId); + + // Fetch the things + const teams = await teamsTask; + const billingDetails = await billingDetailsTask; + + const path = window.location.pathname; + if (path.match(/^\/app\/account\/$/)) { + this.component = + } else if (path.match(/^\/app\/subscribe\/$/)) { + this.component = + } else if (path.match(/^\/app\/change-password\/$/)) { + this.component = + } else if (path.match(/^\/app\/change-email\/$/)) { + this.component = + } else if (path.match(/^\/app\/teams\/$/)) { + this.component = ( + + ) + } + + // Give some time for components waiting on this to finish to update their + // state before we refresh on them. + setTimeout(() => { + this.setState({loading: false}); + }, 0) + }; + + componentWillMount () { + const {path} = this.props; + + // Routes that don't require session + if (path === '/app/login/') { + this.component = ; + } else if (path === '/app/signup/') { + this.component = ; + } + + // Show one of the above components + if (this.component) { + this.setState({loading: false}); + } else { + this._handleReload(); + } + } + + render () { + if (this.component) { + return this.component; + } + + if (this.state.loading) { + return ( +
+ Loading... +
+ ) + } else { + return
Page Not Found
; + } + } +} + +App.propTypes = { + path: PropTypes.string.isRequired +}; + +export default App; diff --git a/website/src/components/login.js b/website/src/components/login.js new file mode 100644 index 0000000000..86ca84ccac --- /dev/null +++ b/website/src/components/login.js @@ -0,0 +1,84 @@ +import React, {Component, PropTypes} from 'react'; + +import * as session from '../session'; +import {trackEvent} from '../analytics'; + +class Login extends Component { + state = { + loading: false, + email: '', + password: '', + error: '', + }; + + _handleUpdateInput = e => { + this.setState({[e.target.name]: e.target.value, error: ''}); + }; + + _handleSubmit = async e => { + e.preventDefault(); + + this.setState({loading: true}); + + try { + await session.login(this.state.email, this.state.password); + + const nextUrl = localStorage.getItem('login.next') || '/app/account/'; + localStorage.removeItem('login.next'); + + window.location = nextUrl; + trackEvent('Account', 'Login Success'); + } catch (err) { + this.setState({error: err.message, loading: false}); + trackEvent('Account', 'Login Error'); + } + }; + + render () { + const {loading, error} = this.state; + + return ( +
+
+ +
+
+ +
+ {error ? ** {error} : null} +
+
+ Or, Sign Up +
+
+ {loading ? + : + + } +
+
+
+

+ Forgot your password? +

+
+ ) + } +} + +Login.propTypes = {}; + +export default Login; diff --git a/website/src/components/signup.js b/website/src/components/signup.js new file mode 100644 index 0000000000..5e88c6596f --- /dev/null +++ b/website/src/components/signup.js @@ -0,0 +1,221 @@ +import React, {Component, PropTypes} from 'react'; +import * as session from '../session'; +import {trackEvent} from '../analytics'; + +class SignUp extends Component { + state = { + step: 1, + agreeToTerms: false, + agreeToEmails: true, + loading: false, + firstName: '', + lastName: '', + email: '', + password: '', + passwordConfirm: '', + error: '', + }; + + _handleUpdateInput = e => { + const value = e.target.type === 'checkbox' ? e.target.checked : e.target.value; + this.setState({[e.target.name]: value, error: ''}); + }; + + _handleUpdatePasswordConfirm = e => { + this._handleUpdateInput(e); + + if (this.state.password !== e.target.value) { + e.target.setCustomValidity('Passwords did not match'); + } else { + e.target.setCustomValidity(''); + } + }; + + _handleBack = e => { + e.preventDefault(); + this.setState({step: this.state.step - 1}); + }; + + _handleSubmit = async e => { + e.preventDefault(); + + if (this.state.step < 2) { + this.setState({step: this.state.step + 1}); + return; + } + + if (!this.state.agreeToTerms) { + alert('Please verify that you agree to the terms of service'); + return; + } + + this.setState({loading: true}); + + try { + await session.signupAndLogin( + this.state.firstName, + this.state.lastName, + this.state.email, + this.state.password, + this.state.agreeToEmails, + ); + + const nextUrl = localStorage.getItem('login.next') || '/app/account/'; + localStorage.removeItem('login.next'); + + window.location = nextUrl; + trackEvent('Account', 'Signup Success'); + } catch (err) { + console.error('Failed to sign up', err); + this.setState({error: err.message, loading: false}); + trackEvent('Account', 'Signup Error'); + } + }; + + renderStep1 () { + const {error, loading} = this.state; + return ( +
+
+
+ +
+
+ +
+
+
+ +
+
+ +
+ {error ?
** {error}
: null} +
+
+ or, Log In +
+
+ {loading ? + : + + } +
+
+
+ ) + } + + renderStep2 () { + const {error, loading, agreeToTerms, agreeToEmails} = this.state; + return ( +
+
+

+ Keep your password safe because it cannot be recovered. +
+ Read More about + how your password is used to encrypt your data. +

+
+
+ +
+
+ +
+
+ +
+ {error ? ** {error} : null} +
+
+ < Back +
+
+ {loading ? + : + + } +
+
+
+ ) + } + + render () { + const {step} = this.state; + + let inner; + if (step === 1) { + inner = this.renderStep1(); + } else if (step === 2) { + inner = this.renderStep2(); + } + + return ( +
+ {inner} +
+ +
+ ) + } +} + +SignUp.propTypes = {}; + +export default SignUp; diff --git a/website/src/components/subscribe.js b/website/src/components/subscribe.js new file mode 100644 index 0000000000..e8a73871d7 --- /dev/null +++ b/website/src/components/subscribe.js @@ -0,0 +1,426 @@ +import React, {Component, PropTypes} from 'react'; + +import * as session from '../session'; +import {trackEvent} from '../analytics'; + +const planTypeTeam = 'team'; +const planTypePlus = 'plus'; +const planCycleMonthly = 'monthly'; +const planCycleYearly = 'yearly'; +const minTeamSize = 2; +const pricePerMember = 8; + +const planIdMap = { + 'plus-monthly-1': [planTypePlus, planCycleMonthly, 1], + 'plus-yearly-1': [planTypePlus, planCycleYearly, 1], + 'team-monthly-1': [planTypeTeam, planCycleMonthly, 5], + 'team-yearly-1': [planTypeTeam, planCycleYearly, 5], +}; + +class Subscribe extends Component { + constructor (props) { + super(props); + + const {billingDetails, whoami} = props; + + const quantity = Math.max(minTeamSize, billingDetails ? billingDetails.subQuantity : 5); + + const planDescription = window.location.hash === '#teams' ? + planIdMap['team-monthly-1'] : planIdMap[whoami.planId]; + + const fullName = `${whoami.firstName} ${whoami.lastName}`.trim(); + + this.state = { + loading: false, + planType: planDescription ? planDescription[0] : planTypePlus, + planCycle: planDescription ? planDescription[1] : planCycleMonthly, + quantity: quantity || 5, + useExistingBilling: billingDetails && billingDetails.hasCard, + fullName: fullName, + cardNumber: '', + expireMonth: '01', + expireYear: '2018', + cvc: '', + zip: '', + error: '', + }; + } + + _handleCardNumberChange = e => { + // Using timeout or else target.value will not have been updated yet + const value = e.target.value.trim(); + if (!value) { + return; + } + + const cardType = Stripe.card.cardType(value); + const lastChar = value[e.target.value.length - 1]; + const num = value.replace(/[^0-9]*/g, ''); + let newNum = ''; + + if (cardType.match(/american express/i)) { + // 1111 222222 33333 + const g1 = num.slice(0, 4); + const g2 = num.slice(4, 10); + const g3 = num.slice(10, 15); + + newNum = g1; + newNum += g2 ? ` ${g2}` : ''; + newNum += g3 ? ` ${g3}` : ''; + } else if (cardType.match(/diners club/i)) { + // 1111 2222 3333 44 + const g1 = num.slice(0, 4); + const g2 = num.slice(4, 8); + const g3 = num.slice(8, 12); + const g4 = num.slice(12, 14); + + newNum = g1; + newNum += g2 ? ` ${g2}` : ''; + newNum += g3 ? ` ${g3}` : ''; + newNum += g4 ? ` ${g4}` : ''; + } else { + // 1111 2222 3333 4444 + const g1 = num.slice(0, 4); + const g2 = num.slice(4, 8); + const g3 = num.slice(8, 12); + const g4 = num.slice(12, 16); + + newNum = g1; + newNum += g2 ? ` ${g2}` : ''; + newNum += g3 ? ` ${g3}` : ''; + newNum += g4 ? ` ${g4}` : ''; + } + + // Handle trailing dash so we can add and delete dashes properly + if (lastChar === ' ') { + newNum += ' '; + } + + // this.setState({cardType: cardType === 'Unknown' ? '' : cardType}); + if (cardType.toLowerCase() !== 'unknown') { + this.setState({cardType}); + } else { + this.setState({cardType: ''}); + } + + // Only update number if it changed from the user's original to prevent cursor jump + if (newNum !== value) { + e.target.value = newNum; + } + + if (Stripe.card.validateCardNumber(newNum)) { + e.target.setCustomValidity(''); + } else { + e.target.setCustomValidity('Invalid card number'); + } + + this._handleUpdateInput(e); + }; + + _handleUpdateInput = e => { + const value = e.target.type === 'checkbox' ? + e.target.checked : + e.target.value; + + this.setState({[e.target.name]: value, error: ''}); + }; + + _handleSubmit = async e => { + e.preventDefault(); + + this.setState({loading: true}); + + const params = { + name: this.state.fullName, + number: this.state.cardNumber.replace(/ /g, ''), + cvc: this.state.cvc, + exp_month: parseInt(this.state.expireMonth, 10), + exp_year: parseInt(this.state.expireYear, 10), + }; + + if (this.state.zip) { + params['address_zip'] = this.state.zip + } + + const teamSize = Math.max(minTeamSize, this.state.quantity); + const quantity = this.state.planType === planTypePlus ? 1 : teamSize; + const planId = `${this.state.planType}-${this.state.planCycle}-1`; + + const finishBilling = async tokenId => { + try { + await session.subscribe(tokenId, planId, quantity); + window.location = '/app/account/'; + } catch (err) { + this.setState({error: err.message}); + } + }; + + if (this.state.useExistingBilling) { + await finishBilling(); + trackEvent('Subscribe', 'Existing Billing Success', `${planId} x ${quantity}`); + } else { + Stripe.setPublishableKey(process.env.STRIPE_PUB_KEY); + Stripe.card.createToken(params, async (status, response) => { + if (status === 200) { + await finishBilling(response.id); + trackEvent('Subscribe', 'New Billing Success', `${planId} x ${quantity}`); + } else { + this.setState({error: 'Payment failed unexpectedly. Please try again.'}); + trackEvent('Subscribe', 'Add Card Error', `${planId} x ${quantity}`); + } + + this.setState({loading: false}); + }); + } + }; + + _calculatePrice (planType, planCycle, quantity) { + quantity = Math.max(quantity, minTeamSize); + const priceIndex = planCycle === planCycleMonthly ? 0 : 1; + const price = planType === planTypePlus ? + [5, 50] : + [pricePerMember * quantity, pricePerMember * 10 * quantity]; + + return price[priceIndex]; + } + + _getPlanDescription (planType, planCycle, quantity) { + const cycle = planCycle === planCycleMonthly ? 'month' : 'year'; + const price = this._calculatePrice(planType, planCycle, quantity); + + return `$${price} / ${cycle}`; + } + + renderBillingNotice () { + const {whoami, billingDetails} = this.props; + + const trialEndDate = new Date(whoami.trialEnd * 1000); + const trialEndMillis = trialEndDate.getTime() - Date.now(); + const trialDays = Math.ceil(trialEndMillis / 1000 / 60 / 60 / 24); + + if (!billingDetails && trialDays > 0) { + return ( +

+ You still have {trialDays} day{trialDays === 1 ? '' : 's'} left + on your free trial +

+ ) + } + + return null + } + + render () { + const { + loading, + error, + cardType, + planType, + planCycle, + expireMonth, + expireYear, + quantity, + useExistingBilling, + fullName, + } = this.state; + + const {billingDetails} = this.props; + + return ( +
+ {this.renderBillingNotice()} +
+ +
+ {planType === planTypeTeam ? ( +
+ +
+ ) : null} +
+
+ +
+
+ +
+
+
+

Billing Information

+ {billingDetails && billingDetails.hasCard ? ( +
+ +
+ ) : null} + + {useExistingBilling ? ( +
+ ) : ( +
+
+ +
+
+ +
+
+
+ +
+ + {" "} + +
+
+ +
+
+ +
+ +
+
+ )} + + {error ? ** {error} : null} + +
+ {loading ? + : + + } +
+ +
+

+ Payments secured by Stripe +

+
+ ) + } +} + +Subscribe.propTypes = { + whoami: PropTypes.shape({ + planId: PropTypes.string.isRequired, + }).isRequired, + billingDetails: PropTypes.shape({ + subQuantity: PropTypes.number.isRequired, + hasCard: PropTypes.bool.isRequired, + lastFour: PropTypes.string.isRequired, + }) +}; + +export default Subscribe; diff --git a/website/src/components/teams/add-account-form.js b/website/src/components/teams/add-account-form.js new file mode 100644 index 0000000000..2a6a7244f3 --- /dev/null +++ b/website/src/components/teams/add-account-form.js @@ -0,0 +1,85 @@ +import React, {Component, PropTypes} from 'react'; +import * as session from '../../session'; +import {trackEvent} from '../../analytics'; + +class AddTeamAccountForm extends Component { + constructor (props) { + super(props); + + this.state = { + password: '', + loading: false, + newMemberEmail: '', + error: '', + }; + } + + _handleUpdateInput = e => { + this.setState({[e.target.name]: e.target.value, error: ''}); + }; + + _handleSubmit = async e => { + e.preventDefault(); + + const {teamId, onAdd} = this.props; + const {newMemberEmail} = this.state; + + this.setState({loading: true}); + + try { + await session.inviteToTeam(teamId, newMemberEmail, this.state.password); + await onAdd(); + this.setState({loading: false}); + trackEvent('Teams', 'Add Member Success'); + } catch (err) { + this.setState({error: err.message, loading: false}); + trackEvent('Teams', 'Add Member Error'); + } + }; + + render () { + const {membersRemaining} = this.props; + const {loading, error} = this.state; + return ( +
+ {error ? ({error}) : null} +
+
+ +
+
+ +
+
+ {loading ? + : + + } +
+
+
+ ); + } +} + +AddTeamAccountForm.propTypes = { + onAdd: PropTypes.func.isRequired, + teamId: PropTypes.string.isRequired, + membersRemaining: PropTypes.number.isRequired, +}; + +export default AddTeamAccountForm; diff --git a/website/src/components/teams/index.js b/website/src/components/teams/index.js new file mode 100644 index 0000000000..2d2c2e72db --- /dev/null +++ b/website/src/components/teams/index.js @@ -0,0 +1,190 @@ +import React, {Component, PropTypes} from 'react'; +import LeaveTeamLink from './leave-link'; +import RemoveTeamAccountLink from './remove-account-link'; +import UpdateTeamNameForm from './update-name-form'; +import AddAccountToTeamForm from './add-account-form'; + +class Teams extends Component { + state = { + loading: false, + error: '', + }; + + _getOwnedTeam () { + const {teams, whoami} = this.props; + return teams.find(t => t.ownerAccountId === whoami.accountId); + }; + + renderEditTeam () { + const {whoami, billingDetails} = this.props; + const ownedTeam = this._getOwnedTeam(); + + let membersRemaining = 0; + + if (billingDetails && ownedTeam) { + membersRemaining = billingDetails.subQuantity - ownedTeam.accounts.length; + } else if (whoami.isTrialing && ownedTeam) { + membersRemaining = 5 - ownedTeam.accounts.length; + } + + let inner = null; + if (!whoami.isTrialing && !whoami.canManageTeams) { + inner = ( +
+

Manage who is on your team.

+

+ Upgrade to Teams to manage your own team +

+ + Upgrade to Teams + +

+
+ ) + } else if (ownedTeam) { + const {handleReload} = this.props; + + // Sort the accounts to put the user first. NOTE: We're making a copy since + // sort modifies the original. + const accounts = [...ownedTeam.accounts].sort((a, b) => + a.id === whoami.accountId ? -1 : 1 + ); + + inner = ( +
+

Manage who is on {ownedTeam.name}.

+ + +
+ +
+
+ ) + } else { + // This should never happen... + inner = ( +

+ Uh oh! Your account does not have a default team. Please + contact support@insomnia.rest +

+ ) + } + + return ( +
+

Your Team

+ {inner} +
+ ) + } + + renderTeams () { + const {teams, whoami} = this.props; + + return ( +
+

Teams You're On

+

+ These are the teams you've been invited to. +

+ {teams.length ? ( +
    + {teams.map(team => ( +
  • + {team.name} + {" "} + {team.ownerAccountId === whoami.accountId ? ( + (your team) + ) : ( + + leave + + )} +
  • + ))} +
+ ) : ( +

+ You are not on any teams yet. +

+ )} +
+ ) + } + + render () { + const {loading} = this.state; + + if (loading) { + return
Loading...
+ } + return ( +
+ {this.renderEditTeam()} +
+ {this.renderTeams()} +
+ ) + } +} + +Teams.propTypes = { + handleReload: PropTypes.func.isRequired, + whoami: PropTypes.shape({ + accountId: PropTypes.string.isRequired, + firstName: PropTypes.string.isRequired, + lastName: PropTypes.string.isRequired, + email: PropTypes.string.isRequired, + canManageTeams: PropTypes.bool.isRequired, + }).isRequired, + billingDetails: PropTypes.shape({ + subQuantity: PropTypes.number.isRequired, + }), + teams: PropTypes.arrayOf(PropTypes.shape({ + id: PropTypes.string.isRequired, + ownerAccountId: PropTypes.string.isRequired, + accounts: PropTypes.arrayOf(PropTypes.shape({ + firstName: PropTypes.string.isRequired, + lastName: PropTypes.string.isRequired, + email: PropTypes.string.isRequired, + id: PropTypes.string.isRequired, + })).isRequired, + })).isRequired, +}; + +export default Teams; diff --git a/website/src/components/teams/leave-link.js b/website/src/components/teams/leave-link.js new file mode 100644 index 0000000000..0521ffcb9a --- /dev/null +++ b/website/src/components/teams/leave-link.js @@ -0,0 +1,49 @@ +import React, {Component, PropTypes} from 'react'; +import * as session from '../../session'; +import {trackEvent} from '../../analytics'; + +class LeaveTeamLink extends Component { + state = { + loading: false, + }; + + _handleClick = async e => { + e.preventDefault(); + + const {teamName, teamId, onLeave} = this.props; + + if (!confirm(`Are you sure you want to leave ${teamName}?`)) { + return; + } + + this.setState({loading: true}); + + try { + await session.leaveTeam(teamId); + await onLeave(); + trackEvent('Teams', 'Leave Success'); + } catch (err) { + alert(`Failed to leave team: ${err.message}`); + this.setState({loading: false}); + trackEvent('Teams', 'Leave Error'); + } + }; + + render () { + const {children, className} = this.props; + const {loading} = this.state; + return ( + + {loading ? 'leaving...' : children} + + ); + } +} + +LeaveTeamLink.propTypes = { + onLeave: PropTypes.func.isRequired, + teamId: PropTypes.string.isRequired, + teamName: PropTypes.string.isRequired, +}; + +export default LeaveTeamLink; diff --git a/website/src/components/teams/remove-account-link.js b/website/src/components/teams/remove-account-link.js new file mode 100644 index 0000000000..d30bad1801 --- /dev/null +++ b/website/src/components/teams/remove-account-link.js @@ -0,0 +1,51 @@ +import React, {Component, PropTypes} from 'react'; +import * as session from '../../session'; +import {trackEvent} from '../../analytics'; + +class RemoveAccountLink extends Component { + state = { + loading: false + }; + + _handleClick = async e => { + e.preventDefault(); + + const {teamName, teamId, accountName, accountId, onRemove} = this.props; + + if (!confirm(`Are you sure you want to remove ${accountName} from ${teamName}?`)) { + return; + } + + this.setState({loading: true}); + + try { + await session.removeFromTeam(teamId, accountId); + await onRemove(); + trackEvent('Teams', 'Remove Member Success'); + } catch (err) { + alert(`Failed to remove from team: ${err.message}`); + this.setState({loading: false}); + trackEvent('Teams', 'Remove Member Error'); + } + }; + + render () { + const {children, className} = this.props; + const {loading} = this.state; + return ( + + {loading ? 'removing...' : children} + + ); + } +} + +RemoveAccountLink.propTypes = { + onRemove: PropTypes.func.isRequired, + teamId: PropTypes.string.isRequired, + teamName: PropTypes.string.isRequired, + accountId: PropTypes.string.isRequired, + accountName: PropTypes.string.isRequired, +}; + +export default RemoveAccountLink; diff --git a/website/src/components/teams/update-name-form.js b/website/src/components/teams/update-name-form.js new file mode 100644 index 0000000000..50345b7458 --- /dev/null +++ b/website/src/components/teams/update-name-form.js @@ -0,0 +1,76 @@ +import React, {Component, PropTypes} from 'react'; +import * as session from '../../session'; +import {trackEvent} from '../../analytics'; + +class UpdateTeamNameForm extends Component { + constructor (props) { + super(props); + + this.state = { + loading: false, + teamName: props.teamName, + error: '', + }; + } + + _handleUpdateInput = e => { + this.setState({[e.target.name]: e.target.value, error: ''}); + }; + + _handleSubmit = async e => { + e.preventDefault(); + + const {teamId, onUpdate} = this.props; + const {teamName} = this.state; + + this.setState({loading: true}); + + try { + await session.changeTeamName(teamId, teamName); + await onUpdate(); + trackEvent('Teams', 'Update Name Success'); + } catch (err) { + alert(`Failed to leave team: ${err.message}`); + trackEvent('Teams', 'Update Name Error'); + } + + this.setState({loading: false}); + }; + + render () { + const {teamName} = this.props; + const {loading, error} = this.state; + return ( +
+
+
+ +
+ + {error ? ({error}) : null} + +
+ {loading ? + : + } +
+
+
+ ); + } +} + +UpdateTeamNameForm.propTypes = { + onUpdate: PropTypes.func.isRequired, + teamId: PropTypes.string.isRequired, + teamName: PropTypes.string.isRequired, +}; + +export default UpdateTeamNameForm; diff --git a/website/src/crypt.js b/website/src/crypt.js new file mode 100644 index 0000000000..88c3ca2c63 --- /dev/null +++ b/website/src/crypt.js @@ -0,0 +1,361 @@ +import HKDF from 'hkdf'; +import srp from 'srp-js'; +import forge from 'node-forge'; + +const DEFAULT_BYTE_LENGTH = 32; +const DEFAULT_PBKDF2_ITERATIONS = 1E5; // 100,000 + +/** + * Generate hex signing key used for AES encryption + * + * @param pass + * @param email + * @param salt + * @returns {Promise} + */ +export async function deriveKey (pass, email, salt) { + const combinedSalt = await _hkdfSalt(salt, email); + return _pbkdf2Passphrase(pass, combinedSalt); +} + +/** + * Encrypt with RSA256 public key + * + * @param publicKeyJWK + * @param plaintext + * @return String + */ +export function encryptRSAWithJWK (publicKeyJWK, plaintext) { + if (publicKeyJWK.alg !== 'RSA-OAEP-256') { + throw new Error('Public key algorithm was not RSA-OAEP-256'); + } else if (publicKeyJWK.kty !== 'RSA') { + throw new Error('Public key type was not RSA'); + } else if (!publicKeyJWK.key_ops.find(o => o === 'encrypt')) { + throw new Error('Public key does not have "encrypt" op'); + } + + const encodedPlaintext = encodeURIComponent(plaintext); + + const n = _b64UrlToBigInt(publicKeyJWK.n); + const e = _b64UrlToBigInt(publicKeyJWK.e); + const publicKey = forge.rsa.setPublicKey(n, e); + + const encrypted = publicKey.encrypt(encodedPlaintext, 'RSA-OAEP', { + md: forge.md.sha256.create() + }); + return forge.util.bytesToHex(encrypted); +} + +export function decryptRSAWithJWK (privateJWK, encryptedBlob) { + const n = _b64UrlToBigInt(privateJWK.n); + const e = _b64UrlToBigInt(privateJWK.e); + const d = _b64UrlToBigInt(privateJWK.d); + const p = _b64UrlToBigInt(privateJWK.p); + const q = _b64UrlToBigInt(privateJWK.q); + const dP = _b64UrlToBigInt(privateJWK.dp); + const dQ = _b64UrlToBigInt(privateJWK.dq); + const qInv = _b64UrlToBigInt(privateJWK.qi); + + const privateKey = forge.rsa.setPrivateKey(n, e, d, p, q, dP, dQ, qInv); + const bytes = forge.util.hexToBytes(encryptedBlob); + const decrypted = privateKey.decrypt(bytes, 'RSA-OAEP', { + md: forge.md.sha256.create() + }); + + return decodeURIComponent(decrypted); +} + +export function recryptRSAWithJWK (privateJWK, publicJWK, encryptedBlob) { + const decrypted = decryptRSAWithJWK(privateJWK, encryptedBlob); + return encryptRSAWithJWK(publicJWK, decrypted); +} + +/** + * Encrypt data using symmetric key + * + * @param jwkOrKey JWK or string representing symmetric key + * @param plaintext string of data to encrypt + * @param additionalData any additional public data to attach + * @returns {{iv, t, d, ad}} + */ +export function encryptAES (jwkOrKey, plaintext, additionalData = '') { + // TODO: Add assertion checks for JWK + const rawKey = typeof jwkOrKey === 'string' ? jwkOrKey : _b64UrlToHex(jwkOrKey.k); + const key = forge.util.hexToBytes(rawKey); + + const iv = forge.random.getBytesSync(12); + const cipher = forge.cipher.createCipher('AES-GCM', key); + + // Plaintext could contain weird unicode, so we have to encode that + const encodedPlaintext = encodeURIComponent(plaintext); + + cipher.start({additionalData, iv, tagLength: 128}); + cipher.update(forge.util.createBuffer(encodedPlaintext)); + cipher.finish(); + + return { + iv: forge.util.bytesToHex(iv), + t: forge.util.bytesToHex(cipher.mode.tag), + d: forge.util.bytesToHex(cipher.output), + ad: forge.util.bytesToHex(additionalData) + }; +} + + +/** + * Decrypt AES using a key + * + * @param jwkOrKey JWK or string representing symmetric key + * @param message + * @returns String + */ +export function decryptAES (jwkOrKey, message) { + // TODO: Add assertion checks for JWK + const rawKey = typeof jwkOrKey === 'string' ? jwkOrKey : _b64UrlToHex(jwkOrKey.k); + const key = forge.util.hexToBytes(rawKey); + + // ~~~~~~~~~~~~~~~~~~~~ // + // Decrypt with AES-GCM // + // ~~~~~~~~~~~~~~~~~~~~ // + + const decipher = forge.cipher.createDecipher('AES-GCM', key); + decipher.start({ + iv: forge.util.hexToBytes(message.iv), + tagLength: message.t.length * 4, + tag: forge.util.hexToBytes(message.t), + additionalData: forge.util.hexToBytes(message.ad) + }); + + decipher.update(forge.util.createBuffer(forge.util.hexToBytes(message.d))); + + if (decipher.finish()) { + return decodeURIComponent(decipher.output.toString()) + } else { + throw new Error('Failed to decrypt data') + } +} + +/** + * Decrypt and re-encrypt with new keys + * + * @param oldJwkOrKey + * @param newJwkOrKey + * @param message + * @returns {{iv, t, d, ad}} + */ +export function recryptAES (oldJwkOrKey, newJwkOrKey, message) { + const decrypted = decryptAES(oldJwkOrKey, message); + return encryptAES(newJwkOrKey, decrypted); +} + +/** + * Generate a random salt in hex + * + * @returns {string} + */ +export function getRandomHex (bytes = DEFAULT_BYTE_LENGTH) { + return forge.util.bytesToHex(forge.random.getBytesSync(bytes)); +} + +/** + * Generate a random account Id + * + * @returns {string} + */ +export function generateAccountId () { + return `act_${getRandomHex(DEFAULT_BYTE_LENGTH)}`; +} + +/** + * Generate a random key + * + * @returns {Promise} + */ +export function srpGenKey () { + return new Promise((resolve, reject) => { + srp.genKey((err, secret1Buffer) => { + if (err) { + reject(err); + } else { + resolve(secret1Buffer.toString('hex')) + } + }); + }) +} + +/** + * Generate a random AES256 key for use with symmetric encryption + */ +export async function generateAES256Key () { + const c = window.crypto; + const subtle = c ? c.subtle : null; + + if (subtle) { + console.log('-- Using Native AES Key Generation --'); + const key = await subtle.generateKey( + {name: 'AES-GCM', length: 256}, + true, + ['encrypt', 'decrypt'] + ); + return subtle.exportKey('jwk', key); + } else { + console.log('-- Using Falback Forge AES Key Generation --'); + const key = forge.util.bytesToHex(forge.random.getBytesSync(32)); + return { + kty: 'oct', + alg: 'A256GCM', + ext: true, + key_ops: ['encrypt', 'decrypt'], + k: _hexToB64Url(key), + }; + } +} + +/** + * Generate RSA keypair JWK with 2048 bits and exponent 0x10001 + * + * @returns Object + */ +export async function generateKeyPairJWK () { + // NOTE: Safari has crypto.webkitSubtle, but does not support RSA-OAEP-SHA256 + const subtle = window.crypto && window.crypto.subtle; + + if (subtle) { + console.log('-- Using Native RSA Generation --'); + + const pair = await subtle.generateKey({ + name: 'RSA-OAEP', + publicExponent: new Uint8Array([1, 0, 1]), + modulusLength: 2048, + hash: 'SHA-256' + }, + true, + ['encrypt', 'decrypt'] + ); + + return { + publicKey: await subtle.exportKey('jwk', pair.publicKey), + privateKey: await subtle.exportKey('jwk', pair.privateKey) + }; + } else { + console.log('-- Using Forge RSA Generation --'); + + const pair = forge.pki.rsa.generateKeyPair({bits: 2048, e: 0x10001}); + const privateKey = { + alg: 'RSA-OAEP-256', + kty: 'RSA', + key_ops: ['decrypt'], + ext: true, + d: _bigIntToB64Url(pair.privateKey.d), + dp: _bigIntToB64Url(pair.privateKey.dP), + dq: _bigIntToB64Url(pair.privateKey.dQ), + e: _bigIntToB64Url(pair.privateKey.e), + n: _bigIntToB64Url(pair.privateKey.n), + p: _bigIntToB64Url(pair.privateKey.p), + q: _bigIntToB64Url(pair.privateKey.q), + qi: _bigIntToB64Url(pair.privateKey.qInv) + }; + + const publicKey = { + alg: 'RSA-OAEP-256', + kty: 'RSA', + key_ops: ['encrypt'], + e: _bigIntToB64Url(pair.publicKey.e), + n: _bigIntToB64Url(pair.publicKey.n), + }; + + return {privateKey, publicKey}; + } +} + + +// ~~~~~~~~~~~~~~~~ // +// Helper Functions // +// ~~~~~~~~~~~~~~~~ // + +/** + * Combine email and raw salt into usable salt + * + * @param rawSalt + * @param rawEmail + * @returns {Promise} + */ +function _hkdfSalt (rawSalt, rawEmail) { + return new Promise(resolve => { + const hkdf = new HKDF('sha256', rawSalt, rawEmail); + hkdf.derive('', DEFAULT_BYTE_LENGTH, buffer => resolve(buffer.toString('hex'))); + }) +} + +/** + * Convert a JSBN BigInteger to a URL-safe version of base64 encoding. This + * should only be used for encoding JWKs + * + * @param n BigInteger + * @returns {string} + */ +function _bigIntToB64Url (n) { + return _hexToB64Url(n.toString(16)); +} + +function _hexToB64Url (h) { + const bytes = forge.util.hexToBytes(h); + return btoa(bytes) + .replace(/=/g, '') + .replace(/\+/g, '-') + .replace(/\//g, '_'); +} + +function _b64UrlToBigInt (s) { + return new forge.jsbn.BigInteger(_b64UrlToHex(s), 16); +} + +function _b64UrlToHex (s) { + const b64 = s.replace(/-/g, '+').replace(/_/g, '/'); + return forge.util.bytesToHex(atob(b64)); +} + +window.b64urltohex = _b64UrlToHex; +window.forge = forge; + +/** + * Derive key from password + * + * @param passphrase + * @param salt hex representation of salt + */ +async function _pbkdf2Passphrase (passphrase, salt) { + if (window.crypto && window.crypto.subtle) { + console.log('-- Using native PBKDF2 --'); + + const k = await window.crypto.subtle.importKey( + 'raw', + Buffer.from(passphrase, 'utf8'), + {name: 'PBKDF2'}, + false, + ['deriveBits'] + ); + + const algo = { + name: 'PBKDF2', + salt: new Buffer(salt, 'hex'), + iterations: DEFAULT_PBKDF2_ITERATIONS, + hash: 'SHA-256' + }; + + const derivedKeyRaw = await window.crypto.subtle.deriveBits(algo, k, DEFAULT_BYTE_LENGTH * 8); + return new Buffer(derivedKeyRaw).toString('hex'); + } else { + console.log('-- Using Forge PBKDF2 --'); + + const derivedKeyRaw = forge.pkcs5.pbkdf2( + passphrase, + forge.util.hexToBytes(salt), + DEFAULT_PBKDF2_ITERATIONS, + DEFAULT_BYTE_LENGTH, + forge.md.sha256.create() + ); + + return forge.util.bytesToHex(derivedKeyRaw); + } +} diff --git a/website/src/fetch.js b/website/src/fetch.js new file mode 100644 index 0000000000..67fc615df7 --- /dev/null +++ b/website/src/fetch.js @@ -0,0 +1,95 @@ +import 'whatwg-fetch'; +import {parse as urlParse} from 'url'; +import * as session from './session'; +import {version} from '../package.json'; + +let commandListeners = []; +export function onCommand (callback) { + console.log(`-- Added DB Listener -- `); + commandListeners.push(callback); +} + +export function offCommand (callback) { + console.log(`-- Removed DB Listener -- `); + commandListeners = commandListeners.filter(l => l !== callback); +} + +export function post (path, obj) { + return _fetch('POST', path, obj) +} + +export function patch (path, obj) { + return _fetch('PATCH', path, obj) +} + +export function get (path, sessionId = null) { + return _fetch('GET', path, null, sessionId) +} + +/** Send an HTTP DELETE request */ +export function del (path, sessionId = null) { + return _fetch('DELETE', path, null, sessionId) +} + +export function put (path, sessionId = null) { + return _fetch('PUT', path, null, sessionId) +} + +async function _fetch (method, path, json, sessionId = null) { + const config = { + method: method, + headers: new Headers() + }; + + // Set some client information + config.headers.set('X-Insomnia-Client', getClientString()); + + if (json) { + config.body = JSON.stringify(json, null, 2); + config.headers.set('Content-Type', 'application/json'); + } + + sessionId = sessionId || session.getCurrentSessionId(); + if (sessionId) { + config.headers.set('X-Session-Id', sessionId) + } + + const response = await fetch(_getUrl(path), config); + + const uri = response.headers.get('x-insomnia-command'); + uri && _notifyCommandListeners(uri); + + if (!response.ok) { + const err = new Error(`Response ${response.status} for ${path}`); + err.message = await response.text(); + err.statusCode = response.status; + throw err + } + + if (response.headers.get('content-type') === 'application/json') { + return response.json() + } else { + return response.text() + } +} + +function _getUrl (path) { + return `https://api.insomnia.rest${path}`; +} + +function _notifyCommandListeners (uri) { + const parsed = urlParse(uri, true); + + const command = `${parsed.hostname}${parsed.pathname}`; + const args = JSON.parse(JSON.stringify(parsed.query)); + + commandListeners.map(fn => fn(command, args)); +} + +function getClientString () { + return `${isDev() ? 'development': 'production'}::browser::${version}` +} + +function isDev () { + return process.env.NODE_ENV !== 'production'; +} diff --git a/website/src/index.js b/website/src/index.js new file mode 100644 index 0000000000..81c5f39272 --- /dev/null +++ b/website/src/index.js @@ -0,0 +1,7 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; + +import App from './components' + +const root = document.querySelector('#react-root'); +root && ReactDOM.render(, root); diff --git a/website/src/main.js b/website/src/main.js new file mode 100644 index 0000000000..1ffd9b1133 --- /dev/null +++ b/website/src/main.js @@ -0,0 +1,138 @@ +import * as session from './session'; + +(function () { + // Handle download links + const els = document.querySelectorAll('.__download-link'); + + let location = null; + let platform = null; + + if (navigator.platform.toLowerCase().indexOf('mac') !== -1) { + platform = 'Mac'; + location = '/download/#mac'; + } else if (navigator.platform.toLowerCase().indexOf('win') !== -1) { + platform = 'Windows'; + location = '/download/#windows'; + } else if (navigator.platform.toLowerCase().indexOf('linux') !== -1) { + platform = 'Linux'; + location = '/download/#ubuntu'; + } + + for (let i = 0; i < els.length; i++) { + const el = els[i]; + + if (platform) { + el.innerHTML = 'Download The App'; + } + + if (location) { + el.onclick = function (e) { + e.preventDefault(); + window.location = location; + }; + } + } +})(); + +(function () { + // Style changelog list items + const changelogListItems = document.querySelectorAll('.changelog__list-item'); + for (let i = 0; i < changelogListItems.length; i++) { + const item = changelogListItems[i]; + const match = item.innerHTML.match(/\(PR:(\d+)(:([^)]+))?\)/); + if (match) { + const prNumber = match[1]; + const user = match[3] || ''; + const userString = (user ? ' by ' + user : ''); + const anchor = document.createElement('a'); + anchor.target = '_blank'; + anchor.href = 'https://github.com/getinsomnia/insomnia/pull/' + prNumber; + anchor.innerHTML = '(#' + prNumber + userString + ')'; + item.innerHTML = item.innerHTML.replace(match[0], ''); + item.appendChild(anchor); + } + } +})(); + +(function () { + // Add linkable anchors + const headers = document.querySelectorAll([ + 'article h1[id]', + 'article h2[id]', + 'article h3[id]' + ].join(', ')); + for (let i = 0; i < headers.length; i++) { + const h = headers[i]; + h.style.cursor = 'pointer'; + + h.addEventListener('click', function (e) { + window.location.hash = '#' + e.target.getAttribute('id'); + }); + } +})(); + +(function () { + // Replace images with links to images + for (const img of document.querySelectorAll('article img')) { + const a = document.createElement('a'); + a.href = img.getAttribute('src'); + a.target = '_blank'; + if (!img.hasAttribute('title') && img.hasAttribute('alt')) { + img.setAttribute('title', img.getAttribute('alt')); + } + img.parentNode.replaceChild(a, img); + a.appendChild(img); + } +})(); + +!function (e, o, n) { + window.HSCW = o; + window.HS = n; + n.beacon = n.beacon || {}; + const t = n.beacon; + t.userConfig = {}; + t.readyQueue = []; + t.config = function (e) { + this.userConfig = e + }; + t.ready = function (e) { + this.readyQueue.push(e) + }; + o.config = { + docs: {enabled: !0, baseUrl: "//insomnia.helpscoutdocs.com/"}, + contact: {enabled: !0, formId: "a9f6c8aa-b1dd-11e7-b466-0ec85169275a"} + }; + const r = e.getElementsByTagName("script")[0], c = e.createElement("script"); + c.type = "text/javascript"; + c.async = !0; + c.src = "https://djtflbt20bdde.cloudfront.net/"; + r.parentNode.insertBefore(c, r); +}(document, window.HSCW || {}, window.HS || {}); + +HS.beacon.config({ + color: '#6e60cc', + icon: 'message', + attachment: true, + poweredBy: false, + showSubject: true, + showContactFields: true, + topics: [ + {val: 'app', label: 'Desktop App'}, + {val: 'bug report', label: 'Bug Report'}, + {val: 'account', label: 'Plus or Teams Account'}, + {val: 'question', label: 'Question'}, + {val: 'plugin', label: 'Plugin Development'}, + {val: 'other', label: 'Other'}, + ] +}); + +HS.beacon.ready(async () => { + const data = await session.whoami(); + HS.beacon.identify({ + name: `${data.firstName} ${data.lastName || ''}`.trim(), + email: data.email, + // Custom + 'Account ID': data.accountId, + 'Plan Name': data.planName + }); +}); diff --git a/website/src/session.js b/website/src/session.js new file mode 100644 index 0000000000..41f4ca5232 --- /dev/null +++ b/website/src/session.js @@ -0,0 +1,276 @@ +import srp from 'srp-js'; +import * as crypt from './crypt'; +import * as util from './fetch'; + +/** Create a new Account for the user */ +export async function signup (firstName, lastName, rawEmail, rawPassphrase, emailsOk = true, loginAfter = false) { + const email = _sanitizeEmail(rawEmail); + const passphrase = _sanitizePassphrase(rawPassphrase); + + // Get a fancy new Account object + const account = await _initAccount(firstName, lastName, email); + + // Generate some secrets for the user base'd on password + const authSecret = await crypt.deriveKey(passphrase, account.email, account.saltKey); + const derivedSymmetricKey = await crypt.deriveKey(passphrase, account.email, account.saltEnc); + + // Generate public/private keypair and symmetric key for Account + const {publicKey, privateKey} = await crypt.generateKeyPairJWK(); + const symmetricKeyJWK = await crypt.generateAES256Key(); + + // Compute the verifier key and add it to the Account object + account.verifier = srp.computeVerifier( + _getSrpParams(), + Buffer.from(account.saltAuth, 'hex'), + Buffer.from(account.email, 'utf8'), + Buffer.from(authSecret, 'hex') + ).toString('hex'); + + // Encode keypair + const encSymmetricJWKMessage = crypt.encryptAES(derivedSymmetricKey, JSON.stringify(symmetricKeyJWK)); + const encPrivateJWKMessage = crypt.encryptAES(symmetricKeyJWK, JSON.stringify(privateKey)); + + // Add keys to account + account.publicKey = JSON.stringify(publicKey); + account.encPrivateKey = JSON.stringify(encPrivateJWKMessage); + account.encSymmetricKey = JSON.stringify(encSymmetricJWKMessage); + account.emailNewsletter = emailsOk; + + const signupData = await util.post('/auth/signup', account); + + if (loginAfter) { + await login(rawEmail, rawPassphrase, authSecret); + } + + return signupData; +} + +export function signupAndLogin (firstName, lastName, rawEmail, rawPassphrase, emailsOk) { + return signup(firstName, lastName, rawEmail, rawPassphrase, emailsOk, true); +} + +/** Create a new session for the user */ +export async function login (rawEmail, rawPassphrase, authSecret = null) { + + // ~~~~~~~~~~~~~~~ // + // Sanitize Inputs // + // ~~~~~~~~~~~~~~~ // + + const email = _sanitizeEmail(rawEmail); + const passphrase = _sanitizePassphrase(rawPassphrase); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // + // Fetch Salt and Submit A To Server // + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // + + const {saltKey, saltAuth} = await getAuthSalts(email); + authSecret = authSecret || await crypt.deriveKey(passphrase, email, saltKey); + const secret1 = await crypt.srpGenKey(); + const c = new srp.Client( + _getSrpParams(), + Buffer.from(saltAuth, 'hex'), + Buffer.from(email, 'utf8'), + Buffer.from(authSecret, 'hex'), + Buffer.from(secret1, 'hex') + ); + const srpA = c.computeA().toString('hex'); + const {sessionStarterId, srpB} = await util.post('/auth/login-a', {srpA, email}); + + // ~~~~~~~~~~~~~~~~~~~~~ // + // Compute and Submit M1 // + // ~~~~~~~~~~~~~~~~~~~~~ // + + c.setB(new Buffer(srpB, 'hex')); + const srpM1 = c.computeM1().toString('hex'); + const {srpM2} = await util.post('/auth/login-m1', {srpM1, sessionStarterId,}); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~ // + // Verify Server Identity M2 // + // ~~~~~~~~~~~~~~~~~~~~~~~~~ // + + c.checkM2(new Buffer(srpM2, 'hex')); + + // ~~~~~~~~~~~~~~~~~~~~~~ // + // Initialize the Session // + // ~~~~~~~~~~~~~~~~~~~~~~ // + + // Compute K (used for session ID) + const sessionId = c.computeK().toString('hex'); + + // Store the information for later + localStorage.setItem('currentSessionId', sessionId); +} + +export function subscribe (tokenId, planId, quantity) { + return util.post('/api/billing/subscriptions', { + token: tokenId, + quantity: quantity, + plan: planId, + }); +} + +export function getCurrentSessionId () { + return localStorage.getItem('currentSessionId') || ''; +} + +export async function logout () { + try { + await util.post('/auth/logout'); + } catch (e) { + // Not a huge deal if this fails, but we don't want it to prevent the + // user from signing out. + console.warn('Failed to logout', e); + } + + localStorage.removeItem('currentSessionId'); +} + +export async function cancelAccount () { + await util.del('/api/billing/subscriptions'); +} + +export async function whoami () { + return util.get('/auth/whoami'); +} + +export async function verify () { + return util.post('/auth/verify'); +} + +export async function billingDetails () { + try { + return await util.get('/api/billing/details'); + } catch (e) { + return null; + } +} + +export function getAuthSalts (email) { + return util.post('/auth/login-s', {email}) +} + +export async function changePasswordAndEmail (rawOldPassphrase, rawNewPassphrase, rawNewEmail) { + // Sanitize inputs + const oldPassphrase = _sanitizePassphrase(rawOldPassphrase); + const newPassphrase = _sanitizePassphrase(rawNewPassphrase); + const newEmail = _sanitizeEmail(rawNewEmail); + + // Fetch some things + const {email: oldEmail, saltEnc, encSymmetricKey} = await whoami(); + const {saltKey, saltAuth} = await getAuthSalts(oldEmail); + + // Generate some secrets for the user base'd on password + const oldSecret = await crypt.deriveKey(oldPassphrase, oldEmail, saltEnc); + const newSecret = await crypt.deriveKey(newPassphrase, newEmail, saltEnc); + const oldAuthSecret = await crypt.deriveKey(oldPassphrase, oldEmail, saltKey); + const newAuthSecret = await crypt.deriveKey(newPassphrase, newEmail, saltKey); + + // Compute the verifier key and add it to the Account object + const oldVerifier = srp.computeVerifier( + _getSrpParams(), + Buffer.from(saltAuth, 'hex'), + Buffer.from(oldEmail, 'utf8'), + Buffer.from(oldAuthSecret, 'hex') + ).toString('hex'); + + const newVerifier = srp.computeVerifier( + _getSrpParams(), + Buffer.from(saltAuth, 'hex'), + Buffer.from(newEmail, 'utf8'), + Buffer.from(newAuthSecret, 'hex') + ).toString('hex'); + + // Re-encrypt existing keys with new secret + const newEncSymmetricKeyJSON = crypt.recryptAES(oldSecret, newSecret, JSON.parse(encSymmetricKey)); + const newEncSymmetricKey = JSON.stringify(newEncSymmetricKeyJSON); + + return util.post(`/auth/change-password`, { + verifier: oldVerifier, + newEmail: newEmail, + encSymmetricKey: encSymmetricKey, + newVerifier, + newEncSymmetricKey, + }); +} + +export async function inviteToTeam (teamId, emailToInvite, rawPassphrase) { + // Ask the server what we need to do to invite the member + const inviteInstructions = await util.post(`/api/teams/${teamId}/invite-a`, {email: emailToInvite}); + const {accountPublicKey, resourceGroupKeys, accountId} = inviteInstructions; + + // Compute keys necessary to invite the member + const passPhrase = _sanitizePassphrase(rawPassphrase); + const {email, saltEnc, encPrivateKey, encSymmetricKey} = await whoami(); + const secret = await crypt.deriveKey(passPhrase, email, saltEnc); + let symmetricKey; + try { + symmetricKey = crypt.decryptAES(secret, JSON.parse(encSymmetricKey)); + } catch (err) { + console.log('Failed to decrypt key', err.stack); + throw new Error('Invalid password'); + } + const privateKey = crypt.decryptAES(JSON.parse(symmetricKey), JSON.parse(encPrivateKey)); + const privateKeyJWK = JSON.parse(privateKey); + const publicKeyJWK = JSON.parse(accountPublicKey); + + // Build the invite data request + const newResourceGroupKeys = {}; + for (const resourceGroupId of Object.keys(resourceGroupKeys)) { + newResourceGroupKeys[resourceGroupId] = crypt.recryptRSAWithJWK( + privateKeyJWK, + publicKeyJWK, + resourceGroupKeys[resourceGroupId] + ); + } + + // Actually invite the member + await util.post(`/api/teams/${teamId}/invite-b`, { + accountId, + resourceGroupKeys: newResourceGroupKeys, + }); +} + +export function leaveTeam (teamId) { + return util.del(`/api/teams/${teamId}/leave`); +} + +export function changeTeamName (teamId, name) { + return util.patch(`/api/teams/${teamId}`, {name}); +} + +export function removeFromTeam (teamId, accountId) { + return util.del(`/api/teams/${teamId}/accounts/${accountId}`); +} + +export function listTeams () { + return util.get('/api/teams'); +} + + +// ~~~~~~~~~~~~~~~~ // +// Helper Functions // +// ~~~~~~~~~~~~~~~~ // + +async function _initAccount (firstName, lastName, email) { + return { + email, + firstName, + lastName, + id: await crypt.generateAccountId(), + saltEnc: await crypt.getRandomHex(), + saltAuth: await crypt.getRandomHex(), + saltKey: await crypt.getRandomHex(), + }; +} + +function _getSrpParams () { + return srp.params[2048]; +} + +function _sanitizeEmail (email) { + return email.trim().toLowerCase(); +} + +function _sanitizePassphrase (passphrase) { + return passphrase.trim().normalize('NFKD'); +} diff --git a/website/webpack.config.babel.js b/website/webpack.config.babel.js new file mode 100644 index 0000000000..559119f86c --- /dev/null +++ b/website/webpack.config.babel.js @@ -0,0 +1,67 @@ +import webpack from 'webpack'; +import path from 'path'; + +const isDev = process.env.NODE_ENV !== 'production'; + +let outputFile; +let devtool; +let env; +let stripePubKey; +let extraPlugins; + +if (isDev) { + outputFile = `[name].min.js`; + devtool = 'source-map'; + env = 'development'; + stripePubKey = 'pk_test_MbOhGu5jCPvr7Jt4VC6oySdH'; + extraPlugins = []; +} else { + outputFile = `[name].min.js`; + devtool = 'source-map'; + env = 'production'; + stripePubKey = 'pk_live_lntbVSXY3v1RAytACIQJ5BBH'; + extraPlugins = [ + new webpack.optimize.UglifyJsPlugin({ + mangle: { + // Don't mangle BigInteger because node-srp asserts it's type by name + except: ['BigInteger'] + } + }) + ]; +} + +export default { + context: path.join(__dirname, './src'), + entry: { + app: './index.js', + main: './main.js' + }, + devtool, + output: { + path: path.resolve('./site/static/javascript/build'), + filename: outputFile, + libraryTarget: 'umd', + umdNamedDefine: true + }, + module: { + rules: [ + { + test: /\.json$/, + use: ['json-loader'] + }, + { + test: /\.js$/, + use: ['babel-loader'], + exclude: /(node_modules|bower_components)/ + } + ] + }, + plugins: [ + new webpack.optimize.ModuleConcatenationPlugin(), + new webpack.DefinePlugin({ + 'process.env.NODE_ENV': JSON.stringify(env), + 'process.env.STRIPE_PUB_KEY': JSON.stringify(stripePubKey), + }), + ...extraPlugins + ] +};