From c32090618e535eb48fb4dc377659ff97dae1a9ee Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Mon, 10 Dec 2018 16:34:53 +0100 Subject: merge default and fetched feature configs --- src/stores/FeaturesStore.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stores/FeaturesStore.js b/src/stores/FeaturesStore.js index 0adee6adf..eb2b21af3 100644 --- a/src/stores/FeaturesStore.js +++ b/src/stores/FeaturesStore.js @@ -37,7 +37,7 @@ export default class FeaturesStore extends Store { @computed get features() { if (this.stores.user.isLoggedIn) { - return this.featuresRequest.execute().result || DEFAULT_FEATURES_CONFIG; + return Object.assign({}, DEFAULT_FEATURES_CONFIG, this.featuresRequest.execute().result); } return DEFAULT_FEATURES_CONFIG; -- cgit v1.2.3-54-g00ecf From f9835b491c51b417fc69be755faf5c694d9a8448 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Mon, 10 Dec 2018 16:35:26 +0100 Subject: ignore intellij project files --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 192a261f0..245057c46 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.idea node_modules flow-typed out -- cgit v1.2.3-54-g00ecf From 4a537e890d95e8666985ce77df4c6327582332be Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Mon, 10 Dec 2018 17:15:37 +0100 Subject: basic setup for workspaces feature --- src/config.js | 1 + src/features/workspaces/api.js | 9 +++++++++ src/features/workspaces/index.js | 34 ++++++++++++++++++++++++++++++++++ src/features/workspaces/store.js | 29 +++++++++++++++++++++++++++++ src/stores/FeaturesStore.js | 2 ++ 5 files changed, 75 insertions(+) create mode 100644 src/features/workspaces/api.js create mode 100644 src/features/workspaces/index.js create mode 100644 src/features/workspaces/store.js diff --git a/src/config.js b/src/config.js index 789ddd1a0..d7a485b8a 100644 --- a/src/config.js +++ b/src/config.js @@ -37,6 +37,7 @@ export const DEFAULT_FEATURES_CONFIG = { }, isServiceProxyEnabled: false, isServiceProxyPremiumFeature: true, + isWorkspaceEnabled: true, }; export const DEFAULT_WINDOW_OPTIONS = { diff --git a/src/features/workspaces/api.js b/src/features/workspaces/api.js new file mode 100644 index 000000000..1ee2440fe --- /dev/null +++ b/src/features/workspaces/api.js @@ -0,0 +1,9 @@ +// TODO: use real server instead +const workspaces = [ + { id: 'workspace-1', name: 'Private' }, + { id: 'workspace-2', name: 'Office' }, +]; + +export default { + getUserWorkspaces: () => Promise.resolve(workspaces), +}; diff --git a/src/features/workspaces/index.js b/src/features/workspaces/index.js new file mode 100644 index 000000000..b7e1090e8 --- /dev/null +++ b/src/features/workspaces/index.js @@ -0,0 +1,34 @@ +import { observable, reaction } from 'mobx'; +import { merge } from 'lodash'; +import WorkspacesStore from './store'; +import api from './api'; + +const debug = require('debug')('Franz:feature:workspaces'); + +let store = null; +const defaultState = { workspaces: [] }; + +export const state = observable(defaultState); + +export default function initWorkspaces(stores, actions) { + const { features, user } = stores; + reaction( + () => features.features.isWorkspaceEnabled && user.isLoggedIn, + (isEnabled) => { + if (isEnabled) { + debug('Initializing `workspaces` feature'); + store = new WorkspacesStore(stores, api, actions, state); + store.initialize(); + } else if (store) { + debug('Disabling `workspaces` feature'); + store.teardown(); + store = null; + // Reset state to default + merge(state, defaultState); + } + }, + { + fireImmediately: true, + }, + ); +} diff --git a/src/features/workspaces/store.js b/src/features/workspaces/store.js new file mode 100644 index 000000000..4b4e729ed --- /dev/null +++ b/src/features/workspaces/store.js @@ -0,0 +1,29 @@ +import { observable, reaction } from 'mobx'; +import Store from '../../stores/lib/Store'; +import CachedRequest from '../../stores/lib/CachedRequest'; + +const debug = require('debug')('Franz:feature:workspaces'); + +export default class WorkspacesStore extends Store { + @observable allWorkspacesRequest = new CachedRequest(this.api, 'getUserWorkspaces'); + + constructor(stores, api, actions, state) { + super(stores, api, actions); + this.state = state; + } + + setup() { + debug('fetching user workspaces'); + this.allWorkspacesRequest.execute(); + + reaction( + () => this.allWorkspacesRequest.result, + workspaces => this.setWorkspaces(workspaces), + ); + } + + setWorkspaces = (workspaces) => { + debug('setting user workspaces', workspaces.slice()); + this.state.workspaces = workspaces; + }; +} diff --git a/src/stores/FeaturesStore.js b/src/stores/FeaturesStore.js index eb2b21af3..05a620f0b 100644 --- a/src/stores/FeaturesStore.js +++ b/src/stores/FeaturesStore.js @@ -7,6 +7,7 @@ import delayApp from '../features/delayApp'; import spellchecker from '../features/spellchecker'; import serviceProxy from '../features/serviceProxy'; import basicAuth from '../features/basicAuth'; +import workspaces from '../features/workspaces'; import { DEFAULT_FEATURES_CONFIG } from '../config'; @@ -56,5 +57,6 @@ export default class FeaturesStore extends Store { spellchecker(this.stores, this.actions); serviceProxy(this.stores, this.actions); basicAuth(this.stores, this.actions); + workspaces(this.stores, this.actions); } } -- cgit v1.2.3-54-g00ecf From fd04044be1fe7207e75ed7cb1ddb622cc9cc93bf Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Thu, 10 Jan 2019 13:43:23 +0100 Subject: define workspaces as premium feature --- src/config.js | 1 + src/features/workspaces/index.js | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/config.js b/src/config.js index d7a485b8a..d327185f0 100644 --- a/src/config.js +++ b/src/config.js @@ -37,6 +37,7 @@ export const DEFAULT_FEATURES_CONFIG = { }, isServiceProxyEnabled: false, isServiceProxyPremiumFeature: true, + isWorkspacePremiumFeature: true, isWorkspaceEnabled: true, }; diff --git a/src/features/workspaces/index.js b/src/features/workspaces/index.js index b7e1090e8..b4cfd3c2d 100644 --- a/src/features/workspaces/index.js +++ b/src/features/workspaces/index.js @@ -13,7 +13,11 @@ export const state = observable(defaultState); export default function initWorkspaces(stores, actions) { const { features, user } = stores; reaction( - () => features.features.isWorkspaceEnabled && user.isLoggedIn, + () => ( + features.features.isWorkspaceEnabled && ( + !features.features.isWorkspacePremiumFeature || user.data.isPremium + ) + ), (isEnabled) => { if (isEnabled) { debug('Initializing `workspaces` feature'); -- cgit v1.2.3-54-g00ecf From 912bca432ebf005a1680e9cc28bf7ee92cb0d36b Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Thu, 10 Jan 2019 13:43:45 +0100 Subject: add workspaces menu item in settings dialog --- src/components/settings/navigation/SettingsNavigation.js | 12 ++++++++++++ src/i18n/locales/en-US.json | 1 + 2 files changed, 13 insertions(+) diff --git a/src/components/settings/navigation/SettingsNavigation.js b/src/components/settings/navigation/SettingsNavigation.js index 953f702f8..4a80bb126 100644 --- a/src/components/settings/navigation/SettingsNavigation.js +++ b/src/components/settings/navigation/SettingsNavigation.js @@ -14,6 +14,10 @@ const messages = defineMessages({ id: 'settings.navigation.yourServices', defaultMessage: '!!!Your services', }, + yourWorkspaces: { + id: 'settings.navigation.yourWorkspaces', + defaultMessage: '!!!Your workspaces', + }, account: { id: 'settings.navigation.account', defaultMessage: '!!!Account', @@ -63,6 +67,14 @@ export default @inject('stores') @observer class SettingsNavigation extends Comp {' '} {serviceCount} + + {intl.formatMessage(messages.yourWorkspaces)} + {' '} + Date: Mon, 14 Jan 2019 17:11:27 +0100 Subject: basic setup of workspaces settings screen --- src/api/utils/auth.js | 24 ++++++++++ src/app.js | 2 + .../settings/workspaces/WorkspaceItem.js | 41 ++++++++++++++++ .../settings/workspaces/WorkspacesDashboard.js | 56 ++++++++++++++++++++++ src/containers/settings/WorkspacesScreen.js | 29 +++++++++++ src/environment.js | 1 + src/features/workspaces/api.js | 16 ++++--- src/features/workspaces/index.js | 10 ++-- src/features/workspaces/state.js | 12 +++++ src/features/workspaces/store.js | 15 ++++-- src/i18n/locales/en-US.json | 1 + src/models/Workspace.js | 25 ++++++++++ 12 files changed, 216 insertions(+), 16 deletions(-) create mode 100644 src/api/utils/auth.js create mode 100644 src/components/settings/workspaces/WorkspaceItem.js create mode 100644 src/components/settings/workspaces/WorkspacesDashboard.js create mode 100644 src/containers/settings/WorkspacesScreen.js create mode 100644 src/features/workspaces/state.js create mode 100644 src/models/Workspace.js diff --git a/src/api/utils/auth.js b/src/api/utils/auth.js new file mode 100644 index 000000000..47ac94c19 --- /dev/null +++ b/src/api/utils/auth.js @@ -0,0 +1,24 @@ +import { remote } from 'electron'; +import localStorage from 'mobx-localstorage'; + +const { app } = remote; + +export const prepareAuthRequest = (options, auth = true) => { + const request = Object.assign(options, { + mode: 'cors', + headers: Object.assign({ + 'Content-Type': 'application/json', + 'X-Franz-Source': 'desktop', + 'X-Franz-Version': app.getVersion(), + 'X-Franz-platform': process.platform, + 'X-Franz-Timezone-Offset': new Date().getTimezoneOffset(), + 'X-Franz-System-Locale': app.getLocale(), + }, options.headers), + }); + + if (auth) { + request.headers.Authorization = `Bearer ${localStorage.getItem('authToken')}`; + } + + return request; +}; diff --git a/src/app.js b/src/app.js index 6660feb46..ee1b12939 100644 --- a/src/app.js +++ b/src/app.js @@ -39,6 +39,7 @@ import PricingScreen from './containers/auth/PricingScreen'; import InviteScreen from './containers/auth/InviteScreen'; import AuthLayoutContainer from './containers/auth/AuthLayoutContainer'; import SubscriptionPopupScreen from './containers/subscription/SubscriptionPopupScreen'; +import WorkspacesScreen from './containers/settings/WorkspacesScreen'; // Add Polyfills smoothScroll.polyfill(); @@ -75,6 +76,7 @@ window.addEventListener('load', () => { + diff --git a/src/components/settings/workspaces/WorkspaceItem.js b/src/components/settings/workspaces/WorkspaceItem.js new file mode 100644 index 000000000..82a578ebd --- /dev/null +++ b/src/components/settings/workspaces/WorkspaceItem.js @@ -0,0 +1,41 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { defineMessages, intlShape } from 'react-intl'; +import { observer } from 'mobx-react'; +import classnames from 'classnames'; +import Workspace from '../../../models/Workspace'; + +// const messages = defineMessages({}); + +@observer +class WorkspaceItem extends Component { + static propTypes = { + workspace: PropTypes.instanceOf(Workspace).isRequired, + }; + + static contextTypes = { + intl: intlShape, + }; + + render() { + const { workspace } = this.props; + // const { intl } = this.context; + + return ( + + console.log('go to workspace', workspace.name)} + > + {workspace.name} + + + ); + } +} + +export default WorkspaceItem; diff --git a/src/components/settings/workspaces/WorkspacesDashboard.js b/src/components/settings/workspaces/WorkspacesDashboard.js new file mode 100644 index 000000000..830f32f08 --- /dev/null +++ b/src/components/settings/workspaces/WorkspacesDashboard.js @@ -0,0 +1,56 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; +import { defineMessages, intlShape } from 'react-intl'; + +import Loader from '../../ui/Loader'; +import WorkspaceItem from './WorkspaceItem'; + +const messages = defineMessages({ + headline: { + id: 'settings.workspaces.headline', + defaultMessage: '!!!Your workspaces', + }, + noServicesAdded: { + id: 'settings.workspaces.noWorkspacesAdded', + defaultMessage: '!!!You haven\'t added any workspaces yet.', + }, +}); + +@observer +class WorkspacesDashboard extends Component { + static propTypes = { + workspaces: MobxPropTypes.arrayOrObservableArray.isRequired, + isLoading: PropTypes.bool.isRequired, + }; + + static contextTypes = { + intl: intlShape, + }; + + render() { + const { workspaces, isLoading } = this.props; + const { intl } = this.context; + + return ( +
+
+

{intl.formatMessage(messages.headline)}

+
+
+ {isLoading ? ( + + ) : ( + + + {workspaces.map(workspace => )} + +
+ )} +
+
+ ); + } +} + +export default WorkspacesDashboard; diff --git a/src/containers/settings/WorkspacesScreen.js b/src/containers/settings/WorkspacesScreen.js new file mode 100644 index 000000000..e767fdfbe --- /dev/null +++ b/src/containers/settings/WorkspacesScreen.js @@ -0,0 +1,29 @@ +import React, { Component } from 'react'; +import { observer } from 'mobx-react'; +import { gaPage } from '../../lib/analytics'; +import { state } from '../../features/workspaces/state'; + +import WorkspacesDashboard from '../../components/settings/workspaces/WorkspacesDashboard'; +import ErrorBoundary from '../../components/util/ErrorBoundary'; + +@observer +class WorkspacesScreen extends Component { + static propTypes = {}; + + componentDidMount() { + gaPage('Settings/Workspaces Dashboard'); + } + + render() { + return ( + + + + ); + } +} + +export default WorkspacesScreen; diff --git a/src/environment.js b/src/environment.js index 73b1c7ab2..d67fd6adb 100644 --- a/src/environment.js +++ b/src/environment.js @@ -28,3 +28,4 @@ if (!isDevMode || (isDevMode && useLiveAPI)) { } export const API = api; +export const API_VERSION = 'v1'; diff --git a/src/features/workspaces/api.js b/src/features/workspaces/api.js index 1ee2440fe..97badbd01 100644 --- a/src/features/workspaces/api.js +++ b/src/features/workspaces/api.js @@ -1,9 +1,13 @@ -// TODO: use real server instead -const workspaces = [ - { id: 'workspace-1', name: 'Private' }, - { id: 'workspace-2', name: 'Office' }, -]; +import { prepareAuthRequest } from '../../api/utils/auth'; +import { API, API_VERSION } from '../../environment'; export default { - getUserWorkspaces: () => Promise.resolve(workspaces), + getUserWorkspaces: async () => { + const url = `${API}/${API_VERSION}/workspace`; + const request = await window.fetch(url, prepareAuthRequest({ + method: 'GET', + })); + if (!request.ok) throw request; + return request.json(); + }, }; diff --git a/src/features/workspaces/index.js b/src/features/workspaces/index.js index b4cfd3c2d..50ac3b414 100644 --- a/src/features/workspaces/index.js +++ b/src/features/workspaces/index.js @@ -1,14 +1,11 @@ -import { observable, reaction } from 'mobx'; -import { merge } from 'lodash'; +import { reaction } from 'mobx'; import WorkspacesStore from './store'; import api from './api'; +import { state, resetState } from './state'; const debug = require('debug')('Franz:feature:workspaces'); let store = null; -const defaultState = { workspaces: [] }; - -export const state = observable(defaultState); export default function initWorkspaces(stores, actions) { const { features, user } = stores; @@ -27,8 +24,7 @@ export default function initWorkspaces(stores, actions) { debug('Disabling `workspaces` feature'); store.teardown(); store = null; - // Reset state to default - merge(state, defaultState); + resetState(); // Reset state to default } }, { diff --git a/src/features/workspaces/state.js b/src/features/workspaces/state.js new file mode 100644 index 000000000..ed3fe9f00 --- /dev/null +++ b/src/features/workspaces/state.js @@ -0,0 +1,12 @@ +import { observable } from 'mobx'; + +const defaultState = { + isLoading: false, + workspaces: [], +}; + +export const state = observable(defaultState); + +export function resetState() { + Object.assign(state, defaultState); +} diff --git a/src/features/workspaces/store.js b/src/features/workspaces/store.js index 4b4e729ed..2b6d55cc7 100644 --- a/src/features/workspaces/store.js +++ b/src/features/workspaces/store.js @@ -1,6 +1,7 @@ import { observable, reaction } from 'mobx'; import Store from '../../stores/lib/Store'; import CachedRequest from '../../stores/lib/CachedRequest'; +import Workspace from '../../models/Workspace'; const debug = require('debug')('Franz:feature:workspaces'); @@ -18,12 +19,20 @@ export default class WorkspacesStore extends Store { reaction( () => this.allWorkspacesRequest.result, - workspaces => this.setWorkspaces(workspaces), + workspaces => this._setWorkspaces(workspaces), + ); + reaction( + () => this.allWorkspacesRequest.isExecuting, + isExecuting => this._setIsLoading(isExecuting), ); } - setWorkspaces = (workspaces) => { + _setWorkspaces = (workspaces) => { debug('setting user workspaces', workspaces.slice()); - this.state.workspaces = workspaces; + this.state.workspaces = workspaces.map(data => new Workspace(data)); + }; + + _setIsLoading = (isLoading) => { + this.state.isLoading = isLoading; }; } diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 1b869aff1..1652b5585 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -196,6 +196,7 @@ "settings.user.form.accountType.individual": "Individual", "settings.user.form.accountType.non-profit": "Non-Profit", "settings.user.form.accountType.company": "Company", + "settings.workspaces.headline": "Your workspaces", "subscription.type.free": "free", "subscription.type.month": "month", "subscription.type.year": "year", diff --git a/src/models/Workspace.js b/src/models/Workspace.js new file mode 100644 index 000000000..ede2710dc --- /dev/null +++ b/src/models/Workspace.js @@ -0,0 +1,25 @@ +import { observable } from 'mobx'; + +export default class Workspace { + id = null; + + @observable name = null; + + @observable order = null; + + @observable services = []; + + @observable userId = null; + + constructor(data) { + if (!data.id) { + throw Error('Workspace requires Id'); + } + + this.id = data.id; + this.name = data.name; + this.order = data.order; + this.services = data.services; + this.userId = data.userId; + } +} -- cgit v1.2.3-54-g00ecf From e3a9a93581c52e93ad984c39e80bf3e456797a0b Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Mon, 14 Jan 2019 17:12:22 +0100 Subject: fix eslint error --- src/components/settings/workspaces/WorkspaceItem.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/settings/workspaces/WorkspaceItem.js b/src/components/settings/workspaces/WorkspaceItem.js index 82a578ebd..49d67d429 100644 --- a/src/components/settings/workspaces/WorkspaceItem.js +++ b/src/components/settings/workspaces/WorkspaceItem.js @@ -1,6 +1,6 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; -import { defineMessages, intlShape } from 'react-intl'; +import { intlShape } from 'react-intl'; import { observer } from 'mobx-react'; import classnames from 'classnames'; import Workspace from '../../../models/Workspace'; -- cgit v1.2.3-54-g00ecf From 73fcc05f34d5e707df5abbc744f7fe3313efb226 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Mon, 14 Jan 2019 17:56:03 +0100 Subject: assign react key prop to workspace items --- src/components/settings/workspaces/WorkspacesDashboard.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components/settings/workspaces/WorkspacesDashboard.js b/src/components/settings/workspaces/WorkspacesDashboard.js index 830f32f08..c6378ac1e 100644 --- a/src/components/settings/workspaces/WorkspacesDashboard.js +++ b/src/components/settings/workspaces/WorkspacesDashboard.js @@ -43,7 +43,12 @@ class WorkspacesDashboard extends Component { ) : ( - {workspaces.map(workspace => )} + {workspaces.map(workspace => ( + + ))}
)} -- cgit v1.2.3-54-g00ecf From 981679154096517037c6732c9ecca1fe89733d00 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Mon, 14 Jan 2019 17:56:19 +0100 Subject: add styles for workspace table --- .../settings/workspaces/WorkspaceItem.js | 4 +- .../settings/workspaces/WorkspacesDashboard.js | 2 +- src/styles/main.scss | 1 + src/styles/workspace-table.scss | 53 ++++++++++++++++++++++ 4 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 src/styles/workspace-table.scss diff --git a/src/components/settings/workspaces/WorkspaceItem.js b/src/components/settings/workspaces/WorkspaceItem.js index 49d67d429..a71e6583d 100644 --- a/src/components/settings/workspaces/WorkspaceItem.js +++ b/src/components/settings/workspaces/WorkspaceItem.js @@ -24,11 +24,11 @@ class WorkspaceItem extends Component { return ( console.log('go to workspace', workspace.name)} > {workspace.name} diff --git a/src/components/settings/workspaces/WorkspacesDashboard.js b/src/components/settings/workspaces/WorkspacesDashboard.js index c6378ac1e..b286adc68 100644 --- a/src/components/settings/workspaces/WorkspacesDashboard.js +++ b/src/components/settings/workspaces/WorkspacesDashboard.js @@ -41,7 +41,7 @@ class WorkspacesDashboard extends Component { {isLoading ? ( ) : ( - +
{workspaces.map(workspace => ( Date: Mon, 14 Jan 2019 19:01:46 +0100 Subject: setup logic to display workspace edit page --- src/actions/index.js | 2 + src/actions/workspace.js | 8 ++++ src/app.js | 2 + .../settings/workspaces/WorkspaceItem.js | 5 +- .../settings/workspaces/WorkspacesDashboard.js | 4 +- src/containers/settings/EditWorkspaceScreen.js | 54 ++++++++++++++++++++++ src/containers/settings/WorkspacesScreen.js | 16 +++++-- src/features/workspaces/state.js | 1 + src/features/workspaces/store.js | 32 ++++++++++++- 9 files changed, 116 insertions(+), 8 deletions(-) create mode 100644 src/actions/workspace.js create mode 100644 src/containers/settings/EditWorkspaceScreen.js diff --git a/src/actions/index.js b/src/actions/index.js index 59acabb0b..a406af50a 100644 --- a/src/actions/index.js +++ b/src/actions/index.js @@ -11,6 +11,7 @@ import payment from './payment'; import news from './news'; import settings from './settings'; import requests from './requests'; +import workspace from './workspace'; const actions = Object.assign({}, { service, @@ -23,6 +24,7 @@ const actions = Object.assign({}, { news, settings, requests, + workspace, }); export default defineActions(actions, PropTypes.checkPropTypes); diff --git a/src/actions/workspace.js b/src/actions/workspace.js new file mode 100644 index 000000000..ab07a96c0 --- /dev/null +++ b/src/actions/workspace.js @@ -0,0 +1,8 @@ +import PropTypes from 'prop-types'; +import Workspace from '../models/Workspace'; + +export default { + edit: { + workspace: PropTypes.instanceOf(Workspace).isRequired, + }, +}; diff --git a/src/app.js b/src/app.js index ee1b12939..320ba679f 100644 --- a/src/app.js +++ b/src/app.js @@ -40,6 +40,7 @@ import InviteScreen from './containers/auth/InviteScreen'; import AuthLayoutContainer from './containers/auth/AuthLayoutContainer'; import SubscriptionPopupScreen from './containers/subscription/SubscriptionPopupScreen'; import WorkspacesScreen from './containers/settings/WorkspacesScreen'; +import EditWorkspaceScreen from './containers/settings/EditWorkspaceScreen'; // Add Polyfills smoothScroll.polyfill(); @@ -77,6 +78,7 @@ window.addEventListener('load', () => { + diff --git a/src/components/settings/workspaces/WorkspaceItem.js b/src/components/settings/workspaces/WorkspaceItem.js index a71e6583d..088d61433 100644 --- a/src/components/settings/workspaces/WorkspaceItem.js +++ b/src/components/settings/workspaces/WorkspaceItem.js @@ -11,6 +11,7 @@ import Workspace from '../../../models/Workspace'; class WorkspaceItem extends Component { static propTypes = { workspace: PropTypes.instanceOf(Workspace).isRequired, + onItemClick: PropTypes.func.isRequired, }; static contextTypes = { @@ -18,7 +19,7 @@ class WorkspaceItem extends Component { }; render() { - const { workspace } = this.props; + const { workspace, onItemClick } = this.props; // const { intl } = this.context; return ( @@ -29,7 +30,7 @@ class WorkspaceItem extends Component { > diff --git a/src/components/settings/workspaces/WorkspacesDashboard.js b/src/components/settings/workspaces/WorkspacesDashboard.js index b286adc68..a5bb18cb7 100644 --- a/src/components/settings/workspaces/WorkspacesDashboard.js +++ b/src/components/settings/workspaces/WorkspacesDashboard.js @@ -22,6 +22,7 @@ class WorkspacesDashboard extends Component { static propTypes = { workspaces: MobxPropTypes.arrayOrObservableArray.isRequired, isLoading: PropTypes.bool.isRequired, + onWorkspaceClick: PropTypes.func.isRequired, }; static contextTypes = { @@ -29,7 +30,7 @@ class WorkspacesDashboard extends Component { }; render() { - const { workspaces, isLoading } = this.props; + const { workspaces, isLoading, onWorkspaceClick } = this.props; const { intl } = this.context; return ( @@ -47,6 +48,7 @@ class WorkspacesDashboard extends Component { onWorkspaceClick(w)} /> ))} diff --git a/src/containers/settings/EditWorkspaceScreen.js b/src/containers/settings/EditWorkspaceScreen.js new file mode 100644 index 000000000..665b405bd --- /dev/null +++ b/src/containers/settings/EditWorkspaceScreen.js @@ -0,0 +1,54 @@ +import React, { Component } from 'react'; +import { inject, observer } from 'mobx-react'; +import { defineMessages, intlShape } from 'react-intl'; +import Form from '../../lib/Form'; +import ErrorBoundary from '../../components/util/ErrorBoundary'; +import { gaPage } from '../../lib/analytics'; +import { state } from '../../features/workspaces/state'; + +const messages = defineMessages({ + name: { + id: 'settings.workspace.form.name', + defaultMessage: '!!!Name', + }, +}); + +@inject('stores', 'actions') @observer +class EditWorkspaceScreen extends Component { + static contextTypes = { + intl: intlShape, + }; + + componentDidMount() { + gaPage('Settings/Workspace/Edit'); + } + + prepareForm(workspace) { + const { intl } = this.context; + const config = { + fields: { + name: { + label: intl.formatMessage(messages.name), + placeholder: intl.formatMessage(messages.name), + value: workspace.name, + }, + }, + }; + return new Form(config); + } + + render() { + const { workspaceBeingEdited } = state; + if (!workspaceBeingEdited) return null; + + // const form = this.prepareForm(workspaceBeingEdited); + + return ( + +
{workspaceBeingEdited.name}
+
+ ); + } +} + +export default EditWorkspaceScreen; diff --git a/src/containers/settings/WorkspacesScreen.js b/src/containers/settings/WorkspacesScreen.js index e767fdfbe..5e91f7673 100644 --- a/src/containers/settings/WorkspacesScreen.js +++ b/src/containers/settings/WorkspacesScreen.js @@ -1,25 +1,33 @@ import React, { Component } from 'react'; -import { observer } from 'mobx-react'; +import { inject, observer } from 'mobx-react'; +import PropTypes from 'prop-types'; import { gaPage } from '../../lib/analytics'; import { state } from '../../features/workspaces/state'; - import WorkspacesDashboard from '../../components/settings/workspaces/WorkspacesDashboard'; import ErrorBoundary from '../../components/util/ErrorBoundary'; -@observer +@inject('actions') @observer class WorkspacesScreen extends Component { - static propTypes = {}; + static propTypes = { + actions: PropTypes.shape({ + workspace: PropTypes.shape({ + edit: PropTypes.func.isRequired, + }), + }).isRequired, + }; componentDidMount() { gaPage('Settings/Workspaces Dashboard'); } render() { + const { workspace } = this.props.actions; return ( workspace.edit({ workspace: w })} /> ); diff --git a/src/features/workspaces/state.js b/src/features/workspaces/state.js index ed3fe9f00..f938c1470 100644 --- a/src/features/workspaces/state.js +++ b/src/features/workspaces/state.js @@ -3,6 +3,7 @@ import { observable } from 'mobx'; const defaultState = { isLoading: false, workspaces: [], + workspaceBeingEdited: null, }; export const state = observable(defaultState); diff --git a/src/features/workspaces/store.js b/src/features/workspaces/store.js index 2b6d55cc7..aab66708b 100644 --- a/src/features/workspaces/store.js +++ b/src/features/workspaces/store.js @@ -2,6 +2,7 @@ import { observable, reaction } from 'mobx'; import Store from '../../stores/lib/Store'; import CachedRequest from '../../stores/lib/CachedRequest'; import Workspace from '../../models/Workspace'; +import { matchRoute } from '../../helpers/routing-helpers'; const debug = require('debug')('Franz:feature:workspaces'); @@ -14,17 +15,40 @@ export default class WorkspacesStore extends Store { } setup() { - debug('fetching user workspaces'); + debug('fetching workspaces'); this.allWorkspacesRequest.execute(); + /** + * Update the state workspaces array when workspaces request has results. + */ reaction( () => this.allWorkspacesRequest.result, workspaces => this._setWorkspaces(workspaces), ); + /** + * Update the loading state when workspace request is executing. + */ reaction( () => this.allWorkspacesRequest.isExecuting, isExecuting => this._setIsLoading(isExecuting), ); + /** + * Update the state with the workspace to be edited when route matches. + */ + reaction( + () => ({ + pathname: this.stores.router.location.pathname, + workspaces: this.state.workspaces, + }), + ({ pathname }) => { + const match = matchRoute('/settings/workspaces/edit/:id', pathname); + if (match) { + this.state.workspaceBeingEdited = this._getWorkspaceById(match.id); + } + }, + ); + + this.actions.workspace.edit.listen(this._edit); } _setWorkspaces = (workspaces) => { @@ -35,4 +59,10 @@ export default class WorkspacesStore extends Store { _setIsLoading = (isLoading) => { this.state.isLoading = isLoading; }; + + _getWorkspaceById = id => this.state.workspaces.find(w => w.id === id); + + _edit = ({ workspace }) => { + this.stores.router.push(`/settings/workspaces/edit/${workspace.id}`); + } } -- cgit v1.2.3-54-g00ecf From 90399cc608b93cc185b0ee1c9b79e98cfafb8bc1 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Tue, 12 Feb 2019 14:59:58 +0100 Subject: consolidate workspace feature for further development --- src/actions/index.js | 2 +- src/actions/workspace.js | 8 --- src/app.js | 4 +- .../settings/workspaces/WorkspaceItem.js | 42 ------------ .../settings/workspaces/WorkspacesDashboard.js | 63 ------------------ src/containers/settings/EditWorkspaceScreen.js | 54 ---------------- src/containers/settings/WorkspacesScreen.js | 37 ----------- src/features/workspaces/actions.js | 8 +++ .../workspaces/components/WorkspaceItem.js | 42 ++++++++++++ .../workspaces/components/WorkspacesDashboard.js | 63 ++++++++++++++++++ .../workspaces/containers/EditWorkspaceScreen.js | 75 ++++++++++++++++++++++ .../workspaces/containers/WorkspacesScreen.js | 37 +++++++++++ src/features/workspaces/models/Workspace.js | 25 ++++++++ src/features/workspaces/store.js | 2 +- .../workspaces/styles/workspaces-table.scss | 53 +++++++++++++++ src/i18n/locales/de.json | 3 + src/i18n/locales/en-US.json | 1 + src/models/Workspace.js | 25 -------- src/styles/main.scss | 2 +- src/styles/workspace-table.scss | 53 --------------- 20 files changed, 312 insertions(+), 287 deletions(-) delete mode 100644 src/actions/workspace.js delete mode 100644 src/components/settings/workspaces/WorkspaceItem.js delete mode 100644 src/components/settings/workspaces/WorkspacesDashboard.js delete mode 100644 src/containers/settings/EditWorkspaceScreen.js delete mode 100644 src/containers/settings/WorkspacesScreen.js create mode 100644 src/features/workspaces/actions.js create mode 100644 src/features/workspaces/components/WorkspaceItem.js create mode 100644 src/features/workspaces/components/WorkspacesDashboard.js create mode 100644 src/features/workspaces/containers/EditWorkspaceScreen.js create mode 100644 src/features/workspaces/containers/WorkspacesScreen.js create mode 100644 src/features/workspaces/models/Workspace.js create mode 100644 src/features/workspaces/styles/workspaces-table.scss delete mode 100644 src/models/Workspace.js delete mode 100644 src/styles/workspace-table.scss diff --git a/src/actions/index.js b/src/actions/index.js index a406af50a..45e6da515 100644 --- a/src/actions/index.js +++ b/src/actions/index.js @@ -11,7 +11,7 @@ import payment from './payment'; import news from './news'; import settings from './settings'; import requests from './requests'; -import workspace from './workspace'; +import workspace from '../features/workspaces/actions'; const actions = Object.assign({}, { service, diff --git a/src/actions/workspace.js b/src/actions/workspace.js deleted file mode 100644 index ab07a96c0..000000000 --- a/src/actions/workspace.js +++ /dev/null @@ -1,8 +0,0 @@ -import PropTypes from 'prop-types'; -import Workspace from '../models/Workspace'; - -export default { - edit: { - workspace: PropTypes.instanceOf(Workspace).isRequired, - }, -}; diff --git a/src/app.js b/src/app.js index 320ba679f..d3b540f62 100644 --- a/src/app.js +++ b/src/app.js @@ -39,8 +39,8 @@ import PricingScreen from './containers/auth/PricingScreen'; import InviteScreen from './containers/auth/InviteScreen'; import AuthLayoutContainer from './containers/auth/AuthLayoutContainer'; import SubscriptionPopupScreen from './containers/subscription/SubscriptionPopupScreen'; -import WorkspacesScreen from './containers/settings/WorkspacesScreen'; -import EditWorkspaceScreen from './containers/settings/EditWorkspaceScreen'; +import WorkspacesScreen from './features/workspaces/containers/WorkspacesScreen'; +import EditWorkspaceScreen from './features/workspaces/containers/EditWorkspaceScreen'; // Add Polyfills smoothScroll.polyfill(); diff --git a/src/components/settings/workspaces/WorkspaceItem.js b/src/components/settings/workspaces/WorkspaceItem.js deleted file mode 100644 index 088d61433..000000000 --- a/src/components/settings/workspaces/WorkspaceItem.js +++ /dev/null @@ -1,42 +0,0 @@ -import React, { Component } from 'react'; -import PropTypes from 'prop-types'; -import { intlShape } from 'react-intl'; -import { observer } from 'mobx-react'; -import classnames from 'classnames'; -import Workspace from '../../../models/Workspace'; - -// const messages = defineMessages({}); - -@observer -class WorkspaceItem extends Component { - static propTypes = { - workspace: PropTypes.instanceOf(Workspace).isRequired, - onItemClick: PropTypes.func.isRequired, - }; - - static contextTypes = { - intl: intlShape, - }; - - render() { - const { workspace, onItemClick } = this.props; - // const { intl } = this.context; - - return ( - - - - ); - } -} - -export default WorkspaceItem; diff --git a/src/components/settings/workspaces/WorkspacesDashboard.js b/src/components/settings/workspaces/WorkspacesDashboard.js deleted file mode 100644 index a5bb18cb7..000000000 --- a/src/components/settings/workspaces/WorkspacesDashboard.js +++ /dev/null @@ -1,63 +0,0 @@ -import React, { Component } from 'react'; -import PropTypes from 'prop-types'; -import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; -import { defineMessages, intlShape } from 'react-intl'; - -import Loader from '../../ui/Loader'; -import WorkspaceItem from './WorkspaceItem'; - -const messages = defineMessages({ - headline: { - id: 'settings.workspaces.headline', - defaultMessage: '!!!Your workspaces', - }, - noServicesAdded: { - id: 'settings.workspaces.noWorkspacesAdded', - defaultMessage: '!!!You haven\'t added any workspaces yet.', - }, -}); - -@observer -class WorkspacesDashboard extends Component { - static propTypes = { - workspaces: MobxPropTypes.arrayOrObservableArray.isRequired, - isLoading: PropTypes.bool.isRequired, - onWorkspaceClick: PropTypes.func.isRequired, - }; - - static contextTypes = { - intl: intlShape, - }; - - render() { - const { workspaces, isLoading, onWorkspaceClick } = this.props; - const { intl } = this.context; - - return ( -
-
-

{intl.formatMessage(messages.headline)}

-
-
- {isLoading ? ( - - ) : ( -
console.log('go to workspace', workspace.name)} + onClick={() => onItemClick(workspace)} > {workspace.name}
onItemClick(workspace)} - > - {workspace.name} -
- - {workspaces.map(workspace => ( - onWorkspaceClick(w)} - /> - ))} - -
- )} - - - ); - } -} - -export default WorkspacesDashboard; diff --git a/src/containers/settings/EditWorkspaceScreen.js b/src/containers/settings/EditWorkspaceScreen.js deleted file mode 100644 index 665b405bd..000000000 --- a/src/containers/settings/EditWorkspaceScreen.js +++ /dev/null @@ -1,54 +0,0 @@ -import React, { Component } from 'react'; -import { inject, observer } from 'mobx-react'; -import { defineMessages, intlShape } from 'react-intl'; -import Form from '../../lib/Form'; -import ErrorBoundary from '../../components/util/ErrorBoundary'; -import { gaPage } from '../../lib/analytics'; -import { state } from '../../features/workspaces/state'; - -const messages = defineMessages({ - name: { - id: 'settings.workspace.form.name', - defaultMessage: '!!!Name', - }, -}); - -@inject('stores', 'actions') @observer -class EditWorkspaceScreen extends Component { - static contextTypes = { - intl: intlShape, - }; - - componentDidMount() { - gaPage('Settings/Workspace/Edit'); - } - - prepareForm(workspace) { - const { intl } = this.context; - const config = { - fields: { - name: { - label: intl.formatMessage(messages.name), - placeholder: intl.formatMessage(messages.name), - value: workspace.name, - }, - }, - }; - return new Form(config); - } - - render() { - const { workspaceBeingEdited } = state; - if (!workspaceBeingEdited) return null; - - // const form = this.prepareForm(workspaceBeingEdited); - - return ( - -
{workspaceBeingEdited.name}
-
- ); - } -} - -export default EditWorkspaceScreen; diff --git a/src/containers/settings/WorkspacesScreen.js b/src/containers/settings/WorkspacesScreen.js deleted file mode 100644 index 5e91f7673..000000000 --- a/src/containers/settings/WorkspacesScreen.js +++ /dev/null @@ -1,37 +0,0 @@ -import React, { Component } from 'react'; -import { inject, observer } from 'mobx-react'; -import PropTypes from 'prop-types'; -import { gaPage } from '../../lib/analytics'; -import { state } from '../../features/workspaces/state'; -import WorkspacesDashboard from '../../components/settings/workspaces/WorkspacesDashboard'; -import ErrorBoundary from '../../components/util/ErrorBoundary'; - -@inject('actions') @observer -class WorkspacesScreen extends Component { - static propTypes = { - actions: PropTypes.shape({ - workspace: PropTypes.shape({ - edit: PropTypes.func.isRequired, - }), - }).isRequired, - }; - - componentDidMount() { - gaPage('Settings/Workspaces Dashboard'); - } - - render() { - const { workspace } = this.props.actions; - return ( - - workspace.edit({ workspace: w })} - /> - - ); - } -} - -export default WorkspacesScreen; diff --git a/src/features/workspaces/actions.js b/src/features/workspaces/actions.js new file mode 100644 index 000000000..30866af96 --- /dev/null +++ b/src/features/workspaces/actions.js @@ -0,0 +1,8 @@ +import PropTypes from 'prop-types'; +import Workspace from './models/Workspace'; + +export default { + edit: { + workspace: PropTypes.instanceOf(Workspace).isRequired, + }, +}; diff --git a/src/features/workspaces/components/WorkspaceItem.js b/src/features/workspaces/components/WorkspaceItem.js new file mode 100644 index 000000000..b2c2a4830 --- /dev/null +++ b/src/features/workspaces/components/WorkspaceItem.js @@ -0,0 +1,42 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { intlShape } from 'react-intl'; +import { observer } from 'mobx-react'; +import classnames from 'classnames'; +import Workspace from '../models/Workspace'; + +// const messages = defineMessages({}); + +@observer +class WorkspaceItem extends Component { + static propTypes = { + workspace: PropTypes.instanceOf(Workspace).isRequired, + onItemClick: PropTypes.func.isRequired, + }; + + static contextTypes = { + intl: intlShape, + }; + + render() { + const { workspace, onItemClick } = this.props; + // const { intl } = this.context; + + return ( + + onItemClick(workspace)} + > + {workspace.name} + + + ); + } +} + +export default WorkspaceItem; diff --git a/src/features/workspaces/components/WorkspacesDashboard.js b/src/features/workspaces/components/WorkspacesDashboard.js new file mode 100644 index 000000000..2a8b3a5ee --- /dev/null +++ b/src/features/workspaces/components/WorkspacesDashboard.js @@ -0,0 +1,63 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; +import { defineMessages, intlShape } from 'react-intl'; + +import Loader from '../../../components/ui/Loader'; +import WorkspaceItem from './WorkspaceItem'; + +const messages = defineMessages({ + headline: { + id: 'settings.workspaces.headline', + defaultMessage: '!!!Your workspaces', + }, + noServicesAdded: { + id: 'settings.workspaces.noWorkspacesAdded', + defaultMessage: '!!!You haven\'t added any workspaces yet.', + }, +}); + +@observer +class WorkspacesDashboard extends Component { + static propTypes = { + workspaces: MobxPropTypes.arrayOrObservableArray.isRequired, + isLoading: PropTypes.bool.isRequired, + onWorkspaceClick: PropTypes.func.isRequired, + }; + + static contextTypes = { + intl: intlShape, + }; + + render() { + const { workspaces, isLoading, onWorkspaceClick } = this.props; + const { intl } = this.context; + + return ( +
+
+

{intl.formatMessage(messages.headline)}

+
+
+ {isLoading ? ( + + ) : ( + + + {workspaces.map(workspace => ( + onWorkspaceClick(w)} + /> + ))} + +
+ )} +
+
+ ); + } +} + +export default WorkspacesDashboard; diff --git a/src/features/workspaces/containers/EditWorkspaceScreen.js b/src/features/workspaces/containers/EditWorkspaceScreen.js new file mode 100644 index 000000000..d8c52f586 --- /dev/null +++ b/src/features/workspaces/containers/EditWorkspaceScreen.js @@ -0,0 +1,75 @@ +import React, { Component } from 'react'; +import { inject, observer } from 'mobx-react'; +import { defineMessages, intlShape } from 'react-intl'; +import { Link } from 'react-router'; +import Form from '../../../lib/Form'; +import ErrorBoundary from '../../../components/util/ErrorBoundary'; +import { gaPage } from '../../../lib/analytics'; +import { state } from '../state'; + +const messages = defineMessages({ + name: { + id: 'settings.workspace.form.name', + defaultMessage: '!!!Name', + }, + yourWorkspaces: { + id: 'settings.workspace.form.yourWorkspaces', + defaultMessage: '!!!Your workspaces', + }, +}); + +@inject('stores', 'actions') @observer +class EditWorkspaceScreen extends Component { + static contextTypes = { + intl: intlShape, + }; + + componentDidMount() { + gaPage('Settings/Workspace/Edit'); + } + + prepareForm(workspace) { + const { intl } = this.context; + const config = { + fields: { + name: { + label: intl.formatMessage(messages.name), + placeholder: intl.formatMessage(messages.name), + value: workspace.name, + }, + }, + }; + return new Form(config); + } + + render() { + const { intl } = this.context; + const { workspaceBeingEdited } = state; + if (!workspaceBeingEdited) return null; + + // const form = this.prepareForm(workspaceBeingEdited); + + return ( + +
+
+ + + {intl.formatMessage(messages.yourWorkspaces)} + + + + + {workspaceBeingEdited.name} + +
+
+ test +
+
+
+ ); + } +} + +export default EditWorkspaceScreen; diff --git a/src/features/workspaces/containers/WorkspacesScreen.js b/src/features/workspaces/containers/WorkspacesScreen.js new file mode 100644 index 000000000..f129edec5 --- /dev/null +++ b/src/features/workspaces/containers/WorkspacesScreen.js @@ -0,0 +1,37 @@ +import React, { Component } from 'react'; +import { inject, observer } from 'mobx-react'; +import PropTypes from 'prop-types'; +import { gaPage } from '../../../lib/analytics'; +import { state } from '../state'; +import WorkspacesDashboard from '../components/WorkspacesDashboard'; +import ErrorBoundary from '../../../components/util/ErrorBoundary'; + +@inject('actions') @observer +class WorkspacesScreen extends Component { + static propTypes = { + actions: PropTypes.shape({ + workspace: PropTypes.shape({ + edit: PropTypes.func.isRequired, + }), + }).isRequired, + }; + + componentDidMount() { + gaPage('Settings/Workspaces Dashboard'); + } + + render() { + const { workspace } = this.props.actions; + return ( + + workspace.edit({ workspace: w })} + /> + + ); + } +} + +export default WorkspacesScreen; diff --git a/src/features/workspaces/models/Workspace.js b/src/features/workspaces/models/Workspace.js new file mode 100644 index 000000000..ede2710dc --- /dev/null +++ b/src/features/workspaces/models/Workspace.js @@ -0,0 +1,25 @@ +import { observable } from 'mobx'; + +export default class Workspace { + id = null; + + @observable name = null; + + @observable order = null; + + @observable services = []; + + @observable userId = null; + + constructor(data) { + if (!data.id) { + throw Error('Workspace requires Id'); + } + + this.id = data.id; + this.name = data.name; + this.order = data.order; + this.services = data.services; + this.userId = data.userId; + } +} diff --git a/src/features/workspaces/store.js b/src/features/workspaces/store.js index aab66708b..ea61cec31 100644 --- a/src/features/workspaces/store.js +++ b/src/features/workspaces/store.js @@ -1,7 +1,7 @@ import { observable, reaction } from 'mobx'; import Store from '../../stores/lib/Store'; import CachedRequest from '../../stores/lib/CachedRequest'; -import Workspace from '../../models/Workspace'; +import Workspace from './models/Workspace'; import { matchRoute } from '../../helpers/routing-helpers'; const debug = require('debug')('Franz:feature:workspaces'); diff --git a/src/features/workspaces/styles/workspaces-table.scss b/src/features/workspaces/styles/workspaces-table.scss new file mode 100644 index 000000000..6d0e7b4f5 --- /dev/null +++ b/src/features/workspaces/styles/workspaces-table.scss @@ -0,0 +1,53 @@ +@import '../../../styles/config'; + +.theme__dark .workspace-table { + .workspace-table__column-info .mdi { color: $dark-theme-gray-lightest; } + + .workspace-table__row { + border-bottom: 1px solid $dark-theme-gray-darker; + + &:hover { background: $dark-theme-gray-darker; } + &.workspace-table__row--disabled { color: $dark-theme-gray; } + } +} + +.workspace-table { + width: 100%; + + .workspace-table__toggle { + width: 60px; + + .franz-form__field { + margin-bottom: 0; + } + } + + .workspace-table__column-action { + width: 40px + } + + .workspace-table__column-info { + width: 40px; + + .mdi { + color: $theme-gray-light; + display: block; + font-size: 18px; + } + } + + .workspace-table__row { + border-bottom: 1px solid $theme-gray-lightest; + + &:hover { + cursor: initial; + background: $theme-gray-lightest; + } + + &.workspace-table__row--disabled { + color: $theme-gray-light; + } + } + + td { padding: 10px; } +} diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index b5abb56d4..5cb8c6bd3 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -158,6 +158,7 @@ "settings.navigation.logout" : "Abmelden", "settings.navigation.settings" : "Einstellungen", "settings.navigation.yourServices" : "Deine Dienste", + "settings.navigation.yourWorkspaces": "Deine Workspaces", "settings.recipes.all" : "Alle Dienste", "settings.recipes.dev" : "Entwicklung", "settings.recipes.headline" : "Verfügbare Dienste", @@ -216,6 +217,8 @@ "settings.services.tooltip.isMuted" : "Alle Töne sind deaktiviert", "settings.services.tooltip.notificationsDisabled" : "Benachrichtigungen deaktiviert", "settings.services.updatedInfo" : "Deine Änderungen wurden gespeichert", + "settings.workspaces.headline": "Deine Workspaces", + "settings.workspace.form.yourWorkspaces": "Deine Workspaces", "settings.user.form.accountType.company" : "Firma", "settings.user.form.accountType.individual" : "Einzelperson", "settings.user.form.accountType.label" : "Konto-Typ", diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 1652b5585..9b323e323 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -197,6 +197,7 @@ "settings.user.form.accountType.non-profit": "Non-Profit", "settings.user.form.accountType.company": "Company", "settings.workspaces.headline": "Your workspaces", + "settings.workspace.form.yourWorkspaces": "Your workspaces", "subscription.type.free": "free", "subscription.type.month": "month", "subscription.type.year": "year", diff --git a/src/models/Workspace.js b/src/models/Workspace.js deleted file mode 100644 index ede2710dc..000000000 --- a/src/models/Workspace.js +++ /dev/null @@ -1,25 +0,0 @@ -import { observable } from 'mobx'; - -export default class Workspace { - id = null; - - @observable name = null; - - @observable order = null; - - @observable services = []; - - @observable userId = null; - - constructor(data) { - if (!data.id) { - throw Error('Workspace requires Id'); - } - - this.id = data.id; - this.name = data.name; - this.order = data.order; - this.services = data.services; - this.userId = data.userId; - } -} diff --git a/src/styles/main.scss b/src/styles/main.scss index 30f43532f..a941d89d0 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss @@ -30,7 +30,7 @@ $mdi-font-path: '../node_modules/mdi/fonts'; @import './content-tabs.scss'; @import './invite.scss'; @import './title-bar.scss'; -@import './workspace-table.scss'; +@import '../features/workspaces/styles/workspaces-table'; // form @import './input.scss'; diff --git a/src/styles/workspace-table.scss b/src/styles/workspace-table.scss deleted file mode 100644 index 05ebfa629..000000000 --- a/src/styles/workspace-table.scss +++ /dev/null @@ -1,53 +0,0 @@ -@import './config.scss'; - -.theme__dark .workspace-table { - .workspace-table__column-info .mdi { color: $dark-theme-gray-lightest; } - - .workspace-table__row { - border-bottom: 1px solid $dark-theme-gray-darker; - - &:hover { background: $dark-theme-gray-darker; } - &.workspace-table__row--disabled { color: $dark-theme-gray; } - } -} - -.workspace-table { - width: 100%; - - .workspace-table__toggle { - width: 60px; - - .franz-form__field { - margin-bottom: 0; - } - } - - .workspace-table__column-action { - width: 40px - } - - .workspace-table__column-info { - width: 40px; - - .mdi { - color: $theme-gray-light; - display: block; - font-size: 18px; - } - } - - .workspace-table__row { - border-bottom: 1px solid $theme-gray-lightest; - - &:hover { - cursor: initial; - background: $theme-gray-lightest; - } - - &.workspace-table__row--disabled { - color: $theme-gray-light; - } - } - - td { padding: 10px; } -} -- cgit v1.2.3-54-g00ecf From a421ba151f40695f54a4890219c5ec8af0a24a45 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Tue, 19 Feb 2019 15:02:11 +0100 Subject: prepare basic workspace edit form --- .../workspaces/components/EditWorkspaceForm.js | 142 +++++++++++++++++++++ .../workspaces/containers/EditWorkspaceScreen.js | 67 +++------- src/i18n/locales/de.json | 3 + src/i18n/locales/en-US.json | 3 + 4 files changed, 164 insertions(+), 51 deletions(-) create mode 100644 src/features/workspaces/components/EditWorkspaceForm.js diff --git a/src/features/workspaces/components/EditWorkspaceForm.js b/src/features/workspaces/components/EditWorkspaceForm.js new file mode 100644 index 000000000..9e87b56dd --- /dev/null +++ b/src/features/workspaces/components/EditWorkspaceForm.js @@ -0,0 +1,142 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { observer } from 'mobx-react'; +import { defineMessages, intlShape } from 'react-intl'; +import { Link } from 'react-router'; +import { Input, Button } from '@meetfranz/forms'; + +import Form from '../../../lib/Form'; +import Workspace from '../models/Workspace'; + +const messages = defineMessages({ + buttonDelete: { + id: 'settings.workspace.form.buttonDelete', + defaultMessage: '!!!Delete workspace', + }, + buttonSave: { + id: 'settings.workspace.form.buttonSave', + defaultMessage: '!!!Save workspace', + }, + name: { + id: 'settings.workspace.form.name', + defaultMessage: '!!!Name', + }, + yourWorkspaces: { + id: 'settings.workspace.form.yourWorkspaces', + defaultMessage: '!!!Your workspaces', + }, +}); + +@observer +class EditWorkspaceForm extends Component { + static contextTypes = { + intl: intlShape, + }; + + static propTypes = { + workspace: PropTypes.instanceOf(Workspace).isRequired, + onSave: PropTypes.func.isRequired, + onDelete: PropTypes.func.isRequired, + isSaving: PropTypes.bool.isRequired, + isDeleting: PropTypes.bool.isRequired, + }; + + prepareForm(workspace) { + const { intl } = this.context; + const config = { + fields: { + name: { + label: intl.formatMessage(messages.name), + placeholder: intl.formatMessage(messages.name), + value: workspace.name, + }, + }, + }; + return new Form(config); + } + + submitForm(submitEvent, form) { + submitEvent.preventDefault(); + form.submit({ + onSuccess: async (f) => { + const { onSave } = this.props; + const values = f.values(); + onSave(values); + }, + onError: async () => {}, + }); + } + + render() { + const { intl } = this.context; + const { + workspace, + isDeleting, + isSaving, + onDelete, + } = this.props; + if (!workspace) return null; + + const form = this.prepareForm(workspace); + + return ( +
+
+ + + {intl.formatMessage(messages.yourWorkspaces)} + + + + + {workspace.name} + +
+
+
this.submitForm(e, form)} id="form"> +
+ +
+
+
+
+ {/* ===== Delete Button ===== */} + {isDeleting ? ( +
+
+ ); + } +} + +export default EditWorkspaceForm; diff --git a/src/features/workspaces/containers/EditWorkspaceScreen.js b/src/features/workspaces/containers/EditWorkspaceScreen.js index d8c52f586..ed54b194e 100644 --- a/src/features/workspaces/containers/EditWorkspaceScreen.js +++ b/src/features/workspaces/containers/EditWorkspaceScreen.js @@ -1,72 +1,37 @@ import React, { Component } from 'react'; import { inject, observer } from 'mobx-react'; -import { defineMessages, intlShape } from 'react-intl'; -import { Link } from 'react-router'; -import Form from '../../../lib/Form'; + import ErrorBoundary from '../../../components/util/ErrorBoundary'; import { gaPage } from '../../../lib/analytics'; import { state } from '../state'; - -const messages = defineMessages({ - name: { - id: 'settings.workspace.form.name', - defaultMessage: '!!!Name', - }, - yourWorkspaces: { - id: 'settings.workspace.form.yourWorkspaces', - defaultMessage: '!!!Your workspaces', - }, -}); +import EditWorkspaceForm from '../components/EditWorkspaceForm'; @inject('stores', 'actions') @observer class EditWorkspaceScreen extends Component { - static contextTypes = { - intl: intlShape, - }; - componentDidMount() { gaPage('Settings/Workspace/Edit'); } - prepareForm(workspace) { - const { intl } = this.context; - const config = { - fields: { - name: { - label: intl.formatMessage(messages.name), - placeholder: intl.formatMessage(messages.name), - value: workspace.name, - }, - }, - }; - return new Form(config); - } + onDelete = () => { + console.log('delete workspace'); + }; + + onSave = (values) => { + console.log('save workspace', values); + }; render() { - const { intl } = this.context; const { workspaceBeingEdited } = state; if (!workspaceBeingEdited) return null; - - // const form = this.prepareForm(workspaceBeingEdited); - return ( -
-
- - - {intl.formatMessage(messages.yourWorkspaces)} - - - - - {workspaceBeingEdited.name} - -
-
- test -
-
+
); } diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 5cb8c6bd3..ffad8b835 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -219,6 +219,9 @@ "settings.services.updatedInfo" : "Deine Änderungen wurden gespeichert", "settings.workspaces.headline": "Deine Workspaces", "settings.workspace.form.yourWorkspaces": "Deine Workspaces", + "settings.workspace.form.name": "Name", + "settings.workspace.form.buttonDelete": "Workspace löschen", + "settings.workspace.form.buttonSave": "Workspace speichern", "settings.user.form.accountType.company" : "Firma", "settings.user.form.accountType.individual" : "Einzelperson", "settings.user.form.accountType.label" : "Konto-Typ", diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 9b323e323..899c62651 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -198,6 +198,9 @@ "settings.user.form.accountType.company": "Company", "settings.workspaces.headline": "Your workspaces", "settings.workspace.form.yourWorkspaces": "Your workspaces", + "settings.workspace.form.name": "Name", + "settings.workspace.form.buttonDelete": "Delete Workspace", + "settings.workspace.form.buttonSave": "Save Workspace", "subscription.type.free": "free", "subscription.type.month": "month", "subscription.type.year": "year", -- cgit v1.2.3-54-g00ecf From 58a5df079320ad99f3c8b369dc163455f8895eec Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Fri, 22 Feb 2019 12:32:39 +0100 Subject: add on enter key handler for form input component --- packages/forms/src/input/index.tsx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/forms/src/input/index.tsx b/packages/forms/src/input/index.tsx index de7e7848e..791e0f360 100644 --- a/packages/forms/src/input/index.tsx +++ b/packages/forms/src/input/index.tsx @@ -25,6 +25,7 @@ interface IProps extends React.InputHTMLAttributes, IFormField showPasswordToggle?: boolean; data: IData; inputClassName?: string; + onEnterKey?: Function; } interface IState { @@ -80,6 +81,13 @@ class InputComponent extends Component { } } + onInputKeyPress(e: React.KeyboardEvent) { + if (e.key === "Enter") { + const { onEnterKey } = this.props; + onEnterKey && onEnterKey(); + } + } + render() { const { classes, @@ -100,6 +108,7 @@ class InputComponent extends Component { placeholder, spellCheck, onBlur, + onEnterKey, } = this.props; const { @@ -144,6 +153,7 @@ class InputComponent extends Component { onChange={this.onChange.bind(this)} onBlur={onBlur} disabled={disabled} + onKeyPress={this.onInputKeyPress.bind(this)} /> {suffix && ( -- cgit v1.2.3-54-g00ecf From 7e40b08e2f8ab2448dcbe2ce7b4e38ca66764b9c Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Fri, 22 Feb 2019 12:34:27 +0100 Subject: add form for creating workspaces --- .eslintrc | 2 +- src/features/delayApp/Component.js | 2 +- src/features/workspaces/actions.js | 3 + src/features/workspaces/api.js | 9 +++ .../workspaces/components/CreateWorkspaceForm.js | 94 ++++++++++++++++++++++ .../workspaces/components/WorkspacesDashboard.js | 58 ++++++++----- .../workspaces/containers/WorkspacesScreen.js | 1 + src/features/workspaces/store.js | 14 +++- src/i18n/locales/de.json | 6 +- src/i18n/locales/en-US.json | 2 + src/styles/main.scss | 2 + 11 files changed, 170 insertions(+), 23 deletions(-) create mode 100644 src/features/workspaces/components/CreateWorkspaceForm.js diff --git a/.eslintrc b/.eslintrc index e15148e96..48fb21250 100644 --- a/.eslintrc +++ b/.eslintrc @@ -13,7 +13,7 @@ "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }], - "react/forbid-prop-types": 1, + "react/forbid-prop-types": 0, "react/destructuring-assignment": 1, "prefer-destructuring": 1, "no-underscore-dangle": 0, diff --git a/src/features/delayApp/Component.js b/src/features/delayApp/Component.js index ff84510e8..ff0f1f2f8 100644 --- a/src/features/delayApp/Component.js +++ b/src/features/delayApp/Component.js @@ -38,7 +38,7 @@ export default @inject('actions') @injectSheet(styles) @observer class DelayApp state = { countdown: config.delayDuration, - } + }; countdownInterval = null; diff --git a/src/features/workspaces/actions.js b/src/features/workspaces/actions.js index 30866af96..390af0696 100644 --- a/src/features/workspaces/actions.js +++ b/src/features/workspaces/actions.js @@ -5,4 +5,7 @@ export default { edit: { workspace: PropTypes.instanceOf(Workspace).isRequired, }, + create: { + name: PropTypes.string.isRequired, + }, }; diff --git a/src/features/workspaces/api.js b/src/features/workspaces/api.js index 97badbd01..65108a077 100644 --- a/src/features/workspaces/api.js +++ b/src/features/workspaces/api.js @@ -10,4 +10,13 @@ export default { if (!request.ok) throw request; return request.json(); }, + createWorkspace: async (name) => { + const url = `${API}/${API_VERSION}/workspace`; + const request = await window.fetch(url, prepareAuthRequest({ + method: 'POST', + body: JSON.stringify({ name }), + })); + if (!request.ok) throw request; + return request.json(); + }, }; diff --git a/src/features/workspaces/components/CreateWorkspaceForm.js b/src/features/workspaces/components/CreateWorkspaceForm.js new file mode 100644 index 000000000..d440b9bae --- /dev/null +++ b/src/features/workspaces/components/CreateWorkspaceForm.js @@ -0,0 +1,94 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { observer } from 'mobx-react'; +import { defineMessages, intlShape } from 'react-intl'; +import { Input, Button } from '@meetfranz/forms'; +import injectSheet from 'react-jss'; + +import Form from '../../../lib/Form'; + +const messages = defineMessages({ + submitButton: { + id: 'settings.workspace.add.form.submitButton', + defaultMessage: '!!!Save workspace', + }, + name: { + id: 'settings.workspace.add.form.name', + defaultMessage: '!!!Name', + }, +}); + +const styles = () => ({ + form: { + display: 'flex', + }, + input: { + flexGrow: 1, + marginRight: '10px', + }, + submitButton: { + height: 'inherit', + marginTop: '17px', + }, +}); + +@observer @injectSheet(styles) +class CreateWorkspaceForm extends Component { + static contextTypes = { + intl: intlShape, + }; + + static propTypes = { + classes: PropTypes.object.isRequired, + onSubmit: PropTypes.func.isRequired, + }; + + prepareForm() { + const { intl } = this.context; + const config = { + fields: { + name: { + label: intl.formatMessage(messages.name), + placeholder: intl.formatMessage(messages.name), + value: '', + }, + }, + }; + return new Form(config); + } + + submitForm(form) { + form.submit({ + onSuccess: async (f) => { + const { onSubmit } = this.props; + const values = f.values(); + onSubmit(values); + }, + onError: async () => {}, + }); + } + + render() { + const { intl } = this.context; + const { classes } = this.props; + const form = this.prepareForm(); + + return ( +
+ +
+ ); + } +} + +export default CreateWorkspaceForm; diff --git a/src/features/workspaces/components/WorkspacesDashboard.js b/src/features/workspaces/components/WorkspacesDashboard.js index 2a8b3a5ee..917807302 100644 --- a/src/features/workspaces/components/WorkspacesDashboard.js +++ b/src/features/workspaces/components/WorkspacesDashboard.js @@ -2,9 +2,11 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; import { defineMessages, intlShape } from 'react-intl'; +import injectSheet from 'react-jss'; import Loader from '../../../components/ui/Loader'; import WorkspaceItem from './WorkspaceItem'; +import CreateWorkspaceForm from './CreateWorkspaceForm'; const messages = defineMessages({ headline: { @@ -17,12 +19,21 @@ const messages = defineMessages({ }, }); -@observer +const styles = () => ({ + createForm: { + height: 'auto', + marginBottom: '20px', + }, +}); + +@observer @injectSheet(styles) class WorkspacesDashboard extends Component { static propTypes = { - workspaces: MobxPropTypes.arrayOrObservableArray.isRequired, + classes: PropTypes.object.isRequired, isLoading: PropTypes.bool.isRequired, + onCreateWorkspaceSubmit: PropTypes.func.isRequired, onWorkspaceClick: PropTypes.func.isRequired, + workspaces: MobxPropTypes.arrayOrObservableArray.isRequired, }; static contextTypes = { @@ -30,7 +41,13 @@ class WorkspacesDashboard extends Component { }; render() { - const { workspaces, isLoading, onWorkspaceClick } = this.props; + const { + workspaces, + isLoading, + onCreateWorkspaceSubmit, + onWorkspaceClick, + classes, + } = this.props; const { intl } = this.context; return ( @@ -39,21 +56,26 @@ class WorkspacesDashboard extends Component {

{intl.formatMessage(messages.headline)}

- {isLoading ? ( - - ) : ( - - - {workspaces.map(workspace => ( - onWorkspaceClick(w)} - /> - ))} - -
- )} +
+
+ +
+ {isLoading ? ( + + ) : ( + + + {workspaces.map(workspace => ( + onWorkspaceClick(w)} + /> + ))} + +
+ )} +
); diff --git a/src/features/workspaces/containers/WorkspacesScreen.js b/src/features/workspaces/containers/WorkspacesScreen.js index f129edec5..eb3287952 100644 --- a/src/features/workspaces/containers/WorkspacesScreen.js +++ b/src/features/workspaces/containers/WorkspacesScreen.js @@ -27,6 +27,7 @@ class WorkspacesScreen extends Component { workspace.create(data)} onWorkspaceClick={w => workspace.edit({ workspace: w })} /> diff --git a/src/features/workspaces/store.js b/src/features/workspaces/store.js index ea61cec31..d90f9caac 100644 --- a/src/features/workspaces/store.js +++ b/src/features/workspaces/store.js @@ -49,6 +49,7 @@ export default class WorkspacesStore extends Store { ); this.actions.workspace.edit.listen(this._edit); + this.actions.workspace.create.listen(this._create); } _setWorkspaces = (workspaces) => { @@ -64,5 +65,16 @@ export default class WorkspacesStore extends Store { _edit = ({ workspace }) => { this.stores.router.push(`/settings/workspaces/edit/${workspace.id}`); - } + }; + + _create = async ({ name }) => { + try { + const result = await this.api.createWorkspace(name); + const workspace = new Workspace(result); + this.state.workspaces.push(workspace); + this._edit({ workspace }); + } catch (error) { + throw error; + } + }; } diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index ffad8b835..b795b90f8 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -218,10 +218,12 @@ "settings.services.tooltip.notificationsDisabled" : "Benachrichtigungen deaktiviert", "settings.services.updatedInfo" : "Deine Änderungen wurden gespeichert", "settings.workspaces.headline": "Deine Workspaces", + "settings.workspace.add.form.submitButton": "Create Workspace", + "settings.workspace.add.form.name": "Name", "settings.workspace.form.yourWorkspaces": "Deine Workspaces", "settings.workspace.form.name": "Name", - "settings.workspace.form.buttonDelete": "Workspace löschen", - "settings.workspace.form.buttonSave": "Workspace speichern", + "settings.workspace.form.buttonDelete": "Workspace löschen", + "settings.workspace.form.buttonSave": "Workspace speichern", "settings.user.form.accountType.company" : "Firma", "settings.user.form.accountType.individual" : "Einzelperson", "settings.user.form.accountType.label" : "Konto-Typ", diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 899c62651..24c96cb26 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -197,6 +197,8 @@ "settings.user.form.accountType.non-profit": "Non-Profit", "settings.user.form.accountType.company": "Company", "settings.workspaces.headline": "Your workspaces", + "settings.workspace.add.form.submitButton": "Create Workspace", + "settings.workspace.add.form.name": "Name", "settings.workspace.form.yourWorkspaces": "Your workspaces", "settings.workspace.form.name": "Name", "settings.workspace.form.buttonDelete": "Delete Workspace", diff --git a/src/styles/main.scss b/src/styles/main.scss index a941d89d0..9ba7f5827 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss @@ -30,6 +30,8 @@ $mdi-font-path: '../node_modules/mdi/fonts'; @import './content-tabs.scss'; @import './invite.scss'; @import './title-bar.scss'; + +// Workspaces legacy css @import '../features/workspaces/styles/workspaces-table'; // form -- cgit v1.2.3-54-g00ecf From 18d2b0f988792632d8b9395d06613d08c582ad7b Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Fri, 22 Feb 2019 13:03:40 +0100 Subject: small fixes --- .eslintrc | 1 + src/i18n/locales/de.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.eslintrc b/.eslintrc index 48fb21250..f1051723d 100644 --- a/.eslintrc +++ b/.eslintrc @@ -2,6 +2,7 @@ "parser": "babel-eslint", "extends": "eslint-config-airbnb", "rules": { + "consistent-return": 0, "import/extensions": 0, "import/no-extraneous-dependencies": 0, "import/no-unresolved": [2, { diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index b795b90f8..e1a955176 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -218,7 +218,7 @@ "settings.services.tooltip.notificationsDisabled" : "Benachrichtigungen deaktiviert", "settings.services.updatedInfo" : "Deine Änderungen wurden gespeichert", "settings.workspaces.headline": "Deine Workspaces", - "settings.workspace.add.form.submitButton": "Create Workspace", + "settings.workspace.add.form.submitButton": "Workspace erstellen", "settings.workspace.add.form.name": "Name", "settings.workspace.form.yourWorkspaces": "Deine Workspaces", "settings.workspace.form.name": "Name", -- cgit v1.2.3-54-g00ecf From 3de31efa29b8f2729f968d9d63c42d21c7d8dcf5 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Fri, 22 Feb 2019 13:04:51 +0100 Subject: adds flow for deleting workspaces --- src/api/utils/auth.js | 4 ++++ src/features/workspaces/actions.js | 3 +++ src/features/workspaces/api.js | 18 ++++++++++++------ .../workspaces/containers/EditWorkspaceScreen.js | 14 +++++++++++++- src/features/workspaces/containers/WorkspacesScreen.js | 6 +++--- src/features/workspaces/store.js | 11 +++++++++++ 6 files changed, 46 insertions(+), 10 deletions(-) diff --git a/src/api/utils/auth.js b/src/api/utils/auth.js index 47ac94c19..d469853a5 100644 --- a/src/api/utils/auth.js +++ b/src/api/utils/auth.js @@ -22,3 +22,7 @@ export const prepareAuthRequest = (options, auth = true) => { return request; }; + +export const sendAuthRequest = (url, options) => ( + window.fetch(url, prepareAuthRequest(options)) +); diff --git a/src/features/workspaces/actions.js b/src/features/workspaces/actions.js index 390af0696..83d3447c3 100644 --- a/src/features/workspaces/actions.js +++ b/src/features/workspaces/actions.js @@ -8,4 +8,7 @@ export default { create: { name: PropTypes.string.isRequired, }, + delete: { + workspace: PropTypes.instanceOf(Workspace).isRequired, + }, }; diff --git a/src/features/workspaces/api.js b/src/features/workspaces/api.js index 65108a077..fabc12455 100644 --- a/src/features/workspaces/api.js +++ b/src/features/workspaces/api.js @@ -1,21 +1,27 @@ -import { prepareAuthRequest } from '../../api/utils/auth'; +import { sendAuthRequest } from '../../api/utils/auth'; import { API, API_VERSION } from '../../environment'; export default { getUserWorkspaces: async () => { const url = `${API}/${API_VERSION}/workspace`; - const request = await window.fetch(url, prepareAuthRequest({ - method: 'GET', - })); + const request = await sendAuthRequest(url, { method: 'GET' }); if (!request.ok) throw request; return request.json(); }, + createWorkspace: async (name) => { const url = `${API}/${API_VERSION}/workspace`; - const request = await window.fetch(url, prepareAuthRequest({ + const request = await sendAuthRequest(url, { method: 'POST', body: JSON.stringify({ name }), - })); + }); + if (!request.ok) throw request; + return request.json(); + }, + + deleteWorkspace: async (workspace) => { + const url = `${API}/${API_VERSION}/workspace/${workspace.id}`; + const request = await sendAuthRequest(url, { method: 'DELETE' }); if (!request.ok) throw request; return request.json(); }, diff --git a/src/features/workspaces/containers/EditWorkspaceScreen.js b/src/features/workspaces/containers/EditWorkspaceScreen.js index ed54b194e..87b6062fb 100644 --- a/src/features/workspaces/containers/EditWorkspaceScreen.js +++ b/src/features/workspaces/containers/EditWorkspaceScreen.js @@ -5,15 +5,27 @@ import ErrorBoundary from '../../../components/util/ErrorBoundary'; import { gaPage } from '../../../lib/analytics'; import { state } from '../state'; import EditWorkspaceForm from '../components/EditWorkspaceForm'; +import PropTypes from 'prop-types'; @inject('stores', 'actions') @observer class EditWorkspaceScreen extends Component { + static propTypes = { + actions: PropTypes.shape({ + workspace: PropTypes.shape({ + delete: PropTypes.func.isRequired, + }), + }).isRequired, + }; + componentDidMount() { gaPage('Settings/Workspace/Edit'); } onDelete = () => { - console.log('delete workspace'); + const { workspaceBeingEdited } = state; + const { actions } = this.props; + if (!workspaceBeingEdited) return null; + actions.workspace.delete({ workspace: workspaceBeingEdited }); }; onSave = (values) => { diff --git a/src/features/workspaces/containers/WorkspacesScreen.js b/src/features/workspaces/containers/WorkspacesScreen.js index eb3287952..a3876a01a 100644 --- a/src/features/workspaces/containers/WorkspacesScreen.js +++ b/src/features/workspaces/containers/WorkspacesScreen.js @@ -21,14 +21,14 @@ class WorkspacesScreen extends Component { } render() { - const { workspace } = this.props.actions; + const { actions } = this.props; return ( workspace.create(data)} - onWorkspaceClick={w => workspace.edit({ workspace: w })} + onCreateWorkspaceSubmit={data => actions.workspace.create(data)} + onWorkspaceClick={w => actions.workspace.edit({ workspace: w })} /> ); diff --git a/src/features/workspaces/store.js b/src/features/workspaces/store.js index d90f9caac..a9b93f904 100644 --- a/src/features/workspaces/store.js +++ b/src/features/workspaces/store.js @@ -50,6 +50,7 @@ export default class WorkspacesStore extends Store { this.actions.workspace.edit.listen(this._edit); this.actions.workspace.create.listen(this._create); + this.actions.workspace.delete.listen(this._delete); } _setWorkspaces = (workspaces) => { @@ -77,4 +78,14 @@ export default class WorkspacesStore extends Store { throw error; } }; + + _delete = async ({ workspace }) => { + try { + await this.api.deleteWorkspace(workspace); + this.state.workspaces.remove(workspace); + this.stores.router.push('/settings/workspaces'); + } catch (error) { + throw error; + } + }; } -- cgit v1.2.3-54-g00ecf From d06c28489168e64c1a4124cedcf205b320b72708 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Fri, 22 Feb 2019 16:34:42 +0100 Subject: stop tracking google analytics in components --- src/features/workspaces/containers/EditWorkspaceScreen.js | 7 +------ src/features/workspaces/containers/WorkspacesScreen.js | 5 ----- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/src/features/workspaces/containers/EditWorkspaceScreen.js b/src/features/workspaces/containers/EditWorkspaceScreen.js index 87b6062fb..1ddf8dfcb 100644 --- a/src/features/workspaces/containers/EditWorkspaceScreen.js +++ b/src/features/workspaces/containers/EditWorkspaceScreen.js @@ -1,11 +1,10 @@ import React, { Component } from 'react'; import { inject, observer } from 'mobx-react'; +import PropTypes from 'prop-types'; import ErrorBoundary from '../../../components/util/ErrorBoundary'; -import { gaPage } from '../../../lib/analytics'; import { state } from '../state'; import EditWorkspaceForm from '../components/EditWorkspaceForm'; -import PropTypes from 'prop-types'; @inject('stores', 'actions') @observer class EditWorkspaceScreen extends Component { @@ -17,10 +16,6 @@ class EditWorkspaceScreen extends Component { }).isRequired, }; - componentDidMount() { - gaPage('Settings/Workspace/Edit'); - } - onDelete = () => { const { workspaceBeingEdited } = state; const { actions } = this.props; diff --git a/src/features/workspaces/containers/WorkspacesScreen.js b/src/features/workspaces/containers/WorkspacesScreen.js index a3876a01a..b89cbcf67 100644 --- a/src/features/workspaces/containers/WorkspacesScreen.js +++ b/src/features/workspaces/containers/WorkspacesScreen.js @@ -1,7 +1,6 @@ import React, { Component } from 'react'; import { inject, observer } from 'mobx-react'; import PropTypes from 'prop-types'; -import { gaPage } from '../../../lib/analytics'; import { state } from '../state'; import WorkspacesDashboard from '../components/WorkspacesDashboard'; import ErrorBoundary from '../../../components/util/ErrorBoundary'; @@ -16,10 +15,6 @@ class WorkspacesScreen extends Component { }).isRequired, }; - componentDidMount() { - gaPage('Settings/Workspaces Dashboard'); - } - render() { const { actions } = this.props; return ( -- cgit v1.2.3-54-g00ecf From 34015cf4872cf921d579bd15befb09020e3dfbc8 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Fri, 22 Feb 2019 16:53:46 +0100 Subject: pin gulp-sass-variables version to 1.1.1 --- package-lock.json | 422 +++++++++++++++++++++++++----------------------------- package.json | 2 +- 2 files changed, 195 insertions(+), 229 deletions(-) diff --git a/package-lock.json b/package-lock.json index b816b421f..f34f0bef9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1442,7 +1442,7 @@ "@lerna/get-packed": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-3.7.0.tgz", - "integrity": "sha512-yuFtjsUZIHjeIvIYQ/QuytC+FQcHwo3peB+yGBST2uWCLUCR5rx6knoQcPzbxdFDCuUb5IFccFGd3B1fHFg3RQ==", + "integrity": "sha1-VJx3OPe+XjsUM+gu2c2pEjvNHtU=", "dev": true, "requires": { "fs-extra": "^7.0.0", @@ -1567,7 +1567,7 @@ "@lerna/npm-conf": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-3.7.0.tgz", - "integrity": "sha512-+WSMDfPKcKzMfqq283ydz9RRpOU6p9wfx0wy4hVSUY/6YUpsyuk8SShjcRtY8zTM5AOrxvFBuuV90H4YpZ5+Ng==", + "integrity": "sha1-8QHU/fB8788RYbz688DxBbQgpFA=", "dev": true, "requires": { "config-chain": "^1.1.11", @@ -1823,7 +1823,7 @@ "@lerna/run-parallel-batches": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@lerna/run-parallel-batches/-/run-parallel-batches-3.0.0.tgz", - "integrity": "sha512-Mj1ravlXF7AkkewKd9YFq9BtVrsStNrvVLedD/b2wIVbNqcxp8lS68vehXVOzoL/VWNEDotvqCQtyDBilCodGw==", + "integrity": "sha1-RocEk0CEx0mR0xJNgGB4V9TfqEA=", "dev": true, "requires": { "p-map": "^1.2.0", @@ -1968,7 +1968,7 @@ "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=", "dev": true, "requires": { "call-me-maybe": "^1.0.1", @@ -1978,7 +1978,7 @@ "@nodelib/fs.stat": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=", "dev": true }, "@octokit/endpoint": { @@ -2354,7 +2354,7 @@ "dependencies": { "mime-types": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz", + "resolved": "http://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz", "integrity": "sha1-mVrhOSq4r/y/yyZB3QVOlDwNXc4=", "dev": true } @@ -2412,7 +2412,7 @@ "agent-base": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "integrity": "sha1-2J5ZmfeXh1Z0wH2H8mD8Qeg+jKk=", "dev": true, "requires": { "es6-promisify": "^5.0.0" @@ -2421,7 +2421,7 @@ "agentkeepalive": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", - "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "integrity": "sha1-oROSTdP6JKC8O3gQjEUMKr7gD2c=", "dev": true, "requires": { "humanize-ms": "^1.2.1" @@ -2468,7 +2468,7 @@ }, "ansi-colors": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", "dev": true, "requires": { @@ -2895,7 +2895,7 @@ }, "util": { "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "requires": { @@ -2930,7 +2930,7 @@ }, "async": { "version": "0.1.22", - "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", + "resolved": "http://registry.npmjs.org/async/-/async-0.1.22.tgz", "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=" }, "async-done": { @@ -3742,7 +3742,7 @@ "byte-size": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-4.0.4.tgz", - "integrity": "sha512-82RPeneC6nqCdSwCX2hZUz3JPOvN5at/nTEw/CMf05Smu3Hrpo9Psb7LjN+k+XndNArG1EY8L4+BM3aTM4BCvw==", + "integrity": "sha1-KdOBcJ9BquDYnGMfHIGuyIzUCyM=", "dev": true }, "bytes": { @@ -3754,7 +3754,7 @@ "cacache": { "version": "11.3.2", "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", - "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", + "integrity": "sha1-LYHjCOPSWMo4Eltna5iyrJzmm/o=", "dev": true, "requires": { "bluebird": "^3.5.3", @@ -3776,7 +3776,7 @@ "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", "dev": true, "requires": { "yallist": "^3.0.2" @@ -4400,16 +4400,7 @@ "debug": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=" }, "readable-stream": { "version": "2.3.6", @@ -4430,6 +4421,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -4473,7 +4465,7 @@ "config-chain": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "integrity": "sha1-D96NCRIA616AjK8l/mGMAvSOTvo=", "dev": true, "requires": { "ini": "^1.3.4", @@ -4519,7 +4511,7 @@ "dependencies": { "debug": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz", + "resolved": "http://registry.npmjs.org/debug/-/debug-1.0.4.tgz", "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=", "dev": true, "requires": { @@ -4789,7 +4781,7 @@ "conventional-recommended-bump": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-4.0.4.tgz", - "integrity": "sha512-9mY5Yoblq+ZMqJpBzgS+RpSq+SUfP2miOR3H/NR9drGf08WCrY9B6HAGJZEm6+ThsVP917VHAahSOjM6k1vhPg==", + "integrity": "sha1-BVQFhGQdPadYyIY8CXiPyutYaHI=", "dev": true, "requires": { "concat-stream": "^1.6.0", @@ -4880,7 +4872,7 @@ "copy-concurrently": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", "dev": true, "requires": { "aproba": "^1.1.1", @@ -5181,8 +5173,7 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decamelize-keys": { "version": "1.1.0", @@ -5460,7 +5451,7 @@ "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=", "dev": true }, "diffie-hellman": { @@ -5477,7 +5468,7 @@ "dir-glob": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "integrity": "sha1-CyBdK2rvmCOMooZZioIE0p0KADQ=", "dev": true, "requires": { "arrify": "^1.0.1", @@ -5562,7 +5553,7 @@ "dependencies": { "domelementtype": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" } } @@ -5606,7 +5597,7 @@ }, "dotenv": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", + "resolved": "http://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=", "dev": true }, @@ -5626,7 +5617,7 @@ }, "duplexer": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", "dev": true }, @@ -5649,18 +5640,14 @@ "resolved": false, "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "util-deprecate": "~1.0.1" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "code-point-at": { "version": "1.1.0", "resolved": false, - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "optional": true + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "concat-map": { "version": "0.0.1", @@ -5670,20 +5657,17 @@ "console-control-strings": { "version": "1.1.0", "resolved": false, - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "optional": true + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "optional": true + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==" }, "deep-extend": { "version": "0.5.1", "resolved": false, - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", - "optional": true + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==" }, "delegates": { "version": "1.0.0", @@ -5693,8 +5677,7 @@ "detect-libc": { "version": "1.0.3", "resolved": false, - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "optional": true + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" }, "fs-extra": { "version": "4.0.3", @@ -5710,7 +5693,6 @@ "version": "1.2.5", "resolved": false, "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", - "optional": true, "requires": { "minipass": "^2.2.1" } @@ -5718,14 +5700,12 @@ "fs.realpath": { "version": "1.0.0", "resolved": false, - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "optional": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "gauge": { "version": "2.7.4", "resolved": false, "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "optional": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -5741,7 +5721,6 @@ "version": "7.1.2", "resolved": false, "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "optional": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -5754,14 +5733,12 @@ "has-unicode": { "version": "2.0.1", "resolved": false, - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "optional": true + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, "iconv-lite": { "version": "0.4.21", "resolved": false, "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", - "optional": true, "requires": { "safer-buffer": "^2.1.0" } @@ -5770,7 +5747,6 @@ "version": "3.0.1", "resolved": false, "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", - "optional": true, "requires": { "minimatch": "^3.0.4" } @@ -5779,27 +5755,22 @@ "version": "1.0.6", "resolved": false, "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "once": "^1.3.0", + "wrappy": "1" } }, "ini": { "version": "1.3.5", "resolved": false, - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "optional": true + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": false, "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "optional": true, "requires": { - "bluebird-lst": "^1.0.6", - "debug": "^4.1.0", - "fs-extra-p": "^7.0.0", - "sax": "^1.2.4" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -5817,7 +5788,6 @@ "version": "2.2.4", "resolved": false, "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", - "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -5827,7 +5797,9 @@ "version": "1.1.0", "resolved": false, "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", - "optional": true + "requires": { + "minipass": "^2.2.1" + } }, "ms": { "version": "2.0.0", @@ -5838,7 +5810,6 @@ "version": "2.2.0", "resolved": false, "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", - "optional": true, "requires": { "iconv-lite": "^0.4.4", "sax": "^1.2.4" @@ -5865,7 +5836,6 @@ "version": "4.0.1", "resolved": false, "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "optional": true, "requires": { "abbrev": "1", "osenv": "^0.1.4" @@ -5874,14 +5844,12 @@ "npm-bundled": { "version": "1.0.3", "resolved": false, - "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", - "optional": true + "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==" }, "npm-packlist": { "version": "1.1.10", "resolved": false, "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", - "optional": true, "requires": { "ignore-walk": "^3.0.1", "npm-bundled": "^1.0.1" @@ -5891,7 +5859,6 @@ "version": "4.1.2", "resolved": false, "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "optional": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -5907,14 +5874,12 @@ "object-assign": { "version": "4.1.1", "resolved": false, - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "optional": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "once": { "version": "1.4.0", "resolved": false, "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "optional": true, "requires": { "wrappy": "1" } @@ -5922,20 +5887,17 @@ "os-homedir": { "version": "1.0.2", "resolved": false, - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "optional": true + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-tmpdir": { "version": "1.0.2", "resolved": false, - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "optional": true + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { "version": "0.1.5", "resolved": false, "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "optional": true, "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -5944,14 +5906,12 @@ "path-is-absolute": { "version": "1.0.1", "resolved": false, - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "optional": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "rc": { "version": "1.2.7", "resolved": false, "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", - "optional": true, "requires": { "deep-extend": "^0.5.1", "ini": "~1.3.0", @@ -5962,14 +5922,13 @@ "minimist": { "version": "1.2.0", "resolved": false, - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "optional": true + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" } } }, "readable-stream": { "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { @@ -5983,7 +5942,6 @@ "version": "2.6.2", "resolved": false, "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "optional": true, "requires": { "glob": "^7.0.5" } @@ -5991,38 +5949,32 @@ "safer-buffer": { "version": "2.1.2", "resolved": false, - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "optional": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sax": { "version": "1.2.4", "resolved": false, - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "optional": true + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "semver": { "version": "5.5.0", "resolved": false, - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "optional": true + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" }, "set-blocking": { "version": "2.0.0", "resolved": false, - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "optional": true + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "signal-exit": { "version": "3.0.2", "resolved": false, - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "optional": true + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "string-width": { "version": "1.0.2", "resolved": false, "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -6038,20 +5990,17 @@ "strip-ansi": { "version": "3.0.1", "resolved": false, - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" }, "strip-json-comments": { "version": "2.0.1", "resolved": false, - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "optional": true + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "tar": { "version": "4.4.1", "resolved": false, "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", - "optional": true, "requires": { "chownr": "^1.0.1", "fs-minipass": "^1.2.5", @@ -6066,7 +6015,6 @@ "version": "1.1.2", "resolved": false, "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "optional": true, "requires": { "string-width": "^1.0.2" } @@ -6074,14 +6022,12 @@ "wrappy": { "version": "1.0.2", "resolved": false, - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "optional": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "yallist": { "version": "3.0.2", "resolved": false, - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", - "optional": true + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" } } }, @@ -6464,7 +6410,8 @@ "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true }, "encoding": { "version": "0.1.12", @@ -6509,7 +6456,7 @@ }, "debug": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { @@ -6518,7 +6465,7 @@ }, "ms": { "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true }, @@ -6552,7 +6499,7 @@ "dependencies": { "debug": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { @@ -6561,7 +6508,7 @@ }, "ms": { "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true } @@ -6622,6 +6569,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, "requires": { "is-arrayish": "^0.2.1" }, @@ -6629,7 +6577,8 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true } } }, @@ -6683,12 +6632,12 @@ "es6-promise": { "version": "4.2.5", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", - "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==", + "integrity": "sha1-2m0NVpLvtGHggsFIF/4kJ9j10FQ=", "dev": true }, "es6-promisify": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "resolved": "http://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { @@ -6888,14 +6837,16 @@ "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" } }, "load-json-file": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "resolved": "http://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.2", "parse-json": "^2.2.0", @@ -6907,6 +6858,7 @@ "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" @@ -6916,6 +6868,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, "requires": { "p-try": "^1.0.0" } @@ -6924,6 +6877,7 @@ "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" } @@ -6931,12 +6885,14 @@ "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true }, "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.2.0" } @@ -6945,6 +6901,7 @@ "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.0.0" } @@ -6952,12 +6909,14 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "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.3.2", @@ -6979,8 +6938,8 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "decamelize": "^1.1.1", + "window-size": "^0.1.4" } } } @@ -7357,16 +7316,18 @@ "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true }, "finalhandler": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", "dev": true, "requires": { @@ -7401,6 +7362,7 @@ "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" } @@ -7416,13 +7378,8 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.4.0", - "unpipe": "~1.0.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1" } }, "send": { @@ -7690,7 +7647,7 @@ "figgy-pudding": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", + "integrity": "sha1-hiRwESkBxyeg5JWoB0S9W6odZ5A=", "dev": true }, "figures": { @@ -7748,7 +7705,7 @@ }, "finalhandler": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.1.0.tgz", + "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-0.1.0.tgz", "integrity": "sha1-2gW7xPX0owyEzh2R88FUAHxOnao=", "dev": true, "requires": { @@ -7758,7 +7715,7 @@ "dependencies": { "debug": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz", + "resolved": "http://registry.npmjs.org/debug/-/debug-1.0.4.tgz", "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=", "dev": true, "requires": { @@ -7767,7 +7724,7 @@ }, "ms": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz", + "resolved": "http://registry.npmjs.org/ms/-/ms-0.6.2.tgz", "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=", "dev": true } @@ -8339,7 +8296,7 @@ "genfun": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", - "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", + "integrity": "sha1-ndlxCgaQClxKW/V6yl2k5S/nZTc=", "dev": true }, "get-caller-file": { @@ -8878,7 +8835,7 @@ }, "got": { "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz", "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { @@ -9401,7 +9358,8 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "requires": { - "is-posix-bracket": "^0.1.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1" } }, "resolve": { @@ -9459,7 +9417,7 @@ }, "yargs": { "version": "3.32.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", "dev": true, "requires": { @@ -9491,10 +9449,14 @@ } }, "gulp-sass-variables": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/gulp-sass-variables/-/gulp-sass-variables-1.1.1.tgz", + "integrity": "sha1-lZIVkPihuEpofryz7Lwwp0vO9E0=", + "dev": true, + "requires": { + "gulp-util": "^3.0.7", + "through2": "^2.0.1" + } }, "gulp-server-livereload": { "version": "1.9.2", @@ -9630,7 +9592,7 @@ }, "lodash": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "resolved": "http://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", "dev": true }, @@ -9690,7 +9652,7 @@ }, "readable-stream": { "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { @@ -10271,7 +10233,7 @@ "http-cache-semantics": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "integrity": "sha1-ObDhat2bYFvwqe89nar0hDtMrNI=", "dev": true }, "http-deceiver": { @@ -10282,7 +10244,7 @@ }, "http-errors": { "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { @@ -10320,7 +10282,7 @@ "http-proxy-agent": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "integrity": "sha1-5IIb7vWyFCogJr1zkm/lN2McVAU=", "dev": true, "requires": { "agent-base": "4", @@ -10330,7 +10292,7 @@ "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", "dev": true, "requires": { "ms": "2.0.0" @@ -10370,7 +10332,7 @@ "https-proxy-agent": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "integrity": "sha1-UVUpcPoE1yPgTFbQQXjD+SWSu8A=", "dev": true, "requires": { "agent-base": "^4.1.0", @@ -10380,7 +10342,7 @@ "debug": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", "dev": true, "requires": { "ms": "^2.1.1" @@ -10389,7 +10351,7 @@ "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", "dev": true } } @@ -10405,7 +10367,7 @@ }, "hunspell-asm": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hunspell-asm/-/hunspell-asm-1.0.2.tgz", + "resolved": "http://registry.npmjs.org/hunspell-asm/-/hunspell-asm-1.0.2.tgz", "integrity": "sha512-UTLBvc0yZiIcHl9qrgxnFTZbX3zF4CprzEY+u+N0iXlUKZnUJRIgvgppTdgiQTsucm5b0aN/rHsgXz2q/0kBRA==", "requires": { "emscripten-wasm-loader": "^1.0.0", @@ -10483,7 +10445,7 @@ "ignore-walk": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "integrity": "sha1-qD5i59JyrA47VRqqgoMaGbafgvg=", "dev": true, "requires": { "minimatch": "^3.0.4" @@ -10525,7 +10487,7 @@ "import-local": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", - "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", + "integrity": "sha1-Xk/9wD9P5sAJxnKb6yljHC+CJ7w=", "dev": true, "requires": { "pkg-dir": "^2.0.0", @@ -10588,7 +10550,7 @@ "init-package-json": { "version": "1.10.3", "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz", - "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", + "integrity": "sha1-Rf/i9hCoyhNPK9HbVjeyNQcPbL4=", "dev": true, "requires": { "glob": "^7.1.1", @@ -10692,7 +10654,7 @@ "inversify": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/inversify/-/inversify-5.0.1.tgz", - "integrity": "sha512-Ieh06s48WnEYGcqHepdsJUIJUXpwH5o5vodAX+DK2JA/gjy4EbEcQZxw+uFfzysmKjiLXGYwNG3qDZsKVMcINQ==", + "integrity": "sha1-UA1wmxQ0iWzloNWJFcSkIQ40+24=", "dev": true }, "invert-kv": { @@ -10721,7 +10683,7 @@ }, "is": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is/-/is-0.3.0.tgz", + "resolved": "http://registry.npmjs.org/is/-/is-0.3.0.tgz", "integrity": "sha1-qPcd/IpuKDcWJ/JskpCYxvTV1dc=", "dev": true }, @@ -10945,7 +10907,7 @@ }, "is-obj": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, @@ -10989,7 +10951,8 @@ "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", @@ -11126,7 +11089,7 @@ }, "isemail": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz", + "resolved": "http://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz", "integrity": "sha1-vgPfjMPineTSxd9lASY/H6RZXpo=" }, "isexe": { @@ -11157,7 +11120,7 @@ }, "joi": { "version": "6.10.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz", + "resolved": "http://registry.npmjs.org/joi/-/joi-6.10.1.tgz", "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=", "requires": { "hoek": "2.x.x", @@ -11554,7 +11517,7 @@ "libnpmaccess": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-3.0.1.tgz", - "integrity": "sha512-RlZ7PNarCBt+XbnP7R6PoVgOq9t+kou5rvhaInoNibhPO7eMlRfS0B8yjatgn2yaHIwWNyoJDolC/6Lc5L/IQA==", + "integrity": "sha1-Wzqd5iHyk9QlGRqi53kQL4QWf6g=", "dev": true, "requires": { "aproba": "^2.0.0", @@ -11566,7 +11529,7 @@ "aproba": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "integrity": "sha1-UlILiuW1aSFbNU78DKo/4eRaitw=", "dev": true } } @@ -12012,7 +11975,7 @@ "make-fetch-happen": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz", - "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==", + "integrity": "sha1-FBSXy4ePJDupMTbIPYq6EsIWwIM=", "dev": true, "requires": { "agentkeepalive": "^3.4.1", @@ -12103,7 +12066,7 @@ }, "media-typer": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, @@ -12194,7 +12157,7 @@ }, "readable-stream": { "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { @@ -12225,7 +12188,7 @@ "merge2": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", - "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", + "integrity": "sha1-fumdvWm7ZIFoklPwGEiKG5ArDtU=", "dev": true }, "methods": { @@ -12319,7 +12282,7 @@ }, "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "minimist-options": { @@ -12352,7 +12315,7 @@ "mississippi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", "dev": true, "requires": { "concat-stream": "^1.5.0", @@ -12390,7 +12353,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" @@ -12398,7 +12361,7 @@ "dependencies": { "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" } } @@ -12562,7 +12525,7 @@ }, "multimatch": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "resolved": "http://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", "dev": true, "requires": { @@ -12700,7 +12663,7 @@ "node-fetch-npm": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", - "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", + "integrity": "sha1-cljJBGGC3KNFtCCO2pGNrzNpf/c=", "dev": true, "requires": { "encoding": "^0.1.11", @@ -12736,7 +12699,7 @@ "dependencies": { "semver": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "resolved": "http://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "dev": true }, @@ -13914,7 +13877,7 @@ "p-map": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "integrity": "sha1-5OlPMR6rvIYzoeeZCBZfyiYkG2s=", "dev": true }, "p-map-series": { @@ -14087,7 +14050,7 @@ "dependencies": { "color-convert": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", + "resolved": "http://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=", "dev": true } @@ -14221,7 +14184,8 @@ "parseurl": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "dev": true }, "pascalcase": { "version": "0.1.1", @@ -14231,7 +14195,7 @@ }, "path-browserify": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "resolved": "http://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", "dev": true }, @@ -14510,7 +14474,7 @@ }, "pretty-hrtime": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "resolved": "http://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", "dev": true }, @@ -14663,7 +14627,7 @@ "protoduck": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", - "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", + "integrity": "sha1-A8NlnKGAB7aaUP2Cp+vMUWJhFR8=", "dev": true, "requires": { "genfun": "^5.0.0" @@ -15011,7 +14975,7 @@ }, "react-router": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-3.2.1.tgz", + "resolved": "http://registry.npmjs.org/react-router/-/react-router-3.2.1.tgz", "integrity": "sha512-SXkhC0nr3G0ltzVU07IN8jYl0bB6FsrDIqlLC9dK3SITXqyTJyM7yhXlUqs89w3Nqi5OkXsfRUeHX+P874HQrg==", "requires": { "create-react-class": "^15.5.1", @@ -15126,7 +15090,7 @@ "read-package-json": { "version": "2.0.13", "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.13.tgz", - "integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==", + "integrity": "sha1-LoLr2fYTuqbS6+Oqcs7+P2jkH0o=", "dev": true, "requires": { "glob": "^7.1.1", @@ -15147,7 +15111,7 @@ "read-package-tree": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.2.1.tgz", - "integrity": "sha512-2CNoRoh95LxY47LvqrehIAfUVda2JbuFE/HaGYs42bNrGG+ojbw1h3zOcPcQ+1GQ3+rkzNndZn85u1XyZ3UsIA==", + "integrity": "sha1-Yhixh9b6yCKJzkOHu7r47vU2rWM=", "dev": true, "requires": { "debuglog": "^1.0.1", @@ -15515,7 +15479,7 @@ }, "htmlparser2": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", + "resolved": "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", "dev": true, "requires": { @@ -15533,7 +15497,7 @@ }, "readable-stream": { "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { @@ -15545,7 +15509,7 @@ }, "string_decoder": { "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, @@ -16168,7 +16132,7 @@ "dependencies": { "debug": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz", + "resolved": "http://registry.npmjs.org/debug/-/debug-1.0.4.tgz", "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=", "dev": true, "requires": { @@ -16183,7 +16147,7 @@ }, "ms": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz", + "resolved": "http://registry.npmjs.org/ms/-/ms-0.6.2.tgz", "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=", "dev": true } @@ -16260,7 +16224,7 @@ }, "sha.js": { "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "requires": { @@ -16511,7 +16475,7 @@ "dependencies": { "debug": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { @@ -16520,7 +16484,7 @@ }, "ms": { "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true }, @@ -16544,7 +16508,7 @@ "dependencies": { "debug": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { @@ -16553,7 +16517,7 @@ }, "ms": { "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true } @@ -16580,7 +16544,7 @@ "dependencies": { "debug": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", "dev": true, "requires": { @@ -16589,7 +16553,7 @@ }, "ms": { "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz", "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", "dev": true } @@ -16615,7 +16579,7 @@ }, "debug": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", "dev": true, "requires": { @@ -16630,7 +16594,7 @@ }, "ms": { "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.1.tgz", "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", "dev": true } @@ -16706,7 +16670,7 @@ "socks-proxy-agent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz", - "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", + "integrity": "sha1-WTa/i3B6mTB5xvN9sgkYIb/6ZHM=", "dev": true, "requires": { "agent-base": "~4.2.0", @@ -16943,7 +16907,7 @@ "ssri": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", "dev": true, "requires": { "figgy-pudding": "^3.5.1" @@ -16985,7 +16949,8 @@ "statuses": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true }, "stdout-stream": { "version": "1.4.1", @@ -17061,7 +17026,7 @@ "stream-each": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -17152,7 +17117,8 @@ "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true }, "strip-eof": { "version": "1.0.0", @@ -17456,7 +17422,7 @@ }, "through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, @@ -17728,7 +17694,7 @@ "tslint": { "version": "5.12.0", "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.12.0.tgz", - "integrity": "sha512-CKEcH1MHUBhoV43SA/Jmy1l24HJJgI0eyLbBNSRyFlsQvb9v6Zdq+Nz2vEOH00nC5SUx4SneJ59PZUS/ARcokQ==", + "integrity": "sha1-R/LbopHtPVgHUtEJhm+2QHaPyjY=", "dev": true, "requires": { "babel-code-frame": "^6.22.0", @@ -17748,7 +17714,7 @@ "tslint-config-airbnb": { "version": "5.11.1", "resolved": "https://registry.npmjs.org/tslint-config-airbnb/-/tslint-config-airbnb-5.11.1.tgz", - "integrity": "sha512-hkaittm2607vVMe8eotANGN1CimD5tor7uoY3ypg2VTtEcDB/KGWYbJOz58t8LI4cWSyWtgqYQ5F0HwKxxhlkQ==", + "integrity": "sha1-UaJ/u4vyTBRNBkonSnHaR+fs5hc=", "dev": true, "requires": { "tslint-consistent-codestyle": "^1.14.1", @@ -17770,7 +17736,7 @@ "tslint-eslint-rules": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", - "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "integrity": "sha1-5IjMkYG/GT/lzXv8ohOnaV8XN7U=", "dev": true, "requires": { "doctrine": "0.7.2", @@ -17780,7 +17746,7 @@ "dependencies": { "doctrine": { "version": "0.7.2", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", + "resolved": "http://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=", "dev": true, "requires": { @@ -17803,7 +17769,7 @@ "tslib": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "integrity": "sha1-43qG/ajLuvI6BX9HPJ9Nxk5fwug=", "dev": true }, "tsutils": { @@ -17820,7 +17786,7 @@ "tslint-microsoft-contrib": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/tslint-microsoft-contrib/-/tslint-microsoft-contrib-5.2.1.tgz", - "integrity": "sha512-PDYjvpo0gN9IfMULwKk0KpVOPMhU6cNoT9VwCOLeDl/QS8v8W2yspRpFFuUS7/c5EIH/n8ApMi8TxJAz1tfFUA==", + "integrity": "sha1-pihoOfgA4lkdBB6igAx3SHhErYE=", "dev": true, "requires": { "tsutils": "^2.27.2 <2.29.0" @@ -17829,7 +17795,7 @@ "tsutils": { "version": "2.28.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.28.0.tgz", - "integrity": "sha512-bh5nAtW0tuhvOJnx1GLRn5ScraRLICGyJV5wJhtRWOLsxW70Kk5tZtpK3O/hW6LDnqKS9mlUMPZj9fEMJ0gxqA==", + "integrity": "sha1-a9ceFggo+dAZtvToRHQiKPhRaaE=", "dev": true, "requires": { "tslib": "^1.8.1" @@ -17840,7 +17806,7 @@ "tsutils": { "version": "2.29.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "integrity": "sha1-MrSIUBRnrL7dS4VJhnOggSrKC5k=", "dev": true, "requires": { "tslib": "^1.8.1" @@ -17848,7 +17814,7 @@ }, "tty-browserify": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "resolved": "http://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "dev": true }, @@ -17895,7 +17861,7 @@ "typescript": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.2.tgz", - "integrity": "sha512-VCj5UiSyHBjwfYacmDuc/NOk4QQixbE+Wn7MFJuS0nRuPQbof132Pw4u53dm264O8LPc2MVsc7RJNml5szurkg==", + "integrity": "sha1-/oEBxGqhI/g1NSPr3PVzDCrkk+U=", "dev": true }, "ua-parser-js": { @@ -18034,7 +18000,7 @@ "unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", "dev": true, "requires": { "unique-slug": "^2.0.0" @@ -18043,7 +18009,7 @@ "unique-slug": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", - "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", + "integrity": "sha1-Xp7cbRzo+yZNsYpQfvm9hURFHKY=", "dev": true, "requires": { "imurmurhash": "^0.1.4" @@ -18093,7 +18059,8 @@ "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true }, "unset-value": { "version": "1.0.0", @@ -18487,7 +18454,7 @@ }, "vm-browserify": { "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "resolved": "http://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", "dev": true, "requires": { @@ -18592,7 +18559,7 @@ "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==", + "integrity": "sha1-qFWYCx8LazWbodXZ+zmulB+qY60=", "dev": true }, "webpack": { @@ -19003,8 +18970,7 @@ "window-size": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", - "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", - "dev": true + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=" }, "windows-notification-state": { "version": "1.3.0", @@ -19084,7 +19050,7 @@ }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { @@ -19192,7 +19158,7 @@ "write-pkg": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz", - "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==", + "integrity": "sha1-DheP6Xgg04mokovHlTXb5ows/yE=", "dev": true, "requires": { "sort-keys": "^2.0.0", @@ -19234,7 +19200,7 @@ }, "xmlbuilder": { "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", "dev": true }, diff --git a/package.json b/package.json index ed830b536..912ee4662 100644 --- a/package.json +++ b/package.json @@ -130,7 +130,7 @@ "gulp-babel": "^8.0.0", "gulp-cli": "1.2.2", "gulp-sass": "^4.0.2", - "gulp-sass-variables": "^1.1.1", + "gulp-sass-variables": "1.1.1", "gulp-server-livereload": "^1.9.2", "hex-rgb": "3.0.0", "html-webpack-plugin": "4.0.0-beta.5", -- cgit v1.2.3-54-g00ecf From 9f0a77af747060a42bd8789672fb2f2a870636d8 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Fri, 22 Feb 2019 17:15:56 +0100 Subject: fix merge conflict --- packages/forms/src/input/index.tsx | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/forms/src/input/index.tsx b/packages/forms/src/input/index.tsx index 68bb5ac57..6be29e6e5 100644 --- a/packages/forms/src/input/index.tsx +++ b/packages/forms/src/input/index.tsx @@ -109,11 +109,8 @@ class InputComponent extends Component { placeholder, spellCheck, onBlur, -<<<<<<< HEAD onEnterKey, -======= onFocus, ->>>>>>> develop } = this.props; const { -- cgit v1.2.3-54-g00ecf From a761f7cf596353b7ea21fced7b598b1ec44f9c50 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Tue, 26 Feb 2019 13:31:12 +0100 Subject: fix bug in form input library --- packages/forms/src/input/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/forms/src/input/index.tsx b/packages/forms/src/input/index.tsx index 6be29e6e5..cc3709b1a 100644 --- a/packages/forms/src/input/index.tsx +++ b/packages/forms/src/input/index.tsx @@ -147,7 +147,7 @@ class InputComponent extends Component { id={id} type={inputType} name={name} - defaultValue={value as string} + value={value as string} placeholder={placeholder} spellCheck={spellCheck} className={classes.input} -- cgit v1.2.3-54-g00ecf From ff4c9c7f527e911c37cf02a5d048f5e6652ed253 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Tue, 26 Feb 2019 13:31:43 +0100 Subject: improve workspace form setup --- .../workspaces/components/CreateWorkspaceForm.js | 29 ++++++------- .../workspaces/components/EditWorkspaceForm.js | 50 ++++++++++++++-------- .../workspaces/containers/EditWorkspaceScreen.js | 2 +- 3 files changed, 46 insertions(+), 35 deletions(-) diff --git a/src/features/workspaces/components/CreateWorkspaceForm.js b/src/features/workspaces/components/CreateWorkspaceForm.js index d440b9bae..83f6e07f7 100644 --- a/src/features/workspaces/components/CreateWorkspaceForm.js +++ b/src/features/workspaces/components/CreateWorkspaceForm.js @@ -4,8 +4,8 @@ import { observer } from 'mobx-react'; import { defineMessages, intlShape } from 'react-intl'; import { Input, Button } from '@meetfranz/forms'; import injectSheet from 'react-jss'; - import Form from '../../../lib/Form'; +import { required } from '../../../helpers/validation-helpers'; const messages = defineMessages({ submitButton: { @@ -28,11 +28,11 @@ const styles = () => ({ }, submitButton: { height: 'inherit', - marginTop: '17px', + marginTop: '3px', }, }); -@observer @injectSheet(styles) +@injectSheet(styles) @observer class CreateWorkspaceForm extends Component { static contextTypes = { intl: intlShape, @@ -43,46 +43,45 @@ class CreateWorkspaceForm extends Component { onSubmit: PropTypes.func.isRequired, }; - prepareForm() { + form = (() => { const { intl } = this.context; - const config = { + return new Form({ fields: { name: { label: intl.formatMessage(messages.name), placeholder: intl.formatMessage(messages.name), value: '', + validators: [required], }, }, - }; - return new Form(config); - } + }); + })(); - submitForm(form) { + submitForm() { + const { form } = this; form.submit({ onSuccess: async (f) => { const { onSubmit } = this.props; - const values = f.values(); - onSubmit(values); + onSubmit(f.values()); }, - onError: async () => {}, }); } render() { const { intl } = this.context; const { classes } = this.props; - const form = this.prepareForm(); - + const { form } = this; return (
diff --git a/src/features/workspaces/containers/EditWorkspaceScreen.js b/src/features/workspaces/containers/EditWorkspaceScreen.js index 1ddf8dfcb..17b723303 100644 --- a/src/features/workspaces/containers/EditWorkspaceScreen.js +++ b/src/features/workspaces/containers/EditWorkspaceScreen.js @@ -3,8 +3,8 @@ import { inject, observer } from 'mobx-react'; import PropTypes from 'prop-types'; import ErrorBoundary from '../../../components/util/ErrorBoundary'; -import { state } from '../state'; import EditWorkspaceForm from '../components/EditWorkspaceForm'; +import { state } from '../state'; @inject('stores', 'actions') @observer class EditWorkspaceScreen extends Component { -- cgit v1.2.3-54-g00ecf From dca7437b45c8eb67692a1df563fb4e969826b1cc Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Tue, 26 Feb 2019 15:29:34 +0100 Subject: finish basic workspace settings --- src/features/workspaces/actions.js | 3 ++ src/features/workspaces/api.js | 11 +++++ .../workspaces/components/EditWorkspaceForm.js | 46 +++++++++++++++++++-- .../workspaces/components/ServiceListItem.js | 48 ++++++++++++++++++++++ .../workspaces/containers/EditWorkspaceScreen.js | 14 ++++++- src/features/workspaces/models/Workspace.js | 2 +- src/features/workspaces/store.js | 12 ++++++ src/i18n/locales/de.json | 1 + src/i18n/locales/en-US.json | 1 + 9 files changed, 132 insertions(+), 6 deletions(-) create mode 100644 src/features/workspaces/components/ServiceListItem.js diff --git a/src/features/workspaces/actions.js b/src/features/workspaces/actions.js index 83d3447c3..84de2b011 100644 --- a/src/features/workspaces/actions.js +++ b/src/features/workspaces/actions.js @@ -11,4 +11,7 @@ export default { delete: { workspace: PropTypes.instanceOf(Workspace).isRequired, }, + update: { + workspace: PropTypes.instanceOf(Workspace).isRequired, + }, }; diff --git a/src/features/workspaces/api.js b/src/features/workspaces/api.js index fabc12455..733cb5593 100644 --- a/src/features/workspaces/api.js +++ b/src/features/workspaces/api.js @@ -1,3 +1,4 @@ +import { pick } from 'lodash'; import { sendAuthRequest } from '../../api/utils/auth'; import { API, API_VERSION } from '../../environment'; @@ -25,4 +26,14 @@ export default { if (!request.ok) throw request; return request.json(); }, + + updateWorkspace: async (workspace) => { + const url = `${API}/${API_VERSION}/workspace/${workspace.id}`; + const request = await sendAuthRequest(url, { + method: 'PUT', + body: JSON.stringify(pick(workspace, ['name', 'services'])), + }); + if (!request.ok) throw request; + return request.json(); + }, }; diff --git a/src/features/workspaces/components/EditWorkspaceForm.js b/src/features/workspaces/components/EditWorkspaceForm.js index 05ca65403..48090f608 100644 --- a/src/features/workspaces/components/EditWorkspaceForm.js +++ b/src/features/workspaces/components/EditWorkspaceForm.js @@ -7,8 +7,10 @@ import { Input, Button } from '@meetfranz/forms'; import injectSheet from 'react-jss'; import Workspace from '../models/Workspace'; +import Service from '../../../models/Service'; import Form from '../../../lib/Form'; import { required } from '../../../helpers/validation-helpers'; +import ServiceListItem from './ServiceListItem'; const messages = defineMessages({ buttonDelete: { @@ -27,12 +29,19 @@ const messages = defineMessages({ id: 'settings.workspace.form.yourWorkspaces', defaultMessage: '!!!Your workspaces', }, + servicesInWorkspaceHeadline: { + id: 'settings.workspace.form.servicesInWorkspaceHeadline', + defaultMessage: '!!!Services in this Workspace', + }, }); const styles = () => ({ nameInput: { height: 'auto', }, + serviceList: { + height: 'auto', + }, }); @injectSheet(styles) @observer @@ -42,11 +51,13 @@ class EditWorkspaceForm extends Component { }; static propTypes = { - workspace: PropTypes.instanceOf(Workspace).isRequired, - onSave: PropTypes.func.isRequired, - onDelete: PropTypes.func.isRequired, - isSaving: PropTypes.bool.isRequired, + classes: PropTypes.object.isRequired, isDeleting: PropTypes.bool.isRequired, + isSaving: PropTypes.bool.isRequired, + onDelete: PropTypes.func.isRequired, + onSave: PropTypes.func.isRequired, + services: PropTypes.arrayOf(PropTypes.instanceOf(Service)).isRequired, + workspace: PropTypes.instanceOf(Workspace).isRequired, }; form = this.prepareWorkspaceForm(this.props.workspace); @@ -68,6 +79,9 @@ class EditWorkspaceForm extends Component { value: workspace.name, validators: [required], }, + services: { + value: workspace.services.slice(), + }, }, }); } @@ -83,6 +97,17 @@ class EditWorkspaceForm extends Component { }); } + toggleService(service) { + const servicesField = this.form.$('services'); + const serviceIds = servicesField.value; + if (serviceIds.includes(service.id)) { + serviceIds.splice(serviceIds.indexOf(service.id), 1); + } else { + serviceIds.push(service.id); + } + servicesField.set(serviceIds); + } + render() { const { intl } = this.context; const { @@ -91,8 +116,10 @@ class EditWorkspaceForm extends Component { isSaving, onDelete, workspace, + services, } = this.props; const { form } = this; + const workspaceServices = form.$('services').value; return (
@@ -110,6 +137,17 @@ class EditWorkspaceForm extends Component {
+

{intl.formatMessage(messages.servicesInWorkspaceHeadline)}

+
+ {services.map(s => ( + this.toggleService(s)} + /> + ))} +
{/* ===== Delete Button ===== */} diff --git a/src/features/workspaces/components/ServiceListItem.js b/src/features/workspaces/components/ServiceListItem.js new file mode 100644 index 000000000..146cc5a36 --- /dev/null +++ b/src/features/workspaces/components/ServiceListItem.js @@ -0,0 +1,48 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { observer } from 'mobx-react'; +import injectSheet from 'react-jss'; +import { Toggle } from '@meetfranz/forms'; + +import Service from '../../../models/Service'; + +const styles = () => ({ + service: { + height: 'auto', + display: 'flex', + }, + name: { + marginTop: '4px', + }, +}); + +@injectSheet(styles) @observer +class ServiceListItem extends Component { + static propTypes = { + classes: PropTypes.object.isRequired, + isInWorkspace: PropTypes.bool.isRequired, + onToggle: PropTypes.func.isRequired, + service: PropTypes.instanceOf(Service).isRequired, + }; + + render() { + const { + classes, + isInWorkspace, + onToggle, + service, + } = this.props; + + return ( +
+ +
+ ); + } +} + +export default ServiceListItem; diff --git a/src/features/workspaces/containers/EditWorkspaceScreen.js b/src/features/workspaces/containers/EditWorkspaceScreen.js index 17b723303..790b8a0fe 100644 --- a/src/features/workspaces/containers/EditWorkspaceScreen.js +++ b/src/features/workspaces/containers/EditWorkspaceScreen.js @@ -5,6 +5,8 @@ import PropTypes from 'prop-types'; import ErrorBoundary from '../../../components/util/ErrorBoundary'; import EditWorkspaceForm from '../components/EditWorkspaceForm'; import { state } from '../state'; +import ServicesStore from '../../../stores/ServicesStore'; +import Workspace from '../models/Workspace'; @inject('stores', 'actions') @observer class EditWorkspaceScreen extends Component { @@ -14,6 +16,9 @@ class EditWorkspaceScreen extends Component { delete: PropTypes.func.isRequired, }), }).isRequired, + stores: PropTypes.shape({ + services: PropTypes.instanceOf(ServicesStore).isRequired, + }).isRequired, }; onDelete = () => { @@ -24,16 +29,23 @@ class EditWorkspaceScreen extends Component { }; onSave = (values) => { - console.log('save workspace', values); + const { workspaceBeingEdited } = state; + const { actions } = this.props; + const workspace = new Workspace( + Object.assign({}, workspaceBeingEdited, values), + ); + actions.workspace.update({ workspace }); }; render() { const { workspaceBeingEdited } = state; + const { stores } = this.props; if (!workspaceBeingEdited) return null; return ( { @@ -88,4 +89,15 @@ export default class WorkspacesStore extends Store { throw error; } }; + + _update = async ({ workspace }) => { + try { + await this.api.updateWorkspace(workspace); + const localWorkspace = this.state.workspaces.find(ws => ws.id === workspace.id); + Object.assign(localWorkspace, workspace); + this.stores.router.push('/settings/workspaces'); + } catch (error) { + throw error; + } + }; } diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index e1a955176..4906070a3 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -224,6 +224,7 @@ "settings.workspace.form.name": "Name", "settings.workspace.form.buttonDelete": "Workspace löschen", "settings.workspace.form.buttonSave": "Workspace speichern", + "settings.workspace.form.servicesInWorkspaceHeadline": "Services in diesem Workspace", "settings.user.form.accountType.company" : "Firma", "settings.user.form.accountType.individual" : "Einzelperson", "settings.user.form.accountType.label" : "Konto-Typ", diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index fe16e916f..cd5c417e3 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -207,6 +207,7 @@ "settings.workspace.form.name": "Name", "settings.workspace.form.buttonDelete": "Delete Workspace", "settings.workspace.form.buttonSave": "Save Workspace", + "settings.workspace.form.servicesInWorkspaceHeadline": "Services in this Workspace", "subscription.type.free": "free", "subscription.type.month": "month", "subscription.type.year": "year", -- cgit v1.2.3-54-g00ecf From 739ef2e8a2dec94c3e10c3d26d797fe759fac7aa Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Fri, 1 Mar 2019 14:25:44 +0100 Subject: finish workspaces mvp --- src/actions/index.js | 8 ++- src/actions/lib/actions.js | 29 +++++---- src/components/layout/Sidebar.js | 2 +- src/components/services/tabs/Tabbar.js | 4 +- src/features/workspaces/actions.js | 9 ++- .../workspaces/containers/EditWorkspaceScreen.js | 12 ++-- .../workspaces/containers/WorkspacesScreen.js | 10 +-- src/features/workspaces/index.js | 40 +++++++++++- src/features/workspaces/state.js | 6 +- src/features/workspaces/store.js | 37 +++++++---- src/i18n/locales/de.json | 5 +- src/i18n/locales/en-US.json | 5 +- src/lib/Menu.js | 71 +++++++++++++++++++++- src/stores/ServicesStore.js | 12 ++-- 14 files changed, 193 insertions(+), 57 deletions(-) diff --git a/src/actions/index.js b/src/actions/index.js index 45e6da515..00f843cd6 100644 --- a/src/actions/index.js +++ b/src/actions/index.js @@ -11,7 +11,7 @@ import payment from './payment'; import news from './news'; import settings from './settings'; import requests from './requests'; -import workspace from '../features/workspaces/actions'; +import workspaces from '../features/workspaces/actions'; const actions = Object.assign({}, { service, @@ -24,7 +24,9 @@ const actions = Object.assign({}, { news, settings, requests, - workspace, }); -export default defineActions(actions, PropTypes.checkPropTypes); +export default Object.assign( + defineActions(actions, PropTypes.checkPropTypes), + { workspaces }, +); diff --git a/src/actions/lib/actions.js b/src/actions/lib/actions.js index 499018d70..6571e9441 100644 --- a/src/actions/lib/actions.js +++ b/src/actions/lib/actions.js @@ -1,18 +1,23 @@ +export const createActionsFromDefinitions = (actionDefinitions, validate) => { + const actions = {}; + Object.keys(actionDefinitions).forEach((actionName) => { + const action = (params) => { + const schema = actionDefinitions[actionName]; + validate(schema, params, actionName); + action.notify(params); + }; + actions[actionName] = action; + action.listeners = []; + action.listen = listener => action.listeners.push(listener); + action.notify = params => action.listeners.forEach(listener => listener(params)); + }); + return actions; +}; + export default (definitions, validate) => { const newActions = {}; Object.keys(definitions).forEach((scopeName) => { - newActions[scopeName] = {}; - Object.keys(definitions[scopeName]).forEach((actionName) => { - const action = (params) => { - const schema = definitions[scopeName][actionName]; - validate(schema, params, actionName); - action.notify(params); - }; - newActions[scopeName][actionName] = action; - action.listeners = []; - action.listen = listener => action.listeners.push(listener); - action.notify = params => action.listeners.forEach(listener => listener(params)); - }); + newActions[scopeName] = createActionsFromDefinitions(definitions[scopeName], validate); }); return newActions; }; diff --git a/src/components/layout/Sidebar.js b/src/components/layout/Sidebar.js index 609a3b604..fcc5b0001 100644 --- a/src/components/layout/Sidebar.js +++ b/src/components/layout/Sidebar.js @@ -31,7 +31,7 @@ export default @observer class Sidebar extends Component { openSettings: PropTypes.func.isRequired, toggleMuteApp: PropTypes.func.isRequired, isAppMuted: PropTypes.bool.isRequired, - } + }; static contextTypes = { intl: intlShape, diff --git a/src/components/services/tabs/Tabbar.js b/src/components/services/tabs/Tabbar.js index dd5c2140f..5e8260ad0 100644 --- a/src/components/services/tabs/Tabbar.js +++ b/src/components/services/tabs/Tabbar.js @@ -19,7 +19,7 @@ export default @observer class TabBar extends Component { updateService: PropTypes.func.isRequired, showMessageBadgeWhenMutedSetting: PropTypes.bool.isRequired, showMessageBadgesEvenWhenMuted: PropTypes.bool.isRequired, - } + }; onSortEnd = ({ oldIndex, newIndex }) => { const { @@ -45,7 +45,7 @@ export default @observer class TabBar extends Component { redirect: false, }); } - } + }; disableService({ serviceId }) { this.toggleService({ serviceId, isEnabled: false }); diff --git a/src/features/workspaces/actions.js b/src/features/workspaces/actions.js index 84de2b011..25246de09 100644 --- a/src/features/workspaces/actions.js +++ b/src/features/workspaces/actions.js @@ -1,7 +1,8 @@ import PropTypes from 'prop-types'; import Workspace from './models/Workspace'; +import { createActionsFromDefinitions } from '../../actions/lib/actions'; -export default { +export default createActionsFromDefinitions({ edit: { workspace: PropTypes.instanceOf(Workspace).isRequired, }, @@ -14,4 +15,8 @@ export default { update: { workspace: PropTypes.instanceOf(Workspace).isRequired, }, -}; + activate: { + workspace: PropTypes.instanceOf(Workspace).isRequired, + }, + deactivate: {}, +}, PropTypes.checkPropTypes); diff --git a/src/features/workspaces/containers/EditWorkspaceScreen.js b/src/features/workspaces/containers/EditWorkspaceScreen.js index 790b8a0fe..1b13bc2d4 100644 --- a/src/features/workspaces/containers/EditWorkspaceScreen.js +++ b/src/features/workspaces/containers/EditWorkspaceScreen.js @@ -4,7 +4,7 @@ import PropTypes from 'prop-types'; import ErrorBoundary from '../../../components/util/ErrorBoundary'; import EditWorkspaceForm from '../components/EditWorkspaceForm'; -import { state } from '../state'; +import { workspacesState } from '../state'; import ServicesStore from '../../../stores/ServicesStore'; import Workspace from '../models/Workspace'; @@ -22,23 +22,23 @@ class EditWorkspaceScreen extends Component { }; onDelete = () => { - const { workspaceBeingEdited } = state; + const { workspaceBeingEdited } = workspacesState; const { actions } = this.props; if (!workspaceBeingEdited) return null; - actions.workspace.delete({ workspace: workspaceBeingEdited }); + actions.workspaces.delete({ workspace: workspaceBeingEdited }); }; onSave = (values) => { - const { workspaceBeingEdited } = state; + const { workspaceBeingEdited } = workspacesState; const { actions } = this.props; const workspace = new Workspace( Object.assign({}, workspaceBeingEdited, values), ); - actions.workspace.update({ workspace }); + actions.workspaces.update({ workspace }); }; render() { - const { workspaceBeingEdited } = state; + const { workspaceBeingEdited } = workspacesState; const { stores } = this.props; if (!workspaceBeingEdited) return null; return ( diff --git a/src/features/workspaces/containers/WorkspacesScreen.js b/src/features/workspaces/containers/WorkspacesScreen.js index b89cbcf67..94e714255 100644 --- a/src/features/workspaces/containers/WorkspacesScreen.js +++ b/src/features/workspaces/containers/WorkspacesScreen.js @@ -1,7 +1,7 @@ import React, { Component } from 'react'; import { inject, observer } from 'mobx-react'; import PropTypes from 'prop-types'; -import { state } from '../state'; +import { workspacesState } from '../state'; import WorkspacesDashboard from '../components/WorkspacesDashboard'; import ErrorBoundary from '../../../components/util/ErrorBoundary'; @@ -20,10 +20,10 @@ class WorkspacesScreen extends Component { return ( actions.workspace.create(data)} - onWorkspaceClick={w => actions.workspace.edit({ workspace: w })} + workspaces={workspacesState.workspaces} + isLoading={workspacesState.isLoading} + onCreateWorkspaceSubmit={data => actions.workspaces.create(data)} + onWorkspaceClick={w => actions.workspaces.edit({ workspace: w })} /> ); diff --git a/src/features/workspaces/index.js b/src/features/workspaces/index.js index 50ac3b414..8091f49fc 100644 --- a/src/features/workspaces/index.js +++ b/src/features/workspaces/index.js @@ -1,14 +1,28 @@ -import { reaction } from 'mobx'; +import { reaction, runInAction } from 'mobx'; import WorkspacesStore from './store'; import api from './api'; -import { state, resetState } from './state'; +import { workspacesState, resetState } from './state'; const debug = require('debug')('Franz:feature:workspaces'); let store = null; +export const filterServicesByActiveWorkspace = (services) => { + const { isFeatureActive, activeWorkspace } = workspacesState; + if (isFeatureActive && activeWorkspace) { + return services.filter(s => activeWorkspace.services.includes(s.id)); + } + return services; +}; + +export const getActiveWorkspaceServices = (services) => { + return filterServicesByActiveWorkspace(services); +}; + export default function initWorkspaces(stores, actions) { const { features, user } = stores; + + // Toggle workspace feature reaction( () => ( features.features.isWorkspaceEnabled && ( @@ -18,10 +32,12 @@ export default function initWorkspaces(stores, actions) { (isEnabled) => { if (isEnabled) { debug('Initializing `workspaces` feature'); - store = new WorkspacesStore(stores, api, actions, state); + store = new WorkspacesStore(stores, api, actions, workspacesState); store.initialize(); + runInAction(() => { workspacesState.isFeatureActive = true; }); } else if (store) { debug('Disabling `workspaces` feature'); + runInAction(() => { workspacesState.isFeatureActive = false; }); store.teardown(); store = null; resetState(); // Reset state to default @@ -31,4 +47,22 @@ export default function initWorkspaces(stores, actions) { fireImmediately: true, }, ); + + // Update active service on workspace switches + reaction(() => ({ + isFeatureActive: workspacesState.isFeatureActive, + activeWorkspace: workspacesState.activeWorkspace, + }), ({ isFeatureActive, activeWorkspace }) => { + if (!isFeatureActive) return; + if (activeWorkspace) { + const services = stores.services.allDisplayed; + const activeService = services.find(s => s.isActive); + const workspaceServices = filterServicesByActiveWorkspace(services); + const isActiveServiceInWorkspace = workspaceServices.includes(activeService); + if (!isActiveServiceInWorkspace) { + console.log(workspaceServices[0].id); + actions.service.setActive({ serviceId: workspaceServices[0].id }); + } + } + }); } diff --git a/src/features/workspaces/state.js b/src/features/workspaces/state.js index f938c1470..963b96f81 100644 --- a/src/features/workspaces/state.js +++ b/src/features/workspaces/state.js @@ -1,13 +1,15 @@ import { observable } from 'mobx'; const defaultState = { + activeWorkspace: null, isLoading: false, + isFeatureActive: false, workspaces: [], workspaceBeingEdited: null, }; -export const state = observable(defaultState); +export const workspacesState = observable(defaultState); export function resetState() { - Object.assign(state, defaultState); + Object.assign(workspacesState, defaultState); } diff --git a/src/features/workspaces/store.js b/src/features/workspaces/store.js index 5cccb2ab7..a2997a0d2 100644 --- a/src/features/workspaces/store.js +++ b/src/features/workspaces/store.js @@ -1,8 +1,9 @@ -import { observable, reaction } from 'mobx'; +import { observable, reaction, action } from 'mobx'; import Store from '../../stores/lib/Store'; import CachedRequest from '../../stores/lib/CachedRequest'; import Workspace from './models/Workspace'; import { matchRoute } from '../../helpers/routing-helpers'; +import workspaceActions from './actions'; const debug = require('debug')('Franz:feature:workspaces'); @@ -48,28 +49,30 @@ export default class WorkspacesStore extends Store { }, ); - this.actions.workspace.edit.listen(this._edit); - this.actions.workspace.create.listen(this._create); - this.actions.workspace.delete.listen(this._delete); - this.actions.workspace.update.listen(this._update); + workspaceActions.edit.listen(this._edit); + workspaceActions.create.listen(this._create); + workspaceActions.delete.listen(this._delete); + workspaceActions.update.listen(this._update); + workspaceActions.activate.listen(this._setActiveWorkspace); + workspaceActions.deactivate.listen(this._deactivateActiveWorkspace); } - _setWorkspaces = (workspaces) => { + _getWorkspaceById = id => this.state.workspaces.find(w => w.id === id); + + @action _setWorkspaces = (workspaces) => { debug('setting user workspaces', workspaces.slice()); this.state.workspaces = workspaces.map(data => new Workspace(data)); }; - _setIsLoading = (isLoading) => { + @action _setIsLoading = (isLoading) => { this.state.isLoading = isLoading; }; - _getWorkspaceById = id => this.state.workspaces.find(w => w.id === id); - - _edit = ({ workspace }) => { + @action _edit = ({ workspace }) => { this.stores.router.push(`/settings/workspaces/edit/${workspace.id}`); }; - _create = async ({ name }) => { + @action _create = async ({ name }) => { try { const result = await this.api.createWorkspace(name); const workspace = new Workspace(result); @@ -80,7 +83,7 @@ export default class WorkspacesStore extends Store { } }; - _delete = async ({ workspace }) => { + @action _delete = async ({ workspace }) => { try { await this.api.deleteWorkspace(workspace); this.state.workspaces.remove(workspace); @@ -90,7 +93,7 @@ export default class WorkspacesStore extends Store { } }; - _update = async ({ workspace }) => { + @action _update = async ({ workspace }) => { try { await this.api.updateWorkspace(workspace); const localWorkspace = this.state.workspaces.find(ws => ws.id === workspace.id); @@ -100,4 +103,12 @@ export default class WorkspacesStore extends Store { throw error; } }; + + @action _setActiveWorkspace = ({ workspace }) => { + this.state.activeWorkspace = workspace; + }; + + @action _deactivateActiveWorkspace = () => { + this.state.activeWorkspace = null; + }; } diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 4906070a3..0c1fb8aa6 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -74,6 +74,9 @@ "menu.window" : "Fenster", "menu.window.close" : "Schließen", "menu.window.minimize" : "Minimieren", + "menu.workspaces": "Workspaces", + "menu.workspaces.defaultWorkspace": "All services", + "menu.workspaces.addNewWorkspace": "Add New Workspace", "password.email.label" : "E-Mail Adresse", "password.headline" : "Passwort zurücksetzen", "password.link.login" : "An Deinem Konto anmelden", @@ -224,7 +227,7 @@ "settings.workspace.form.name": "Name", "settings.workspace.form.buttonDelete": "Workspace löschen", "settings.workspace.form.buttonSave": "Workspace speichern", - "settings.workspace.form.servicesInWorkspaceHeadline": "Services in diesem Workspace", + "settings.workspace.form.servicesInWorkspaceHeadline": "Services in diesem Workspace", "settings.user.form.accountType.company" : "Firma", "settings.user.form.accountType.individual" : "Einzelperson", "settings.user.form.accountType.label" : "Konto-Typ", diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 988ac46f2..2a51662a2 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -276,7 +276,10 @@ "menu.app.hideOthers": "Hide Others", "menu.app.unhide": "Unhide", "menu.app.quit": "Quit", - "menu.services.addNewService": "Add New Service...", + "menu.services.addNewService": "Add New Service", + "menu.workspaces": "Workspaces", + "menu.workspaces.defaultWorkspace": "All services", + "menu.workspaces.addNewWorkspace": "Add New Workspace", "validation.required": "{field} is required", "validation.email": "{field} is not valid", "validation.url": "{field} is not a valid URL", diff --git a/src/lib/Menu.js b/src/lib/Menu.js index c378619ad..1560dd285 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js @@ -3,6 +3,8 @@ import { observable, autorun, computed } from 'mobx'; import { defineMessages } from 'react-intl'; import { isMac, ctrlKey, cmdKey } from '../environment'; +import { workspacesState } from '../features/workspaces/state'; +import workspaceActions from '../features/workspaces/actions'; const { app, Menu, dialog } = remote; @@ -179,6 +181,18 @@ const menuItems = defineMessages({ id: 'menu.services.addNewService', defaultMessage: '!!!Add New Service...', }, + workspaces: { + id: 'menu.workspaces', + defaultMessage: '!!!Workspaces', + }, + defaultWorkspace: { + id: 'menu.workspaces.defaultWorkspace', + defaultMessage: '!!!Default', + }, + addNewWorkspace: { + id: 'menu.workspaces.addNewWorkspace', + defaultMessage: '!!!Add New Workspace...', + }, }); function getActiveWebview() { @@ -265,6 +279,10 @@ const _templateFactory = intl => [ label: intl.formatMessage(menuItems.services), submenu: [], }, + { + label: intl.formatMessage(menuItems.workspaces), + submenu: [], + }, { label: intl.formatMessage(menuItems.window), role: 'window', @@ -499,7 +517,9 @@ export default class FranzMenu { } _build() { - const serviceTpl = Object.assign([], this.serviceTpl); // need to clone object so we don't modify computed (cached) object + // need to clone object so we don't modify computed (cached) object + const serviceTpl = Object.assign([], this.serviceTpl); + const workspacesMenu = Object.assign([], this.workspacesMenu); if (window.franz === undefined) { return; @@ -632,7 +652,7 @@ export default class FranzMenu { }, ); - tpl[4].submenu.unshift(about, { + tpl[5].submenu.unshift(about, { type: 'separator', }); } else { @@ -678,6 +698,8 @@ export default class FranzMenu { tpl[3].submenu = serviceTpl; } + tpl[4].submenu = workspacesMenu; + this.currentTemplate = tpl; const menu = Menu.buildFromTemplate(tpl); Menu.setApplicationMenu(menu); @@ -701,6 +723,51 @@ export default class FranzMenu { return []; } + @computed get workspacesMenu() { + const { workspaces, activeWorkspace } = workspacesState; + const { intl } = window.franz; + const menu = []; + + // Add new workspace item: + menu.push({ + label: intl.formatMessage(menuItems.addNewWorkspace), + accelerator: `${cmdKey}+Shift+N`, + click: () => { + this.actions.ui.openSettings({ path: 'workspaces' }); + }, + enabled: this.stores.user.isLoggedIn, + }, { + type: 'separator', + }); + + // Default workspace + menu.push({ + label: intl.formatMessage(menuItems.defaultWorkspace), + accelerator: `${cmdKey}+Alt+1`, + type: 'radio', + checked: !activeWorkspace, + click: () => { + workspaceActions.deactivate(); + }, + }); + + // Workspace items + if (this.stores.user.isLoggedIn) { + workspaces.forEach((workspace, i) => menu.push({ + label: workspace.name, + accelerator: i < 9 ? `${cmdKey}+Alt+${i + 2}` : null, + type: 'radio', + checked: activeWorkspace ? workspace.id === activeWorkspace.id : false, + click: () => { + workspaceActions.activate({ workspace }); + }, + })); + } + + console.log(menu); + return menu; + } + _getServiceName(service) { if (service.name) { return service.name; diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index c63bef196..a86db8103 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js @@ -2,7 +2,7 @@ import { action, reaction, computed, - observable, + observable, runInAction, } from 'mobx'; import { debounce, remove } from 'lodash'; import ms from 'ms'; @@ -12,6 +12,8 @@ import Request from './lib/Request'; import CachedRequest from './lib/CachedRequest'; import { matchRoute } from '../helpers/routing-helpers'; import { gaEvent } from '../lib/analytics'; +import { workspacesState } from '../features/workspaces/state'; +import { filterServicesByActiveWorkspace, getActiveWorkspaceServices } from '../features/workspaces'; const debug = require('debug')('Franz:ServiceStore'); @@ -98,7 +100,6 @@ export default class ServicesStore extends Store { return observable(services.slice().slice().sort((a, b) => a.order - b.order)); } } - return []; } @@ -107,13 +108,16 @@ export default class ServicesStore extends Store { } @computed get allDisplayed() { - return this.stores.settings.all.app.showDisabledServices ? this.all : this.enabled; + const services = this.stores.settings.all.app.showDisabledServices ? this.all : this.enabled; + return filterServicesByActiveWorkspace(services); } // This is just used to avoid unnecessary rerendering of resource-heavy webviews @computed get allDisplayedUnordered() { + const { showDisabledServices } = this.stores.settings.all.app; const services = this.allServicesRequest.execute().result || []; - return this.stores.settings.all.app.showDisabledServices ? services : services.filter(service => service.isEnabled); + const filteredServices = showDisabledServices ? services : services.filter(service => service.isEnabled); + return getActiveWorkspaceServices(filteredServices); } @computed get filtered() { -- cgit v1.2.3-54-g00ecf From 1947cad07e0d9c32ffb874bdea482e7ff037888b Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Fri, 1 Mar 2019 14:27:40 +0100 Subject: fix eslint issues --- src/features/workspaces/index.js | 6 +++--- src/stores/ServicesStore.js | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/features/workspaces/index.js b/src/features/workspaces/index.js index 8091f49fc..79c9b8ac9 100644 --- a/src/features/workspaces/index.js +++ b/src/features/workspaces/index.js @@ -15,9 +15,9 @@ export const filterServicesByActiveWorkspace = (services) => { return services; }; -export const getActiveWorkspaceServices = (services) => { - return filterServicesByActiveWorkspace(services); -}; +export const getActiveWorkspaceServices = services => ( + filterServicesByActiveWorkspace(services) +); export default function initWorkspaces(stores, actions) { const { features, user } = stores; diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index a86db8103..da4b19c0d 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js @@ -2,7 +2,7 @@ import { action, reaction, computed, - observable, runInAction, + observable, } from 'mobx'; import { debounce, remove } from 'lodash'; import ms from 'ms'; @@ -12,7 +12,6 @@ import Request from './lib/Request'; import CachedRequest from './lib/CachedRequest'; import { matchRoute } from '../helpers/routing-helpers'; import { gaEvent } from '../lib/analytics'; -import { workspacesState } from '../features/workspaces/state'; import { filterServicesByActiveWorkspace, getActiveWorkspaceServices } from '../features/workspaces'; const debug = require('debug')('Franz:ServiceStore'); -- cgit v1.2.3-54-g00ecf From 2c67a242c660b925a5c97d7844db1e43347ab6ba Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Mon, 4 Mar 2019 13:05:55 +0100 Subject: remove dev logs --- src/features/workspaces/index.js | 1 - src/lib/Menu.js | 1 - 2 files changed, 2 deletions(-) diff --git a/src/features/workspaces/index.js b/src/features/workspaces/index.js index 79c9b8ac9..26cadea64 100644 --- a/src/features/workspaces/index.js +++ b/src/features/workspaces/index.js @@ -60,7 +60,6 @@ export default function initWorkspaces(stores, actions) { const workspaceServices = filterServicesByActiveWorkspace(services); const isActiveServiceInWorkspace = workspaceServices.includes(activeService); if (!isActiveServiceInWorkspace) { - console.log(workspaceServices[0].id); actions.service.setActive({ serviceId: workspaceServices[0].id }); } } diff --git a/src/lib/Menu.js b/src/lib/Menu.js index 1560dd285..c572bbb70 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js @@ -764,7 +764,6 @@ export default class FranzMenu { })); } - console.log(menu); return menu; } -- cgit v1.2.3-54-g00ecf From 074d93d4a8f84c6a84c273b3ec85ee1090683791 Mon Sep 17 00:00:00 2001 From: Hugo Torzuoli Date: Tue, 5 Mar 2019 10:19:24 +0100 Subject: Add missing bracket in brew install help (#1205) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f7ad7d179..724e779e0 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many mor `$ brew cask install franz` -(Don't know homebrew? [brew.sh](https://brew.sh/) +(Don't know homebrew? [brew.sh](https://brew.sh/)) ## Development -- cgit v1.2.3-54-g00ecf From e20121f94edce4556b80cb66b7024610fde3f26a Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Thu, 7 Mar 2019 16:27:20 +0100 Subject: Bump version to 5.0.1-beta.1 --- appveyor.yml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 70b8d6f1f..0ed8866a3 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -6,7 +6,7 @@ environment: CSC_KEY_PASSWORD: secure: t8ypNTPKTmvRfd3hHA4aMOtC5KOFqOw3AsKhpU7140Q= -version: 5.0.0.{build} +version: 5.0.1.{build} install: - ps: Install-Product node 10 diff --git a/package.json b/package.json index 05f10849c..d3cd8ea7b 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "franz", "productName": "Franz", "appId": "com.meetfranz.franz", - "version": "5.0.0", + "version": "5.0.1-beta.1", "description": "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.", "copyright": "adlk x franz - Stefan Malzner", "main": "index.js", -- cgit v1.2.3-54-g00ecf From cf9d7a30fed4fe50c346e652073464b07277a81e Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Fri, 8 Mar 2019 14:48:46 +0100 Subject: detach service when underlying webview unmounts --- src/actions/service.js | 4 + src/components/services/content/ServiceView.js | 136 ++++++++++++++++++++ src/components/services/content/ServiceWebview.js | 145 ++++------------------ src/components/services/content/Services.js | 7 +- src/containers/layout/AppLayoutContainer.js | 3 + src/stores/ServicesStore.js | 6 + 6 files changed, 179 insertions(+), 122 deletions(-) create mode 100644 src/components/services/content/ServiceView.js diff --git a/src/actions/service.js b/src/actions/service.js index 5d483b12a..ceaabc31e 100644 --- a/src/actions/service.js +++ b/src/actions/service.js @@ -1,4 +1,5 @@ import PropTypes from 'prop-types'; +import ServiceModel from '../models/Service'; export default { setActive: { @@ -36,6 +37,9 @@ export default { serviceId: PropTypes.string.isRequired, webview: PropTypes.object.isRequired, }, + detachService: { + service: PropTypes.instanceOf(ServiceModel).isRequired, + }, focusService: { serviceId: PropTypes.string.isRequired, }, diff --git a/src/components/services/content/ServiceView.js b/src/components/services/content/ServiceView.js new file mode 100644 index 000000000..5afc54f9d --- /dev/null +++ b/src/components/services/content/ServiceView.js @@ -0,0 +1,136 @@ +import React, { Component, Fragment } from 'react'; +import PropTypes from 'prop-types'; +import { autorun } from 'mobx'; +import { observer } from 'mobx-react'; +import classnames from 'classnames'; + +import ServiceModel from '../../../models/Service'; +import StatusBarTargetUrl from '../../ui/StatusBarTargetUrl'; +import WebviewLoader from '../../ui/WebviewLoader'; +import WebviewCrashHandler from './WebviewCrashHandler'; +import WebviewErrorHandler from './ErrorHandlers/WebviewErrorHandler'; +import ServiceDisabled from './ServiceDisabled'; +import ServiceWebview from './ServiceWebview'; + +export default @observer class ServiceView extends Component { + static propTypes = { + service: PropTypes.instanceOf(ServiceModel).isRequired, + setWebviewReference: PropTypes.func.isRequired, + detachService: PropTypes.func.isRequired, + reload: PropTypes.func.isRequired, + edit: PropTypes.func.isRequired, + enable: PropTypes.func.isRequired, + isActive: PropTypes.bool, + }; + + static defaultProps = { + isActive: false, + }; + + state = { + forceRepaint: false, + targetUrl: '', + statusBarVisible: false, + }; + + autorunDisposer = null; + + componentDidMount() { + this.autorunDisposer = autorun(() => { + if (this.props.service.isActive) { + this.setState({ forceRepaint: true }); + setTimeout(() => { + this.setState({ forceRepaint: false }); + }, 100); + } + }); + } + + componentWillUnmount() { + this.autorunDisposer(); + } + + updateTargetUrl = (event) => { + let visible = true; + if (event.url === '' || event.url === '#') { + visible = false; + } + this.setState({ + targetUrl: event.url, + statusBarVisible: visible, + }); + }; + + render() { + const { + detachService, + service, + setWebviewReference, + reload, + edit, + enable, + } = this.props; + + const webviewClasses = classnames({ + services__webview: true, + 'services__webview-wrapper': true, + 'is-active': service.isActive, + 'services__webview--force-repaint': this.state.forceRepaint, + }); + + let statusBar = null; + if (this.state.statusBarVisible) { + statusBar = ( + + ); + } + + return ( +
+ {service.isActive && service.isEnabled && ( + + {service.hasCrashed && ( + + )} + {service.isEnabled && service.isLoading && service.isFirstLoad && ( + + )} + {service.isError && ( + + )} + + )} + {!service.isEnabled ? ( + + {service.isActive && ( + + )} + + ) : ( + + )} + {statusBar} +
+ ); + } +} diff --git a/src/components/services/content/ServiceWebview.js b/src/components/services/content/ServiceWebview.js index bb577e4cc..7252c695f 100644 --- a/src/components/services/content/ServiceWebview.js +++ b/src/components/services/content/ServiceWebview.js @@ -1,145 +1,50 @@ -import React, { Component, Fragment } from 'react'; +import React, { Component } from 'react'; import PropTypes from 'prop-types'; -import { autorun } from 'mobx'; import { observer } from 'mobx-react'; -import Webview from 'react-electron-web-view'; -import classnames from 'classnames'; +import ElectronWebView from 'react-electron-web-view'; import ServiceModel from '../../../models/Service'; -import StatusBarTargetUrl from '../../ui/StatusBarTargetUrl'; -import WebviewLoader from '../../ui/WebviewLoader'; -import WebviewCrashHandler from './WebviewCrashHandler'; -import WebviewErrorHandler from './ErrorHandlers/WebviewErrorHandler'; -import ServiceDisabled from './ServiceDisabled'; -export default @observer class ServiceWebview extends Component { +@observer +class ServiceWebview extends Component { static propTypes = { service: PropTypes.instanceOf(ServiceModel).isRequired, setWebviewReference: PropTypes.func.isRequired, - reload: PropTypes.func.isRequired, - edit: PropTypes.func.isRequired, - enable: PropTypes.func.isRequired, - isActive: PropTypes.bool, + detachService: PropTypes.func.isRequired, }; - static defaultProps = { - isActive: false, - }; - - state = { - forceRepaint: false, - targetUrl: '', - statusBarVisible: false, - }; - - autorunDisposer = null; - webview = null; - componentDidMount() { - this.autorunDisposer = autorun(() => { - if (this.props.service.isActive) { - this.setState({ forceRepaint: true }); - setTimeout(() => { - this.setState({ forceRepaint: false }); - }, 100); - } - }); - } - componentWillUnmount() { - this.autorunDisposer(); - } - - updateTargetUrl = (event) => { - let visible = true; - if (event.url === '' || event.url === '#') { - visible = false; - } - this.setState({ - targetUrl: event.url, - statusBarVisible: visible, - }); + const { service, detachService } = this.props; + detachService({ service }); } render() { const { service, setWebviewReference, - reload, - edit, - enable, } = this.props; - const webviewClasses = classnames({ - services__webview: true, - 'services__webview-wrapper': true, - 'is-active': service.isActive, - 'services__webview--force-repaint': this.state.forceRepaint, - }); - - let statusBar = null; - if (this.state.statusBarVisible) { - statusBar = ( - - ); - } - return ( -
- {service.isActive && service.isEnabled && ( - - {service.hasCrashed && ( - - )} - {service.isEnabled && service.isLoading && service.isFirstLoad && ( - - )} - {service.isError && ( - - )} - - )} - {!service.isEnabled ? ( - - {service.isActive && ( - - )} - - ) : ( - { this.webview = element; }} - autosize - src={service.url} - preload="./webview/recipe.js" - partition={`persist:service-${service.id}`} - onDidAttach={() => setWebviewReference({ - serviceId: service.id, - webview: this.webview.view, - })} - onUpdateTargetUrl={this.updateTargetUrl} - useragent={service.userAgent} - allowpopups - /> - )} - {statusBar} -
+ { this.webview = webview; }} + autosize + src={service.url} + preload="./webview/recipe.js" + partition={`persist:service-${service.id}`} + onDidAttach={() => { + setWebviewReference({ + serviceId: service.id, + webview: this.webview.view, + }); + }} + onUpdateTargetUrl={this.updateTargetUrl} + useragent={service.userAgent} + allowpopups + /> ); } } + +export default ServiceWebview; diff --git a/src/components/services/content/Services.js b/src/components/services/content/Services.js index 54f16ba12..8f8c38a11 100644 --- a/src/components/services/content/Services.js +++ b/src/components/services/content/Services.js @@ -4,7 +4,7 @@ import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; import { Link } from 'react-router'; import { defineMessages, intlShape } from 'react-intl'; -import Webview from './ServiceWebview'; +import ServiceView from './ServiceView'; import Appear from '../../ui/effects/Appear'; const messages = defineMessages({ @@ -22,6 +22,7 @@ export default @observer class Services extends Component { static propTypes = { services: MobxPropTypes.arrayOrObservableArray, setWebviewReference: PropTypes.func.isRequired, + detachService: PropTypes.func.isRequired, handleIPCMessage: PropTypes.func.isRequired, openWindow: PropTypes.func.isRequired, reload: PropTypes.func.isRequired, @@ -42,6 +43,7 @@ export default @observer class Services extends Component { services, handleIPCMessage, setWebviewReference, + detachService, openWindow, reload, openSettings, @@ -71,11 +73,12 @@ export default @observer class Services extends Component { )} {services.map(service => ( - reload({ serviceId: service.id })} edit={() => openSettings({ path: `services/edit/${service.id}` })} diff --git a/src/containers/layout/AppLayoutContainer.js b/src/containers/layout/AppLayoutContainer.js index 749912c59..5a05ce431 100644 --- a/src/containers/layout/AppLayoutContainer.js +++ b/src/containers/layout/AppLayoutContainer.js @@ -42,6 +42,7 @@ export default @inject('stores', 'actions') @observer class AppLayoutContainer e setActive, handleIPCMessage, setWebviewReference, + detachService, openWindow, reorder, reload, @@ -105,6 +106,7 @@ export default @inject('stores', 'actions') @observer class AppLayoutContainer e services={services.allDisplayedUnordered} handleIPCMessage={handleIPCMessage} setWebviewReference={setWebviewReference} + detachService={detachService} openWindow={openWindow} reload={reload} openSettings={openSettings} @@ -160,6 +162,7 @@ AppLayoutContainer.wrappedComponent.propTypes = { toggleAudio: PropTypes.func.isRequired, handleIPCMessage: PropTypes.func.isRequired, setWebviewReference: PropTypes.func.isRequired, + detachService: PropTypes.func.isRequired, openWindow: PropTypes.func.isRequired, reloadUpdatedServices: PropTypes.func.isRequired, updateService: PropTypes.func.isRequired, diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index c63bef196..69e616f0c 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js @@ -44,6 +44,7 @@ export default class ServicesStore extends Store { this.actions.service.deleteService.listen(this._deleteService.bind(this)); this.actions.service.clearCache.listen(this._clearCache.bind(this)); this.actions.service.setWebviewReference.listen(this._setWebviewReference.bind(this)); + this.actions.service.detachService.listen(this._detachService.bind(this)); this.actions.service.focusService.listen(this._focusService.bind(this)); this.actions.service.focusActiveService.listen(this._focusActiveService.bind(this)); this.actions.service.toggleService.listen(this._toggleService.bind(this)); @@ -341,6 +342,11 @@ export default class ServicesStore extends Store { service.isAttached = true; } + @action _detachService({ service }) { + service.webview = null; + service.isAttached = false; + } + @action _focusService({ serviceId }) { const service = this.one(serviceId); -- cgit v1.2.3-54-g00ecf From 84b64faf850cb0b8092b8d60cca6744f5f888dc6 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Fri, 8 Mar 2019 14:50:04 +0100 Subject: disable no-param-reassign eslint rule --- .eslintrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.eslintrc b/.eslintrc index e15148e96..743946d35 100644 --- a/.eslintrc +++ b/.eslintrc @@ -2,6 +2,7 @@ "parser": "babel-eslint", "extends": "eslint-config-airbnb", "rules": { + "no-param-reassign": 0, "import/extensions": 0, "import/no-extraneous-dependencies": 0, "import/no-unresolved": [2, { -- cgit v1.2.3-54-g00ecf From a0a750257bf781cb4bc0ace3432d3d33e2ee2da8 Mon Sep 17 00:00:00 2001 From: Sergiu Ghitea Date: Mon, 11 Mar 2019 22:46:09 +0100 Subject: Update electron to 4.0.8 Update required in order to fix performance degradation due to memory leak issue https://github.com/electron/electron/pull/16772. --- package-lock.json | 25 +++++++++++++++---------- package.json | 2 +- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index fc9837ccb..53e6c37f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1191,9 +1191,9 @@ } }, "@types/node": { - "version": "10.12.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.21.tgz", - "integrity": "sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ==", + "version": "10.12.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.30.tgz", + "integrity": "sha512-nsqTN6zUcm9xtdJiM9OvOJ5EF0kOI8f1Zuug27O/rgtxCRJHGqncSWfCMZUP852dCKPsDsYXGvBhxfRjDBkF5Q==", "dev": true }, "JSONStream": { @@ -4282,9 +4282,9 @@ "dev": true }, "electron": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/electron/-/electron-4.0.4.tgz", - "integrity": "sha512-zG5VtLrmPfmw1fXY/3BEtRZk7OZ7djQhweZ6rW+R5NeF6s8RTz/AwTGtLoBo4z8wmJ5QTy0Y941FZw4pe5YlpA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/electron/-/electron-4.0.8.tgz", + "integrity": "sha512-FOBJIHkuv8wc15N+ZyqwDzPavYVu5CHMBEf14jHDWv7QW2vkEIpJjVK+PIT31kfZfvjsIP0j2wvA/FBsiqB7pw==", "dev": true, "requires": { "@types/node": "^10.12.18", @@ -5956,7 +5956,8 @@ "version": "2.1.1", "resolved": false, "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -6421,7 +6422,8 @@ "version": "5.1.1", "resolved": false, "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -6485,6 +6487,7 @@ "resolved": false, "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -6533,13 +6536,15 @@ "version": "1.0.2", "resolved": false, "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.2", "resolved": false, "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", - "dev": true + "dev": true, + "optional": true } } }, diff --git a/package.json b/package.json index 633fa678f..12a01182e 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "cross-env": "^5.0.5", "cz-conventional-changelog": "2.1.0", "dotenv": "^4.0.0", - "electron": "4.0.4", + "electron": "4.0.8", "electron-builder": "20.38.4", "electron-rebuild": "^1.6.0", "eslint": "5.10.0", -- cgit v1.2.3-54-g00ecf From 87acf96d42cc18bfe3b2ab8c86842d565eaec712 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Thu, 14 Mar 2019 15:18:50 +0100 Subject: fixes unnecessary scrollbars issue on signup form --- src/styles/auth.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/styles/auth.scss b/src/styles/auth.scss index 817801982..0a075036a 100644 --- a/src/styles/auth.scss +++ b/src/styles/auth.scss @@ -107,7 +107,7 @@ &__scroll-container { max-height: 100vh; padding: 80px 0; - overflow: scroll; + overflow: auto; width: 100%; } -- cgit v1.2.3-54-g00ecf From f8ecdadfbaf656a827ea5406ce44e01b80fabd4b Mon Sep 17 00:00:00 2001 From: FranzBot Date: Sun, 17 Mar 2019 21:28:03 +0000 Subject: Automatic i18n update (i18n.meetfranz.com) --- src/i18n/locales/ca.json | 15 ++++++--------- src/i18n/locales/cs.json | 15 ++++++--------- src/i18n/locales/de.json | 33 +++++++++++++++------------------ src/i18n/locales/el.json | 15 ++++++--------- src/i18n/locales/es.json | 19 ++++++++----------- src/i18n/locales/fr.json | 33 +++++++++++++++------------------ src/i18n/locales/ga.json | 15 ++++++--------- src/i18n/locales/hr.json | 15 ++++++--------- src/i18n/locales/hu.json | 15 ++++++--------- src/i18n/locales/id.json | 15 ++++++--------- src/i18n/locales/it.json | 15 ++++++--------- src/i18n/locales/ja.json | 15 ++++++--------- src/i18n/locales/ka.json | 15 ++++++--------- src/i18n/locales/nl-BE.json | 15 ++++++--------- src/i18n/locales/nl.json | 15 ++++++--------- src/i18n/locales/pl.json | 15 ++++++--------- src/i18n/locales/pt-BR.json | 33 +++++++++++++++------------------ src/i18n/locales/pt.json | 15 ++++++--------- src/i18n/locales/ru.json | 17 +++++++---------- src/i18n/locales/sk.json | 15 ++++++--------- src/i18n/locales/sr.json | 15 ++++++--------- src/i18n/locales/tr.json | 39 ++++++++++++++++++--------------------- src/i18n/locales/uk.json | 15 ++++++--------- src/i18n/locales/zh-TW.json | 15 ++++++--------- 24 files changed, 186 insertions(+), 258 deletions(-) diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json index f374fddd9..dabe4ba16 100644 --- a/src/i18n/locales/ca.json +++ b/src/i18n/locales/ca.json @@ -70,7 +70,9 @@ "menu.help.support" : "Suport", "menu.help.tos" : "Condicions del Servei", "menu.services" : "Serveis", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Afegeix un servei...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Visualitza", "menu.view.enterFullScreen" : "Inicia la pantalla completa", "menu.view.exitFullScreen" : "Surt de pantalla completa", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "Descarregar", "settings.account.manageSubscription.label" : "Gestioneu la vostra subscripció", "settings.account.successInfo" : "S'han desat els canvis", + "settings.account.tryReloadServices" : "Torna a provar-ho", "settings.account.tryReloadUserInfoRequest" : "Torna a provar-ho", "settings.account.userInfoRequestFailed" : "No s'ha pogut carregar la informació de l'usuari", "settings.app.buttonClearAllCache" : "Buida la memòria cau", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Inclou versions beta", "settings.app.form.darkMode" : "Uneix-te al Cantó Fosc", "settings.app.form.enableGPUAcceleration" : "Activar acceleració GPU", - "settings.app.form.enableMenuBar" : "Mostra Franz a la barra de menú", "settings.app.form.enableSpellchecking" : "Habilita la comprobació ortogràfica", "settings.app.form.enableSystemTray" : "Mostra Franz a la safata del sistema", - "settings.app.form.hideDockIcon" : "Oculta la icona de Franz al Dock", "settings.app.form.language" : "Idioma", "settings.app.form.minimizeToSystemTray" : "Minimitza Franz a la safata del sistema", "settings.app.form.runInBackground" : "Mantén a Franz en segon pla en tancar la finestra", "settings.app.form.showDisabledServices" : "Mostra les pestanyes dels serveis desactivats", "settings.app.form.showMessagesBadgesWhenMuted" : "Mostra la insígnia de missatges no llegits quan les notificacions estiguin desactivades", - "settings.app.form.spellcheckerLanguage" : "Corrector ortogràfic", "settings.app.headline" : "Configuració", "settings.app.headlineAdvanced" : "Avançat", "settings.app.headlineAppearance" : "Aparença", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Siusplau, reinicieu el Franz després de canviar els ajustaments de proxy", "settings.service.form.proxy.user" : "Usuari (opcional)", "settings.service.form.saveButton" : "Desa el servei", - "settings.service.form.spellcheckerLanguage" : "Idioma del corrector", - "settings.service.form.spellcheckerLanguage.default" : "Utilitzar el predeterminat del sistema ({default})", "settings.service.form.tabHosted" : "Allotjat", "settings.service.form.tabOnPremise" : "Allotjat per si mateix ⭐️", "settings.service.form.team" : "Equip", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Descobrir serveis", "settings.services.headline" : "Els vostres serveis", "settings.services.noServicesAdded" : "Encara no heu afegit cap servei.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "El servei està desactivat", "settings.services.tooltip.isMuted" : "Tots els sons estan desactivats", "settings.services.tooltip.notificationsDisabled" : "Les notificacions estan desactivades", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "Residents d'EU: es poden aplicar impostos locals", "subscription.features.ads" : "Sense anuncis, mai!", "subscription.features.comingSoon" : "properament", - "subscription.features.encryptedSync" : "Sincronització de sessió xifrada", "subscription.features.noInterruptions" : "Sense retards ni molestes actualitzacions de llicències ", - "subscription.features.onpremise" : "Afegiu serveis en premissa\/allotjats com HipChat", "subscription.features.onpremise.mattermost" : "Afegir serveis allotjats com Mattermost", "subscription.features.proxy" : "Suport de Proxy per a serveis", "subscription.features.spellchecker" : "Suport per corrector ortogràfic", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Recarrega", "validation.email" : "{field} no es vàlid", "validation.minLength" : "{field} ha de ser al menys {length} caràcters de llargada", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} es requerit", "validation.url" : "{field} es una URL no vàlida", "welcome.loginButton" : "Inicia sessió al teu compte", - "welcome.signupButton" : "Crea un compte gratuït", - "welcome.slogan" : "Crea un compte gratuït" + "welcome.signupButton" : "Crea un compte gratuït" } diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json index 3fc6318a2..f0b0b7c81 100644 --- a/src/i18n/locales/cs.json +++ b/src/i18n/locales/cs.json @@ -70,7 +70,9 @@ "menu.help.support" : "Podpora", "menu.help.tos" : "Podmínky použití", "menu.services" : "Služby", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Přidat novou službu...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Zobrazení", "menu.view.enterFullScreen" : "Spustit režim celé obrazovky", "menu.view.exitFullScreen" : "Ukončit celoobrazovkový režim", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "Stáhnout", "settings.account.manageSubscription.label" : "Spravovat vaše předplatné", "settings.account.successInfo" : "Vaše změny byly uloženy", + "settings.account.tryReloadServices" : "Zkusit opět", "settings.account.tryReloadUserInfoRequest" : "Zkusit opět", "settings.account.userInfoRequestFailed" : "Nelze načíst informace o uživateli.", "settings.app.buttonClearAllCache" : "Vyprázdnit mezipaměti", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Zahrnout beta verze", "settings.app.form.darkMode" : "Připoj se k Temné straně", "settings.app.form.enableGPUAcceleration" : "Aktivovat GPU zrychlení", - "settings.app.form.enableMenuBar" : "Zobraz Franz v Menu nabídce", "settings.app.form.enableSpellchecking" : "Zapnout kontrolu pravopisu", "settings.app.form.enableSystemTray" : "Zobrazit Franz v systémové liště", - "settings.app.form.hideDockIcon" : "Schovej ikonu Franz v Docku", "settings.app.form.language" : "Jazyk", "settings.app.form.minimizeToSystemTray" : "Minimalizovat Franz do systémové lišty", "settings.app.form.runInBackground" : "Ponechat Franze v pozadí při zavírání okna", "settings.app.form.showDisabledServices" : "Zobrazit záložky vypnutých služeb", "settings.app.form.showMessagesBadgesWhenMuted" : "Zobrazit odznak pro nepřečtené zprávy když jsou upozornění vypnutá", - "settings.app.form.spellcheckerLanguage" : "Oprava překlepů jazyka", "settings.app.headline" : "Nastavení", "settings.app.headlineAdvanced" : "Pokročilé", "settings.app.headlineAppearance" : "Vzhled", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", "settings.service.form.proxy.user" : "User (optional)", "settings.service.form.saveButton" : "Uložit službu", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Hostováno", "settings.service.form.tabOnPremise" : "Samostatně hostované ⭐️", "settings.service.form.team" : "Tým", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Objevte služby", "settings.services.headline" : "Vaše služby", "settings.services.noServicesAdded" : "Doposud jste nepřidali žádné služby.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Služba je zakázána", "settings.services.tooltip.isMuted" : "Všechny zvuky jsou ztišeny", "settings.services.tooltip.notificationsDisabled" : "Oznámení jsou zakázána", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "Pro obyvatelé EU: mohou být aplikovány lokální daně", "subscription.features.ads" : "Žádné reklamy, nikdy!", "subscription.features.comingSoon" : "již brzy", - "subscription.features.encryptedSync" : "Šifrovaná synchronizace relací", "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "Přidat hostované služby jako HipChat", "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", "subscription.features.proxy" : "Proxy support for services", "subscription.features.spellchecker" : "Support for spellchecker", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Obnovit", "validation.email" : "{field} není validní", "validation.minLength" : "{field} musí být alespoň {length} znaků dlouhé", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} je povinné", "validation.url" : "{field} není validní URL", "welcome.loginButton" : "Přihlášení do vašeho účtu", - "welcome.signupButton" : "Vytvořit účet zdarma", - "welcome.slogan" : "Zprávy, které pracují pro vás" + "welcome.signupButton" : "Vytvořit účet zdarma" } diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 13b8d12fc..adb466e18 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -4,18 +4,18 @@ "feature.delayApp.action" : "Upgrade deinen Account", "feature.delayApp.headline" : "Erspare dir das Warten mit einer Franz Supporter Lizenz", "feature.delayApp.text" : "Es geht in {seconds} Sekunden weiter.", - "feature.shareFranz.action.email" : "Send as email", - "feature.shareFranz.action.facebook" : "Share on Facebook", - "feature.shareFranz.action.twitter" : "Share on Twitter", - "feature.shareFranz.headline" : "Franz is better together!", - "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", - "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", - "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", + "feature.shareFranz.action.email" : "Als E-Mail senden", + "feature.shareFranz.action.facebook" : "Auf Facebook teilen", + "feature.shareFranz.action.twitter" : "Auf Twitter teilen", + "feature.shareFranz.headline" : "Gemeinsam ist Franz noch besser!", + "feature.shareFranz.shareText.email" : "Ich verwende Franz! Hol dir jetzt die kostenlose App für WhatsApp, Messenger, Slack, Skype und viele mehr auf www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "Ich verwende Franz mit {count} Diensten! Hol dir jetzt die kostenlose App für WhatsApp, Messenger, Slack, Skype und mehr auf www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Bitte erzähle deinen Freunden und Kollegen wie toll du Franz findest.", "global.api.unhealthy" : "Verbindung mit dem Franz Online Service fehlgeschlagen", "global.notConnectedToTheInternet" : "Du bist nicht mit dem Internet verbunden.", "global.spellchecker.useDefault" : "Standard benutzen ({default})", - "global.spellchecking.autodetect" : "Detect language automatically", - "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.autodetect" : "Sprache automatisch erkennen", + "global.spellchecking.autodetect.short" : "Automatisch", "global.spellchecking.language" : "Sprache für Rechtschreibprüfung", "import.headline" : "Deine Franz 4 Dienste importieren", "import.notSupportedHeadline" : "Dienste, die noch nicht von Franz 5 unterstützt werden", @@ -70,7 +70,9 @@ "menu.help.support" : "Hilfe", "menu.help.tos" : "Nutzungsbedingungen", "menu.services" : "Dienste", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Dienst hinzufügen", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Darstellung", "menu.view.enterFullScreen" : "Vollbildmodus", "menu.view.exitFullScreen" : "Vollbildmodus aus", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "Herunterladen", "settings.account.manageSubscription.label" : "Dein Abonnement verwalten", "settings.account.successInfo" : "Deine Änderungen wurden gespeichert", + "settings.account.tryReloadServices" : "Erneut versuchen", "settings.account.tryReloadUserInfoRequest" : "Erneut versuchen", "settings.account.userInfoRequestFailed" : "Benutzerinformationen konnten nicht geladen werden", "settings.app.buttonClearAllCache" : "Cache leeren", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Beta-Versionen einbeziehen", "settings.app.form.darkMode" : "Die dunkle Seite erwartet dich (Dark Mode)", "settings.app.form.enableGPUAcceleration" : "Hardwarebeschleunigung aktivieren", - "settings.app.form.enableMenuBar" : "Franz in Menüleiste anzeigen", "settings.app.form.enableSpellchecking" : "Rechtschreibprüfung aktivieren", "settings.app.form.enableSystemTray" : "Franz im Infobereich anzeigen", - "settings.app.form.hideDockIcon" : "Franz Icon im Dock ausblenden", "settings.app.form.language" : "Sprache", "settings.app.form.minimizeToSystemTray" : "Franz in den Infobereich minimieren", "settings.app.form.runInBackground" : "Franz im Hintergrund behalten, wenn das Fenster geschlossen wird", "settings.app.form.showDisabledServices" : "Deaktivierte Services-Tabs anzeigen", "settings.app.form.showMessagesBadgesWhenMuted" : "Ungelesene Nachrichten zeigen, wenn die Benachrichtigungen deaktiviert sind", - "settings.app.form.spellcheckerLanguage" : "Sprache für Rechtschreibprüfung", "settings.app.headline" : "Einstellungen", "settings.app.headlineAdvanced" : "Erweitert", "settings.app.headlineAppearance" : "Darstellung", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Bitte starte Franz nach dem Ändern der Proxy Einstellungen neu.", "settings.service.form.proxy.user" : "Benutzer (optional)", "settings.service.form.saveButton" : "Dienst speichern", - "settings.service.form.spellcheckerLanguage" : "Sprache für Rechtschreibprüfung", - "settings.service.form.spellcheckerLanguage.default" : "Standard benutzen ({default})", "settings.service.form.tabHosted" : "Gehostet", "settings.service.form.tabOnPremise" : "Selbst gehostet ⭐️", "settings.service.form.team" : "Team", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Dienste entdecken", "settings.services.headline" : "Deine Dienste", "settings.services.noServicesAdded" : "Du hast noch keine Dienste hinzugefügt.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Dienst ist deaktiviert", "settings.services.tooltip.isMuted" : "Alle Töne sind deaktiviert", "settings.services.tooltip.notificationsDisabled" : "Benachrichtigungen deaktiviert", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "Preise sind exklusive Steuern.", "subscription.features.ads" : "Werbefrei auf Lebenszeit!", "subscription.features.comingSoon" : "folgt bald", - "subscription.features.encryptedSync" : "Verschlüsselte Sitzungs-Synchronisation", "subscription.features.noInterruptions" : "Keine Wartezeiten um Franz zu verwenden", - "subscription.features.onpremise" : "Integration von gehosteten Diensten, wie HipChat", "subscription.features.onpremise.mattermost" : "Integration von gehosteten Diensten, wie Mattermost", "subscription.features.proxy" : "Proxy Support für Dienste", "subscription.features.spellchecker" : "Unterstützung für Rechtschreibprüfung", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Neuladen", "validation.email" : "{field} ist ungültig", "validation.minLength" : "{field} muss mindestens {length} Zeichen enthalten", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} wird benötigt", "validation.url" : "{field} ist keine gültige URL", "welcome.loginButton" : "Bei Franz einloggen", - "welcome.signupButton" : "Kostenloses Konto erstellen", - "welcome.slogan" : "Kommunikation, die für Dich funktioniert" + "welcome.signupButton" : "Kostenloses Konto erstellen" } diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json index 9639ec5f7..626abfddd 100644 --- a/src/i18n/locales/el.json +++ b/src/i18n/locales/el.json @@ -70,7 +70,9 @@ "menu.help.support" : "Υποστήριξη", "menu.help.tos" : "Όροι Χρήσης", "menu.services" : "Υπηρεσίες", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Νέα Υπηρεσία", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Προβολή", "menu.view.enterFullScreen" : "Πλήρης Οθόνη", "menu.view.exitFullScreen" : "Έξοδος από πλήρη οθόνη", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "Λήψη", "settings.account.manageSubscription.label" : "Διαχείριση της συνδρομής σας", "settings.account.successInfo" : "Οι αλλαγές σας έχουν αποθηκευτεί", + "settings.account.tryReloadServices" : "Δοκιμάστε ξανά", "settings.account.tryReloadUserInfoRequest" : "Δοκιμάστε ξανά", "settings.account.userInfoRequestFailed" : "Δεν ήταν δυνατή η φόρτωση πληροφοριών χρήστη", "settings.app.buttonClearAllCache" : "Καθαρισμός λανθάνουσας μνήμης", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Συμπεριλάβετε εκδόσεις beta", "settings.app.form.darkMode" : "Join the Dark Side", "settings.app.form.enableGPUAcceleration" : "Ενεργοποιήση Ενίσχυσης GPU ", - "settings.app.form.enableMenuBar" : "Εμφάνιση Γραμμής Μενού Franz", "settings.app.form.enableSpellchecking" : "Ενεργοποίηση ορθογραφικού ελέγχου", "settings.app.form.enableSystemTray" : "Εμφάνιση του Franz στη γραμμή ειδοποιήσεων", - "settings.app.form.hideDockIcon" : "Απόκρυψη εικονιδίου Franz", "settings.app.form.language" : "Γλώσσα", "settings.app.form.minimizeToSystemTray" : "Ελαχιστοποίηση του Franz στη γραμμή ειδοποιήσεων", "settings.app.form.runInBackground" : "Κρατήστε το Franz στο παρασκήνιο κατά το κλείσιμο του παραθύρου", "settings.app.form.showDisabledServices" : "Προβολή καρτελών των απενεργοποιημένων υπηρεσιών", "settings.app.form.showMessagesBadgesWhenMuted" : "Προβολή του εικονιδίου μη αναγνωσμένου μηνύματος όταν οι ειδοποιήσεις είναι απενεργοποιημένες", - "settings.app.form.spellcheckerLanguage" : "Spell checking language", "settings.app.headline" : "Ρυθμίσεις", "settings.app.headlineAdvanced" : "Για προχωρημένους", "settings.app.headlineAppearance" : "Εμφάνιση", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", "settings.service.form.proxy.user" : "User (optional)", "settings.service.form.saveButton" : "Αποθήκευση υπηρεσίας", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Φιλοξενείται", "settings.service.form.tabOnPremise" : "Αυτο-φιλοξενείται ⭐️", "settings.service.form.team" : "Ομάδα", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Ανακαλύψτε υπηρεσίες", "settings.services.headline" : "Οι υπηρεσίες σας", "settings.services.noServicesAdded" : "Δεν έχετε προσθέσει ακόμα υπηρεσίες.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Η υπηρεσία είναι απενεργοποιημένη", "settings.services.tooltip.isMuted" : "Όλοι οι ήχοι είναι απενεργοποιημένοι", "settings.services.tooltip.notificationsDisabled" : "Οι ειδοποιήσεις είναι απενεργοποιημένες", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "Πολίτες Ε.Ε.: Στις τιμές δεν περιλαμβάνονται τυχόν φόροι και άλλες τοπικές επιβαρύνσεις", "subscription.features.ads" : "Τέλος στις διαφημίσεις", "subscription.features.comingSoon" : "σύντομα", - "subscription.features.encryptedSync" : "Κρυπτογραφημένος συγχρονισμός περιόδου σύνδεσης", "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "Add on-premise \/ hosted services όπως το HipChat", "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", "subscription.features.proxy" : "Proxy support for services", "subscription.features.spellchecker" : "Support for spellchecker", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Επαναφόρτωση", "validation.email" : "{field} δεν είναι έγκυρο", "validation.minLength" : "{field} πρέπει να είναι τουλάχιστον {length} χαρακτήρες", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} είναι υποχρεωτικό", "validation.url" : "{field} δεν είναι έγκυρος σύνδεσμος URL", "welcome.loginButton" : "Σύνδεση στο λογαριασμό σας", - "welcome.signupButton" : "Δημιουργία δωρεάν λογαριασμού", - "welcome.slogan" : "Επικοινωνία που λειτουργεί για εσάς" + "welcome.signupButton" : "Δημιουργία δωρεάν λογαριασμού" } diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 3ac23d9a5..5c26b456c 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -5,8 +5,8 @@ "feature.delayApp.headline" : "Por favor, compra una Licencia de Soporte de Franz para saltar la espera", "feature.delayApp.text" : "Franz continuará en {seconds} segundos.", "feature.shareFranz.action.email" : "Send as email", - "feature.shareFranz.action.facebook" : "Share on Facebook", - "feature.shareFranz.action.twitter" : "Share on Twitter", + "feature.shareFranz.action.facebook" : "Compartir en Facebook", + "feature.shareFranz.action.twitter" : "Compartir en Twitter", "feature.shareFranz.headline" : "Franz is better together!", "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", @@ -70,7 +70,9 @@ "menu.help.support" : "Ayuda técnica", "menu.help.tos" : "Términos del Servicio", "menu.services" : "Servicios", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Añadir Nuevo Servicio...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Mostrar", "menu.view.enterFullScreen" : "Pasar a pantalla completa", "menu.view.exitFullScreen" : "Salir de Pantalla Completa", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "Descargar", "settings.account.manageSubscription.label" : "Administra tu suscripción", "settings.account.successInfo" : "Tus cambios han sido guardados", + "settings.account.tryReloadServices" : "Intentar de nuevo", "settings.account.tryReloadUserInfoRequest" : "Intentar de nuevo", "settings.account.userInfoRequestFailed" : "No se pudo cargar la información de usuario", "settings.app.buttonClearAllCache" : "Limpiar caché", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Incluir versiones beta", "settings.app.form.darkMode" : "Únete al Lado Oscuro", "settings.app.form.enableGPUAcceleration" : "Habilitar aceleración de GPU", - "settings.app.form.enableMenuBar" : "Mostrar a Franz en la barra de menús", "settings.app.form.enableSpellchecking" : "Activar corrección ortográfica", "settings.app.form.enableSystemTray" : "Mostrar Franz en la bandeja del sistema", - "settings.app.form.hideDockIcon" : "Ocultar Icono de Franz en barra de herramientas", "settings.app.form.language" : "Idioma", "settings.app.form.minimizeToSystemTray" : "Minimizar Franz a la bandeja del sistema", "settings.app.form.runInBackground" : "Mantener Franz en segundo plano al cerrar la ventana", "settings.app.form.showDisabledServices" : "Mostrar pestañas de servicios desactivados", "settings.app.form.showMessagesBadgesWhenMuted" : "Mostrar la insignia de mensajes sin leer cuando las notificaciones están desactivadas", - "settings.app.form.spellcheckerLanguage" : "Corrector de ortografía", "settings.app.headline" : "Configuración", "settings.app.headlineAdvanced" : "Avanzado", "settings.app.headlineAppearance" : "Apariencia", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Por favor reinicie Franz despues de modificar los ajustes proxy.", "settings.service.form.proxy.user" : "Usuario (opcional)", "settings.service.form.saveButton" : "Guardar servicio", - "settings.service.form.spellcheckerLanguage" : "Marcar faltas de ortografía", - "settings.service.form.spellcheckerLanguage.default" : "Utilizar estándar del sistema ({default})", "settings.service.form.tabHosted" : "Alojado", "settings.service.form.tabOnPremise" : "Auto alojado ⭐️", "settings.service.form.team" : "Equipo", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Descubrir servicios", "settings.services.headline" : "Tus servicios", "settings.services.noServicesAdded" : "No has añadido ningún servicio aún.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "El servicio está desactivado", "settings.services.tooltip.isMuted" : "Todos los sonidos están silenciados", "settings.services.tooltip.notificationsDisabled" : "Las notificaciones están desactivadas", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "Residentes de la UE: pueden aplicarse impuestos locales", "subscription.features.ads" : "¡Sin publicidad, para siempre!", "subscription.features.comingSoon" : "próximamente", - "subscription.features.encryptedSync" : "Sincronización de sesión encriptada", "subscription.features.noInterruptions" : "Sin retrasos en la app ni molestas actualizaciones de licencias", - "subscription.features.onpremise" : "Añade servicios locales\/autoalojados como HipChat", "subscription.features.onpremise.mattermost" : "Agregar servicios de almacenamiento como Mattermost", "subscription.features.proxy" : "Soporte Proxy para servicios", "subscription.features.spellchecker" : "Soporte para corrector de ortografía", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Recargar", "validation.email" : "{field} no es válido", "validation.minLength" : "{field} debería tener al menos {length} caracteres", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} es obligatorio", "validation.url" : "{field} no es una URL válida", "welcome.loginButton" : "Accede a tu cuenta", - "welcome.signupButton" : "Crear una cuenta gratuita", - "welcome.slogan" : "Mensajería que funciona para ti" + "welcome.signupButton" : "Crear una cuenta gratuita" } diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 8af875a3d..6f9d81713 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -4,18 +4,18 @@ "feature.delayApp.action" : "Obtenez une licence de Supporter Franz", "feature.delayApp.headline" : "Veuillez acheter une licence de Supporter Franz pour sauter le temps d'attente", "feature.delayApp.text" : "Franz reprendra dans {seconds} secondes.", - "feature.shareFranz.action.email" : "Send as email", - "feature.shareFranz.action.facebook" : "Share on Facebook", - "feature.shareFranz.action.twitter" : "Share on Twitter", - "feature.shareFranz.headline" : "Franz is better together!", - "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", - "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", - "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", + "feature.shareFranz.action.email" : "Envoyer par mail", + "feature.shareFranz.action.facebook" : "Partager sur Facebook", + "feature.shareFranz.action.twitter" : "Partager sur Twitter", + "feature.shareFranz.headline" : "Franz est meilleur quand on est tous ensemble !", + "feature.shareFranz.shareText.email" : "J'ai ajouté {count} services à Franz ! Télécharger l'appli gratuite pour WhatsApp, Messenger, Skype et cie sur www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "J'ai ajouté {count} services à Franz ! Télécharger l'appli gratuite pour WhatsApp, Messenger, Skype et cie sur www.meetfranz.com \/cc @NeetFranz", + "feature.shareFranz.text" : "Dites à vos amis et collègues combien Franz est super et aidez nous à faire passer le mot.", "global.api.unhealthy" : "Impossible de se connecter aux services en ligne de Franz", "global.notConnectedToTheInternet" : "Vous n'êtes pas connecté à Internet.", "global.spellchecker.useDefault" : "Par défaut ({default})", - "global.spellchecking.autodetect" : "Detect language automatically", - "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.autodetect" : "Detecter automatiquement la langue", + "global.spellchecking.autodetect.short" : "Automatiquement", "global.spellchecking.language" : "Langue de la vérification orthographique", "import.headline" : "Importez vos services depuis la version 4 de Franz.", "import.notSupportedHeadline" : "Ces services ne sont pas encore supportés par Franz 5", @@ -70,7 +70,9 @@ "menu.help.support" : "Support", "menu.help.tos" : "Conditions d'utilisation", "menu.services" : "Services", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Ajouter un nouveau service...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Aperçu", "menu.view.enterFullScreen" : "Entrer en mode plein écran", "menu.view.exitFullScreen" : "Sortir du mode plein écran", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "Télécharger", "settings.account.manageSubscription.label" : "Gérer votre abonnement", "settings.account.successInfo" : "Vos modifications ont été enregistrées", + "settings.account.tryReloadServices" : "Réessayer", "settings.account.tryReloadUserInfoRequest" : "Réessayer", "settings.account.userInfoRequestFailed" : "Impossible de charger les informations de l'utilisateur", "settings.app.buttonClearAllCache" : "Vider le cache", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Accepter les versions bêta", "settings.app.form.darkMode" : "Rejoins le côté obscur", "settings.app.form.enableGPUAcceleration" : "Activer l'accélération GPU", - "settings.app.form.enableMenuBar" : "Afficher Franz dans la barre des menus", "settings.app.form.enableSpellchecking" : "Activer la vérification orthographique", "settings.app.form.enableSystemTray" : "Afficher Franz dans la barre d'état système", - "settings.app.form.hideDockIcon" : "Masquer Franz dans le Dock", "settings.app.form.language" : "Langue", "settings.app.form.minimizeToSystemTray" : "Minimiser Franz dans la zone de notification", "settings.app.form.runInBackground" : "Garder Franz ouvert en arrière-plan à la fermeture de la fenêtre", "settings.app.form.showDisabledServices" : "Afficher les onglets des services désactivés", "settings.app.form.showMessagesBadgesWhenMuted" : "Afficher les badges de messages non lus quand les notifications sont désactivées.", - "settings.app.form.spellcheckerLanguage" : "Langue de la vérification orthographique", "settings.app.headline" : "Paramètres", "settings.app.headlineAdvanced" : "Paramètres avancés", "settings.app.headlineAppearance" : "Apparence", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Veuillez redémarrer Franz après avoir modifié les paramètres proxy.", "settings.service.form.proxy.user" : "Utilisateur (facultatif)", "settings.service.form.saveButton" : "Enregistrer le service", - "settings.service.form.spellcheckerLanguage" : "Langue de vérification d'orthographe", - "settings.service.form.spellcheckerLanguage.default" : "Par défaut ({default})", "settings.service.form.tabHosted" : "Hébergé", "settings.service.form.tabOnPremise" : "Auto-hébergé ⭐️", "settings.service.form.team" : "Équipe", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Découvrir les services", "settings.services.headline" : "Vos services", "settings.services.noServicesAdded" : "Vous n'avez pas encore ajouté de services.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Ce service est désactivé", "settings.services.tooltip.isMuted" : "Tous les sons sont coupés", "settings.services.tooltip.notificationsDisabled" : "Notifications désactivées.", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "Résidents de l'UE : une taxe locale peut s'appliquer", "subscription.features.ads" : "Plus de pubs !", "subscription.features.comingSoon" : "Bientôt disponible", - "subscription.features.encryptedSync" : "Synchronisation de session cryptée", "subscription.features.noInterruptions" : "Aucun délai dans l'application ni de harcèlement pour mettre à niveau la licence", - "subscription.features.onpremise" : "Ajouter des services locaux\/hébergés comme HipChat", "subscription.features.onpremise.mattermost" : "Ajouter des services auto-hébergés comme Mattermost", "subscription.features.proxy" : "Support proxy pour les services", "subscription.features.spellchecker" : "Prise en charge du correcteur orthographique", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Recharger", "validation.email" : "{field} n'est pas valide", "validation.minLength" : "{field} doit contenir au moins {length} caractère(s)", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} est requis", "validation.url" : "{field} n'est pas une URL valide", "welcome.loginButton" : "Se connecter sur son compte", - "welcome.signupButton" : "Créer un compte gratuit", - "welcome.slogan" : "Une messagerie qui fonctionne pour vous" + "welcome.signupButton" : "Créer un compte gratuit" } diff --git a/src/i18n/locales/ga.json b/src/i18n/locales/ga.json index 2b3d39b73..eb7c04491 100644 --- a/src/i18n/locales/ga.json +++ b/src/i18n/locales/ga.json @@ -70,7 +70,9 @@ "menu.help.support" : "Tacaíocht", "menu.help.tos" : "Téarmaí tagartha", "menu.services" : "Seirbhísí", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Cuir seirbhís nua leis", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Amharc", "menu.view.enterFullScreen" : "Cuir isteach mód lánscáileáin", "menu.view.exitFullScreen" : "Scoir mód lánscáileáin", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "Íoslódáil", "settings.account.manageSubscription.label" : "Bainistigh do shíntiús", "settings.account.successInfo" : "Sábháladh do chuid athruithe", + "settings.account.tryReloadServices" : "Atriail", "settings.account.tryReloadUserInfoRequest" : "Atriail", "settings.account.userInfoRequestFailed" : "Ní féidir eolas úsáideora a lódáil", "settings.app.buttonClearAllCache" : "Glan taisce", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Cuir leagain béite san áireamh", "settings.app.form.darkMode" : "Join the Dark Side", "settings.app.form.enableGPUAcceleration" : "Cumasaigh luasghéarú APG", - "settings.app.form.enableMenuBar" : "Taispeáin Franz sa bharra roghchláir", "settings.app.form.enableSpellchecking" : "Cumasaigh seiceáil litrithe", "settings.app.form.enableSystemTray" : "Taispeáin Franz i dtráidire an chórais", - "settings.app.form.hideDockIcon" : "Cuir íocóin Franz i bhfolach ón leaba nasctha", "settings.app.form.language" : "Teanga", "settings.app.form.minimizeToSystemTray" : "Íoslaghdaigh Franz chuig tráidire an chórais", "settings.app.form.runInBackground" : "Coimeád Franz sa chúlra nuair a dhúntar an fhuinneog", "settings.app.form.showDisabledServices" : "Taispeáin tabanna do sheirbhísí dhíchumasaithe", "settings.app.form.showMessagesBadgesWhenMuted" : "Taispeáin teachtaireachtaí neamhléite, nuair a dhíchumasaítear fógraí", - "settings.app.form.spellcheckerLanguage" : "Spell checking language", "settings.app.headline" : "Socruithe", "settings.app.headlineAdvanced" : "Casta", "settings.app.headlineAppearance" : "Dealramh", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", "settings.service.form.proxy.user" : "User (optional)", "settings.service.form.saveButton" : "Sábháil seirbhís", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Óstáilte", "settings.service.form.tabOnPremise" : "Féinóstáilte ⭐️", "settings.service.form.team" : "Foireann", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Aimsigh seirbhísí", "settings.services.headline" : "Do sheirbhísí", "settings.services.noServicesAdded" : "Níl aon seirbhís curtha agat go fóill.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Seirbhís díchumasaithe", "settings.services.tooltip.isMuted" : "Tachtar gach fuaim", "settings.services.tooltip.notificationsDisabled" : "Fógraí dhíchumasaithe", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "Áithritheoirí an tAÉ: is féidir cáin díolacháin áitiúla a chur i bhfeidhm", "subscription.features.ads" : "Fógraí ar bith, choíche!", "subscription.features.comingSoon" : "ag teacht go luath", - "subscription.features.encryptedSync" : "Sionchronú seisiúin chriptithe", "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "Cuir seirbhísí óstáilte ar nós HipChat leis", "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", "subscription.features.proxy" : "Proxy support for services", "subscription.features.spellchecker" : "Support for spellchecker", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Athlódáil", "validation.email" : "Níl {field} neamhbhailí", "validation.minLength" : "Ba cheart go mbeadh {field} ar a laghad {length} charactar fada", + "validation.oneRequired" : "At least one is required", "validation.required" : "Tá {field} de dhíth", "validation.url" : "Ní AAA bhailí é {field}", "welcome.loginButton" : "Logáil isteach i do chuntas", - "welcome.signupButton" : "Cruthaigh cuntas nua", - "welcome.slogan" : "Teachtaireachtaí a oibríonn duitse" + "welcome.signupButton" : "Cruthaigh cuntas nua" } diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json index dc1d579fa..95920c4ce 100644 --- a/src/i18n/locales/hr.json +++ b/src/i18n/locales/hr.json @@ -70,7 +70,9 @@ "menu.help.support" : "Support", "menu.help.tos" : "Terms of Service", "menu.services" : "Services", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Add New Service...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "View", "menu.view.enterFullScreen" : "Enter Full Screen", "menu.view.exitFullScreen" : "Exit Full Screen", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "Preuzmite", "settings.account.manageSubscription.label" : "Upravljajte pretplatama", "settings.account.successInfo" : "Vaše promjene su spremljene", + "settings.account.tryReloadServices" : "Pokušajte ponovno", "settings.account.tryReloadUserInfoRequest" : "Pokušajte ponovno", "settings.account.userInfoRequestFailed" : "Nije moguće učitati informacije o korisniku", "settings.app.buttonClearAllCache" : "Očisti memoriju", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Obuhvati i beta verzije", "settings.app.form.darkMode" : "Join the Dark Side", "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", - "settings.app.form.enableMenuBar" : "Prikaži Franz u traci izbornika", "settings.app.form.enableSpellchecking" : "Omogući provjeru pravopisa", "settings.app.form.enableSystemTray" : "Prikaži aplikaciju u sustavskoj traci", - "settings.app.form.hideDockIcon" : "Sakrij ikonu Franz u prostoru za obavijesti", "settings.app.form.language" : "Jezik", "settings.app.form.minimizeToSystemTray" : "Smanji Franca u sustavsku traku", "settings.app.form.runInBackground" : "Neka se Franc održava u pozadini i ako je prozor zatvoren", "settings.app.form.showDisabledServices" : "Prikaži ploče s onemogućenim servisima", "settings.app.form.showMessagesBadgesWhenMuted" : "Pokaži nepročitane značke poruka kad se obavještenja onemoguće", - "settings.app.form.spellcheckerLanguage" : "Spell checking language", "settings.app.headline" : "Postavke", "settings.app.headlineAdvanced" : "Napredne alatke", "settings.app.headlineAppearance" : "Izgled", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", "settings.service.form.proxy.user" : "User (optional)", "settings.service.form.saveButton" : "Sačuvaj uslugu\/e", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Hostovano", "settings.service.form.tabOnPremise" : "Samo-hostovano ⭐️", "settings.service.form.team" : "Tim", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Pronađite usluge", "settings.services.headline" : "Vaše usluge", "settings.services.noServicesAdded" : "Još uvijek niste unijeli niti jednu uslugu.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Usluga je onemogućena. ", "settings.services.tooltip.isMuted" : "Svi zvukovi su onemogućeni. ", "settings.services.tooltip.notificationsDisabled" : "Obavijesti su onemogućene.", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "EU državljani, upozerenje: Moguće taksiranje ", "subscription.features.ads" : "Bez reklama, doživotno!", "subscription.features.comingSoon" : "Dolazi uskoro", - "subscription.features.encryptedSync" : "Kodirano usklađivanje sesija.", "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "Dodajte pretpostavljeni\/hostirani servis kao što ima usluga HipChat ", "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", "subscription.features.proxy" : "Proxy support for services", "subscription.features.spellchecker" : "Support for spellchecker", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Ponovno učitavanje", "validation.email" : "{field} is not valid", "validation.minLength" : "{field} should be at least {length} characters long", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} is required", "validation.url" : "{field} is not a valid URL", "welcome.loginButton" : "Prijavite se na račun", - "welcome.signupButton" : "Stvorite novi korisnički račun", - "welcome.slogan" : "Poruke koje su stvorene za tebe" + "welcome.signupButton" : "Stvorite novi korisnički račun" } diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json index ddaffeebb..bce9a368e 100644 --- a/src/i18n/locales/hu.json +++ b/src/i18n/locales/hu.json @@ -70,7 +70,9 @@ "menu.help.support" : "Támogatás", "menu.help.tos" : "Felhasználói feltételek", "menu.services" : "Szolgáltatások", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Új szolgáltatás hozzáadása...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Nézet", "menu.view.enterFullScreen" : "Kilépés a teljes képernyős módból", "menu.view.exitFullScreen" : "Kilépés a teljes képernyős módból", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "Letöltés", "settings.account.manageSubscription.label" : "Előfizetés kezelése", "settings.account.successInfo" : "A módosításokat elmentettük", + "settings.account.tryReloadServices" : "Próbáld újra", "settings.account.tryReloadUserInfoRequest" : "Próbáld újra", "settings.account.userInfoRequestFailed" : "A felhasználói adatok betöltése sikertelen", "settings.app.buttonClearAllCache" : "Gyorsítótár törlése", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Béta verziók keresése", "settings.app.form.darkMode" : "Csatlakozz a Sötét Oldalhoz", "settings.app.form.enableGPUAcceleration" : "Hardveres gyorsítás engedélyezése", - "settings.app.form.enableMenuBar" : "Franz megjelenítése a menüsorban", "settings.app.form.enableSpellchecking" : "Helyesírás-ellenőrzés engedélyezése", "settings.app.form.enableSystemTray" : "Franz mutatása a tálcán", - "settings.app.form.hideDockIcon" : "Franz ikon elrejtése a Dock mögött", "settings.app.form.language" : "Nyelv", "settings.app.form.minimizeToSystemTray" : "Franz kicsinyítése a tálcára", "settings.app.form.runInBackground" : "Franz fusson a háttérben az ablak bezárásakor", "settings.app.form.showDisabledServices" : "Letiltott szolgáltatások megjelenítése", "settings.app.form.showMessagesBadgesWhenMuted" : "Mutassa az 'olvasatlan üzenet' jelzést, amikor az értesítések le vannak tiltva", - "settings.app.form.spellcheckerLanguage" : "Helyesírás-ellenőrző nyelve", "settings.app.headline" : "Beállítások", "settings.app.headlineAdvanced" : "Haladó", "settings.app.headlineAppearance" : "Megjelenés", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Kérjük indítsd újra a Franz-ot a proxy beállítások megváltoztatása után.", "settings.service.form.proxy.user" : "Felhasználó (opcionális)", "settings.service.form.saveButton" : "Szolgáltatás mentése", - "settings.service.form.spellcheckerLanguage" : "Helyesírás-ellenőrző nyelve", - "settings.service.form.spellcheckerLanguage.default" : "Rendszer alapbeállítás használata ({default})", "settings.service.form.tabHosted" : "Üzemeltetett", "settings.service.form.tabOnPremise" : "Egyénileg üzemeltetett", "settings.service.form.team" : "Csapat", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Szolgáltatások felfedezése", "settings.services.headline" : "Szolgáltatásaid", "settings.services.noServicesAdded" : "Még nem adtál hozzá egyetlen szolgáltatást sem eddig.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "A szolgáltatás le van tiltva", "settings.services.tooltip.isMuted" : "Minden hang lenémítva", "settings.services.tooltip.notificationsDisabled" : "Értesítések letiltva", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "EU állampolgárok: helyi vásárlás esetén adók kerülhetnek felszámolásra", "subscription.features.ads" : "Hirdetésmentes, mindig!", "subscription.features.comingSoon" : "hamarosan", - "subscription.features.encryptedSync" : "Titkosított munkamenet szinkronizálás", "subscription.features.noInterruptions" : "Nincs több app késlekedés és liszencfrissítési piszkálás", - "subscription.features.onpremise" : "Helyi\/üzemeltetett szolgáltatások használata, pl. HipChat", "subscription.features.onpremise.mattermost" : "Saját kiszolgálós szolgáltatások hozzáadása, pl.: Mattermost", "subscription.features.proxy" : "Proxy támogatás a szolgáltatásokhoz", "subscription.features.spellchecker" : "Támogatás a Helyesírás-ellenőrzőhöz", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Újratöltés", "validation.email" : "{field} nem érvényes", "validation.minLength" : "{field} mezőnek legalább {length} karakter hosszúnak kell lennie", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} kitöltése kötelező", "validation.url" : "{field} nem érvényes URL", "welcome.loginButton" : "Jelentkezz be a fiókodba", - "welcome.signupButton" : "Új fiók létrehozása", - "welcome.slogan" : "Üzenetküldés okosan" + "welcome.signupButton" : "Új fiók létrehozása" } diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json index 6abbf064b..73271dceb 100644 --- a/src/i18n/locales/id.json +++ b/src/i18n/locales/id.json @@ -70,7 +70,9 @@ "menu.help.support" : "Dukungan", "menu.help.tos" : "Ketentuan Layanan", "menu.services" : "Layanan", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Tambahkan Layanan Baru...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Tampilan", "menu.view.enterFullScreen" : "Masuk ke Mode Layar Penuh", "menu.view.exitFullScreen" : "Keluar dari Layar Penuh", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "Unduh", "settings.account.manageSubscription.label" : "Kelola langganan Anda", "settings.account.successInfo" : "Perubahan Anda telah disimpan", + "settings.account.tryReloadServices" : "Coba lagi", "settings.account.tryReloadUserInfoRequest" : "Coba lagi", "settings.account.userInfoRequestFailed" : "Gagal memuat informasi pengguna", "settings.app.buttonClearAllCache" : "Bersihkan singgahan", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Sertakan versi beta", "settings.app.form.darkMode" : "Sisi Kelam menunggu Anda (Mode Gelap)", "settings.app.form.enableGPUAcceleration" : "Aktifkan Akselerasi GPU", - "settings.app.form.enableMenuBar" : "Tampilkan Franz di Bilah Menu", "settings.app.form.enableSpellchecking" : "Aktifkan pemeriksaan ejaan", "settings.app.form.enableSystemTray" : "Tampilkan Franz di baki sistem", - "settings.app.form.hideDockIcon" : "Sembunyikan ikon Franz di Dock", "settings.app.form.language" : "Bahasa", "settings.app.form.minimizeToSystemTray" : "Perkecil Franz ke baki sistem", "settings.app.form.runInBackground" : "Tetap jalankan Franz di latar belakang saat menutup jendela", "settings.app.form.showDisabledServices" : "Tampilkan tab layanan yang dinonaktifkan", "settings.app.form.showMessagesBadgesWhenMuted" : "Tampilkan lencana pesan belum dibaca saat pemberitahuan dinonaktifkan", - "settings.app.form.spellcheckerLanguage" : "Periksa ejaan", "settings.app.headline" : "Pengaturan", "settings.app.headlineAdvanced" : "Tingkat Lanjut", "settings.app.headlineAppearance" : "Tampilan", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Silahkan mulai ulang Franz setelah mengubah Setelan proxy", "settings.service.form.proxy.user" : "Pengguna (opsional)", "settings.service.form.saveButton" : "Simpan layanan", - "settings.service.form.spellcheckerLanguage" : "Periksa ejaan Bahasa", - "settings.service.form.spellcheckerLanguage.default" : "Gunakan Bawaan Sistem ({default})", "settings.service.form.tabHosted" : "Hosted", "settings.service.form.tabOnPremise" : "Hosted mandiri", "settings.service.form.team" : "Tim", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Temukan layanan", "settings.services.headline" : "Layanan Anda", "settings.services.noServicesAdded" : "Anda belum menambahkan layanan apa pun.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Layanan dinonaktifkan", "settings.services.tooltip.isMuted" : "Semua suara dibisukan", "settings.services.tooltip.notificationsDisabled" : "Pemberitahuan dinonaktifkan", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "Warga UE: pajak penjualan lokal mungkin berlaku", "subscription.features.ads" : "Tanpa iklan, selamanya!", "subscription.features.comingSoon" : "segera hadir", - "subscription.features.encryptedSync" : "Sinkronisasi sesi terenkripsi", "subscription.features.noInterruptions" : "Tanpa menunggu dan ditanya untuk meningkatkan lisensi", - "subscription.features.onpremise" : "Integrasi layanan hosted, misalnya HipChat", "subscription.features.onpremise.mattermost" : "Integrasi layanan hosted, misalnya Mattermost", "subscription.features.proxy" : "Dukungan proksi untuk layanan", "subscription.features.spellchecker" : "Dukungan pengecek ejaan", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Muat Ulang", "validation.email" : "{field} tidak benar", "validation.minLength" : "{field} setidaknya harus {length} karakter", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} wajib diisi", "validation.url" : "{field} bukan URL yang benar", "welcome.loginButton" : "Masuk ke akun Anda", - "welcome.signupButton" : "Buat akun gratis", - "welcome.slogan" : "Perpesanan yang bekerja untuk Anda" + "welcome.signupButton" : "Buat akun gratis" } diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index b63b30a90..71150483c 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -70,7 +70,9 @@ "menu.help.support" : "Supporto", "menu.help.tos" : "Termini di Servizio", "menu.services" : "Servizi", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Aggiungi Nuovo Servizio...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Visualizza", "menu.view.enterFullScreen" : "Visualizza a Schermo Intero", "menu.view.exitFullScreen" : "Esci da Schermo Intero", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "Scarica", "settings.account.manageSubscription.label" : "Gestisci il tuo abbonamento", "settings.account.successInfo" : "Le tue modifiche sono state salvate", + "settings.account.tryReloadServices" : "Prova di nuovo", "settings.account.tryReloadUserInfoRequest" : "Prova di nuovo", "settings.account.userInfoRequestFailed" : "Impossibile caricare le informazioni dell'utente.", "settings.app.buttonClearAllCache" : "Svuota la cache", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Includi versioni beta", "settings.app.form.darkMode" : "Unisciti al Lato Oscuro.", "settings.app.form.enableGPUAcceleration" : "Attiva Accelerazione GPU", - "settings.app.form.enableMenuBar" : "Mostra Franz nella Barra del Menu", "settings.app.form.enableSpellchecking" : "Attiva controllo ortografico", "settings.app.form.enableSystemTray" : "Mostra Franz nell'area di notifica", - "settings.app.form.hideDockIcon" : "Nascondi l'icona Franz nel Dock", "settings.app.form.language" : "Lingua", "settings.app.form.minimizeToSystemTray" : "Minimizza Franz nell'area di notifica", "settings.app.form.runInBackground" : "Mantieni Franz in esecuzione quando chiudi la finestra", "settings.app.form.showDisabledServices" : "Mostra schede servizi disattivati", "settings.app.form.showMessagesBadgesWhenMuted" : "Mostra l'etichetta dei messaggi non letti quando le notifiche sono disattivate", - "settings.app.form.spellcheckerLanguage" : "Lingua per controllo ortografico", "settings.app.headline" : "Impostazioni", "settings.app.headlineAdvanced" : "Avanzate", "settings.app.headlineAppearance" : "Aspetto", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Riavvia Franz dopo aver cambiato le impostazioni del proxy.", "settings.service.form.proxy.user" : "Utente (opzionale)", "settings.service.form.saveButton" : "Salva servizio", - "settings.service.form.spellcheckerLanguage" : "Lingua per controllo ortografico", - "settings.service.form.spellcheckerLanguage.default" : "Usa le impostazioni predefinite di sistema ({default})", "settings.service.form.tabHosted" : "Hosted", "settings.service.form.tabOnPremise" : "Self hosted ⭐️", "settings.service.form.team" : "Gruppo", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Scopri servizi", "settings.services.headline" : "I tuoi servizi", "settings.services.noServicesAdded" : "Non hai aggiunto ancora nessun servizio.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Il servizio è disattivato", "settings.services.tooltip.isMuted" : "Tutti i suoni sono disattivati", "settings.services.tooltip.notificationsDisabled" : "Le notifiche sono disattivate", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "Per i residenti UE: possono essere applicate tasse locali", "subscription.features.ads" : "Nessuna pubblicità, mai!", "subscription.features.comingSoon" : "in arrivo", - "subscription.features.encryptedSync" : "Sincronizzazione sessione crittografata", "subscription.features.noInterruptions" : "L'upgrade della licenza avrà impatti sull'utilizzo dell'App", - "subscription.features.onpremise" : "Aggiungi servizi on-premise\/hosted come HipChat", "subscription.features.onpremise.mattermost" : "Aggiungi servizi on-premise\/hosted come \"Mattermost\"", "subscription.features.proxy" : "Supporto proxy per i servizi", "subscription.features.spellchecker" : "Supporto per il correttore ortografico", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Ricarica", "validation.email" : "{field} non valido", "validation.minLength" : "{field} dovrebbe contenere almeno {length} caratteri", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} è necessario", "validation.url" : "{field} non è un URL valido", "welcome.loginButton" : "Accedi al tuo account", - "welcome.signupButton" : "Crea un account gratuito", - "welcome.slogan" : "Un sistema di messaggistica che va bene per te" + "welcome.signupButton" : "Crea un account gratuito" } diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index 838dc81ea..bd1024a34 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -70,7 +70,9 @@ "menu.help.support" : "サポート", "menu.help.tos" : "サービス利用規約", "menu.services" : "サービス", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "サービスを追加", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "表示", "menu.view.enterFullScreen" : "全画面表示", "menu.view.exitFullScreen" : "全画面表示を終了する", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "ダウンロード", "settings.account.manageSubscription.label" : "サブスクリプションの管理", "settings.account.successInfo" : "変更内容が保存されました", + "settings.account.tryReloadServices" : "もう一度試す", "settings.account.tryReloadUserInfoRequest" : "もう一度試す", "settings.account.userInfoRequestFailed" : "ユーザ情報を読み込めませんでした", "settings.app.buttonClearAllCache" : "キャッシュを消去する", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Betaバージョンを含める", "settings.app.form.darkMode" : "ダークモードを有効にする", "settings.app.form.enableGPUAcceleration" : "GPUアクセラレーションを有効にする", - "settings.app.form.enableMenuBar" : "メニューバーにFranzを表示する", "settings.app.form.enableSpellchecking" : "スペルチェックを有効にする", "settings.app.form.enableSystemTray" : "Franzをシステムトレイに表示する", - "settings.app.form.hideDockIcon" : "DockからFranzを隠す", "settings.app.form.language" : "言語", "settings.app.form.minimizeToSystemTray" : "Franzをシステムトレイに最小化する", "settings.app.form.runInBackground" : "ウインドウを閉じた際にFranzをバックグラウンドで実行させておく", "settings.app.form.showDisabledServices" : "無効化されたサービスのタブを表示する", "settings.app.form.showMessagesBadgesWhenMuted" : "通知の無効時に未読メッセージ件数を表示する", - "settings.app.form.spellcheckerLanguage" : "スペルチェックする言語", "settings.app.headline" : "設定", "settings.app.headlineAdvanced" : "詳細", "settings.app.headlineAppearance" : "表示スタイル", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "プロキシ設定を変更してから、Franzを再起動してください", "settings.service.form.proxy.user" : "ユーザー名(任意)", "settings.service.form.saveButton" : "サービスの保存", - "settings.service.form.spellcheckerLanguage" : "言語のスペルチェック", - "settings.service.form.spellcheckerLanguage.default" : " {default}を初期設定で使用してください", "settings.service.form.tabHosted" : "ホスト", "settings.service.form.tabOnPremise" : "セルフホスト ⭐️", "settings.service.form.team" : "チーム", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "サービスを探す", "settings.services.headline" : "利用中のサービス", "settings.services.noServicesAdded" : "まだ、どのサービスも追加されていません。", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "サービスが無効です", "settings.services.tooltip.isMuted" : "無音となっています", "settings.services.tooltip.notificationsDisabled" : "通知は無効です", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "EU在住者 : 地域の消費税が適用される可能性があります", "subscription.features.ads" : "広告は一切ありません!", "subscription.features.comingSoon" : "まもなく登場", - "subscription.features.encryptedSync" : "暗号化されたセッションの同期", "subscription.features.noInterruptions" : "待ち時間なしでFranz をお使いいただけます", - "subscription.features.onpremise" : "HipChatのようなオンプレミス\/ホスト型サービスの追加", "subscription.features.onpremise.mattermost" : "Mattermost のようなオンプレミス(自社運用)型のサービスを追加できるようになります", "subscription.features.proxy" : "プロキシ設定が利用可能", "subscription.features.spellchecker" : "スペルチェック機能をお使いいただけます", @@ -280,9 +277,9 @@ "tabs.item.reload" : "再読み込み", "validation.email" : "{field}は正しくありません", "validation.minLength" : "{field}は少なくとも{length}文字以上でなければなりません", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field}は必須です", "validation.url" : "{field}は正しいURLではありません", "welcome.loginButton" : "アカウントにログイン", - "welcome.signupButton" : "無料アカウントを作成", - "welcome.slogan" : "Messaging that works for you" + "welcome.signupButton" : "無料アカウントを作成" } diff --git a/src/i18n/locales/ka.json b/src/i18n/locales/ka.json index ec0cdd375..4796cbe9f 100644 --- a/src/i18n/locales/ka.json +++ b/src/i18n/locales/ka.json @@ -70,7 +70,9 @@ "menu.help.support" : "Support", "menu.help.tos" : "Terms of Service", "menu.services" : "Services", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Add New Service...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "View", "menu.view.enterFullScreen" : "Enter Full Screen", "menu.view.exitFullScreen" : "Exit Full Screen", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "გადმოწერა", "settings.account.manageSubscription.label" : "თქვენი გამოწერის მართვა", "settings.account.successInfo" : "თქვენი ცვლილებები შენახულია", + "settings.account.tryReloadServices" : "სცადეთ ხელახლა", "settings.account.tryReloadUserInfoRequest" : "სცადეთ ხელახლა", "settings.account.userInfoRequestFailed" : "მომხმარებლის ინფორმაციის ჩატვირთვა ვერ მოხერხდა", "settings.app.buttonClearAllCache" : "Clear cache", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "ჩართეთ ბეტა ვერსიები", "settings.app.form.darkMode" : "Join the Dark Side", "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", - "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", "settings.app.form.enableSpellchecking" : "Enable spell checking", "settings.app.form.enableSystemTray" : "აჩვენეთ Franz სისტემის უჯრაში", - "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock", "settings.app.form.language" : "ენა", "settings.app.form.minimizeToSystemTray" : "ჩაკეცეთ Franz სისტემის უჯრაში", "settings.app.form.runInBackground" : "დატოვეთ Franz გაშვებული როდესაც ფანჯარა დაიხურება", "settings.app.form.showDisabledServices" : "Display disabled services tabs", "settings.app.form.showMessagesBadgesWhenMuted" : "Show unread message badge when notifications are disabled", - "settings.app.form.spellcheckerLanguage" : "Spell checking language", "settings.app.headline" : "პარამეტრები", "settings.app.headlineAdvanced" : "Advanced", "settings.app.headlineAppearance" : "Appearance", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", "settings.service.form.proxy.user" : "User (optional)", "settings.service.form.saveButton" : "სერვისის შენახვა", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "დაჰოსტილი", "settings.service.form.tabOnPremise" : "თვით დაჰოსტილი ⭐️", "settings.service.form.team" : "გუნდი", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "აღმოაჩინეთ სერვისები", "settings.services.headline" : "თქვენი სერვისები", "settings.services.noServicesAdded" : "თქვენ ჯერ არ გაქვთ სერვისები დამატებული.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "სერვისი გათიშულია", "settings.services.tooltip.isMuted" : "All sounds are muted", "settings.services.tooltip.notificationsDisabled" : "შეტყობინებები გათიშულია", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "EU residents: local sales tax may apply", "subscription.features.ads" : "არანაირი რეკლამები, არასდროს!", "subscription.features.comingSoon" : "მალე", - "subscription.features.encryptedSync" : "დაშიფრული სესიის სინქრონიზაცია", "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "on-premise\/hosted სერვისების დამატება, როგორიცაა HipChat", "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", "subscription.features.proxy" : "Proxy support for services", "subscription.features.spellchecker" : "Support for spellchecker", @@ -280,9 +277,9 @@ "tabs.item.reload" : "ჩატვირთვა", "validation.email" : "{field} is not valid", "validation.minLength" : "{field} should be at least {length} characters long", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} is required", "validation.url" : "{field} is not a valid URL", "welcome.loginButton" : "შედით თქვენს ანგარიშში", - "welcome.signupButton" : "შექმენი ანგარიში, ეს უფასოა", - "welcome.slogan" : "შეტყობინების აპლიკაცია, რომელიც მუშაობს შენთვის" + "welcome.signupButton" : "შექმენი ანგარიში, ეს უფასოა" } diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json index 2082edd6d..00d7ddd06 100644 --- a/src/i18n/locales/nl-BE.json +++ b/src/i18n/locales/nl-BE.json @@ -70,7 +70,9 @@ "menu.help.support" : "Ondersteuning", "menu.help.tos" : "Servicevoorwaarden", "menu.services" : "Services", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Nieuwe service toevoegen...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Weergave", "menu.view.enterFullScreen" : "Volledig scherm openen", "menu.view.exitFullScreen" : "Volledig scherm verlaten", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "Download", "settings.account.manageSubscription.label" : "Beheer je abonnement", "settings.account.successInfo" : "Je wijzigingen zijn opgeslagen", + "settings.account.tryReloadServices" : "Probeer opnieuw", "settings.account.tryReloadUserInfoRequest" : "Probeer opnieuw", "settings.account.userInfoRequestFailed" : "Kon gebruikersinformatie niet laden", "settings.app.buttonClearAllCache" : "Cache wissen", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Inclusief beta versies", "settings.app.form.darkMode" : "Word lid van de Dark Side", "settings.app.form.enableGPUAcceleration" : "GPU Acceleratie Activeren", - "settings.app.form.enableMenuBar" : "Toon Franz in Menu Bar", "settings.app.form.enableSpellchecking" : "Spellingcontrole inschakelen", "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk", - "settings.app.form.hideDockIcon" : "Verberg Franz in Dock", "settings.app.form.language" : "Taal", "settings.app.form.minimizeToSystemTray" : "Minimaliseer Franz naar de systeembalk", "settings.app.form.runInBackground" : "Houd Franz op de achtergrond wanneer het venster gesloten wordt", "settings.app.form.showDisabledServices" : "Toon uitgeschakelde services", "settings.app.form.showMessagesBadgesWhenMuted" : "Toon badge met ongelezen berichten wanneer meldingen zijn uitgeschakeld", - "settings.app.form.spellcheckerLanguage" : "Taal spellingscontrole", "settings.app.headline" : "Instellingen", "settings.app.headlineAdvanced" : "Geavanceerd", "settings.app.headlineAppearance" : "Weergave", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Start Franz opnieuw op na het aanpassen van proxy Instellingen.", "settings.service.form.proxy.user" : "Gebruiker (optioneel)", "settings.service.form.saveButton" : "Service opslaan", - "settings.service.form.spellcheckerLanguage" : "Taal spellingscontrole", - "settings.service.form.spellcheckerLanguage.default" : "Gebruik Systeemstandaard ({default})", "settings.service.form.tabHosted" : "Gehost", "settings.service.form.tabOnPremise" : "Intern gehost ⭐️", "settings.service.form.team" : "Team", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Services ontdekken", "settings.services.headline" : "Jouw services", "settings.services.noServicesAdded" : "Je hebt nog geen services toegevoegd.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Service is uitgeschakeld", "settings.services.tooltip.isMuted" : "Alle geluiden zijn uitgeschakeld", "settings.services.tooltip.notificationsDisabled" : "Notificaties staan uit", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "Bewoners binnen EU: lokale belasting kan van toepassing zijn", "subscription.features.ads" : "Geen reclame, nooit!", "subscription.features.comingSoon" : "komt binnenkort", - "subscription.features.encryptedSync" : "Synchronisatie van geëncrypteerde sessies", "subscription.features.noInterruptions" : "Geen haperingen & pop ups over upgrades", - "subscription.features.onpremise" : "Intern gehoste services zoals HipChat", "subscription.features.onpremise.mattermost" : "Voeg op-locatie\/gehoste diensten zoals Mattermost toe", "subscription.features.proxy" : "Proxy ondersteuning voor services", "subscription.features.spellchecker" : "Ondersteuning voor spellingscheck", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Herladen", "validation.email" : "{field} is niet geldig", "validation.minLength" : "{field} moet minimaal {length} karakters lang zijn", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} is vereist", "validation.url" : "{field} is niet een geldige URL", "welcome.loginButton" : "Inloggen op je account", - "welcome.signupButton" : "Maak een gratis account aan", - "welcome.slogan" : "Messaging die voor jou werkt" + "welcome.signupButton" : "Maak een gratis account aan" } diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index df0549a28..782c29a6c 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json @@ -70,7 +70,9 @@ "menu.help.support" : "Ondersteuning", "menu.help.tos" : "Servicevoorwaarden", "menu.services" : "Diensten", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Nieuwe dienst toevoegen", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Weergave", "menu.view.enterFullScreen" : "Gebruik volledig scherm", "menu.view.exitFullScreen" : "Volledig scherm verlaten", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "Download", "settings.account.manageSubscription.label" : "Beheer je abonnement", "settings.account.successInfo" : "Je wijzigingen zijn opgeslagen", + "settings.account.tryReloadServices" : "Probeer opnieuw", "settings.account.tryReloadUserInfoRequest" : "Probeer opnieuw", "settings.account.userInfoRequestFailed" : "Kon gebruikersinformatie niet laden", "settings.app.buttonClearAllCache" : "Cache legen", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Inclusief bètaversies", "settings.app.form.darkMode" : "Stap over naar de donkere kant", "settings.app.form.enableGPUAcceleration" : "Schakel videokaart acceleratie in ", - "settings.app.form.enableMenuBar" : "Toon Franz in menubalk", "settings.app.form.enableSpellchecking" : "Zet spellingcontrole aan", "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk", - "settings.app.form.hideDockIcon" : "Verberg Franz in Dock", "settings.app.form.language" : "Taal", "settings.app.form.minimizeToSystemTray" : "Minimaliseer Franz naar de systeembalk", "settings.app.form.runInBackground" : "Houd Franz op de achtergrond wanneer het venster gesloten wordt", "settings.app.form.showDisabledServices" : "Toon uitgeschakelde services", "settings.app.form.showMessagesBadgesWhenMuted" : "Toon badge met ongelezen berichten wanneer meldingen zijn uitgeschakeld", - "settings.app.form.spellcheckerLanguage" : "Spelling checken", "settings.app.headline" : "Instellingen", "settings.app.headlineAdvanced" : "Geavanceerd", "settings.app.headlineAppearance" : "Weergave", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Start Franz opnieuw na het aanpassen van proxy instellingen.", "settings.service.form.proxy.user" : "Gebruiker (optioneel)", "settings.service.form.saveButton" : "Service opslaan", - "settings.service.form.spellcheckerLanguage" : "Spellingcontrole taal", - "settings.service.form.spellcheckerLanguage.default" : "Gebruik systeemstandaard ({default})", "settings.service.form.tabHosted" : "Gehost", "settings.service.form.tabOnPremise" : "Zelf-gehost ⭐️", "settings.service.form.team" : "Team", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Ontdek services", "settings.services.headline" : "Jouw services", "settings.services.noServicesAdded" : "Je hebt nog geen services toegevoegd.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Service is uitgeschakeld", "settings.services.tooltip.isMuted" : "Alle geluiden zijn uitgeschakeld", "settings.services.tooltip.notificationsDisabled" : "Meldingen zijn uitgeschakeld", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "Bewoners binnen EU: lokale belasting kan van toepassing zijn", "subscription.features.ads" : "Geen advertenties, nooit!", "subscription.features.comingSoon" : "komt binnenkort", - "subscription.features.encryptedSync" : "Beveiligde sessie synchronisatie", "subscription.features.noInterruptions" : "Geen haperingen & pop ups over upgrades", - "subscription.features.onpremise" : "Add on-geschikt\/gehoste services zoals HipChat", "subscription.features.onpremise.mattermost" : "Voeg op-locatie\/gehoste diensten zoals Mattermost toe", "subscription.features.proxy" : "Proxy understeuning voor diensten", "subscription.features.spellchecker" : "Ondersteuning voor spellingscheck", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Herladen", "validation.email" : "{field} is niet geldig", "validation.minLength" : "{field} moet minimaal {length} karakters lang zijn", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} is vereist", "validation.url" : "{field} is niet een geldige URL", "welcome.loginButton" : "Log in op je account", - "welcome.signupButton" : "Maak een gratis account", - "welcome.slogan" : "Messaging die voor jou werkt" + "welcome.signupButton" : "Maak een gratis account" } diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index e1a1747b3..dd70f25f7 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -70,7 +70,9 @@ "menu.help.support" : "Wsparcie", "menu.help.tos" : "Warunki świadczenia usług", "menu.services" : "Usługi", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Dodaj nową usługę...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Widok", "menu.view.enterFullScreen" : "Włącz tryb pełnoekranowy", "menu.view.exitFullScreen" : "Zakończ tryb pełnoekranowy", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "Pobierz", "settings.account.manageSubscription.label" : "Zarządzaj swoimi subskrypcjami", "settings.account.successInfo" : "Twoje zmiany zostały zapisane", + "settings.account.tryReloadServices" : "Spróbuj ponownie", "settings.account.tryReloadUserInfoRequest" : "Spróbuj ponownie", "settings.account.userInfoRequestFailed" : "Nie można wczytać informacji o użytkowniku", "settings.app.buttonClearAllCache" : "Wyczyść pamięć podręczną (cache)", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Uwzględnij wersje beta", "settings.app.form.darkMode" : "Przejdź na Ciemną Stronę", "settings.app.form.enableGPUAcceleration" : "Włącz akcelerację GPU", - "settings.app.form.enableMenuBar" : "Pokaż Franz na pasku menu", "settings.app.form.enableSpellchecking" : "Włącz sprawdzanie pisowni", "settings.app.form.enableSystemTray" : "Pokaż Franza w obszarze powiadomień", - "settings.app.form.hideDockIcon" : "Ukrywaj ikonę Franz w zasobniku systemowym", "settings.app.form.language" : "Język", "settings.app.form.minimizeToSystemTray" : "Zminimalizuj aplikację Franz", "settings.app.form.runInBackground" : "Zachowaj aplikację Franz w tle po zamknięciu okna", "settings.app.form.showDisabledServices" : "Wyłącz wyświetlanie zakładek z usługami", "settings.app.form.showMessagesBadgesWhenMuted" : "Pokaż licznik nieprzeczytanych wiadomości gdy powiadomienia są wyłączone", - "settings.app.form.spellcheckerLanguage" : "Język słownika", "settings.app.headline" : "Ustawienia", "settings.app.headlineAdvanced" : "Zaawansowane", "settings.app.headlineAppearance" : "Wygląd", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Uruchom ponownie Franz po zmianie ustawień proxy.", "settings.service.form.proxy.user" : "Użytkownik (opcjonalnie)", "settings.service.form.saveButton" : "Zapisz usługę", - "settings.service.form.spellcheckerLanguage" : "Język sprawdzania pisowni", - "settings.service.form.spellcheckerLanguage.default" : "Użyj domyślnego dla systemu ({default})", "settings.service.form.tabHosted" : "Hostowane", "settings.service.form.tabOnPremise" : "Hostowane lokalnie ⭐️", "settings.service.form.team" : "Zespół", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Przeglądaj usługi", "settings.services.headline" : "Twoje usługi", "settings.services.noServicesAdded" : "Nie dodałeś jeszcze żadnych usług.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Usługa jest nieaktywna", "settings.services.tooltip.isMuted" : "Wszystkie dźwięki są wyciszone", "settings.services.tooltip.notificationsDisabled" : "Powiadomienia są nieaktywne", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "Rezydenci UE: lokalne stawki VAT mogą zostać zaaplikowane", "subscription.features.ads" : "Brak reklam, na zawsze!", "subscription.features.comingSoon" : "wkrótce dostępne", - "subscription.features.encryptedSync" : "Szyfrowana synchronizacja sesji", "subscription.features.noInterruptions" : "Bez opóźnień i przypominania o ulepszeniu licencji", - "subscription.features.onpremise" : "Dodawanie lokalnych\/hostowanych usług takich jak HipChat", "subscription.features.onpremise.mattermost" : "Dodaj prywatnie hostowane usługi takie jak Mattermost", "subscription.features.proxy" : "Obsługa proxy dla usług", "subscription.features.spellchecker" : "Wsparcie dla sprawdzania pisowni", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Przeładuj", "validation.email" : "Pole {field} nie jest poprawne", "validation.minLength" : "Pole {field} powinno składać się z co najmniej {length} znaków", + "validation.oneRequired" : "At least one is required", "validation.required" : "Pole {field} jest wymagane", "validation.url" : "Pole {field} nie jest poprawnym ciągiem URL.", "welcome.loginButton" : "Zaloguj się na swoje konto", - "welcome.signupButton" : "Stwórz darmowe konto", - "welcome.slogan" : "Komunikator który działa" + "welcome.signupButton" : "Stwórz darmowe konto" } diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 0ab5bdd21..490771c39 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -4,18 +4,18 @@ "feature.delayApp.action" : "Adquira uma licença Franz Supporter", "feature.delayApp.headline" : "Por favor, adquira uma licença Franz Supporter para pular o tempo de espera", "feature.delayApp.text" : "Franz continuará em {seconds} segundos.", - "feature.shareFranz.action.email" : "Send as email", - "feature.shareFranz.action.facebook" : "Share on Facebook", - "feature.shareFranz.action.twitter" : "Share on Twitter", - "feature.shareFranz.headline" : "Franz is better together!", - "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", - "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", - "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", + "feature.shareFranz.action.email" : "Enviar como e-mail", + "feature.shareFranz.action.facebook" : "Compartilhar no Facebook", + "feature.shareFranz.action.twitter" : "Compartilhar no Twitter", + "feature.shareFranz.headline" : "Franz é melhor em grupo!", + "feature.shareFranz.shareText.email" : "Eu adicionei {count} serviços ao Franz! Adquira o aplicativo gratuito para WhatsApp, Messenger, Slack, Skype e mais em www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "Adicionei o serviço de {count} ao Franz! Adquira o app grátis para usar WhatsApp, Messenger, Slack, Skype e mais em www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Conte aos seus amigos e colegas o quão incrível Franz é e nos ajude a espalhar a mensagem. ", "global.api.unhealthy" : "Não foi possível conectar-se aos serviços on-line do Franz.", "global.notConnectedToTheInternet" : "Você não está conectado à internet", "global.spellchecker.useDefault" : "Use o padrão do sistema ({default})", - "global.spellchecking.autodetect" : "Detect language automatically", - "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.autodetect" : "Detectar linguagem automaticamente.", + "global.spellchecking.autodetect.short" : "Automático", "global.spellchecking.language" : "Idioma de verificação ortográfica", "import.headline" : "Importe seus serviços do Franz 4 ", "import.notSupportedHeadline" : "Serviços ainda não suportados pelo Franz 5 ", @@ -70,7 +70,9 @@ "menu.help.support" : "Suporte", "menu.help.tos" : "Termos de Serviço", "menu.services" : "Serviços", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Adicionar Novo Serviço", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Visualizar ", "menu.view.enterFullScreen" : "Modo Tela Cheia", "menu.view.exitFullScreen" : "Sair da Tela Cheia", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "Baixar", "settings.account.manageSubscription.label" : "Gerencie a sua assinatura", "settings.account.successInfo" : "Suas alterações foram gravadas", + "settings.account.tryReloadServices" : "Tente novamente", "settings.account.tryReloadUserInfoRequest" : "Tente novamente", "settings.account.userInfoRequestFailed" : "Não foi possível carregar as informações do usuário", "settings.app.buttonClearAllCache" : "Limpar cache", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Incluir versões beta", "settings.app.form.darkMode" : "Venha para o Lado Negro da força", "settings.app.form.enableGPUAcceleration" : "Ativar Aceleração de GPU", - "settings.app.form.enableMenuBar" : "Mostrar Franz na Barra de Menu", "settings.app.form.enableSpellchecking" : "Ativar correção ortográfica", "settings.app.form.enableSystemTray" : "Exibir o Franz na barra de sistema", - "settings.app.form.hideDockIcon" : "Ocultar ícone do Franz no Dock", "settings.app.form.language" : "Idioma", "settings.app.form.minimizeToSystemTray" : "Minimizar o Franz para a área de sistema", "settings.app.form.runInBackground" : "Manter o Franz no fundo quando fechar a janela", "settings.app.form.showDisabledServices" : "Mostrar abas de serviços desativados", "settings.app.form.showMessagesBadgesWhenMuted" : "Mostrar ícone de mensagem não lida quando as notificações estiverem desativadas", - "settings.app.form.spellcheckerLanguage" : "Idioma de verificação ortográfica", "settings.app.headline" : "Configurações", "settings.app.headlineAdvanced" : "Avançado", "settings.app.headlineAppearance" : "Aparência", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Por favor, reinicie o Franz após alterar as configurações de proxy.", "settings.service.form.proxy.user" : "Usuário (opcional)", "settings.service.form.saveButton" : "Salvar serviço", - "settings.service.form.spellcheckerLanguage" : "Língua do corretor ortográfico", - "settings.service.form.spellcheckerLanguage.default" : "Use o padrão do sistema ({default})", "settings.service.form.tabHosted" : "Hospedado", "settings.service.form.tabOnPremise" : "Auto-hospedado ⭐️", "settings.service.form.team" : "Equipe", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Descobrir serviços", "settings.services.headline" : "Seus serviços", "settings.services.noServicesAdded" : "Você ainda não adicionou nenhum serviço.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "O serviço está desativado", "settings.services.tooltip.isMuted" : "Sem som", "settings.services.tooltip.notificationsDisabled" : "Notificações desativadas", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "Residentes na União Europeia: taxas locais serão aplicadas", "subscription.features.ads" : "Sem anúncios, pra sempre!", "subscription.features.comingSoon" : "em breve", - "subscription.features.encryptedSync" : "Sincronização encriptada das sessões", "subscription.features.noInterruptions" : "Sem demora e sem chateação para comprar uma licença. ", - "subscription.features.onpremise" : "Adicionar serviços locais\/hospedados como o HipChat", "subscription.features.onpremise.mattermost" : "Adicionar serviços locais\/hospedados como o Mattermost", "subscription.features.proxy" : "Suporte de proxy para serviços", "subscription.features.spellchecker" : "Suporte para corretor ortográfico", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Recarregar", "validation.email" : "inválido", "validation.minLength" : "{campo} deve ter pelo menos {comprimento} mais caracteres ", + "validation.oneRequired" : "At least one is required", "validation.required" : "{campo} obrigatório", "validation.url" : "{campo} essa URL não é válida", "welcome.loginButton" : "Entrar na sua conta", - "welcome.signupButton" : "Criar uma conta grátis", - "welcome.slogan" : "Mensagens que funcionam para você" + "welcome.signupButton" : "Criar uma conta grátis" } diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json index 9e7455bdf..7e23aa0ba 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json @@ -70,7 +70,9 @@ "menu.help.support" : "Suporte", "menu.help.tos" : "Termos do Serviço", "menu.services" : "Serviços", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Adicionar Novo Serviço...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Ver", "menu.view.enterFullScreen" : "Ativar Modo de Ecrã Completo", "menu.view.exitFullScreen" : "Sair do Modo de Ecrã Completo", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "Transferir", "settings.account.manageSubscription.label" : "Gerir as minhas subscrições", "settings.account.successInfo" : "As suas alterações foram efetuadas com sucesso", + "settings.account.tryReloadServices" : "Tentar novamente", "settings.account.tryReloadUserInfoRequest" : "Tentar novamente", "settings.account.userInfoRequestFailed" : "Não é possível carregar a informação do utilizador", "settings.app.buttonClearAllCache" : "Limpar cache", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Incluir versões instáveis (beta)", "settings.app.form.darkMode" : "Junta-te ao Lado Negro", "settings.app.form.enableGPUAcceleration" : "Activar Aceleração de GPU", - "settings.app.form.enableMenuBar" : "Mostrar Franz na Barra de Menu", "settings.app.form.enableSpellchecking" : "Ativar verificação ortográfica", "settings.app.form.enableSystemTray" : "Mostrar o Franz na barra do sistema", - "settings.app.form.hideDockIcon" : "Esconder ícone na Dock", "settings.app.form.language" : "Idioma", "settings.app.form.minimizeToSystemTray" : "Minimizar o Franz para a barra do sistema", "settings.app.form.runInBackground" : "Manter o Franz em segundo plano ao fechar a janela", "settings.app.form.showDisabledServices" : "Apresentar separadores de serviços desativados", "settings.app.form.showMessagesBadgesWhenMuted" : "Apresentar emblema com o número de mensagens não lidas quando as notificações estão desativadas", - "settings.app.form.spellcheckerLanguage" : "Linguagem para correção ortográfica", "settings.app.headline" : "Definições", "settings.app.headlineAdvanced" : "Avançado", "settings.app.headlineAppearance" : "Aparência", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Reinicie, por favor, após atualizar as definições do Franz", "settings.service.form.proxy.user" : "Utilizador (opcional)", "settings.service.form.saveButton" : "Guardar serviço", - "settings.service.form.spellcheckerLanguage" : "Linguagem de correção ortográfica", - "settings.service.form.spellcheckerLanguage.default" : "Utilizar o Sistema por Omissão ({default})", "settings.service.form.tabHosted" : "Com domínio", "settings.service.form.tabOnPremise" : "Com domínio próprio ⭐️", "settings.service.form.team" : "Equipa", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Descobrir serviços", "settings.services.headline" : "Os seus serviços", "settings.services.noServicesAdded" : "Ainda não adicionou nenhum serviço.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "O serviço está desativado", "settings.services.tooltip.isMuted" : "Todos os sons estão silenciados", "settings.services.tooltip.notificationsDisabled" : "As notificações estão desativadas", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "Residentes EU: Taxas locais podem ser aplicadas", "subscription.features.ads" : "Sem anúncios, para sempre!", "subscription.features.comingSoon" : "em breve", - "subscription.features.encryptedSync" : "Sincronização encriptada de sessão", "subscription.features.noInterruptions" : "Sem atrasos na aplicação nem mensagens para comprar uma licença", - "subscription.features.onpremise" : "Adicionar serviços 'on-premise'\/hosted como o HipChat", "subscription.features.onpremise.mattermost" : "Adicione serviços como Mattermost no local ou online", "subscription.features.proxy" : "Suporte Proxy para os serviços", "subscription.features.spellchecker" : "Suporte para correção ortográfica", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Recarregar", "validation.email" : "{field} não é válido", "validation.minLength" : "{field} deveria ter pelo menos {length} caracteres", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} é obrigatório", "validation.url" : "{field} não é uma hiperligação válida", "welcome.loginButton" : "Iniciar sessão", - "welcome.signupButton" : "Criar uma conta gratuita", - "welcome.slogan" : "Sistema de mensagens feito para si" + "welcome.signupButton" : "Criar uma conta gratuita" } diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 6098c8ad9..d8e02b7f3 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -69,8 +69,10 @@ "menu.help.privacy" : "Политика конфиденциальности", "menu.help.support" : "Поддержка", "menu.help.tos" : "Условия использования", - "menu.services" : "Сервисы", + "menu.services" : "Сервис", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Добавить новый сервис...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Вид", "menu.view.enterFullScreen" : "На весь экран", "menu.view.exitFullScreen" : "В окне", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "Скачать", "settings.account.manageSubscription.label" : "Управление вашей подпиской", "settings.account.successInfo" : "Ваши изменения были сохранены", + "settings.account.tryReloadServices" : "Попробовать снова", "settings.account.tryReloadUserInfoRequest" : "Попробовать снова", "settings.account.userInfoRequestFailed" : "Невозможно загрузить информацию пользователя", "settings.app.buttonClearAllCache" : "Очистить кэш", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Включая бета версии", "settings.app.form.darkMode" : "Перейти на Тёмную сторону", "settings.app.form.enableGPUAcceleration" : "Включить ускорение GPU", - "settings.app.form.enableMenuBar" : "Показывать Franz на панели меню", "settings.app.form.enableSpellchecking" : "Включить проверку правописания", "settings.app.form.enableSystemTray" : "Показывать Franz в системном трее", - "settings.app.form.hideDockIcon" : "Спрятать иконку Franz на панели", "settings.app.form.language" : "Язык", "settings.app.form.minimizeToSystemTray" : "Сворачивать Franz в системный трей", "settings.app.form.runInBackground" : "Оставлять Franz в фоне при закрытии окна", "settings.app.form.showDisabledServices" : "Показывать вкладки отключённых служб", "settings.app.form.showMessagesBadgesWhenMuted" : "Показывать значок непрочитанного сообщения при отключённых уведомлениях", - "settings.app.form.spellcheckerLanguage" : "Проверка правописания", "settings.app.headline" : "Настройки", "settings.app.headlineAdvanced" : "Дополнительно", "settings.app.headlineAppearance" : "Внешний вид", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Пожалуйста перезапустите Franz после изменения настроек прокси.", "settings.service.form.proxy.user" : "Пользователь (опционально)", "settings.service.form.saveButton" : "Сохранить сервис", - "settings.service.form.spellcheckerLanguage" : "Проверка правописания", - "settings.service.form.spellcheckerLanguage.default" : "Использовать системные параметры по умолчанию ({default})", "settings.service.form.tabHosted" : "Размещено", "settings.service.form.tabOnPremise" : "Свой хостинг ⭐️", "settings.service.form.team" : "Команда", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Найти сервисы", "settings.services.headline" : "Ваши сервисы", "settings.services.noServicesAdded" : "Вы пока не добавили никаких сервисов.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Сервис отключен", "settings.services.tooltip.isMuted" : "Все звуки отключены", "settings.services.tooltip.notificationsDisabled" : "Уведомления отключены", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "Резидентам ЕвроСоюза: могут применяться местные налоги", "subscription.features.ads" : "Без рекламы, навсегда!", "subscription.features.comingSoon" : "скоро", - "subscription.features.encryptedSync" : "Зашифрованные сессии синхронизации", "subscription.features.noInterruptions" : "Никаких задержек и предложений перейти на платную версию", - "subscription.features.onpremise" : "Добавление облачных служб или служб на своём хостинге типа HipChat", "subscription.features.onpremise.mattermost" : "Локальные\/размещенные на хостинге сервисы, такие как Mattermost", "subscription.features.proxy" : "Подержка прокси для сервисов", "subscription.features.spellchecker" : "Поддержка проверки правописания", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Перезагрузить", "validation.email" : "{field} недействительно", "validation.minLength" : "{field} должно быть не менее {length} символов", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} обязательно", "validation.url" : "{field} является недействительной ссылкой", "welcome.loginButton" : "Вход", - "welcome.signupButton" : "Создать бесплатный аккаунт", - "welcome.slogan" : "Общение, которое работает для вас" + "welcome.signupButton" : "Создать бесплатный аккаунт" } diff --git a/src/i18n/locales/sk.json b/src/i18n/locales/sk.json index 35c699322..688490b58 100644 --- a/src/i18n/locales/sk.json +++ b/src/i18n/locales/sk.json @@ -70,7 +70,9 @@ "menu.help.support" : "Podpora", "menu.help.tos" : "Podmienky použitia", "menu.services" : "Služby", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Pridať novú službu...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Zobraziť", "menu.view.enterFullScreen" : "Na celú obrazovku", "menu.view.exitFullScreen" : "Ukončiť režim na celú obrazovku", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "Prevziať", "settings.account.manageSubscription.label" : "Spravovať vaše odoberanie", "settings.account.successInfo" : "Vaše zmeny boli uložené", + "settings.account.tryReloadServices" : "Skúsiť znova", "settings.account.tryReloadUserInfoRequest" : "Skúsiť znova", "settings.account.userInfoRequestFailed" : "Nebolo možné načítať informácie o používateľovi", "settings.app.buttonClearAllCache" : "Vyčistiť vyrovnávaciu pamäť", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Vrátane beta verzií", "settings.app.form.darkMode" : "Join the Dark Side", "settings.app.form.enableGPUAcceleration" : "Zapnúť GPU zrýchlenie", - "settings.app.form.enableMenuBar" : "Zobraziť Franz v ponuke menu", "settings.app.form.enableSpellchecking" : "Zapnúť kontrolu pravopisu", "settings.app.form.enableSystemTray" : "Zobrazovať Franz v systémovej lište", - "settings.app.form.hideDockIcon" : "Skryť ikonu Franz v doku", "settings.app.form.language" : "Jazyk", "settings.app.form.minimizeToSystemTray" : "Minimalizovať Franz do systémovej lišty", "settings.app.form.runInBackground" : "Po zatvorení okna ponechať Franz spustený na pozadí", "settings.app.form.showDisabledServices" : "Zobraziť záložky vypnutých služieb", "settings.app.form.showMessagesBadgesWhenMuted" : "Zobraziť symbol pre neprečítané správy, keď sú vypnuté upozornenia", - "settings.app.form.spellcheckerLanguage" : "Spell checking language", "settings.app.headline" : "Nastavenia", "settings.app.headlineAdvanced" : "Pokročilé", "settings.app.headlineAppearance" : "Vzhľad", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", "settings.service.form.proxy.user" : "User (optional)", "settings.service.form.saveButton" : "Uložiť službu", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Hostované", "settings.service.form.tabOnPremise" : "Vlastné hostovanie ⭐️", "settings.service.form.team" : "Tím", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Preskúmať služby", "settings.services.headline" : "Vaše služby", "settings.services.noServicesAdded" : "Doposiaľ ste nepridali žiadne služby.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Služba je vypnutá", "settings.services.tooltip.isMuted" : "Všetky zvuky sú stíšené", "settings.services.tooltip.notificationsDisabled" : "Oznámenia sú vypnuté", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "Pre obyvateľov EÚ: môže byť aplikovaná miestna daň", "subscription.features.ads" : "Žiadne reklamy, nikdy!", "subscription.features.comingSoon" : "už čoskoro", - "subscription.features.encryptedSync" : "Šifrovaná synchronizácia relácie", "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "Pridať lokálne hostované služby, ako napr. HipChat", "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", "subscription.features.proxy" : "Proxy support for services", "subscription.features.spellchecker" : "Support for spellchecker", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Obnoviť", "validation.email" : "{field} je neplatný", "validation.minLength" : "{field} by malo byť dlhé aspoň {length} znakov", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} je povinné", "validation.url" : "{field} nie je platné URL", "welcome.loginButton" : "Prihlásiť sa do vášho účtu", - "welcome.signupButton" : "Vytvoriť účet zdarma", - "welcome.slogan" : "Správy, ktoré pracujú pre vás" + "welcome.signupButton" : "Vytvoriť účet zdarma" } diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index 8ffc0c007..a3a80925d 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -70,7 +70,9 @@ "menu.help.support" : "Подршка", "menu.help.tos" : "Услови коришћења услуге", "menu.services" : "Usluge", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Додај нову услугу", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Преглед", "menu.view.enterFullScreen" : "Отвори у целом екрану", "menu.view.exitFullScreen" : "Напусти цео екран", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "Preuzmite", "settings.account.manageSubscription.label" : "Upravljajte pretplatama", "settings.account.successInfo" : "Vaše promjene su spremljene", + "settings.account.tryReloadServices" : "Pokušajte ponovno", "settings.account.tryReloadUserInfoRequest" : "Pokušajte ponovno", "settings.account.userInfoRequestFailed" : "Nije moguće učitati informacije o korisniku", "settings.app.buttonClearAllCache" : "Очисти кеш", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Obuhvati i beta verzije", "settings.app.form.darkMode" : "Join the Dark Side", "settings.app.form.enableGPUAcceleration" : "Омогући убрзање графичке јединице", - "settings.app.form.enableMenuBar" : "Покажи Франз у менију", "settings.app.form.enableSpellchecking" : "Omogući provjeru pravopisa", "settings.app.form.enableSystemTray" : "Prikaži aplikaciju u sustavskoj traci", - "settings.app.form.hideDockIcon" : "Сакриј Франз иконицу у доку", "settings.app.form.language" : "Jezik", "settings.app.form.minimizeToSystemTray" : "Smanji Franca u sustavsku traku", "settings.app.form.runInBackground" : "Neka se Franc održava u pozadini i ako je prozor zatvoren", "settings.app.form.showDisabledServices" : "Prikaži ploče s onemogućenim servisima", "settings.app.form.showMessagesBadgesWhenMuted" : "Покажи беџ за непрочитане поруке када су обавештења онемогућена", - "settings.app.form.spellcheckerLanguage" : "Spell checking language", "settings.app.headline" : "Подешавања", "settings.app.headlineAdvanced" : "Napredne alatke", "settings.app.headlineAppearance" : "Izgled", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", "settings.service.form.proxy.user" : "User (optional)", "settings.service.form.saveButton" : "Sačuvaj uslugu\/e", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Hostovano", "settings.service.form.tabOnPremise" : "Samo-hostovano ⭐️", "settings.service.form.team" : "Tim", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Pronađite usluge", "settings.services.headline" : "Vaše usluge", "settings.services.noServicesAdded" : "Još uvijek niste unijeli niti jednu uslugu.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Usluga je onemogućena.", "settings.services.tooltip.isMuted" : "Svi zvukovi su onemogućeni.", "settings.services.tooltip.notificationsDisabled" : "Obavijesti su onemogućene.", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "EU državljani, upozerenje: Moguće taksiranje", "subscription.features.ads" : "Bez reklama, doživotno!", "subscription.features.comingSoon" : "Dolazi uskoro", - "subscription.features.encryptedSync" : "Kodirano usklađivanje sesija.", "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "Dodajte pretpostavljeni\/hostirani servis kao što ima usluga HipChat", "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", "subscription.features.proxy" : "Proxy support for services", "subscription.features.spellchecker" : "Support for spellchecker", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Ponovno učitavanje", "validation.email" : "{поље} није валидно", "validation.minLength" : "{поље} треба да буде најмање {дужина} карактера дугачко", + "validation.oneRequired" : "At least one is required", "validation.required" : "{поље} је неопходно", "validation.url" : "{field} није валидан УРЛ", "welcome.loginButton" : "Prijavite se na račun", - "welcome.signupButton" : "Stvorite novi korisnički račun", - "welcome.slogan" : "Poruke koje su stvorene za tebe" + "welcome.signupButton" : "Stvorite novi korisnički račun" } diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index 70632b966..9f8313c2e 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json @@ -4,18 +4,18 @@ "feature.delayApp.action" : "Franz Destek Lisansı'nı alın", "feature.delayApp.headline" : "Beklememek için Franz Destek Lisansı'nı satın alın", "feature.delayApp.text" : "Franz {seconds} saniye sonra devam edecek.", - "feature.shareFranz.action.email" : "Send as email", - "feature.shareFranz.action.facebook" : "Share on Facebook", - "feature.shareFranz.action.twitter" : "Share on Twitter", - "feature.shareFranz.headline" : "Franz is better together!", - "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", - "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", - "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", + "feature.shareFranz.action.email" : "Mail olarak gönder", + "feature.shareFranz.action.facebook" : "Facebook'ta Paylaş", + "feature.shareFranz.action.twitter" : "Twitter'da Paylaş", + "feature.shareFranz.headline" : "Franz birlikte daha iyi!", + "feature.shareFranz.shareText.email" : "Franz'a {count} tane servis ekledim! WhatsApp, Messenger, Slack ve fazlasını içeren ücretsiz uygulamayı www.meetfranz.com adresinden edinin.", + "feature.shareFranz.shareText.twitter" : "Franz'a {count} tane servis ekledim! WhatsApp, Messenger, Slack ve fazlasını içeren ücretsiz uygulamayı www.meetfranz.com adresinden edinin. \/cc @MeetFranz", + "feature.shareFranz.text" : "Arkadaşlarına ve meslektaşlarına Franz'ın ne kadar harika olduğunu söyle ve bize bu kelimeyi yaymamızda yardım et.", "global.api.unhealthy" : "Franz hizmetlerine şu anda erişilemiyor", "global.notConnectedToTheInternet" : "İnternete bağlı değilsiniz.", "global.spellchecker.useDefault" : "Sistem Dilini Kullan ({default})", - "global.spellchecking.autodetect" : "Detect language automatically", - "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.autodetect" : "Dili otomatik tespit et", + "global.spellchecking.autodetect.short" : "Otomatik", "global.spellchecking.language" : "İmla kontrol dili", "import.headline" : "Franz 4 servislerinizi içeri aktarın", "import.notSupportedHeadline" : "Henüz Franz 5'te desteklenmeyen servisler", @@ -70,7 +70,9 @@ "menu.help.support" : "Destek", "menu.help.tos" : "Kullanım Şartları", "menu.services" : "Hizmetler", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Yeni servis ekle...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Görünüm", "menu.view.enterFullScreen" : "Tam Ekrana Geç", "menu.view.exitFullScreen" : "Tam Ekrandan Çık", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "İndir", "settings.account.manageSubscription.label" : "Aboneliğini yönet", "settings.account.successInfo" : "Değişikliklerin kaydedildi", + "settings.account.tryReloadServices" : "Tekrar deneyin", "settings.account.tryReloadUserInfoRequest" : "Tekrar deneyin", "settings.account.userInfoRequestFailed" : "Kullanıcı bilgisi yüklenemedi", "settings.app.buttonClearAllCache" : "Önbelleği temizle", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Beta versiyonları dahil et", "settings.app.form.darkMode" : "Karanlık tarafa katıl", "settings.app.form.enableGPUAcceleration" : "Grafik İşlemci Ünitesi (GPU) Hızlandırıcısını Aktif et", - "settings.app.form.enableMenuBar" : "Menü çubuğunda Franz'ı göster", "settings.app.form.enableSpellchecking" : "Yazım denetimini etkinleştir", "settings.app.form.enableSystemTray" : "Franz'ı sistem tepsisinde göster", - "settings.app.form.hideDockIcon" : "Franz Simgesini Gösterme", "settings.app.form.language" : "Dil", "settings.app.form.minimizeToSystemTray" : "Franz'ı sistem tepsisine küçült", "settings.app.form.runInBackground" : "Pencereyi kapatırken Franz'ı arka planda tut", "settings.app.form.showDisabledServices" : "Devre dışı bırakılan servis sekmelerini göster", "settings.app.form.showMessagesBadgesWhenMuted" : "Bildirimler kapalı iken okunmamış mesaj sayısını göster", - "settings.app.form.spellcheckerLanguage" : "İmla kontrol dili", "settings.app.headline" : "Ayarlar", "settings.app.headlineAdvanced" : "Gelişmiş", "settings.app.headlineAppearance" : "Görünüm", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Proxy ayarlarını değiştirdikten sonra Franz'ı yeniden başlatınız.", "settings.service.form.proxy.user" : "Kullanıcı (opsiyonel)", "settings.service.form.saveButton" : "Servisi kaydet", - "settings.service.form.spellcheckerLanguage" : "İmla kontrol dili", - "settings.service.form.spellcheckerLanguage.default" : "Sistem Dilini Kullan ({default})", "settings.service.form.tabHosted" : "Barındırılan", "settings.service.form.tabOnPremise" : "Kendi barındırılan", "settings.service.form.team" : "Takım", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Servisleri keşfet", "settings.services.headline" : "Servislerin", "settings.services.noServicesAdded" : "Henüz hiç servis eklemedin.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Servis devre dışı", "settings.services.tooltip.isMuted" : "Tüm sesler kapalı", "settings.services.tooltip.notificationsDisabled" : "Bildirimler devre dışı", @@ -255,11 +254,9 @@ "subscription.euTaxInfo" : "AB vatandaşları: yerel satış vergileri uygulanabilir", "subscription.features.ads" : "Reklam yok, asla!", "subscription.features.comingSoon" : "yakında geliyor", - "subscription.features.encryptedSync" : "Şifreli oturum senkronizasyonu", - "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "HipChat gibi kurum içi\/barındırılan hizmetler ekle", - "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", - "subscription.features.proxy" : "Proxy support for services", + "subscription.features.noInterruptions" : "Uygulama gecikmeleri & yükseltme lisanları için dırdır yok", + "subscription.features.onpremise.mattermost" : "Mattermost gibi şirket-içi\/barındırılan servisler ekleyin", + "subscription.features.proxy" : "Servisler için proxy desteği", "subscription.features.spellchecker" : "Yazım denetleyicisi desteği", "subscription.includedFeatures" : "Ücretli Franz Premium Destekçi Hesabına dahil", "subscription.paymentSessionError" : "Ödeme formu başlatılamadı", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Tekrar yükle", "validation.email" : "{alan} geçerli değil", "validation.minLength" : "{field} en az {length} karakter uzunluğunda olmalı", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} gereklidir", "validation.url" : "{field} geçerli bir URL değil", "welcome.loginButton" : "Hesabına giriş yap", - "welcome.signupButton" : "Ücretsiz hesap oluştur", - "welcome.slogan" : "Sizin için çalışan mesajlaşma" + "welcome.signupButton" : "Ücretsiz hesap oluştur" } diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json index db3145b36..56dda09d5 100644 --- a/src/i18n/locales/uk.json +++ b/src/i18n/locales/uk.json @@ -70,7 +70,9 @@ "menu.help.support" : "Підтримка", "menu.help.tos" : "Умови використання", "menu.services" : "Служби", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Додати сервіс", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Вигляд", "menu.view.enterFullScreen" : "Вікно на повний екран", "menu.view.exitFullScreen" : "Вийти з повного екрану", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "Завантажити", "settings.account.manageSubscription.label" : "Керування вашою підпискою", "settings.account.successInfo" : "Ваші зміни були збережені", + "settings.account.tryReloadServices" : "Спробуйте ще раз", "settings.account.tryReloadUserInfoRequest" : "Спробуйте ще раз", "settings.account.userInfoRequestFailed" : "Не вдалося завантажити інформацію користувача", "settings.app.buttonClearAllCache" : "Очистити кеш", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "Включити бета-версії", "settings.app.form.darkMode" : "Переходь на Темну Сторону", "settings.app.form.enableGPUAcceleration" : "Ввімкнути прискорення GPU", - "settings.app.form.enableMenuBar" : "Відображати Franz в панелі головного меню", "settings.app.form.enableSpellchecking" : "Увімкнути перевірку орфографії", "settings.app.form.enableSystemTray" : "Показувати Franz у системному лотку", - "settings.app.form.hideDockIcon" : "Сховати значок Franz в Dock", "settings.app.form.language" : "Мова", "settings.app.form.minimizeToSystemTray" : "Мінімізувати Franz до системного лотка", "settings.app.form.runInBackground" : "Тримати Franz в фоні при закритті вікна", "settings.app.form.showDisabledServices" : "Показати вкладку вимкнених сервісів", "settings.app.form.showMessagesBadgesWhenMuted" : "Показувати значок непрочитаних повідомлень коли сповіщення вимкнені", - "settings.app.form.spellcheckerLanguage" : "Мова перевірки правопису", "settings.app.headline" : "Налаштування", "settings.app.headlineAdvanced" : "Додаткові налаштування", "settings.app.headlineAppearance" : "Вигляд", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Будь ласка, перезапустіть Franz після зміни налуштувань проксі", "settings.service.form.proxy.user" : "Користувач (опційно)", "settings.service.form.saveButton" : "Зберегти сервіс", - "settings.service.form.spellcheckerLanguage" : "Мова перевірки правопису", - "settings.service.form.spellcheckerLanguage.default" : "Використовувати системні параметри за змовчуванням ({default})", "settings.service.form.tabHosted" : "Розміщений", "settings.service.form.tabOnPremise" : "Самостійно розміщений ⭐️", "settings.service.form.team" : "Команда", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "Відкрийте для себе сервіси", "settings.services.headline" : "Ваші сервіси", "settings.services.noServicesAdded" : "Ви ще не додавали жодних сервісів.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Сервіс відключений", "settings.services.tooltip.isMuted" : "Всі звуки вимкнено", "settings.services.tooltip.notificationsDisabled" : "Сповіщення відключені", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "Для жителів ЄС: можуть застосовуватися податки", "subscription.features.ads" : "Жодної реклами!", "subscription.features.comingSoon" : "очікуйте незабаром", - "subscription.features.encryptedSync" : "Шифрована синхронізація сеансу", "subscription.features.noInterruptions" : "Ніяких затримок та набридливих пропозицій з платних підписок", - "subscription.features.onpremise" : "Додайте on-premise \/ hosted сервіси, такі як Hipchat", "subscription.features.onpremise.mattermost" : "Сервіси, що виконуються локально\/вимагають хостингу, приміром Mattermost", "subscription.features.proxy" : "Підтримка проксі ", "subscription.features.spellchecker" : "Підтримка перевірки правопису", @@ -280,9 +277,9 @@ "tabs.item.reload" : "Перезавантажити", "validation.email" : "{field} не валідне", "validation.minLength" : "Кількість символів в {field} повина бути не меньше {length} ", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} обов'язвоке", "validation.url" : "{field} не валідний URL", "welcome.loginButton" : "Увійдіть до свого акаунту", - "welcome.signupButton" : "Створити безплатний акаунт", - "welcome.slogan" : "Обмін повідомленнями, який працює для вас" + "welcome.signupButton" : "Створити безплатний акаунт" } diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json index 3ae08c9ef..54245ba57 100644 --- a/src/i18n/locales/zh-TW.json +++ b/src/i18n/locales/zh-TW.json @@ -70,7 +70,9 @@ "menu.help.support" : "支援", "menu.help.tos" : "服務條款", "menu.services" : "服務", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "新增服務", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "檢視", "menu.view.enterFullScreen" : "進入全螢幕模式", "menu.view.exitFullScreen" : "離開全螢幕模式", @@ -128,6 +130,7 @@ "settings.account.invoiceDownload" : "下載", "settings.account.manageSubscription.label" : "管理您的訂閱", "settings.account.successInfo" : "您的更變已經被儲存", + "settings.account.tryReloadServices" : "再試一次", "settings.account.tryReloadUserInfoRequest" : "再試一次", "settings.account.userInfoRequestFailed" : "無法載入使用者資訊。", "settings.app.buttonClearAllCache" : "清除快取", @@ -140,16 +143,13 @@ "settings.app.form.beta" : "包含測試版", "settings.app.form.darkMode" : "加入黑暗面", "settings.app.form.enableGPUAcceleration" : "啟用 GPU 加速", - "settings.app.form.enableMenuBar" : "在選單列顯示 Franz", "settings.app.form.enableSpellchecking" : "啟用拼字檢查", "settings.app.form.enableSystemTray" : "在系統列顯示 Franz", - "settings.app.form.hideDockIcon" : "隱藏 Dock 中的 Franz 圖示", "settings.app.form.language" : "語言", "settings.app.form.minimizeToSystemTray" : "最小化 Franz 到系統列", "settings.app.form.runInBackground" : "當關閉視窗時,保持 Franz 在背景運作", "settings.app.form.showDisabledServices" : "顯示停用的服務標籤", "settings.app.form.showMessagesBadgesWhenMuted" : "當通知關閉時,標記未讀的訊息", - "settings.app.form.spellcheckerLanguage" : "拼字檢查語言", "settings.app.headline" : "設定", "settings.app.headlineAdvanced" : "進階", "settings.app.headlineAppearance" : "外觀", @@ -212,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "在變更 Proxy 設定後,請重新啟動 Franz", "settings.service.form.proxy.user" : "使用者 (選填)", "settings.service.form.saveButton" : "保存服務", - "settings.service.form.spellcheckerLanguage" : "拼字檢查語言", - "settings.service.form.spellcheckerLanguage.default" : "使用系統預設 ({default})", "settings.service.form.tabHosted" : "託管", "settings.service.form.tabOnPremise" : "自我託管⭐️", "settings.service.form.team" : "團隊", @@ -223,6 +221,7 @@ "settings.services.discoverServices" : "發現服務", "settings.services.headline" : "您的服務", "settings.services.noServicesAdded" : "你尚未新增任何服務", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "服務已停用", "settings.services.tooltip.isMuted" : "所有的聲音都是靜音", "settings.services.tooltip.notificationsDisabled" : "通知已停用", @@ -255,9 +254,7 @@ "subscription.euTaxInfo" : "歐盟居民:可能採用當地銷售稅", "subscription.features.ads" : "無廣告,永遠!", "subscription.features.comingSoon" : "即將推出", - "subscription.features.encryptedSync" : "加密的會話同步", "subscription.features.noInterruptions" : "升級授權沒有延遲與打盹", - "subscription.features.onpremise" : "添加本地\/託管服務如HipChat", "subscription.features.onpremise.mattermost" : "加入如 Mattermost 等已預定 \/ 託管的服務", "subscription.features.proxy" : "服務的代理伺服器支援", "subscription.features.spellchecker" : "支援拼字檢查", @@ -280,9 +277,9 @@ "tabs.item.reload" : "重新載入", "validation.email" : "{field}無效", "validation.minLength" : "{field}長度至少應為{length}個字", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field}為必填", "validation.url" : "{field}不是個有效的網址", "welcome.loginButton" : "登入您的帳戶", - "welcome.signupButton" : "建立免費帳號", - "welcome.slogan" : "為你通信" + "welcome.signupButton" : "建立免費帳號" } -- cgit v1.2.3-54-g00ecf From 15ebfef32251790a62f50bc63029f36a26e4d4c3 Mon Sep 17 00:00:00 2001 From: FranzBot Date: Sun, 17 Mar 2019 21:30:41 +0000 Subject: Automatic i18n update (i18n.meetfranz.com) --- src/i18n/locales/de.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index adb466e18..2560a5add 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -70,9 +70,9 @@ "menu.help.support" : "Hilfe", "menu.help.tos" : "Nutzungsbedingungen", "menu.services" : "Dienste", - "menu.services.activatePreviousService" : "Activate previous service", + "menu.services.activatePreviousService" : "Vorheriger Dienst", "menu.services.addNewService" : "Dienst hinzufügen", - "menu.services.setNextServiceActive" : "Activate next service", + "menu.services.setNextServiceActive" : "Nächster Dienst", "menu.view" : "Darstellung", "menu.view.enterFullScreen" : "Vollbildmodus", "menu.view.exitFullScreen" : "Vollbildmodus aus", @@ -221,7 +221,7 @@ "settings.services.discoverServices" : "Dienste entdecken", "settings.services.headline" : "Deine Dienste", "settings.services.noServicesAdded" : "Du hast noch keine Dienste hinzugefügt.", - "settings.services.servicesRequestFailed" : "Could not load your services", + "settings.services.servicesRequestFailed" : "Dienste konnten nicht geladen werden", "settings.services.tooltip.isDisabled" : "Dienst ist deaktiviert", "settings.services.tooltip.isMuted" : "Alle Töne sind deaktiviert", "settings.services.tooltip.notificationsDisabled" : "Benachrichtigungen deaktiviert", @@ -277,7 +277,7 @@ "tabs.item.reload" : "Neuladen", "validation.email" : "{field} ist ungültig", "validation.minLength" : "{field} muss mindestens {length} Zeichen enthalten", - "validation.oneRequired" : "At least one is required", + "validation.oneRequired" : "Mindestens ein Wert wird benötigt", "validation.required" : "{field} wird benötigt", "validation.url" : "{field} ist keine gültige URL", "welcome.loginButton" : "Bei Franz einloggen", -- cgit v1.2.3-54-g00ecf From ad502560d9ce52daaf5db3938b4fad2419c80120 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Mon, 18 Mar 2019 11:25:35 +0100 Subject: 5.0.1-beta.1 --- CHANGELOG.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 641cd2b6b..998d40f4e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,30 @@ +## [5.0.1-beta.1](https://github.com/meetfranz/franz/compare/v5.0.0...v5.0.1-beta.1) (2019-03-18) + + +### General + +* **Translations:** Improved translations. **[A million thanks to the amazing community. 🎉](http://i18n.meetfranz.com/)** + + +### Features + +* **App:** Add security checks for external URLs ([6e5531a](https://github.com/meetfranz/franz/commit/6e5531a)) +* **App:** Update electron to 4.0.8 ([8336d17](https://github.com/meetfranz/franz/commit/8336d17)) +* **Linux:** Add auto updater for Linux AppImage builds ([d641b4e](https://github.com/meetfranz/franz/commit/d641b4e)) +* **Spell check:** Add British English as spell check language ([#1306](https://github.com/meetfranz/franz/issues/1306)) ([67fa325](https://github.com/meetfranz/franz/commit/67fa325)) +* **Windows:** Add option to quit Franz from Taskbar icon ([952fc8b](https://github.com/meetfranz/franz/commit/952fc8b)) + +### Bug Fixes + +* **Linux:** Fix minimized window focusing ([#1304](https://github.com/meetfranz/franz/issues/1304)) ([@skoruppa](https://github.com/skoruppa)) ([5b02c4d](https://github.com/meetfranz/franz/commit/5b02c4d)) +* **Notifications:** Fix notifications & notification click when icon is blob ([03589f6](https://github.com/meetfranz/franz/commit/03589f6)) +* **Service:** Fix service zoom (cmd/ctrl+ & cmd/ctrl-) ([91a0f59](https://github.com/meetfranz/franz/commit/91a0f59)) +* **Service:** Fix shortcut for (un)muting notifications & audio ([1df3342](https://github.com/meetfranz/franz/commit/1df3342)) +* **Windows:** Fix copy & paste in service context menus ([e66fcaa](https://github.com/meetfranz/franz/commit/e66fcaa)), closes [#1316](https://github.com/meetfranz/franz/issues/1316) +* **Windows:** Fix losing window when "Keep Franz in background" is enabled ([78a3722](https://github.com/meetfranz/franz/commit/78a3722)) + + + # [5.0.0](https://github.com/meetfranz/franz/compare/5.0.0-beta.24...5.0.0) (2019-02-15) ### General -- cgit v1.2.3-54-g00ecf From 6134c1b49f919dd2c578bc490829d68e4d210f4e Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Mon, 18 Mar 2019 03:28:03 -0700 Subject: Release/5.0.1 beta.1 (#1344) * Add lerna * Add theme * Add forms * Add misty config to build theme & forms * reset packages version * Publish - @meetfranz/forms@1.0.0 - @meetfranz/theme@1.0.0 * Reset package version * restructure packages * try ci with lerna * Fix missing packages in build * move storybook to root + typescript TODO: fix modules * Add lerna instructions * Merge * wip * Make packages work in electron, node and web * Finalize packages & replace storybook with homegrown `uidev` * Bring package-lock back in sync * Publish - @meetfranz/forms@1.0.1 - @meetfranz/theme@1.0.1 * fix webpack issue * expose legacy styles * Add toggle element to @meetfranz/forms * start typings package * Update package.json * Add buttons * Update theme * add types * Add mdi icons to buttons * Publish - @meetfranz/forms@1.0.2 - @meetfranz/theme@1.0.2 - @meetfranz/typings@0.0.1 * Button, add missing success state * Update lerna packages * Try to disable automatic npm ci * Try to get a working bundle * Add href and type to button component * Update packages * update versions * cleanup * Update package versions [ci skip] * Update versions * Add withTheme context to button * Update & reuse electron-rebuild * feat(Windows): Add option to quit Franz from Taskbar icon * Add missing withTheme * Fix package versions * Update versions * Add pageview event * Simplify analytics calls * Pin gulp-sass-variables to 1.1.1 * Add onFocus event * Add modal overlay color * remove legacy theme files * remove code * Add dialog to share franz on social media * Fix service count * remove ping * replace ms time strings with ms module * remove unused packages * fix value setter * new payment flow * fix module reference * feat(Spell check): Add en-gb spell check languages (#1306) * move devmode info * fix(Windows): Fix losing window when "Keep Franz in background" is enabled * fix(Service): Fix service zoom (cmd/ctrl+ & cmd/ctrl-) * fixes appveyor build issue * feat(App): Update electron to 4.0.7 * ignore intellij idea project files * Automatic i18n update (i18n.meetfranz.com) * feat(App): Add security checks for external URLs * setup react-intl translations managing script * use same zooming logic for all os * feat(Linux): Add auto updater for Linux AppImage builds * Add ctrl+ for zoom in on Windows * move translation scripts into src/i18n folder * only manage en-US translations * manage translations before git pushes * Fix unused i18n strings * Bump version to 5.0.1-beta.1 * fix(Service) shortcuts for activating prev/next service fixes #1298 * fix(Service): Fix shortcut for (un)muting notifications & audio * add missing react-intl files * correctly update services submenu on language change * fix(Windows): Fix copy & paste in service context menus Closes #1316 * fix(Linux): Fix minimized window focusing (#1304) (@skoruppa) * trigger build * Check if window is minimized before restoring it * restore() should be executed only when window is minimized * fix(Notifications): Fix notifications & notification click when icon is blob * Fix/service webview unmounting (#1328) * detach service when underlying webview unmounts * disable no-param-reassign eslint rule * Add notification debug events * Update electron to 4.0.8 Update required in order to fix performance degradation due to memory leak issue https://github.com/electron/electron/pull/16772. * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * 5.0.1-beta.1 --- .babelrc | 9 +- .eslintignore | 1 + .eslintrc | 4 +- .gitignore | 5 +- .nvmrc | 2 +- .travis.yml | 6 +- CHANGELOG.md | 27 + README.md | 8 + appveyor.yml | 9 +- gulpfile.babel.js | 31 +- lerna.json | 11 + package-lock.json | 24230 ++++++++++--------- package.json | 66 +- packages/forms/.gitignore | 2 + packages/forms/package-lock.json | 220 + packages/forms/package.json | 39 + packages/forms/src/button/index.tsx | 274 + packages/forms/src/error/index.tsx | 29 + packages/forms/src/error/styles.ts | 9 + packages/forms/src/index.ts | 4 + packages/forms/src/input/index.tsx | 193 + packages/forms/src/input/scorePassword.ts | 42 + packages/forms/src/input/styles.ts | 96 + packages/forms/src/label/index.tsx | 47 + packages/forms/src/label/styles.ts | 14 + packages/forms/src/select/index.tsx | 437 + packages/forms/src/toggle/index.tsx | 117 + packages/forms/src/typings/generic.ts | 16 + packages/forms/src/wrapper/index.tsx | 37 + packages/forms/src/wrapper/styles.ts | 5 + packages/forms/tsconfig.json | 12 + packages/forms/tslint.json | 3 + packages/misty.yml | 11 + packages/theme/.gitignore | 2 + packages/theme/README.md | 11 + packages/theme/package-lock.json | 52 + packages/theme/package.json | 29 + packages/theme/src/index.ts | 18 + packages/theme/src/themes/dark/index.ts | 65 + packages/theme/src/themes/default/index.ts | 142 + packages/theme/src/themes/legacy/index.ts | 38 + packages/theme/test/index.test.js | 17 + packages/theme/tsconfig.json | 7 + packages/theme/tslint.json | 3 + packages/typings/package.json | 22 + packages/typings/types/mobx-react-form.d.ts | 1 + packages/typings/types/react-html-attributes.d.ts | 1 + packages/typings/types/react-jss.d.ts | 1 + packages/typings/types/react-loader.d.ts | 45 + packages/ui/.gitignore | 2 + packages/ui/package-lock.json | 207 + packages/ui/package.json | 38 + packages/ui/src/badge/index.tsx | 76 + packages/ui/src/headline/index.tsx | 71 + packages/ui/src/icon/index.tsx | 55 + packages/ui/src/index.ts | 5 + packages/ui/src/infobox/index.tsx | 192 + packages/ui/src/loader/index.tsx | 48 + packages/ui/src/typings/generic.ts | 10 + packages/ui/tsconfig.json | 12 + packages/ui/tslint.json | 3 + src/actions/service.js | 4 + src/components/layout/AppLayout.js | 2 + src/components/services/content/ServiceView.js | 136 + src/components/services/content/ServiceWebview.js | 145 +- src/components/services/content/Services.js | 7 +- .../services/content/WebviewCrashHandler.js | 7 +- .../settings/account/AccountDashboard.js | 75 +- src/components/settings/user/EditUserForm.js | 25 +- src/components/subscription/SubscriptionForm.js | 60 +- src/components/subscription/SubscriptionPopup.js | 3 +- src/components/ui/Modal/index.js | 26 +- src/components/ui/Modal/styles.js | 1 + src/config.js | 17 +- src/containers/auth/AuthLayoutContainer.js | 38 +- src/containers/auth/ImportScreen.js | 5 - src/containers/auth/InviteScreen.js | 5 - src/containers/auth/LoginScreen.js | 5 - src/containers/auth/PasswordScreen.js | 5 - src/containers/auth/PricingScreen.js | 5 - src/containers/auth/SignupScreen.js | 5 - src/containers/auth/WelcomeScreen.js | 5 - src/containers/layout/AppLayoutContainer.js | 3 + src/containers/settings/AccountScreen.js | 5 - src/containers/settings/EditServiceScreen.js | 5 - src/containers/settings/EditSettingsScreen.js | 5 - src/containers/settings/EditUserScreen.js | 49 +- src/containers/settings/InviteScreen.js | 6 - src/containers/settings/RecipesScreen.js | 6 - src/containers/settings/ServicesScreen.js | 5 - .../subscription/SubscriptionFormScreen.js | 39 +- src/electron/ipc-api/autoUpdate.js | 2 +- src/features/basicAuth/Component.js | 1 + src/features/basicAuth/index.js | 12 +- src/features/delayApp/index.js | 9 +- src/features/shareFranz/Component.js | 166 + src/features/shareFranz/index.js | 52 + src/helpers/url-helpers.js | 15 + src/i18n/globalMessages.js | 4 - src/i18n/languages.js | 3 +- src/i18n/locales/ca.json | 34 +- src/i18n/locales/cs.json | 44 +- src/i18n/locales/de.json | 28 +- src/i18n/locales/defaultMessages.json | 3934 +++ src/i18n/locales/el.json | 30 +- src/i18n/locales/en-US.json | 450 +- src/i18n/locales/es.json | 38 +- src/i18n/locales/fr.json | 32 +- src/i18n/locales/ga.json | 26 +- src/i18n/locales/hr.json | 26 +- src/i18n/locales/hu.json | 106 +- src/i18n/locales/id.json | 42 +- src/i18n/locales/it.json | 54 +- src/i18n/locales/ja.json | 44 +- src/i18n/locales/ka.json | 26 +- src/i18n/locales/nl-BE.json | 208 +- src/i18n/locales/nl.json | 44 +- src/i18n/locales/pl.json | 52 +- src/i18n/locales/pt-BR.json | 40 +- src/i18n/locales/pt.json | 94 +- src/i18n/locales/ru.json | 70 +- src/i18n/locales/sk.json | 26 +- src/i18n/locales/sr.json | 26 +- src/i18n/locales/tr.json | 88 +- src/i18n/locales/uk.json | 78 +- src/i18n/locales/whitelist_en-US.json | 2 + src/i18n/locales/zh-TW.json | 108 +- src/i18n/manage-translations.js | 9 + src/i18n/messages/src/components/auth/Import.json | 54 + src/i18n/messages/src/components/auth/Invite.json | 93 + src/i18n/messages/src/components/auth/Login.json | 119 + .../messages/src/components/auth/Password.json | 93 + src/i18n/messages/src/components/auth/Pricing.json | 54 + src/i18n/messages/src/components/auth/Signup.json | 158 + src/i18n/messages/src/components/auth/Welcome.json | 28 + .../messages/src/components/layout/AppLayout.json | 80 + .../messages/src/components/layout/Sidebar.json | 54 + .../content/ErrorHandlers/WebviewErrorHandler.json | 67 + .../services/content/ServiceDisabled.json | 28 + .../src/components/services/content/Services.json | 28 + .../services/content/WebviewCrashHandler.json | 54 + .../src/components/services/tabs/TabItem.json | 119 + .../settings/account/AccountDashboard.json | 197 + .../settings/navigation/SettingsNavigation.json | 80 + .../settings/recipes/RecipesDashboard.json | 106 + .../settings/services/EditServiceForm.json | 288 + .../components/settings/services/ServiceError.json | 54 + .../components/settings/services/ServiceItem.json | 41 + .../settings/services/ServicesDashboard.json | 119 + .../settings/settings/EditSettingsForm.json | 223 + .../src/components/settings/user/EditUserForm.json | 80 + .../components/subscription/SubscriptionForm.json | 171 + .../components/subscription/SubscriptionPopup.json | 28 + .../ui/PremiumFeatureContainer/index.json | 15 + .../src/components/util/ErrorBoundary/index.json | 28 + .../src/containers/settings/EditServiceScreen.json | 197 + .../containers/settings/EditSettingsScreen.json | 158 + .../src/containers/settings/EditUserScreen.json | 119 + .../messages/src/features/delayApp/Component.json | 41 + .../src/features/shareFranz/Component.json | 93 + .../messages/src/helpers/validation-helpers.json | 67 + src/i18n/messages/src/i18n/globalMessages.json | 80 + src/i18n/messages/src/lib/Menu.json | 613 + src/index.js | 63 +- src/lib/Menu.js | 127 +- src/lib/Tray.js | 8 + src/lib/analytics.js | 4 - src/stores/AppStore.js | 72 +- src/stores/FeaturesStore.js | 2 + src/stores/RecipePreviewsStore.js | 3 +- src/stores/RequestStore.js | 3 +- src/stores/ServicesStore.js | 11 +- src/stores/UIStore.js | 7 +- src/styles/layout.scss | 9 +- src/styles/toggle.scss | 2 +- src/theme/dark/index.js | 19 - src/theme/default/index.js | 35 - src/webview/contextMenu.js | 21 +- tsconfig.json | 7 + tsconfig.settings.json | 24 + tslint.json | 12 + uidev/src/app.html | 12 + uidev/src/app.tsx | 125 + uidev/src/index.tsx | 9 + uidev/src/stores/index.ts | 5 + uidev/src/stores/stories.ts | 43 + uidev/src/stories/badge.stories.tsx | 21 + uidev/src/stories/button.stories.tsx | 97 + uidev/src/stories/headline.stories.tsx | 54 + uidev/src/stories/icon.stories.tsx | 53 + uidev/src/stories/infobox.stories.tsx | 126 + uidev/src/stories/input.stories.tsx | 97 + uidev/src/stories/loader.stories.tsx | 14 + uidev/src/stories/select.stories.tsx | 320 + uidev/src/stories/toggle.stories.tsx | 70 + uidev/src/withTheme/index.tsx | 50 + uidev/tsconfig.json | 14 + uidev/tslint.json | 3 + uidev/webpack.config.js | 29 + webpack.config.base.js | 24 + 200 files changed, 27133 insertions(+), 12205 deletions(-) create mode 100644 lerna.json create mode 100644 packages/forms/.gitignore create mode 100644 packages/forms/package-lock.json create mode 100644 packages/forms/package.json create mode 100644 packages/forms/src/button/index.tsx create mode 100644 packages/forms/src/error/index.tsx create mode 100644 packages/forms/src/error/styles.ts create mode 100644 packages/forms/src/index.ts create mode 100644 packages/forms/src/input/index.tsx create mode 100644 packages/forms/src/input/scorePassword.ts create mode 100644 packages/forms/src/input/styles.ts create mode 100644 packages/forms/src/label/index.tsx create mode 100644 packages/forms/src/label/styles.ts create mode 100644 packages/forms/src/select/index.tsx create mode 100644 packages/forms/src/toggle/index.tsx create mode 100644 packages/forms/src/typings/generic.ts create mode 100644 packages/forms/src/wrapper/index.tsx create mode 100644 packages/forms/src/wrapper/styles.ts create mode 100644 packages/forms/tsconfig.json create mode 100644 packages/forms/tslint.json create mode 100644 packages/misty.yml create mode 100644 packages/theme/.gitignore create mode 100644 packages/theme/README.md create mode 100644 packages/theme/package-lock.json create mode 100644 packages/theme/package.json create mode 100644 packages/theme/src/index.ts create mode 100644 packages/theme/src/themes/dark/index.ts create mode 100644 packages/theme/src/themes/default/index.ts create mode 100644 packages/theme/src/themes/legacy/index.ts create mode 100644 packages/theme/test/index.test.js create mode 100644 packages/theme/tsconfig.json create mode 100644 packages/theme/tslint.json create mode 100644 packages/typings/package.json create mode 100644 packages/typings/types/mobx-react-form.d.ts create mode 100644 packages/typings/types/react-html-attributes.d.ts create mode 100644 packages/typings/types/react-jss.d.ts create mode 100644 packages/typings/types/react-loader.d.ts create mode 100644 packages/ui/.gitignore create mode 100644 packages/ui/package-lock.json create mode 100644 packages/ui/package.json create mode 100644 packages/ui/src/badge/index.tsx create mode 100644 packages/ui/src/headline/index.tsx create mode 100644 packages/ui/src/icon/index.tsx create mode 100644 packages/ui/src/index.ts create mode 100644 packages/ui/src/infobox/index.tsx create mode 100644 packages/ui/src/loader/index.tsx create mode 100644 packages/ui/src/typings/generic.ts create mode 100644 packages/ui/tsconfig.json create mode 100644 packages/ui/tslint.json create mode 100644 src/components/services/content/ServiceView.js create mode 100644 src/features/shareFranz/Component.js create mode 100644 src/features/shareFranz/index.js create mode 100644 src/helpers/url-helpers.js create mode 100644 src/i18n/locales/defaultMessages.json create mode 100644 src/i18n/locales/whitelist_en-US.json create mode 100644 src/i18n/manage-translations.js create mode 100644 src/i18n/messages/src/components/auth/Import.json create mode 100644 src/i18n/messages/src/components/auth/Invite.json create mode 100644 src/i18n/messages/src/components/auth/Login.json create mode 100644 src/i18n/messages/src/components/auth/Password.json create mode 100644 src/i18n/messages/src/components/auth/Pricing.json create mode 100644 src/i18n/messages/src/components/auth/Signup.json create mode 100644 src/i18n/messages/src/components/auth/Welcome.json create mode 100644 src/i18n/messages/src/components/layout/AppLayout.json create mode 100644 src/i18n/messages/src/components/layout/Sidebar.json create mode 100644 src/i18n/messages/src/components/services/content/ErrorHandlers/WebviewErrorHandler.json create mode 100644 src/i18n/messages/src/components/services/content/ServiceDisabled.json create mode 100644 src/i18n/messages/src/components/services/content/Services.json create mode 100644 src/i18n/messages/src/components/services/content/WebviewCrashHandler.json create mode 100644 src/i18n/messages/src/components/services/tabs/TabItem.json create mode 100644 src/i18n/messages/src/components/settings/account/AccountDashboard.json create mode 100644 src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json create mode 100644 src/i18n/messages/src/components/settings/recipes/RecipesDashboard.json create mode 100644 src/i18n/messages/src/components/settings/services/EditServiceForm.json create mode 100644 src/i18n/messages/src/components/settings/services/ServiceError.json create mode 100644 src/i18n/messages/src/components/settings/services/ServiceItem.json create mode 100644 src/i18n/messages/src/components/settings/services/ServicesDashboard.json create mode 100644 src/i18n/messages/src/components/settings/settings/EditSettingsForm.json create mode 100644 src/i18n/messages/src/components/settings/user/EditUserForm.json create mode 100644 src/i18n/messages/src/components/subscription/SubscriptionForm.json create mode 100644 src/i18n/messages/src/components/subscription/SubscriptionPopup.json create mode 100644 src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json create mode 100644 src/i18n/messages/src/components/util/ErrorBoundary/index.json create mode 100644 src/i18n/messages/src/containers/settings/EditServiceScreen.json create mode 100644 src/i18n/messages/src/containers/settings/EditSettingsScreen.json create mode 100644 src/i18n/messages/src/containers/settings/EditUserScreen.json create mode 100644 src/i18n/messages/src/features/delayApp/Component.json create mode 100644 src/i18n/messages/src/features/shareFranz/Component.json create mode 100644 src/i18n/messages/src/helpers/validation-helpers.json create mode 100644 src/i18n/messages/src/i18n/globalMessages.json create mode 100644 src/i18n/messages/src/lib/Menu.json delete mode 100644 src/theme/dark/index.js delete mode 100644 src/theme/default/index.js create mode 100644 tsconfig.json create mode 100644 tsconfig.settings.json create mode 100644 tslint.json create mode 100644 uidev/src/app.html create mode 100644 uidev/src/app.tsx create mode 100644 uidev/src/index.tsx create mode 100644 uidev/src/stores/index.ts create mode 100644 uidev/src/stores/stories.ts create mode 100644 uidev/src/stories/badge.stories.tsx create mode 100644 uidev/src/stories/button.stories.tsx create mode 100644 uidev/src/stories/headline.stories.tsx create mode 100644 uidev/src/stories/icon.stories.tsx create mode 100644 uidev/src/stories/infobox.stories.tsx create mode 100644 uidev/src/stories/input.stories.tsx create mode 100644 uidev/src/stories/loader.stories.tsx create mode 100644 uidev/src/stories/select.stories.tsx create mode 100644 uidev/src/stories/toggle.stories.tsx create mode 100644 uidev/src/withTheme/index.tsx create mode 100644 uidev/tsconfig.json create mode 100644 uidev/tslint.json create mode 100644 uidev/webpack.config.js create mode 100644 webpack.config.base.js diff --git a/.babelrc b/.babelrc index 299d5b4a0..6277978b9 100644 --- a/.babelrc +++ b/.babelrc @@ -25,7 +25,12 @@ } ], "@babel/proposal-throw-expressions", - "@babel/syntax-dynamic-import" + "@babel/syntax-dynamic-import", + ["react-intl", { + "messagesDir": "./src/i18n/messages/", + "enforceDescriptions": false, + "extractSourceLocation": true + }] ], "sourceMaps": "inline" -} \ No newline at end of file +} diff --git a/.eslintignore b/.eslintignore index 3c0160d04..f01f6d6e6 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,2 +1,3 @@ build/ out/ +packages/*/lib diff --git a/.eslintrc b/.eslintrc index 1843e560e..743946d35 100644 --- a/.eslintrc +++ b/.eslintrc @@ -2,6 +2,7 @@ "parser": "babel-eslint", "extends": "eslint-config-airbnb", "rules": { + "no-param-reassign": 0, "import/extensions": 0, "import/no-extraneous-dependencies": 0, "import/no-unresolved": [2, { @@ -51,6 +52,7 @@ "Worker": true, "atob": true, "btoa": true, - "ga": true + "ga": true, + "mocha": true } } diff --git a/.gitignore b/.gitignore index 0a12f84d9..a5677f0b8 100644 --- a/.gitignore +++ b/.gitignore @@ -2,9 +2,12 @@ node_modules flow-typed out .DS_Store +.idea build .tmp .stage .env yarn-error.log -npm-debug.log* \ No newline at end of file +npm-debug.log* +lerna-debug.log +uidev/lib diff --git a/.nvmrc b/.nvmrc index 714ea4c61..0ca1348de 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -10.13.0 \ No newline at end of file +10.14.0 diff --git a/.travis.yml b/.travis.yml index 2c2004b3a..ba827374f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,11 +14,15 @@ matrix: language: node_js +install: +- echo do nothing + before_script: +- npx lerna bootstrap - npm install node-sass -g script: -- npm run lint +# - npm run lint - travis_wait 30 npm run build cache: npm diff --git a/CHANGELOG.md b/CHANGELOG.md index 641cd2b6b..998d40f4e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,30 @@ +## [5.0.1-beta.1](https://github.com/meetfranz/franz/compare/v5.0.0...v5.0.1-beta.1) (2019-03-18) + + +### General + +* **Translations:** Improved translations. **[A million thanks to the amazing community. 🎉](http://i18n.meetfranz.com/)** + + +### Features + +* **App:** Add security checks for external URLs ([6e5531a](https://github.com/meetfranz/franz/commit/6e5531a)) +* **App:** Update electron to 4.0.8 ([8336d17](https://github.com/meetfranz/franz/commit/8336d17)) +* **Linux:** Add auto updater for Linux AppImage builds ([d641b4e](https://github.com/meetfranz/franz/commit/d641b4e)) +* **Spell check:** Add British English as spell check language ([#1306](https://github.com/meetfranz/franz/issues/1306)) ([67fa325](https://github.com/meetfranz/franz/commit/67fa325)) +* **Windows:** Add option to quit Franz from Taskbar icon ([952fc8b](https://github.com/meetfranz/franz/commit/952fc8b)) + +### Bug Fixes + +* **Linux:** Fix minimized window focusing ([#1304](https://github.com/meetfranz/franz/issues/1304)) ([@skoruppa](https://github.com/skoruppa)) ([5b02c4d](https://github.com/meetfranz/franz/commit/5b02c4d)) +* **Notifications:** Fix notifications & notification click when icon is blob ([03589f6](https://github.com/meetfranz/franz/commit/03589f6)) +* **Service:** Fix service zoom (cmd/ctrl+ & cmd/ctrl-) ([91a0f59](https://github.com/meetfranz/franz/commit/91a0f59)) +* **Service:** Fix shortcut for (un)muting notifications & audio ([1df3342](https://github.com/meetfranz/franz/commit/1df3342)) +* **Windows:** Fix copy & paste in service context menus ([e66fcaa](https://github.com/meetfranz/franz/commit/e66fcaa)), closes [#1316](https://github.com/meetfranz/franz/issues/1316) +* **Windows:** Fix losing window when "Keep Franz in background" is enabled ([78a3722](https://github.com/meetfranz/franz/commit/78a3722)) + + + # [5.0.0](https://github.com/meetfranz/franz/compare/5.0.0-beta.24...5.0.0) (2019-02-15) ### General diff --git a/README.md b/README.md index 724e779e0..d44cfaa6c 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,14 @@ Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many mor $ npm run rebuild ``` +### Install dependencies +Run the following command to install all dependencies, and link sibling modules with Franz. +```bash +$ npx lerna bootstrap +``` + +If you previously ran `npm install` it sometimes is necessary to delete your `node_modules` folder before running `npx lerna bootstrap`. + ### Run Franz Development App Run these two commands __simultaneously__ in different console tabs. diff --git a/appveyor.yml b/appveyor.yml index 1d614b4c7..0ed8866a3 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -6,14 +6,11 @@ environment: CSC_KEY_PASSWORD: secure: t8ypNTPKTmvRfd3hHA4aMOtC5KOFqOw3AsKhpU7140Q= -version: 5.0.0.{build} +version: 5.0.1.{build} install: - - ps: $version = Get-Content .\.nvmrc -Raw - - ps: Install-Product node $version - - npm ci - - node --version - - npm --version + - ps: Install-Product node 10 + - npx lerna bootstrap cache: - '%APPDATA%\npm-cache' diff --git a/gulpfile.babel.js b/gulpfile.babel.js index ae7002eb2..06e995d07 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -41,7 +41,18 @@ const paths = { scripts: { src: 'src/**/*.js', dest: 'build/', - watch: 'src/**/*.js', + watch: [ + // 'packages/**/*.js', + 'src/**/*.js', + ], + }, + packages: { + watch: 'packages/**/*', + // dest: 'build/', + // watch: [ + // // 'packages/**/*.js', + // 'src/**/*.js', + // ], }, }; @@ -74,8 +85,9 @@ export function mvSrc() { [ `${paths.src}/*`, `${paths.src}/*/**`, - `!${paths.scripts.watch}`, + `!${paths.scripts.watch[1]}`, `!${paths.src}/styles/**`, + `!${paths.src}/**/*.js`, ], { since: gulp.lastRun(mvSrc) }, ) .pipe(gulp.dest(paths.dest)); @@ -90,6 +102,15 @@ export function mvPackageJson() { .pipe(gulp.dest(paths.dest)); } +export function mvLernaPackages() { + return gulp.src( + [ + 'packages/**', + ], + ) + .pipe(gulp.dest(`${paths.dest}/packages`)); +} + export function html() { return gulp.src(paths.html.src, { since: gulp.lastRun(html) }) .pipe(gulp.dest(paths.html.dest)); @@ -118,7 +139,7 @@ export function scripts() { } export function watch() { - gulp.watch(paths.scripts.watch, scripts); + gulp.watch(paths.packages.watch, mvLernaPackages); gulp.watch(paths.styles.watch, styles); gulp.watch([ @@ -126,6 +147,8 @@ export function watch() { `${paths.scripts.src}`, `${paths.styles.src}`, ], mvSrc); + + gulp.watch(paths.scripts.watch, scripts); } export function webserver() { @@ -161,7 +184,7 @@ export function sign(done) { const build = gulp.series( clean, - gulp.parallel(mvSrc, mvPackageJson), + gulp.parallel(mvSrc, mvPackageJson, mvLernaPackages), gulp.parallel(html, scripts, styles), dictionaries, ); diff --git a/lerna.json b/lerna.json new file mode 100644 index 000000000..96e9a5d49 --- /dev/null +++ b/lerna.json @@ -0,0 +1,11 @@ +{ + "packages": [ + "packages/*" + ], + "version": "independent", + "ignoreChanges": [ + "**/*.md", + "**/.eslintrc.{js,json,yaml,yml}", + "**/package-lock.json" + ] +} diff --git a/package-lock.json b/package-lock.json index fc9837ccb..a9724bb82 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,37 +23,6 @@ "lodash": "^4.17.10", "minimist": "^1.2.0", "wait-on": "^3.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } } }, "@babel/cli": { @@ -74,16 +43,11 @@ "source-map": "^0.5.0" }, "dependencies": { - "output-file-sync": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-2.0.1.tgz", - "integrity": "sha512-mDho4qm7WgIXIGf4eYU1RHN2UU5tPfVYVSRwDJw0uTmj35DQUt/eNp19N7v6T3SrR0ESTEf2up2CGO73qI35zQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "is-plain-obj": "^1.1.0", - "mkdirp": "^0.5.1" - } + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true } } }, @@ -97,21 +61,21 @@ } }, "@babel/core": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.0.0.tgz", - "integrity": "sha512-nrvxS5u6QUN5gLl1GEakIcmOeoUHT1/gQtdMRq18WFURJ5osn4ppJLVSseMQo4zVWKJfBTF4muIYijXUnKlRLQ==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.2.2.tgz", + "integrity": "sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.0.0", - "@babel/helpers": "^7.0.0", - "@babel/parser": "^7.0.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helpers": "^7.2.0", + "@babel/parser": "^7.2.2", + "@babel/template": "^7.2.2", + "@babel/traverse": "^7.2.2", + "@babel/types": "^7.2.2", "convert-source-map": "^1.1.0", - "debug": "^3.1.0", - "json5": "^0.5.0", + "debug": "^4.1.0", + "json5": "^2.1.0", "lodash": "^4.17.10", "resolve": "^1.3.2", "semver": "^5.4.1", @@ -119,9 +83,9 @@ }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" @@ -132,20 +96,34 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "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/generator": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.1.3.tgz", - "integrity": "sha512-ZoCZGcfIJFJuZBqxcY9OjC1KW2lWK64qrX1o4UYL3yshVhwKFYgzpWZ0vvtGMNJdTlvkw0W+HR1VnYN8q3QPFQ==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.2.tgz", + "integrity": "sha512-f3QCuPppXxtZOEm5GWPra/uYUjmNQlu9pbAD8D/9jze4pTY83rTtB1igTBSwvkeNlC5gR24zFFkz+2WHLFQhqQ==", "dev": true, "requires": { - "@babel/types": "^7.1.3", + "@babel/types": "^7.3.2", "jsesc": "^2.5.1", "lodash": "^4.17.10", "source-map": "^0.5.0", "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-annotate-as-pure": { @@ -168,12 +146,12 @@ } }, "@babel/helper-builder-react-jsx": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0.tgz", - "integrity": "sha512-ebJ2JM6NAKW0fQEqN8hOLxK84RbRz9OkUhGS/Xd5u56ejMfVbayJ4+LykERZCOUM6faa6Fp3SZNX3fcT16MKHw==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz", + "integrity": "sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw==", "dev": true, "requires": { - "@babel/types": "^7.0.0", + "@babel/types": "^7.3.0", "esutils": "^2.0.0" } }, @@ -188,6 +166,19 @@ "@babel/types": "^7.0.0" } }, + "@babel/helper-create-class-features-plugin": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.3.2.tgz", + "integrity": "sha512-tdW8+V8ceh2US4GsYdNVNoohq5uVwOf9k6krjwW4E1lINcHgttnWcNqgdoessn12dAy8QkbezlbQh2nXISNY+A==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.2.3" + } + }, "@babel/helper-define-map": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz", @@ -257,16 +248,16 @@ } }, "@babel/helper-module-transforms": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz", - "integrity": "sha512-0JZRd2yhawo79Rcm4w0LwSMILFmFXjugG3yqf+P/UsKsRS1mJCmMwwlHDlMg7Avr9LrvSpp4ZSULO9r8jpCzcw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz", + "integrity": "sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.0.0", "@babel/helper-simple-access": "^7.1.0", "@babel/helper-split-export-declaration": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0", + "@babel/template": "^7.2.2", + "@babel/types": "^7.2.2", "lodash": "^4.17.10" } }, @@ -308,14 +299,14 @@ } }, "@babel/helper-replace-supers": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz", - "integrity": "sha512-BvcDWYZRWVuDeXTYZWxekQNO5D4kO55aArwZOTFXw6rlLQA8ZaDicJR1sO47h+HrnCiDFiww0fSPV0d713KBGQ==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.2.3.tgz", + "integrity": "sha512-GyieIznGUfPXPWu0yLS6U55Mz67AZD9cUk0BfirOWlPrXlBcan9Gz+vHGz+cPfuoweZSnPzPIm67VtQM0OWZbA==", "dev": true, "requires": { "@babel/helper-member-expression-to-functions": "^7.0.0", "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/traverse": "^7.1.0", + "@babel/traverse": "^7.2.3", "@babel/types": "^7.0.0" } }, @@ -339,15 +330,15 @@ } }, "@babel/helper-wrap-function": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.1.0.tgz", - "integrity": "sha512-R6HU3dete+rwsdAfrOzTlE9Mcpk4RjU3aX3gi9grtmugQY0u79X7eogUvfXA5sI81Mfq1cn6AgxihfN33STjJA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", + "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", "dev": true, "requires": { "@babel/helper-function-name": "^7.1.0", "@babel/template": "^7.1.0", "@babel/traverse": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/types": "^7.2.0" } }, "@babel/helpers": { @@ -422,6 +413,12 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "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 } } }, @@ -434,136 +431,100 @@ "chalk": "^2.0.0", "esutils": "^2.0.2", "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } } }, "@babel/parser": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.3.tgz", - "integrity": "sha512-gqmspPZOMW3MIRb9HlrnbZHXI1/KHTOroBwN1NcLL6pWxzqzEKGvRTq0W/PxS45OtQGbaFikSQpkS5zbnsQm2w==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.2.tgz", + "integrity": "sha512-QzNUC2RO1gadg+fs21fi0Uu0OuGNzRKEmgCxoLNzbCdoprLwjfmZwzUrpUNfJPaVRwBpDY47A17yYEGWyRelnQ==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.1.0.tgz", - "integrity": "sha512-Fq803F3Jcxo20MXUSDdmZZXrPe6BWyGcWBPPNB/M7WaUYESKDeKMOGIxEzQOjGSmW/NWb6UaPZrtTB2ekhB/ew==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", + "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-remap-async-to-generator": "^7.1.0", - "@babel/plugin-syntax-async-generators": "^7.0.0" + "@babel/plugin-syntax-async-generators": "^7.2.0" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.1.0.tgz", - "integrity": "sha512-/PCJWN+CKt5v1xcGn4vnuu13QDoV+P7NcICP44BoonAJoPSGwVkgrXihFIQGiEjjPlUDBIw1cM7wYFLARS2/hw==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.0.tgz", + "integrity": "sha512-wNHxLkEKTQ2ay0tnsam2z7fGZUi+05ziDJflEt3AZTP3oXLKHJp9HqhfroB/vdMvt3sda9fAbq7FsG8QPDrZBg==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-member-expression-to-functions": "^7.0.0", - "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.1.0", - "@babel/plugin-syntax-class-properties": "^7.0.0" + "@babel/helper-create-class-features-plugin": "^7.3.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-proposal-decorators": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.1.2.tgz", - "integrity": "sha512-YooynBO6PmBgHvAd0fl5e5Tq/a0pEC6RqF62ouafme8FzdIVH41Mz/u1dn8fFVm4jzEJ+g/MsOxouwybJPuP8Q==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.3.0.tgz", + "integrity": "sha512-3W/oCUmsO43FmZIqermmq6TKaRSYhmh/vybPfVFwQWdSb8xwki38uAIvknCRzuyHRuYfCYmJzL9or1v0AffPjg==", "dev": true, "requires": { + "@babel/helper-create-class-features-plugin": "^7.3.0", "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.0.0", - "@babel/plugin-syntax-decorators": "^7.1.0" + "@babel/plugin-syntax-decorators": "^7.2.0" } }, "@babel/plugin-proposal-export-default-from": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.0.0.tgz", - "integrity": "sha512-cWhkx6SyjZ4caFOanoPmDNgQCuYYTmou4QXy886JsyLTw/vhWQbop2gLKsWyyswrJkKTB7fSNxVYbP/oEsoySA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.2.0.tgz", + "integrity": "sha512-NVfNe7F6nsasG1FnvcFxh2FN0l04ZNe75qTOAVOILWPam0tw9a63RtT/Dab8dPjedZa4fTQaQ83yMMywF9OSug==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-export-default-from": "^7.0.0" + "@babel/plugin-syntax-export-default-from": "^7.2.0" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.0.0.tgz", - "integrity": "sha512-kfVdUkIAGJIVmHmtS/40i/fg/AGnw/rsZBCaapY5yjeO5RA9m165Xbw9KMOu2nqXP5dTFjEjHdfNdoVcHv133Q==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", + "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-json-strings": "^7.0.0" + "@babel/plugin-syntax-json-strings": "^7.2.0" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0.tgz", - "integrity": "sha512-14fhfoPcNu7itSen7Py1iGN0gEm87hX/B+8nZPqkdmANyyYWYMY2pjA3r8WXbWVKMzfnSNS0xY8GVS0IjXi/iw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.2.tgz", + "integrity": "sha512-DjeMS+J2+lpANkYLLO+m6GjoTMygYglKmRe6cDTbFv3L9i6mmiE8fe6B8MtCSLZpVXscD5kn7s6SgtHrDoBWoA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.0.0" + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0.tgz", - "integrity": "sha512-JPqAvLG1s13B/AuoBjdBYvn38RqW6n1TzrQO839/sIpqLpbnXKacsAgpZHzLD83Sm8SDXMkkrAvEnJ25+0yIpw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" } }, "@babel/plugin-proposal-throw-expressions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.0.0.tgz", - "integrity": "sha512-CA2EUiwnbXrsdV4hy3jYghm91WaL7zL7xYfu628dyItRr6gylbRxshghGEK/Hhm//rR58N3PBmEeuYqSW57IUQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.2.0.tgz", + "integrity": "sha512-adsydM8DQF4i5DLNO4ySAU5VtHTPewOtNBV3u7F4lNMPADFF9bWQ+iDtUUe8+033cYCUz+bFlQdXQJmJOwoLpw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-throw-expressions": "^7.0.0" + "@babel/plugin-syntax-throw-expressions": "^7.2.0" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0.tgz", - "integrity": "sha512-tM3icA6GhC3ch2SkmSxv7J/hCWKISzwycub6eGsDrFDgukD4dZ/I+x81XgW0YslS6mzNuQ1Cbzh5osjIMgepPQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz", + "integrity": "sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -572,108 +533,99 @@ } }, "@babel/plugin-syntax-async-generators": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0.tgz", - "integrity": "sha512-im7ged00ddGKAjcZgewXmp1vxSZQQywuQXe2B1A7kajjZmDeY/ekMPmWr9zJgveSaQH0k7BcGrojQhcK06l0zA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0.tgz", - "integrity": "sha512-cR12g0Qzn4sgkjrbrzWy2GE7m9vMl/sFkqZ3gIpAQdrvPDnLM8180i+ANDFIXfjHo9aqp0ccJlQ0QNZcFUbf9w==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", + "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-decorators": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.1.0.tgz", - "integrity": "sha512-uQvRSbgQ0nQg3jsmIixXXDCgSpkBolJ9X7NYThMKCcjvE8dN2uWJUzTUNNAeuKOjARTd+wUQV0ztXpgunZYKzQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz", + "integrity": "sha512-38QdqVoXdHUQfTpZo3rQwqQdWtCn5tMv4uV6r2RMfTqNBuv4ZBhz79SfaQWKTVmxHjeFv/DnXVC/+agHCklYWA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-dynamic-import": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.0.0.tgz", - "integrity": "sha512-Gt9xNyRrCHCiyX/ZxDGOcBnlJl0I3IWicpZRC4CdC0P5a/I07Ya2OAMEBU+J7GmRFVmIetqEYRko6QYRuKOESw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", + "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-export-default-from": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.0.0.tgz", - "integrity": "sha512-HNnjg/fFFbnuLAqr/Ocp1Y3GB4AjmXcu1xxn3ql3bS2kGrB/qi+Povshb8i3hOkE5jNozzh8r/0/lq1w8oOWbQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.2.0.tgz", + "integrity": "sha512-c7nqUnNST97BWPtoe+Ssi+fJukc9P9/JMZ71IOMNQWza2E+Psrd46N6AEvtw6pqK+gt7ChjXyrw4SPDO79f3Lw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-json-strings": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.0.0.tgz", - "integrity": "sha512-UlSfNydC+XLj4bw7ijpldc1uZ/HB84vw+U6BTuqMdIEmz/LDe63w/GHtpQMdXWdqQZFeAI9PjnHe/vDhwirhKA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", + "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-jsx": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0.tgz", - "integrity": "sha512-PdmL2AoPsCLWxhIr3kG2+F9v4WH06Q3z+NoGVpQgnUNGcagXHq5sB3OXxkSahKq9TLdNMN/AJzFYSOo8UKDMHg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz", + "integrity": "sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-object-rest-spread": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0.tgz", - "integrity": "sha512-5A0n4p6bIiVe5OvQPxBnesezsgFJdHhSs3uFSvaPdMqtsovajLZ+G2vZyvNe10EzJBWWo3AcHGKhAFUxqwp2dw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", + "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0.tgz", - "integrity": "sha512-Wc+HVvwjcq5qBg1w5RG9o9RVzmCaAg/Vp0erHCKpAYV8La6I94o4GQAmFYNmkzoMO6gzoOSulpKeSSz6mPEoZw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-throw-expressions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.0.0.tgz", - "integrity": "sha512-/5uORdWlPta/ALhI5zKtm0Y9vAYOa7HJMML0OnCGk9XZA4hpGjb0Xjt/OVDCJVawC/4FrlAGCHOaj9BtWeVDvg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.2.0.tgz", + "integrity": "sha512-ngwynuqu1Rx0JUS9zxSDuPgW1K8TyVZCi2hHehrL4vyjqE7RGoNHWlZsS7KQT2vw9Yjk4YLa0+KldBXTRdPLRg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0.tgz", - "integrity": "sha512-2EZDBl1WIO/q4DIkIp4s86sdp4ZifL51MoIviLY/gG/mLSuOIEg7J8o6mhbxOTvUJkaN50n+8u41FVsr5KLy/w==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", + "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.1.0.tgz", - "integrity": "sha512-rNmcmoQ78IrvNCIt/R9U+cixUHeYAzgusTFgIAv+wQb9HJU4szhpDD6e5GCACmj/JP5KxuCwM96bX3L9v4ZN/g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz", + "integrity": "sha512-CEHzg4g5UraReozI9D4fblBYABs7IM6UerAVG7EJVrTLC5keh00aEuLUT+O40+mJCEzaXkYfTCUKIyeDfMOFFQ==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.0.0", @@ -682,18 +634,18 @@ } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0.tgz", - "integrity": "sha512-AOBiyUp7vYTqz2Jibe1UaAWL0Hl9JUXEgjFvvvcSc9MVDItv46ViXFw2F7SVt1B5k+KWjl44eeXOAk3UDEaJjQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", + "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0.tgz", - "integrity": "sha512-GWEMCrmHQcYWISilUrk9GDqH4enf3UmhOEbNbNrlNAX1ssH3MsS1xLOS6rdjRVPgA7XXVPn87tRkdTEoA/dxEg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz", + "integrity": "sha512-vDTgf19ZEV6mx35yiPJe4fS02mPQUUcBNwWQSZFXSzTSbsJFQvHt7DqyS3LK8oOWALFOsJ+8bbqBgkirZteD5Q==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -701,9 +653,9 @@ } }, "@babel/plugin-transform-classes": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.1.0.tgz", - "integrity": "sha512-rNaqoD+4OCBZjM7VaskladgqnZ1LO6o2UxuWSDzljzW21pN1KXkB7BstAVweZdxQkHAujps5QMNOTWesBciKFg==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz", + "integrity": "sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.0.0", @@ -714,38 +666,30 @@ "@babel/helper-replace-supers": "^7.1.0", "@babel/helper-split-export-declaration": "^7.0.0", "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz", - "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==", - "dev": true - } } }, "@babel/plugin-transform-computed-properties": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0.tgz", - "integrity": "sha512-ubouZdChNAv4AAWAgU7QKbB93NU5sHwInEWfp+/OzJKA02E6Woh9RVoX4sZrbRwtybky/d7baTUqwFx+HgbvMA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", + "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-destructuring": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.1.3.tgz", - "integrity": "sha512-Mb9M4DGIOspH1ExHOUnn2UUXFOyVTiX84fXCd+6B5iWrQg/QMeeRmSwpZ9lnjYLSXtZwiw80ytVMr3zue0ucYw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz", + "integrity": "sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0.tgz", - "integrity": "sha512-00THs8eJxOJUFVx1w8i1MBF4XH4PsAjKjQ1eqN/uCH3YKwP21GCKfrn6YZFZswbOk9+0cw1zGQPHVc1KBlSxig==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz", + "integrity": "sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -754,18 +698,18 @@ } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0.tgz", - "integrity": "sha512-w2vfPkMqRkdxx+C71ATLJG30PpwtTpW7DDdLqYt2acXU7YjztzeWW2Jk1T6hKqCLYCcEA5UQM/+xTAm+QCSnuQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz", + "integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.1.0.tgz", - "integrity": "sha512-uZt9kD1Pp/JubkukOGQml9tqAeI8NkE98oZnHZ2qHRElmeKCodbTZgOEUtujSCSLhHSBWbzNiFSDIMC4/RBTLQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", + "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", "dev": true, "requires": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", @@ -773,18 +717,18 @@ } }, "@babel/plugin-transform-for-of": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0.tgz", - "integrity": "sha512-TlxKecN20X2tt2UEr2LNE6aqA0oPeMT1Y3cgz8k4Dn1j5ObT8M3nl9aA37LLklx0PBZKETC9ZAf9n/6SujTuXA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz", + "integrity": "sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.1.0.tgz", - "integrity": "sha512-VxOa1TMlFMtqPW2IDYZQaHsFrq/dDoIjgN098NowhexhZcz3UGlvPgZXuE1jEvNygyWyxRacqDpCZt+par1FNg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz", + "integrity": "sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ==", "dev": true, "requires": { "@babel/helper-function-name": "^7.1.0", @@ -792,18 +736,18 @@ } }, "@babel/plugin-transform-literals": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0.tgz", - "integrity": "sha512-1NTDBWkeNXgpUcyoVFxbr9hS57EpZYXpje92zv0SUzjdu3enaRwF/l3cmyRnXLtIdyJASyiS6PtybK+CgKf7jA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", + "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.1.0.tgz", - "integrity": "sha512-wt8P+xQ85rrnGNr2x1iV3DW32W8zrB6ctuBkYBbf5/ZzJY99Ob4MFgsZDFgczNU76iy9PWsy4EuxOliDjdKw6A==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz", + "integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==", "dev": true, "requires": { "@babel/helper-module-transforms": "^7.1.0", @@ -811,9 +755,9 @@ } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.1.0.tgz", - "integrity": "sha512-wtNwtMjn1XGwM0AXPspQgvmE6msSJP15CX2RVfpTSTNPLhKhaOjaIfBaVfj4iUZ/VrFSodcFedwtPg/NxwQlPA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz", + "integrity": "sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ==", "dev": true, "requires": { "@babel/helper-module-transforms": "^7.1.0", @@ -822,9 +766,9 @@ } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.1.3.tgz", - "integrity": "sha512-PvTxgjxQAq4pvVUZF3mD5gEtVDuId8NtWkJsZLEJZMZAW3TvgQl1pmydLLN1bM8huHFVVU43lf0uvjQj9FRkKw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz", + "integrity": "sha512-aYJwpAhoK9a+1+O625WIjvMY11wkB/ok0WClVwmeo3mCjcNRjt+/8gHWrB5i+00mUju0gWsBkQnPpdvQ7PImmQ==", "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.0.0", @@ -832,15 +776,24 @@ } }, "@babel/plugin-transform-modules-umd": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.1.0.tgz", - "integrity": "sha512-enrRtn5TfRhMmbRwm7F8qOj0qEYByqUvTttPEGimcBH4CJHphjyK1Vg7sdU7JjeEmgSpM890IT/efS2nMHwYig==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", + "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", "dev": true, "requires": { "@babel/helper-module-transforms": "^7.1.0", "@babel/helper-plugin-utils": "^7.0.0" } }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.3.0.tgz", + "integrity": "sha512-NxIoNVhk9ZxS+9lSoAQ/LM0V2UEvARLttEHUrRDGKFaAxOYQcrkN/nLRE+BbbicCAvZPl7wMP0X60HsHE5DtQw==", + "dev": true, + "requires": { + "regexp-tree": "^0.1.0" + } + }, "@babel/plugin-transform-new-target": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz", @@ -851,9 +804,9 @@ } }, "@babel/plugin-transform-object-super": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.1.0.tgz", - "integrity": "sha512-/O02Je1CRTSk2SSJaq0xjwQ8hG4zhZGNjE8psTsSNPXyLRCODv7/PBozqT5AmQMzp7MI3ndvMhGdqp9c96tTEw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz", + "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -861,9 +814,9 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.1.0.tgz", - "integrity": "sha512-vHV7oxkEJ8IHxTfRr3hNGzV446GAb+0hgbA7o/0Jd76s+YzccdWuTU296FOCOl/xweU4t/Ya4g41yWz80RFCRw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz", + "integrity": "sha512-kB9+hhUidIgUoBQ0MsxMewhzr8i60nMa2KgeJKQWYrqQpqcBYtnpR+JgkadZVZoaEZ/eKu9mclFaVwhRpLNSzA==", "dev": true, "requires": { "@babel/helper-call-delegate": "^7.1.0", @@ -872,43 +825,43 @@ } }, "@babel/plugin-transform-react-display-name": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.0.0.tgz", - "integrity": "sha512-BX8xKuQTO0HzINxT6j/GiCwoJB0AOMs0HmLbEnAvcte8U8rSkNa/eSCAY+l1OA4JnCVq2jw2p6U8QQryy2fTPg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz", + "integrity": "sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.0.0.tgz", - "integrity": "sha512-0TMP21hXsSUjIQJmu/r7RiVxeFrXRcMUigbKu0BLegJK9PkYodHstaszcig7zxXfaBji2LYUdtqIkHs+hgYkJQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz", + "integrity": "sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg==", "dev": true, "requires": { - "@babel/helper-builder-react-jsx": "^7.0.0", + "@babel/helper-builder-react-jsx": "^7.3.0", "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.0.0" + "@babel/plugin-syntax-jsx": "^7.2.0" } }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.0.0.tgz", - "integrity": "sha512-pymy+AK12WO4safW1HmBpwagUQRl9cevNX+82AIAtU1pIdugqcH+nuYP03Ja6B+N4gliAaKWAegIBL/ymALPHA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz", + "integrity": "sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.0.0" + "@babel/plugin-syntax-jsx": "^7.2.0" } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.0.0.tgz", - "integrity": "sha512-OSeEpFJEH5dw/TtxTg4nijl4nHBbhqbKL94Xo/Y17WKIf2qJWeIk/QeXACF19lG1vMezkxqruwnTjVizaW7u7w==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.2.0.tgz", + "integrity": "sha512-A32OkKTp4i5U6aE88GwwcuV4HAprUgHcTq0sSafLxjr6AW0QahrCRCjxogkbbcdtpbXkuTOlgpjophCxb6sh5g==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.0.0" + "@babel/plugin-syntax-jsx": "^7.2.0" } }, "@babel/plugin-transform-regenerator": { @@ -921,27 +874,27 @@ } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0.tgz", - "integrity": "sha512-g/99LI4vm5iOf5r1Gdxq5Xmu91zvjhEG5+yZDJW268AZELAu4J1EiFLnkSG3yuUsZyOipVOVUKoGPYwfsTymhw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", + "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-spread": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0.tgz", - "integrity": "sha512-L702YFy2EvirrR4shTj0g2xQp7aNwZoWNCkNu2mcoU0uyzMl0XRwDSwzB/xp6DSUFiBmEXuyAyEN16LsgVqGGQ==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", + "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0.tgz", - "integrity": "sha512-LFUToxiyS/WD+XEWpkx/XJBrUXKewSZpzX68s+yEOtIbdnsRjpryDw9U06gYc6klYEij/+KQVRnD3nz3AoKmjw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", + "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -949,9 +902,9 @@ } }, "@babel/plugin-transform-template-literals": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0.tgz", - "integrity": "sha512-vA6rkTCabRZu7Nbl9DfLZE1imj4tzdWcg5vtdQGvj+OH9itNNB6hxuRMHuIY8SGnEt1T9g5foqs9LnrHzsqEFg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz", + "integrity": "sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.0.0", @@ -959,18 +912,18 @@ } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0.tgz", - "integrity": "sha512-1r1X5DO78WnaAIvs5uC48t41LLckxsYklJrZjNKcevyz83sF2l4RHbw29qrCPr/6ksFsdfRpT/ZgxNWHXRnffg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", + "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0.tgz", - "integrity": "sha512-uJBrJhBOEa3D033P95nPHu3nbFwFE9ZgXsfEitzoIXIwqAZWk7uXcg06yFKXz9FSxBH5ucgU/cYdX0IV8ldHKw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz", + "integrity": "sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -979,58 +932,60 @@ } }, "@babel/polyfill": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.0.0.tgz", - "integrity": "sha512-dnrMRkyyr74CRelJwvgnnSUDh2ge2NCTyHVwpOdvRMHtJUyxLtMAfhBN3s64pY41zdw0kgiLPh6S20eb1NcX6Q==", + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.2.5.tgz", + "integrity": "sha512-8Y/t3MWThtMLYr0YNC/Q76tqN1w30+b0uQMeFUYauG2UGTR19zyUtFrAzT23zNtBxPp+LbE5E/nwV/q/r3y6ug==", "requires": { "core-js": "^2.5.7", - "regenerator-runtime": "^0.11.1" + "regenerator-runtime": "^0.12.0" } }, "@babel/preset-env": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.1.0.tgz", - "integrity": "sha512-ZLVSynfAoDHB/34A17/JCZbyrzbQj59QC1Anyueb4Bwjh373nVPq5/HMph0z+tCmcDjXDe+DlKQq9ywQuvWrQg==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.1.tgz", + "integrity": "sha512-FHKrD6Dxf30e8xgHQO0zJZpUPfVZg+Xwgz5/RdSWCbza9QLNk4Qbp40ctRoqDxml3O8RMzB1DU55SXeDG6PqHQ==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.0.0", "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.1.0", - "@babel/plugin-proposal-json-strings": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.0.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.0.0", - "@babel/plugin-syntax-async-generators": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.0.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-async-to-generator": "^7.1.0", - "@babel/plugin-transform-block-scoped-functions": "^7.0.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-classes": "^7.1.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.0.0", - "@babel/plugin-transform-dotall-regex": "^7.0.0", - "@babel/plugin-transform-duplicate-keys": "^7.0.0", - "@babel/plugin-transform-exponentiation-operator": "^7.1.0", - "@babel/plugin-transform-for-of": "^7.0.0", - "@babel/plugin-transform-function-name": "^7.1.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-modules-amd": "^7.1.0", - "@babel/plugin-transform-modules-commonjs": "^7.1.0", - "@babel/plugin-transform-modules-systemjs": "^7.0.0", - "@babel/plugin-transform-modules-umd": "^7.1.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.3.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.2.0", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.2.0", + "@babel/plugin-transform-classes": "^7.2.0", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.2.0", + "@babel/plugin-transform-dotall-regex": "^7.2.0", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.2.0", + "@babel/plugin-transform-function-name": "^7.2.0", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "@babel/plugin-transform-modules-systemjs": "^7.2.0", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", "@babel/plugin-transform-new-target": "^7.0.0", - "@babel/plugin-transform-object-super": "^7.1.0", - "@babel/plugin-transform-parameters": "^7.1.0", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.2.0", "@babel/plugin-transform-regenerator": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-sticky-regex": "^7.0.0", - "@babel/plugin-transform-template-literals": "^7.0.0", - "@babel/plugin-transform-typeof-symbol": "^7.0.0", - "@babel/plugin-transform-unicode-regex": "^7.0.0", - "browserslist": "^4.1.0", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.2.0", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.2.0", + "browserslist": "^4.3.4", "invariant": "^2.2.2", "js-levenshtein": "^1.1.3", "semver": "^5.3.0" @@ -1062,97 +1017,53 @@ "mkdirp": "^0.5.1", "pirates": "^4.0.0", "source-map-support": "^0.5.9" - }, - "dependencies": { - "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.0.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" - } - }, - "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" - } - } } }, "@babel/runtime": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.1.2.tgz", - "integrity": "sha512-Y3SCjmhSupzFB6wcv1KmmFucH6gDVnI30WjOcicV10ju0cZjak3Jcs67YLIXBrmZYw1xCrVeJPbycFwrqNyxpg==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.1.tgz", + "integrity": "sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==", "requires": { "regenerator-runtime": "^0.12.0" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" - } } }, "@babel/template": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.2.tgz", - "integrity": "sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.1.2", - "@babel/types": "^7.1.2" + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" } }, "@babel/traverse": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.4.tgz", - "integrity": "sha512-my9mdrAIGdDiSVBuMjpn/oXYpva0/EZwWL3sm3Wcy/AVWO2eXnsoZruOT9jOGNRXU8KbCIu5zsKnXcAJ6PcV6Q==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.2.3.tgz", + "integrity": "sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.1.3", + "@babel/generator": "^7.2.2", "@babel/helper-function-name": "^7.1.0", "@babel/helper-split-export-declaration": "^7.0.0", - "@babel/parser": "^7.1.3", - "@babel/types": "^7.1.3", - "debug": "^3.1.0", + "@babel/parser": "^7.2.3", + "@babel/types": "^7.2.2", + "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.10" }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" } }, - "globals": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz", - "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==", - "dev": true - }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", @@ -1162,2974 +1073,2789 @@ } }, "@babel/types": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.3.tgz", - "integrity": "sha512-RpPOVfK+yatXyn8n4PB1NW6k9qjinrXrRR8ugBN8fD6hCy5RXI6PSbVqpOJBO9oSaY7Nom4ohj35feb0UR9hSA==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.2.tgz", + "integrity": "sha512-3Y6H8xlUlpbGR+XvawiH0UXehqydTmNmEpozWcXymqwcrwYAl5KMvKtQ+TF6f6E08V6Jur7v/ykdDSF+WDEIXQ==", "dev": true, "requires": { "esutils": "^2.0.2", "lodash": "^4.17.10", "to-fast-properties": "^2.0.0" + } + }, + "@fimbul/bifrost": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@fimbul/bifrost/-/bifrost-0.17.0.tgz", + "integrity": "sha512-gVTkJAOef5HtN6LPmrtt5fAUmBywwlgmObsU3FBhPoNeXPLaIl2zywXkJEtvvVLQnaFmtff3x+wIj5lHRCDE3Q==", + "dev": true, + "requires": { + "@fimbul/ymir": "^0.17.0", + "get-caller-file": "^2.0.0", + "tslib": "^1.8.1", + "tsutils": "^3.5.0" }, "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "get-caller-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.1.tgz", + "integrity": "sha512-SpOZHfz845AH0wJYVuZk2jWDqFmu7Xubsx+ldIpwzy5pDUpu7OJHK7QYNSA2NPlDSKQwM1GFaAkciOWjjW92Sg==", "dev": true + }, + "tsutils": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.8.0.tgz", + "integrity": "sha512-XQdPhgcoTbCD8baXC38PQ0vpTZ8T3YrE+vR66YIj/xvDt1//8iAhafpIT/4DmvzzC1QFapEImERu48Pa01dIUA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } } } }, - "@meetfranz/electron-notification-state": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@meetfranz/electron-notification-state/-/electron-notification-state-1.0.0.tgz", - "integrity": "sha512-0gCEV7DfoasuMA9uY9sN1ufrzSFg/fXB0gHbxagid8EilAjGsbkSSLSl2rweZcIBz+ZgR35Yp7DlAVw/I3cIfA==", + "@fimbul/ymir": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@fimbul/ymir/-/ymir-0.17.0.tgz", + "integrity": "sha512-xMXM9KTXRLHLVS6dnX1JhHNEkmWHcAVCQ/4+DA1KKwC/AFnGHzu/7QfQttEPgw3xplT+ILf9e3i64jrFwB3JtA==", + "dev": true, "requires": { - "macos-notification-state": "^1.1.0", - "windows-notification-state": "^1.3.0", - "windows-quiet-hours": "^1.2.2" + "inversify": "^5.0.0", + "reflect-metadata": "^0.1.12", + "tslib": "^1.8.1" } }, - "@types/node": { - "version": "10.12.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.21.tgz", - "integrity": "sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ==", - "dev": true - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "@lerna/add": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/add/-/add-3.11.0.tgz", + "integrity": "sha512-A2u889e+GeZzL28jCpcN53iHq2cPWVnuy5tv5nvG/MIg0PxoAQOUvphexKsIbqzVd9Damdmv5W0u9kS8y8TTow==", "dev": true, "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" + "@lerna/bootstrap": "3.11.0", + "@lerna/command": "3.11.0", + "@lerna/filter-options": "3.11.0", + "@lerna/npm-conf": "3.7.0", + "@lerna/validation-error": "3.11.0", + "dedent": "^0.7.0", + "npm-package-arg": "^6.1.0", + "p-map": "^1.2.0", + "pacote": "^9.4.1", + "semver": "^5.5.0" } }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "@lerna/batch-packages": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/batch-packages/-/batch-packages-3.11.0.tgz", + "integrity": "sha512-ETO3prVqDZs/cpZo00ij61JEZ8/ADJx1OG/d/KtTdHlyRfQsb09Xzf0w+boimqa8fIqhpM3o5FV9GKd6GQ3iFQ==", + "dev": true, + "requires": { + "@lerna/package-graph": "3.11.0", + "@lerna/validation-error": "3.11.0", + "npmlog": "^4.1.2" + } }, - "accepts": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.0.7.tgz", - "integrity": "sha1-W1AftPBwQwmWTM2wSBclQSCNqxo=", + "@lerna/bootstrap": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.11.0.tgz", + "integrity": "sha512-MqwviGJTy86joqSX2A3fmu2wXLBXc23tHJp5Xu4bVhynPegDnRrA3d9UI80UM3JcuYIQsxT4t2q2LNsZ4VdZKQ==", "dev": true, "requires": { - "mime-types": "~1.0.0", - "negotiator": "0.4.7" + "@lerna/batch-packages": "3.11.0", + "@lerna/command": "3.11.0", + "@lerna/filter-options": "3.11.0", + "@lerna/has-npm-version": "3.10.0", + "@lerna/npm-install": "3.11.0", + "@lerna/package-graph": "3.11.0", + "@lerna/pulse-till-done": "3.11.0", + "@lerna/rimraf-dir": "3.11.0", + "@lerna/run-lifecycle": "3.11.0", + "@lerna/run-parallel-batches": "3.0.0", + "@lerna/symlink-binary": "3.11.0", + "@lerna/symlink-dependencies": "3.11.0", + "@lerna/validation-error": "3.11.0", + "dedent": "^0.7.0", + "get-port": "^3.2.0", + "multimatch": "^2.1.0", + "npm-package-arg": "^6.1.0", + "npmlog": "^4.1.2", + "p-finally": "^1.0.0", + "p-map": "^1.2.0", + "p-map-series": "^1.0.0", + "p-waterfall": "^1.0.0", + "read-package-tree": "^5.1.6", + "semver": "^5.5.0" }, "dependencies": { "mime-types": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz", - "integrity": "sha1-mVrhOSq4r/y/yyZB3QVOlDwNXc4=", - "dev": true + "integrity": "sha1-mVrhOSq4r/y/yyZB3QVOlDwNXc4=" } } }, - "acorn": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.4.tgz", - "integrity": "sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==", - "dev": true - }, - "acorn-jsx": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", - "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", - "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 - }, - "address-rfc2822": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/address-rfc2822/-/address-rfc2822-2.0.4.tgz", - "integrity": "sha1-Lb07jWwt4elXwahUncAS1Au8NDE=", + "@lerna/changed": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-3.11.1.tgz", + "integrity": "sha512-A21h3DvMjDwhksmCmTQ1+3KPHg7gHVHFs3zC5lR9W+whYlm0JI2Yp70vYnqMv2hPAcJx+2tlCrqJkzCFkNQdqg==", + "dev": true, "requires": { - "email-addresses": "^3.0.0" + "@lerna/collect-updates": "3.11.0", + "@lerna/command": "3.11.0", + "@lerna/listable": "3.11.0", + "@lerna/output": "3.11.0", + "@lerna/version": "3.11.1" } }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", - "dev": true + "@lerna/check-working-tree": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-3.11.0.tgz", + "integrity": "sha512-uWKKmX4BKdK57MyX3rGNHNz4JmFP3tHnaIDDVeuSlgK5KwncPFyRXi3E9H0eiq6DUvDDLtztNOfWeGP2IY656Q==", + "dev": true, + "requires": { + "@lerna/describe-ref": "3.11.0", + "@lerna/validation-error": "3.11.0" + } }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "@lerna/child-process": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-3.3.0.tgz", + "integrity": "sha512-q2d/OPlNX/cBXB6Iz1932RFzOmOHq6ZzPjqebkINNaTojHWuuRpvJJY4Uz3NGpJ3kEtPDvBemkZqUBTSO5wb1g==", "dev": true, "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "chalk": "^2.3.1", + "execa": "^1.0.0", + "strong-log-transformer": "^2.0.0" } }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true + "@lerna/clean": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-3.11.0.tgz", + "integrity": "sha512-sHyMYv56MIVMH79+5vcxHVdgmd8BcsihI+RL2byW+PeoNlyDeGMjTRmnzLmbSD7dkinHGoa5cghlXy9GGIqpRw==", + "dev": true, + "requires": { + "@lerna/command": "3.11.0", + "@lerna/filter-options": "3.11.0", + "@lerna/prompt": "3.11.0", + "@lerna/pulse-till-done": "3.11.0", + "@lerna/rimraf-dir": "3.11.0", + "p-map": "^1.2.0", + "p-map-series": "^1.0.0", + "p-waterfall": "^1.0.0" + } }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true + "@lerna/cli": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-3.11.0.tgz", + "integrity": "sha512-dn2m2PgUxcb2NyTvwfYOFZf8yN5CMf1uKxht3ajQYdDjRgFi5pUQt/DmdguOZ3CMJkENa0i3yPOmrxGPXLD2aw==", + "dev": true, + "requires": { + "@lerna/global-options": "3.10.6", + "dedent": "^0.7.0", + "npmlog": "^4.1.2", + "yargs": "^12.0.1" + } }, - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "@lerna/collect-updates": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.11.0.tgz", + "integrity": "sha512-O0Y18OC2P6j9/RFq+u5Kdq7YxsDd+up3ZRoW6+i0XHWktqxXA9P4JBQppkpYtJVK2yH8QyOzuVLQgtL0xtHdYA==", "dev": true, "requires": { - "string-width": "^2.0.0" + "@lerna/child-process": "3.3.0", + "@lerna/describe-ref": "3.11.0", + "minimatch": "^3.0.4", + "npmlog": "^4.1.2", + "slash": "^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=", + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "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=", + } + } + }, + "@lerna/command": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/command/-/command-3.11.0.tgz", + "integrity": "sha512-N+Z5kauVHSb2VhSIfQexG2VlCAAQ9xYKwVTxYh0JFOFUnZ/QPcoqx4VjynDXASFXXDgcXs4FLaGsJxq83Mf5Zg==", + "dev": true, + "requires": { + "@lerna/child-process": "3.3.0", + "@lerna/package-graph": "3.11.0", + "@lerna/project": "3.11.0", + "@lerna/validation-error": "3.11.0", + "@lerna/write-log-file": "3.11.0", + "dedent": "^0.7.0", + "execa": "^1.0.0", + "is-ci": "^1.0.10", + "lodash": "^4.17.5", + "npmlog": "^4.1.2" + }, + "dependencies": { + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", "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=", + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ci-info": "^1.5.0" } } } }, - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "@lerna/conventional-commits": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-3.11.0.tgz", + "integrity": "sha512-ix1Ki5NiZdk2eMlCWNgLchWPKQTgkJdLeNjneep6OCF3ydSINizReGbFvCftRivun641cOHWswgWMsIxbqhMQw==", "dev": true, "requires": { - "ansi-wrap": "^0.1.0" + "@lerna/validation-error": "3.11.0", + "conventional-changelog-angular": "^5.0.2", + "conventional-changelog-core": "^3.1.5", + "conventional-recommended-bump": "^4.0.4", + "fs-extra": "^7.0.0", + "get-stream": "^4.0.0", + "npm-package-arg": "^6.1.0", + "npmlog": "^4.1.2", + "pify": "^3.0.0", + "semver": "^5.5.0" } }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", - "dev": true + "@lerna/create": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/create/-/create-3.11.0.tgz", + "integrity": "sha512-1izS82QML+H/itwEu1GPrcoXyugFaP9z9r6KuIQRQq8RtmNCGEmK85aiOw6mukyRcRziq2akALgFDyrundznPQ==", + "dev": true, + "requires": { + "@lerna/child-process": "3.3.0", + "@lerna/command": "3.11.0", + "@lerna/npm-conf": "3.7.0", + "@lerna/validation-error": "3.11.0", + "camelcase": "^5.0.0", + "dedent": "^0.7.0", + "fs-extra": "^7.0.0", + "globby": "^8.0.1", + "init-package-json": "^1.10.3", + "npm-package-arg": "^6.1.0", + "p-reduce": "^1.0.0", + "pacote": "^9.4.1", + "pify": "^3.0.0", + "semver": "^5.5.0", + "slash": "^1.0.0", + "validate-npm-package-license": "^3.0.3", + "validate-npm-package-name": "^3.0.0", + "whatwg-url": "^7.0.0" + }, + "dependencies": { + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + } + } }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "@lerna/create-symlink": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-3.11.0.tgz", + "integrity": "sha512-UDR32uos8FIEc1keMKxXj5goZAHpCbpUd4u/btHXymUL9WqIym3cgz2iMr3ZNdZtjdMyUoHup5Dp0zjSgKCaEA==", + "dev": true, "requires": { - "ansi-wrap": "0.1.0" + "cmd-shim": "^2.0.2", + "fs-extra": "^7.0.0", + "npmlog": "^4.1.2" } }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "@lerna/describe-ref": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-3.11.0.tgz", + "integrity": "sha512-lX/NVMqeODg4q/igN06L/KjtVUpW1oawh6IgOINy2oqm4RUR+1yDpsdVu3JyZZ4nHB572mJfbW56dl8qoxEVvQ==", + "dev": true, + "requires": { + "@lerna/child-process": "3.3.0", + "npmlog": "^4.1.2" + } }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "@lerna/diff": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-3.11.0.tgz", + "integrity": "sha512-r3WASQix31ApA0tlkZejXhS8Z3SEg6Jw9YnKDt9V6wLjEUXGLauUDMrgx1YWu3cs9KB8/hqheRyRI7XAXGJS1w==", + "dev": true, + "requires": { + "@lerna/child-process": "3.3.0", + "@lerna/command": "3.11.0", + "@lerna/validation-error": "3.11.0", + "npmlog": "^4.1.2" + } }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" + "@lerna/exec": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-3.11.0.tgz", + "integrity": "sha512-oIkI+Hj74kpsnHhw0qJj12H4XMPSlDbBsshLWY+f3BiwKhn6wkXoQZ1FC8/OVNHM67GtSRv4bkcOaM4ucHm9Hw==", + "dev": true, + "requires": { + "@lerna/batch-packages": "3.11.0", + "@lerna/child-process": "3.3.0", + "@lerna/command": "3.11.0", + "@lerna/filter-options": "3.11.0", + "@lerna/run-parallel-batches": "3.0.0", + "@lerna/validation-error": "3.11.0" + } }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "@lerna/filter-options": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.11.0.tgz", + "integrity": "sha512-z0krgC/YBqz7i6MGHBsPLvsQ++XEpPdGnIkSpcN0Cjp5J67K9vb5gJ2hWp1c1bitNh3xiwZ69voGqN+DYk1mUg==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "@lerna/collect-updates": "3.11.0", + "@lerna/filter-packages": "3.11.0", + "dedent": "^0.7.0" } }, - "app-builder-bin": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-2.6.1.tgz", - "integrity": "sha512-W0l85O+s6lOaziWqAhszPfwiG0s15FvMBP9j9i/bknsMccUkwN60u4Cy7yYtf6akCUDuJenLqpTX4/xvkq1egw==", - "dev": true + "@lerna/filter-packages": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-3.11.0.tgz", + "integrity": "sha512-bnukkW1M0uMKWqM/m/IHou2PKRyk4fDAksAj3diHc1UVQkH2j8hXOfLl9+CgHA/cnTrf6/LARg8hKujqduqHyA==", + "dev": true, + "requires": { + "@lerna/validation-error": "3.11.0", + "multimatch": "^2.1.0", + "npmlog": "^4.1.2" + } }, - "app-builder-lib": { - "version": "20.38.4", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-20.38.4.tgz", - "integrity": "sha512-JbuAJQBndcCW6BJVIb2tPjM5wiuIjz2LUlbyVxNIawM2wFKUBV9kr0N3RNBJFxcrCEuA9oprMUCoymJdrMUVfA==", + "@lerna/get-npm-exec-opts": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-3.11.0.tgz", + "integrity": "sha512-EDxsbuq2AbB3LWwH/4SOcn4gWOnoIYrSHfITWo7xz/SbEKeHtiva99l424ZRWUJqLPGIpQiMTlmOET2ZEI8WZg==", "dev": true, "requires": { - "7zip-bin": "~4.1.0", - "app-builder-bin": "2.6.1", - "async-exit-hook": "^2.0.1", - "bluebird-lst": "^1.0.6", - "builder-util": "9.6.1", - "builder-util-runtime": "8.1.0", - "chromium-pickle-js": "^0.2.0", - "debug": "^4.1.0", - "ejs": "^2.6.1", - "electron-osx-sign": "0.4.11", - "electron-publish": "20.38.3", - "fs-extra-p": "^7.0.0", - "hosted-git-info": "^2.7.1", - "is-ci": "^2.0.0", - "isbinaryfile": "^3.0.3", - "js-yaml": "^3.12.0", - "lazy-val": "^1.0.3", - "minimatch": "^3.0.4", - "normalize-package-data": "^2.4.0", - "plist": "^3.0.1", - "read-config-file": "3.2.0", - "sanitize-filename": "^1.6.1", - "semver": "^5.6.0", - "temp-file": "^3.3.2" - }, - "dependencies": { - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } + "npmlog": "^4.1.2" } }, - "append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", + "@lerna/get-packed": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-3.7.0.tgz", + "integrity": "sha512-yuFtjsUZIHjeIvIYQ/QuytC+FQcHwo3peB+yGBST2uWCLUCR5rx6knoQcPzbxdFDCuUb5IFccFGd3B1fHFg3RQ==", "dev": true, "requires": { - "buffer-equal": "^1.0.0" + "fs-extra": "^7.0.0", + "ssri": "^6.0.1", + "tar": "^4.4.8" } }, - "applescript": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/applescript/-/applescript-1.0.0.tgz", - "integrity": "sha1-u4evVoytA0pOSMS9r2Bno6JwExc=" + "@lerna/github-client": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-3.11.0.tgz", + "integrity": "sha512-yPMBhzShuth3uJo0kKu84RvgjSZgOYNT8fKfhZmzTeVGuPbYBKlK+UQ6jjpb6E9WW2BVdiUCrFhqIsbK5Lqe7A==", + "dev": true, + "requires": { + "@lerna/child-process": "3.3.0", + "@octokit/plugin-enterprise-rest": "^2.1.0", + "@octokit/rest": "^16.15.0", + "git-url-parse": "^11.1.2", + "npmlog": "^4.1.2" + } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "@lerna/global-options": { + "version": "3.10.6", + "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-3.10.6.tgz", + "integrity": "sha512-k5Xkq1M/uREFC2R9uwN5gcvIgjj4iOXo0YyeEXCMWBiW3j2GL9xN4d1MmAIcrYlAzVYh6kLlWaFWl/rNIneHIw==", "dev": true }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + "@lerna/has-npm-version": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-3.10.0.tgz", + "integrity": "sha512-N4RRYxGeivuaKgPDzrhkQOQs1Sg4tOnxnEe3akfqu1wDA4Ng5V6Y2uW3DbkAjFL3aNJhWF5Vbf7sBsGtfgDQ8w==", + "dev": true, + "requires": { + "@lerna/child-process": "3.3.0", + "semver": "^5.5.0" + } }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "@lerna/import": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/import/-/import-3.11.0.tgz", + "integrity": "sha512-WgF0We+4k/MrC1vetT8pt3/SSJPMvXhyPYmL2W9rcvch3zV0IgLyso4tEs8gNbwZorDVEG1KcM+x8TG4v1nV5Q==", "dev": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "@lerna/child-process": "3.3.0", + "@lerna/command": "3.11.0", + "@lerna/prompt": "3.11.0", + "@lerna/pulse-till-done": "3.11.0", + "@lerna/validation-error": "3.11.0", + "dedent": "^0.7.0", + "fs-extra": "^7.0.0", + "p-map-series": "^1.0.0" } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "@lerna/init": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/init/-/init-3.11.0.tgz", + "integrity": "sha512-JZC5jpCVJgK34grye52kGWjrYCyh4LB8c0WBLaS8MOUt6rxTtPqubwvCDKPOF2H0Se6awsgEfX4wWNuqiQVpRQ==", + "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "@lerna/child-process": "3.3.0", + "@lerna/command": "3.11.0", + "fs-extra": "^7.0.0", + "p-map": "^1.2.0", + "write-json-file": "^2.3.0" } }, - "aria-query": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", - "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "@lerna/link": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/link/-/link-3.11.0.tgz", + "integrity": "sha512-QN+kxRWb6P9jrKpE2t6K9sGnFpqy1KOEjf68NpGhmp+J9Yt6Kvz9kG43CWoqg4Zyqqgqgn3NVV2Z7zSDNhdH0g==", "dev": true, "requires": { - "ast-types-flow": "0.0.7", - "commander": "^2.11.0" + "@lerna/command": "3.11.0", + "@lerna/package-graph": "3.11.0", + "@lerna/symlink-dependencies": "3.11.0", + "p-map": "^1.2.0", + "slash": "^1.0.0" + }, + "dependencies": { + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + } } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + "@lerna/list": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/list/-/list-3.11.0.tgz", + "integrity": "sha512-hBAwZzEzF1LQOOB2/5vQkal/nSriuJbLY39BitIGkUxifsmu7JK0k3LYrwe1sxXv5SMf2HDaTLr+Z23mUslhaQ==", + "dev": true, + "requires": { + "@lerna/command": "3.11.0", + "@lerna/filter-options": "3.11.0", + "@lerna/listable": "3.11.0", + "@lerna/output": "3.11.0" + } }, - "arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", + "@lerna/listable": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-3.11.0.tgz", + "integrity": "sha512-nCrtGSS3YiAlh5dU5mmTAU9aLRlmIUn2FnahqsksN2uQ5O4o+614tneDuO298/eWLZo00eGw69EFngaQEl8quw==", "dev": true, "requires": { - "make-iterator": "^1.0.0" + "@lerna/batch-packages": "3.11.0", + "chalk": "^2.3.1", + "columnify": "^1.5.4" } }, - "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==" - }, - "arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", + "@lerna/log-packed": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-3.11.0.tgz", + "integrity": "sha512-TH//81TzSTMuNzJIQE7zqu+ymI5rH25jdEdmbYEWmaJ+T42GMQXKxP8cj2m+fWRaDML8ta0uzBOm5PKHdgoFYQ==", "dev": true, "requires": { - "make-iterator": "^1.0.0" + "byte-size": "^4.0.3", + "columnify": "^1.5.4", + "has-unicode": "^2.0.1", + "npmlog": "^4.1.2" } }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + "@lerna/npm-conf": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-3.7.0.tgz", + "integrity": "sha512-+WSMDfPKcKzMfqq283ydz9RRpOU6p9wfx0wy4hVSUY/6YUpsyuk8SShjcRtY8zTM5AOrxvFBuuV90H4YpZ5+Ng==", + "dev": true, + "requires": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + } }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true + "@lerna/npm-dist-tag": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-3.11.0.tgz", + "integrity": "sha512-WqZcyDb+wiqAKRFcYEK6R8AQfspyro85zGGHyjYw6ZPNgJX3qhwtQ+MidDmOesi2p5/0GfeVSWega+W7fPzVpg==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.1.0", + "npm-registry-fetch": "^3.9.0", + "npmlog": "^4.1.2" + } }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" + "@lerna/npm-install": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-3.11.0.tgz", + "integrity": "sha512-iNKEgFvFHMmBqn9AnFye2rv7CdUBlYciwWSTNtpfVqtOnoL/lg+4A774oL4PDoxTCGmougztyxMkqLVSBYXTpw==", + "dev": true, + "requires": { + "@lerna/child-process": "3.3.0", + "@lerna/get-npm-exec-opts": "3.11.0", + "fs-extra": "^7.0.0", + "npm-package-arg": "^6.1.0", + "npmlog": "^4.1.2", + "signal-exit": "^3.0.2", + "write-pkg": "^3.1.0" + } }, - "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 + "@lerna/npm-publish": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-3.11.0.tgz", + "integrity": "sha512-wgbb55gUXRlP8uTe60oW6c06ZhquaJu9xbi2vWNpb5Fmjh/KbZ2iNm9Kj2ciZlvb8D+k4Oc3qV7slBGxyMm8wg==", + "dev": true, + "requires": { + "@lerna/run-lifecycle": "3.11.0", + "figgy-pudding": "^3.5.1", + "fs-extra": "^7.0.0", + "libnpmpublish": "^1.1.1", + "npmlog": "^4.1.2", + "pify": "^3.0.0", + "read-package-json": "^2.0.13" + } }, - "array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", - "dev": true + "@lerna/npm-run-script": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-3.11.0.tgz", + "integrity": "sha512-cLnTMrRQlK/N5bCr6joOFMBfRyW2EbMdk3imtjHk0LwZxsvQx3naAPUB/2RgNfC8fGf/yHF/0bmBrpb5sa2IlA==", + "dev": true, + "requires": { + "@lerna/child-process": "3.3.0", + "@lerna/get-npm-exec-opts": "3.11.0", + "npmlog": "^4.1.2" + } }, - "array-includes": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", - "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "@lerna/output": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/output/-/output-3.11.0.tgz", + "integrity": "sha512-xHYGcEaZZ4cR0Jw368QgUgFvV27a6ZO5360BMNGNsjCjuY0aOPQC5+lBhgfydJtJteKjDna853PSjBK3uMhEjw==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "npmlog": "^4.1.2" } }, - "array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", + "@lerna/pack-directory": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-3.11.0.tgz", + "integrity": "sha512-bgA3TxZx5AyZeqUadSPspktdecW7nIpg/ODq0o0gKFr7j+DC9Fqu8vQa2xmFSKsXDtOYkCV0jox6Ox9XSFSM3A==", "dev": true, "requires": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } + "@lerna/get-packed": "3.7.0", + "@lerna/package": "3.11.0", + "@lerna/run-lifecycle": "3.11.0", + "figgy-pudding": "^3.5.1", + "npm-packlist": "^1.1.12", + "npmlog": "^4.1.2", + "tar": "^4.4.8", + "temp-write": "^3.4.0" } }, - "array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "@lerna/package": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/package/-/package-3.11.0.tgz", + "integrity": "sha512-hMzBhFEubhg+Tis5C8skwIfgOk+GTl0qudvzfPU9gQqLV8u4/Hs6mka6N0rKgbUb4VFVc5MJVe1eZ6Rv+kJAWw==", "dev": true, "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } + "load-json-file": "^4.0.0", + "npm-package-arg": "^6.1.0", + "write-pkg": "^3.1.0" } }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" + "@lerna/package-graph": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-3.11.0.tgz", + "integrity": "sha512-ICYiOZvCfcmeH1qfzOkFYh0t0QA56OddQfI3ydxCiWi5G+UupJXnCIWSTh3edTAtw/kyxhCOWny/PJsG4CQfjA==", + "dev": true, + "requires": { + "@lerna/validation-error": "3.11.0", + "npm-package-arg": "^6.1.0", + "semver": "^5.5.0" + } }, - "array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "@lerna/project": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/project/-/project-3.11.0.tgz", + "integrity": "sha512-j3DGds+q/q2YNpoBImaEsMpkWgu5gP0IGKz1o1Ju39NZKrTPza+ARIzEByL4Jqu87tcoOj7RbZzhhrBP8JBbTg==", "dev": true, "requires": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" + "@lerna/package": "3.11.0", + "@lerna/validation-error": "3.11.0", + "cosmiconfig": "^5.0.2", + "dedent": "^0.7.0", + "dot-prop": "^4.2.0", + "glob-parent": "^3.1.0", + "globby": "^8.0.1", + "load-json-file": "^4.0.0", + "npmlog": "^4.1.2", + "p-map": "^1.2.0", + "resolve-from": "^4.0.0", + "write-json-file": "^2.3.0" }, "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "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.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true } } }, - "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 + "@lerna/prompt": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-3.11.0.tgz", + "integrity": "sha512-SB/wvyDPQASze9txd+8/t24p6GiJuhhL30zxuRwvVwER5lIJR7kaXy1KhQ7kUAKPlNTVfCBm3GXReIMl4jhGhw==", + "dev": true, + "requires": { + "inquirer": "^6.2.0", + "npmlog": "^4.1.2" + } + }, + "@lerna/publish": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-3.11.1.tgz", + "integrity": "sha512-UOvmSivuqzWoiTqoYWk+liPDZvC6O7NrT8DwoG2peRvjIPs5RKYMubwXPOrBBVVE+yX/vR6V1Y3o6vf3av52dg==", + "dev": true, + "requires": { + "@lerna/batch-packages": "3.11.0", + "@lerna/check-working-tree": "3.11.0", + "@lerna/child-process": "3.3.0", + "@lerna/collect-updates": "3.11.0", + "@lerna/command": "3.11.0", + "@lerna/describe-ref": "3.11.0", + "@lerna/log-packed": "3.11.0", + "@lerna/npm-conf": "3.7.0", + "@lerna/npm-dist-tag": "3.11.0", + "@lerna/npm-publish": "3.11.0", + "@lerna/output": "3.11.0", + "@lerna/pack-directory": "3.11.0", + "@lerna/prompt": "3.11.0", + "@lerna/pulse-till-done": "3.11.0", + "@lerna/run-lifecycle": "3.11.0", + "@lerna/run-parallel-batches": "3.0.0", + "@lerna/validation-error": "3.11.0", + "@lerna/version": "3.11.1", + "figgy-pudding": "^3.5.1", + "fs-extra": "^7.0.0", + "libnpmaccess": "^3.0.1", + "npm-package-arg": "^6.1.0", + "npm-registry-fetch": "^3.9.0", + "npmlog": "^4.1.2", + "p-finally": "^1.0.0", + "p-map": "^1.2.0", + "p-pipe": "^1.2.0", + "p-reduce": "^1.0.0", + "pacote": "^9.4.1", + "semver": "^5.5.0" + } }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "@lerna/pulse-till-done": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-3.11.0.tgz", + "integrity": "sha512-nMwBa6S4+VI/ketN92oj1xr8y74Fz4ul2R5jdbrRqLLEU/IMBWIqn6NRM2P+OQBoLpPZ2MdWENLJVFNN8X1Q+A==", + "dev": true, + "requires": { + "npmlog": "^4.1.2" + } }, - "arraybuffer.slice": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", - "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=", - "dev": true + "@lerna/resolve-symlink": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-3.11.0.tgz", + "integrity": "sha512-lDer8zPXS36iL4vJdZwOk6AnuUjDXswoTWdYkl+HdAKXp7cBlS+VeGmcFIJS4R3mSSZE20h1oEDuH8h8GGORIQ==", + "dev": true, + "requires": { + "fs-extra": "^7.0.0", + "npmlog": "^4.1.2", + "read-cmd-shim": "^1.0.1" + } }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true + "@lerna/rimraf-dir": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-3.11.0.tgz", + "integrity": "sha512-roy4lKel7BMNLfFvyzK0HI251mgI9EwbpOccR2Waz0V22d0gaqLKzfVrzovat9dVHXrKNxAhJ5iKkKeT93IunQ==", + "dev": true, + "requires": { + "@lerna/child-process": "3.3.0", + "npmlog": "^4.1.2", + "path-exists": "^3.0.0", + "rimraf": "^2.6.2" + } }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + "@lerna/run": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/run/-/run-3.11.0.tgz", + "integrity": "sha512-8c2yzbKJFzgO6VTOftWmB0fOLTL7G1GFAG5UTVDSk95Z2Gnjof3I/Xkvtbzq8L+DIOLpr+Tpj3fRBjZd8rONlA==", + "dev": true, + "requires": { + "@lerna/batch-packages": "3.11.0", + "@lerna/command": "3.11.0", + "@lerna/filter-options": "3.11.0", + "@lerna/npm-run-script": "3.11.0", + "@lerna/output": "3.11.0", + "@lerna/run-parallel-batches": "3.0.0", + "@lerna/timer": "3.5.0", + "@lerna/validation-error": "3.11.0", + "p-map": "^1.2.0" + } }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "@lerna/run-lifecycle": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-3.11.0.tgz", + "integrity": "sha512-3xeeVz9s3Dh2ljKqJI/Fl+gkZD9Y8JblAN62f4WNM76d/zFlgpCXDs62OpxNjEuXujA7YFix0sJ+oPKMm8mDrw==", "dev": true, "requires": { - "safer-buffer": "~2.1.0" + "@lerna/npm-conf": "3.7.0", + "figgy-pudding": "^3.5.1", + "npm-lifecycle": "^2.1.0", + "npmlog": "^4.1.2" } }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "@lerna/run-parallel-batches": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@lerna/run-parallel-batches/-/run-parallel-batches-3.0.0.tgz", + "integrity": "sha512-Mj1ravlXF7AkkewKd9YFq9BtVrsStNrvVLedD/b2wIVbNqcxp8lS68vehXVOzoL/VWNEDotvqCQtyDBilCodGw==", + "dev": true, + "requires": { + "p-map": "^1.2.0", + "p-map-series": "^1.0.0" + } }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + "@lerna/symlink-binary": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-3.11.0.tgz", + "integrity": "sha512-5sOED+1O8jI+ckDS6DRUKtAtbKo7lbxFIJs6sWWEu5qKzM5e21O6E2wTWimJkad8nJ1SJAuyc8DC8M8ki4kT4w==", + "dev": true, + "requires": { + "@lerna/create-symlink": "3.11.0", + "@lerna/package": "3.11.0", + "fs-extra": "^7.0.0", + "p-map": "^1.2.0" + } }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", - "dev": true + "@lerna/symlink-dependencies": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-3.11.0.tgz", + "integrity": "sha512-XKNX8oOgcOmiKHUn7qT5GvvmKP3w5otZPOjRixUDUILWTc3P8nO5I1VNILNF6IE5ajNw6yiXOWikSxc6KuFqBQ==", + "dev": true, + "requires": { + "@lerna/create-symlink": "3.11.0", + "@lerna/resolve-symlink": "3.11.0", + "@lerna/symlink-binary": "3.11.0", + "fs-extra": "^7.0.0", + "p-finally": "^1.0.0", + "p-map": "^1.2.0", + "p-map-series": "^1.0.0" + } }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "@lerna/timer": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-3.5.0.tgz", + "integrity": "sha512-TAb99hqQN6E3JBGtG9iyZNPq1/DbmqgBOeNrKtdJsGvIeX/NGLgUDWMrj2h04V4O+jpBFmSf6HIld6triKmxCA==", "dev": true }, - "async": { - "version": "0.1.22", - "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", - "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=" + "@lerna/validation-error": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-3.11.0.tgz", + "integrity": "sha512-/mS4o6QYm4OXUqfPJnW1mKudGhvhLe9uiQ9eK2cgSxkCAVq9G2Sl/KVohpnqAgeRI3nXordGxHS745CdAhg7pA==", + "dev": true, + "requires": { + "npmlog": "^4.1.2" + } }, - "async-done": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.1.tgz", - "integrity": "sha512-R1BaUeJ4PMoLNJuk+0tLJgjmEqVsdN118+Z8O+alhnQDQgy0kmD5Mqi0DNEmMx2LM0Ed5yekKu+ZXYvIHceicg==", + "@lerna/version": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/@lerna/version/-/version-3.11.1.tgz", + "integrity": "sha512-+lFq4D8BpchIslIz6jyUY6TZO1kuAgQ+G1LjaYwUBiP2SzXVWgPoPoq/9dnaSq38Hhhvlf7FF6i15d+q8gk1xQ==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^1.0.7", - "stream-exhaust": "^1.0.1" + "@lerna/batch-packages": "3.11.0", + "@lerna/check-working-tree": "3.11.0", + "@lerna/child-process": "3.3.0", + "@lerna/collect-updates": "3.11.0", + "@lerna/command": "3.11.0", + "@lerna/conventional-commits": "3.11.0", + "@lerna/github-client": "3.11.0", + "@lerna/output": "3.11.0", + "@lerna/prompt": "3.11.0", + "@lerna/run-lifecycle": "3.11.0", + "@lerna/validation-error": "3.11.0", + "chalk": "^2.3.1", + "dedent": "^0.7.0", + "minimatch": "^3.0.4", + "npmlog": "^4.1.2", + "p-map": "^1.2.0", + "p-pipe": "^1.2.0", + "p-reduce": "^1.0.0", + "p-waterfall": "^1.0.0", + "semver": "^5.5.0", + "slash": "^1.0.0", + "temp-write": "^3.4.0" + }, + "dependencies": { + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + } } }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true + "@lerna/write-log-file": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-3.11.0.tgz", + "integrity": "sha512-skpTDMDOkQAN4lCeAoI6/rPhbNE431eD0i6Ts3kExUOrYTr0m5CIwVtMZ31Flpky0Jfh4ET6rOl5SDNMLbf4VA==", + "dev": true, + "requires": { + "npmlog": "^4.1.2", + "write-file-atomic": "^2.3.0" + } }, - "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 + "@mdi/js": { + "version": "3.4.93", + "resolved": "https://registry.npmjs.org/@mdi/js/-/js-3.4.93.tgz", + "integrity": "sha512-SEzolEqT8ErlWdHz4AAtQ1lTfAnM6j67Ppm6k5s/I1aIuuoFP/D8d/z838C28xHO1KOqrsS1fw2wlf6fRiEEJA==" }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true + "@mdi/react": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@mdi/react/-/react-1.1.0.tgz", + "integrity": "sha512-c0+avMYEZ6i7Pg1ULLFs+p7k8bDPiie9rrgGYs8VWQhw2tUUYz7r0lIPVzD3bzMghWfyhfkArj88K5Of0WTMNw==" }, - "async-settle": { + "@meetfranz/electron-notification-state": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", - "dev": true, + "resolved": "https://registry.npmjs.org/@meetfranz/electron-notification-state/-/electron-notification-state-1.0.0.tgz", + "integrity": "sha512-0gCEV7DfoasuMA9uY9sN1ufrzSFg/fXB0gHbxagid8EilAjGsbkSSLSl2rweZcIBz+ZgR35Yp7DlAVw/I3cIfA==", "requires": { - "async-done": "^1.2.2" + "macos-notification-state": "^1.1.0", + "windows-notification-state": "^1.3.0", + "windows-quiet-hours": "^1.2.2" } }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + "@meetfranz/forms": { + "version": "file:packages/forms", + "requires": { + "@mdi/js": "^3.3.92", + "@mdi/react": "^1.1.0", + "@meetfranz/theme": "^1.0.7", + "react-html-attributes": "^1.4.3", + "react-loader": "^2.4.5" + }, + "dependencies": { + "@meetfranz/theme": { + "version": "1.0.9", + "bundled": true, + "requires": { + "color": "^3.1.0" + } + } + } }, - "attr-accept": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-1.1.3.tgz", - "integrity": "sha512-iT40nudw8zmCweivz6j58g+RT33I4KbaIvRUhjNmDwO2WmsQUxFEZZYZ5w3vXe5x5MX9D7mfvA/XaLOZYFR9EQ==", + "@meetfranz/theme": { + "version": "file:packages/theme", "requires": { - "core-js": "^2.5.0" + "color": "^3.1.0" } }, - "auto-launch": { - "version": "git+https://github.com/meetfranz/node-auto-launch.git#b90a0470467eb84435e6554ae9db1e2c6db79e61", - "from": "git+https://github.com/meetfranz/node-auto-launch.git", + "@meetfranz/ui": { + "version": "file:packages/ui", "requires": { - "applescript": "^1.0.0", - "mkdirp": "^0.5.1", - "path-is-absolute": "^1.0.0", - "untildify": "^3.0.2", - "winreg": "1.2.2" + "@mdi/js": "^3.3.92", + "@mdi/react": "^1.1.0", + "@meetfranz/theme": "^1.0.7", + "react-loader": "^2.4.5" + }, + "dependencies": { + "@meetfranz/theme": { + "version": "1.0.9", + "bundled": true, + "requires": { + "color": "^3.1.0" + } + } } }, - "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=", - "dev": true + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", "dev": true }, - "axobject-query": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", - "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", + "@octokit/endpoint": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-3.1.2.tgz", + "integrity": "sha512-iRx4kDYybAv9tOrHDBE6HwlgiFi8qmbZl8SHliZWtxbUFuXLZXh2yv8DxGIK9wzD9J0wLDMZneO8vNYJNUSJ9Q==", "dev": true, "requires": { - "ast-types-flow": "0.0.7" + "deepmerge": "3.1.0", + "is-plain-object": "^2.0.4", + "universal-user-agent": "^2.0.1", + "url-template": "^2.0.8" } }, - "babel-eslint": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.1.tgz", - "integrity": "sha512-z7OT1iNV+TjOwHNLLyJk+HN+YVWX+CLE6fPD2SymJZOZQBs+QIexFjhm4keGTm8MW9xr4EC9Q0PbaLB24V5GoQ==", + "@octokit/plugin-enterprise-rest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-2.1.1.tgz", + "integrity": "sha512-DJNXHH0LptKCLpJ8y3vCA/O+s+3/sDU4JNN2V0M04tsMN0hVGLPzoGgejPJgaxGP8Il5aw+jA5Nl5mTfdt9NrQ==", + "dev": true + }, + "@octokit/request": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-2.3.0.tgz", + "integrity": "sha512-5YRqYNZOAaL7+nt7w3Scp6Sz4P2g7wKFP9npx1xdExMomk8/M/ICXVLYVam2wzxeY0cIc6wcKpjC5KI4jiNbGw==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "^1.0.0" + "@octokit/endpoint": "^3.1.1", + "is-plain-object": "^2.0.4", + "node-fetch": "^2.3.0", + "universal-user-agent": "^2.0.1" }, "dependencies": { - "eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } + "node-fetch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz", + "integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA==", + "dev": true } } }, - "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=", + "@octokit/rest": { + "version": "16.15.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.15.0.tgz", + "integrity": "sha512-Un+e7rgh38RtPOTe453pT/KPM/p2KZICimBmuZCd2wEo8PacDa4h6RqTPZs+f2DPazTTqdM7QU4LKlUjgiBwWw==", + "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - } + "@octokit/request": "2.3.0", + "before-after-hook": "^1.2.0", + "btoa-lite": "^1.0.0", + "lodash.get": "^4.4.2", + "lodash.set": "^4.3.2", + "lodash.uniq": "^4.5.0", + "octokit-pagination-methods": "^1.1.0", + "universal-user-agent": "^2.0.0", + "url-template": "^2.0.8" } }, - "bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", + "@types/classnames": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.7.tgz", + "integrity": "sha512-rzOhiQ55WzAiFgXRtitP/ZUT8iVNyllEpylJ5zHzR4vArUvMB39GTk+Zon/uAM0JxEFAWnwsxC2gH8s+tZ3Myg==", + "dev": true + }, + "@types/color": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/color/-/color-3.0.0.tgz", + "integrity": "sha512-5qqtNia+m2I0/85+pd2YzAXaTyKO8j+svirO5aN+XaQJ5+eZ8nx0jPtEWZLxCi50xwYsX10xUHetFzfb1WEs4Q==", "dev": true, "requires": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" + "@types/color-convert": "*" } }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "dev": true + "@types/color-convert": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@types/color-convert/-/color-convert-1.9.0.tgz", + "integrity": "sha512-OKGEfULrvSL2VRbkl/gnjjgbbF7ycIlpSsX7Nkab4MOWi5XxmgBYvuiQ7lcCFY5cPDz7MUNaKgxte2VRmtr4Fg==", + "dev": true, + "requires": { + "@types/color-name": "*" + } }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "@types/color-name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.0.tgz", + "integrity": "sha512-gZ/Rb+MFXF0pXSEQxdRoPMm5jeO3TycjOdvbpbcpHX/B+n9AqaHFe5q6Ga9CsZ7ir/UgIWPfrBzUzn3F19VH/w==", + "dev": true }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "@types/jss": { + "version": "9.5.7", + "resolved": "https://registry.npmjs.org/@types/jss/-/jss-9.5.7.tgz", + "integrity": "sha512-OZimStu2QdDMtZ0h72JXqvLVbWUjXd5ZLk8vxLmfuC/nM1AabRyyGoxSufnzixrbpEcVcyy/JV5qeQu2JnjVZw==", + "dev": true, "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "csstype": "^2.0.0", + "indefinite-observable": "^1.0.1" } }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "@types/lodash": { + "version": "4.14.120", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.120.tgz", + "integrity": "sha512-jQ21kQ120mo+IrDs1nFNVm/AsdFxIx2+vZ347DbogHJPd/JzKNMOqU6HCYin1W6v8l5R9XSO2/e9cxmn7HAnVw==", "dev": true }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "@types/node": { + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-11.9.0.tgz", + "integrity": "sha512-ry4DOrC+xenhQbzk1iIPzCZGhhPGEFv7ia7Iu6XXSLVluiJIe9FfG7Iu3mObH9mpxEXCWLCMU4JWbCCR9Oy1Zg==", "dev": true }, - "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "@types/prop-types": { + "version": "15.5.8", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.5.8.tgz", + "integrity": "sha512-3AQoUxQcQtLHsK25wtTWIoIpgYjH3vSDroZOUr7PpCHw/jLY1RB9z9E8dBT/OSmwStVgkRNvdh+ZHNiomRieaw==", "dev": true }, - "batch": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.1.tgz", - "integrity": "sha1-NqS6tZTAUP17UHvKDbMMLZKvT/I=", - "dev": true + "@types/react": { + "version": "16.8.2", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.2.tgz", + "integrity": "sha512-6mcKsqlqkN9xADrwiUz2gm9Wg4iGnlVGciwBRYFQSMWG6MQjhOZ/AVnxn+6v8nslFgfYTV8fNdE6XwKu6va5PA==", + "dev": true, + "requires": { + "@types/prop-types": "*", + "csstype": "^2.2.0" + } }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "@types/react-dom": { + "version": "16.0.11", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.0.11.tgz", + "integrity": "sha512-x6zUx9/42B5Kl2Vl9HlopV8JF64wLpX3c+Pst9kc1HgzrsH+mkehe/zmHMQTplIrR48H2gpU7ZqurQolYu8XBA==", "dev": true, "requires": { - "tweetnacl": "^0.14.3" + "@types/react": "*" } }, - "beeper": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", - "dev": true + "@types/react-jss": { + "version": "8.6.1", + "resolved": "https://registry.npmjs.org/@types/react-jss/-/react-jss-8.6.1.tgz", + "integrity": "sha512-F/6V+yOuUA/4sTKwa9Lc2QsafKhAal3d9XxvtaMS1HUdNx9xspPpnHMEIJ27qiAPuyNMF5naJxdxwnEE0fWoSg==", + "dev": true, + "requires": { + "@types/jss": "*", + "@types/react": "*", + "@types/theming": "*", + "csstype": "^2.0.0" + } }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "@types/theming": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/theming/-/theming-1.3.2.tgz", + "integrity": "sha512-hglGgki3jUbSjl1UB6vc8rsOyELRfH+VVIMyymoHRlUizdgWmWiwteH2jdltsHCVlAtSCmAh0nB71t9G41vhxQ==", "dev": true, "requires": { - "callsite": "1.0.0" + "@types/react": "*" } }, - "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==", - "dev": true + "@types/uuid": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.4.tgz", + "integrity": "sha512-tPIgT0GUmdJQNSHxp0X2jnpQfBSTfGxUMc/2CXBU2mnyTFVYVa2ojpoQ74w0U2yn2vw3jnC640+77lkFFpdVDw==", + "dev": true, + "requires": { + "@types/node": "*" + } }, - "binary-extensions": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", - "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", + "@webassemblyjs/ast": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", + "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz", + "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==", "dev": true }, - "bindings": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", - "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" + "@webassemblyjs/helper-api-error": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz", + "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==", + "dev": true }, - "blob": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", - "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=", + "@webassemblyjs/helper-buffer": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz", + "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==", "dev": true }, - "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=", + "@webassemblyjs/helper-code-frame": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz", + "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==", "dev": true, "requires": { - "inherits": "~2.0.0" + "@webassemblyjs/wast-printer": "1.7.11" } }, - "bluebird": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", - "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==" + "@webassemblyjs/helper-fsm": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz", + "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==", + "dev": true }, - "bluebird-lst": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.6.tgz", - "integrity": "sha512-CBWFoPuUPpcvMUxfyr8DKdI5d4kjxFl1h39+VbKxP3KJWJHEsLtuT4pPLkjpxCGU6Ask21tvbnftWXdqIxYldQ==", + "@webassemblyjs/helper-module-context": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz", + "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==", + "dev": true + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz", + "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz", + "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==", + "dev": true, "requires": { - "bluebird": "^3.5.2" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11" } }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "@webassemblyjs/ieee754": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz", + "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==", + "dev": true, "requires": { - "hoek": "2.x.x" + "@xtuc/ieee754": "^1.2.0" } }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "@webassemblyjs/leb128": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz", + "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==", "dev": true, "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.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.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.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.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "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": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "@xtuc/long": "4.2.1" } }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "@webassemblyjs/utf8": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz", + "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz", + "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==", + "dev": true, "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/helper-wasm-section": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-opt": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "@webassemblyjs/wast-printer": "1.7.11" } }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "@webassemblyjs/wasm-gen": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz", + "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==", + "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "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.0" - } - } + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" } }, - "brcast": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/brcast/-/brcast-3.0.1.tgz", - "integrity": "sha512-eI3yqf9YEqyGl9PCNTR46MGvDylGtaHjalcz6Q3fAPnP/PhpKkkve52vFdfGpwp4VUvK6LUr4TQN+2stCrEwTg==" + "@webassemblyjs/wasm-opt": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz", + "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11" + } }, - "browserslist": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.2.tgz", - "integrity": "sha512-wgZJWlYcDvsjRtf8socmAHf1nXq88KrQLB/gMYHGPUc2bzPWsgltSXwPWYHx4Sw0G9E/XGNW5wJDaWlpHRMpjA==", + "@webassemblyjs/wasm-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz", + "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000898", - "electron-to-chromium": "^1.3.80", - "node-releases": "^1.0.0-alpha.14" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" } }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "@webassemblyjs/wast-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz", + "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==", "dev": true, "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/floating-point-hex-parser": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-code-frame": "1.7.11", + "@webassemblyjs/helper-fsm": "1.7.11", + "@xtuc/long": "4.2.1" } }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true + "@webassemblyjs/wast-printer": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz", + "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11", + "@xtuc/long": "4.2.1" + } }, - "buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, - "buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "@xtuc/long": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", + "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==", "dev": true }, - "buffer-from": { + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "abbrev": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true }, - "builder-util": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-9.6.1.tgz", - "integrity": "sha512-8MljKTjeV+A+LLVexuWEV3EpWbiUcsHHrB4Bg2qNo/3dC+vTo6g/27+W3Ij7Ij1UTobSkNBstFieWijXJCco9A==", + "accepts": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.0.7.tgz", + "integrity": "sha1-W1AftPBwQwmWTM2wSBclQSCNqxo=", "dev": true, "requires": { - "7zip-bin": "~4.1.0", - "app-builder-bin": "2.6.1", - "bluebird-lst": "^1.0.6", - "builder-util-runtime": "^8.1.0", - "chalk": "^2.4.1", - "debug": "^4.1.0", - "fs-extra-p": "^7.0.0", - "is-ci": "^2.0.0", - "js-yaml": "^3.12.0", - "source-map-support": "^0.5.9", - "stat-mode": "^0.2.2", - "temp-file": "^3.3.2" + "mime-types": "~1.0.0", + "negotiator": "0.4.7" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "mime-types": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz", + "integrity": "sha1-mVrhOSq4r/y/yyZB3QVOlDwNXc4=", "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } } } }, - "builder-util-runtime": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.1.0.tgz", - "integrity": "sha512-s1mlJ28mv+56Iebh6c9aXjVe11O3Z0cDTwAGeB0PCcUzHA37fDxGgS8ZGoYNMZP+rBHj21d/od1wuYofTVLaQg==", + "acorn": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.0.tgz", + "integrity": "sha512-MW/FjM+IvU9CgBzjO3UIPCE2pyEwUsoFl+VGdczOPEdxfGFjuKny/gN54mOuX7Qxmb9Rg9MCn2oKiSUeW+pjrw==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", + "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", + "dev": true, "requires": { - "bluebird-lst": "^1.0.6", - "debug": "^4.1.0", - "fs-extra-p": "^7.0.0", - "sax": "^1.2.4" + "acorn": "^5.0.0" }, "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true } } }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "acorn-jsx": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", + "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", "dev": true }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "add-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=", + "dev": true + }, + "address-rfc2822": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/address-rfc2822/-/address-rfc2822-2.0.4.tgz", + "integrity": "sha1-Lb07jWwt4elXwahUncAS1Au8NDE=", "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "email-addresses": "^3.0.0" } }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", "dev": true, "requires": { - "callsites": "^2.0.0" - }, - "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - } + "es6-promisify": "^5.0.0" } }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", "dev": true, "requires": { - "callsites": "^0.2.0" + "humanize-ms": "^1.2.1" } }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "ajv": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", + "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", "dev": true, "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - } + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "caniuse-lite": { - "version": "1.0.30000898", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000898.tgz", - "integrity": "sha512-ytlTZqO4hYe4rNAJhMynUAIUI33jsP2Bb1two/9OVC39wZjPZ8exIO0eCLw5mqAtegOGiGF0kkTWTn3B02L+mw==", - "dev": true - }, - "capture-stack-trace": { + "ajv-errors": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", - "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", "dev": true }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "ajv-keywords": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz", + "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==", "dev": true }, - "chain-function": { + "amdefine": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chain-function/-/chain-function-1.0.1.tgz", - "integrity": "sha512-SxltgMwL9uCko5/ZCLiyG2B7R9fY4pDZUw7hJ4MhirdjBLosoDqkWABi3XMucddHdLiFJMb7PD2MZifZriuMTg==" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "dev": true }, - "chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "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": { - "anymatch": "^2.0.0", - "async-each": "^1.0.0", - "braces": "^2.3.0", - "fsevents": "^1.2.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "lodash.debounce": "^4.0.8", - "normalize-path": "^2.1.1", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0", - "upath": "^1.0.5" - } - }, - "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==" - }, - "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.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", - "dev": true - }, - "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 - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } + "string-width": "^2.0.0" } }, - "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - }, - "cld3-asm": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cld3-asm/-/cld3-asm-1.0.1.tgz", - "integrity": "sha512-wuAqZd44Rk164TLKSYyLFZGSObhf82udOR+M/CnOkeEShq9+Tpxb/9RAE0m/KUVD1DnR5gMkZFeYExt51PCAbg==", + "ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, "requires": { - "emscripten-wasm-loader": "^1.0.0", - "tslib": "^1.9.0", - "utf8": "^3.0.0" + "ansi-wrap": "^0.1.0" } }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "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=", + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", "dev": true, "requires": { - "restore-cursor": "^2.0.0" + "ansi-wrap": "0.1.0" } }, - "cli-spinners": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", - "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", + "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 }, - "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 + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "color-convert": "^1.9.0" } }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", "dev": true }, - "cloneable-readable": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", - "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - }, - "dependencies": { - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - } + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "app-builder-bin": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-2.6.1.tgz", + "integrity": "sha512-W0l85O+s6lOaziWqAhszPfwiG0s15FvMBP9j9i/bknsMccUkwN60u4Cy7yYtf6akCUDuJenLqpTX4/xvkq1egw==", "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=" - }, - "collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", + "app-builder-lib": { + "version": "20.38.4", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-20.38.4.tgz", + "integrity": "sha512-JbuAJQBndcCW6BJVIb2tPjM5wiuIjz2LUlbyVxNIawM2wFKUBV9kr0N3RNBJFxcrCEuA9oprMUCoymJdrMUVfA==", "dev": true, "requires": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "7zip-bin": "~4.1.0", + "app-builder-bin": "2.6.1", + "async-exit-hook": "^2.0.1", + "bluebird-lst": "^1.0.6", + "builder-util": "9.6.1", + "builder-util-runtime": "8.1.0", + "chromium-pickle-js": "^0.2.0", + "debug": "^4.1.0", + "ejs": "^2.6.1", + "electron-osx-sign": "0.4.11", + "electron-publish": "20.38.3", + "fs-extra-p": "^7.0.0", + "hosted-git-info": "^2.7.1", + "is-ci": "^2.0.0", + "isbinaryfile": "^3.0.3", + "js-yaml": "^3.12.0", + "lazy-val": "^1.0.3", + "minimatch": "^3.0.4", + "normalize-package-data": "^2.4.0", + "plist": "^3.0.1", + "read-config-file": "3.2.0", + "sanitize-filename": "^1.6.1", + "semver": "^5.6.0", + "temp-file": "^3.3.2" + }, + "dependencies": { + "builder-util-runtime": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.1.0.tgz", + "integrity": "sha512-s1mlJ28mv+56Iebh6c9aXjVe11O3Z0cDTwAGeB0PCcUzHA37fDxGgS8ZGoYNMZP+rBHj21d/od1wuYofTVLaQg==", + "dev": true, + "requires": { + "bluebird-lst": "^1.0.6", + "debug": "^4.1.0", + "fs-extra-p": "^7.0.0", + "sax": "^1.2.4" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", "dev": true, "requires": { - "color-name": "1.1.3" + "buffer-equal": "^1.0.0" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "applescript": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/applescript/-/applescript-1.0.0.tgz", + "integrity": "sha1-u4evVoytA0pOSMS9r2Bno6JwExc=" }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true }, - "colors": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.2.tgz", - "integrity": "sha512-rhP0JSBGYvpcNQj4s5AdShMeE5ahMop96cTeDl/v9qQQm2fYClE2QXZRi8wLzc+GmXSxdIqqbOIAhyObEXDbfQ==", + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, - "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "requires": { - "delayed-stream": "~1.0.0" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } }, - "compare-func": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", - "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", + "aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", "dev": true, "requires": { - "array-ify": "^1.0.0", - "dot-prop": "^3.0.0" + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" }, "dependencies": { - "dot-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", - "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", - "dev": true, + "debug": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz", + "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=", "requires": { - "is-obj": "^1.0.0" + "ms": "0.6.2" } + }, + "ms": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz", + "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=" } } }, - "compare-version": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", - "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, - "component-bind": { + "arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", + "dev": true, + "requires": { + "make-iterator": "^1.0.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==", + "dev": true + }, + "arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", + "dev": true, + "requires": { + "make-iterator": "^1.0.0" + } + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-differ": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", "dev": true }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "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 }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "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": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" } }, - "concurrently": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-4.0.1.tgz", - "integrity": "sha512-D8UI+mlI/bfvrA57SeKOht6sEpb01dKk+8Yee4fbnkk1Ue8r3S+JXoEdFZIpzQlXJGtnxo47Wvvg/kG4ba3U6Q==", + "array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", "dev": true, "requires": { - "chalk": "^2.4.1", - "date-fns": "^1.23.0", - "lodash": "^4.17.10", - "read-pkg": "^4.0.1", - "rxjs": "6.2.2", - "spawn-command": "^0.0.2-1", - "supports-color": "^4.5.0", - "tree-kill": "^1.1.0", - "yargs": "^12.0.1" + "array-slice": "^1.0.0", + "is-number": "^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 - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.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.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "decamelize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", - "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", - "dev": true, - "requires": { - "xregexp": "4.0.0" - } - }, - "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "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 - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "mem": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz", - "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^1.0.0", - "p-is-promise": "^1.1.0" - } - }, - "os-locale": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz", - "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==", - "dev": true, - "requires": { - "execa": "^0.10.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "p-limit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "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": "4.0.1", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", - "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", - "dev": true, - "requires": { - "normalize-package-data": "^2.3.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0" - } - }, - "rxjs": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.2.tgz", - "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", - "dev": true, - "requires": { - "tslib": "^1.9.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": { + "is-number": { "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" - }, - "dependencies": { - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - } - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", "dev": true - }, - "yargs": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz", - "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^2.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^10.1.0" - } - }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } } } }, - "configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", - "dev": true, - "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "connect": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.1.1.tgz", - "integrity": "sha1-pz4kScPvwt/RZhhll3oJGE0SAZY=", + "array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", "dev": true, "requires": { - "debug": "1.0.4", - "finalhandler": "0.1.0", - "parseurl": "~1.3.0", - "utils-merge": "1.0.0" + "is-number": "^4.0.0" }, "dependencies": { - "debug": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz", - "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=", - "dev": true, - "requires": { - "ms": "0.6.2" - } - }, - "ms": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz", - "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=", + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", "dev": true } } }, - "connect-inject": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/connect-inject/-/connect-inject-0.3.2.tgz", - "integrity": "sha1-2WtRaltrskwhkeYitegs3WKES6M=", + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", "dev": true }, - "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=", - "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 + "array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "dev": true, + "requires": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } }, - "conventional-changelog": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.0.5.tgz", - "integrity": "sha512-JYSVGJbnOl9S2gkZwmoJ+wX2gxNVHodUmEiv+eIykeJBNX0zN5vJ3oa2xCvk2HiF7TZ+Les0eq/aX49dcymONA==", + "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": { - "conventional-changelog-angular": "^5.0.2", - "conventional-changelog-atom": "^2.0.1", - "conventional-changelog-codemirror": "^2.0.1", - "conventional-changelog-core": "^3.1.5", - "conventional-changelog-ember": "^2.0.2", - "conventional-changelog-eslint": "^3.0.1", - "conventional-changelog-express": "^2.0.1", - "conventional-changelog-jquery": "^3.0.4", - "conventional-changelog-jshint": "^2.0.1", - "conventional-changelog-preset-loader": "^2.0.2" + "array-uniq": "^1.0.1" } }, - "conventional-changelog-angular": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.2.tgz", - "integrity": "sha512-yx7m7lVrXmt4nKWQgWZqxSALEiAKZhOAcbxdUaU9575mB0CzXVbgrgpfSnSP7OqWDUTYGD0YVJ0MSRdyOPgAwA==", + "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.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arraybuffer.slice": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", + "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=", + "dev": true + }, + "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=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "compare-func": "^1.3.1", - "q": "^1.5.1" + "safer-buffer": "~2.1.0" } }, - "conventional-changelog-atom": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.1.tgz", - "integrity": "sha512-9BniJa4gLwL20Sm7HWSNXd0gd9c5qo49gCi8nylLFpqAHhkFTj7NQfROq3f1VpffRtzfTQp4VKU5nxbe2v+eZQ==", + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, "requires": { - "q": "^1.5.1" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, - "conventional-changelog-cli": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-2.0.11.tgz", - "integrity": "sha512-00Z4EZfpuQxvStA5fjJXdixXCtRd5/AUMUOhYKOomhH3cRFqzF/P0MP8vavT9wnGkR0eba9mrWsMuqeVszPRxQ==", + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", "dev": true, "requires": { - "add-stream": "^1.0.0", - "conventional-changelog": "^3.0.5", - "lodash": "^4.2.1", - "meow": "^4.0.0", - "tempfile": "^1.1.1" + "util": "0.10.3" }, "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 - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.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" - } - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", "dev": true }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" + "inherits": "2.0.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 - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true } } }, - "conventional-changelog-codemirror": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.1.tgz", - "integrity": "sha512-23kT5IZWa+oNoUaDUzVXMYn60MCdOygTA2I+UjnOMiYVhZgmVwNd6ri/yDlmQGXHqbKhNR5NoXdBzSOSGxsgIQ==", - "dev": true, - "requires": { - "q": "^1.5.1" - } + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true }, - "conventional-changelog-core": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-3.1.5.tgz", - "integrity": "sha512-iwqAotS4zk0wA4S84YY1JCUG7X3LxaRjJxuUo6GI4dZuIy243j5nOg/Ora35ExT4DOiw5dQbMMQvw2SUjh6moQ==", + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "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": "0.1.22", + "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", + "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=" + }, + "async-done": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.1.tgz", + "integrity": "sha512-R1BaUeJ4PMoLNJuk+0tLJgjmEqVsdN118+Z8O+alhnQDQgy0kmD5Mqi0DNEmMx2LM0Ed5yekKu+ZXYvIHceicg==", "dev": true, "requires": { - "conventional-changelog-writer": "^4.0.2", - "conventional-commits-parser": "^3.0.1", - "dateformat": "^3.0.0", - "get-pkg-repo": "^1.0.0", - "git-raw-commits": "2.0.0", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^2.0.2", - "lodash": "^4.2.1", - "normalize-package-data": "^2.3.5", - "q": "^1.5.1", - "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0", - "through2": "^2.0.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^1.0.7", + "stream-exhaust": "^1.0.1" }, "dependencies": { - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true - }, - "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" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.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 - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^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=", + "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=", "dev": true } } }, - "conventional-changelog-ember": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.2.tgz", - "integrity": "sha512-qtZbA3XefO/n6DDmkYywDYi6wDKNNc98MMl2F9PKSaheJ25Trpi3336W8fDlBhq0X+EJRuseceAdKLEMmuX2tg==", - "dev": true, - "requires": { - "q": "^1.5.1" - } + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true }, - "conventional-changelog-eslint": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.1.tgz", - "integrity": "sha512-yH3+bYrtvgKxSFChUBQnKNh9/U9kN2JElYBm253VpYs5wXhPHVc9ENcuVGWijh24nnOkei7wEJmnmUzgZ4ok+A==", + "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 + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", "dev": true, "requires": { - "q": "^1.5.1" + "async-done": "^1.2.2" } }, - "conventional-changelog-express": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.1.tgz", - "integrity": "sha512-G6uCuCaQhLxdb4eEfAIHpcfcJ2+ao3hJkbLrw/jSK/eROeNfnxCJasaWdDAfFkxsbpzvQT4W01iSynU3OoPLIw==", - "dev": true, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "attr-accept": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-1.1.3.tgz", + "integrity": "sha512-iT40nudw8zmCweivz6j58g+RT33I4KbaIvRUhjNmDwO2WmsQUxFEZZYZ5w3vXe5x5MX9D7mfvA/XaLOZYFR9EQ==", "requires": { - "q": "^1.5.1" + "core-js": "^2.5.0" } }, - "conventional-changelog-jquery": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.4.tgz", - "integrity": "sha512-IVJGI3MseYoY6eybknnTf9WzeQIKZv7aNTm2KQsiFVJH21bfP2q7XVjfoMibdCg95GmgeFlaygMdeoDDa+ZbEQ==", - "dev": true, + "auto-launch": { + "version": "git+https://github.com/meetfranz/node-auto-launch.git#b90a0470467eb84435e6554ae9db1e2c6db79e61", + "from": "git+https://github.com/meetfranz/node-auto-launch.git", "requires": { - "q": "^1.5.1" + "applescript": "^1.0.0", + "mkdirp": "^0.5.1", + "path-is-absolute": "^1.0.0", + "untildify": "^3.0.2", + "winreg": "1.2.2" } }, - "conventional-changelog-jshint": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.1.tgz", - "integrity": "sha512-kRFJsCOZzPFm2tzRHULWP4tauGMvccOlXYf3zGeuSW4U0mZhk5NsjnRZ7xFWrTFPlCLV+PNmHMuXp5atdoZmEg==", + "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=", + "dev": true + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, + "axobject-query": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", "dev": true, "requires": { - "compare-func": "^1.3.1", - "q": "^1.5.1" + "ast-types-flow": "0.0.7" } }, - "conventional-changelog-preset-loader": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.0.2.tgz", - "integrity": "sha512-pBY+qnUoJPXAXXqVGwQaVmcye05xi6z231QM98wHWamGAmu/ghkBprQAwmF5bdmyobdVxiLhPY3PrCfSeUNzRQ==", - "dev": true - }, - "conventional-changelog-writer": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.2.tgz", - "integrity": "sha512-d8/FQY/fix2xXEBUhOo8u3DCbyEw3UOQgYHxLsPDw+wHUDma/GQGAGsGtoH876WyNs32fViHmTOUrgRKVLvBug==", + "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": { - "compare-func": "^1.3.1", - "conventional-commits-filter": "^2.0.1", - "dateformat": "^3.0.0", - "handlebars": "^4.0.2", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.2.1", - "meow": "^4.0.0", - "semver": "^5.5.0", - "split": "^1.0.0", - "through2": "^2.0.0" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" - } - }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "locate-path": "^2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "dev": true }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "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": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "ansi-regex": "^2.0.0" } }, - "map-obj": { + "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true - }, - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + } + } + }, + "babel-eslint": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.1.tgz", + "integrity": "sha512-z7OT1iNV+TjOwHNLLyJk+HN+YVWX+CLE6fPD2SymJZOZQBs+QIexFjhm4keGTm8MW9xr4EC9Q0PbaLB24V5GoQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "eslint-scope": "3.7.1", + "eslint-visitor-keys": "^1.0.0" + } + }, + "babel-loader": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.5.tgz", + "integrity": "sha512-NTnHnVRd2JnRqPC0vW+iOQWU5pchDbYXsG2E6DMXEpMfUcQKclF9gmf3G3ZMhzG7IG9ji4coL0cm+FxeWxDpnw==", + "dev": true, + "requires": { + "find-cache-dir": "^2.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1", + "util.promisify": "^1.0.0" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.0.0.tgz", + "integrity": "sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^3.0.0" } }, - "path-type": { + "pkg-dir": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, "requires": { - "pify": "^3.0.0" + "find-up": "^3.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 - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", - "dev": true, - "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^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 - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true } } }, - "conventional-commit-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-2.2.0.tgz", - "integrity": "sha1-XblXOdbCEqy+e29lahG5QLqmiUY=", - "dev": true + "babel-plugin-react-intl": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-react-intl/-/babel-plugin-react-intl-3.0.1.tgz", + "integrity": "sha512-FqnEO+Tq7kJVUPKsSG3s5jaHi3pAC4RUR11IrscvjsfkOApLP2DtzNo6dtQ+tX+OzEzJx7cUms8aCw5BFyW5xg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.0.0", + "intl-messageformat-parser": "^1.2.0", + "mkdirp": "^0.5.1" + } }, - "conventional-commits-filter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.1.tgz", - "integrity": "sha512-92OU8pz/977udhBjgPEbg3sbYzIxMDFTlQT97w7KdhR9igNqdJvy8smmedAAgn4tPiqseFloKkrVfbXCVd+E7A==", + "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.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + } + } + }, + "bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", "dev": true, "requires": { - "is-subset": "^0.1.1", - "modify-values": "^1.0.0" + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" } }, - "conventional-commits-parser": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.1.tgz", - "integrity": "sha512-P6U5UOvDeidUJ8ebHVDIoXzI7gMlQ1OF/id6oUvp8cnZvOXMt1n8nYl74Ey9YMn0uVQtxmCtjPQawpsssBWtGg==", + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "JSONStream": "^1.0.4", - "is-text-path": "^1.0.0", - "lodash": "^4.2.1", - "meow": "^4.0.0", - "split2": "^2.0.0", - "through2": "^2.0.0", - "trim-off-newlines": "^1.0.0" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.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" - } - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "pify": "^3.0.0" + "is-descriptor": "^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 - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "kind-of": "^6.0.0" } }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "kind-of": "^6.0.0" } }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true } } }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", "dev": true }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "dev": true }, - "copy-props": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", - "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", + "batch": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.1.tgz", + "integrity": "sha1-NqS6tZTAUP17UHvKDbMMLZKvT/I=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "requires": { - "each-props": "^1.3.0", - "is-plain-object": "^2.0.1" + "tweetnacl": "^0.14.3" } }, - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" + "beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", + "dev": true }, - "core-util-is": { + "before-after-hook": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.3.2.tgz", + "integrity": "sha512-zyPgY5dgbf99c0uGUjhY4w+mxqEGxPKg9RQDl34VvrVh2bM31lFN+mwR1ZHepq/KA3VCPk1gwJZL6IIJqjLy2w==", + "dev": true + }, + "better-assert": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, - "cosmiconfig": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.7.tgz", - "integrity": "sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==", + "binary-extensions": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.0.tgz", + "integrity": "sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw==", + "dev": true + }, + "bindings": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.4.0.tgz", + "integrity": "sha512-7znEVX22Djn+nYjxCWKDne0RRloa9XfYa84yk3s+HkE3LpDYZmhArYr9O9huBoHY3/oXispx5LorIX7Sl2CgSQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "blob": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=", + "dev": true + }, + "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=", "dev": true, "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.9.0", - "parse-json": "^4.0.0" + "inherits": "~2.0.0" + } + }, + "bluebird": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", + "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==" + }, + "bluebird-lst": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.6.tgz", + "integrity": "sha512-CBWFoPuUPpcvMUxfyr8DKdI5d4kjxFl1h39+VbKxP3KJWJHEsLtuT4pPLkjpxCGU6Ask21tvbnftWXdqIxYldQ==", + "requires": { + "bluebird": "^3.5.2" + } + }, + "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.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", + "on-finished": "~2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" }, "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "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": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "ee-first": "1.1.1" } } } }, - "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=", + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "dev": true, "requires": { - "capture-stack-trace": "^1.0.0" + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" } }, - "create-react-class": { - "version": "15.6.3", - "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", - "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, "requires": { - "fbjs": "^0.8.9", - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" + "hoek": "2.x.x" } }, - "cross-env": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", - "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==", + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { - "cross-spawn": "^6.0.5", - "is-windows": "^1.0.0" + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.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 + } } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "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=", + "brcast": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/brcast/-/brcast-3.0.1.tgz", + "integrity": "sha512-eI3yqf9YEqyGl9PCNTR46MGvDylGtaHjalcz6Q3fAPnP/PhpKkkve52vFdfGpwp4VUvK6LUr4TQN+2stCrEwTg==" + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", "dev": true }, - "css-vendor": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-0.3.8.tgz", - "integrity": "sha1-ZCHP0wNM5mT+dnOXL9ARn8KJQfo=", + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, "requires": { - "is-in-browser": "^1.0.2" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, "requires": { - "array-find-index": "^1.0.1" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, - "cz-conventional-changelog": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-2.1.0.tgz", - "integrity": "sha1-L0vHOQ4yROTfKT5ro1Hkx0Cnx2Q=", + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, "requires": { - "conventional-commit-types": "^2.0.0", - "lodash.map": "^4.5.1", - "longest": "^1.0.1", - "right-pad": "^1.0.1", - "word-wrap": "^1.0.3" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "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": { - "es5-ext": "^0.10.9" + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, - "damerau-levenshtein": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz", - "integrity": "sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=", - "dev": true + "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.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } }, - "dargs": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", - "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", + "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": { - "number-is-nan": "^1.0.0" + "pako": "~1.0.5" } }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "browserslist": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.4.1.tgz", + "integrity": "sha512-pEBxEXg7JwaakBXjATYw/D1YZh4QUSCX/Mnd/wnqSRPPSi1U39iDhDoKGoBUcraKdxDlrYqJxSI5nNvD+dWP2A==", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "caniuse-lite": "^1.0.30000929", + "electron-to-chromium": "^1.3.103", + "node-releases": "^1.1.3" } }, - "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 - }, - "dateformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", - "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", + "btoa-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", + "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", "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" - } - }, - "debug-electron": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/debug-electron/-/debug-electron-0.0.4.tgz", - "integrity": "sha1-mwNTSayBB7TkPaIA0jOcT9Wxaec=", + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, "requires": { - "debug": "^2.4.1" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" } }, - "decamelize": { + "buffer-alloc": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", "dev": true, "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" } }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", "dev": true }, - "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=", + "buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", "dev": true }, - "default-compare": { + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "buffer-fill": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "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": "9.6.1", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-9.6.1.tgz", + "integrity": "sha512-8MljKTjeV+A+LLVexuWEV3EpWbiUcsHHrB4Bg2qNo/3dC+vTo6g/27+W3Ij7Ij1UTobSkNBstFieWijXJCco9A==", "dev": true, "requires": { - "kind-of": "^5.0.2" + "7zip-bin": "~4.1.0", + "app-builder-bin": "2.6.1", + "bluebird-lst": "^1.0.6", + "builder-util-runtime": "^8.1.0", + "chalk": "^2.4.1", + "debug": "^4.1.0", + "fs-extra-p": "^7.0.0", + "is-ci": "^2.0.0", + "js-yaml": "^3.12.0", + "source-map-support": "^0.5.9", + "stat-mode": "^0.2.2", + "temp-file": "^3.3.2" }, "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true } } }, - "default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "builder-util-runtime": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.1.1.tgz", + "integrity": "sha512-+ieS4PMB33vVE2S3ZNWBEQJ1zKmAs/agrBdh7XadE1lKLjrH4aXYuOh9OOGdxqIRldhlhNBaF+yKMMEFOdNVig==", "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "bluebird-lst": "^1.0.6", + "debug": "^4.1.1", + "fs-extra-p": "^7.0.0", + "sax": "^1.2.4" }, "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { - "kind-of": "^6.0.0" + "ms": "^2.1.1" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "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 }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "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 }, - "depd": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/depd/-/depd-0.4.4.tgz", - "integrity": "sha1-BwkfrnX5eCjYm0oCotR3jw58BmI=", + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", "dev": true }, - "destroy": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz", - "integrity": "sha1-tDO0ck5x/YVR2YhRdIUcX8N34sk=", + "byline": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", + "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=", "dev": true }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" + "byte-size": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-4.0.4.tgz", + "integrity": "sha512-82RPeneC6nqCdSwCX2hZUz3JPOvN5at/nTEw/CMf05Smu3Hrpo9Psb7LjN+k+XndNArG1EY8L4+BM3aTM4BCvw==", + "dev": true }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", "dev": true }, - "dmg-builder": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-6.5.3.tgz", - "integrity": "sha512-ZNl4GFBg6rdFplnuoK56iftxh/qgM7rXJUxgl21eK4WsjxgQwtQ0REZo+pDSL4OzVeyOO8MMNWSNQcCsBLiDyA==", + "cacache": { + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", + "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", "dev": true, "requires": { - "app-builder-lib": "~20.38.3", - "bluebird-lst": "^1.0.6", - "builder-util": "~9.6.0", - "fs-extra-p": "^7.0.0", - "iconv-lite": "^0.4.24", - "js-yaml": "^3.12.0", - "parse-color": "^1.0.0", - "sanitize-filename": "^1.6.1" + "bluebird": "^3.5.3", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.3", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + } } }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "esutils": "^2.0.2" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, - "dom-helpers": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.3.1.tgz", - "integrity": "sha512-2Sm+JaYn74OiTM2wHvxJOo3roiq/h25Yi69Fqk269cNUwIXsCvATB6CRSFC9Am/20G2b28hGv/+7NiWydIrPvg==" + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true }, - "dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, "requires": { - "domelementtype": "~1.1.1", - "entities": "~1.1.1" + "callsites": "^2.0.0" }, "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, "domelementtype": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", @@ -4137,77 +3863,137 @@ } } }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "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": { - "domelementtype": "1" + "callsites": "^0.2.0" } }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, "requires": { - "dom-serializer": "0", - "domelementtype": "1" + "no-case": "^2.2.0", + "upper-case": "^1.1.1" } }, - "dot-prop": { + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true + }, + "camelcase-keys": { "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==", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { - "is-obj": "^1.0.0" + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.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 + } } }, - "dotenv": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", - "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=", + "caniuse-lite": { + "version": "1.0.30000938", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000938.tgz", + "integrity": "sha512-ekW8NQ3/FvokviDxhdKLZZAx7PptXNwxKgXtnR5y+PR3hckwuP3yJ1Ir+4/c97dsHNqtAyfKUGdw8P4EYzBNgw==", "dev": true }, - "dotenv-expand": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz", - "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=", + "capture-stack-trace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", + "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", "dev": true }, - "du": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/du/-/du-0.1.0.tgz", - "integrity": "sha1-8m40CgnHvFtv1pr2263qYPqMb00=", + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chain-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chain-function/-/chain-function-1.0.1.tgz", + "integrity": "sha512-SxltgMwL9uCko5/ZCLiyG2B7R9fY4pDZUw7hJ4MhirdjBLosoDqkWABi3XMucddHdLiFJMb7PD2MZifZriuMTg==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "requires": { - "async": "~0.1.22" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chokidar": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.1.tgz", + "integrity": "sha512-gfw3p2oQV2wEt+8VuMlNsPjCxDxvvgnm/kz+uATu805mWVF8IJN7uz9DN7iBz+RMJISmiVbCOBFs9qBGMjtPfQ==", "dev": true, "requires": { - "readable-stream": "~1.1.9" + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.0" }, "dependencies": { "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "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.0", "inherits": "~2.0.1", @@ -4218,1364 +4004,1363 @@ "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 + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" } } }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "chownr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==" + }, + "chrome-trace-event": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz", + "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "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 }, - "duplexify": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz", - "integrity": "sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==", + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "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": { - "end-of-stream": "^1.0.0", "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" + "safe-buffer": "^5.0.1" } }, - "each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "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 + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } } }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "cld3-asm": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cld3-asm/-/cld3-asm-1.0.1.tgz", + "integrity": "sha512-wuAqZd44Rk164TLKSYyLFZGSObhf82udOR+M/CnOkeEShq9+Tpxb/9RAE0m/KUVD1DnR5gMkZFeYExt51PCAbg==", "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "emscripten-wasm-loader": "^1.0.0", + "tslib": "^1.9.0", + "utf8": "^3.0.0" } }, - "ecdsa-sig-formatter": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz", - "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=", + "clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "dev": true, "requires": { - "safe-buffer": "^5.0.1" + "source-map": "~0.6.0" } }, - "ee-first": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.0.5.tgz", - "integrity": "sha1-jJshKJjYzZ8alDZlDOe+ICyen/A=", + "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 }, - "ejs": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", - "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==", + "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.3.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", + "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", "dev": true }, - "electron": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/electron/-/electron-4.0.4.tgz", - "integrity": "sha512-zG5VtLrmPfmw1fXY/3BEtRZk7OZ7djQhweZ6rW+R5NeF6s8RTz/AwTGtLoBo4z8wmJ5QTy0Y941FZw4pe5YlpA==", + "cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", "dev": true, "requires": { - "@types/node": "^10.12.18", - "electron-download": "^4.1.0", - "extract-zip": "^1.0.3" + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^2.1.1" } }, - "electron-builder": { - "version": "20.38.4", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-20.38.4.tgz", - "integrity": "sha512-WHOr3Rz2wktxV5TqmRL6woO9/wrIZeRfJPSEXOhgfgLskE5Sp2Aer0zAF7lHNqXuG6JhU+0I9IYFAxa73MTs9w==", + "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": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "app-builder-lib": "20.38.4", - "bluebird-lst": "^1.0.6", - "builder-util": "9.6.1", - "builder-util-runtime": "8.1.0", - "chalk": "^2.4.1", - "dmg-builder": "6.5.3", - "fs-extra-p": "^7.0.0", - "is-ci": "^2.0.0", - "lazy-val": "^1.0.3", - "read-config-file": "3.2.0", - "sanitize-filename": "^1.6.1", - "update-notifier": "^2.5.0", - "yargs": "^12.0.5" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "dev": true + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "cloneable-readable": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", + "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" }, "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.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", - "dev": true - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "safe-buffer": "~5.1.0" } - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + } + } + }, + "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.2", + "mkdirp": "~0.5.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", + "dev": true, + "requires": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.0.tgz", + "integrity": "sha512-CwyopLkuRYO5ei2EpzpIh6LqJMt6Mt+jZhO5VI5f/wJLZriXQE32/SSqzmrh+QB+AZT81Cj8yv+7zwToW8ahZg==", + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "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=" + }, + "color-string": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", + "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true + }, + "colors": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", + "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==", + "dev": true + }, + "columnify": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", + "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", + "dev": true, + "requires": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "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": { - "cross-spawn": "^6.0.0", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "ansi-regex": "^2.0.0" } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + } + } + }, + "combined-stream": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "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": { + "array-ify": "^1.0.0", + "dot-prop": "^3.0.0" + } + }, + "compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", + "dev": true + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "compressible": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.15.tgz", + "integrity": "sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==", + "dev": true, + "requires": { + "mime-db": ">= 1.36.0 < 2" + } + }, + "compression": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", + "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.14", + "debug": "2.6.9", + "on-headers": "~1.0.1", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "dev": true, "requires": { - "locate-path": "^3.0.0" + "mime-types": "~2.1.18", + "negotiator": "0.6.1" } }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "ci-info": "^2.0.0" + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "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=", + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", "dev": true - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "os-locale": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz", - "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==", - "dev": true, - "requires": { - "execa": "^0.10.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "p-limit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "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=", - "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": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.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 - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, - "electron-dl": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/electron-dl/-/electron-dl-1.12.0.tgz", - "integrity": "sha512-UMc2CL45Ybpvu66LDPYzwmDRmYK4Ivz+wdnTM0eXcNMztvQwhixAk2UPme1c7McqG8bAlKEkQpZn3epmQy4EWg==", - "requires": { - "ext-name": "^5.0.0", - "pupa": "^1.0.0", - "unused-filename": "^1.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=" }, - "electron-download": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-4.1.1.tgz", - "integrity": "sha512-FjEWG9Jb/ppK/2zToP+U5dds114fM1ZOJqMAR4aXXL5CvyPE9fiqBK/9YcwC9poIFQTEJk/EM/zyRwziziRZrg==", + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "debug": "^3.0.0", - "env-paths": "^1.0.0", - "fs-extra": "^4.0.1", - "minimist": "^1.2.0", - "nugget": "^2.0.1", - "path-exists": "^3.0.0", - "rc": "^1.2.1", - "semver": "^5.4.1", - "sumchecker": "^2.0.2" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "ms": "^2.1.1" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "safe-buffer": "~5.1.0" } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "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=", - "dev": true } } }, - "electron-fetch": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.3.0.tgz", - "integrity": "sha512-WzHnWZqKdiCKHqqHu+GphezoWRSUVH6BQ/f13vu16VwYKJRZNt2dUrx40eZJcyZcDGn6RJDTAHS6jVoHoglgNw==", - "requires": { - "encoding": "^0.1.12" - } - }, - "electron-hunspell": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/electron-hunspell/-/electron-hunspell-0.1.1.tgz", - "integrity": "sha512-B3nOQqHexIX+8bz72FZkNk+iFBrdqS9DpV2SaH+t7T9SLbONBVBRLJ2Jj2ytXFUzvw81q7vz2dfxPCddh/E3ww==", - "requires": { - "hunspell-asm": "1.0.2", - "lodash": "^4.17.11", - "tslib": "1.9.3", - "unixify": "1.0.0" - } - }, - "electron-is-dev": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.0.1.tgz", - "integrity": "sha512-iwM3EotA9HTXqMGpQRkR/kT8OZqBbdfHTnlwcxsjSLYqY8svvsq0MuujsWCn3/vtgRmDv/PC/gKUUpoZvi5C1w==" - }, - "electron-osx-sign": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.11.tgz", - "integrity": "sha512-VVd40nrnVqymvFrY9ZkOYgHJOvexHHYTR3di/SN+mjJ0OWhR1I8BRVj3U+Yamw6hnkZZNKZp52rqL5EFAAPFkQ==", - "dev": true, - "requires": { - "bluebird": "^3.5.0", - "compare-version": "^0.1.2", - "debug": "^2.6.8", - "isbinaryfile": "^3.0.2", - "minimist": "^1.2.0", - "plist": "^3.0.1" - } - }, - "electron-publish": { - "version": "20.38.3", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-20.38.3.tgz", - "integrity": "sha512-Qomq253NT5DfjUZgFSx6p+gheU5YhM6zZ67fTtBZvwyk0v8HwxNXfa8fZT7h+1c3BwEmjusTbmjZRNW/XZBXFA==", + "concurrently": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-4.1.0.tgz", + "integrity": "sha512-pwzXCE7qtOB346LyO9eFWpkFJVO3JQZ/qU/feGeaAHiX1M3Rw3zgXKc5cZ8vSH5DGygkjzLFDzA/pwoQDkRNGg==", "dev": true, "requires": { - "bluebird-lst": "^1.0.6", - "builder-util": "~9.6.0", - "builder-util-runtime": "^8.1.0", "chalk": "^2.4.1", - "fs-extra-p": "^7.0.0", - "lazy-val": "^1.0.3", - "mime": "^2.4.0" + "date-fns": "^1.23.0", + "lodash": "^4.17.10", + "read-pkg": "^4.0.1", + "rxjs": "^6.3.3", + "spawn-command": "^0.0.2-1", + "supports-color": "^4.5.0", + "tree-kill": "^1.1.0", + "yargs": "^12.0.1" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "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": "^3.0.0" + "has-flag": "^2.0.0" } } } }, - "electron-react-titlebar": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/electron-react-titlebar/-/electron-react-titlebar-0.8.1.tgz", - "integrity": "sha512-AJb+eWeLUP7S0kNk+JDqT9rEYbN2tYsP449ekJcO9CJs1OAU2KLGdMJ0pwJNrOu6BFAxEXtFAz+MfQGcSi/1hA==", + "config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "dev": true, "requires": { - "lodash": "^4.17.4", - "react-virtualized": "^9.7.6" + "ini": "^1.3.4", + "proto-list": "~1.2.1" } }, - "electron-rebuild": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.2.tgz", - "integrity": "sha512-EeR4dgb6NN7ybxduUWMeeLhU/EuF+FzwFZJfMJXD0bx96K+ttAieCXOn9lTO5nA9Qn3hiS7pEpk8pZ9StpGgSg==", + "configstore": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { - "colors": "^1.2.0", - "debug": "^2.6.3", - "detect-libc": "^1.0.3", - "fs-extra": "^3.0.1", - "node-abi": "^2.0.0", - "node-gyp": "^3.6.0", - "ora": "^1.2.0", - "rimraf": "^2.6.1", - "spawn-rx": "^2.0.10", - "yargs": "^7.0.2" + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" }, "dependencies": { - "fs-extra": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", - "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "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": { - "graceful-fs": "^4.1.2", - "jsonfile": "^3.0.0", - "universalify": "^0.1.0" + "is-obj": "^1.0.0" } - }, - "jsonfile": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", - "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + } + } + }, + "connect": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.1.1.tgz", + "integrity": "sha1-pz4kScPvwt/RZhhll3oJGE0SAZY=", + "dev": true, + "requires": { + "debug": "1.0.4", + "finalhandler": "0.1.0", + "parseurl": "~1.3.0", + "utils-merge": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz", + "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "ms": "0.6.2" + }, + "dependencies": { + "ms": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz", + "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=", + "dev": true + } } + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" } } }, - "electron-to-chromium": { - "version": "1.3.80", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.80.tgz", - "integrity": "sha512-WClidEWEUNx7OfwXehB0qaxCuetjbKjev2SmXWgybWPLKAThBiMTF/2Pd8GSUDtoGOavxVzdkKwfFAPRSWlkLw==", + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", "dev": true }, - "electron-updater": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.0.6.tgz", - "integrity": "sha512-JPGLME6fxJcHG8hX7HWFl6Aew6iVm0DkcrENreKa5SUJCHG+uUaAhxDGDt+YGcNkyx1uJ6eBGMvFxDTLUv67pg==", - "requires": { - "bluebird-lst": "^1.0.6", - "builder-util-runtime": "~8.1.0", - "fs-extra-p": "^7.0.0", - "js-yaml": "^3.12.0", - "lazy-val": "^1.0.3", - "lodash.isequal": "^4.5.0", - "pako": "^1.0.7", - "semver": "^5.6.0", - "source-map-support": "^0.5.9" - } + "connect-inject": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/connect-inject/-/connect-inject-0.3.2.tgz", + "integrity": "sha1-2WtRaltrskwhkeYitegs3WKES6M=", + "dev": true }, - "electron-window-state": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/electron-window-state/-/electron-window-state-5.0.3.tgz", - "integrity": "sha512-1mNTwCfkolXl3kMf50yW3vE2lZj0y92P/HYWFBrb+v2S/pCka5mdwN3cagKm458A7NjndSwijynXgcLWRodsVg==", + "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": { - "jsonfile": "^4.0.0", - "mkdirp": "^0.5.1" + "date-now": "^0.1.4" } }, - "email-addresses": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.0.2.tgz", - "integrity": "sha512-IMn9dnwLMsgZjdUHswB/UZ0S8LQ/u+2/qjnHJ9tCtp3QHZsIYwJCiJOo2FT0i3CwwK/dtSODYtxuvzV4D9MY5g==" + "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=", + "dev": true }, - "emoji-regex": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz", - "integrity": "sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ==", + "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 }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", "dev": true }, - "emscripten-wasm-loader": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/emscripten-wasm-loader/-/emscripten-wasm-loader-1.1.0.tgz", - "integrity": "sha512-kXR3lT/900WjvhpdhaNSuD6WJKpd4ZlMh/ZaRM0rp82uKoGBq7Ud/u0GVIxQD15cqsShCKEHOpd3bZypvft9Lw==", + "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 + }, + "conventional-changelog": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.0.5.tgz", + "integrity": "sha512-JYSVGJbnOl9S2gkZwmoJ+wX2gxNVHodUmEiv+eIykeJBNX0zN5vJ3oa2xCvk2HiF7TZ+Les0eq/aX49dcymONA==", + "dev": true, "requires": { - "getroot": "^1.0.0", - "tslib": "^1.8.0" + "conventional-changelog-angular": "^5.0.2", + "conventional-changelog-atom": "^2.0.1", + "conventional-changelog-codemirror": "^2.0.1", + "conventional-changelog-core": "^3.1.5", + "conventional-changelog-ember": "^2.0.2", + "conventional-changelog-eslint": "^3.0.1", + "conventional-changelog-express": "^2.0.1", + "conventional-changelog-jquery": "^3.0.4", + "conventional-changelog-jshint": "^2.0.1", + "conventional-changelog-preset-loader": "^2.0.2" } }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "conventional-changelog-angular": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.2.tgz", + "integrity": "sha512-yx7m7lVrXmt4nKWQgWZqxSALEiAKZhOAcbxdUaU9575mB0CzXVbgrgpfSnSP7OqWDUTYGD0YVJ0MSRdyOPgAwA==", + "dev": true, "requires": { - "iconv-lite": "~0.4.13" + "compare-func": "^1.3.1", + "q": "^1.5.1" } }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "conventional-changelog-atom": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.1.tgz", + "integrity": "sha512-9BniJa4gLwL20Sm7HWSNXd0gd9c5qo49gCi8nylLFpqAHhkFTj7NQfROq3f1VpffRtzfTQp4VKU5nxbe2v+eZQ==", "dev": true, "requires": { - "once": "^1.4.0" + "q": "^1.5.1" } }, - "engine.io": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.5.tgz", - "integrity": "sha512-j1DWIcktw4hRwrv6nWx++5nFH2X64x16MAG2P0Lmi5Dvdfi3I+Jhc7JKJIdAmDJa+5aZ/imHV7dWRPy2Cqjh3A==", + "conventional-changelog-cli": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-2.0.11.tgz", + "integrity": "sha512-00Z4EZfpuQxvStA5fjJXdixXCtRd5/AUMUOhYKOomhH3cRFqzF/P0MP8vavT9wnGkR0eba9mrWsMuqeVszPRxQ==", "dev": true, "requires": { - "accepts": "1.3.3", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "2.3.3", - "engine.io-parser": "1.3.2", - "ws": "~1.1.5" - }, - "dependencies": { - "accepts": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", - "dev": true, - "requires": { - "mime-types": "~2.1.11", - "negotiator": "0.6.1" - } - }, - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true, - "requires": { - "ms": "0.7.2" - } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", - "dev": true - } + "add-stream": "^1.0.0", + "conventional-changelog": "^3.0.5", + "lodash": "^4.2.1", + "meow": "^4.0.0", + "tempfile": "^1.1.1" } }, - "engine.io-client": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.5.tgz", - "integrity": "sha512-AYTgHyeVUPitsseqjoedjhYJapNVoSPShbZ+tEUX9/73jgZ/Z3sUlJf9oYgdEBBdVhupUpUqSxH0kBCXlQnmZg==", + "conventional-changelog-codemirror": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.1.tgz", + "integrity": "sha512-23kT5IZWa+oNoUaDUzVXMYn60MCdOygTA2I+UjnOMiYVhZgmVwNd6ri/yDlmQGXHqbKhNR5NoXdBzSOSGxsgIQ==", "dev": true, "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "2.3.3", - "engine.io-parser": "1.3.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parsejson": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "~1.1.5", - "xmlhttprequest-ssl": "1.5.3", - "yeast": "0.1.2" + "q": "^1.5.1" + } + }, + "conventional-changelog-core": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-3.1.5.tgz", + "integrity": "sha512-iwqAotS4zk0wA4S84YY1JCUG7X3LxaRjJxuUo6GI4dZuIy243j5nOg/Ora35ExT4DOiw5dQbMMQvw2SUjh6moQ==", + "dev": true, + "requires": { + "conventional-changelog-writer": "^4.0.2", + "conventional-commits-parser": "^3.0.1", + "dateformat": "^3.0.0", + "get-pkg-repo": "^1.0.0", + "git-raw-commits": "2.0.0", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^2.0.2", + "lodash": "^4.2.1", + "normalize-package-data": "^2.3.5", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "through2": "^2.0.0" }, "dependencies": { - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "ms": "0.7.2" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true } } }, - "engine.io-parser": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", - "integrity": "sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=", + "conventional-changelog-ember": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.2.tgz", + "integrity": "sha512-qtZbA3XefO/n6DDmkYywDYi6wDKNNc98MMl2F9PKSaheJ25Trpi3336W8fDlBhq0X+EJRuseceAdKLEMmuX2tg==", "dev": true, "requires": { - "after": "0.8.2", - "arraybuffer.slice": "0.0.6", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.4", - "has-binary": "0.1.7", - "wtf-8": "1.0.0" + "q": "^1.5.1" } }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - }, - "env-paths": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", - "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "conventional-changelog-eslint": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.1.tgz", + "integrity": "sha512-yH3+bYrtvgKxSFChUBQnKNh9/U9kN2JElYBm253VpYs5wXhPHVc9ENcuVGWijh24nnOkei7wEJmnmUzgZ4ok+A==", "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "q": "^1.5.1" } }, - "es-abstract": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", - "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "conventional-changelog-express": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.1.tgz", + "integrity": "sha512-G6uCuCaQhLxdb4eEfAIHpcfcJ2+ao3hJkbLrw/jSK/eROeNfnxCJasaWdDAfFkxsbpzvQT4W01iSynU3OoPLIw==", "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" + "q": "^1.5.1" } }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "conventional-changelog-jquery": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.4.tgz", + "integrity": "sha512-IVJGI3MseYoY6eybknnTf9WzeQIKZv7aNTm2KQsiFVJH21bfP2q7XVjfoMibdCg95GmgeFlaygMdeoDDa+ZbEQ==", "dev": true, "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "q": "^1.5.1" } }, - "es5-ext": { - "version": "0.10.46", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz", - "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==", + "conventional-changelog-jshint": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.1.tgz", + "integrity": "sha512-kRFJsCOZzPFm2tzRHULWP4tauGMvccOlXYf3zGeuSW4U0mZhk5NsjnRZ7xFWrTFPlCLV+PNmHMuXp5atdoZmEg==", + "dev": true, "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "1" + "compare-func": "^1.3.1", + "q": "^1.5.1" } }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "conventional-changelog-preset-loader": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.0.2.tgz", + "integrity": "sha512-pBY+qnUoJPXAXXqVGwQaVmcye05xi6z231QM98wHWamGAmu/ghkBprQAwmF5bdmyobdVxiLhPY3PrCfSeUNzRQ==", + "dev": true + }, + "conventional-changelog-writer": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.2.tgz", + "integrity": "sha512-d8/FQY/fix2xXEBUhOo8u3DCbyEw3UOQgYHxLsPDw+wHUDma/GQGAGsGtoH876WyNs32fViHmTOUrgRKVLvBug==", + "dev": true, "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" + "compare-func": "^1.3.1", + "conventional-commits-filter": "^2.0.1", + "dateformat": "^3.0.0", + "handlebars": "^4.0.2", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.2.1", + "meow": "^4.0.0", + "semver": "^5.5.0", + "split": "^1.0.0", + "through2": "^2.0.0" } }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "conventional-commit-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-2.2.0.tgz", + "integrity": "sha1-XblXOdbCEqy+e29lahG5QLqmiUY=", + "dev": true + }, + "conventional-commits-filter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.1.tgz", + "integrity": "sha512-92OU8pz/977udhBjgPEbg3sbYzIxMDFTlQT97w7KdhR9igNqdJvy8smmedAAgn4tPiqseFloKkrVfbXCVd+E7A==", + "dev": true, "requires": { - "d": "1", - "es5-ext": "~0.10.14" + "is-subset": "^0.1.1", + "modify-values": "^1.0.0" } }, - "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=", + "conventional-commits-parser": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.1.tgz", + "integrity": "sha512-P6U5UOvDeidUJ8ebHVDIoXzI7gMlQ1OF/id6oUvp8cnZvOXMt1n8nYl74Ey9YMn0uVQtxmCtjPQawpsssBWtGg==", "dev": true, "requires": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" + "JSONStream": "^1.0.4", + "is-text-path": "^1.0.0", + "lodash": "^4.2.1", + "meow": "^4.0.0", + "split2": "^2.0.0", + "through2": "^2.0.0", + "trim-off-newlines": "^1.0.0" } }, - "escape-html": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz", - "integrity": "sha1-GBoobq05ejmpKFfPsdQwUuNWv/A=", - "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=" + "conventional-recommended-bump": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-4.0.4.tgz", + "integrity": "sha512-9mY5Yoblq+ZMqJpBzgS+RpSq+SUfP2miOR3H/NR9drGf08WCrY9B6HAGJZEm6+ThsVP917VHAahSOjM6k1vhPg==", + "dev": true, + "requires": { + "concat-stream": "^1.6.0", + "conventional-changelog-preset-loader": "^2.0.2", + "conventional-commits-filter": "^2.0.1", + "conventional-commits-parser": "^3.0.1", + "git-raw-commits": "2.0.0", + "git-semver-tags": "^2.0.2", + "meow": "^4.0.0", + "q": "^1.5.1" + } }, - "eslint": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.10.0.tgz", - "integrity": "sha512-HpqzC+BHULKlnPwWae9MaVZ5AXJKpkxCVXQHrFaRw3hbDj26V/9ArYM4Rr/SQ8pi6qUPLXSSXC4RBJlyq2Z2OQ==", + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.5.3", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^2.1.0", - "eslint-scope": "^4.0.0", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^5.0.0", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", - "ignore": "^4.0.6", - "imurmurhash": "^0.1.4", - "inquirer": "^6.1.0", - "js-yaml": "^3.12.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.5", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^5.0.2", - "text-table": "^0.2.0" + "safe-buffer": "~5.1.1" }, "dependencies": { - "ajv": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.1.tgz", - "integrity": "sha512-ZoJjft5B+EJBjUyu9C9Hc0OZyPZSSlOF+plzouTrg6UlA8f+e/n8NIgBFG/9tppJtpPWfthHakK7juJdNDODww==", - "dev": true, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=" }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "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=", "requires": { - "color-convert": "^1.9.0" + "graceful-fs": "^4.1.2", + "strip-bom": "^3.0.0" } }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=" }, - "debug": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", - "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", - "dev": true, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { - "ms": "^2.1.1" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" } }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "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, + "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": { - "ansi-regex": "^3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^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=" } } }, - "eslint-config-airbnb": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-17.1.0.tgz", - "integrity": "sha512-R9jw28hFfEQnpPau01NO5K/JWMGLi6aymiF6RsnMURjTk+MqZKllCqGK/0tOvHkPi/NWSSOU2Ced/GX++YxLnw==", - "dev": true, - "requires": { - "eslint-config-airbnb-base": "^13.1.0", - "object.assign": "^4.1.0", - "object.entries": "^1.0.4" - } + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true }, - "eslint-config-airbnb-base": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz", - "integrity": "sha512-XWwQtf3U3zIoKO1BbHh6aUhJZQweOwSt4c2JrPDg9FP3Ltv3+YfEv7jIDB8275tVnO/qOHbfuYg3kzw6Je7uWw==", + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "dev": true, "requires": { - "eslint-restricted-globals": "^0.1.1", - "object.assign": "^4.1.0", - "object.entries": "^1.0.4" + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" } }, - "eslint-import-resolver-node": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", - "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-props": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", + "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", "dev": true, "requires": { - "debug": "^2.6.9", - "resolve": "^1.5.0" + "each-props": "^1.3.0", + "is-plain-object": "^2.0.1" } }, - "eslint-loader": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-1.9.0.tgz", - "integrity": "sha512-40aN976qSNPyb9ejTqjEthZITpls1SVKtwguahmH1dzGCwQU/vySE+xX33VZmD8csU0ahVNCtFlsPgKqRBiqgg==", + "core-js": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.4.tgz", + "integrity": "sha512-05qQ5hXShcqGkPZpXEFLIpxayZscVD2kuMBZewxiIPPEagukO4mqgPA9CWhUvFBJfy3ODdK2p9xyHh7FTU9/7A==" + }, + "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=" + }, + "cosmiconfig": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.7.tgz", + "integrity": "sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==", "dev": true, "requires": { - "loader-fs-cache": "^1.0.0", - "loader-utils": "^1.0.2", - "object-assign": "^4.0.1", - "object-hash": "^1.1.4", - "rimraf": "^2.6.1" + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0" } }, - "eslint-module-utils": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", - "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", "dev": true, "requires": { - "debug": "^2.6.8", - "pkg-dir": "^1.0.0" + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" } }, - "eslint-plugin-import": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz", - "integrity": "sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==", + "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": { - "contains-path": "^0.1.0", - "debug": "^2.6.8", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.1", - "eslint-module-utils": "^2.2.0", - "has": "^1.0.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.3", - "read-pkg-up": "^2.0.0", - "resolve": "^1.6.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" - } - }, - "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" - } - }, - "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.2", - "parse-json": "^2.2.0", - "pify": "^2.0.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.0.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.3.2", - "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.0.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 - } + "capture-stack-trace": "^1.0.0" } }, - "eslint-plugin-jsx-a11y": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz", - "integrity": "sha512-7gSSmwb3A+fQwtw0arguwMdOdzmKUgnUcbSNlo+GjKLAQFuC2EZxWqG9XHRI8VscBJD5a8raz3RuxQNFW+XJbw==", + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, "requires": { - "aria-query": "^3.0.0", - "array-includes": "^3.0.3", - "ast-types-flow": "^0.0.7", - "axobject-query": "^2.0.1", - "damerau-levenshtein": "^1.0.4", - "emoji-regex": "^6.5.1", - "has": "^1.0.3", - "jsx-ast-utils": "^2.0.1" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, - "eslint-plugin-react": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz", - "integrity": "sha512-cVVyMadRyW7qsIUh3FHp3u6QHNhOgVrLQYdQEB1bPWBsgbNCHdFAeNMquBMCcZJu59eNthX053L70l7gRt4SCw==", + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, "requires": { - "array-includes": "^3.0.3", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.0.1", - "prop-types": "^15.6.2" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, - "eslint-restricted-globals": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz", - "integrity": "sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=", - "dev": true - }, - "eslint-scope": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", - "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", - "dev": true, + "create-react-class": { + "version": "15.6.3", + "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", + "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "fbjs": "^0.8.9", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, - "eslint-utils": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", - "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", - "dev": true - }, - "eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", - "dev": true - }, - "espree": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.0.tgz", - "integrity": "sha512-1MpUfwsdS9MMoN7ZXqAr9e9UKdVHDcvrJpyx7mm1WuQlx/ygErEQBzgi5Nh5qBHIoYweprhtMkTCb9GhcAIcsA==", + "cross-env": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", + "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==", "dev": true, "requires": { - "acorn": "^6.0.2", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" + "cross-spawn": "^6.0.5", + "is-windows": "^1.0.0" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "estraverse": "^4.0.0" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "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": { - "estraverse": "^4.1.0" + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" } }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "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 }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "dev": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" }, "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=", + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "dom-serializer": "0", + "domelementtype": "1" } } } }, - "exenv": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", - "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" + "css-vendor": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-0.3.8.tgz", + "integrity": "sha1-ZCHP0wNM5mT+dnOXL9ARn8KJQfo=", + "requires": { + "is-in-browser": "^1.0.2" + } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "css-what": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.2.tgz", + "integrity": "sha512-wan8dMWQ0GUeF7DGEPVjhHemVW/vy6xUYmFzRY8RYqgA0JtXC9rJmbScBjqSu6dg9q0lwPQy6ZAmJVr3PPTvqQ==", + "dev": true + }, + "csstype": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.2.tgz", + "integrity": "sha512-Rl7PvTae0pflc1YtxtKbiSqq20Ts6vpIYOD5WBafl4y123DyHUeLrRdQP66sQW8/6gmX8jrYJLXwNeMqYVJcow==", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "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.0" - } - } + "array-find-index": "^1.0.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=", + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "dev": true + }, + "cz-conventional-changelog": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-2.1.0.tgz", + "integrity": "sha1-L0vHOQ4yROTfKT5ro1Hkx0Cnx2Q=", + "dev": true, "requires": { - "fill-range": "^2.1.0" - }, - "dependencies": { - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } - }, - "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.0.2" - } - }, - "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" - } - }, - "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.5" - } - } + "conventional-commit-types": "^2.0.0", + "lodash.map": "^4.5.1", + "longest": "^1.0.1", + "right-pad": "^1.0.1", + "word-wrap": "^1.0.3" } }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, "requires": { - "homedir-polyfill": "^1.0.1" + "es5-ext": "^0.10.9" } }, - "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==", + "damerau-levenshtein": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz", + "integrity": "sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=", + "dev": true + }, + "dargs": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", + "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", + "dev": true, "requires": { - "mime-db": "^1.28.0" + "number-is-nan": "^1.0.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==", + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, "requires": { - "ext-list": "^2.0.0", - "sort-keys-length": "^1.0.0" + "assert-plus": "^1.0.0" } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "date-fns": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", + "dev": true }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "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": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "ms": "2.0.0" }, "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, - "external-editor": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", - "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } + "debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "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.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + } + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "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=", + "dev": true + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "deepmerge": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.1.0.tgz", + "integrity": "sha512-/TnecbwXEdycfbsM2++O3eGiatEFHjjNciHEwJclM+T5Kd94qD1AP+2elP/Mq0L5b9VZJao5znR01Mz6eX8Seg==", + "dev": true + }, + "default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "dev": true, + "requires": { + "kind-of": "^5.0.2" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "default-gateway": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-2.7.2.tgz", + "integrity": "sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==", + "dev": true, + "requires": { + "execa": "^0.10.0", + "ip-regex": "^2.1.0" + }, + "dependencies": { + "execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "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 + } + } + }, + "default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", + "dev": true + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -5584,6 +5369,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -5592,6 +5378,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -5600,472 +5387,379 @@ } } }, - "extract-zip": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", - "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", "dev": true, "requires": { - "concat-stream": "1.6.2", - "debug": "2.6.9", - "mkdirp": "0.5.1", - "yauzl": "2.4.1" + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" + }, + "dependencies": { + "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.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + } } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, - "fancy-log": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", - "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/depd/-/depd-0.4.4.tgz", + "integrity": "sha1-BwkfrnX5eCjYm0oCotR3jw58BmI=", + "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": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "time-stamp": "^1.0.0" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "destroy": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz", + "integrity": "sha1-tDO0ck5x/YVR2YhRdIUcX8N34sk=", "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=", + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", "dev": true }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "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 }, - "fbjs": { - "version": "0.8.17", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", - "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "dev": true + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "dev": true, "requires": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - }, - "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" - } + "asap": "^2.0.0", + "wrappy": "1" } }, - "fd-slicer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, "requires": { - "pend": "~1.2.0" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, - "figures": { + "dir-glob": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", "dev": true, "requires": { - "escape-string-regexp": "^1.0.5" + "arrify": "^1.0.1", + "path-type": "^3.0.0" } }, - "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=", + "dmg-builder": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-6.5.3.tgz", + "integrity": "sha512-ZNl4GFBg6rdFplnuoK56iftxh/qgM7rXJUxgl21eK4WsjxgQwtQ0REZo+pDSL4OzVeyOO8MMNWSNQcCsBLiDyA==", "dev": true, "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "app-builder-lib": "~20.38.3", + "bluebird-lst": "^1.0.6", + "builder-util": "~9.6.0", + "fs-extra-p": "^7.0.0", + "iconv-lite": "^0.4.24", + "js-yaml": "^3.12.0", + "parse-color": "^1.0.0", + "sanitize-filename": "^1.6.1" } }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" + "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 }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "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.0" - } - } + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" } }, - "finalhandler": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.1.0.tgz", - "integrity": "sha1-2gW7xPX0owyEzh2R88FUAHxOnao=", + "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": { - "debug": "1.0.4", - "escape-html": "1.0.1" - }, - "dependencies": { - "debug": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz", - "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=", - "dev": true, - "requires": { - "ms": "0.6.2" - } - }, - "ms": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz", - "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=", - "dev": true - } + "buffer-indexof": "^1.0.0" } }, - "find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "esutils": "^2.0.2" } }, - "find-index": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", - "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", - "dev": true - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "utila": "~0.4" } }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dom-helpers": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "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.0" - } - } + "@babel/runtime": "^7.1.2" } }, - "fined": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", - "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" + "domelementtype": "~1.1.1", + "entities": "~1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" + } } }, - "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=", + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", "dev": true }, - "flagged-respawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz", - "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c=" - }, - "flat-cache": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", - "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", - "dev": true, - "requires": { - "circular-json": "^0.3.1", - "graceful-fs": "^4.1.2", - "rimraf": "~2.6.2", - "write": "^0.2.1" - } + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" }, - "flush-write-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", - "dev": true, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.4" + "domelementtype": "1" } }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "requires": { - "for-in": "^1.0.1" + "dom-serializer": "0", + "domelementtype": "1" } }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dot-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", + "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", "dev": true, "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" + "is-obj": "^1.0.0" } }, - "fresh": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.2.tgz", - "integrity": "sha1-lzHc9WeMf660T7kDxPct9VGH+nc=", + "dotenv": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", + "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=", "dev": true }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-extra-p": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-7.0.0.tgz", - "integrity": "sha512-5tg5jBOd0xIXjwj4PDnafOXL5TyPVzjxLby4DPKev53wurEXp7IsojBaD4Lj5M5w7jxw0pbkEU0fFEPmcKoMnA==", - "requires": { - "bluebird-lst": "^1.0.6", - "fs-extra": "^7.0.0" - } - }, - "fs-minipass": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", - "requires": { - "minipass": "^2.2.1" - } + "dotenv-expand": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz", + "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=", + "dev": true }, - "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", - "dev": true, + "du": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/du/-/du-0.1.0.tgz", + "integrity": "sha1-8m40CgnHvFtv1pr2263qYPqMb00=", "requires": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" + "async": "~0.1.22" } }, - "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.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", "dev": true }, - "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", "dev": true, - "optional": true, "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "readable-stream": "~1.1.9" }, "dependencies": { "abbrev": { "version": "1.1.1", "resolved": false, - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true, - "optional": true + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "ansi-regex": { "version": "2.1.1", "resolved": false, - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "aproba": { "version": "1.2.0", "resolved": false, - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true, - "optional": true + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "are-we-there-yet": { "version": "1.1.4", "resolved": false, "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "dev": true, - "optional": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "delegates": "^1.0.0" } }, "balanced-match": { "version": "1.0.0", "resolved": false, - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true, - "optional": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "brace-expansion": { "version": "1.1.11", "resolved": false, "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "chownr": { - "version": "1.0.1", - "resolved": false, - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", - "dev": true, - "optional": true - }, "code-point-at": { "version": "1.1.0", "resolved": false, - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "optional": true + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "concat-map": { "version": "0.0.1", "resolved": false, - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true, - "optional": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "console-control-strings": { "version": "1.1.0", "resolved": false, - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true, - "optional": true + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "debug": { - "version": "2.6.9", - "resolved": false, - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==" }, "deep-extend": { "version": "0.5.1", "resolved": false, - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", - "dev": true, - "optional": true + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==" }, "delegates": { "version": "1.0.0", "resolved": false, - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "optional": true + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, "detect-libc": { "version": "1.0.3", "resolved": false, - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true, - "optional": true + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + }, + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } }, "fs-minipass": { "version": "1.2.5", "resolved": false, "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", - "dev": true, - "optional": true, "requires": { "minipass": "^2.2.1" } @@ -6073,16 +5767,12 @@ "fs.realpath": { "version": "1.0.0", "resolved": false, - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true, - "optional": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "gauge": { "version": "2.7.4", "resolved": false, "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "optional": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -6098,8 +5788,6 @@ "version": "7.1.2", "resolved": false, "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "optional": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6112,16 +5800,12 @@ "has-unicode": { "version": "2.0.1", "resolved": false, - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true, - "optional": true + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, "iconv-lite": { "version": "0.4.21", "resolved": false, "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", - "dev": true, - "optional": true, "requires": { "safer-buffer": "^2.1.0" } @@ -6130,8 +5814,6 @@ "version": "3.0.1", "resolved": false, "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", - "dev": true, - "optional": true, "requires": { "minimatch": "^3.0.4" } @@ -6140,67 +5822,39 @@ "version": "1.0.6", "resolved": false, "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "optional": true, "requires": { "once": "^1.3.0", "wrappy": "1" } }, - "inherits": { - "version": "2.0.3", - "resolved": false, - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true, - "optional": true - }, "ini": { "version": "1.3.5", "resolved": false, - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true, - "optional": true + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": false, "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } }, "isarray": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": false, - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true }, "minimist": { "version": "0.0.8", "resolved": false, - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true, - "optional": true + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "minipass": { "version": "2.2.4", "resolved": false, "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", - "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -6210,37 +5864,20 @@ "version": "1.1.0", "resolved": false, "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", - "dev": true, - "optional": true, "requires": { "minipass": "^2.2.1" } }, - "mkdirp": { - "version": "0.5.1", - "resolved": false, - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, "ms": { "version": "2.0.0", "resolved": false, - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "needle": { "version": "2.2.0", "resolved": false, "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", - "dev": true, - "optional": true, "requires": { - "debug": "^2.1.2", "iconv-lite": "^0.4.4", "sax": "^1.2.4" } @@ -6249,8 +5886,6 @@ "version": "0.10.0", "resolved": false, "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", - "dev": true, - "optional": true, "requires": { "detect-libc": "^1.0.2", "mkdirp": "^0.5.1", @@ -6268,8 +5903,6 @@ "version": "4.0.1", "resolved": false, "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "dev": true, - "optional": true, "requires": { "abbrev": "1", "osenv": "^0.1.4" @@ -6278,16 +5911,12 @@ "npm-bundled": { "version": "1.0.3", "resolved": false, - "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", - "dev": true, - "optional": true + "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==" }, "npm-packlist": { "version": "1.1.10", "resolved": false, "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", - "dev": true, - "optional": true, "requires": { "ignore-walk": "^3.0.1", "npm-bundled": "^1.0.1" @@ -6297,8 +5926,6 @@ "version": "4.1.2", "resolved": false, "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "optional": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -6309,23 +5936,17 @@ "number-is-nan": { "version": "1.0.1", "resolved": false, - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "optional": true + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "object-assign": { "version": "4.1.1", "resolved": false, - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "optional": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "once": { "version": "1.4.0", "resolved": false, "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -6333,23 +5954,17 @@ "os-homedir": { "version": "1.0.2", "resolved": false, - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "optional": true + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-tmpdir": { "version": "1.0.2", "resolved": false, - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "optional": true + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { "version": "0.1.5", "resolved": false, "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "optional": true, "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -6358,23 +5973,12 @@ "path-is-absolute": { "version": "1.0.1", "resolved": false, - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": false, - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true, - "optional": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "rc": { "version": "1.2.7", "resolved": false, "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", - "dev": true, - "optional": true, "requires": { "deep-extend": "^0.5.1", "ini": "~1.3.0", @@ -6385,34 +5989,26 @@ "minimist": { "version": "1.2.0", "resolved": false, - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true, - "optional": true + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" } } }, "readable-stream": { - "version": "2.3.6", - "resolved": false, - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, - "optional": true, "requires": { "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, "rimraf": { "version": "2.6.2", "resolved": false, "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "optional": true, "requires": { "glob": "^7.0.5" } @@ -6420,50 +6016,37 @@ "safe-buffer": { "version": "5.1.1", "resolved": false, - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, "safer-buffer": { "version": "2.1.2", "resolved": false, - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "optional": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sax": { "version": "1.2.4", "resolved": false, - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true, - "optional": true + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "semver": { "version": "5.5.0", "resolved": false, - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true, - "optional": true + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" }, "set-blocking": { "version": "2.0.0", "resolved": false, - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true, - "optional": true + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "signal-exit": { "version": "3.0.2", "resolved": false, - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true, - "optional": true + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "string-width": { "version": "1.0.2", "resolved": false, "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -6471,20 +6054,15 @@ } }, "string_decoder": { - "version": "1.1.1", - "resolved": false, - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true }, "strip-ansi": { "version": "3.0.1", "resolved": false, "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -6492,16 +6070,12 @@ "strip-json-comments": { "version": "2.0.1", "resolved": false, - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "optional": true + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "tar": { "version": "4.4.1", "resolved": false, "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", - "dev": true, - "optional": true, "requires": { "chownr": "^1.0.1", "fs-minipass": "^1.2.5", @@ -6512,19 +6086,10 @@ "yallist": "^3.0.2" } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true, - "optional": true - }, "wide-align": { "version": "1.1.2", "resolved": false, "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "dev": true, - "optional": true, "requires": { "string-width": "^1.0.2" } @@ -6532,870 +6097,909 @@ "wrappy": { "version": "1.0.2", "resolved": false, - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "yallist": { "version": "3.0.2", "resolved": false, - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", - "dev": true + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" } } }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "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 - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "dev": true, "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", "dev": true, "requires": { - "globule": "^1.0.0" + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" } }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "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=", + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "meow": "^3.3.0", - "normalize-package-data": "^2.3.0", - "parse-github-repo-url": "^1.3.0", - "through2": "^2.0.0" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, - "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 + "ecdsa-sig-formatter": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz", + "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=", + "requires": { + "safe-buffer": "^5.0.1" + } }, - "get-stream": { - "version": "3.0.0", - "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "ee-first": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.0.5.tgz", + "integrity": "sha1-jJshKJjYzZ8alDZlDOe+ICyen/A=", "dev": true }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + "ejs": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", + "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==", + "dev": true }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "electron": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/electron/-/electron-4.0.8.tgz", + "integrity": "sha512-FOBJIHkuv8wc15N+ZyqwDzPavYVu5CHMBEf14jHDWv7QW2vkEIpJjVK+PIT31kfZfvjsIP0j2wvA/FBsiqB7pw==", "dev": true, "requires": { - "assert-plus": "^1.0.0" - } - }, - "getroot": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/getroot/-/getroot-1.0.0.tgz", - "integrity": "sha512-W9Q31kOv921dQuZBeAbK4R/dAPbC0WkhZD3alLcdVwjSkEtS1aX8twrzG3I5yo0sQ88M/d4JOqVbRiCuI/XPNA==", - "requires": { - "tslib": "^1.7.1" + "@types/node": "^10.12.18", + "electron-download": "^4.1.0", + "extract-zip": "^1.0.3" + }, + "dependencies": { + "@types/node": { + "version": "10.12.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.30.tgz", + "integrity": "sha512-nsqTN6zUcm9xtdJiM9OvOJ5EF0kOI8f1Zuug27O/rgtxCRJHGqncSWfCMZUP852dCKPsDsYXGvBhxfRjDBkF5Q==", + "dev": true + } } }, - "git-raw-commits": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz", - "integrity": "sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==", + "electron-builder": { + "version": "20.38.4", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-20.38.4.tgz", + "integrity": "sha512-WHOr3Rz2wktxV5TqmRL6woO9/wrIZeRfJPSEXOhgfgLskE5Sp2Aer0zAF7lHNqXuG6JhU+0I9IYFAxa73MTs9w==", "dev": true, "requires": { - "dargs": "^4.0.1", - "lodash.template": "^4.0.2", - "meow": "^4.0.0", - "split2": "^2.0.0", - "through2": "^2.0.0" + "app-builder-lib": "20.38.4", + "bluebird-lst": "^1.0.6", + "builder-util": "9.6.1", + "builder-util-runtime": "8.1.0", + "chalk": "^2.4.1", + "dmg-builder": "6.5.3", + "fs-extra-p": "^7.0.0", + "is-ci": "^2.0.0", + "lazy-val": "^1.0.3", + "read-config-file": "3.2.0", + "sanitize-filename": "^1.6.1", + "update-notifier": "^2.5.0", + "yargs": "^12.0.5" }, "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 - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.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" - } - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "lodash.template": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", - "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", - "dev": true, - "requires": { - "lodash._reinterpolate": "~3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", - "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", - "dev": true, - "requires": { - "lodash._reinterpolate": "~3.0.0" - } - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.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 - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "builder-util-runtime": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.1.0.tgz", + "integrity": "sha512-s1mlJ28mv+56Iebh6c9aXjVe11O3Z0cDTwAGeB0PCcUzHA37fDxGgS8ZGoYNMZP+rBHj21d/od1wuYofTVLaQg==", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "bluebird-lst": "^1.0.6", + "debug": "^4.1.0", + "fs-extra-p": "^7.0.0", + "sax": "^1.2.4" } }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" + "ms": "^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 - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true } } }, - "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, + "electron-dl": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/electron-dl/-/electron-dl-1.12.0.tgz", + "integrity": "sha512-UMc2CL45Ybpvu66LDPYzwmDRmYK4Ivz+wdnTM0eXcNMztvQwhixAk2UPme1c7McqG8bAlKEkQpZn3epmQy4EWg==", "requires": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" + "ext-name": "^5.0.0", + "pupa": "^1.0.0", + "unused-filename": "^1.0.0" } }, - "git-semver-tags": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-2.0.2.tgz", - "integrity": "sha512-34lMF7Yo1xEmsK2EkbArdoU79umpvm0MfzaDkSNYSJqtM5QLAVTPWgpiXSVI5o/O9EvZPSrP4Zvnec/CqhSd5w==", + "electron-download": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-4.1.1.tgz", + "integrity": "sha512-FjEWG9Jb/ppK/2zToP+U5dds114fM1ZOJqMAR4aXXL5CvyPE9fiqBK/9YcwC9poIFQTEJk/EM/zyRwziziRZrg==", "dev": true, "requires": { - "meow": "^4.0.0", - "semver": "^5.5.0" + "debug": "^3.0.0", + "env-paths": "^1.0.0", + "fs-extra": "^4.0.1", + "minimist": "^1.2.0", + "nugget": "^2.0.1", + "path-exists": "^3.0.0", + "rc": "^1.2.1", + "semver": "^5.4.1", + "sumchecker": "^2.0.2" }, "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 - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "locate-path": "^2.0.0" + "ms": "^2.1.1" } }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", "dev": true, "requires": { "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.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 - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", - "dev": true, - "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^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 - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true } } }, - "gitconfiglocal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", + "electron-fetch": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.3.0.tgz", + "integrity": "sha512-WzHnWZqKdiCKHqqHu+GphezoWRSUVH6BQ/f13vu16VwYKJRZNt2dUrx40eZJcyZcDGn6RJDTAHS6jVoHoglgNw==", + "requires": { + "encoding": "^0.1.12" + } + }, + "electron-hunspell": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/electron-hunspell/-/electron-hunspell-0.1.1.tgz", + "integrity": "sha512-B3nOQqHexIX+8bz72FZkNk+iFBrdqS9DpV2SaH+t7T9SLbONBVBRLJ2Jj2ytXFUzvw81q7vz2dfxPCddh/E3ww==", + "requires": { + "hunspell-asm": "1.0.2", + "lodash": "^4.17.11", + "tslib": "1.9.3", + "unixify": "1.0.0" + } + }, + "electron-is-dev": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.0.1.tgz", + "integrity": "sha512-iwM3EotA9HTXqMGpQRkR/kT8OZqBbdfHTnlwcxsjSLYqY8svvsq0MuujsWCn3/vtgRmDv/PC/gKUUpoZvi5C1w==" + }, + "electron-osx-sign": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.11.tgz", + "integrity": "sha512-VVd40nrnVqymvFrY9ZkOYgHJOvexHHYTR3di/SN+mjJ0OWhR1I8BRVj3U+Yamw6hnkZZNKZp52rqL5EFAAPFkQ==", "dev": true, "requires": { - "ini": "^1.3.2" + "bluebird": "^3.5.0", + "compare-version": "^0.1.2", + "debug": "^2.6.8", + "isbinaryfile": "^3.0.2", + "minimist": "^1.2.0", + "plist": "^3.0.1" } }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "electron-publish": { + "version": "20.38.3", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-20.38.3.tgz", + "integrity": "sha512-Qomq253NT5DfjUZgFSx6p+gheU5YhM6zZ67fTtBZvwyk0v8HwxNXfa8fZT7h+1c3BwEmjusTbmjZRNW/XZBXFA==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "bluebird-lst": "^1.0.6", + "builder-util": "~9.6.0", + "builder-util-runtime": "^8.1.0", + "chalk": "^2.4.1", + "fs-extra-p": "^7.0.0", + "lazy-val": "^1.0.3", + "mime": "^2.4.0" } }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "electron-react-titlebar": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/electron-react-titlebar/-/electron-react-titlebar-0.8.1.tgz", + "integrity": "sha512-AJb+eWeLUP7S0kNk+JDqT9rEYbN2tYsP449ekJcO9CJs1OAU2KLGdMJ0pwJNrOu6BFAxEXtFAz+MfQGcSi/1hA==", "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.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.0" - } - }, - "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" - } - } + "lodash": "^4.17.4", + "react-virtualized": "^9.7.6" } }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "electron-rebuild": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.4.tgz", + "integrity": "sha512-QBUZg1due+R0bww5rNd4gEcsKczyhxyLrxSFZlKihwHRxaiHrGut532JAUe0fRz+VIU4WNSfNKyZ/ZwSGjaDhA==", "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "colors": "^1.3.3", + "debug": "^4.1.1", + "detect-libc": "^1.0.3", + "fs-extra": "^7.0.1", + "node-abi": "^2.7.0", + "node-gyp": "^3.8.0", + "ora": "^3.0.0", + "spawn-rx": "^3.0.0", + "yargs": "^12.0.5" }, "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "is-extglob": "^2.1.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true } } }, - "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", - "dev": true, + "electron-to-chromium": { + "version": "1.3.113", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz", + "integrity": "sha512-De+lPAxEcpxvqPTyZAXELNpRZXABRxf+uL/rSykstQhzj/B0l1150G/ExIIxKc16lI89Hgz81J0BHAcbTqK49g==", + "dev": true + }, + "electron-updater": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.0.6.tgz", + "integrity": "sha512-JPGLME6fxJcHG8hX7HWFl6Aew6iVm0DkcrENreKa5SUJCHG+uUaAhxDGDt+YGcNkyx1uJ6eBGMvFxDTLUv67pg==", "requires": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" + "bluebird-lst": "^1.0.6", + "builder-util-runtime": "~8.1.0", + "fs-extra-p": "^7.0.0", + "js-yaml": "^3.12.0", + "lazy-val": "^1.0.3", + "lodash.isequal": "^4.5.0", + "pako": "^1.0.7", + "semver": "^5.6.0", + "source-map-support": "^0.5.9" } }, - "glob-watcher": { + "electron-window-state": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz", - "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==", - "dev": true, + "resolved": "https://registry.npmjs.org/electron-window-state/-/electron-window-state-5.0.3.tgz", + "integrity": "sha512-1mNTwCfkolXl3kMf50yW3vE2lZj0y92P/HYWFBrb+v2S/pCka5mdwN3cagKm458A7NjndSwijynXgcLWRodsVg==", "requires": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "object.defaults": "^1.1.0" + "jsonfile": "^4.0.0", + "mkdirp": "^0.5.1" } }, - "glob2base": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", - "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "elliptic": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", + "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", "dev": true, "requires": { - "find-index": "^0.1.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, + "email-addresses": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.0.3.tgz", + "integrity": "sha512-kUlSC06PVvvjlMRpNIl3kR1NRXLEe86VQ7N0bQeaCZb2g+InShCeHQp/JvyYNTugMnRN2NvJhHlc3q12MWbbpg==" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "emscripten-wasm-loader": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/emscripten-wasm-loader/-/emscripten-wasm-loader-1.1.0.tgz", + "integrity": "sha512-kXR3lT/900WjvhpdhaNSuD6WJKpd4ZlMh/ZaRM0rp82uKoGBq7Ud/u0GVIxQD15cqsShCKEHOpd3bZypvft9Lw==", "requires": { - "ini": "^1.3.4" + "getroot": "^1.0.0", + "tslib": "^1.8.0" } }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" + "iconv-lite": "~0.4.13" } }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.5.tgz", + "integrity": "sha512-j1DWIcktw4hRwrv6nWx++5nFH2X64x16MAG2P0Lmi5Dvdfi3I+Jhc7JKJIdAmDJa+5aZ/imHV7dWRPy2Cqjh3A==", + "dev": true, + "requires": { + "accepts": "1.3.3", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "2.3.3", + "engine.io-parser": "1.3.2", + "ws": "~1.1.5" }, "dependencies": { - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + "accepts": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", + "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", + "dev": true, + "requires": { + "mime-types": "~2.1.11", + "negotiator": "0.6.1" + } + }, + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true, + "requires": { + "ms": "0.7.2" + } + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true } } }, - "globals": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", - "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==", - "dev": true - }, - "globule": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", - "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "engine.io-client": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.5.tgz", + "integrity": "sha512-AYTgHyeVUPitsseqjoedjhYJapNVoSPShbZ+tEUX9/73jgZ/Z3sUlJf9oYgdEBBdVhupUpUqSxH0kBCXlQnmZg==", "dev": true, "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "2.3.3", + "engine.io-parser": "1.3.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parsejson": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~1.1.5", + "xmlhttprequest-ssl": "1.5.3", + "yeast": "0.1.2" + }, + "dependencies": { + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true, + "requires": { + "ms": "0.7.2" + } + }, + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + } } }, - "glogg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", - "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==", + "engine.io-parser": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", + "integrity": "sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=", + "dev": true, "requires": { - "sparkles": "^1.0.0" + "after": "0.8.2", + "arraybuffer.slice": "0.0.6", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.4", + "has-binary": "0.1.7", + "wtf-8": "1.0.0" } }, - "got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", "dev": true, "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^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=" + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" }, - "gulp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.0.tgz", - "integrity": "sha1-lXZsYB2t5Kd+0+eyttwDiBtZY2Y=", + "env-paths": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", + "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=", + "dev": true + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "dev": true, "requires": { - "glob-watcher": "^5.0.0", - "gulp-cli": "^2.0.0", - "undertaker": "^1.0.0", - "vinyl-fs": "^3.0.0" + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" }, "dependencies": { - "gulp-cli": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.0.1.tgz", - "integrity": "sha512-RxujJJdN8/O6IW2nPugl7YazhmrIEjmiVfPKrWt68r71UCaLKS71Hp0gpKT+F6qOUFtr7KqtifDKaAJPRVvMYQ==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.1.0", - "isobject": "^3.0.1", - "liftoff": "^2.5.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.0.1", - "yargs": "^7.1.0" - } + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true } } }, - "gulp-babel": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/gulp-babel/-/gulp-babel-8.0.0.tgz", - "integrity": "sha512-oomaIqDXxFkg7lbpBou/gnUkX51/Y/M2ZfSjL2hdqXTAlSWZcgZtd2o0cOH0r/eE8LWD0+Q/PsLsr2DKOoqToQ==", + "es-abstract": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", "dev": true, "requires": { - "plugin-error": "^1.0.1", - "replace-ext": "^1.0.0", - "through2": "^2.0.0", - "vinyl-sourcemaps-apply": "^0.2.0" + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-keys": "^1.0.12" } }, - "gulp-cli": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-1.2.2.tgz", - "integrity": "sha1-c5Le9jFsbnk5pPKW8/VAFRrjonU=", + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "dev": true, "requires": { - "archy": "^1.0.0", - "chalk": "^1.1.0", - "fancy-log": "^1.1.0", - "gulplog": "^1.0.0", - "interpret": "^1.0.0", - "liftoff": "^2.1.0", - "lodash.isfunction": "^3.0.8", - "lodash.isplainobject": "^4.0.4", - "lodash.isstring": "^4.0.1", - "lodash.sortby": "^4.5.0", - "matchdep": "^1.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "semver-greatest-satisfied-range": "^1.0.0", - "tildify": "^1.0.0", - "v8flags": "^2.0.9", - "wreck": "^6.3.0", - "yargs": "^3.28.0" - }, - "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.47", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.47.tgz", + "integrity": "sha512-/1TItLfj+TTfWoeRcDn/0FbGV6SNo4R+On2GGVucPU/j3BWnXE2Co8h8CTo4Tu34gFJtnmwS9xiScKs4EjZhdw==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "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", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-promise": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", + "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "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", + "es5-ext": "~0.10.14" + } + }, + "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", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "escape-html": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz", + "integrity": "sha1-GBoobq05ejmpKFfPsdQwUuNWv/A=", + "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=", + "dev": true + }, + "eslint": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.10.0.tgz", + "integrity": "sha512-HpqzC+BHULKlnPwWae9MaVZ5AXJKpkxCVXQHrFaRw3hbDj26V/9ArYM4Rr/SQ8pi6qUPLXSSXC4RBJlyq2Z2OQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.5.3", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^2.1.0", + "eslint-scope": "^4.0.0", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^5.0.0", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "imurmurhash": "^0.1.4", + "inquirer": "^6.1.0", + "js-yaml": "^3.12.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.5", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^5.0.2", + "text-table": "^0.2.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, "requires": { - "arr-flatten": "^1.0.1" + "ms": "^2.1.1" } }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "eslint-scope": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", + "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", + "dev": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, - "camelcase": { + "ms": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "eslint-config-airbnb": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-17.1.0.tgz", + "integrity": "sha512-R9jw28hFfEQnpPau01NO5K/JWMGLi6aymiF6RsnMURjTk+MqZKllCqGK/0tOvHkPi/NWSSOU2Ced/GX++YxLnw==", + "dev": true, + "requires": { + "eslint-config-airbnb-base": "^13.1.0", + "object.assign": "^4.1.0", + "object.entries": "^1.0.4" + } + }, + "eslint-config-airbnb-base": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz", + "integrity": "sha512-XWwQtf3U3zIoKO1BbHh6aUhJZQweOwSt4c2JrPDg9FP3Ltv3+YfEv7jIDB8275tVnO/qOHbfuYg3kzw6Je7uWw==", + "dev": true, + "requires": { + "eslint-restricted-globals": "^0.1.1", + "object.assign": "^4.1.0", + "object.entries": "^1.0.4" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", + "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.5.0" + } + }, + "eslint-loader": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-1.9.0.tgz", + "integrity": "sha512-40aN976qSNPyb9ejTqjEthZITpls1SVKtwguahmH1dzGCwQU/vySE+xX33VZmD8csU0ahVNCtFlsPgKqRBiqgg==", + "dev": true, + "requires": { + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" + } + }, + "eslint-module-utils": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.3.0.tgz", + "integrity": "sha512-lmDJgeOOjk8hObTysjqH7wyMi+nsHwwvfBykwfhjR1LNdd7C2uFJBvx4OpWYpXOw4df1yE1cDEVd1yLHitk34w==", + "dev": true, + "requires": { + "debug": "^2.6.8", + "pkg-dir": "^2.0.0" + } + }, + "eslint-plugin-import": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz", + "integrity": "sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==", + "dev": true, + "requires": { + "contains-path": "^0.1.0", + "debug": "^2.6.8", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.1", + "eslint-module-utils": "^2.2.0", + "has": "^1.0.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.3", + "read-pkg-up": "^2.0.0", + "resolve": "^1.6.0" + }, + "dependencies": { + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, "requires": { - "is-posix-bracket": "^0.1.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "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": { - "is-extglob": "^1.0.0" + "locate-path": "^2.0.0" } }, - "findup-sync": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", - "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", + "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": { - "glob": "~5.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.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.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "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" } }, - "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=", + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, "requires": { - "is-extglob": "^1.0.0" + "p-try": "^1.0.0" } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "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": { - "is-buffer": "^1.1.5" + "p-limit": "^1.1.0" } }, - "matchdep": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-1.0.1.tgz", - "integrity": "sha1-pXozgESR+64girqPaDgEN6vC3KU=", + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "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": { - "findup-sync": "~0.3.0", - "micromatch": "^2.3.7", - "resolve": "~1.1.6", - "stack-trace": "0.0.9" + "error-ex": "^1.2.0" } }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "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": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "pify": "^2.0.0" } }, - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true }, - "stack-trace": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", - "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU=" + "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.3.2", + "path-type": "^2.0.0" + } }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "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": { - "user-home": "^1.1.1" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "yargs": { @@ -7403,203 +7007,258 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", "requires": { - "camelcase": "^2.0.1", - "cliui": "^3.0.3", "decamelize": "^1.1.1", - "os-locale": "^1.4.0", - "string-width": "^1.0.1", - "window-size": "^0.1.4", - "y18n": "^3.2.0" + "window-size": "^0.1.4" } } } }, - "gulp-sass": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-4.0.2.tgz", - "integrity": "sha512-q8psj4+aDrblJMMtRxihNBdovfzGrXJp1l4JU0Sz4b/Mhsi2DPrKFYCGDwjIWRENs04ELVHxdOJQ7Vs98OFohg==", + "eslint-plugin-jsx-a11y": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz", + "integrity": "sha512-7gSSmwb3A+fQwtw0arguwMdOdzmKUgnUcbSNlo+GjKLAQFuC2EZxWqG9XHRI8VscBJD5a8raz3RuxQNFW+XJbw==", "dev": true, "requires": { - "chalk": "^2.3.0", - "lodash.clonedeep": "^4.3.2", - "node-sass": "^4.8.3", - "plugin-error": "^1.0.1", - "replace-ext": "^1.0.0", - "strip-ansi": "^4.0.0", - "through2": "^2.0.0", - "vinyl-sourcemaps-apply": "^0.2.0" + "aria-query": "^3.0.0", + "array-includes": "^3.0.3", + "ast-types-flow": "^0.0.7", + "axobject-query": "^2.0.1", + "damerau-levenshtein": "^1.0.4", + "emoji-regex": "^6.5.1", + "has": "^1.0.3", + "jsx-ast-utils": "^2.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=", + "emoji-regex": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz", + "integrity": "sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ==", "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.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": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } } } }, - "gulp-sass-variables": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gulp-sass-variables/-/gulp-sass-variables-1.2.0.tgz", - "integrity": "sha512-xdRyM/OXlRLcK2rN4K7cucc/5eHoqS1MLgAI79tW5gRYAdxF8pYX7Zuj89zu4RchX9nr2Yu/jIC146V/6w7TnA==", + "eslint-plugin-react": { + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz", + "integrity": "sha512-cVVyMadRyW7qsIUh3FHp3u6QHNhOgVrLQYdQEB1bPWBsgbNCHdFAeNMquBMCcZJu59eNthX053L70l7gRt4SCw==", "dev": true, "requires": { - "plugin-error": "^1.0.1", - "through2": "^2.0.1" + "array-includes": "^3.0.3", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.0.1", + "prop-types": "^15.6.2" } }, - "gulp-server-livereload": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/gulp-server-livereload/-/gulp-server-livereload-1.9.2.tgz", - "integrity": "sha1-PbIn80Y8/k8pv2WgE7qhYuKnQMY=", + "eslint-restricted-globals": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz", + "integrity": "sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=", + "dev": true + }, + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "dev": true, "requires": { - "commander": "^2.8.1", - "connect": "~3.1.1", - "connect-inject": "~0.3.2", - "glogg": "^1.0.0", - "gulp-util": "^3.0.7", - "gulplog": "^1.0.0", - "lodash": "^4.0.0", - "node-watch": "^0.3.4", - "node.extend": "~1.0.10", - "open": "~0.0.5", - "proxy-middleware": "~0.15.0", - "serve-index": "~1.1.4", - "serve-static": "~1.5.2", - "socket.io": "^1.4.4", - "through2": "~0.5.1", - "vinyl-fs": "^1.0.0" - }, - "dependencies": { - "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", - "dev": true - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", - "dev": true - }, - "gaze": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", - "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", - "dev": true, - "requires": { - "globule": "~0.1.0" - } - }, - "glob": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^2.0.1", - "once": "^1.3.0" - } - }, - "glob-stream": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-4.1.1.tgz", - "integrity": "sha1-uELfENaIx+trz869hG84UilrMgA=", - "dev": true, - "requires": { - "glob": "^4.3.1", - "glob2base": "^0.0.12", - "minimatch": "^2.0.1", - "ordered-read-streams": "^0.1.0", - "through2": "^0.6.1", - "unique-stream": "^2.0.2" - }, - "dependencies": { - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - } + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", + "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", + "dev": true + }, + "eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", + "dev": true + }, + "espree": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.0.tgz", + "integrity": "sha512-1MpUfwsdS9MMoN7ZXqAr9e9UKdVHDcvrJpyx7mm1WuQlx/ygErEQBzgi5Nh5qBHIoYweprhtMkTCb9GhcAIcsA==", + "dev": true, + "requires": { + "acorn": "^6.0.2", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "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", + "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 + }, + "eventemitter3": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", + "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==", + "dev": true + }, + "events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", + "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "dev": true + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "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" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" } }, - "glob-watcher": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.8.tgz", - "integrity": "sha1-aK62Yefizo02NDgbLsQV8AxrwqQ=", + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "gaze": "^0.5.1" + "is-extendable": "^0.1.0" + } + } + } + }, + "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=", + "dev": true, + "requires": { + "fill-range": "^2.1.0" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, - "globule": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", - "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", + "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": { - "glob": "~3.1.21", - "lodash": "~1.0.1", - "minimatch": "~0.2.11" + "kind-of": "^3.0.2" + } + }, + "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" }, "dependencies": { "glob": { "version": "3.1.21", "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", - "dev": true, "requires": { "graceful-fs": "~1.2.0", "inherits": "1", @@ -7609,2209 +7268,2560 @@ "graceful-fs": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", - "dev": true + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=" }, "inherits": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", - "dev": true + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=" }, "lodash": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", - "dev": true + "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=" }, "minimatch": { "version": "0.2.14", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", - "dev": true, "requires": { - "lru-cache": "2", "sigmund": "~1.0.0" } } } }, - "graceful-fs": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", - "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "natives": "^1.1.0" + "is-buffer": "^1.1.5" + } + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "expect.js": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/expect.js/-/expect.js-0.3.1.tgz", + "integrity": "sha1-sKWaDS7/VDdUTr8M6qYBWEHQm1s=", + "dev": true + }, + "express": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.3", + "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.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "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.4", + "qs": "6.5.2", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.2", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "dev": true, + "requires": { + "mime-types": "~2.1.18", + "negotiator": "0.6.1" } }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, - "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "dev": true }, - "minimatch": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "finalhandler": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", "dev": true, "requires": { - "brace-expansion": "^1.0.0" + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" } }, - "object-assign": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", - "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=", + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true }, - "ordered-read-streams": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", - "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", "dev": true }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", "dev": true }, - "strip-bom": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", - "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", - "dev": true, - "requires": { - "first-chunk-stream": "^1.0.0", - "is-utf8": "^0.2.0" - } - }, - "through2": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.5.1.tgz", - "integrity": "sha1-390BLrnHAOIyP9M084rGIqs3Lac=", + "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": { - "readable-stream": "~1.0.17", - "xtend": "~3.0.0" + "ee-first": "1.1.1" } }, - "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", - "dev": true, - "requires": { - "clone": "^0.2.0", - "clone-stats": "^0.0.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 }, - "vinyl-fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-1.0.0.tgz", - "integrity": "sha1-0VdS5owtrXQ2Tn6FNHNzU1RpLt8=", - "dev": true, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "requires": { - "duplexify": "^3.2.0", - "glob-stream": "^4.0.1", - "glob-watcher": "^0.0.8", - "graceful-fs": "^3.0.0", - "merge-stream": "^0.1.7", - "mkdirp": "^0.5.0", - "object-assign": "^2.0.0", - "strip-bom": "^1.0.0", - "through2": "^0.6.1", - "vinyl": "^0.4.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1" + } + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "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.4.0" }, "dependencies": { - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, - "xtend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", - "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true } } }, - "gulp-util": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", - "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", - "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": { - "array-differ": "^1.0.0", - "array-uniq": "^1.0.2", - "beeper": "^1.0.0", - "chalk": "^1.0.0", - "dateformat": "^2.0.0", - "fancy-log": "^1.1.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.0.0", - "minimist": "^1.1.0", - "multipipe": "^0.1.2", - "object-assign": "^3.0.0", - "replace-ext": "0.0.1", - "through2": "^2.0.0", - "vinyl": "^0.5.0" - }, - "dependencies": { - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", - "dev": true - }, - "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=", - "dev": true - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true - }, - "vinyl": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", - "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", - "dev": true, - "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" - } - } + "mime-db": "^1.28.0" } }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "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": { - "glogg": "^1.0.0" + "ext-list": "^2.0.0", + "sort-keys-length": "^1.0.0" } }, - "handlebars": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.0.tgz", - "integrity": "sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w==", + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "async": "^2.5.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "lodash": "^4.17.10" + "is-plain-object": "^2.0.4" } - }, - "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 } } }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", - "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", - "dev": true, - "requires": { - "ajv": "^5.3.0", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "external-editor": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", + "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", "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.0.0" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, - "has-binary": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", - "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "isarray": "0.0.1" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "extract-zip": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", + "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", + "dev": true, + "requires": { + "concat-stream": "1.6.2", + "debug": "2.6.9", + "mkdirp": "0.5.1", + "yauzl": "2.4.1" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "dev": true }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, - "has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "fast-glob": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.6.tgz", + "integrity": "sha512-0BvMaZc1k9F+MeWWMe8pL6YltFzZYcJsYU7D4JyDA6PAczaXvxqQQ/z+mDF7/4Mw01DeUc+i3CTKajnkANkV4w==", "dev": true, "requires": { - "sparkles": "^1.0.0" + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" } }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "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=", "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=", + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "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": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "websocket-driver": ">=0.5.1" } }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "fbjs": { + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", + "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" }, "dependencies": { - "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.5" - } + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" } } }, - "hex-rgb": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hex-rgb/-/hex-rgb-3.0.0.tgz", - "integrity": "sha512-iWOUTZu7KQGhErV8JfTQDH5F/M2D0HVd0sexS4Grg4e4RYAiN3c4jfpPqKgfedqeebKcNZBl2z3zlgCtFjpFJQ==", - "dev": true - }, - "hex-to-rgba": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hex-to-rgba/-/hex-to-rgba-1.0.2.tgz", - "integrity": "sha512-fL+4NFccs86iOuDnFl1Mhyn471qTPAkpE7k39+JYGPMB3+S9LoUnauQI2nz6BUb3DpYQCx8RqENbaf8IFdKYOg==" - }, - "history": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/history/-/history-3.3.0.tgz", - "integrity": "sha1-/O3M6PEpdTcVRdc1RhAzV5ptrpw=", + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, "requires": { - "invariant": "^2.2.1", - "loose-envify": "^1.2.0", - "query-string": "^4.2.2", - "warning": "^3.0.0" + "pend": "~1.2.0" } }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" - }, - "hoist-non-react-statics": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", - "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" - }, - "home-or-tmp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-3.0.0.tgz", - "integrity": "sha1-V6j+JM8zzdUkhgoVgh3cJchmcfs=", + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", "dev": true }, - "homedir-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", - "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, "requires": { - "parse-passwd": "^1.0.0" + "escape-string-regexp": "^1.0.5" } }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "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.2.1", + "object-assign": "^4.0.1" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", "dev": true }, - "htmlparser2": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.0.tgz", - "integrity": "sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ==", + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, "requires": { - "domelementtype": "^1.3.0", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.0.6" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { - "readable-stream": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.6.tgz", - "integrity": "sha512-9E1oLoOWfhSXHGv6QlwXJim7uNzd9EVlWK+21tCU9Ju/kR0/p2AZYPz4qSchgO8PlLIH4FpZYfzwS+rEksZjIg==", + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "is-extendable": "^0.1.0" } } } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "finalhandler": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.1.0.tgz", + "integrity": "sha1-2gW7xPX0owyEzh2R88FUAHxOnao=", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "hunspell-asm": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hunspell-asm/-/hunspell-asm-1.0.2.tgz", - "integrity": "sha512-UTLBvc0yZiIcHl9qrgxnFTZbX3zF4CprzEY+u+N0iXlUKZnUJRIgvgppTdgiQTsucm5b0aN/rHsgXz2q/0kBRA==", - "requires": { - "emscripten-wasm-loader": "^1.0.0", - "nanoid": "^1.0.2", - "tslib": "^1.9.0", - "unixify": "^1.0.0" - } - }, - "husky": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/husky/-/husky-1.1.4.tgz", - "integrity": "sha512-cZjGpS7qsaBSo3fOMUuR7erQloX3l5XzL1v/RkIqU6zrQImDdU70z5Re9fGDp7+kbYlM2EtS4aYMlahBeiCUGw==", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.6", - "execa": "^1.0.0", - "find-up": "^3.0.0", - "get-stdin": "^6.0.0", - "is-ci": "^1.2.1", - "pkg-dir": "^3.0.0", - "please-upgrade-node": "^3.1.1", - "read-pkg": "^4.0.1", - "run-node": "^1.0.0", - "slash": "^2.0.0" + "debug": "1.0.4", + "escape-html": "1.0.1" }, "dependencies": { - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "debug": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz", + "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "ms": "0.6.2" } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "ms": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz", + "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=", "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "read-pkg": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", - "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", - "dev": true, - "requires": { - "normalize-package-data": "^2.3.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0" - } } } }, - "hyphenate-style-name": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz", - "integrity": "sha1-MRYKNpMK2vH8BMYHT360FGXU7Es=" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "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": { - "safer-buffer": ">= 2.1.2 < 3" + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" } }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "find-index": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", + "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", "dev": true }, - "import-fresh": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "findup-sync": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", "dev": true, "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" }, "dependencies": { - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "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": { - "caller-callsite": "^2.0.0" + "is-extglob": "^2.1.0" } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true } } }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "in-publish": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", - "dev": true - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "fined": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.1.tgz", + "integrity": "sha512-jQp949ZmEbiYHk3gkbdtpJ0G1+kgtLQBNdP5edFP7Fh+WAYceLQz6yO1SBj72Xkg8GVyTB3bBzAYrHJVh5Xd5g==", "dev": true, "requires": { - "repeating": "^2.0.0" + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" } }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "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=", "dev": true }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" } }, - "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==" - }, - "inquirer": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.1.tgz", - "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==", + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.0", - "figures": "^2.0.0", - "lodash": "^4.17.10", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.1.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.0.0", - "through": "^2.3.6" + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" }, "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.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "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 - }, - "rxjs": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", - "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", - "dev": true, - "requires": { - "tslib": "^1.9.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "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" - } - } + "safe-buffer": "~5.1.0" } - }, - "strip-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz", - "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", + } + } + }, + "follow-redirects": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.1.tgz", + "integrity": "sha512-t2JCjbzxQpWvbhts3l6SH1DKzSrx8a+SsaVf4h6bG4kOXUuPYS/kg2Lr4gQSb7eemaHqJkOThF1BGyjlUkO1GQ==", + "dev": true, + "requires": { + "debug": "=3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { - "ansi-regex": "^4.0.0" + "ms": "2.0.0" }, "dependencies": { - "ansi-regex": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz", - "integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } } } }, - "install": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/install/-/install-0.12.2.tgz", - "integrity": "sha512-+7thTb4Rpvs9mnlhHKGZFJbGOO6kyMgy+gg0sgM5vFzIFK0wrCYXqdlaM71Bi289DTuPHf61puMFsaZBcwDIrg==", + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, - "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" - }, - "intl-format-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.1.0.tgz", - "integrity": "sha1-BKNp/sv61tpgBbrh8UMzMy3PkxY=" - }, - "intl-messageformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz", - "integrity": "sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=", + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, "requires": { - "intl-messageformat-parser": "1.4.0" + "for-in": "^1.0.1" } }, - "intl-messageformat-parser": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz", - "integrity": "sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU=" - }, - "intl-relativeformat": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.1.0.tgz", - "integrity": "sha1-AQ8RBYAiUfQKxH0OPhogE0iiVd8=", - "requires": { - "intl-messageformat": "^2.0.0" - } + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, "requires": { - "loose-envify": "^1.0.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, - "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=" - }, - "is": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is/-/is-0.3.0.tgz", - "integrity": "sha1-qPcd/IpuKDcWJ/JskpCYxvTV1dc=", + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", "dev": true }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" + "map-cache": "^0.2.2" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "fresh": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.2.tgz", + "integrity": "sha1-lzHc9WeMf660T7kDxPct9VGH+nc=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, "requires": { - "kind-of": "^3.0.2" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, "requires": { - "is-buffer": "^1.1.5" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" } } } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, + "fs-extra-p": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-7.0.0.tgz", + "integrity": "sha512-5tg5jBOd0xIXjwj4PDnafOXL5TyPVzjxLby4DPKev53wurEXp7IsojBaD4Lj5M5w7jxw0pbkEU0fFEPmcKoMnA==", "requires": { - "binary-extensions": "^1.0.0" + "bluebird-lst": "^1.0.6", + "fs-extra": "^7.0.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==" + "fs-minipass": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "requires": { + "minipass": "^2.2.1" + } }, - "is-builtin-module": { + "fs-mkdirp-stream": { "version": "1.0.0", - "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" } }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "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 }, - "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "dev": true, "requires": { - "ci-info": "^1.5.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, "requires": { - "is-buffer": "^1.1.5" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" } } } }, - "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-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz", + "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==", + "dev": true, + "optional": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "abbrev": { + "version": "1.1.1", + "bundled": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "requires": { + "delegates": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "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 + }, + "debug": { + "version": "2.6.9", + "bundled": true + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.5", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "^1.0.0" + } } } }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "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=", + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, "requires": { - "is-primitive": "^2.0.0" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" - } - }, - "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.0" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": 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=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "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.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.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.0.0" + } + } } }, - "is-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", - "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "globule": "^1.0.0" } }, - "is-in-browser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", - "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" - }, - "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.0", - "is-path-inside": "^1.0.0" - } - }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "genfun": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", + "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", "dev": true }, - "is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", "dev": true }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "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": { - "kind-of": "^3.0.2" + "hosted-git-info": "^2.1.4", + "meow": "^3.3.0", + "normalize-package-data": "^2.3.0", + "parse-github-repo-url": "^1.3.0", + "through2": "^2.0.0" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, "requires": { - "is-buffer": "^1.1.5" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "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.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "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.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.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "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.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^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=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "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.0" + } + }, + "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.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.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": "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.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.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.0.0", + "read-pkg": "^1.0.0" + } + }, + "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" + } + }, + "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.0" + } + }, + "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" } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true } } }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "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 }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "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": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "path-is-inside": "^1.0.1" + "pump": "^3.0.0" } }, - "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=" + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, "requires": { - "isobject": "^3.0.1" + "assert-plus": "^1.0.0" } }, - "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=" + "getroot": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/getroot/-/getroot-1.0.0.tgz", + "integrity": "sha512-W9Q31kOv921dQuZBeAbK4R/dAPbC0WkhZD3alLcdVwjSkEtS1aX8twrzG3I5yo0sQ88M/d4JOqVbRiCuI/XPNA==", + "requires": { + "tslib": "^1.7.1" + } }, - "is-primitive": { + "git-raw-commits": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz", + "integrity": "sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==", + "dev": true, + "requires": { + "dargs": "^4.0.1", + "lodash.template": "^4.0.2", + "meow": "^4.0.0", + "split2": "^2.0.0", + "through2": "^2.0.0" + } }, - "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 + "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 + } + } }, - "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 + "git-semver-tags": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-2.0.2.tgz", + "integrity": "sha512-34lMF7Yo1xEmsK2EkbArdoU79umpvm0MfzaDkSNYSJqtM5QLAVTPWgpiXSVI5o/O9EvZPSrP4Zvnec/CqhSd5w==", + "dev": true, + "requires": { + "meow": "^4.0.0", + "semver": "^5.5.0" + } }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "git-up": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.1.tgz", + "integrity": "sha512-LFTZZrBlrCrGCG07/dm1aCjjpL1z9L3+5aEeI9SBhAqSc+kiA9Or1bgZhQFNppJX6h/f5McrvJt1mQXTFm6Qrw==", "dev": true, "requires": { - "has": "^1.0.1" + "is-ssh": "^1.3.0", + "parse-url": "^5.0.0" } }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "git-url-parse": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.1.2.tgz", + "integrity": "sha512-gZeLVGY8QVKMIkckncX+iCq2/L8PlwncvDFKiWkBn9EtCfYDbliRTTp6qzyQ1VMdITUfq7293zDzfpjdiGASSQ==", + "dev": true, "requires": { - "is-unc-path": "^1.0.0" + "git-up": "^4.0.0" } }, - "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 + "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.2" + } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } }, - "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 + "glob-base": { + "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.0" + }, + "dependencies": { + "glob-parent": { + "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.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "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-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "has-symbols": "^1.0.0" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "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.0" + } + } } }, - "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=", + "glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", "dev": true, "requires": { - "text-extensions": "^1.0.0" + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", "dev": true }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "glob-watcher": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz", + "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==", + "dev": true, "requires": { - "unc-path-regex": "^0.1.2" + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "object.defaults": "^1.1.0" } }, - "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-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", - "dev": true + "glob2base": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", + "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "dev": true, + "requires": { + "find-index": "^0.1.1" + } }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + "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" + } }, - "isarray": { + "global-modules": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isbinaryfile": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", - "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "dev": true, "requires": { - "buffer-alloc": "^1.2.0" + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" } }, - "isemail": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz", - "integrity": "sha1-vgPfjMPineTSxd9lASY/H6RZXpo=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "global-modules-path": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/global-modules-path/-/global-modules-path-2.3.1.tgz", + "integrity": "sha512-y+shkf4InI7mPRHSo2b/k6ix6+NLDtyccYv86whhxrSGX9wjPX1VMITmrDbE1eh7zkzhiWtW2sHklJYoQ62Cxg==", + "dev": true }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" } }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "globals": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", "dev": true }, - "joi": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz", - "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=", + "globby": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "dev": true, "requires": { - "hoek": "2.x.x", - "isemail": "1.x.x", - "moment": "2.x.x", - "topo": "1.x.x" + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + } } }, - "js-base64": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", - "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==", - "dev": true - }, - "js-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.4.tgz", - "integrity": "sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsesc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", - "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=", - "dev": true - }, - "json-parse-better-errors": { + "glogg": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "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=", - "dev": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", "dev": true, "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "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=", - "dev": true - }, - "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": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true - }, - "jsonwebtoken": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-7.4.3.tgz", - "integrity": "sha1-d/UCHeBYtgWheD+hKD6ZgS5kVjg=", - "requires": { - "joi": "^6.10.1", - "jws": "^3.1.4", - "lodash.once": "^4.0.0", - "ms": "^2.0.0", - "xtend": "^4.0.1" + "sparkles": "^1.0.0" } }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jss": { - "version": "9.8.7", - "resolved": "https://registry.npmjs.org/jss/-/jss-9.8.7.tgz", - "integrity": "sha512-awj3XRZYxbrmmrx9LUSj5pXSUfm12m8xzi/VKeqI1ZwWBtQ0kVPTs3vYs32t4rFw83CgFDukA8wKzOE9sMQnoQ==", - "requires": { - "is-in-browser": "^1.1.3", - "symbol-observable": "^1.1.0", - "warning": "^3.0.0" + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" }, "dependencies": { - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + "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 } } }, - "jss-camel-case": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jss-camel-case/-/jss-camel-case-6.1.0.tgz", - "integrity": "sha512-HPF2Q7wmNW1t79mCqSeU2vdd/vFFGpkazwvfHMOhPlMgXrJDzdj9viA2SaHk9ZbD5pfL63a8ylp4++irYbbzMQ==", - "requires": { - "hyphenate-style-name": "^1.0.2" - } - }, - "jss-compose": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/jss-compose/-/jss-compose-5.0.0.tgz", - "integrity": "sha512-YofRYuiA0+VbeOw0VjgkyO380sA4+TWDrW52nSluD9n+1FWOlDzNbgpZ/Sb3Y46+DcAbOS21W5jo6SAqUEiuwA==", - "requires": { - "warning": "^3.0.0" - } - }, - "jss-default-unit": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/jss-default-unit/-/jss-default-unit-8.0.2.tgz", - "integrity": "sha512-WxNHrF/18CdoAGw2H0FqOEvJdREXVXLazn7PQYU7V6/BWkCV0GkmWsppNiExdw8dP4TU1ma1dT9zBNJ95feLmg==" - }, - "jss-expand": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/jss-expand/-/jss-expand-5.3.0.tgz", - "integrity": "sha512-NiM4TbDVE0ykXSAw6dfFmB1LIqXP/jdd0ZMnlvlGgEMkMt+weJIl8Ynq1DsuBY9WwkNyzWktdqcEW2VN0RAtQg==" - }, - "jss-extend": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jss-extend/-/jss-extend-6.2.0.tgz", - "integrity": "sha512-YszrmcB6o9HOsKPszK7NeDBNNjVyiW864jfoiHoMlgMIg2qlxKw70axZHqgczXHDcoyi/0/ikP1XaHDPRvYtEA==", - "requires": { - "warning": "^3.0.0" - } - }, - "jss-global": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jss-global/-/jss-global-3.0.0.tgz", - "integrity": "sha512-wxYn7vL+TImyQYGAfdplg7yaxnPQ9RaXY/cIA8hawaVnmmWxDHzBK32u1y+RAvWboa3lW83ya3nVZ/C+jyjZ5Q==" - }, - "jss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/jss-nested/-/jss-nested-6.0.1.tgz", - "integrity": "sha512-rn964TralHOZxoyEgeq3hXY8hyuCElnvQoVrQwKHVmu55VRDd6IqExAx9be5HgK0yN/+hQdgAXQl/GUrBbbSTA==", - "requires": { - "warning": "^3.0.0" - } - }, - "jss-preset-default": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/jss-preset-default/-/jss-preset-default-4.5.0.tgz", - "integrity": "sha512-qZbpRVtHT7hBPpZEBPFfafZKWmq3tA/An5RNqywDsZQGrlinIF/mGD9lmj6jGqu8GrED2SMHZ3pPKLmjCZoiaQ==", - "requires": { - "jss-camel-case": "^6.1.0", - "jss-compose": "^5.0.0", - "jss-default-unit": "^8.0.2", - "jss-expand": "^5.3.0", - "jss-extend": "^6.2.0", - "jss-global": "^3.0.0", - "jss-nested": "^6.0.1", - "jss-props-sort": "^6.0.0", - "jss-template": "^1.0.1", - "jss-vendor-prefixer": "^7.0.0" - } - }, - "jss-props-sort": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/jss-props-sort/-/jss-props-sort-6.0.0.tgz", - "integrity": "sha512-E89UDcrphmI0LzmvYk25Hp4aE5ZBsXqMWlkFXS0EtPkunJkRr+WXdCNYbXbksIPnKlBenGB9OxzQY+mVc70S+g==" - }, - "jss-template": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/jss-template/-/jss-template-1.0.1.tgz", - "integrity": "sha512-m5BqEWha17fmIVXm1z8xbJhY6GFJxNB9H68GVnCWPyGYfxiAgY9WTQyvDAVj+pYRgrXSOfN5V1T4+SzN1sJTeg==", - "requires": { - "warning": "^3.0.0" - } - }, - "jss-vendor-prefixer": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/jss-vendor-prefixer/-/jss-vendor-prefixer-7.0.0.tgz", - "integrity": "sha512-Agd+FKmvsI0HLcYXkvy8GYOw3AAASBUpsmIRvVQheps+JWaN892uFOInTr0DRydwaD91vSSUCU4NssschvF7MA==", - "requires": { - "css-vendor": "^0.3.8" - } - }, - "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" - } + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" }, - "just-debounce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", - "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, - "jwa": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.6.tgz", - "integrity": "sha512-tBO/cf++BUsJkYql/kBbJroKOgHWEigTKBAjjBEmrMGYd1QMBC74Hr4Wo2zCZw6ZrVhlJPvoMrkcOnlWR/DJfw==", + "gulp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.0.tgz", + "integrity": "sha1-lXZsYB2t5Kd+0+eyttwDiBtZY2Y=", + "dev": true, "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.10", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz", - "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==", - "requires": { - "jwa": "^1.1.5", - "safe-buffer": "^5.0.1" - } - }, - "kebab-case": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/kebab-case/-/kebab-case-1.0.0.tgz", - "integrity": "sha1-P55JkK3K0MaGwOcB92RYaPdfkes=", - "dev": true - }, - "keymaster": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/keymaster/-/keymaster-1.6.2.tgz", - "integrity": "sha1-4a5U0OqUiPn2C2a2aPAumhlGxus=" - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - }, - "last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "dev": true, - "requires": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - } - }, - "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.0" - } - }, - "lazy-val": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.3.tgz", - "integrity": "sha512-pjCf3BYk+uv3ZcPzEVM0BFvO9Uw58TmlrU0oG5tTrr9Kcid3+kdKxapH8CjdYmVa2nO5wOoZn2rdvZx2PKj/xg==" - }, - "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.0.5" - } - }, - "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" + "glob-watcher": "^5.0.0", + "gulp-cli": "^2.0.0", + "undertaker": "^1.0.0", + "vinyl-fs": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "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.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "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.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "gulp-cli": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.0.1.tgz", + "integrity": "sha512-RxujJJdN8/O6IW2nPugl7YazhmrIEjmiVfPKrWt68r71UCaLKS71Hp0gpKT+F6qOUFtr7KqtifDKaAJPRVvMYQ==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.1.0", + "isobject": "^3.0.1", + "liftoff": "^2.5.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.0.1", + "yargs": "^7.1.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "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" + } + }, + "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.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "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" + } + }, + "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.2.0" + } + }, + "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.0" + } + }, + "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.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.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": "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.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.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.0.0", + "read-pkg": "^1.0.0" + } + }, + "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.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.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.0.0" + } + }, + "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.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 + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "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.1.1", + "get-caller-file": "^1.0.1", + "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" + } + } } }, - "lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "gulp-babel": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/gulp-babel/-/gulp-babel-8.0.0.tgz", + "integrity": "sha512-oomaIqDXxFkg7lbpBou/gnUkX51/Y/M2ZfSjL2hdqXTAlSWZcgZtd2o0cOH0r/eE8LWD0+Q/PsLsr2DKOoqToQ==", "dev": true, "requires": { - "flush-write-stream": "^1.0.2" + "plugin-error": "^1.0.1", + "replace-ext": "^1.0.0", + "through2": "^2.0.0", + "vinyl-sourcemaps-apply": "^0.2.0" } }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "gulp-cli": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-1.2.2.tgz", + "integrity": "sha1-c5Le9jFsbnk5pPKW8/VAFRrjonU=", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", - "requires": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "loader-fs-cache": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz", - "integrity": "sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw=", - "dev": true, - "requires": { - "find-cache-dir": "^0.1.1", - "mkdirp": "0.5.1" - } - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" - } - }, - "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" + "archy": "^1.0.0", + "chalk": "^1.1.0", + "fancy-log": "^1.1.0", + "gulplog": "^1.0.0", + "interpret": "^1.0.0", + "liftoff": "^2.1.0", + "lodash.isfunction": "^3.0.8", + "lodash.isplainobject": "^4.0.4", + "lodash.isstring": "^4.0.1", + "lodash.sortby": "^4.5.0", + "matchdep": "^1.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "semver-greatest-satisfied-range": "^1.0.0", + "tildify": "^1.0.0", + "v8flags": "^2.0.9", + "wreck": "^6.3.0", + "yargs": "^3.28.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=", + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true - } - } - }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" - }, - "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._basetostring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", - "dev": true - }, - "lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", - "dev": true - }, - "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._reescape": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", - "dev": true - }, - "lodash._reevaluate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", - "dev": true - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", - "dev": true - }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lodash.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", - "dev": true, - "requires": { - "lodash._root": "^3.0.0" - } - }, - "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.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" - }, - "lodash.isfunction": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", - "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "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.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "lodash.map": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", - "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", - "dev": true - }, - "lodash.mergewith": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", - "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", - "dev": true - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" - }, - "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.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "lodash.template": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", - "dev": true, - "requires": { - "lodash._basecopy": "^3.0.0", - "lodash._basetostring": "^3.0.0", - "lodash._basevalues": "^3.0.0", - "lodash._isiterateecall": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0", - "lodash.keys": "^3.0.0", - "lodash.restparam": "^3.0.0", - "lodash.templatesettings": "^3.0.0" - } - }, - "lodash.templatesettings": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0" - } - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "requires": { - "chalk": "^2.0.1" - }, - "dependencies": { + }, "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "color-convert": "^1.9.0" + "arr-flatten": "^1.0.1" } }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "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.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "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.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "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.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "findup-sync": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", + "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", + "dev": true, + "requires": { + "glob": "~5.0.0" + } + }, + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": 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=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "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" + } + }, + "kind-of": { + "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.5" + } + }, + "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" + } + }, + "matchdep": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-1.0.1.tgz", + "integrity": "sha1-pXozgESR+64girqPaDgEN6vC3KU=", + "dev": true, + "requires": { + "findup-sync": "~0.3.0", + "micromatch": "^2.3.7", + "resolve": "~1.1.6", + "stack-trace": "0.0.9" + } + }, + "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", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "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" + } + }, + "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.0", + "inherits": "~2.0.1" + } + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, + "stack-trace": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", + "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU=", + "dev": true + }, + "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.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.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-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-regex": "^2.0.0" } }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", "dev": true, "requires": { - "has-flag": "^3.0.0" + "user-home": "^1.1.1" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", + "dev": true, + "requires": { + "camelcase": "^2.0.1", + "cliui": "^3.0.3", + "decamelize": "^1.1.1", + "os-locale": "^1.4.0", + "string-width": "^1.0.1", + "window-size": "^0.1.4", + "y18n": "^3.2.0" } } } }, - "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.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "gulp-sass": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-4.0.2.tgz", + "integrity": "sha512-q8psj4+aDrblJMMtRxihNBdovfzGrXJp1l4JU0Sz4b/Mhsi2DPrKFYCGDwjIWRENs04ELVHxdOJQ7Vs98OFohg==", + "dev": true, "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "chalk": "^2.3.0", + "lodash.clonedeep": "^4.3.2", + "node-sass": "^4.8.3", + "plugin-error": "^1.0.1", + "replace-ext": "^1.0.0", + "strip-ansi": "^4.0.0", + "through2": "^2.0.0", + "vinyl-sourcemaps-apply": "^0.2.0" } }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "gulp-sass-variables": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/gulp-sass-variables/-/gulp-sass-variables-1.1.1.tgz", + "integrity": "sha1-lZIVkPihuEpofryz7Lwwp0vO9E0=", "dev": true, "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" + "gulp-util": "^3.0.7", + "through2": "^2.0.1" } }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "macos-notification-state": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/macos-notification-state/-/macos-notification-state-1.1.0.tgz", - "integrity": "sha1-7llnHgXB7DiMCwkQHvYRyFtLTg4=", - "requires": { - "bindings": "^1.2.1", - "nan": "^2.4.0" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "gulp-server-livereload": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/gulp-server-livereload/-/gulp-server-livereload-1.9.2.tgz", + "integrity": "sha1-PbIn80Y8/k8pv2WgE7qhYuKnQMY=", "dev": true, "requires": { - "pify": "^3.0.0" + "commander": "^2.8.1", + "connect": "~3.1.1", + "connect-inject": "~0.3.2", + "glogg": "^1.0.0", + "gulp-util": "^3.0.7", + "gulplog": "^1.0.0", + "lodash": "^4.0.0", + "node-watch": "^0.3.4", + "node.extend": "~1.0.10", + "open": "~0.0.5", + "proxy-middleware": "~0.15.0", + "serve-index": "~1.1.4", + "serve-static": "~1.5.2", + "socket.io": "^1.4.4", + "through2": "~0.5.1", + "vinyl-fs": "^1.0.0" }, "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", "dev": true - } - } - }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "requires": { - "kind-of": "^6.0.2" - } - }, - "map-age-cleaner": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz", - "integrity": "sha512-UN1dNocxQq44IhJyMI4TU8phc2m9BddacHRPRjKGLYaF0jqd3xLz0jS0skpAU9WgYyoR4gHtUpzytNBS385FWQ==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "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-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "dev": true, - "requires": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - } - }, - "math-random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", - "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=" - }, - "mdi": { - "version": "1.9.33", - "resolved": "https://registry.npmjs.org/mdi/-/mdi-1.9.33.tgz", - "integrity": "sha1-PK9tlfxrgAYzYwvWK6DPH73msuI=" - }, - "mem": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz", - "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^1.0.0", - "p-is-promise": "^1.1.0" - } - }, - "meow": { - "version": "3.7.0", - "resolved": "http://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - } - }, - "merge-stream": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-0.1.8.tgz", - "integrity": "sha1-SKB7O0oSHXSj7b/c20sIrb8CQLE=", - "dev": true, - "requires": { - "through2": "^0.6.1" - }, - "dependencies": { - "isarray": { + }, + "clone-stats": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", "dev": true }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "gaze": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", + "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "globule": "~0.1.0" } }, - "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 + "glob": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^2.0.1", + "once": "^1.3.0" + } }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "glob-stream": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-4.1.1.tgz", + "integrity": "sha1-uELfENaIx+trz869hG84UilrMgA=", "dev": true, "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" + "glob": "^4.3.1", + "glob2base": "^0.0.12", + "minimatch": "^2.0.1", + "ordered-read-streams": "^0.1.0", + "through2": "^0.6.1", + "unique-stream": "^2.0.2" + }, + "dependencies": { + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "mime": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", - "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", - "dev": true - }, - "mime-db": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", - "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" - }, - "mime-types": { - "version": "2.1.21", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", - "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", - "requires": { - "mime-db": "~1.37.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "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.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "minimist-options": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" - } - }, - "minipass": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.4.tgz", - "integrity": "sha512-mlouk1OHlaUE8Odt1drMtG1bAJA4ZA6B/ehysgV0LUIrDHdKgo1KorZq3pK0b/7Z7LJIQ12MNM6aC+Tn6lUZ5w==", - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - }, - "dependencies": { + }, + "glob-watcher": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.8.tgz", + "integrity": "sha1-aK62Yefizo02NDgbLsQV8AxrwqQ=", + "dev": true, + "requires": { + "gaze": "^0.5.1" + } + }, + "globule": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", + "dev": true, + "requires": { + "glob": "~3.1.21", + "lodash": "~1.0.1", + "minimatch": "~0.2.11" + }, + "dependencies": { + "glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "dev": true, + "requires": { + "graceful-fs": "~1.2.0", + "inherits": "1", + "minimatch": "~0.2.11" + } + }, + "graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "dev": true + }, + "inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", + "dev": true + }, + "lodash": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", + "dev": true + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true, + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + } + } + }, + "graceful-fs": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", + "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", + "dev": true, + "requires": { + "natives": "^1.1.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "dev": true, + "requires": { + "brace-expansion": "^1.0.0" + } + }, + "object-assign": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", + "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=", + "dev": true + }, + "ordered-read-streams": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", + "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "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-bom": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", + "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", + "dev": true, + "requires": { + "first-chunk-stream": "^1.0.0", + "is-utf8": "^0.2.0" + } + }, + "through2": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.5.1.tgz", + "integrity": "sha1-390BLrnHAOIyP9M084rGIqs3Lac=", + "dev": true, + "requires": { + "readable-stream": "~1.0.17", + "xtend": "~3.0.0" + } + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "dev": true, + "requires": { + "clone": "^0.2.0", + "clone-stats": "^0.0.1" + } + }, + "vinyl-fs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-1.0.0.tgz", + "integrity": "sha1-0VdS5owtrXQ2Tn6FNHNzU1RpLt8=", + "dev": true, + "requires": { + "duplexify": "^3.2.0", + "glob-stream": "^4.0.1", + "glob-watcher": "^0.0.8", + "graceful-fs": "^3.0.0", + "merge-stream": "^0.1.7", + "mkdirp": "^0.5.0", + "object-assign": "^2.0.0", + "strip-bom": "^1.0.0", + "through2": "^0.6.1", + "vinyl": "^0.4.0" + }, + "dependencies": { + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "xtend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", + "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", + "dev": true + }, "yallist": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", @@ -9819,2730 +9829,3044 @@ } } }, - "minizlib": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.1.tgz", - "integrity": "sha512-TrfjCjk4jLhcJyGMYymBH6oTXcWjYbUAXTHDbtnWHjZC25h0cdajHuPE1zxb4DVmu8crfh+HwH/WMuyLG0nHBg==", - "requires": { - "minipass": "^2.2.1" - } - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "gulp-util": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", + "dev": true, "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "array-differ": "^1.0.0", + "array-uniq": "^1.0.2", + "beeper": "^1.0.0", + "chalk": "^1.0.0", + "dateformat": "^2.0.0", + "fancy-log": "^1.1.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.0.0", + "minimist": "^1.1.0", + "multipipe": "^0.1.2", + "object-assign": "^3.0.0", + "replace-ext": "0.0.1", + "through2": "^2.0.0", + "vinyl": "^0.5.0" }, "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "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=", + "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.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "dev": true + }, + "dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", + "dev": true + }, + "lodash.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", + "dev": true, + "requires": { + "lodash._basecopy": "^3.0.0", + "lodash._basetostring": "^3.0.0", + "lodash._basevalues": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0", + "lodash.keys": "^3.0.0", + "lodash.restparam": "^3.0.0", + "lodash.templatesettings": "^3.0.0" + } + }, + "lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0" + } + }, + "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=", + "dev": true + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "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=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "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 + }, + "vinyl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "dev": true, + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } } } }, - "mobx": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/mobx/-/mobx-5.7.0.tgz", - "integrity": "sha512-i+EwjPLq/QSvOFtAuhcd5FFWDxWK3gCJCFbW5dhgc4wsaHB/cL6DEVms3vZDgc2txWcfzjYWfknjggE/c0c4fw==" - }, - "mobx-localstorage": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mobx-localstorage/-/mobx-localstorage-1.1.0.tgz", - "integrity": "sha512-R/7hN34XC6kCzXFIYM3E+GKJT+2lUIrqK+7tdqjUFoh5asOFd0trJt4TYxdLy+7UG2UlFzTKpYCyUgZNrsTl2g==", + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true, "requires": { - "reactive-localstorage": "^0.0.2" + "glogg": "^1.0.0" } }, - "mobx-react": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-5.4.2.tgz", - "integrity": "sha512-alSN0KDAAOb1OkYujfoJjjk0JWxWRKO4sLGB4hN2CuvaJMrlj7bhGQe7CBMJvEFNjtJRbhJcquYVjQ3rrH2zQQ==", + "handle-thing": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", + "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==", + "dev": true + }, + "handlebars": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.0.tgz", + "integrity": "sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w==", + "dev": true, "requires": { - "hoist-non-react-statics": "^3.0.0", - "react-lifecycles-compat": "^3.0.2" + "async": "^2.5.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" }, "dependencies": { - "hoist-non-react-statics": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.2.1.tgz", - "integrity": "sha512-TFsu3TV3YLY+zFTZDrN8L2DTFanObwmBLpWvJs1qfUuEQ5bTAdFcwfx2T/bsCXfM9QHSLvjfP+nihEl0yvozxw==", + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, "requires": { - "react-is": "^16.3.2" + "lodash": "^4.17.10" } } } }, - "mobx-react-form": { - "version": "1.35.1", - "resolved": "https://registry.npmjs.org/mobx-react-form/-/mobx-react-form-1.35.1.tgz", - "integrity": "sha1-iSrsZykiThHCl4+4LmetxOgOOmo=", + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, "requires": { - "lodash": "^4.16.2" + "ajv": "^6.5.5", + "har-schema": "^2.0.0" } }, - "mobx-react-router": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/mobx-react-router/-/mobx-react-router-3.1.2.tgz", - "integrity": "sha1-gzKLEIOTAXFI2G/qF/YR3i0qrNw=" - }, - "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.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true - }, - "moment": { - "version": "2.22.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", - "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=" + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } }, - "ms": { + "has-ansi": { "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=", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "duplexer2": "0.0.2" + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } } }, - "mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==" + "has-binary": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", + "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", + "dev": true, + "requires": { + "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + } + } }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", "dev": true }, - "nan": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", - "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==" - }, - "nanoid": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-1.3.4.tgz", - "integrity": "sha512-4ug4BsuHxiVHoRUe1ud6rUFT3WUMmjXt1W0quL0CviZQANdan7D8kqN5/maw53hmAApY/jfzMRkC57BNNs60ZQ==" + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "sparkles": "^1.0.0" } }, - "natives": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz", - "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==", + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", "dev": true }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true }, - "negotiator": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.4.7.tgz", - "integrity": "sha1-pBYPcXfsgGc4Yx0NMFIyXaQqvcg=", - "dev": true - }, - "next-tick": { + "has-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-abi": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.4.5.tgz", - "integrity": "sha512-aa/UC6Nr3+tqhHGRsAuw/edz7/q9nnetBrKWxj6rpTtm+0X9T1qU7lIEHMS3yN9JwAbRiKUbRRFy1PLz/y3aaA==", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "semver": "^5.4.1" - } - }, - "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.11", - "is-stream": "^1.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, - "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { - "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=", + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" + "is-buffer": "^1.1.5" } } } }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true - }, - "node-releases": { - "version": "1.0.0-alpha.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.0.0-alpha.14.tgz", - "integrity": "sha512-G8nnF9cP9QPP/jUmYWw/uUUhumHmkm+X/EarCugYFjYm2uXRMFeOD6CVT3RLdoyCvDUNy51nirGfUItKWs/S1g==", + "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": { - "semver": "^5.3.0" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "node-sass": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.4.tgz", - "integrity": "sha512-MXyurANsUoE4/6KmfMkwGcBzAnJQ5xJBGW7Ei6ea8KnUKuzHr/SguVBIi3uaUAHtZCPUYkvlJ3Ef5T5VAwVpaA==", + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, "requires": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^3.0.0", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "in-publish": "^2.0.0", - "lodash.assign": "^4.2.0", - "lodash.clonedeep": "^4.3.2", - "lodash.mergewith": "^4.6.0", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.10.0", - "node-gyp": "^3.8.0", - "npmlog": "^4.0.0", - "request": "^2.88.0", - "sass-graph": "^2.2.4", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "dependencies": { - "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.0.1", - "which": "^1.2.9" - } - } + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "node-watch": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.3.5.tgz", - "integrity": "sha1-oH8lOk9TjenUylIt1/GZbu7A2X4=", + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, - "node.extend": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/node.extend/-/node.extend-1.0.10.tgz", - "integrity": "sha1-Mmm934HFRTX0CKvHhMMrDSvVX28=", - "dev": true, - "requires": { - "is": "~0.3.0" - } + "hex-rgb": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hex-rgb/-/hex-rgb-3.0.0.tgz", + "integrity": "sha512-iWOUTZu7KQGhErV8JfTQDH5F/M2D0HVd0sexS4Grg4e4RYAiN3c4jfpPqKgfedqeebKcNZBl2z3zlgCtFjpFJQ==", + "dev": true }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, + "hex-to-rgba": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hex-to-rgba/-/hex-to-rgba-1.0.2.tgz", + "integrity": "sha512-fL+4NFccs86iOuDnFl1Mhyn471qTPAkpE7k39+JYGPMB3+S9LoUnauQI2nz6BUb3DpYQCx8RqENbaf8IFdKYOg==" + }, + "history": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/history/-/history-3.3.0.tgz", + "integrity": "sha1-/O3M6PEpdTcVRdc1RhAzV5ptrpw=", "requires": { - "abbrev": "1" + "invariant": "^2.2.1", + "loose-envify": "^1.2.0", + "query-string": "^4.2.2", + "warning": "^3.0.0" } }, - "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==", + "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": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", - "dev": true - } + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.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.0.1" - } + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "hoist-non-react-statics": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz", + "integrity": "sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==", "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" + "react-is": "^16.7.0" } }, - "now-and-later": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.0.tgz", - "integrity": "sha1-vGHLtFbXnLMiB85HygUTb/Ln1u4=", + "home-or-tmp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-3.0.0.tgz", + "integrity": "sha1-V6j+JM8zzdUkhgoVgh3cJchmcfs=", + "dev": true + }, + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", "dev": true, "requires": { - "once": "^1.3.2" + "parse-passwd": "^1.0.0" } }, - "npm": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/npm/-/npm-6.5.0.tgz", - "integrity": "sha512-SPq8zG2Kto+Xrq55E97O14Jla13PmQT5kSnvwBj88BmJZ5Nvw++OmlWfhjkB67pcgP5UEXljEtnGFKZtOgt6MQ==", + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" + }, + "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": { - "JSONStream": "^1.3.4", - "abbrev": "~1.1.1", - "ansicolors": "~0.3.2", - "ansistyles": "~0.1.3", - "aproba": "~1.2.0", - "archy": "~1.0.0", - "bin-links": "^1.1.2", - "bluebird": "^3.5.3", - "byte-size": "^4.0.3", - "cacache": "^11.2.0", - "call-limit": "~1.1.0", - "chownr": "~1.0.1", - "ci-info": "^1.6.0", - "cli-columns": "^3.1.2", - "cli-table3": "^0.5.0", - "cmd-shim": "~2.0.2", - "columnify": "~1.5.4", - "config-chain": "^1.1.12", - "debuglog": "*", - "detect-indent": "~5.0.0", - "detect-newline": "^2.1.0", - "dezalgo": "~1.0.3", - "editor": "~1.0.0", - "figgy-pudding": "^3.5.1", - "find-npm-prefix": "^1.0.2", - "fs-vacuum": "~1.2.10", - "fs-write-stream-atomic": "~1.0.10", - "gentle-fs": "^2.0.1", - "glob": "^7.1.3", - "graceful-fs": "^4.1.15", - "has-unicode": "~2.0.1", - "hosted-git-info": "^2.7.1", - "iferr": "^1.0.2", - "imurmurhash": "*", - "inflight": "~1.0.6", - "inherits": "~2.0.3", - "ini": "^1.3.5", - "init-package-json": "^1.10.3", - "is-cidr": "^2.0.6", - "json-parse-better-errors": "^1.0.2", - "lazy-property": "~1.0.0", - "libcipm": "^2.0.2", - "libnpmhook": "^4.0.1", - "libnpx": "^10.2.0", - "lock-verify": "^2.0.2", - "lockfile": "^1.0.4", - "lodash._baseindexof": "*", - "lodash._baseuniq": "~4.6.0", - "lodash._bindcallback": "*", - "lodash._cacheindexof": "*", - "lodash._createcache": "*", - "lodash._getnative": "*", - "lodash.clonedeep": "~4.5.0", - "lodash.restparam": "*", - "lodash.union": "~4.6.0", - "lodash.uniq": "~4.5.0", - "lodash.without": "~4.4.0", - "lru-cache": "^4.1.3", - "meant": "~1.0.1", - "mississippi": "^3.0.0", - "mkdirp": "~0.5.1", - "move-concurrently": "^1.0.1", - "node-gyp": "^3.8.0", - "nopt": "~4.0.1", - "normalize-package-data": "~2.4.0", - "npm-audit-report": "^1.3.1", - "npm-cache-filename": "~1.0.2", - "npm-install-checks": "~3.0.0", - "npm-lifecycle": "^2.1.0", - "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.1.12", - "npm-pick-manifest": "^2.1.0", - "npm-profile": "^3.0.2", - "npm-registry-client": "^8.6.0", - "npm-registry-fetch": "^1.1.0", - "npm-user-validate": "~1.0.0", - "npmlog": "~4.1.2", - "once": "~1.4.0", - "opener": "^1.5.1", - "osenv": "^0.1.5", - "pacote": "^8.1.6", - "path-is-inside": "~1.0.2", - "promise-inflight": "~1.0.1", - "qrcode-terminal": "^0.12.0", - "query-string": "^6.1.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.13", - "read-package-tree": "^5.2.1", - "readable-stream": "^2.3.6", - "readdir-scoped-modules": "*", - "request": "^2.88.0", - "retry": "^0.12.0", - "rimraf": "~2.6.2", - "safe-buffer": "^5.1.2", - "semver": "^5.5.1", - "sha": "~2.0.1", - "slide": "~1.1.6", - "sorted-object": "~2.0.1", - "sorted-union-stream": "~2.1.3", - "ssri": "^6.0.1", - "stringify-package": "^1.0.0", - "tar": "^4.4.8", - "text-table": "~0.2.0", - "tiny-relative-date": "^1.3.0", - "uid-number": "0.0.6", - "umask": "~1.1.0", - "unique-filename": "~1.1.0", - "unpipe": "~1.0.0", - "update-notifier": "^2.5.0", - "uuid": "^3.3.2", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "~3.0.0", - "which": "^1.3.1", - "worker-farm": "^1.6.0", - "write-file-atomic": "^2.3.0" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" }, "dependencies": { - "JSONStream": { - "version": "1.3.4", - "bundled": true, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "abbrev": { + "string_decoder": { "version": "1.1.1", - "bundled": true, - "dev": true - }, - "agent-base": { - "version": "4.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "es6-promisify": "^5.0.0" + "safe-buffer": "~5.1.0" } - }, - "agentkeepalive": { - "version": "3.4.1", - "bundled": true, - "dev": true, - "requires": { - "humanize-ms": "^1.2.1" - } - }, - "ajv": { - "version": "5.5.2", - "bundled": true, + } + } + }, + "html-element-attributes": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-element-attributes/-/html-element-attributes-1.3.1.tgz", + "integrity": "sha512-UrRKgp5sQmRnDy4TEwAUsu14XBUlzKB8U3hjIYDjcZ3Hbp86Jtftzxfgrv6E/ii/h78tsaZwAnAE8HwnHr0dPA==" + }, + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "dev": true + }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + } + } + }, + "html-webpack-plugin": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.5.tgz", + "integrity": "sha512-y5l4lGxOW3pz3xBTFdfB9rnnrWRPVxlAhX6nrBYIcW+2k2zC3mSp/3DxlWVCMBfnO6UAnoF8OcFn0IMy6kaKAQ==", + "dev": true, + "requires": { + "html-minifier": "^3.5.20", + "loader-utils": "^1.1.0", + "lodash": "^4.17.11", + "pretty-error": "^2.1.1", + "tapable": "^1.1.0", + "util.promisify": "1.0.0" + } + }, + "htmlparser2": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.0.tgz", + "integrity": "sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ==", + "requires": { + "domelementtype": "^1.3.0", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.0.6" + } + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, + "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.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + } + } + }, + "http-parser-js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz", + "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==", + "dev": true + }, + "http-proxy": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", + "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", + "dev": true, + "requires": { + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } } - }, - "ansi-align": { - "version": "2.0.0", - "bundled": true, + } + } + }, + "http-proxy-middleware": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz", + "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==", + "dev": true, + "requires": { + "http-proxy": "^1.16.2", + "is-glob": "^4.0.0", + "lodash": "^4.17.5", + "micromatch": "^3.1.9" + } + }, + "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.2.2", + "sshpk": "^1.7.0" + } + }, + "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 + }, + "https-proxy-agent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", + "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "dev": true, + "requires": { + "agent-base": "^4.1.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "string-width": "^2.0.0" + "ms": "^2.1.1" } }, - "ansi-regex": { + "ms": { "version": "2.1.1", - "bundled": true, - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "bundled": true, - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "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, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true - }, - "archy": { - "version": "1.0.0", - "bundled": true, + } + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "hunspell-asm": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hunspell-asm/-/hunspell-asm-1.0.2.tgz", + "integrity": "sha512-UTLBvc0yZiIcHl9qrgxnFTZbX3zF4CprzEY+u+N0iXlUKZnUJRIgvgppTdgiQTsucm5b0aN/rHsgXz2q/0kBRA==", + "requires": { + "emscripten-wasm-loader": "^1.0.0", + "nanoid": "^1.0.2", + "tslib": "^1.9.0", + "unixify": "^1.0.0" + } + }, + "husky": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/husky/-/husky-1.3.1.tgz", + "integrity": "sha512-86U6sVVVf4b5NYSZ0yvv88dRgBSSXXmHaiq5pP4KDj5JVzdwKgBjEtUPOm8hcoytezFwbU+7gotXNhpHdystlg==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.7", + "execa": "^1.0.0", + "find-up": "^3.0.0", + "get-stdin": "^6.0.0", + "is-ci": "^2.0.0", + "pkg-dir": "^3.0.0", + "please-upgrade-node": "^3.1.1", + "read-pkg": "^4.0.1", + "run-node": "^1.0.0", + "slash": "^2.0.0" + }, + "dependencies": { + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", "dev": true }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "find-up": "^3.0.0" } - }, - "asap": { - "version": "2.0.6", - "bundled": true, - "dev": true - }, - "asn1": { - "version": "0.2.4", - "bundled": true, + } + } + }, + "hyphenate-style-name": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz", + "integrity": "sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", + "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "dependencies": { + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", "dev": true, "requires": { - "safer-buffer": "~2.1.0" + "caller-callsite": "^2.0.0" } }, - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "bundled": true, - "dev": true - }, - "aws4": { - "version": "1.8.0", - "bundled": true, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, + } + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "import-local": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", + "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", + "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 + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "dev": true + }, + "indefinite-observable": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/indefinite-observable/-/indefinite-observable-1.0.2.tgz", + "integrity": "sha512-Mps0898zEduHyPhb7UCgNmfzlqNZknVmaFz5qzr0mm04YQ5FGLhAyK/dJ+NaRxGyR6juQXIxh5Ev0xx+qq0nYA==", + "dev": true, + "requires": { + "symbol-observable": "1.2.0" + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "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.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "init-package-json": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz", + "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", + "dev": true, + "requires": { + "glob": "^7.1.1", + "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^3.0.0" + } + }, + "inquirer": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.2.tgz", + "integrity": "sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.11", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz", + "integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==", "dev": true }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bin-links": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.0", - "cmd-shim": "^2.0.2", - "gentle-fs": "^2.0.0", - "graceful-fs": "^4.1.11", - "write-file-atomic": "^2.3.0" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, + "strip-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz", + "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", "dev": true, "requires": { - "inherits": "~2.0.0" + "ansi-regex": "^4.0.0" } - }, - "bluebird": { - "version": "3.5.3", - "bundled": true, - "dev": true - }, - "boxen": { - "version": "1.3.0", - "bundled": true, + } + } + }, + "internal-ip": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-3.0.1.tgz", + "integrity": "sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==", + "dev": true, + "requires": { + "default-gateway": "^2.6.0", + "ipaddr.js": "^1.5.2" + } + }, + "interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "dev": true + }, + "intl-format-cache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.1.0.tgz", + "integrity": "sha1-BKNp/sv61tpgBbrh8UMzMy3PkxY=" + }, + "intl-messageformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz", + "integrity": "sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=", + "requires": { + "intl-messageformat-parser": "1.4.0" + } + }, + "intl-messageformat-parser": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz", + "integrity": "sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU=" + }, + "intl-relativeformat": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.1.0.tgz", + "integrity": "sha1-AQ8RBYAiUfQKxH0OPhogE0iiVd8=", + "requires": { + "intl-messageformat": "^2.0.0" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "inversify": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/inversify/-/inversify-5.0.1.tgz", + "integrity": "sha512-Ieh06s48WnEYGcqHepdsJUIJUXpwH5o5vodAX+DK2JA/gjy4EbEcQZxw+uFfzysmKjiLXGYwNG3qDZsKVMcINQ==", + "dev": true + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", + "dev": true + }, + "is": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is/-/is-0.3.0.tgz", + "integrity": "sha1-qPcd/IpuKDcWJ/JskpCYxvTV1dc=", + "dev": true + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" + "is-buffer": "^1.1.5" } - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, + } + } + }, + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.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==", + "dev": true + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "is-buffer": "^1.1.5" } - }, - "buffer-from": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "bundled": true, - "dev": true - }, - "builtins": { - "version": "1.0.3", - "bundled": true, - "dev": true - }, - "byline": { - "version": "5.0.0", - "bundled": true, - "dev": true - }, - "byte-size": { - "version": "4.0.3", - "bundled": true, - "dev": true - }, - "cacache": { - "version": "11.2.0", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "figgy-pudding": "^3.1.0", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.3", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^6.0.0", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" - } - }, - "call-limit": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "bundled": true, - "dev": true - }, - "capture-stack-trace": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "dev": true - }, - "chalk": { - "version": "2.4.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chownr": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "ci-info": { - "version": "1.6.0", - "bundled": true, - "dev": true - }, - "cidr-regex": { - "version": "2.0.9", - "bundled": true, - "dev": true, - "requires": { - "ip-regex": "^2.1.0" - } - }, - "cli-boxes": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "cli-columns": { - "version": "3.1.2", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^2.0.0", - "strip-ansi": "^3.0.1" - } - }, - "cli-table3": { - "version": "0.5.0", - "bundled": true, - "dev": true, - "requires": { - "colors": "^1.1.2", - "object-assign": "^4.1.0", - "string-width": "^2.1.1" - } - }, - "cliui": { - "version": "4.1.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "clone": { - "version": "1.0.4", - "bundled": true, - "dev": true - }, - "cmd-shim": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "mkdirp": "~0.5.0" - } - }, - "co": { - "version": "4.6.0", - "bundled": true, - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "color-convert": { - "version": "1.9.1", - "bundled": true, - "dev": true, - "requires": { - "color-name": "^1.1.1" - } - }, - "color-name": { - "version": "1.1.3", - "bundled": true, + } + } + }, + "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-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true - }, - "colors": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "columnify": { - "version": "1.5.4", - "bundled": true, + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "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=", + "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" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "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-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.0" + } + }, + "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=" + }, + "is-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", + "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-in-browser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", + "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" + }, + "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.0", + "is-path-inside": "^1.0.0" + } + }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "dev": true + }, + "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": "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.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "strip-ansi": "^3.0.0", - "wcwidth": "^1.0.0" + "is-buffer": "^1.1.5" } - }, - "combined-stream": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "bundled": true, - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "config-chain": { - "version": "1.1.12", - "bundled": true, - "dev": true, - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "configstore": { - "version": "3.1.2", - "bundled": true, - "dev": true, - "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "copy-concurrently": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, - "dependencies": { - "iferr": { - "version": "0.1.5", - "bundled": true, - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "create-error-class": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "requires": { - "capture-stack-trace": "^1.0.0" - } - }, - "cross-spawn": { - "version": "5.1.0", - "bundled": true, - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto-random-string": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "cyclist": { - "version": "0.2.2", - "bundled": true, - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true - } - } - }, - "debuglog": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "bundled": true, - "dev": true - }, - "deep-extend": { - "version": "0.5.1", - "bundled": true, - "dev": true - }, - "defaults": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "detect-indent": { - "version": "5.0.0", - "bundled": true, - "dev": true - }, - "detect-newline": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "dezalgo": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "dot-prop": { - "version": "4.2.0", - "bundled": true, - "dev": true, - "requires": { - "is-obj": "^1.0.0" - } - }, - "dotenv": { - "version": "5.0.1", - "bundled": true, - "dev": true - }, - "duplexer3": { - "version": "0.1.4", - "bundled": true, - "dev": true - }, - "duplexify": { - "version": "3.6.0", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "editor": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "encoding": { - "version": "0.1.12", - "bundled": true, - "dev": true, - "requires": { - "iconv-lite": "~0.4.13" - } - }, - "end-of-stream": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "err-code": { - "version": "1.1.2", - "bundled": true, - "dev": true - }, - "errno": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "es6-promise": { - "version": "4.2.4", - "bundled": true, - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "es6-promise": "^4.0.3" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "bundled": true, - "dev": true - }, - "execa": { - "version": "0.7.0", - "bundled": true, - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "extend": { - "version": "3.0.2", - "bundled": true, - "dev": true - }, - "extsprintf": { - "version": "1.3.0", - "bundled": true, - "dev": true - }, - "fast-deep-equal": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "figgy-pudding": { - "version": "3.5.1", - "bundled": true, - "dev": true - }, - "find-npm-prefix": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "find-up": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "flush-write-stream": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.4" - } - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true, - "dev": true - }, - "form-data": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "1.0.6", - "mime-types": "^2.1.12" - } - }, - "from2": { - "version": "2.3.0", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs-vacuum": { - "version": "1.2.10", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "path-is-inside": "^1.0.1", - "rimraf": "^2.5.2" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - }, - "dependencies": { - "iferr": { - "version": "0.1.5", - "bundled": true, - "dev": true - } - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "fstream": { - "version": "1.0.11", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "genfun": { - "version": "4.0.1", - "bundled": true, - "dev": true - }, - "gentle-fs": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.1.2", - "fs-vacuum": "^1.2.10", - "graceful-fs": "^4.1.11", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "path-is-inside": "^1.0.2", - "read-cmd-shim": "^1.0.1", - "slide": "^1.1.6" - }, - "dependencies": { - "iferr": { - "version": "0.1.5", - "bundled": true, - "dev": true - } - } - }, - "get-caller-file": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "global-dirs": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "requires": { - "ini": "^1.3.4" - } - }, - "got": { - "version": "6.7.1", - "bundled": true, - "dev": true, - "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.15", - "bundled": true, - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "har-validator": { - "version": "5.1.0", - "bundled": true, - "dev": true, - "requires": { - "ajv": "^5.3.0", - "har-schema": "^2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "hosted-git-info": { - "version": "2.7.1", - "bundled": true, - "dev": true - }, - "http-cache-semantics": { - "version": "3.8.1", - "bundled": true, - "dev": true - }, - "http-proxy-agent": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "4", - "debug": "3.1.0" - } - }, - "http-signature": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "^4.1.0", - "debug": "^3.1.0" - } - }, - "humanize-ms": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "requires": { - "ms": "^2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.23", - "bundled": true, - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "iferr": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "import-lazy": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true, - "dev": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true - }, - "init-package-json": { - "version": "1.10.3", - "bundled": true, - "dev": true, - "requires": { - "glob": "^7.1.1", - "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", - "promzard": "^0.3.0", - "read": "~1.0.1", - "read-package-json": "1 || 2", - "semver": "2.x || 3.x || 4 || 5", - "validate-npm-package-license": "^3.0.1", - "validate-npm-package-name": "^3.0.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "ip": { - "version": "1.1.5", - "bundled": true, - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-ci": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "ci-info": "^1.0.0" - } - }, - "is-cidr": { - "version": "2.0.6", - "bundled": true, - "dev": true, - "requires": { - "cidr-regex": "^2.0.8" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-installed-globally": { - "version": "0.1.0", - "bundled": true, - "dev": true, - "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" - } - }, - "is-npm": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "is-obj": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "is-path-inside": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "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 - }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true, - "dev": true - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "bundled": true, - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "dev": true - }, - "jsonparse": { - "version": "1.3.1", - "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" - } - }, - "latest-version": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "package-json": "^4.0.0" - } - }, - "lazy-property": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "lcid": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "libcipm": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "bin-links": "^1.1.2", - "bluebird": "^3.5.1", - "find-npm-prefix": "^1.0.2", - "graceful-fs": "^4.1.11", - "lock-verify": "^2.0.2", - "mkdirp": "^0.5.1", - "npm-lifecycle": "^2.0.3", - "npm-logical-tree": "^1.2.1", - "npm-package-arg": "^6.1.0", - "pacote": "^8.1.6", - "protoduck": "^5.0.0", - "read-package-json": "^2.0.13", - "rimraf": "^2.6.2", - "worker-farm": "^1.6.0" - } - }, - "libnpmhook": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "requires": { - "figgy-pudding": "^3.1.0", - "npm-registry-fetch": "^3.0.0" - }, - "dependencies": { - "npm-registry-fetch": { - "version": "3.1.1", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "figgy-pudding": "^3.1.0", - "lru-cache": "^4.1.2", - "make-fetch-happen": "^4.0.0", - "npm-package-arg": "^6.0.0" - } - } - } - }, - "libnpx": { - "version": "10.2.0", - "bundled": true, - "dev": true, - "requires": { - "dotenv": "^5.0.1", - "npm-package-arg": "^6.0.0", - "rimraf": "^2.6.2", - "safe-buffer": "^5.1.0", - "update-notifier": "^2.3.0", - "which": "^1.3.0", - "y18n": "^4.0.0", - "yargs": "^11.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lock-verify": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "npm-package-arg": "^5.1.2 || 6", - "semver": "^5.4.1" - } - }, - "lockfile": { - "version": "1.0.4", - "bundled": true, - "dev": true, - "requires": { - "signal-exit": "^3.0.2" - } - }, - "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.0", - "lodash._root": "~3.0.0" - } - }, - "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.0.0" - } - }, - "lodash._createset": { - "version": "4.0.3", - "bundled": true, - "dev": true - }, - "lodash._getnative": { - "version": "3.9.1", - "bundled": true, - "dev": true - }, - "lodash._root": { - "version": "3.0.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 - }, - "lowercase-keys": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "lru-cache": { - "version": "4.1.3", - "bundled": true, - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "make-fetch-happen": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "requires": { - "agentkeepalive": "^3.4.1", - "cacache": "^11.0.1", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "lru-cache": "^4.1.2", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^4.0.0", - "ssri": "^6.0.0" - } - }, - "meant": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "mem": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "mime-db": { - "version": "1.35.0", - "bundled": true, - "dev": true - }, - "mime-types": { - "version": "2.1.19", - "bundled": true, - "dev": true, - "requires": { - "mime-db": "~1.35.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "minipass": { - "version": "2.3.3", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - }, - "dependencies": { - "yallist": { - "version": "3.0.2", - "bundled": true, - "dev": true - } - } - }, - "minizlib": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mississippi": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "move-concurrently": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "mute-stream": { - "version": "0.0.7", - "bundled": true, - "dev": true - }, - "node-fetch-npm": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "encoding": "^0.1.11", - "json-parse-better-errors": "^1.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node-gyp": { - "version": "3.8.0", - "bundled": true, - "dev": true, - "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "dependencies": { - "nopt": { - "version": "3.0.6", - "bundled": true, - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "semver": { - "version": "5.3.0", - "bundled": true, - "dev": true - }, - "tar": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" - } - } - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "bundled": true, - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-audit-report": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "cli-table3": "^0.5.0", - "console-control-strings": "^1.1.0" - } - }, - "npm-bundled": { - "version": "1.0.5", - "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": "^2.3.0 || 3.x || 4 || 5" - } - }, - "npm-lifecycle": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "byline": "^5.0.0", - "graceful-fs": "^4.1.11", - "node-gyp": "^3.8.0", - "resolve-from": "^4.0.0", - "slide": "^1.1.6", - "uid-number": "0.0.6", - "umask": "^1.1.0", - "which": "^1.3.1" - } - }, - "npm-logical-tree": { - "version": "1.2.1", - "bundled": true, - "dev": true - }, - "npm-package-arg": { - "version": "6.1.0", - "bundled": true, - "dev": true, - "requires": { - "hosted-git-info": "^2.6.0", - "osenv": "^0.1.5", - "semver": "^5.5.0", - "validate-npm-package-name": "^3.0.0" - } - }, - "npm-packlist": { - "version": "1.1.12", - "bundled": true, - "dev": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npm-pick-manifest": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "npm-package-arg": "^6.0.0", - "semver": "^5.4.1" - } - }, - "npm-profile": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.1.2 || 2", - "make-fetch-happen": "^2.5.0 || 3 || 4" - } - }, - "npm-registry-client": { - "version": "8.6.0", - "bundled": true, - "dev": true, - "requires": { - "concat-stream": "^1.5.2", - "graceful-fs": "^4.1.6", - "normalize-package-data": "~1.0.1 || ^2.0.0", - "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", - "npmlog": "2 || ^3.1.0 || ^4.0.0", - "once": "^1.3.3", - "request": "^2.74.0", - "retry": "^0.10.0", - "safe-buffer": "^5.1.1", - "semver": "2 >=2.2.1 || 3.x || 4 || 5", - "slide": "^1.1.3", - "ssri": "^5.2.4" - }, - "dependencies": { - "retry": { - "version": "0.10.1", - "bundled": true, - "dev": true - }, - "ssri": { - "version": "5.3.0", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.1.1" - } - } - } - }, - "npm-registry-fetch": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "figgy-pudding": "^2.0.1", - "lru-cache": "^4.1.2", - "make-fetch-happen": "^3.0.0", - "npm-package-arg": "^6.0.0", - "safe-buffer": "^5.1.1" - }, - "dependencies": { - "cacache": { - "version": "10.0.4", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^2.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^5.2.4", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" - }, - "dependencies": { - "mississippi": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^2.0.1", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - } - } - }, - "figgy-pudding": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "make-fetch-happen": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "agentkeepalive": "^3.4.1", - "cacache": "^10.0.4", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.0", - "lru-cache": "^4.1.2", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^3.0.1", - "ssri": "^5.2.4" - } - }, - "pump": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "smart-buffer": { - "version": "1.1.15", - "bundled": true, - "dev": true - }, - "socks": { - "version": "1.1.10", - "bundled": true, - "dev": true, - "requires": { - "ip": "^1.1.4", - "smart-buffer": "^1.0.13" - } - }, - "socks-proxy-agent": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "^4.1.0", - "socks": "^1.1.10" - } - }, - "ssri": { - "version": "5.3.0", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.1.1" - } - } - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "npm-user-validate": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, + } + } + }, + "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.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.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-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "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=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "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", + "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-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "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-ssh": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.1.tgz", + "integrity": "sha512-0eRIASHZt1E68/ixClI8bp2YK2wmBPVWEismTs6M+M099jKgrzl/3E976zIbImSIob48N2/XGe9y7ZiYdImSlg==", + "dev": true, + "requires": { + "protocols": "^1.1.0" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "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-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, + "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": { + "text-extensions": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "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.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "dev": true, + "requires": { + "buffer-alloc": "^1.2.0" + } + }, + "isemail": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz", + "integrity": "sha1-vgPfjMPineTSxd9lASY/H6RZXpo=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "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.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "joi": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz", + "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=", + "requires": { + "hoek": "2.x.x", + "isemail": "1.x.x", + "moment": "2.x.x", + "topo": "1.x.x" + } + }, + "js-base64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", + "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==", + "dev": true + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz", + "integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "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=", + "dev": true + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true + }, + "json5": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", + "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "jsonwebtoken": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-7.4.3.tgz", + "integrity": "sha1-d/UCHeBYtgWheD+hKD6ZgS5kVjg=", + "requires": { + "joi": "^6.10.1", + "jws": "^3.1.4", + "lodash.once": "^4.0.0", + "ms": "^2.0.0", + "xtend": "^4.0.1" + } + }, + "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", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jss": { + "version": "9.8.7", + "resolved": "https://registry.npmjs.org/jss/-/jss-9.8.7.tgz", + "integrity": "sha512-awj3XRZYxbrmmrx9LUSj5pXSUfm12m8xzi/VKeqI1ZwWBtQ0kVPTs3vYs32t4rFw83CgFDukA8wKzOE9sMQnoQ==", + "requires": { + "is-in-browser": "^1.1.3", + "symbol-observable": "^1.1.0", + "warning": "^3.0.0" + } + }, + "jss-camel-case": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jss-camel-case/-/jss-camel-case-6.1.0.tgz", + "integrity": "sha512-HPF2Q7wmNW1t79mCqSeU2vdd/vFFGpkazwvfHMOhPlMgXrJDzdj9viA2SaHk9ZbD5pfL63a8ylp4++irYbbzMQ==", + "requires": { + "hyphenate-style-name": "^1.0.2" + } + }, + "jss-compose": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/jss-compose/-/jss-compose-5.0.0.tgz", + "integrity": "sha512-YofRYuiA0+VbeOw0VjgkyO380sA4+TWDrW52nSluD9n+1FWOlDzNbgpZ/Sb3Y46+DcAbOS21W5jo6SAqUEiuwA==", + "requires": { + "warning": "^3.0.0" + } + }, + "jss-default-unit": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/jss-default-unit/-/jss-default-unit-8.0.2.tgz", + "integrity": "sha512-WxNHrF/18CdoAGw2H0FqOEvJdREXVXLazn7PQYU7V6/BWkCV0GkmWsppNiExdw8dP4TU1ma1dT9zBNJ95feLmg==" + }, + "jss-expand": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/jss-expand/-/jss-expand-5.3.0.tgz", + "integrity": "sha512-NiM4TbDVE0ykXSAw6dfFmB1LIqXP/jdd0ZMnlvlGgEMkMt+weJIl8Ynq1DsuBY9WwkNyzWktdqcEW2VN0RAtQg==" + }, + "jss-extend": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jss-extend/-/jss-extend-6.2.0.tgz", + "integrity": "sha512-YszrmcB6o9HOsKPszK7NeDBNNjVyiW864jfoiHoMlgMIg2qlxKw70axZHqgczXHDcoyi/0/ikP1XaHDPRvYtEA==", + "requires": { + "warning": "^3.0.0" + } + }, + "jss-global": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jss-global/-/jss-global-3.0.0.tgz", + "integrity": "sha512-wxYn7vL+TImyQYGAfdplg7yaxnPQ9RaXY/cIA8hawaVnmmWxDHzBK32u1y+RAvWboa3lW83ya3nVZ/C+jyjZ5Q==" + }, + "jss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jss-nested/-/jss-nested-6.0.1.tgz", + "integrity": "sha512-rn964TralHOZxoyEgeq3hXY8hyuCElnvQoVrQwKHVmu55VRDd6IqExAx9be5HgK0yN/+hQdgAXQl/GUrBbbSTA==", + "requires": { + "warning": "^3.0.0" + } + }, + "jss-preset-default": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/jss-preset-default/-/jss-preset-default-4.5.0.tgz", + "integrity": "sha512-qZbpRVtHT7hBPpZEBPFfafZKWmq3tA/An5RNqywDsZQGrlinIF/mGD9lmj6jGqu8GrED2SMHZ3pPKLmjCZoiaQ==", + "requires": { + "jss-camel-case": "^6.1.0", + "jss-compose": "^5.0.0", + "jss-default-unit": "^8.0.2", + "jss-expand": "^5.3.0", + "jss-extend": "^6.2.0", + "jss-global": "^3.0.0", + "jss-nested": "^6.0.1", + "jss-props-sort": "^6.0.0", + "jss-template": "^1.0.1", + "jss-vendor-prefixer": "^7.0.0" + } + }, + "jss-props-sort": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/jss-props-sort/-/jss-props-sort-6.0.0.tgz", + "integrity": "sha512-E89UDcrphmI0LzmvYk25Hp4aE5ZBsXqMWlkFXS0EtPkunJkRr+WXdCNYbXbksIPnKlBenGB9OxzQY+mVc70S+g==" + }, + "jss-template": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/jss-template/-/jss-template-1.0.1.tgz", + "integrity": "sha512-m5BqEWha17fmIVXm1z8xbJhY6GFJxNB9H68GVnCWPyGYfxiAgY9WTQyvDAVj+pYRgrXSOfN5V1T4+SzN1sJTeg==", + "requires": { + "warning": "^3.0.0" + } + }, + "jss-vendor-prefixer": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/jss-vendor-prefixer/-/jss-vendor-prefixer-7.0.0.tgz", + "integrity": "sha512-Agd+FKmvsI0HLcYXkvy8GYOw3AAASBUpsmIRvVQheps+JWaN892uFOInTr0DRydwaD91vSSUCU4NssschvF7MA==", + "requires": { + "css-vendor": "^0.3.8" + } + }, + "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" + } + }, + "just-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", + "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", + "dev": true + }, + "jwa": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.2.0.tgz", + "integrity": "sha512-Grku9ZST5NNQ3hqNUodSkDfEBqAmGA1R8yiyPHOnLzEKI0GaCQC/XhFmsheXYuXzFQJdILbh+lYBiliqG5R/Vg==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.10", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.1.tgz", + "integrity": "sha512-bGA2omSrFUkd72dhh05bIAN832znP4wOU3lfuXtRBuGTbsmNmDXMQg28f0Vsxaxgk4myF5YkKQpz6qeRpMgX9g==", + "requires": { + "jwa": "^1.2.0", + "safe-buffer": "^5.0.1" + } + }, + "kebab-case": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/kebab-case/-/kebab-case-1.0.0.tgz", + "integrity": "sha1-P55JkK3K0MaGwOcB92RYaPdfkes=", + "dev": true + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", + "dev": true, + "requires": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + } + }, + "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.0" + } + }, + "lazy-val": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.3.tgz", + "integrity": "sha512-pjCf3BYk+uv3ZcPzEVM0BFvO9Uw58TmlrU0oG5tTrr9Kcid3+kdKxapH8CjdYmVa2nO5wOoZn2rdvZx2PKj/xg==" + }, + "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.0.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "bundled": true, - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true - }, - "once": { - "version": "1.4.0", - "bundled": true, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "wrappy": "1" + "safe-buffer": "~5.1.0" } - }, - "opener": { - "version": "1.5.1", - "bundled": true, - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, + } + } + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "dev": true, + "requires": { + "flush-write-stream": "^1.0.2" + } + }, + "lerna": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/lerna/-/lerna-3.11.1.tgz", + "integrity": "sha512-7an/cia9u6qVTts5PQ/adFq8QSgE7gzG1pUHhH+XKVU1seDKQ99JLu61n3/euv2qeQF+ww4WLKnFHIPa5+LJSQ==", + "dev": true, + "requires": { + "@lerna/add": "3.11.0", + "@lerna/bootstrap": "3.11.0", + "@lerna/changed": "3.11.1", + "@lerna/clean": "3.11.0", + "@lerna/cli": "3.11.0", + "@lerna/create": "3.11.0", + "@lerna/diff": "3.11.0", + "@lerna/exec": "3.11.0", + "@lerna/import": "3.11.0", + "@lerna/init": "3.11.0", + "@lerna/link": "3.11.0", + "@lerna/list": "3.11.0", + "@lerna/publish": "3.11.1", + "@lerna/run": "3.11.0", + "@lerna/version": "3.11.1", + "import-local": "^1.0.0", + "npmlog": "^4.1.2" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "libnpmaccess": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-3.0.1.tgz", + "integrity": "sha512-RlZ7PNarCBt+XbnP7R6PoVgOq9t+kou5rvhaInoNibhPO7eMlRfS0B8yjatgn2yaHIwWNyoJDolC/6Lc5L/IQA==", + "dev": true, + "requires": { + "aproba": "^2.0.0", + "get-stream": "^4.0.0", + "npm-package-arg": "^6.1.0", + "npm-registry-fetch": "^3.8.0" + }, + "dependencies": { + "aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", "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" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, + } + } + }, + "libnpmpublish": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-1.1.1.tgz", + "integrity": "sha512-nefbvJd/wY38zdt+b9SHL6171vqBrMtZ56Gsgfd0duEKb/pB8rDT4/ObUQLrHz1tOfht1flt2zM+UGaemzAG5g==", + "dev": true, + "requires": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.0.0", + "lodash.clonedeep": "^4.5.0", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-registry-fetch": "^3.8.0", + "semver": "^5.5.1", + "ssri": "^6.0.1" + }, + "dependencies": { + "aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", "dev": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, + } + } + }, + "liftoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "dev": true, + "requires": { + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + } + }, + "lightercollective": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lightercollective/-/lightercollective-0.1.0.tgz", + "integrity": "sha512-J9tg5uraYoQKaWbmrzDDexbG6hHnMcWS1qLYgJSWE+mpA3U5OCSeMUhb+K55otgZJ34oFdR0ECvdIb3xuO5JOQ==", + "dev": true + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "loader-fs-cache": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz", + "integrity": "sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw=", + "dev": true, + "requires": { + "find-cache-dir": "^0.1.1", + "mkdirp": "0.5.1" + }, + "dependencies": { + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "dev": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, - "p-finally": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "p-limit": { - "version": "1.2.0", - "bundled": true, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "p-try": "^1.0.0" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, - "p-locate": { - "version": "2.0.0", - "bundled": 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": { - "p-limit": "^1.1.0" + "pinkie-promise": "^2.0.0" } }, - "p-try": { + "pkg-dir": { "version": "1.0.0", - "bundled": true, - "dev": true - }, - "package-json": { - "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "dev": true, "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" + "find-up": "^1.0.0" } - }, - "pacote": { - "version": "8.1.6", - "bundled": true, - "dev": true, - "requires": { - "bluebird": "^3.5.1", - "cacache": "^11.0.2", - "get-stream": "^3.0.0", - "glob": "^7.1.2", - "lru-cache": "^4.1.3", - "make-fetch-happen": "^4.0.1", - "minimatch": "^3.0.4", - "minipass": "^2.3.3", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "normalize-package-data": "^2.4.0", - "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.1.10", - "npm-pick-manifest": "^2.1.0", - "osenv": "^0.1.5", - "promise-inflight": "^1.0.1", - "promise-retry": "^1.1.1", - "protoduck": "^5.0.0", - "rimraf": "^2.6.2", - "safe-buffer": "^5.1.2", - "semver": "^5.5.0", - "ssri": "^6.0.0", - "tar": "^4.4.3", - "unique-filename": "^1.1.0", - "which": "^1.3.0" - } - }, - "parallel-transform": { - "version": "1.1.0", - "bundled": true, + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, "requires": { - "cyclist": "~0.2.2", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" + "minimist": "^1.2.0" } - }, - "path-exists": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "pify": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "bundled": true, - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "bundled": true, + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + }, + "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._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", + "dev": true + }, + "lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", + "dev": true + }, + "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._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", + "dev": true + }, + "lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", + "dev": true + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "dev": true + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "dev": true, + "requires": { + "lodash._root": "^3.0.0" + } + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "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.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, + "lodash.isfunction": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", + "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.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", + "dev": true + }, + "lodash.mergewith": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", + "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", + "dev": true + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, + "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.set": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "lodash.template": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", + "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", + "dev": true, + "requires": { + "lodash._reinterpolate": "~3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", + "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", + "dev": true, + "requires": { + "lodash._reinterpolate": "~3.0.0" + } + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "loglevel": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", + "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=", + "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.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "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.0" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "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 - }, - "promise-retry": { - "version": "1.1.1", - "bundled": true, + } + } + }, + "macos-notification-state": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/macos-notification-state/-/macos-notification-state-1.2.0.tgz", + "integrity": "sha512-80nPI5sFOMopZw5yt9tdaRAKd6gtTKdjuAIdQ5cMdA5ZtkC7jZH0yzBjeM3O4g+tt/GgLA2fORKwACje5dyGgA==", + "requires": { + "bindings": "^1.4.0", + "nan": "^2.12.1" + } + }, + "macos-release": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.0.0.tgz", + "integrity": "sha512-iCM3ZGeqIzlrH7KxYK+fphlJpCCczyHXc+HhRVbEu9uNTCrzYJjvvtefzeKTCVHd5AP/aD/fzC80JZ4ZP+dQ/A==", + "dev": true + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "make-fetch-happen": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz", + "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==", + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^11.0.1", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + } + }, + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", + "dev": true, + "requires": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + } + }, + "math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", + "dev": true + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdi": { + "version": "1.9.33", + "resolved": "https://registry.npmjs.org/mdi/-/mdi-1.9.33.tgz", + "integrity": "sha1-PK9tlfxrgAYzYwvWK6DPH73msuI=" + }, + "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": "4.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.1.0.tgz", + "integrity": "sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^1.0.0", + "p-is-promise": "^2.0.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.3", + "readable-stream": "^2.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - }, - "dependencies": { - "retry": { - "version": "0.10.1", - "bundled": true, - "dev": true - } + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "promzard": { - "version": "0.3.0", - "bundled": true, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "read": "1" + "safe-buffer": "~5.1.0" } - }, - "proto-list": { - "version": "1.2.4", - "bundled": true, + } + } + }, + "meow": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", + "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", + "dev": true, + "requires": { + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist": "^1.1.3", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0" + } + }, + "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 + }, + "merge-stream": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-0.1.8.tgz", + "integrity": "sha1-SKB7O0oSHXSj7b/c20sIrb8CQLE=", + "dev": true, + "requires": { + "through2": "^0.6.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, - "protoduck": { - "version": "5.0.0", - "bundled": true, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { - "genfun": "^4.0.1" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, - "prr": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "psl": { - "version": "1.1.29", - "bundled": 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 }, - "pump": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "bundled": true, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "dev": true, "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" } - }, - "punycode": { - "version": "1.4.1", - "bundled": true, - "dev": true - }, - "qrcode-terminal": { - "version": "0.12.0", - "bundled": true, - "dev": true - }, - "qs": { - "version": "6.5.2", - "bundled": true, - "dev": true - }, - "query-string": { - "version": "6.1.0", - "bundled": true, + } + } + }, + "merge2": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", + "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", + "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": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "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.0.0", + "brorand": "^1.0.1" + } + }, + "mime": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", + "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", + "dev": true + }, + "mime-db": { + "version": "1.38.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", + "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==" + }, + "mime-types": { + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", + "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", + "requires": { + "mime-db": "~1.37.0" + }, + "dependencies": { + "mime-db": { + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" + } + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "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.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "minimist-options": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", + "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" + } + }, + "minipass": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", + "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz", + "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", + "requires": { + "minipass": "^2.2.1" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "decode-uri-component": "^0.2.0", - "strict-uri-encode": "^2.0.0" + "is-plain-object": "^2.0.4" } - }, - "qw": { - "version": "1.0.1", - "bundled": true, + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "mobx": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/mobx/-/mobx-5.7.0.tgz", + "integrity": "sha512-i+EwjPLq/QSvOFtAuhcd5FFWDxWK3gCJCFbW5dhgc4wsaHB/cL6DEVms3vZDgc2txWcfzjYWfknjggE/c0c4fw==" + }, + "mobx-localstorage": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mobx-localstorage/-/mobx-localstorage-1.1.0.tgz", + "integrity": "sha512-R/7hN34XC6kCzXFIYM3E+GKJT+2lUIrqK+7tdqjUFoh5asOFd0trJt4TYxdLy+7UG2UlFzTKpYCyUgZNrsTl2g==", + "requires": { + "reactive-localstorage": "^0.0.2" + } + }, + "mobx-react": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-5.4.2.tgz", + "integrity": "sha512-alSN0KDAAOb1OkYujfoJjjk0JWxWRKO4sLGB4hN2CuvaJMrlj7bhGQe7CBMJvEFNjtJRbhJcquYVjQ3rrH2zQQ==", + "requires": { + "hoist-non-react-statics": "^3.0.0", + "react-lifecycles-compat": "^3.0.2" + } + }, + "mobx-react-devtools": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/mobx-react-devtools/-/mobx-react-devtools-6.0.3.tgz", + "integrity": "sha512-PY+lG6XeWaC0DFnDaVC7ImrHJQu7XVXNy4z4fmqHzWc3p+fJisKmaZNwgToO2vJGBghz98Mx2yXUBLw1Ba2mPQ==", + "dev": true + }, + "mobx-react-form": { + "version": "1.35.1", + "resolved": "https://registry.npmjs.org/mobx-react-form/-/mobx-react-form-1.35.1.tgz", + "integrity": "sha1-iSrsZykiThHCl4+4LmetxOgOOmo=", + "requires": { + "lodash": "^4.16.2" + } + }, + "mobx-react-router": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/mobx-react-router/-/mobx-react-router-3.1.2.tgz", + "integrity": "sha1-gzKLEIOTAXFI2G/qF/YR3i0qrNw=" + }, + "mocha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "dev": true, + "requires": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", "dev": true }, - "rc": { - "version": "1.2.7", - "bundled": 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": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "ms": "2.0.0" }, "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, - "read": { - "version": "1.0.7", - "bundled": true, - "dev": true, - "requires": { - "mute-stream": "~0.0.4" - } - }, - "read-cmd-shim": { - "version": "1.0.1", - "bundled": true, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.2" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "read-installed": { - "version": "4.0.3", - "bundled": true, - "dev": true, - "requires": { - "debuglog": "^1.0.1", - "graceful-fs": "^4.1.2", - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "slide": "~1.1.3", - "util-extend": "^1.0.1" - } + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true }, - "read-package-json": { - "version": "2.0.13", - "bundled": true, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "json-parse-better-errors": "^1.0.1", - "normalize-package-data": "^2.0.0", - "slash": "^1.0.0" + "has-flag": "^3.0.0" } + } + } + }, + "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.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "dev": true + }, + "moment": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "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 + }, + "multimatch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", + "dev": true, + "requires": { + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" + } + }, + "multipipe": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "dev": true, + "requires": { + "duplexer2": "0.0.2" + } + }, + "mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "dev": true + }, + "mute-stream": { + "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.12.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", + "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==" + }, + "nanoid": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-1.3.4.tgz", + "integrity": "sha512-4ug4BsuHxiVHoRUe1ud6rUFT3WUMmjXt1W0quL0CviZQANdan7D8kqN5/maw53hmAApY/jfzMRkC57BNNs60ZQ==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natives": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz", + "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==", + "dev": true + }, + "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 + }, + "needle": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.4.tgz", + "integrity": "sha512-HyoqEb4wr/rsoaIDfTH2aVL9nWtQqba2/HvMv+++m8u0dz808MaagKILxtfeSN7QU7nvbQ79zk3vYOJp9zsNEA==", + "dev": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "negotiator": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.4.7.tgz", + "integrity": "sha1-pBYPcXfsgGc4Yx0NMFIyXaQqvcg=", + "dev": true + }, + "neo-async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", + "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-abi": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.7.1.tgz", + "integrity": "sha512-OV8Bq1OrPh6z+Y4dqwo05HqrRL9YNF7QVMRfq1/pguwKLG+q9UB/Lk0x5qXjO23JjJg+/jqCHSTaG1P3tfKfuw==", + "dev": true, + "requires": { + "semver": "^5.4.1" + } + }, + "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.11", + "is-stream": "^1.0.1" + } + }, + "node-fetch-npm": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", + "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node-forge": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", + "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==", + "dev": true + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true }, - "read-package-tree": { - "version": "5.2.1", - "bundled": true, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "dev": true, "requires": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "once": "^1.3.0", - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } + } + } + }, + "node-libs-browser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz", + "integrity": "sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.0", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "0.0.4" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true }, "readable-stream": { "version": "2.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -12552,786 +12876,665 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" + }, + "dependencies": { + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } - }, - "readdir-scoped-modules": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, - "registry-auth-token": { - "version": "3.3.2", - "bundled": true, - "dev": true, - "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "registry-url": { - "version": "3.1.0", - "bundled": true, + } + } + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true + }, + "node-pre-gyp": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz", + "integrity": "sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A==", + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + }, + "dependencies": { + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, + "optional": true, "requires": { - "rc": "^1.0.1" + "abbrev": "1", + "osenv": "^0.1.4" } - }, - "request": { - "version": "2.88.0", - "bundled": true, - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "require-directory": { + } + } + }, + "node-releases": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.7.tgz", + "integrity": "sha512-bKdrwaqJUPHqlCzDD7so/R+Nk0jGv9a11ZhLrD9f6i947qGLrGAhU3OxRENa19QQmwzGy/g6zCDEuLGDO8HPvA==", + "dev": true, + "requires": { + "semver": "^5.3.0" + } + }, + "node-sass": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.11.0.tgz", + "integrity": "sha512-bHUdHTphgQJZaF1LASx0kAviPH7sGlcyNhWade4eVIpFp6tsn7SV8xNMTbsQFpEV9VXpnwTTnNYlfsZXgGgmkA==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash.assign": "^4.2.0", + "lodash.clonedeep": "^4.3.2", + "lodash.mergewith": "^4.6.0", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.10.0", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-regex": { "version": "2.1.1", - "bundled": true, - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "bundled": true, - "dev": true - }, - "retry": { - "version": "0.12.0", - "bundled": true, - "dev": true - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "run-queue": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, - "semver": { - "version": "5.5.1", - "bundled": true, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", "dev": true }, - "semver-diff": { + "camelcase-keys": { "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "semver": "^5.0.3" - } - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "sha": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "readable-stream": "^2.0.2" - } - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true - }, - "slash": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "slide": { - "version": "1.1.6", - "bundled": true, - "dev": true - }, - "smart-buffer": { - "version": "4.0.1", - "bundled": true, - "dev": true - }, - "socks": { - "version": "2.2.0", - "bundled": true, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.0.1" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, - "socks-proxy-agent": { - "version": "4.0.1", - "bundled": true, + "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": { - "agent-base": "~4.2.0", - "socks": "~2.2.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, - "sorted-object": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "sorted-union-stream": { - "version": "2.1.3", - "bundled": true, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "from2": "^1.3.0", - "stream-iterate": "^1.1.0" - }, - "dependencies": { - "from2": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "~1.1.10" - } - }, - "isarray": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "bundled": true, - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "bundled": true, - "dev": true - } + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, - "spdx-correct": { - "version": "3.0.0", - "bundled": 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": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "repeating": "^2.0.0" } - }, - "spdx-exceptions": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, + }, + "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": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, - "spdx-license-ids": { - "version": "3.0.0", - "bundled": true, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true }, - "sshpk": { - "version": "1.14.2", - "bundled": true, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" } }, - "ssri": { - "version": "6.0.1", - "bundled": true, + "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": { - "figgy-pudding": "^3.5.1" + "error-ex": "^1.2.0" } }, - "stream-each": { - "version": "1.2.2", - "bundled": 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": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" + "pinkie-promise": "^2.0.0" } }, - "stream-iterate": { - "version": "1.2.0", - "bundled": 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": { - "readable-stream": "^2.1.5", - "stream-shift": "^1.0.0" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, - "stream-shift": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "strict-uri-encode": { - "version": "2.0.0", - "bundled": true, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, - "string-width": { - "version": "2.1.1", - "bundled": true, + "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": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, + "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": { - "safe-buffer": "~5.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, - "stringify-package": { + "redent": { "version": "1.0.0", - "bundled": true, - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" } }, - "strip-eof": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "bundled": true, + "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": { - "has-flag": "^3.0.0" + "ansi-regex": "^2.0.0" } }, - "tar": { - "version": "4.4.8", - "bundled": true, + "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": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - }, - "dependencies": { - "chownr": { - "version": "1.1.1", - "bundled": true, - "dev": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "dev": true - } + "is-utf8": "^0.2.0" } }, - "term-size": { - "version": "1.2.0", - "bundled": 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": { - "execa": "^0.7.0" + "get-stdin": "^4.0.1" } }, - "text-table": { - "version": "0.2.0", - "bundled": true, + "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 }, - "through": { - "version": "2.3.8", - "bundled": 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 + } + } + }, + "node-watch": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.3.5.tgz", + "integrity": "sha1-oH8lOk9TjenUylIt1/GZbu7A2X4=", + "dev": true + }, + "node.extend": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/node.extend/-/node.extend-1.0.10.tgz", + "integrity": "sha1-Mmm934HFRTX0CKvHhMMrDSvVX28=", + "dev": true, + "requires": { + "is": "~0.3.0" + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "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.0.1" + } + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "now-and-later": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.0.tgz", + "integrity": "sha1-vGHLtFbXnLMiB85HygUTb/Ln1u4=", + "dev": true, + "requires": { + "once": "^1.3.2" + } + }, + "npm-bundled": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz", + "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", + "dev": true + }, + "npm-lifecycle": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-2.1.0.tgz", + "integrity": "sha512-QbBfLlGBKsktwBZLj6AviHC6Q9Y3R/AY4a2PYSIRhSKSS0/CxRyD/PfxEX6tPeOCXQgMSNdwGeECacstgptc+g==", + "dev": true, + "requires": { + "byline": "^5.0.0", + "graceful-fs": "^4.1.11", + "node-gyp": "^3.8.0", + "resolve-from": "^4.0.0", + "slide": "^1.1.6", + "uid-number": "0.0.6", + "umask": "^1.1.0", + "which": "^1.3.1" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } + } + }, + "npm-package-arg": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", + "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-packlist": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.3.0.tgz", + "integrity": "sha512-qPBc6CnxEzpOcc4bjoIBJbYdy0D/LFFPUdxvfwor4/w3vxeE0h6TiOVurCEPpQ6trjN77u/ShyfeJGsbAfB3dA==", + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz", + "integrity": "sha512-+IluBC5K201+gRU85vFlUwX3PFShZAbAgDNp2ewJdWMVSppdo/Zih0ul2Ecky/X7b51J7LrrUAP+XOmOCvYZqA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "npm-registry-fetch": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.9.0.tgz", + "integrity": "sha512-srwmt8YhNajAoSAaDWndmZgx89lJwIZ1GWxOuckH4Coek4uHv5S+o/l9FLQe/awA+JwTnj4FJHldxhlXdZEBmw==", + "dev": true, + "requires": { + "JSONStream": "^1.3.4", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^4.1.3", + "make-fetch-happen": "^4.0.1", + "npm-package-arg": "^6.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=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "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.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.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.1.3", + "minimist": "^1.1.0", + "pretty-bytes": "^1.0.2", + "progress-stream": "^1.1.0", + "request": "^2.45.0", + "single-line-log": "^1.1.2", + "throttleit": "0.0.2" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", "dev": true }, - "through2": { - "version": "2.0.3", - "bundled": true, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "readable-stream": "^2.1.5", - "xtend": "~4.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, - "timed-out": { - "version": "4.0.1", - "bundled": true, - "dev": true - }, - "tiny-relative-date": { - "version": "1.3.0", - "bundled": true, - "dev": true - }, - "tough-cookie": { - "version": "2.4.3", - "bundled": true, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": 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": { - "safe-buffer": "^5.0.1" + "repeating": "^2.0.0" } }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "dev": true, - "optional": true - }, - "typedarray": { - "version": "0.0.6", - "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": { + "load-json-file": { "version": "1.1.0", - "bundled": true, - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unique-string": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "crypto-random-string": "^1.0.0" - } - }, - "unpipe": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "unzip-response": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "update-notifier": { - "version": "2.5.0", - "bundled": true, - "dev": true, - "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "url-parse-lax": { - "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "prepend-http": "^1.0.1" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" } }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "util-extend": { - "version": "1.0.3", - "bundled": true, - "dev": true - }, - "uuid": { - "version": "3.3.2", - "bundled": true, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true }, - "validate-npm-package-license": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "validate-npm-package-name": { - "version": "3.0.0", - "bundled": true, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "builtins": "^1.0.3" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" } }, - "verror": { - "version": "1.10.0", - "bundled": true, + "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": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "error-ex": "^1.2.0" } }, - "wcwidth": { - "version": "1.0.1", - "bundled": 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": { - "defaults": "^1.0.3" + "pinkie-promise": "^2.0.0" } }, - "which": { - "version": "1.3.1", - "bundled": 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": { - "isexe": "^2.0.0" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, - "which-module": { - "version": "2.0.0", - "bundled": true, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, - "wide-align": { - "version": "1.1.2", - "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.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "widest-line": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^2.1.1" - } - }, - "worker-farm": { - "version": "1.6.0", - "bundled": true, + "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": { - "errno": "~0.1.7" + "get-stdin": "^4.0.1", + "meow": "^3.1.0" } }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, + "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": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "write-file-atomic": { - "version": "2.3.0", - "bundled": true, + "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": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, - "xdg-basedir": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "xtend": { - "version": "4.0.1", - "bundled": true, - "dev": true - }, - "y18n": { - "version": "4.0.0", - "bundled": true, - "dev": true - }, - "yallist": { - "version": "2.1.2", - "bundled": true, - "dev": true - }, - "yargs": { - "version": "11.0.0", - "bundled": true, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" - }, - "dependencies": { - "y18n": { - "version": "3.2.1", - "bundled": true, - "dev": true - } + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" } }, - "yargs-parser": { - "version": "9.0.2", - "bundled": true, + "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": { - "camelcase": "^4.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=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "npmlog": { - "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.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "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.1.3", - "minimist": "^1.1.0", - "pretty-bytes": "^1.0.2", - "progress-stream": "^1.1.0", - "request": "^2.45.0", - "single-line-log": "^1.1.2", - "throttleit": "0.0.2" - }, - "dependencies": { - "pretty-bytes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", - "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "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", - "meow": "^3.1.0" + "get-stdin": "^4.0.1" } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true } } }, @@ -13361,6 +13564,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -13371,6 +13575,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -13379,6 +13584,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.5" } @@ -13386,21 +13592,22 @@ } }, "object-hash": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.0.tgz", - "integrity": "sha512-05KzQ70lSeGSrZJQXE5wNDiTkBJDlUT/myi6RX9dVIvz7a7Qh4oH93BQdiPMn27nldYvVQCKMUaM83AfizZlsQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", + "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", "dev": true }, "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", + "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==", "dev": true }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, "requires": { "isobject": "^3.0.0" } @@ -13421,6 +13628,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, "requires": { "array-each": "^1.0.1", "array-slice": "^1.0.0", @@ -13429,21 +13637,32 @@ } }, "object.entries": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", - "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz", + "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.12.0", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", "dev": true, "requires": { "define-properties": "^1.1.2", - "es-abstract": "^1.6.1", - "function-bind": "^1.1.0", - "has": "^1.0.1" + "es-abstract": "^1.5.1" } }, "object.map": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, "requires": { "for-own": "^1.0.0", "make-iterator": "^1.0.0" @@ -13453,6 +13672,7 @@ "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.4", "is-extendable": "^0.1.1" @@ -13462,6 +13682,7 @@ "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.1" } @@ -13472,6 +13693,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, "requires": { "isobject": "^3.0.1" } @@ -13486,6 +13708,18 @@ "make-iterator": "^1.0.0" } }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "octokit-pagination-methods": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz", + "integrity": "sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==", + "dev": true + }, "on-finished": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.1.0.tgz", @@ -13495,6 +13729,12 @@ "ee-first": "1.0.5" } }, + "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", @@ -13518,6 +13758,15 @@ "integrity": "sha1-QsPhjslUZra/DcQvOilFw/DK2Pw=", "dev": true }, + "opn": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.4.0.tgz", + "integrity": "sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, "optimist": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", @@ -13533,12 +13782,6 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", "dev": true - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true } } }, @@ -13554,6 +13797,14 @@ "prelude-ls": "~1.1.2", "type-check": "~0.3.2", "wordwrap": "~1.0.0" + }, + "dependencies": { + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + } } }, "options": { @@ -13563,68 +13814,111 @@ "dev": true }, "ora": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-1.4.0.tgz", - "integrity": "sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.1.0.tgz", + "integrity": "sha512-vRBPaNCclUi8pUxRF/G8+5qEQkc6EgzKK1G2ZNJUIGu088Un5qIxFXeDgymvPRM9nmrcUOGzQgS1Vmtz+NtlMw==", "dev": true, "requires": { - "chalk": "^2.1.0", + "chalk": "^2.4.2", "cli-cursor": "^2.1.0", - "cli-spinners": "^1.0.1", - "log-symbols": "^2.1.0" + "cli-spinners": "^1.3.1", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.0.0", + "wcwidth": "^1.0.1" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "ansi-regex": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz", + "integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==", + "dev": true + }, + "strip-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz", + "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "ansi-regex": "^4.0.0" } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + } + } + }, + "ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "safe-buffer": "~5.1.0" } } } }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", "dev": true, "requires": { - "readable-stream": "^2.0.1" + "url-parse": "^1.4.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=", + "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": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "os-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.0.0.tgz", + "integrity": "sha512-7c74tib2FsdFbQ3W+qj8Tyd1R3Z6tuVRNNxXjJcZ4NgjIEQU9N/prVMqcW29XZPXGACqaXN3jq58/6hoaoXH6g==", + "dev": true, "requires": { - "lcid": "^1.0.0" + "macos-release": "^2.0.0", + "windows-release": "^3.1.0" } }, "os-tmpdir": { @@ -13643,6 +13937,17 @@ "os-tmpdir": "^1.0.0" } }, + "output-file-sync": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-2.0.1.tgz", + "integrity": "sha512-mDho4qm7WgIXIGf4eYU1RHN2UU5tPfVYVSRwDJw0uTmj35DQUt/eNp19N7v6T3SrR0ESTEf2up2CGO73qI35zQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "is-plain-obj": "^1.1.0", + "mkdirp": "^0.5.1" + } + }, "p-defer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", @@ -13656,35 +13961,71 @@ "dev": true }, "p-is-promise": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz", + "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==", "dev": true }, "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", + "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "^2.0.0" } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "^2.0.0" } }, - "p-try": { + "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 + }, + "p-map-series": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz", + "integrity": "sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco=", + "dev": true, + "requires": { + "p-reduce": "^1.0.0" + } + }, + "p-pipe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz", + "integrity": "sha1-SxoROZoRUgpneQ7loMHViB1r7+k=", + "dev": true + }, + "p-reduce": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", + "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", + "dev": true + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", "dev": true }, + "p-waterfall": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-1.0.0.tgz", + "integrity": "sha1-ftlLPOszMngjU69qrhGqn8I1uwA=", + "dev": true, + "requires": { + "p-reduce": "^1.0.0" + } + }, "package-json": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", @@ -13697,10 +14038,116 @@ "semver": "^5.1.0" } }, + "pacote": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.4.1.tgz", + "integrity": "sha512-YKSRsQqmeHxgra0KCdWA2FtVxDPUlBiCdmew+mSe44pzlx5t1ViRMWiQg18T+DREA+vSqYfKzynaToFR4hcKHw==", + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "cacache": "^11.3.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^4.0.1", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^2.2.3", + "npm-registry-fetch": "^3.8.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.8", + "unique-filename": "^1.1.1", + "which": "^1.3.1" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + } + } + }, "pako": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.7.tgz", - "integrity": "sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ==" + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.8.tgz", + "integrity": "sha512-6i0HVbUfcKaTv+EG8ZTr75az7GFXcLYk9UyLEg7Notv/Ma+z/UG3TCoz6GiNeOrn1E/e63I0X/Hpw18jHOTUnA==" + }, + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "dev": true, + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "parse-asn1": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.3.tgz", + "integrity": "sha512-VrPoetlz7B/FqjBLD2f5wBVZvsZVLnRUrxVLfRYhGXCODa/NWE4p3Wp+6+aV3ZPL3KM7/OZmxDIwwijD7yuucg==", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } }, "parse-color": { "version": "1.0.0", @@ -13723,6 +14170,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, "requires": { "is-absolute": "^1.0.0", "map-cache": "^0.2.0", @@ -13739,6 +14187,7 @@ "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.0", @@ -13749,12 +14198,14 @@ "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-glob": { "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" } @@ -13762,18 +14213,56 @@ } }, "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true + }, "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "parse-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.1.tgz", + "integrity": "sha512-d7yhga0Oc+PwNXDvQ0Jv1BuWkLVPXcAoQ/WREgd6vNNoKYaW52KI+RdOFjI63wjkmps9yUE8VS4veP+AgpQ/hA==", + "dev": true, + "requires": { + "is-ssh": "^1.3.0", + "protocols": "^1.4.0" + } + }, + "parse-url": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-5.0.1.tgz", + "integrity": "sha512-flNUPP27r3vJpROi0/R3/2efgKkyXqnXwyP1KQ2U0SfFRgdizOdWfvrrvJg1LuOoxs7GQhmxJlq23IpQ/BkByg==", + "dev": true, + "requires": { + "is-ssh": "^1.3.0", + "normalize-url": "^3.3.0", + "parse-path": "^4.0.0", + "protocols": "^1.4.0" + }, + "dependencies": { + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + } + } }, "parsejson": { "version": "0.0.3", @@ -13811,22 +14300,25 @@ "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "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-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": "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.0" - } + "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", @@ -13854,6 +14346,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, "requires": { "path-root-regex": "^0.1.0" } @@ -13861,17 +14354,35 @@ "path-root-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "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=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "pify": "^3.0.0" + } + }, + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "pend": { @@ -13880,10 +14391,16 @@ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", "dev": true }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "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": { @@ -13911,12 +14428,57 @@ } }, "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "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": "^1.0.0" + "find-up": "^2.1.0" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "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-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + } } }, "please-upgrade-node": { @@ -13957,10 +14519,30 @@ "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", "dev": true }, + "portfinder": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz", + "integrity": "sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==", + "dev": true, + "requires": { + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true }, "prelude-ls": { "version": "1.1.2", @@ -13976,7 +14558,8 @@ "preserve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true }, "prettier": { "version": "1.15.2", @@ -13989,10 +14572,21 @@ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=" }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "dev": true, + "requires": { + "renderkid": "^2.0.1", + "utila": "~0.4" + } + }, "pretty-hrtime": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true }, "private": { "version": "0.1.8", @@ -14000,10 +14594,16 @@ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", "dev": true }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "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=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true }, "progress": { @@ -14081,21 +14681,69 @@ "asap": "~2.0.3" } }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + } + }, + "promzard": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", + "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", + "dev": true, + "requires": { + "read": "1" + } + }, "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "version": "15.7.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.1.tgz", + "integrity": "sha512-f8Lku2z9kERjOCcnDOPm68EBJAO2K00Q5mSgPAUE/gJuBgsYLbVy6owSrtcHj90zt8PvW+z0qaIIgsIhHOa1Qw==", "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" + "object-assign": "^4.1.1", + "react-is": "^16.8.1" } }, - "prop-types-extended": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/prop-types-extended/-/prop-types-extended-0.2.1.tgz", - "integrity": "sha1-ziPz28SMzcds+hpMfj9+2aXdglk=", + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true + }, + "protocols": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.7.tgz", + "integrity": "sha512-Fx65lf9/YDn3hUX08XUc0J8rSux36rEsyiv21ZGUC1mOyeM3lTRpZLcrm8aAolzS4itwVfm7TAPyxC2E5zd6xg==", + "dev": true + }, + "protoduck": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", + "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", + "dev": true, + "requires": { + "genfun": "^5.0.0" + } + }, + "proxy-addr": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", + "dev": true, "requires": { - "invariant": "^2.2.0" + "forwarded": "~0.1.2", + "ipaddr.js": "1.8.0" } }, "proxy-middleware": { @@ -14104,6 +14752,12 @@ "integrity": "sha1-o/3xvvtzD5UZZYcqwvYHTGFHelY=", "dev": true }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -14111,15 +14765,29 @@ "dev": true }, "psl": { - "version": "1.1.29", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", + "version": "1.1.31", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", + "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", "dev": true }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -14135,12 +14803,24 @@ "duplexify": "^3.6.0", "inherits": "^2.0.3", "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } } }, "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, "pupa": { @@ -14169,6 +14849,24 @@ "strict-uri-encode": "^1.0.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": "2.1.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.0.tgz", + "integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==", + "dev": true + }, "quick-lru": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", @@ -14176,9 +14874,10 @@ "dev": true }, "randomatic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", - "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "dev": true, "requires": { "is-number": "^4.0.0", "kind-of": "^6.0.0", @@ -14188,16 +14887,59 @@ "is-number": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true } } }, + "randombytes": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, "range-parser": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz", "integrity": "sha1-aHKCNTXGkuLCoBA4Jq/YLC4P8XU=", "dev": true }, + "raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "dev": true, + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -14257,6 +14999,14 @@ "lodash.camelcase": "^4.3.0" } }, + "react-html-attributes": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/react-html-attributes/-/react-html-attributes-1.4.3.tgz", + "integrity": "sha1-jDbDX85rdQk40oavQo7R2nYlGG4=", + "requires": { + "html-element-attributes": "^1.0.0" + } + }, "react-intl": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.7.2.tgz", @@ -14267,12 +15017,31 @@ "intl-messageformat": "^2.1.0", "intl-relativeformat": "^2.1.0", "invariant": "^2.1.1" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + } + } + }, + "react-intl-translations-manager": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/react-intl-translations-manager/-/react-intl-translations-manager-5.0.3.tgz", + "integrity": "sha512-EfBeugnOGFcdUbQyY9TqBMbuauQ8wm73ZqFr0UqCljhbXl7YDHQcVzclWFRkVmlUffzxitLQFhAZEVVeRNQSwA==", + "dev": true, + "requires": { + "chalk": "^2.3.2", + "glob": "^7.1.2", + "json-stable-stringify": "^1.0.1", + "mkdirp": "^0.5.1" } }, "react-is": { - "version": "16.6.3", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.6.3.tgz", - "integrity": "sha512-u7FDWtthB4rWibG/+mFbVd5FvdI20yde86qKGx4lVUTWmPlSWQ4QxbBIrrs+HnXGbxOUlUzTAP/VDmvCwaP2yA==" + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.1.tgz", + "integrity": "sha512-ioMCzVDWvCvKD8eeT+iukyWrBGrA3DiFYkXfBsVYIRdaREZuBjENG+KjrikavCLasozqRWTwFUagU/O4vPpRMA==" }, "react-jss": { "version": "8.6.1", @@ -14284,6 +15053,13 @@ "jss-preset-default": "^4.3.0", "prop-types": "^15.6.0", "theming": "^1.3.0" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + } } }, "react-lifecycles-compat": { @@ -14324,6 +15100,13 @@ "loose-envify": "^1.2.0", "prop-types": "^15.5.6", "warning": "^3.0.0" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + } } }, "react-sortable-hoc": { @@ -14376,106 +15159,180 @@ "resolved": "https://registry.npmjs.org/reactive-localstorage/-/reactive-localstorage-0.0.2.tgz", "integrity": "sha512-+3oKBiiNxBbLH9mWw6eiBOAbwQSg3xpRIg7ys+E5Zc98DKQ1zyoUcQygWDDwZAn6mka2kWTaZD+ZUSgmV2VzLA==" }, - "read-config-file": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-3.2.0.tgz", - "integrity": "sha512-i1QRc5jy4sHm9YBGb6ArA5SU1mDrc5wu2mnm3r9gPnm+LVZhBGbpTCKqAXyvV4TJHnBR3Yaaww+9b3DyRZcfww==", + "read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "dev": true, + "requires": { + "mute-stream": "~0.0.4" + } + }, + "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": { + "graceful-fs": "^4.1.2" + } + }, + "read-config-file": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-3.2.0.tgz", + "integrity": "sha512-i1QRc5jy4sHm9YBGb6ArA5SU1mDrc5wu2mnm3r9gPnm+LVZhBGbpTCKqAXyvV4TJHnBR3Yaaww+9b3DyRZcfww==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "ajv-keywords": "^3.2.0", + "bluebird-lst": "^1.0.6", + "dotenv": "^6.1.0", + "dotenv-expand": "^4.2.0", + "fs-extra-p": "^7.0.0", + "js-yaml": "^3.12.0", + "json5": "^2.1.0", + "lazy-val": "^1.0.3" + }, + "dependencies": { + "dotenv": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", + "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==", + "dev": true + } + } + }, + "read-package-json": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.13.tgz", + "integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==", + "dev": true, + "requires": { + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "json-parse-better-errors": "^1.0.1", + "normalize-package-data": "^2.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + } + } + }, + "read-package-tree": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.2.1.tgz", + "integrity": "sha512-2CNoRoh95LxY47LvqrehIAfUVda2JbuFE/HaGYs42bNrGG+ojbw1h3zOcPcQ+1GQ3+rkzNndZn85u1XyZ3UsIA==", + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "once": "^1.3.0", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0" + } + }, + "read-pkg": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", + "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", + "dev": true, + "requires": { + "normalize-package-data": "^2.3.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "ajv": "^6.5.5", - "ajv-keywords": "^3.2.0", - "bluebird-lst": "^1.0.6", - "dotenv": "^6.1.0", - "dotenv-expand": "^4.2.0", - "fs-extra-p": "^7.0.0", - "js-yaml": "^3.12.0", - "json5": "^2.1.0", - "lazy-val": "^1.0.3" + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" }, "dependencies": { - "ajv": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz", - "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==", + "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": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "locate-path": "^2.0.0" } }, - "dotenv": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", - "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==", - "dev": true + "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" + } }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "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-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, - "json5": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", - "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "minimist": "^1.2.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.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, + "readable-stream": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.1.1.tgz", + "integrity": "sha512-DkN66hPyqDhnIQ6Jcsvx9bFjhw214O4poMBcIMgPVpQvNy9a0e0Uhg5SqySyDKAmUlwt8LonTBz1ezOnM8pUdA==", "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, - "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=", + "readdir-scoped-modules": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz", + "integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=", "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - } + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" } }, "readdirp": { @@ -14487,26 +15344,59 @@ "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", "readable-stream": "^2.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, "requires": { "resolve": "^1.1.6" } }, "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", + "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" } }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, "regenerate": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", @@ -14523,9 +15413,9 @@ } }, "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" }, "regenerator-transform": { "version": "0.13.3", @@ -14540,6 +15430,7 @@ "version": "0.4.4", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, "requires": { "is-equal-shallow": "^0.1.3" } @@ -14548,6 +15439,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -14558,6 +15450,17 @@ "resolved": "https://registry.npmjs.org/regexp-quote/-/regexp-quote-0.0.0.tgz", "integrity": "sha1-Hg9GUMhi3L/tVP1CsUjpuxch/PI=" }, + "regexp-tree": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.1.tgz", + "integrity": "sha512-HwRjOquc9QOwKTgbxvZTcddS5mlNlwePMQ3NFL8broajMLD5CXDAqas8Y5yxJH5QtZp5iRor3YCILd5pz71Cgw==", + "dev": true, + "requires": { + "cli-table3": "^0.5.0", + "colors": "^1.1.2", + "yargs": "^12.0.5" + } + }, "regexpp": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", @@ -14565,15 +15468,15 @@ "dev": true }, "regexpu-core": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.2.0.tgz", - "integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.4.0.tgz", + "integrity": "sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA==", "dev": true, "requires": { "regenerate": "^1.4.0", "regenerate-unicode-properties": "^7.0.0", - "regjsgen": "^0.4.0", - "regjsparser": "^0.3.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", "unicode-match-property-ecmascript": "^1.0.4", "unicode-match-property-value-ecmascript": "^1.0.2" } @@ -14598,15 +15501,15 @@ } }, "regjsgen": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.4.0.tgz", - "integrity": "sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", + "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", "dev": true }, "regjsparser": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.3.0.tgz", - "integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -14620,6 +15523,12 @@ } } }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, "remove-bom-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", @@ -14646,15 +15555,101 @@ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, + "renderkid": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.2.tgz", + "integrity": "sha512-FsygIxevi1jSiPY9h7vZmBFUbAOcbYm9UwyiLNdVsLRs/5We9Ob5NMPbGYUTWiLq5L+ezlVdE0A8bbME5CWTpg==", + "dev": true, + "requires": { + "css-select": "^1.1.0", + "dom-converter": "~0.2", + "htmlparser2": "~3.3.0", + "strip-ansi": "^3.0.0", + "utila": "^0.4.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "domhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz", + "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz", + "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "htmlparser2": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", + "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", + "dev": true, + "requires": { + "domelementtype": "1", + "domhandler": "2.1", + "domutils": "1.1", + "readable-stream": "1.0" + } + }, + "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.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "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-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.0.0" + } + } + } + }, "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "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", @@ -14708,14 +15703,6 @@ "tough-cookie": "~2.4.3", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" - }, - "dependencies": { - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - } } }, "require-directory": { @@ -14740,18 +15727,42 @@ "resolve-from": "^1.0.0" } }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", + "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", + "requires": { + "path-parse": "^1.0.6" + } + }, + "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": { - "path-parse": "^1.0.5" + "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-dir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, "requires": { "expand-tilde": "^2.0.0", "global-modules": "^1.0.0" @@ -14775,7 +15786,8 @@ "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true }, "restore-cursor": { "version": "2.0.0", @@ -14790,7 +15802,14 @@ "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true }, "right-pad": { "version": "1.0.1", @@ -14799,12 +15818,22 @@ "dev": true }, "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "route-parser": { @@ -14827,13 +15856,28 @@ "integrity": "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==", "dev": true }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", + "dev": true + }, "rxjs": { - "version": "5.5.12", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", - "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", "dev": true, "requires": { - "symbol-observable": "1.0.1" + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -14845,6 +15889,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, "requires": { "ret": "~0.1.10" } @@ -14883,6 +15928,214 @@ "lodash": "^4.0.0", "scss-tokenizer": "^0.2.3", "yargs": "^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "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.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "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.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "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" + } + }, + "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.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "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" + } + }, + "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.2.0" + } + }, + "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.0" + } + }, + "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.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.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": "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.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.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.0.0", + "read-pkg": "^1.0.0" + } + }, + "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.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.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.0.0" + } + }, + "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.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 + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "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.1.1", + "get-caller-file": "^1.0.1", + "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" + } + } } }, "sax": { @@ -14899,6 +16152,17 @@ "object-assign": "^4.1.1" } }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, "scss-tokenizer": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", @@ -14920,6 +16184,21 @@ } } }, + "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.4", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.4.tgz", + "integrity": "sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw==", + "dev": true, + "requires": { + "node-forge": "0.7.5" + } + }, "semver": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", @@ -14944,6 +16223,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "dev": true, "requires": { "sver-compat": "^1.5.0" } @@ -14988,6 +16268,12 @@ } } }, + "serialize-javascript": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.6.1.tgz", + "integrity": "sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw==", + "dev": true + }, "serve-index": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.1.6.tgz", @@ -15021,6 +16307,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -15032,6 +16319,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -15043,6 +16331,22 @@ "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.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -15061,14 +16365,20 @@ "sigmund": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "requires": { + "is-arrayish": "^0.3.1" + } }, "single-line-log": { "version": "1.1.2", @@ -15077,6 +16387,43 @@ "dev": true, "requires": { "string-width": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": 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=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "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.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.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.0.0" + } + } } }, "slash": { @@ -15086,33 +16433,28 @@ "dev": true }, "slice-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.0.0.tgz", - "integrity": "sha512-4j2WTWjp3GsZ+AOagyzVbzp4vWGtZ0hEZ/gDY/uTvm6MTxUfTUIsnMIFb1bn8o0RuXiqUw15H1bue8f22Vw2oQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { "ansi-styles": "^3.2.0", "astral-regex": "^1.0.0", "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "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 - } } }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "dev": true + }, + "smart-buffer": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.2.tgz", + "integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw==", + "dev": true + }, "smoothscroll-polyfill": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/smoothscroll-polyfill/-/smoothscroll-polyfill-0.3.6.tgz", @@ -15122,6 +16464,7 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, "requires": { "base": "^0.11.1", "debug": "^2.2.0", @@ -15137,6 +16480,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -15145,9 +16489,16 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.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 } } }, @@ -15155,6 +16506,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -15165,6 +16517,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -15173,6 +16526,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -15181,6 +16535,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -15189,6 +16544,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -15201,6 +16557,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, "requires": { "kind-of": "^3.2.0" }, @@ -15209,6 +16566,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.5" } @@ -15352,11 +16710,88 @@ "ms": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } + } + }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "dev": true, + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" + } + }, + "sockjs-client": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz", + "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==", + "dev": true, + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "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.5.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" } } }, + "socks": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.2.3.tgz", + "integrity": "sha512-+2r83WaRT3PXYoO/1z+RDEBE7Z2f9YcdQnJ0K/ncXXbV5gJ6wYfNAebYFYiiUjM6E4JyXnPY8cimwyvFYHVUUA==", + "dev": true, + "requires": { + "ip": "^1.1.5", + "smart-buffer": "4.0.2" + } + }, + "socks-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz", + "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", + "dev": true, + "requires": { + "agent-base": "~4.2.0", + "socks": "~2.2.0" + } + }, "sort-keys": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", @@ -15373,15 +16808,22 @@ "sort-keys": "^1.0.0" } }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-resolve": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, "requires": { "atob": "^2.1.1", "decode-uri-component": "^0.2.0", @@ -15391,30 +16833,25 @@ } }, "source-map-support": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", - "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", + "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } } }, "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true }, "sparkles": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==" + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true }, "spawn-command": { "version": "0.0.2-1", @@ -15423,21 +16860,20 @@ "dev": true }, "spawn-rx": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/spawn-rx/-/spawn-rx-2.0.12.tgz", - "integrity": "sha512-gOPXiQQFQ9lTOLuys0iMn3jfxxv9c7zzwhbYLOEbQGvEShHVJ5sSR1oD3Daj88os7jKArDYT7rbOKdvNhe7iEg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spawn-rx/-/spawn-rx-3.0.0.tgz", + "integrity": "sha512-dw4Ryg/KMNfkKa5ezAR5aZe9wNwPdKlnHEXtHOjVnyEDSPQyOpIPPRtcIiu7127SmtHhaCjw21yC43HliW0iIg==", "dev": true, "requires": { "debug": "^2.5.1", "lodash.assign": "^4.2.0", - "rxjs": "^5.1.1" + "rxjs": "^6.3.1" } }, "spdx-correct": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", - "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", - "dev": true, + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -15446,24 +16882,82 @@ "spdx-exceptions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" }, "spdx-expression-parse": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", - "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==", - "dev": true + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz", + "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==" + }, + "spdy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.0.tgz", + "integrity": "sha512-ot0oEGT/PGUpzf/6uk4AWLqkq+irlqHXkrdbk51oWONh3bxQmBuljxPNl66zlRRcIJStWq0QkLUCPOPjgjvU0Q==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } }, "speedometer": { "version": "0.1.4", @@ -15489,6 +16983,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, "requires": { "extend-shallow": "^3.0.0" } @@ -15508,9 +17003,9 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "sshpk": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.1.tgz", - "integrity": "sha512-mSdgNUaidk+dRU5MhYtN9zebdzF2iG0cNPWy8HG+W8y+fT1JnSkh0fzzpjOa0L7P8i1Rscz38t0h4gPcKz43xA==", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "dev": true, "requires": { "asn1": "~0.2.3", @@ -15524,6 +17019,15 @@ "tweetnacl": "~0.14.0" } }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, "stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", @@ -15540,6 +17044,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -15549,12 +17054,19 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { "is-descriptor": "^0.1.0" } } } }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true + }, "stdout-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", @@ -15562,6 +17074,78 @@ "dev": true, "requires": { "readable-stream": "^2.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" } }, "stream-exhaust": { @@ -15570,6 +17154,45 @@ "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", "dev": true }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "stream-shift": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", @@ -15582,39 +17205,35 @@ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" }, "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==", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz", + "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==", "requires": { "safe-buffer": "~5.1.0" } }, "strip-ansi": { - "version": "3.0.1", - "resolved": "http://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=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^3.0.0" } }, "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.0" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true }, "strip-eof": { "version": "1.0.0", @@ -15623,13 +17242,10 @@ "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" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true }, "strip-json-comments": { "version": "2.0.1", @@ -15637,6 +17253,17 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, + "strong-log-transformer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", + "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "minimist": "^1.2.0", + "through": "^2.3.4" + } + }, "sumchecker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-2.0.2.tgz", @@ -15647,115 +17274,95 @@ } }, "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } }, "sver-compat": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", + "dev": true, "requires": { "es6-iterator": "^2.0.1", "es6-symbol": "^3.1.1" } }, "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", - "dev": true + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" }, "table": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/table/-/table-5.1.1.tgz", - "integrity": "sha512-NUjapYb/qd4PeFW03HnAuOJ7OMcBkJlqeClWxeNlQ0lXGSb52oZXGzkO0/I0ARegQ2eUT1g2VDJH0eUxDRcHmw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/table/-/table-5.2.3.tgz", + "integrity": "sha512-N2RsDAMvDLvYwFcwbPyF3VmVSSkuF+G1e+8inhBLtHpvwXGw4QRPEZhihQNeEN0i1up6/f6ObCJXNdlRG3YVyQ==", "dev": true, "requires": { - "ajv": "^6.6.1", + "ajv": "^6.9.1", "lodash": "^4.17.11", - "slice-ansi": "2.0.0", - "string-width": "^2.1.1" + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" }, "dependencies": { - "ajv": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.1.tgz", - "integrity": "sha512-ZoJjft5B+EJBjUyu9C9Hc0OZyPZSSlOF+plzouTrg6UlA8f+e/n8NIgBFG/9tppJtpPWfthHakK7juJdNDODww==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz", + "integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==", "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.0.0.tgz", + "integrity": "sha512-rr8CUxBbvOZDUvc5lNIJ+OC1nPVpz+Siw9VBtUjB9b6jZehZLFt0JMCZzShFHIsI8cbhm0EsNIfWJMFV3cu3Ew==", "dev": true, "requires": { + "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "strip-ansi": "^5.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": "5.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz", + "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.0.0" } } } }, + "tapable": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz", + "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==", + "dev": true + }, "tar": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.6.tgz", - "integrity": "sha512-tMkTnh9EdzxyfW+6GK6fCahagXsnYk6kE6S9Gr9pjVdys769+laCTbodXDhPAjzVtEBazRgP0gYqOjnk9dQzLg==", + "version": "4.4.8", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz", + "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", "requires": { - "chownr": "^1.0.1", + "chownr": "^1.1.1", "fs-minipass": "^1.2.5", - "minipass": "^2.3.3", - "minizlib": "^1.1.0", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", "mkdirp": "^0.5.0", "safe-buffer": "^5.1.2", "yallist": "^3.0.2" - }, - "dependencies": { - "yallist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" - } } }, + "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-file": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.3.2.tgz", @@ -15767,6 +17374,20 @@ "fs-extra-p": "^7.0.0" } }, + "temp-write": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/temp-write/-/temp-write-3.4.0.tgz", + "integrity": "sha1-jP9jD7fp2gXwR8dM5M5NaFRX1JI=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "is-stream": "^1.1.0", + "make-dir": "^1.0.0", + "pify": "^3.0.0", + "temp-dir": "^1.0.0", + "uuid": "^3.0.1" + } + }, "tempfile": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz", @@ -15792,6 +17413,97 @@ "dev": true, "requires": { "execa": "^0.7.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.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "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.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "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 + } + } + }, + "terser": { + "version": "3.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-3.16.1.tgz", + "integrity": "sha512-JDJjgleBROeek2iBcSNzOHLKsB/MdDf+E/BOAJ0Tk9r7p9/fVobfv7LMJ/g/k3v9SXdmjZnIlFd5nfn/Rt0Xow==", + "dev": true, + "requires": { + "commander": "~2.17.1", + "source-map": "~0.6.1", + "source-map-support": "~0.5.9" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.2.1.tgz", + "integrity": "sha512-GGSt+gbT0oKcMDmPx4SRSfJPE1XaN3kQRWG4ghxKQw9cn5G9x6aCKSsgYdvyM0na9NJ4Drv0RG6jbBByZ5CMjw==", + "dev": true, + "requires": { + "cacache": "^11.0.2", + "find-cache-dir": "^2.0.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "terser": "^3.8.1", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.0.0.tgz", + "integrity": "sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^3.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + } } }, "text-extensions": { @@ -15830,29 +17542,62 @@ "dev": true }, "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { - "readable-stream": "^2.1.5", + "readable-stream": "~2.3.6", "xtend": "~4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, "through2-filter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz", - "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", "dev": true, "requires": { "through2": "~2.0.0", "xtend": "~4.0.0" } }, + "thunky": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz", + "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==", + "dev": true + }, "tildify": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "dev": true, "requires": { "os-homedir": "^1.0.0" } @@ -15860,7 +17605,8 @@ "time-stamp": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true }, "timed-out": { "version": "4.0.1", @@ -15868,6 +17614,15 @@ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", "dev": true }, + "timers-browserify": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -15893,6 +17648,12 @@ "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", "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": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -15903,6 +17664,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -15911,6 +17673,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.5" } @@ -15921,6 +17684,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -15932,6 +17696,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -15962,18 +17727,35 @@ "requires": { "psl": "^1.1.24", "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "^2.1.0" } }, "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==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.1.tgz", + "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==", "dev": true }, "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", + "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", "dev": true }, "trim-off-newlines": { @@ -16006,11 +17788,151 @@ "utf8-byte-length": "^1.0.1" } }, + "ts-loader": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-5.3.2.tgz", + "integrity": "sha512-TPeXFkdPjOrVEawY4xUgRnzlHEmKQF1DclJghPGq67jKnroVvs6mEGHWYtbUczgeWTvTaqUjSSaMmp1k5do4vw==", + "dev": true, + "requires": { + "chalk": "^2.3.0", + "enhanced-resolve": "^4.0.0", + "loader-utils": "^1.0.2", + "micromatch": "^3.1.4", + "semver": "^5.0.1" + } + }, "tslib": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" }, + "tslint": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.12.0.tgz", + "integrity": "sha512-CKEcH1MHUBhoV43SA/Jmy1l24HJJgI0eyLbBNSRyFlsQvb9v6Zdq+Nz2vEOH00nC5SUx4SneJ59PZUS/ARcokQ==", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.7.0", + "minimatch": "^3.0.4", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.27.2" + } + }, + "tslint-config-airbnb": { + "version": "5.11.1", + "resolved": "https://registry.npmjs.org/tslint-config-airbnb/-/tslint-config-airbnb-5.11.1.tgz", + "integrity": "sha512-hkaittm2607vVMe8eotANGN1CimD5tor7uoY3ypg2VTtEcDB/KGWYbJOz58t8LI4cWSyWtgqYQ5F0HwKxxhlkQ==", + "dev": true, + "requires": { + "tslint-consistent-codestyle": "^1.14.1", + "tslint-eslint-rules": "^5.4.0", + "tslint-microsoft-contrib": "~5.2.1" + } + }, + "tslint-consistent-codestyle": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/tslint-consistent-codestyle/-/tslint-consistent-codestyle-1.15.0.tgz", + "integrity": "sha512-6BNDBbZh2K0ibRXe70Mkl9gfVttxQ3t3hqV1BRDfpIcjrUoOgD946iH4SrXp+IggDgeMs3dJORjD5tqL5j4jXg==", + "dev": true, + "requires": { + "@fimbul/bifrost": "^0.17.0", + "tslib": "^1.7.1", + "tsutils": "^2.29.0" + } + }, + "tslint-eslint-rules": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", + "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "dev": true, + "requires": { + "doctrine": "0.7.2", + "tslib": "1.9.0", + "tsutils": "^3.0.0" + }, + "dependencies": { + "doctrine": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", + "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=", + "dev": true, + "requires": { + "esutils": "^1.1.6", + "isarray": "0.0.1" + } + }, + "esutils": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", + "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "dev": true + }, + "tsutils": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.8.0.tgz", + "integrity": "sha512-XQdPhgcoTbCD8baXC38PQ0vpTZ8T3YrE+vR66YIj/xvDt1//8iAhafpIT/4DmvzzC1QFapEImERu48Pa01dIUA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + } + } + }, + "tslint-microsoft-contrib": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/tslint-microsoft-contrib/-/tslint-microsoft-contrib-5.2.1.tgz", + "integrity": "sha512-PDYjvpo0gN9IfMULwKk0KpVOPMhU6cNoT9VwCOLeDl/QS8v8W2yspRpFFuUS7/c5EIH/n8ApMi8TxJAz1tfFUA==", + "dev": true, + "requires": { + "tsutils": "^2.27.2 <2.29.0" + }, + "dependencies": { + "tsutils": { + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.28.0.tgz", + "integrity": "sha512-bh5nAtW0tuhvOJnx1GLRn5ScraRLICGyJV5wJhtRWOLsxW70Kk5tZtpK3O/hW6LDnqKS9mlUMPZj9fEMJ0gxqA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + } + } + }, + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "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", @@ -16035,23 +17957,38 @@ "prelude-ls": "~1.1.2" } }, + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.18" + } + }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "typescript": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.2.tgz", + "integrity": "sha512-VCj5UiSyHBjwfYacmDuc/NOk4QQixbE+Wn7MFJuS0nRuPQbof132Pw4u53dm264O8LPc2MVsc7RJNml5szurkg==", + "dev": true + }, "ua-parser-js": { - "version": "0.7.18", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz", - "integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA==" + "version": "0.7.19", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.19.tgz", + "integrity": "sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ==" }, "uglify-js": { "version": "3.4.9", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", "dev": true, - "optional": true, "requires": { "commander": "~2.17.1", "source-map": "~0.6.1" @@ -16061,28 +17998,33 @@ "version": "2.17.1", "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true, - "optional": true - }, - "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, - "optional": true + "dev": true } } }, + "uid-number": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", + "dev": true + }, "ultron": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", "dev": true }, + "umask": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz", + "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=", + "dev": true + }, "unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true }, "undertaker": { "version": "1.2.0", @@ -16139,6 +18081,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -16150,6 +18093,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -16158,6 +18102,7 @@ "version": "0.4.3", "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -16167,14 +18112,32 @@ } } }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", + "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, "unique-stream": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz", - "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", "dev": true, "requires": { - "json-stable-stringify": "^1.0.0", - "through2-filter": "^2.0.0" + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" } }, "unique-string": { @@ -16186,6 +18149,15 @@ "crypto-random-string": "^1.0.0" } }, + "universal-user-agent": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-2.0.3.tgz", + "integrity": "sha512-eRHEHhChCBHrZsA4WEhdgiOKgdvgrMIHwnwnqD0r5C6AO8kwKcG7qSku3iXdhvHL3YvsS9ZkSGN8h/hIpoFC8g==", + "dev": true, + "requires": { + "os-name": "^3.0.0" + } + }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -16199,10 +18171,17 @@ "normalize-path": "^2.1.1" } }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -16212,6 +18191,7 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -16222,6 +18202,7 @@ "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" } @@ -16231,7 +18212,8 @@ "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true } } }, @@ -16243,17 +18225,10 @@ "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" - }, - "dependencies": { - "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-00CID3GuIRXrqhMlvvBcxmhEacY=", + "requires": { + "modify-filename": "^1.1.0", + "path-exists": "^3.0.0" } }, "unzip-response": { @@ -16286,37 +18261,29 @@ "xdg-basedir": "^3.0.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "ci-info": "^1.5.0" } } } }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -16324,20 +18291,41 @@ "dev": true, "requires": { "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" }, "dependencies": { "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", "dev": true } } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + "url-parse": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.4.tgz", + "integrity": "sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg==", + "dev": true, + "requires": { + "querystringify": "^2.0.0", + "requires-port": "^1.0.0" + } }, "url-parse-lax": { "version": "1.0.0", @@ -16348,15 +18336,23 @@ "prepend-http": "^1.0.1" } }, + "url-template": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", + "integrity": "sha1-/FZaPMy/93MMd19WQflVV5FDnyE=", + "dev": true + }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true }, "user-home": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true }, "utf8": { "version": "3.0.0", @@ -16369,11 +18365,36 @@ "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=", "dev": true }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, "utils-merge": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", @@ -16385,10 +18406,16 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, + "v8-compile-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz", + "integrity": "sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw==", + "dev": true + }, "v8flags": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.1.tgz", - "integrity": "sha512-iw/1ViSEaff8NJ3HLyEjawk/8hjJib3E7pvG4pddVXfUg1983s3VGsiClDjhK64MQVDGqc1Q8r18S4VKQZS9EQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.2.tgz", + "integrity": "sha512-MtivA7GF24yMPte9Rp/BWGCYQNaUj86zeYxV/x2RRJMKagImbbv3u8iJC57lNhWLPcGLJmHcHmFWkNsplbbLWw==", "dev": true, "requires": { "homedir-polyfill": "^1.0.1" @@ -16398,18 +18425,32 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, "value-or-function": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", "dev": true }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -16433,6 +18474,14 @@ "cloneable-readable": "^1.0.0", "remove-trailing-separator": "^1.0.1", "replace-ext": "^1.0.0" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + } } }, "vinyl-fs": { @@ -16458,6 +18507,32 @@ "value-or-function": "^3.0.0", "vinyl": "^2.0.0", "vinyl-sourcemap": "^1.1.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, "vinyl-sourcemap": { @@ -16482,12 +18557,29 @@ "dev": true, "requires": { "source-map": "^0.5.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 + } + } + }, + "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" } }, "wait-on": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-3.1.0.tgz", - "integrity": "sha512-yjYwMvnOhA3PTghvzPQAmT2TSVvBMbOdBRRjMPfBD6FU5si/PkAsI8P3X5sh9ntkYjZvPQLpQRpDUyax5h4COg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-3.2.0.tgz", + "integrity": "sha512-QUGNKlKLDyY6W/qHdxaRlXUAgLPe+3mLL/tRByHpRNcHs/c7dZXbu+OnJWGNux6tU1WFh/Z8aEwvbuzSAu79Zg==", "dev": true, "requires": { "core-js": "^2.5.7", @@ -16503,81 +18595,480 @@ "integrity": "sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==", "dev": true }, - "isemail": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", - "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", + "isemail": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", + "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", + "dev": true, + "requires": { + "punycode": "2.x.x" + } + }, + "joi": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-13.7.0.tgz", + "integrity": "sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==", + "dev": true, + "requires": { + "hoek": "5.x.x", + "isemail": "3.x.x", + "topo": "3.x.x" + } + }, + "topo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.3.tgz", + "integrity": "sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ==", + "dev": true, + "requires": { + "hoek": "6.x.x" + }, + "dependencies": { + "hoek": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.2.tgz", + "integrity": "sha512-6qhh/wahGYZHFSFw12tBbJw5fsAhhwrrG/y3Cs0YMTv2WzMnL0oLPnQJjv1QJvEfylRSOFuP+xCu+tdx0tD16Q==", + "dev": true + } + } + } + } + }, + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "dev": true, + "requires": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "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": { + "defaults": "^1.0.3" + } + }, + "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": "4.28.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.28.3.tgz", + "integrity": "sha512-vLZN9k5I7Nr/XB1IDG9GbZB4yQd1sPuvufMFgJkx0b31fi2LD97KQIjwjxE7xytdruAYfu5S0FLBLjdxmwGJCg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/wasm-edit": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "acorn": "^5.6.2", + "acorn-dynamic-import": "^3.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "chrome-trace-event": "^1.0.0", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.0", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "micromatch": "^3.1.8", + "mkdirp": "~0.5.0", + "neo-async": "^2.5.0", + "node-libs-browser": "^2.0.0", + "schema-utils": "^0.4.4", + "tapable": "^1.1.0", + "terser-webpack-plugin": "^1.1.0", + "watchpack": "^1.5.0", + "webpack-sources": "^1.3.0" + }, + "dependencies": { + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + }, + "eslint-scope": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", + "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "webpack-cli": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.2.1.tgz", + "integrity": "sha512-jeJveHwz/vwpJ3B8bxEL5a/rVKIpRNJDsKggfKnxuYeohNDW4Y/wB9N/XHJA093qZyS0r6mYL+/crLsIol4WKA==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "enhanced-resolve": "^4.1.0", + "findup-sync": "^2.0.0", + "global-modules": "^1.0.0", + "global-modules-path": "^2.3.0", + "import-local": "^2.0.0", + "interpret": "^1.1.0", + "lightercollective": "^0.1.0", + "loader-utils": "^1.1.0", + "supports-color": "^5.5.0", + "v8-compile-cache": "^2.0.2", + "yargs": "^12.0.4" + }, + "dependencies": { + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + } + } + }, + "webpack-dev-middleware": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz", + "integrity": "sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==", + "dev": true, + "requires": { + "memory-fs": "~0.4.1", + "mime": "^2.3.1", + "range-parser": "^1.0.3", + "webpack-log": "^2.0.0" + } + }, + "webpack-dev-server": { + "version": "3.1.14", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.14.tgz", + "integrity": "sha512-mGXDgz5SlTxcF3hUpfC8hrQ11yhAttuUQWf1Wmb+6zo3x6rb7b9mIfuQvAPLdfDRCGRGvakBWHdHOa0I9p/EVQ==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.0.0", + "compression": "^1.5.2", + "connect-history-api-fallback": "^1.3.0", + "debug": "^3.1.0", + "del": "^3.0.0", + "express": "^4.16.2", + "html-entities": "^1.2.0", + "http-proxy-middleware": "~0.18.0", + "import-local": "^2.0.0", + "internal-ip": "^3.0.1", + "ip": "^1.1.5", + "killable": "^1.0.0", + "loglevel": "^1.4.1", + "opn": "^5.1.0", + "portfinder": "^1.0.9", + "schema-utils": "^1.0.0", + "selfsigned": "^1.9.1", + "semver": "^5.6.0", + "serve-index": "^1.7.2", + "sockjs": "0.3.19", + "sockjs-client": "1.3.0", + "spdy": "^4.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^5.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "3.4.0", + "webpack-log": "^2.0.0", + "yargs": "12.0.2" + }, + "dependencies": { + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "dev": true, + "requires": { + "mime-types": "~2.1.18", + "negotiator": "0.6.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "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 + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", + "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", "dev": true, "requires": { - "punycode": "2.x.x" + "xregexp": "4.0.0" } }, - "joi": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-13.7.0.tgz", - "integrity": "sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==", + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", "dev": true, "requires": { - "hoek": "5.x.x", - "isemail": "3.x.x", - "topo": "3.x.x" + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" } }, - "punycode": { + "ms": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true }, - "rx": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", - "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", "dev": true }, - "topo": { + "pkg-dir": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.0.tgz", - "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "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" + }, + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "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=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "yargs": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz", + "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^2.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^10.1.0" + } + }, + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", "dev": true, "requires": { - "hoek": "5.x.x" + "camelcase": "^4.1.0" } } } }, - "warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, "requires": { - "loose-envify": "^1.0.0" + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true + } + } + }, + "webpack-node-externals": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz", + "integrity": "sha512-ajerHZ+BJKeCLviLUUmnyd5B4RavLF76uv3cs6KNuO8W+HuQaEs0y0L7o40NQxdPy5w0pcv8Ew7yPUAQG0UdCg==", + "dev": true + }, + "webpack-sources": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", + "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "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.0", + "websocket-extensions": ">=0.1.1" } }, + "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-fetch": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" }, + "whatwg-url": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", + "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, "requires": { "isexe": "^2.0.0" } }, "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "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.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, "requires": { "string-width": "^1.0.2 || 2" } @@ -16589,39 +19080,6 @@ "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" - } - } } }, "window-size": { @@ -16639,14 +19097,46 @@ } }, "windows-quiet-hours": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/windows-quiet-hours/-/windows-quiet-hours-1.2.5.tgz", - "integrity": "sha512-0JbfFw91Ys+A0vSR0pratoJgfTwWNFLHniu59dpOg1FC5IvpPSYQIATcQqhdy41HYSCijmT7Pyv9w0I2zC0+5w==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/windows-quiet-hours/-/windows-quiet-hours-1.2.7.tgz", + "integrity": "sha512-PjKM2/RQhZ3ikG4COq0vPpXvmJsxckcg2YN3xmQv8kZl5l1uu00a/epSGDeY6tczDPkzBhoThBz1FKRqxBA7cQ==", "requires": { "bindings": "^1.3.0", "nan": "^2.7.0" } }, + "windows-release": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.1.0.tgz", + "integrity": "sha512-hBb7m7acFgQPQc222uEQTmdcGLeBmQLNLFIh0rDk3CwFOBrfjefLzEfEfmpMq8Af/n/GnFf3eYf203FY1PmudA==", + "dev": true, + "requires": { + "execa": "^0.10.0" + }, + "dependencies": { + "execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "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 + } + } + }, "winreg": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/winreg/-/winreg-1.2.2.tgz", @@ -16659,18 +19149,65 @@ "dev": true }, "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, + "worker-farm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", + "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, "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.1", "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": 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=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "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.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.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.0.0" + } + } } }, "wrappy": { @@ -16682,6 +19219,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/wreck/-/wreck-6.3.0.tgz", "integrity": "sha1-oTaXafB7u2LWo3gzanhx/Hc8dAs=", + "dev": true, "requires": { "boom": "2.x.x", "hoek": "2.x.x" @@ -16697,9 +19235,9 @@ } }, "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==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.2.tgz", + "integrity": "sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g==", "dev": true, "requires": { "graceful-fs": "^4.1.11", @@ -16707,6 +19245,52 @@ "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.2", + "make-dir": "^1.0.0", + "pify": "^3.0.0", + "sort-keys": "^2.0.0", + "write-file-atomic": "^2.0.0" + }, + "dependencies": { + "sort-keys": { + "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.0.0" + } + } + } + }, + "write-pkg": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz", + "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==", + "dev": true, + "requires": { + "sort-keys": "^2.0.0", + "write-json-file": "^2.2.0" + }, + "dependencies": { + "sort-keys": { + "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.0.0" + } + } + } + }, "ws": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", @@ -16759,44 +19343,44 @@ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" }, "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true }, "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" }, "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", "dev": true, "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", + "os-locale": "^3.0.0", "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" + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" } }, "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=", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", "dev": true, "requires": { - "camelcase": "^3.0.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } }, "yauzl": { diff --git a/package.json b/package.json index 633fa678f..ec135ca77 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "franz", "productName": "Franz", "appId": "com.meetfranz.franz", - "version": "5.0.0", + "version": "5.0.1-beta.1", "description": "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.", "copyright": "adlk x franz - Stefan Malzner", "main": "index.js", @@ -16,13 +16,17 @@ "start:live": "cross-env LIVE_API=1 npm start", "dev": "cross-env NODE_ENV=development gulp dev", "lint": "eslint src", + "manage-translations": "node ./src/i18n/manage-translations.js", "sign": "gulp sign", "prebuild": "gulp build", "build": "npx electron-builder --publish onTag", - "rebuild": "npx electron-builder install-app-deps", + "rebuild": "npx electron-rebuild", "commit": "git-cz", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s", - "reformat-files": "npx prettier --ignore-path .eslintignore --write --require-pragma \"**/*.{js,jsx,scss}\"" + "reformat-files": "./node_modules/.bin/prettier --ignore-path .eslintignore --write --require-pragma \"**/*.{js,jsx,scss}\"", + "packages": "npx lerna publish --no-git-tag-version", + "uidev": "cd uidev && webpack-dev-server", + "postinstall": "npx lerna run prepare" }, "keywords": [], "author": "Stefan Malzner ", @@ -31,11 +35,13 @@ "@babel/polyfill": "^7.0.0", "@babel/runtime": "^7.0.0", "@meetfranz/electron-notification-state": "^1.0.0", + "@meetfranz/forms": "file:packages/forms", + "@meetfranz/theme": "file:packages/theme", + "@meetfranz/ui": "file:packages/ui", "address-rfc2822": "^2.0.1", "auto-launch": "https://github.com/meetfranz/node-auto-launch.git", "classnames": "2.2.6", "cld3-asm": "1.0.1", - "debug-electron": "^0.0.4", "du": "^0.1.0", "electron-dl": "1.12.0", "electron-fetch": "1.3.0", @@ -45,26 +51,21 @@ "electron-updater": "4.0.6", "electron-window-state": "5.0.3", "fs-extra": "7.0.1", - "gulp-cli": "1.2.2", "hex-to-rgba": "1.0.2", - "ini": "^1.3.4", "jsonwebtoken": "^7.4.1", - "keymaster": "^1.6.2", "lodash": "^4.17.4", "mdi": "^1.9.33", "mime-types": "2.1.21", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", "mobx": "5.7.0", "mobx-localstorage": "1.1.0", "mobx-react": "5.4.2", "mobx-react-form": "1.35.1", "mobx-react-router": "3.1.2", "moment": "^2.17.1", + "ms": "2.1.1", "normalize-url": "^1.9.1", "pretty-bytes": "^4.0.2", "prop-types": "^15.5.10", - "prop-types-extended": "^0.2.1", "react": "16.6.3", "react-addons-css-transition-group": "15.6.2", "react-dom": "16.6.3", @@ -86,7 +87,7 @@ "devDependencies": { "@adlk/misty": "^0.1.1", "@babel/cli": "7.0.0", - "@babel/core": "7.0.0", + "@babel/core": "^7.2.2", "@babel/plugin-proposal-class-properties": "^7.0.0", "@babel/plugin-proposal-decorators": "^7.0.0", "@babel/plugin-proposal-export-default-from": "^7.0.0", @@ -96,32 +97,57 @@ "@babel/preset-env": "^7.0.0", "@babel/preset-react": "^7.0.0", "@babel/register": "7.0.0", + "@types/classnames": "^2.2.6", + "@types/color": "^3.0.0", + "@types/color-convert": "^1.9.0", + "@types/jss": "^9.5.7", + "@types/lodash": "^4.14.119", + "@types/react": "^16.7.18", + "@types/react-dom": "16.0.11", + "@types/react-jss": "^8.6.0", + "@types/uuid": "3.4.4", "babel-eslint": "10.0.1", + "babel-loader": "^8.0.4", + "babel-plugin-react-intl": "3.0.1", "conventional-changelog-cli": "2.0.11", "cross-env": "^5.0.5", "cz-conventional-changelog": "2.1.0", "dotenv": "^4.0.0", - "electron": "4.0.4", + "electron": "4.0.8", "electron-builder": "20.38.4", - "electron-rebuild": "^1.6.0", + "electron-rebuild": "1.8.4", "eslint": "5.10.0", "eslint-config-airbnb": "17.1.0", "eslint-loader": "^1.9.0", "eslint-plugin-import": "2.14.0", "eslint-plugin-jsx-a11y": "6.1.2", "eslint-plugin-react": "7.11.1", + "expect.js": "0.3.1", "gulp": "^4.0.0", "gulp-babel": "^8.0.0", + "gulp-cli": "1.2.2", "gulp-sass": "^4.0.2", - "gulp-sass-variables": "^1.1.1", + "gulp-sass-variables": "1.1.1", "gulp-server-livereload": "^1.9.2", "hex-rgb": "3.0.0", + "html-webpack-plugin": "4.0.0-beta.5", "husky": "^1.1.4", - "install": "0.12.2", "kebab-case": "1.0.0", - "node-sass": "^4.7.2", - "npm": "6.5.0", - "prettier": "1.15.2" + "lerna": "^3.8.0", + "mobx-react-devtools": "6.0.3", + "mocha": "5.2.0", + "node-sass": "4.11.0", + "prettier": "1.15.2", + "react-intl-translations-manager": "5.0.3", + "terser-webpack-plugin": "1.2.1", + "ts-loader": "5.3.2", + "tslint": "5.12.0", + "tslint-config-airbnb": "5.11.1", + "typescript": "3.2.2", + "webpack": "4.28.3", + "webpack-cli": "3.2.1", + "webpack-dev-server": "3.1.14", + "webpack-node-externals": "1.7.2" }, "config": { "commitizen": { @@ -129,11 +155,11 @@ } }, "browserslist": [ - "Chrome 66" + "Chrome 69" ], "husky": { "hooks": { - "pre-push": "npm run lint && npm run reformat-files" + "pre-push": "npm run lint && npm run reformat-files && npm run manage-translations" } } } diff --git a/packages/forms/.gitignore b/packages/forms/.gitignore new file mode 100644 index 000000000..d01826a6b --- /dev/null +++ b/packages/forms/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +lib diff --git a/packages/forms/package-lock.json b/packages/forms/package-lock.json new file mode 100644 index 000000000..b5b24c239 --- /dev/null +++ b/packages/forms/package-lock.json @@ -0,0 +1,220 @@ +{ + "name": "@meetfranz/forms", + "version": "1.0.6", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@mdi/js": { + "version": "3.3.92", + "resolved": "https://registry.npmjs.org/@mdi/js/-/js-3.3.92.tgz", + "integrity": "sha512-l+12IwTycHlijWMiRWBAssm0RSgkQiwMthIy/EcBAdSqtnsHnFjHq+aI2MBZ8/AYX0QBxNUv4+EN0SXZgNkWDg==" + }, + "@mdi/react": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@mdi/react/-/react-1.1.0.tgz", + "integrity": "sha512-c0+avMYEZ6i7Pg1ULLFs+p7k8bDPiie9rrgGYs8VWQhw2tUUYz7r0lIPVzD3bzMghWfyhfkArj88K5Of0WTMNw==" + }, + "@meetfranz/theme": { + "version": "file:../theme", + "requires": { + "color": "^3.1.0" + }, + "dependencies": { + "color": { + "version": "3.1.0", + "bundled": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, + "color-convert": { + "version": "1.9.3", + "bundled": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "bundled": true + }, + "color-string": { + "version": "1.5.3", + "bundled": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "is-arrayish": { + "version": "0.3.2", + "bundled": true + }, + "simple-swizzle": { + "version": "0.2.2", + "bundled": true, + "requires": { + "is-arrayish": "^0.3.1" + } + } + } + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + }, + "create-react-class": { + "version": "15.6.3", + "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", + "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", + "requires": { + "fbjs": "^0.8.9", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, + "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.13" + } + }, + "fbjs": { + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", + "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", + "requires": { + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + } + }, + "html-element-attributes": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-element-attributes/-/html-element-attributes-1.3.1.tgz", + "integrity": "sha512-UrRKgp5sQmRnDy4TEwAUsu14XBUlzKB8U3hjIYDjcZ3Hbp86Jtftzxfgrv6E/ii/h78tsaZwAnAE8HwnHr0dPA==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "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.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "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.11", + "is-stream": "^1.0.1" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "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.3" + } + }, + "prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, + "react-html-attributes": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/react-html-attributes/-/react-html-attributes-1.4.3.tgz", + "integrity": "sha1-jDbDX85rdQk40oavQo7R2nYlGG4=", + "requires": { + "html-element-attributes": "^1.0.0" + } + }, + "react-loader": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/react-loader/-/react-loader-2.4.5.tgz", + "integrity": "sha1-zT5VHGzQc4wcDxPwc2VPk4KL5ak=", + "requires": { + "create-react-class": "^15.5.2", + "prop-types": "^15.5.8", + "spin.js": "2.x" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "spin.js": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/spin.js/-/spin.js-2.3.2.tgz", + "integrity": "sha1-bKpW1SBnNFD9XPvGlx5tB3LDeho=" + }, + "ua-parser-js": { + "version": "0.7.19", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.19.tgz", + "integrity": "sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ==" + }, + "whatwg-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", + "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" + } + } +} diff --git a/packages/forms/package.json b/packages/forms/package.json new file mode 100644 index 000000000..e78929777 --- /dev/null +++ b/packages/forms/package.json @@ -0,0 +1,39 @@ +{ + "name": "@meetfranz/forms", + "version": "1.0.9", + "description": "React form components for Franz", + "main": "lib/index.js", + "scripts": { + "dev": "tsc -w", + "prepare": "tsc" + }, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/meetfranz/franz.git" + }, + "keywords": [ + "Franz", + "Forms", + "React", + "UI" + ], + "author": "Stefan Malzner ", + "license": "Apache-2.0", + "dependencies": { + "@mdi/js": "^3.3.92", + "@mdi/react": "^1.1.0", + "@meetfranz/theme": "^1.0.7", + "react-html-attributes": "^1.4.3", + "react-loader": "^2.4.5" + }, + "peerDependencies": { + "classnames": "^2.2.6", + "react": "^16.7.0", + "react-dom": "16.7.0", + "react-jss": "^8.6.1" + }, + "gitHead": "14b151cad6a5a849bb476aaa3fc53bf1eead7f4b" +} diff --git a/packages/forms/src/button/index.tsx b/packages/forms/src/button/index.tsx new file mode 100644 index 000000000..7a7f83dab --- /dev/null +++ b/packages/forms/src/button/index.tsx @@ -0,0 +1,274 @@ +import * as mdiIcons from '@mdi/js'; +import Icon from '@mdi/react'; +import { Theme } from '@meetfranz/theme'; +import classnames from 'classnames'; +import CSS from 'csstype'; +import React, { Component } from 'react'; +import injectStyle, { withTheme } from 'react-jss'; +import Loader from 'react-loader'; + +import { IFormField, IWithStyle } from '../typings/generic'; + +type ButtonType = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'inverted'; + +interface IProps extends IFormField, IWithStyle { + className?: string; + disabled?: boolean; + id?: string; + type?: string; + onClick: (event: React.MouseEvent | React.MouseEvent) => void; + buttonType?: ButtonType; + stretch?: boolean; + loaded?: boolean; + busy?: boolean; + icon?: keyof typeof mdiIcons; + href?: string; + target?: string; +} + +interface IState { + busy: boolean; +} + +const styles = (theme: Theme) => ({ + button: { + borderRadius: theme.borderRadiusSmall, + border: 'none', + display: 'inline-flex', + position: 'relative' as CSS.PositionProperty, + transition: 'background .5s, opacity 0.3s', + textAlign: 'center' as CSS.TextAlignProperty, + outline: 'none', + alignItems: 'center', + padding: 0, + width: (props: IProps) => (props.stretch ? '100%' : 'auto') as CSS.WidthProperty, + fontSize: theme.uiFontSize, + textDecoration: 'none', + + '&:hover': { + opacity: 0.8, + }, + '&:active': { + opacity: 0.5, + transition: 'none', + }, + }, + label: { + margin: '10px 20px', + width: '100%', + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + }, + primary: { + background: theme.buttonPrimaryBackground, + color: theme.buttonPrimaryTextColor, + + '& svg': { + fill: theme.buttonPrimaryTextColor, + }, + }, + secondary: { + background: theme.buttonSecondaryBackground, + color: theme.buttonSecondaryTextColor, + + '& svg': { + fill: theme.buttonSecondaryTextColor, + }, + }, + success: { + background: theme.buttonSuccessBackground, + color: theme.buttonSuccessTextColor, + + '& svg': { + fill: theme.buttonSuccessTextColor, + }, + }, + danger: { + background: theme.buttonDangerBackground, + color: theme.buttonDangerTextColor, + + '& svg': { + fill: theme.buttonDangerTextColor, + }, + }, + warning: { + background: theme.buttonWarningBackground, + color: theme.buttonWarningTextColor, + + '& svg': { + fill: theme.buttonWarningTextColor, + }, + }, + inverted: { + background: theme.buttonInvertedBackground, + color: theme.buttonInvertedTextColor, + border: theme.buttonInvertedBorder, + + '& svg': { + fill: theme.buttonInvertedTextColor, + }, + }, + disabled: { + opacity: theme.inputDisabledOpacity, + }, + loader: { + position: 'relative' as CSS.PositionProperty, + width: 20, + height: 18, + zIndex: 9999, + }, + loaderContainer: { + width: (props: IProps): string => (!props.busy ? '0' : '40px'), + height: 20, + overflow: 'hidden', + transition: 'all 0.3s', + marginLeft: (props: IProps): number => !props.busy ? 10 : 20, + marginRight: (props: IProps): number => !props.busy ? -10 : -20, + position: (props: IProps): CSS.PositionProperty => props.stretch ? 'absolute' : 'inherit', + }, + icon: { + marginLeft: -5, + marginRight: 10, + }, +}); + +class ButtonComponent extends Component { + public static defaultProps = { + type: 'button', + disabled: false, + onClick: () => null, + buttonType: 'primary' as ButtonType, + stretch: false, + busy: false, + // target: '_self' + }; + + state = { + busy: false, + }; + + componentWillMount() { + this.setState({ busy: this.props.busy }); + } + + componentWillReceiveProps(nextProps: IProps) { + if (nextProps.busy !== this.props.busy) { + if (this.props.busy) { + setTimeout(() => { + this.setState({ busy: nextProps.busy }); + }, 300); + } else { + this.setState({ busy: nextProps.busy }); + } + } + } + + render() { + const { + classes, + className, + theme, + disabled, + id, + label, + type, + onClick, + buttonType, + loaded, + icon: iconName, + busy: busyProp, + href, + target, + } = this.props; + + const { + busy, + } = this.state; + + let icon = ''; + if (iconName && mdiIcons[iconName]) { + icon = mdiIcons[iconName]; + } else if (iconName && !mdiIcons[iconName]) { + console.warn(`Icon '${iconName}' was not found`); + } + + let showLoader = false; + if (loaded) { + showLoader = !loaded; + console.warn('Franz Button prop `loaded` will be deprecated in the future. Please use `busy` instead'); + } + if (busy) { + showLoader = busy; + } + + const content = ( + <> +
+ {showLoader && ( + + )} +
+
+ {icon && ( + + )} + {label} +
+ + ); + + let wrapperComponent = null; + + if (!href) { + wrapperComponent = ( + + ); + } else { + wrapperComponent = ( + + {content} + + ); + } + + return wrapperComponent; + } +} + +export const Button = injectStyle(styles)(withTheme(ButtonComponent)); diff --git a/packages/forms/src/error/index.tsx b/packages/forms/src/error/index.tsx new file mode 100644 index 000000000..a487bb281 --- /dev/null +++ b/packages/forms/src/error/index.tsx @@ -0,0 +1,29 @@ +import { Classes } from 'jss'; +import React, { Component } from 'react'; +import injectSheet from 'react-jss'; + +import styles from './styles'; + +interface IProps { + classes: Classes; + message: string; +} + +class ErrorComponent extends Component { + render() { + const { + classes, + message, + } = this.props; + + return ( +

+ {message} +

+ ); + } +} + +export const Error = injectSheet(styles)(ErrorComponent); diff --git a/packages/forms/src/error/styles.ts b/packages/forms/src/error/styles.ts new file mode 100644 index 000000000..5104838a5 --- /dev/null +++ b/packages/forms/src/error/styles.ts @@ -0,0 +1,9 @@ +import { Theme } from '../../../theme/lib'; + +export default (theme: Theme) => ({ + message: { + color: theme.brandDanger, + margin: '5px 0 0', + fontSize: theme.uiFontSize, + }, +}); diff --git a/packages/forms/src/index.ts b/packages/forms/src/index.ts new file mode 100644 index 000000000..ea47fe25e --- /dev/null +++ b/packages/forms/src/index.ts @@ -0,0 +1,4 @@ +export { Input } from './input'; +export { Toggle } from './toggle'; +export { Button } from './button'; +export { Select } from './select'; diff --git a/packages/forms/src/input/index.tsx b/packages/forms/src/input/index.tsx new file mode 100644 index 000000000..478738cad --- /dev/null +++ b/packages/forms/src/input/index.tsx @@ -0,0 +1,193 @@ +import { mdiEye, mdiEyeOff } from '@mdi/js'; +import Icon from '@mdi/react'; +import classnames from 'classnames'; +import React, { Component, createRef } from 'react'; +import injectSheet from 'react-jss'; + +import { IFormField, IWithStyle } from '../typings/generic'; + +import { Error } from '../error'; +import { Label } from '../label'; +import { Wrapper } from '../wrapper'; +import { scorePasswordFunc } from './scorePassword'; + +import styles from './styles'; + +interface IData { + [index: string]: string; +} + +interface IProps extends React.InputHTMLAttributes, IFormField, IWithStyle { + focus?: boolean; + prefix?: string; + suffix?: string; + scorePassword?: boolean; + showPasswordToggle?: boolean; + data: IData; + inputClassName?: string; +} + +interface IState { + showPassword: boolean; + passwordScore: number; +} + +class InputComponent extends Component { + public static defaultProps = { + focus: false, + onChange: () => {}, + onBlur: () => {}, + onFocus: () => {}, + scorePassword: false, + showLabel: true, + showPasswordToggle: false, + type: 'text', + disabled: false, + }; + + state = { + passwordScore: 0, + showPassword: false, + }; + + private inputRef = createRef(); + + componentDidMount() { + const { focus, data } = this.props; + + if (this.inputRef && this.inputRef.current) { + if (focus) { + this.inputRef.current.focus(); + } + + if (data) { + Object.keys(data).map(key => this.inputRef.current!.dataset[key] = data[key]); + } + } + } + + onChange(e: React.ChangeEvent) { + const { + scorePassword, + onChange, + } = this.props; + + if (onChange) { + onChange(e); + } + + if (this.inputRef && this.inputRef.current && scorePassword) { + this.setState({ passwordScore: scorePasswordFunc(this.inputRef.current.value) }); + } + } + + render() { + const { + classes, + className, + disabled, + error, + id, + inputClassName, + label, + prefix, + scorePassword, + suffix, + showLabel, + showPasswordToggle, + type, + value, + name, + placeholder, + spellCheck, + onBlur, + onFocus, + } = this.props; + + const { + showPassword, + passwordScore, + } = this.state; + + const inputType = type === 'password' && showPassword ? 'text' : type; + + return ( + + + {error && ( + + )} + + ); + } +} + +export const Input = injectSheet(styles)(InputComponent); diff --git a/packages/forms/src/input/scorePassword.ts b/packages/forms/src/input/scorePassword.ts new file mode 100644 index 000000000..0b7719ec1 --- /dev/null +++ b/packages/forms/src/input/scorePassword.ts @@ -0,0 +1,42 @@ +interface ILetters { + [key: string]: number; +} + +interface IVariations { + [index: string]: boolean; + digits: boolean; + lower: boolean; + nonWords: boolean; + upper: boolean; +} + +export function scorePasswordFunc(password: string): number { + let score: number = 0; + if (!password) { + return score; + } + + // award every unique letter until 5 repetitions + const letters: ILetters = {}; + for (let i = 0; i < password.length; i += 1) { + letters[password[i]] = (letters[password[i]] || 0) + 1; + score += 5.0 / letters[password[i]]; + } + + // bonus points for mixing it up + const variations: IVariations = { + digits: /\d/.test(password), + lower: /[a-z]/.test(password), + nonWords: /\W/.test(password), + upper: /[A-Z]/.test(password), + }; + + let variationCount = 0; + Object.keys(variations).forEach((key) => { + variationCount += (variations[key] === true) ? 1 : 0; + }); + + score += (variationCount - 1) * 10; + + return Math.round(score); +} diff --git a/packages/forms/src/input/styles.ts b/packages/forms/src/input/styles.ts new file mode 100644 index 000000000..a64d2c340 --- /dev/null +++ b/packages/forms/src/input/styles.ts @@ -0,0 +1,96 @@ +import { Theme } from '@meetfranz/theme'; +import CSS from 'csstype'; + +const prefixStyles = (theme: Theme) => ({ + background: theme.inputPrefixBackground, + color: theme.inputPrefixColor, + lineHeight: theme.inputHeight, + padding: '0 10px', + fontSize: theme.uiFontSize, +}); + +export default (theme: Theme) => ({ + disabled: { + opacity: theme.inputDisabledOpacity, + }, + formModifier: { + background: 'none', + border: 0, + borderLeft: theme.inputBorder, + padding: '4px 20px 0', + outline: 'none', + + '&:active': { + opacity: 0.5, + }, + + '& svg': { + fill: theme.inputModifierColor, + }, + }, + input: { + background: 'none', + border: 0, + fontSize: theme.uiFontSize, + outline: 'none', + padding: 8, + width: '100%', + color: theme.inputColor, + + '&::placeholder': { + color: theme.inputPlaceholderColor, + }, + }, + passwordScore: { + background: theme.inputScorePasswordBackground, + border: theme.inputBorder, + borderTopWidth: 0, + borderBottomLeftRadius: theme.borderRadiusSmall, + borderBottomRightRadius: theme.borderRadiusSmall, + display: 'block', + flexBasis: '100%', + height: 5, + overflow: 'hidden', + + '& meter': { + display: 'block', + height: '100%', + width: '100%', + + '&::-webkit-meter-bar': { + background: 'none', + }, + + '&::-webkit-meter-even-less-good-value': { + background: theme.brandDanger, + }, + + '&::-webkit-meter-suboptimum-value': { + background: theme.brandWarning, + }, + + '&::-webkit-meter-optimum-value': { + background: theme.brandSuccess, + }, + }, + }, + prefix: prefixStyles(theme), + suffix: prefixStyles(theme), + wrapper: { + background: theme.inputBackground, + border: theme.inputBorder, + borderRadius: theme.borderRadiusSmall, + boxSizing: 'border-box' as CSS.BoxSizingProperty, + display: 'flex', + height: theme.inputHeight, + order: 1, + width: '100%', + }, + hasPasswordScore: { + borderBottomLeftRadius: 0, + borderBottomRightRadius: 0, + }, + hasError: { + borderColor: theme.brandDanger, + }, +}); diff --git a/packages/forms/src/label/index.tsx b/packages/forms/src/label/index.tsx new file mode 100644 index 000000000..36fcfbedf --- /dev/null +++ b/packages/forms/src/label/index.tsx @@ -0,0 +1,47 @@ +import classnames from 'classnames'; +import { Classes } from 'jss'; +import React, { Component } from 'react'; +import injectSheet from 'react-jss'; + +import { IFormField } from '../typings/generic'; + +import styles from './styles'; + +interface ILabel extends IFormField, React.LabelHTMLAttributes { + classes: Classes; +} + +class LabelComponent extends Component { + static defaultProps = { + showLabel: true, + }; + + render() { + const { + title, + showLabel, + classes, + className, + children, + htmlFor, + } = this.props; + + return ( + + ); + } +} + +export const Label = injectSheet(styles)(LabelComponent); diff --git a/packages/forms/src/label/styles.ts b/packages/forms/src/label/styles.ts new file mode 100644 index 000000000..f3998de04 --- /dev/null +++ b/packages/forms/src/label/styles.ts @@ -0,0 +1,14 @@ +import { Theme } from '../../../theme/lib'; + +export default (theme: Theme) => ({ + content: { + marginTop: 5, + }, + label: { + color: theme.labelColor, + fontSize: theme.uiFontSize, + }, + hasError: { + color: theme.brandDanger, + }, +}); diff --git a/packages/forms/src/select/index.tsx b/packages/forms/src/select/index.tsx new file mode 100644 index 000000000..4a9e3c56e --- /dev/null +++ b/packages/forms/src/select/index.tsx @@ -0,0 +1,437 @@ +import { mdiArrowRightDropCircleOutline, mdiCloseCircle, mdiMagnify } from '@mdi/js'; +import Icon from '@mdi/react'; +import { Theme } from '@meetfranz/theme'; +import classnames from 'classnames'; +import React, { Component, createRef } from 'react'; +import injectStyle from 'react-jss'; + +import { IFormField, IWithStyle } from '../typings/generic'; + +import { NONAME } from 'dns'; +import { Error } from '../error'; +import { Label } from '../label'; +import { Wrapper } from '../wrapper'; + +interface IOptions { + [index: string]: string; +} + +interface IData { + [index: string]: string; +} + +interface IProps extends IFormField, IWithStyle { + actionText: string; + className?: string; + inputClassName?: string; + defaultValue?: string; + disabled?: boolean; + id?: string; + name: string; + options: IOptions; + value: string; + onChange: (event: React.ChangeEvent) => void; + showSearch: boolean; + data: IData; +} + +interface IState { + open: boolean; + value: string; + needle: string; + selected: number; + options: IOptions; +} + +const styles = (theme: Theme) => ({ + select: { + background: theme.selectBackground, + border: theme.selectBorder, + borderRadius: theme.borderRadiusSmall, + height: theme.selectHeight, + fontSize: theme.uiFontSize, + width: '100%', + display: 'flex', + alignItems: 'center', + textAlign: 'left', + color: theme.selectColor, + }, + popup: { + opacity: 0, + height: 0, + overflowX: 'scroll', + border: theme.selectBorder, + borderTop: 0, + transition: 'all 0.3s', + }, + open: { + opacity: 1, + height: 350, + background: theme.selectPopupBackground, + }, + option: { + padding: 10, + borderBottom: theme.selectOptionBorder, + color: theme.selectOptionColor, + + '&:hover': { + background: theme.selectOptionItemHover, + color: theme.selectOptionItemHoverColor, + }, + '&:active': { + background: theme.selectOptionItemActive, + color: theme.selectOptionItemActiveColor, + }, + }, + selected: { + background: theme.selectOptionItemActive, + color: theme.selectOptionItemActiveColor, + }, + toggle: { + marginLeft: 'auto', + fill: theme.selectToggleColor, + transition: 'transform 0.3s', + }, + toggleOpened: { + transform: 'rotateZ(90deg)', + }, + searchContainer: { + display: 'flex', + background: theme.selectSearchBackground, + alignItems: 'center', + paddingLeft: 10, + color: theme.selectColor, + + '& svg': { + fill: theme.selectSearchColor, + }, + }, + search: { + border: 0, + width: '100%', + fontSize: theme.uiFontSize, + background: 'none', + marginLeft: 10, + padding: [10, 0], + color: theme.selectSearchColor, + }, + clearNeedle: { + background: 'none', + border: 0, + }, + focused: { + fontWeight: 'bold', + background: theme.selectOptionItemHover, + color: theme.selectOptionItemHoverColor, + }, + hasError: { + borderColor: theme.brandDanger, + }, + disabled: { + opacity: theme.selectDisabledOpacity, + }, +}); + +class SelectComponent extends Component { + public static defaultProps = { + onChange: () => {}, + showLabel: true, + disabled: false, + error: '', + }; + + state = { + open: false, + value: '', + needle: '', + selected: 0, + options: null, + }; + + private componentRef = createRef(); + private inputRef = createRef(); + private searchInputRef = createRef(); + private scrollContainerRef = createRef(); + private activeOptionRef = createRef(); + + private keyListener: any; + + componentWillReceiveProps(nextProps: IProps) { + if (nextProps.value && nextProps.value !== this.props.value) { + this.setState({ + value: nextProps.value, + }); + } + } + + componentDidUpdate(prevProps: IProps, prevState: IState) { + const { + open, + } = this.state; + + if (this.searchInputRef && this.searchInputRef.current) { + if (open) { + this.searchInputRef.current.focus(); + } + } + } + + componentDidMount() { + if (this.inputRef && this.inputRef.current) { + const { + data, + } = this.props; + + if (data) { + Object.keys(data).map(key => this.inputRef.current!.dataset[key] = data[key]); + } + } + + window.addEventListener('keydown', this.arrowKeysHandler.bind(this), false); + } + + componentWillMount() { + const { + value, + } = this.props; + + if (this.componentRef && this.componentRef.current) { + this.componentRef.current.removeEventListener('keydown', this.keyListener); + } + + if (value) { + this.setState({ + value, + }); + } + + this.setFilter(); + } + + componentWillUnmount() { + window.removeEventListener('keydown', this.arrowKeysHandler.bind(this)); + } + + setFilter(needle: string = '') { + const { options } = this.props; + + let filteredOptions = {}; + if (needle) { + Object.keys(options).map((key) => { + if (key.toLocaleLowerCase().startsWith(needle.toLocaleLowerCase()) || options[key].toLocaleLowerCase().startsWith(needle.toLocaleLowerCase())) { + Object.assign(filteredOptions, { + [`${key}`]: options[key], + }); + } + }); + } else { + filteredOptions = options; + } + + this.setState({ + needle, + options: filteredOptions, + selected: 0, + }); + } + + select(key: string) { + this.setState((state: IState) => ({ + value: key, + open: false, + })); + + this.setFilter(); + + if (this.props.onChange) { + this.props.onChange(key as any); + } + } + + arrowKeysHandler(e: KeyboardEvent) { + const { + selected, + open, + options, + } = this.state; + + if (!open) return; + + if (e.keyCode === 38 || e.keyCode === 40) { + e.preventDefault(); + } + + if (this.componentRef && this.componentRef.current) { + if (e.keyCode === 38 && selected > 0) { + this.setState((state: IState) => ({ + selected: state.selected - 1, + })); + } else if (e.keyCode === 40 && selected < Object.keys(options!).length - 1) { + this.setState((state: IState) => ({ + selected: state.selected + 1, + })); + } else if (e.keyCode === 13) { + this.select(Object.keys(options!)[selected]); + } + + if (this.activeOptionRef && this.activeOptionRef.current && this.scrollContainerRef && this.scrollContainerRef.current) { + const containerTopOffset = this.scrollContainerRef.current.offsetTop; + const optionTopOffset = this.activeOptionRef.current.offsetTop; + + const topOffset = optionTopOffset - containerTopOffset; + + this.scrollContainerRef.current.scrollTop = topOffset - 35; + } + } + + switch (e.keyCode){ + case 37: case 39: case 38: case 40: // Arrow keys + case 32: break; // Space + default: break; // do not block other keys + } + } + + render() { + const { + actionText, + classes, + className, + defaultValue, + disabled, + error, + id, + inputClassName, + name, + label, + showLabel, + showSearch, + onChange, + } = this.props; + + const { + open, + needle, + value, + selected, + options, + } = this.state; + + let selection = ''; + if (!value && defaultValue && options![defaultValue]) { + selection = options![defaultValue]; + } else if (value && options![value]) { + selection = options![value]; + } else { + selection = actionText; + } + + return ( + + + {error && ( + + )} + + ); + } +} + +export const Select = injectStyle(styles)(SelectComponent); diff --git a/packages/forms/src/toggle/index.tsx b/packages/forms/src/toggle/index.tsx new file mode 100644 index 000000000..6487f1d07 --- /dev/null +++ b/packages/forms/src/toggle/index.tsx @@ -0,0 +1,117 @@ +import { Theme } from '@meetfranz/theme'; +import classnames from 'classnames'; +import CSS from 'csstype'; +import React, { Component, createRef } from 'react'; +import injectStyle from 'react-jss'; + +import { IFormField, IWithStyle, Omit } from '../typings/generic'; + +import { Error } from '../error'; +import { Label } from '../label'; +import { Wrapper } from '../wrapper'; + +interface IProps extends React.InputHTMLAttributes, IFormField, IWithStyle { + className?: string; +} + +const styles = (theme: Theme) => ({ + toggle: { + background: theme.toggleBackground, + borderRadius: theme.borderRadius, + height: theme.toggleHeight, + position: 'relative' as CSS.PositionProperty, + width: theme.toggleWidth, + }, + button: { + background: theme.toggleButton, + borderRadius: '100%', + boxShadow: '0 1px 4px rgba(0, 0, 0, .3)', + width: theme.toggleHeight - 2, + height: theme.toggleHeight - 2, + left: 1, + top: 1, + position: 'absolute' as CSS.PositionProperty, + transition: 'all .5s', + }, + buttonActive: { + background: theme.toggleButtonActive, + left: (theme.toggleWidth - theme.toggleHeight) + 1, + }, + input: { + visibility: 'hidden' as any, + }, + disabled: { + opacity: theme.inputDisabledOpacity, + }, + toggleLabel: { + display: 'flex', + + '& > span': { + order: 1, + marginLeft: 15, + marginTop: 2, + }, + }, +}); + +class ToggleComponent extends Component { + public static defaultProps = { + onChange: () => {}, + showLabel: true, + disabled: false, + error: '', + }; + + render() { + const { + classes, + className, + disabled, + error, + id, + label, + showLabel, + checked, + value, + onChange, + } = this.props; + + return ( + +
diff --git a/src/components/services/content/ServiceView.js b/src/components/services/content/ServiceView.js new file mode 100644 index 000000000..5afc54f9d --- /dev/null +++ b/src/components/services/content/ServiceView.js @@ -0,0 +1,136 @@ +import React, { Component, Fragment } from 'react'; +import PropTypes from 'prop-types'; +import { autorun } from 'mobx'; +import { observer } from 'mobx-react'; +import classnames from 'classnames'; + +import ServiceModel from '../../../models/Service'; +import StatusBarTargetUrl from '../../ui/StatusBarTargetUrl'; +import WebviewLoader from '../../ui/WebviewLoader'; +import WebviewCrashHandler from './WebviewCrashHandler'; +import WebviewErrorHandler from './ErrorHandlers/WebviewErrorHandler'; +import ServiceDisabled from './ServiceDisabled'; +import ServiceWebview from './ServiceWebview'; + +export default @observer class ServiceView extends Component { + static propTypes = { + service: PropTypes.instanceOf(ServiceModel).isRequired, + setWebviewReference: PropTypes.func.isRequired, + detachService: PropTypes.func.isRequired, + reload: PropTypes.func.isRequired, + edit: PropTypes.func.isRequired, + enable: PropTypes.func.isRequired, + isActive: PropTypes.bool, + }; + + static defaultProps = { + isActive: false, + }; + + state = { + forceRepaint: false, + targetUrl: '', + statusBarVisible: false, + }; + + autorunDisposer = null; + + componentDidMount() { + this.autorunDisposer = autorun(() => { + if (this.props.service.isActive) { + this.setState({ forceRepaint: true }); + setTimeout(() => { + this.setState({ forceRepaint: false }); + }, 100); + } + }); + } + + componentWillUnmount() { + this.autorunDisposer(); + } + + updateTargetUrl = (event) => { + let visible = true; + if (event.url === '' || event.url === '#') { + visible = false; + } + this.setState({ + targetUrl: event.url, + statusBarVisible: visible, + }); + }; + + render() { + const { + detachService, + service, + setWebviewReference, + reload, + edit, + enable, + } = this.props; + + const webviewClasses = classnames({ + services__webview: true, + 'services__webview-wrapper': true, + 'is-active': service.isActive, + 'services__webview--force-repaint': this.state.forceRepaint, + }); + + let statusBar = null; + if (this.state.statusBarVisible) { + statusBar = ( + + ); + } + + return ( +
+ {service.isActive && service.isEnabled && ( + + {service.hasCrashed && ( + + )} + {service.isEnabled && service.isLoading && service.isFirstLoad && ( + + )} + {service.isError && ( + + )} + + )} + {!service.isEnabled ? ( + + {service.isActive && ( + + )} + + ) : ( + + )} + {statusBar} +
+ ); + } +} diff --git a/src/components/services/content/ServiceWebview.js b/src/components/services/content/ServiceWebview.js index bb577e4cc..7252c695f 100644 --- a/src/components/services/content/ServiceWebview.js +++ b/src/components/services/content/ServiceWebview.js @@ -1,145 +1,50 @@ -import React, { Component, Fragment } from 'react'; +import React, { Component } from 'react'; import PropTypes from 'prop-types'; -import { autorun } from 'mobx'; import { observer } from 'mobx-react'; -import Webview from 'react-electron-web-view'; -import classnames from 'classnames'; +import ElectronWebView from 'react-electron-web-view'; import ServiceModel from '../../../models/Service'; -import StatusBarTargetUrl from '../../ui/StatusBarTargetUrl'; -import WebviewLoader from '../../ui/WebviewLoader'; -import WebviewCrashHandler from './WebviewCrashHandler'; -import WebviewErrorHandler from './ErrorHandlers/WebviewErrorHandler'; -import ServiceDisabled from './ServiceDisabled'; -export default @observer class ServiceWebview extends Component { +@observer +class ServiceWebview extends Component { static propTypes = { service: PropTypes.instanceOf(ServiceModel).isRequired, setWebviewReference: PropTypes.func.isRequired, - reload: PropTypes.func.isRequired, - edit: PropTypes.func.isRequired, - enable: PropTypes.func.isRequired, - isActive: PropTypes.bool, + detachService: PropTypes.func.isRequired, }; - static defaultProps = { - isActive: false, - }; - - state = { - forceRepaint: false, - targetUrl: '', - statusBarVisible: false, - }; - - autorunDisposer = null; - webview = null; - componentDidMount() { - this.autorunDisposer = autorun(() => { - if (this.props.service.isActive) { - this.setState({ forceRepaint: true }); - setTimeout(() => { - this.setState({ forceRepaint: false }); - }, 100); - } - }); - } - componentWillUnmount() { - this.autorunDisposer(); - } - - updateTargetUrl = (event) => { - let visible = true; - if (event.url === '' || event.url === '#') { - visible = false; - } - this.setState({ - targetUrl: event.url, - statusBarVisible: visible, - }); + const { service, detachService } = this.props; + detachService({ service }); } render() { const { service, setWebviewReference, - reload, - edit, - enable, } = this.props; - const webviewClasses = classnames({ - services__webview: true, - 'services__webview-wrapper': true, - 'is-active': service.isActive, - 'services__webview--force-repaint': this.state.forceRepaint, - }); - - let statusBar = null; - if (this.state.statusBarVisible) { - statusBar = ( - - ); - } - return ( -
- {service.isActive && service.isEnabled && ( - - {service.hasCrashed && ( - - )} - {service.isEnabled && service.isLoading && service.isFirstLoad && ( - - )} - {service.isError && ( - - )} - - )} - {!service.isEnabled ? ( - - {service.isActive && ( - - )} - - ) : ( - { this.webview = element; }} - autosize - src={service.url} - preload="./webview/recipe.js" - partition={`persist:service-${service.id}`} - onDidAttach={() => setWebviewReference({ - serviceId: service.id, - webview: this.webview.view, - })} - onUpdateTargetUrl={this.updateTargetUrl} - useragent={service.userAgent} - allowpopups - /> - )} - {statusBar} -
+ { this.webview = webview; }} + autosize + src={service.url} + preload="./webview/recipe.js" + partition={`persist:service-${service.id}`} + onDidAttach={() => { + setWebviewReference({ + serviceId: service.id, + webview: this.webview.view, + }); + }} + onUpdateTargetUrl={this.updateTargetUrl} + useragent={service.userAgent} + allowpopups + /> ); } } + +export default ServiceWebview; diff --git a/src/components/services/content/Services.js b/src/components/services/content/Services.js index 54f16ba12..8f8c38a11 100644 --- a/src/components/services/content/Services.js +++ b/src/components/services/content/Services.js @@ -4,7 +4,7 @@ import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; import { Link } from 'react-router'; import { defineMessages, intlShape } from 'react-intl'; -import Webview from './ServiceWebview'; +import ServiceView from './ServiceView'; import Appear from '../../ui/effects/Appear'; const messages = defineMessages({ @@ -22,6 +22,7 @@ export default @observer class Services extends Component { static propTypes = { services: MobxPropTypes.arrayOrObservableArray, setWebviewReference: PropTypes.func.isRequired, + detachService: PropTypes.func.isRequired, handleIPCMessage: PropTypes.func.isRequired, openWindow: PropTypes.func.isRequired, reload: PropTypes.func.isRequired, @@ -42,6 +43,7 @@ export default @observer class Services extends Component { services, handleIPCMessage, setWebviewReference, + detachService, openWindow, reload, openSettings, @@ -71,11 +73,12 @@ export default @observer class Services extends Component { )} {services.map(service => ( - reload({ serviceId: service.id })} edit={() => openSettings({ path: `services/edit/${service.id}` })} diff --git a/src/components/services/content/WebviewCrashHandler.js b/src/components/services/content/WebviewCrashHandler.js index 42bc3c877..7a69dba87 100644 --- a/src/components/services/content/WebviewCrashHandler.js +++ b/src/components/services/content/WebviewCrashHandler.js @@ -2,6 +2,7 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { observer } from 'mobx-react'; import { defineMessages, intlShape } from 'react-intl'; +import ms from 'ms'; import Button from '../../ui/Button'; @@ -35,12 +36,12 @@ export default @observer class WebviewCrashHandler extends Component { }; state = { - countdown: 10000, + countdown: ms('10s'), } countdownInterval = null; - countdownIntervalTimeout = 1000; + countdownIntervalTimeout = ms('1s'); componentDidMount() { @@ -75,7 +76,7 @@ export default @observer class WebviewCrashHandler extends Component {

{intl.formatMessage(messages.autoReload, { name, - seconds: this.state.countdown / 1000, + seconds: this.state.countdown / ms('1s'), })}

diff --git a/src/components/settings/account/AccountDashboard.js b/src/components/settings/account/AccountDashboard.js index 9c9543749..181b95c8c 100644 --- a/src/components/settings/account/AccountDashboard.js +++ b/src/components/settings/account/AccountDashboard.js @@ -44,10 +44,6 @@ const messages = defineMessages({ id: 'settings.account.accountType.premium', defaultMessage: '!!!Premium Supporter Account', }, - accountTypeEnterprise: { - id: 'settings.account.accountType.enterprise', - defaultMessage: '!!!Enterprise Account', - }, accountEditButton: { id: 'settings.account.account.editButton', defaultMessage: '!!!Edit Account', @@ -169,15 +165,9 @@ export default @observer class AccountDashboard extends Component { {user.organization && `${user.organization}, `} {user.email}
- {!user.isEnterprise && !user.isPremium && ( - {intl.formatMessage(messages.accountTypeBasic)} - )} {user.isPremium && ( {intl.formatMessage(messages.accountTypePremium)} )} - {user.isEnterprise && ( - {intl.formatMessage(messages.accountTypeEnterprise)} - )} {intl.formatMessage(messages.accountEditButton)} @@ -235,34 +225,7 @@ export default @observer class AccountDashboard extends Component { ) )} - {user.isEnterprise && ( -
-
-

{user.company.name}

-

- Technical contact:  - - {user.company.contact.technical} - -
- General contact:  - - {user.company.contact.default} - -

-
-
- )} - - {!user.isEnterprise && !user.isPremium && ( + {!user.isPremium && ( isLoadingPlans ? ( ) : ( @@ -277,27 +240,25 @@ export default @observer class AccountDashboard extends Component { ) )} - {!user.isEnterprise && ( -
-
-

{intl.formatMessage(messages.headlineDangerZone)}

- {!isDeleteAccountSuccessful && ( -
-

{intl.formatMessage(messages.deleteInfo)}

-
- )} - {isDeleteAccountSuccessful && ( -

{intl.formatMessage(messages.deleteEmailSent)}

- )} +
+
+

{intl.formatMessage(messages.headlineDangerZone)}

+ {!isDeleteAccountSuccessful && ( +
+

{intl.formatMessage(messages.deleteInfo)}

+
+ )} + {isDeleteAccountSuccessful && ( +

{intl.formatMessage(messages.deleteEmailSent)}

+ )}
- )} +
)}
diff --git a/src/components/settings/user/EditUserForm.js b/src/components/settings/user/EditUserForm.js index 0e3ac6b10..a1a353e57 100644 --- a/src/components/settings/user/EditUserForm.js +++ b/src/components/settings/user/EditUserForm.js @@ -3,11 +3,10 @@ import PropTypes from 'prop-types'; import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; import { defineMessages, intlShape } from 'react-intl'; import { Link } from 'react-router'; - -// import { Link } from 'react-router'; +import { Input } from '@meetfranz/forms'; import Form from '../../../lib/Form'; -import Input from '../../ui/Input'; +// import Input from '../../ui/Input'; import Button from '../../ui/Button'; import Radio from '../../ui/Radio'; import Infobox from '../../ui/Infobox'; @@ -39,13 +38,12 @@ const messages = defineMessages({ }, }); -export default @observer class EditServiceForm extends Component { +export default @observer class EditUserForm extends Component { static propTypes = { status: MobxPropTypes.observableArray.isRequired, form: PropTypes.instanceOf(Form).isRequired, onSubmit: PropTypes.func.isRequired, isSaving: PropTypes.bool.isRequired, - isEnterprise: PropTypes.bool.isRequired, }; static contextTypes = { @@ -68,7 +66,6 @@ export default @observer class EditServiceForm extends Component { // user, status, form, - isEnterprise, isSaving, } = this.props; const { intl } = this.context; @@ -98,23 +95,21 @@ export default @observer class EditServiceForm extends Component { )}

{intl.formatMessage(messages.headlineAccount)}

- - + +
- - {!isEnterprise && ( - - )} - {!isEnterprise && form.$('accountType').value === 'company' && ( + + + {form.$('accountType').value === 'company' && ( )}

{intl.formatMessage(messages.headlinePassword)}

diff --git a/src/components/subscription/SubscriptionForm.js b/src/components/subscription/SubscriptionForm.js index 90da8ddc3..7a818d100 100644 --- a/src/components/subscription/SubscriptionForm.js +++ b/src/components/subscription/SubscriptionForm.js @@ -35,31 +35,29 @@ const messages = defineMessages({ id: 'subscription.includedFeatures', defaultMessage: '!!!The Franz Premium Supporter Account includes', }, - features: { - onpremise: { - id: 'subscription.features.onpremise.mattermost', - defaultMessage: '!!!Add on-premise/hosted services like Mattermost', - }, - noInterruptions: { - id: 'subscription.features.noInterruptions', - defaultMessage: '!!!No app delays & nagging to upgrade license', - }, - proxy: { - id: 'subscription.features.proxy', - defaultMessage: '!!!Proxy support for services', - }, - spellchecker: { - id: 'subscription.features.spellchecker', - defaultMessage: '!!!Support for Spellchecker', - }, - ads: { - id: 'subscription.features.ads', - defaultMessage: '!!!No ads, ever!', - }, - comingSoon: { - id: 'subscription.features.comingSoon', - defaultMessage: '!!!coming soon', - }, + onpremise: { + id: 'subscription.features.onpremise.mattermost', + defaultMessage: '!!!Add on-premise/hosted services like Mattermost', + }, + noInterruptions: { + id: 'subscription.features.noInterruptions', + defaultMessage: '!!!No app delays & nagging to upgrade license', + }, + proxy: { + id: 'subscription.features.proxy', + defaultMessage: '!!!Proxy support for services', + }, + spellchecker: { + id: 'subscription.features.spellchecker', + defaultMessage: '!!!Support for Spellchecker', + }, + ads: { + id: 'subscription.features.ads', + defaultMessage: '!!!No ads, ever!', + }, + comingSoon: { + id: 'subscription.features.comingSoon', + defaultMessage: '!!!coming soon', }, euTaxInfo: { id: 'subscription.euTaxInfo', @@ -85,7 +83,7 @@ export default @observer class SubscriptionForm extends Component { showSkipOption: false, skipAction: () => null, skipButtonLabel: '', - } + }; static contextTypes = { intl: intlShape, @@ -162,18 +160,18 @@ export default @observer class SubscriptionForm extends Component {

    -
  • {intl.formatMessage(messages.features.onpremise)}
  • +
  • {intl.formatMessage(messages.onpremise)}
  • - {intl.formatMessage(messages.features.noInterruptions)} + {intl.formatMessage(messages.noInterruptions)}
  • - {intl.formatMessage(messages.features.spellchecker)} + {intl.formatMessage(messages.spellchecker)}
  • - {intl.formatMessage(messages.features.proxy)} + {intl.formatMessage(messages.proxy)}
  • - {intl.formatMessage(messages.features.ads)} + {intl.formatMessage(messages.ads)}
diff --git a/src/components/subscription/SubscriptionPopup.js b/src/components/subscription/SubscriptionPopup.js index b5d7c4b2d..0f6f0260f 100644 --- a/src/components/subscription/SubscriptionPopup.js +++ b/src/components/subscription/SubscriptionPopup.js @@ -3,6 +3,7 @@ import PropTypes from 'prop-types'; import { observer } from 'mobx-react'; import { defineMessages, intlShape } from 'react-intl'; import Webview from 'react-electron-web-view'; +import ms from 'ms'; import Button from '../ui/Button'; @@ -42,7 +43,7 @@ export default @observer class SubscriptionPopup extends Component { setTimeout(() => { this.props.closeWindow(); - }, 4000); + }, ms('4s')); } render() { diff --git a/src/components/ui/Modal/index.js b/src/components/ui/Modal/index.js index d84e4c713..0b7154760 100644 --- a/src/components/ui/Modal/index.js +++ b/src/components/ui/Modal/index.js @@ -3,9 +3,12 @@ import ReactModal from 'react-modal'; import PropTypes from 'prop-types'; import classnames from 'classnames'; import injectCSS from 'react-jss'; +import { Icon } from '@meetfranz/ui'; import styles from './styles'; +// ReactModal.setAppElement('#root'); + export default @injectCSS(styles) class Modal extends Component { static propTypes = { children: PropTypes.node.isRequired, @@ -14,11 +17,15 @@ export default @injectCSS(styles) class Modal extends Component { isOpen: PropTypes.bool.isRequired, portal: PropTypes.string, close: PropTypes.func.isRequired, + shouldCloseOnOverlayClick: PropTypes.bool, + showClose: PropTypes.bool, } static defaultProps = { className: null, portal: 'modal-portal', + shouldCloseOnOverlayClick: false, + showClose: true, } render() { @@ -29,6 +36,8 @@ export default @injectCSS(styles) class Modal extends Component { isOpen, portal, close, + shouldCloseOnOverlayClick, + showClose, } = this.props; return ( @@ -42,14 +51,17 @@ export default @injectCSS(styles) class Modal extends Component { overlayClassName={classes.overlay} portal={portal} onRequestClose={close} + shouldCloseOnOverlayClick={shouldCloseOnOverlayClick} > - {/* + )}
{children}
diff --git a/src/components/ui/Modal/styles.js b/src/components/ui/Modal/styles.js index 56fecbf55..49b970c97 100644 --- a/src/components/ui/Modal/styles.js +++ b/src/components/ui/Modal/styles.js @@ -28,5 +28,6 @@ export default theme => ({ position: 'absolute', top: 0, right: 0, + padding: 20, }, }); diff --git a/src/config.js b/src/config.js index aecba45be..479572edb 100644 --- a/src/config.js +++ b/src/config.js @@ -1,15 +1,18 @@ import electron from 'electron'; import path from 'path'; +import isDevMode from 'electron-is-dev'; +import ms from 'ms'; + import { asarPath } from './helpers/asar-helpers'; const app = process.type === 'renderer' ? electron.remote.app : electron.app; const systemPreferences = process.type === 'renderer' ? electron.remote.systemPreferences : electron.systemPreferences; -export const CHECK_INTERVAL = 1000 * 3600; // How often should we perform checks +export const CHECK_INTERVAL = ms('1h'); // How often should we perform checks export const LOCAL_API = 'http://localhost:3000'; export const DEV_API = 'https://dev.franzinfra.com'; export const LIVE_API = 'https://api.franzinfra.com'; -export const GA_ID = 'UA-74126766-10'; +export const GA_ID = !isDevMode ? 'UA-74126766-10' : 'UA-74126766-12'; export const DEFAULT_APP_SETTINGS = { autoLaunchInBackground: false, @@ -33,8 +36,8 @@ export const DEFAULT_FEATURES_CONFIG = { isSpellcheckerPremiumFeature: false, needToWaitToProceed: false, needToWaitToProceedConfig: { - delayOffset: 3600000, - wait: 10000, + delayOffset: ms('1h'), + wait: ms('10s'), }, isServiceProxyEnabled: false, isServiceProxyPremiumFeature: true, @@ -59,3 +62,9 @@ export const SETTINGS_PATH = path.join(app.getPath('userData'), 'config'); // Replacing app.asar is not beautiful but unforunately necessary export const DICTIONARY_PATH = asarPath(path.join(__dirname, 'dictionaries')); + +export const ALLOWED_PROTOCOLS = [ + 'https:', + 'http:', + 'ftp:', +]; diff --git a/src/containers/auth/AuthLayoutContainer.js b/src/containers/auth/AuthLayoutContainer.js index 762929dc6..e63f40c06 100644 --- a/src/containers/auth/AuthLayoutContainer.js +++ b/src/containers/auth/AuthLayoutContainer.js @@ -1,6 +1,8 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { inject, observer } from 'mobx-react'; +import { ThemeProvider } from 'react-jss'; +import { theme } from '@meetfranz/theme'; import AuthLayout from '../../components/auth/AuthLayout'; import AppStore from '../../stores/AppStore'; @@ -21,30 +23,38 @@ export default @inject('stores', 'actions') @observer class AuthLayoutContainer const { stores, actions, children, location, } = this.props; - const { app, features, globalError } = stores; + const { + app, features, globalError, settings, + } = stores; const isLoadingBaseFeatures = features.defaultFeaturesRequest.isExecuting && !features.defaultFeaturesRequest.wasExecuted; + const themeType = theme(settings.app.darkMode ? 'dark' : 'default'); + if (isLoadingBaseFeatures) { return ( - + + + ); } return ( - - {children} - + + + {children} + + ); } } diff --git a/src/containers/auth/ImportScreen.js b/src/containers/auth/ImportScreen.js index fc46f8b54..4a93891d6 100644 --- a/src/containers/auth/ImportScreen.js +++ b/src/containers/auth/ImportScreen.js @@ -3,13 +3,8 @@ import PropTypes from 'prop-types'; import { inject, observer } from 'mobx-react'; import Import from '../../components/auth/Import'; import UserStore from '../../stores/UserStore'; -import { gaPage } from '../../lib/analytics'; export default @inject('stores', 'actions') @observer class ImportScreen extends Component { - componentDidMount() { - gaPage('Auth/Import'); - } - render() { const { actions, stores } = this.props; diff --git a/src/containers/auth/InviteScreen.js b/src/containers/auth/InviteScreen.js index 26bf97038..66afaf7e1 100644 --- a/src/containers/auth/InviteScreen.js +++ b/src/containers/auth/InviteScreen.js @@ -2,13 +2,8 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { inject, observer } from 'mobx-react'; import Invite from '../../components/auth/Invite'; -import { gaPage } from '../../lib/analytics'; export default @inject('stores', 'actions') @observer class InviteScreen extends Component { - componentDidMount() { - gaPage('Auth/Invite'); - } - render() { const { actions } = this.props; diff --git a/src/containers/auth/LoginScreen.js b/src/containers/auth/LoginScreen.js index 865bd38f8..e5ee10785 100644 --- a/src/containers/auth/LoginScreen.js +++ b/src/containers/auth/LoginScreen.js @@ -3,7 +3,6 @@ import PropTypes from 'prop-types'; import { inject, observer } from 'mobx-react'; import Login from '../../components/auth/Login'; import UserStore from '../../stores/UserStore'; -import { gaPage } from '../../lib/analytics'; import { globalError as globalErrorPropType } from '../../prop-types'; @@ -12,10 +11,6 @@ export default @inject('stores', 'actions') @observer class LoginScreen extends error: globalErrorPropType.isRequired, }; - componentDidMount() { - gaPage('Auth/Login'); - } - render() { const { actions, stores, error } = this.props; return ( diff --git a/src/containers/auth/PasswordScreen.js b/src/containers/auth/PasswordScreen.js index 236fd2031..5b238860e 100644 --- a/src/containers/auth/PasswordScreen.js +++ b/src/containers/auth/PasswordScreen.js @@ -3,13 +3,8 @@ import PropTypes from 'prop-types'; import { inject, observer } from 'mobx-react'; import Password from '../../components/auth/Password'; import UserStore from '../../stores/UserStore'; -import { gaPage } from '../../lib/analytics'; export default @inject('stores', 'actions') @observer class PasswordScreen extends Component { - componentDidMount() { - gaPage('Auth/Password Retrieve'); - } - render() { const { actions, stores } = this.props; diff --git a/src/containers/auth/PricingScreen.js b/src/containers/auth/PricingScreen.js index 34b512e15..8d179a170 100644 --- a/src/containers/auth/PricingScreen.js +++ b/src/containers/auth/PricingScreen.js @@ -6,7 +6,6 @@ import { RouterStore } from 'mobx-react-router'; import Pricing from '../../components/auth/Pricing'; import UserStore from '../../stores/UserStore'; import PaymentStore from '../../stores/PaymentStore'; -import { gaPage } from '../../lib/analytics'; import { globalError as globalErrorPropType } from '../../prop-types'; @@ -15,10 +14,6 @@ export default @inject('stores', 'actions') @observer class PricingScreen extend error: globalErrorPropType.isRequired, }; - componentDidMount() { - gaPage('Auth/Pricing'); - } - render() { const { actions, stores, error } = this.props; diff --git a/src/containers/auth/SignupScreen.js b/src/containers/auth/SignupScreen.js index caf75de90..efc7ea4c1 100644 --- a/src/containers/auth/SignupScreen.js +++ b/src/containers/auth/SignupScreen.js @@ -4,7 +4,6 @@ import { inject, observer } from 'mobx-react'; import Signup from '../../components/auth/Signup'; import UserStore from '../../stores/UserStore'; -import { gaPage } from '../../lib/analytics'; import { globalError as globalErrorPropType } from '../../prop-types'; @@ -13,10 +12,6 @@ export default @inject('stores', 'actions') @observer class SignupScreen extends error: globalErrorPropType.isRequired, }; - componentDidMount() { - gaPage('Auth/Signup'); - } - render() { const { actions, stores, error } = this.props; return ( diff --git a/src/containers/auth/WelcomeScreen.js b/src/containers/auth/WelcomeScreen.js index 2c120f81c..75182345a 100644 --- a/src/containers/auth/WelcomeScreen.js +++ b/src/containers/auth/WelcomeScreen.js @@ -5,13 +5,8 @@ import { inject, observer } from 'mobx-react'; import Welcome from '../../components/auth/Welcome'; import UserStore from '../../stores/UserStore'; import RecipePreviewsStore from '../../stores/RecipePreviewsStore'; -import { gaPage } from '../../lib/analytics'; export default @inject('stores', 'actions') @observer class LoginScreen extends Component { - componentDidMount() { - gaPage('Auth/Welcome'); - } - render() { const { user, recipePreviews } = this.props.stores; diff --git a/src/containers/layout/AppLayoutContainer.js b/src/containers/layout/AppLayoutContainer.js index 749912c59..5a05ce431 100644 --- a/src/containers/layout/AppLayoutContainer.js +++ b/src/containers/layout/AppLayoutContainer.js @@ -42,6 +42,7 @@ export default @inject('stores', 'actions') @observer class AppLayoutContainer e setActive, handleIPCMessage, setWebviewReference, + detachService, openWindow, reorder, reload, @@ -105,6 +106,7 @@ export default @inject('stores', 'actions') @observer class AppLayoutContainer e services={services.allDisplayedUnordered} handleIPCMessage={handleIPCMessage} setWebviewReference={setWebviewReference} + detachService={detachService} openWindow={openWindow} reload={reload} openSettings={openSettings} @@ -160,6 +162,7 @@ AppLayoutContainer.wrappedComponent.propTypes = { toggleAudio: PropTypes.func.isRequired, handleIPCMessage: PropTypes.func.isRequired, setWebviewReference: PropTypes.func.isRequired, + detachService: PropTypes.func.isRequired, openWindow: PropTypes.func.isRequired, reloadUpdatedServices: PropTypes.func.isRequired, updateService: PropTypes.func.isRequired, diff --git a/src/containers/settings/AccountScreen.js b/src/containers/settings/AccountScreen.js index d681d5226..ce1b9c333 100644 --- a/src/containers/settings/AccountScreen.js +++ b/src/containers/settings/AccountScreen.js @@ -6,7 +6,6 @@ import { inject, observer } from 'mobx-react'; import PaymentStore from '../../stores/PaymentStore'; import UserStore from '../../stores/UserStore'; import AppStore from '../../stores/AppStore'; -import { gaPage } from '../../lib/analytics'; import AccountDashboard from '../../components/settings/account/AccountDashboard'; import ErrorBoundary from '../../components/util/ErrorBoundary'; @@ -22,10 +21,6 @@ export default @inject('stores', 'actions') @observer class AccountScreen extend user.getUserInfoRequest.invalidate({ immediately: true }); } - componentDidMount() { - gaPage('Settings/Account Dashboard'); - } - onCloseWindow() { const { user, payment } = this.props.stores; user.getUserInfoRequest.invalidate({ immediately: true }); diff --git a/src/containers/settings/EditServiceScreen.js b/src/containers/settings/EditServiceScreen.js index d08f0a52e..870ca4ecd 100644 --- a/src/containers/settings/EditServiceScreen.js +++ b/src/containers/settings/EditServiceScreen.js @@ -9,7 +9,6 @@ import ServicesStore from '../../stores/ServicesStore'; import SettingsStore from '../../stores/SettingsStore'; import FeaturesStore from '../../stores/FeaturesStore'; import Form from '../../lib/Form'; -import { gaPage } from '../../lib/analytics'; import ServiceError from '../../components/settings/services/ServiceError'; import EditServiceForm from '../../components/settings/services/EditServiceForm'; @@ -93,10 +92,6 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex intl: intlShape, }; - componentDidMount() { - gaPage('Settings/Service/Edit'); - } - onSubmit(data) { const { action } = this.props.router.params; const { recipes, services } = this.props.stores; diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index 992c49b09..97c1fa3b1 100644 --- a/src/containers/settings/EditSettingsScreen.js +++ b/src/containers/settings/EditSettingsScreen.js @@ -8,7 +8,6 @@ import SettingsStore from '../../stores/SettingsStore'; import UserStore from '../../stores/UserStore'; import Form from '../../lib/Form'; import { APP_LOCALES, SPELLCHECKER_LOCALES } from '../../i18n/languages'; -import { gaPage } from '../../lib/analytics'; import { DEFAULT_APP_SETTINGS } from '../../config'; import { config as spellcheckerConfig } from '../../features/spellchecker'; @@ -75,10 +74,6 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e intl: intlShape, }; - componentDidMount() { - gaPage('Settings/App'); - } - onSubmit(settingsData) { const { app, settings, user } = this.props.actions; diff --git a/src/containers/settings/EditUserScreen.js b/src/containers/settings/EditUserScreen.js index 3d35effc5..81f689400 100644 --- a/src/containers/settings/EditUserScreen.js +++ b/src/containers/settings/EditUserScreen.js @@ -9,7 +9,6 @@ import EditUserForm from '../../components/settings/user/EditUserForm'; import ErrorBoundary from '../../components/util/ErrorBoundary'; import { required, email, minLength } from '../../helpers/validation-helpers'; -import { gaPage } from '../../lib/analytics'; const messages = defineMessages({ firstname: { @@ -24,23 +23,21 @@ const messages = defineMessages({ id: 'settings.user.form.email', defaultMessage: '!!!Email', }, - accountType: { - label: { - id: 'settings.user.form.accountType.label', - defaultMessage: '!!!Account type', - }, - individual: { - id: 'settings.user.form.accountType.individual', - defaultMessage: '!!!Individual', - }, - nonProfit: { - id: 'settings.user.form.accountType.non-profit', - defaultMessage: '!!!Non-Profit', - }, - company: { - id: 'settings.user.form.accountType.company', - defaultMessage: '!!!Company', - }, + accountTypeLabel: { + id: 'settings.user.form.accountType.label', + defaultMessage: '!!!Account type', + }, + accountTypeIndividual: { + id: 'settings.user.form.accountType.individual', + defaultMessage: '!!!Individual', + }, + accountTypeNonProfit: { + id: 'settings.user.form.accountType.non-profit', + defaultMessage: '!!!Non-Profit', + }, + accountTypeCompany: { + id: 'settings.user.form.accountType.company', + defaultMessage: '!!!Company', }, currentPassword: { id: 'settings.user.form.currentPassword', @@ -57,10 +54,6 @@ export default @inject('stores', 'actions') @observer class EditUserScreen exten intl: intlShape, }; - componentDidMount() { - gaPage('Settings/Account/Edit'); - } - componentWillUnmount() { this.props.actions.user.resetStatus(); } @@ -99,21 +92,21 @@ export default @inject('stores', 'actions') @observer class EditUserScreen exten accountType: { value: user.accountType, validators: [required], - label: intl.formatMessage(messages.accountType.label), + label: intl.formatMessage(messages.accountTypeLabel), options: [{ value: 'individual', - label: intl.formatMessage(messages.accountType.individual), + label: intl.formatMessage(messages.accountTypeIndividual), }, { value: 'non-profit', - label: intl.formatMessage(messages.accountType.nonProfit), + label: intl.formatMessage(messages.accountTypeNonProfit), }, { value: 'company', - label: intl.formatMessage(messages.accountType.company), + label: intl.formatMessage(messages.accountTypeCompany), }], }, organization: { - label: intl.formatMessage(messages.accountType.company), - placeholder: intl.formatMessage(messages.accountType.company), + label: intl.formatMessage(messages.accountTypeCompany), + placeholder: intl.formatMessage(messages.accountTypeCompany), value: user.organization, }, oldPassword: { diff --git a/src/containers/settings/InviteScreen.js b/src/containers/settings/InviteScreen.js index cd36610e4..cc36849e8 100644 --- a/src/containers/settings/InviteScreen.js +++ b/src/containers/settings/InviteScreen.js @@ -5,13 +5,7 @@ import { inject, observer } from 'mobx-react'; import Invite from '../../components/auth/Invite'; import ErrorBoundary from '../../components/util/ErrorBoundary'; -import { gaPage } from '../../lib/analytics'; - export default @inject('stores', 'actions') @observer class InviteScreen extends Component { - componentDidMount() { - gaPage('Settings/Invite'); - } - componentWillUnmount() { this.props.stores.user.inviteRequest.reset(); } diff --git a/src/containers/settings/RecipesScreen.js b/src/containers/settings/RecipesScreen.js index b3d758c87..eda5ae54c 100644 --- a/src/containers/settings/RecipesScreen.js +++ b/src/containers/settings/RecipesScreen.js @@ -7,7 +7,6 @@ import RecipePreviewsStore from '../../stores/RecipePreviewsStore'; import RecipeStore from '../../stores/RecipesStore'; import ServiceStore from '../../stores/ServicesStore'; import UserStore from '../../stores/UserStore'; -import { gaPage } from '../../lib/analytics'; import RecipesDashboard from '../../components/settings/recipes/RecipesDashboard'; import ErrorBoundary from '../../components/util/ErrorBoundary'; @@ -33,20 +32,15 @@ export default @inject('stores', 'actions') @observer class RecipesScreen extend autorunDisposer = null; componentDidMount() { - gaPage('Settings/Recipe Dashboard/Featured'); - this.autorunDisposer = autorun(() => { const { filter } = this.props.params; const { currentFilter } = this.state; if (filter === 'all' && currentFilter !== 'all') { - gaPage('Settings/Recipe Dashboard/All'); this.setState({ currentFilter: 'all' }); } else if (filter === 'featured' && currentFilter !== 'featured') { - gaPage('Settings/Recipe Dashboard/Featured'); this.setState({ currentFilter: 'featured' }); } else if (filter === 'dev' && currentFilter !== 'dev') { - gaPage('Settings/Recipe Dashboard/Dev'); this.setState({ currentFilter: 'dev' }); } }); diff --git a/src/containers/settings/ServicesScreen.js b/src/containers/settings/ServicesScreen.js index b70a5506e..a501bf530 100644 --- a/src/containers/settings/ServicesScreen.js +++ b/src/containers/settings/ServicesScreen.js @@ -6,16 +6,11 @@ import { RouterStore } from 'mobx-react-router'; // import RecipePreviewsStore from '../../stores/RecipePreviewsStore'; import UserStore from '../../stores/UserStore'; import ServiceStore from '../../stores/ServicesStore'; -import { gaPage } from '../../lib/analytics'; import ServicesDashboard from '../../components/settings/services/ServicesDashboard'; import ErrorBoundary from '../../components/util/ErrorBoundary'; export default @inject('stores', 'actions') @observer class ServicesScreen extends Component { - componentDidMount() { - gaPage('Settings/Service Dashboard'); - } - componentWillUnmount() { this.props.actions.service.resetFilter(); this.props.actions.service.resetStatus(); diff --git a/src/containers/subscription/SubscriptionFormScreen.js b/src/containers/subscription/SubscriptionFormScreen.js index 3eb7b6255..cb67ee7f2 100644 --- a/src/containers/subscription/SubscriptionFormScreen.js +++ b/src/containers/subscription/SubscriptionFormScreen.js @@ -43,26 +43,31 @@ export default @inject('stores', 'actions') @observer class SubscriptionFormScre }); const hostedPage = await stores.payment.createHostedPageRequest; - const url = `file://${__dirname}/../../index.html#/payment/${encodeURIComponent(hostedPage.url)}`; if (hostedPage.url) { - const paymentWindow = new BrowserWindow({ - parent: remote.getCurrentWindow(), - modal: true, - title: '🔒 Franz Supporter License', - width: 600, - height: window.innerHeight - 100, - maxWidth: 600, - minWidth: 600, - webPreferences: { - nodeIntegration: true, - }, - }); - paymentWindow.loadURL(url); + if (hostedPage.legacyCheckoutFlow) { + const paymentWindow = new BrowserWindow({ + parent: remote.getCurrentWindow(), + modal: true, + title: '🔒 Franz Supporter License', + width: 600, + height: window.innerHeight - 100, + maxWidth: 600, + minWidth: 600, + webPreferences: { + nodeIntegration: true, + }, + }); + paymentWindow.loadURL(`file://${__dirname}/../../index.html#/payment/${encodeURIComponent(hostedPage.url)}`); - paymentWindow.on('closed', () => { - onCloseWindow(); - }); + paymentWindow.on('closed', () => { + onCloseWindow(); + }); + } else { + actions.app.openExternalUrl({ + url: hostedPage.url, + }); + } } } diff --git a/src/electron/ipc-api/autoUpdate.js b/src/electron/ipc-api/autoUpdate.js index 83dd83712..74b718734 100644 --- a/src/electron/ipc-api/autoUpdate.js +++ b/src/electron/ipc-api/autoUpdate.js @@ -4,7 +4,7 @@ import { autoUpdater } from 'electron-updater'; const debug = require('debug')('Franz:ipcApi:autoUpdate'); export default (params) => { - if (process.platform === 'darwin' || process.platform === 'win32') { + if (process.platform === 'darwin' || process.platform === 'win32' || process.env.APPIMAGE) { ipcMain.on('autoUpdate', (event, args) => { try { autoUpdater.autoInstallOnAppQuit = false; diff --git a/src/features/basicAuth/Component.js b/src/features/basicAuth/Component.js index 13395fb40..a8252acb7 100644 --- a/src/features/basicAuth/Component.js +++ b/src/features/basicAuth/Component.js @@ -62,6 +62,7 @@ export default @injectSheet(styles) @observer class BasicAuthModal extends Compo isOpen={isModalVisible} className={classes.modal} close={this.cancel.bind(this)} + showClose={false} >

Sign in

diff --git a/src/features/basicAuth/index.js b/src/features/basicAuth/index.js index 03269582c..89607824b 100644 --- a/src/features/basicAuth/index.js +++ b/src/features/basicAuth/index.js @@ -6,7 +6,7 @@ import BasicAuthComponent from './Component'; const debug = require('debug')('Franz:feature:basicAuth'); const defaultState = { - isModalVisible: false, + isModalVisible: true, service: null, authInfo: null, }; @@ -15,7 +15,6 @@ export const state = observable(defaultState); export function resetState() { Object.assign(state, defaultState); - console.log('reset state', state); } export default function initialize() { @@ -31,15 +30,6 @@ export default function initialize() { state.authInfo = data.authInfo; state.isModalVisible = true; }); - - // autorun(() => { - // // if (state.serviceId) { - // // const service = stores.services.one(state.serviceId); - // // if (service) { - // // state.service = service; - // // } - // // } - // }); } export function mainIpcHandler(mainWindow, authInfo) { diff --git a/src/features/delayApp/index.js b/src/features/delayApp/index.js index 28aa50eb2..abc8274cf 100644 --- a/src/features/delayApp/index.js +++ b/src/features/delayApp/index.js @@ -3,7 +3,7 @@ import moment from 'moment'; import DelayAppComponent from './Component'; import { DEFAULT_FEATURES_CONFIG } from '../../config'; -import { gaEvent } from '../../lib/analytics'; +import { gaEvent, gaPage } from '../../lib/analytics'; const debug = require('debug')('Franz:feature:delayApp'); @@ -28,8 +28,12 @@ export default function init(stores) { let shownAfterLaunch = false; let timeLastDelay = moment(); + window.franz.features.delayApp = { + state, + }; + reaction( - () => stores.features.features.needToWaitToProceed && !stores.user.data.isPremium, + () => stores.user.isLoggedIn && stores.features.features.needToWaitToProceed && !stores.user.data.isPremium, (isEnabled) => { if (isEnabled) { debug('Enabling `delayApp` feature'); @@ -50,6 +54,7 @@ export default function init(stores) { debug(`App will be delayed for ${config.delayDuration / 1000}s`); setVisibility(true); + gaPage('/delayApp'); gaEvent('delayApp', 'show', 'Delay App Feature'); timeLastDelay = moment(); diff --git a/src/features/shareFranz/Component.js b/src/features/shareFranz/Component.js new file mode 100644 index 000000000..ef43a54fa --- /dev/null +++ b/src/features/shareFranz/Component.js @@ -0,0 +1,166 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { observer, inject } from 'mobx-react'; +import injectSheet from 'react-jss'; +import { defineMessages, intlShape } from 'react-intl'; +import { Button } from '@meetfranz/forms'; +import { H1, Icon } from '@meetfranz/ui'; + +import Modal from '../../components/ui/Modal'; +import { state } from '.'; +import { gaEvent } from '../../lib/analytics'; +import ServicesStore from '../../stores/ServicesStore'; + +const messages = defineMessages({ + headline: { + id: 'feature.shareFranz.headline', + defaultMessage: '!!!Franz is better together!', + }, + text: { + id: 'feature.shareFranz.text', + defaultMessage: '!!!Tell your friends and colleagues how awesome Franz is and help us to spread the word.', + }, + actionsEmail: { + id: 'feature.shareFranz.action.email', + defaultMessage: '!!!Share as email', + }, + actionsFacebook: { + id: 'feature.shareFranz.action.facebook', + defaultMessage: '!!!Share on Facebook', + }, + actionsTwitter: { + id: 'feature.shareFranz.action.twitter', + defaultMessage: '!!!Share on Twitter', + }, + shareTextEmail: { + id: 'feature.shareFranz.shareText.email', + defaultMessage: '!!! I\'ve added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com', + }, + shareTextTwitter: { + id: 'feature.shareFranz.shareText.twitter', + defaultMessage: '!!! I\'ve added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com /cc @MeetFranz', + }, +}); + +const styles = theme => ({ + modal: { + width: '80%', + maxWidth: 600, + background: theme.styleTypes.primary.accent, + textAlign: 'center', + color: theme.styleTypes.primary.contrast, + }, + heartContainer: { + display: 'flex', + justifyContent: 'center', + borderRadius: '100%', + background: theme.brandDanger, + padding: 20, + width: 100, + height: 100, + margin: [-70, 'auto', 30], + }, + heart: { + fill: theme.styleTypes.primary.contrast, + }, + headline: { + textAlign: 'center', + fontSize: 40, + marginBottom: 20, + }, + actions: { + display: 'flex', + justifyContent: 'space-between', + marginTop: 30, + }, + cta: { + background: theme.styleTypes.primary.contrast, + color: theme.styleTypes.primary.accent, + + '& svg': { + fill: theme.styleTypes.primary.accent, + }, + }, +}); + +export default @injectSheet(styles) @inject('stores') @observer class ShareFranzModal extends Component { + static propTypes = { + classes: PropTypes.object.isRequired, + }; + + static contextTypes = { + intl: intlShape, + }; + + close() { + state.isModalVisible = false; + } + + render() { + const { isModalVisible } = state; + + const { + classes, + stores, + } = this.props; + + const serviceCount = stores.services.all.length; + + const { intl } = this.context; + + return ( + +

+ +
+

+ {intl.formatMessage(messages.headline)} +

+

{intl.formatMessage(messages.text)}

+
+
+ + ); + } +} + +ShareFranzModal.wrappedComponent.propTypes = { + stores: PropTypes.shape({ + services: PropTypes.instanceOf(ServicesStore).isRequired, + }).isRequired, +}; diff --git a/src/features/shareFranz/index.js b/src/features/shareFranz/index.js new file mode 100644 index 000000000..3a8ec95d3 --- /dev/null +++ b/src/features/shareFranz/index.js @@ -0,0 +1,52 @@ +import { observable, reaction } from 'mobx'; +import ms from 'ms'; + +import { state as delayAppState } from '../delayApp'; +import { gaEvent, gaPage } from '../../lib/analytics'; + +export { default as Component } from './Component'; + +const debug = require('debug')('Franz:feature:shareFranz'); + +const defaultState = { + isModalVisible: false, + lastShown: null, +}; + +export const state = observable(defaultState); + +export default function initialize(stores) { + debug('Initialize shareFranz feature'); + + window.franz.features.shareFranz = { + state, + }; + + function showModal() { + debug('Showing share window'); + + state.isModalVisible = true; + + gaEvent('Share Franz', 'show'); + gaPage('/share-modal'); + } + + reaction( + () => stores.user.isLoggedIn, + () => { + setTimeout(() => { + if (stores.settings.stats.appStarts % 30 === 0) { + if (delayAppState.isDelayAppScreenVisible) { + debug('Delaying share modal by 5 minutes'); + setTimeout(() => showModal(), ms('5m')); + } else { + showModal(); + } + } + }, ms('2s')); + }, + { + fireImmediately: true, + }, + ); +} diff --git a/src/helpers/url-helpers.js b/src/helpers/url-helpers.js new file mode 100644 index 000000000..750d1f00c --- /dev/null +++ b/src/helpers/url-helpers.js @@ -0,0 +1,15 @@ +import { URL } from 'url'; + +import { ALLOWED_PROTOCOLS } from '../config'; + +const debug = require('debug')('Franz:Helpers:url'); + +export function isValidExternalURL(url) { + const parsedUrl = new URL(url); + + const isAllowed = ALLOWED_PROTOCOLS.includes(parsedUrl.protocol); + + debug('protocol check is', isAllowed, 'for:', url); + + return isAllowed; +} diff --git a/src/i18n/globalMessages.js b/src/i18n/globalMessages.js index 7b1618602..1b5ece223 100644 --- a/src/i18n/globalMessages.js +++ b/src/i18n/globalMessages.js @@ -1,10 +1,6 @@ import { defineMessages } from 'react-intl'; export default defineMessages({ - upgradeAccount: { - id: 'global.premium.upgradeAccount', - defaultMessage: '!!!Please upgrade your account to add a new service.', - }, APIUnhealthy: { id: 'global.api.unhealthy', defaultMessage: '!!!Can\'t connect to Franz Online Services', diff --git a/src/i18n/languages.js b/src/i18n/languages.js index aa3f2316a..9ddcc3519 100644 --- a/src/i18n/languages.js +++ b/src/i18n/languages.js @@ -35,7 +35,8 @@ export const SPELLCHECKER_LOCALES = { 'da-dk': 'Dansk', 'de-de': 'Deutsch', 'el-gr': 'ελληνικά (Greek)', - 'en-us': 'English', + 'en-gb': 'English (GB)', + 'en-us': 'English (US)', 'es-es': 'Español', 'et-ee': 'Estonian', 'fa-ir': 'فارسی (Persian)', diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json index ed6f7bacd..dabe4ba16 100644 --- a/src/i18n/locales/ca.json +++ b/src/i18n/locales/ca.json @@ -1,11 +1,22 @@ { "app.errorHandler.action" : "Recarrega", - "app.errorHandler.headline" : "Something went wrong", + "app.errorHandler.headline" : "Quelcom ha anat malament", "feature.delayApp.action" : "Aconsegueix una llicència de suport per a Franz", "feature.delayApp.headline" : "Si us plau, compra una llicència de suport per a Franz per saltar l'espera", "feature.delayApp.text" : "Franz continuarà en {seconds} segons", + "feature.shareFranz.action.email" : "Send as email", + "feature.shareFranz.action.facebook" : "Share on Facebook", + "feature.shareFranz.action.twitter" : "Share on Twitter", + "feature.shareFranz.headline" : "Franz is better together!", + "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", "global.api.unhealthy" : "No es pot connectar amb els serveis en línia de Franz", "global.notConnectedToTheInternet" : "No esteu connectat a Internet.", + "global.spellchecker.useDefault" : "Utilitzar el predeterminat del sistema ({default})", + "global.spellchecking.autodetect" : "Detect language automatically", + "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.language" : "Corrector ortogràfic", "import.headline" : "Importa els teus serveis Franz 4", "import.notSupportedHeadline" : "Serveis que encara no s'admeten a Franz 5", "import.skip.label" : "Vull afegir serveis manualment", @@ -59,7 +70,9 @@ "menu.help.support" : "Suport", "menu.help.tos" : "Condicions del Servei", "menu.services" : "Serveis", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Afegeix un servei...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Visualitza", "menu.view.enterFullScreen" : "Inicia la pantalla completa", "menu.view.exitFullScreen" : "Surt de pantalla completa", @@ -96,7 +109,7 @@ "service.errorHandler.editAction" : "Edita {name}", "service.errorHandler.headline" : "Oh no!", "service.errorHandler.message" : "Error", - "service.errorHandler.text" : "{name} has failed to load.", + "service.errorHandler.text" : "{name} ha fallat al carregar", "services.getStarted" : "Introducció", "services.welcome" : "Benvingut a Franz", "settings.account.account.editButton" : "Editar Compte", @@ -117,6 +130,7 @@ "settings.account.invoiceDownload" : "Descarregar", "settings.account.manageSubscription.label" : "Gestioneu la vostra subscripció", "settings.account.successInfo" : "S'han desat els canvis", + "settings.account.tryReloadServices" : "Torna a provar-ho", "settings.account.tryReloadUserInfoRequest" : "Torna a provar-ho", "settings.account.userInfoRequestFailed" : "No s'ha pogut carregar la informació de l'usuari", "settings.app.buttonClearAllCache" : "Buida la memòria cau", @@ -129,16 +143,13 @@ "settings.app.form.beta" : "Inclou versions beta", "settings.app.form.darkMode" : "Uneix-te al Cantó Fosc", "settings.app.form.enableGPUAcceleration" : "Activar acceleració GPU", - "settings.app.form.enableMenuBar" : "Mostra Franz a la barra de menú", "settings.app.form.enableSpellchecking" : "Habilita la comprobació ortogràfica", "settings.app.form.enableSystemTray" : "Mostra Franz a la safata del sistema", - "settings.app.form.hideDockIcon" : "Oculta la icona de Franz al Dock", "settings.app.form.language" : "Idioma", "settings.app.form.minimizeToSystemTray" : "Minimitza Franz a la safata del sistema", "settings.app.form.runInBackground" : "Mantén a Franz en segon pla en tancar la finestra", "settings.app.form.showDisabledServices" : "Mostra les pestanyes dels serveis desactivats", "settings.app.form.showMessagesBadgesWhenMuted" : "Mostra la insígnia de missatges no llegits quan les notificacions estiguin desactivades", - "settings.app.form.spellcheckerLanguage" : "Corrector ortogràfic", "settings.app.headline" : "Configuració", "settings.app.headlineAdvanced" : "Avançat", "settings.app.headlineAppearance" : "Aparença", @@ -192,17 +203,15 @@ "settings.service.form.indirectMessages" : "Mostra la insígnia de missatge per a tots els missatges nous", "settings.service.form.isMutedInfo" : "Quan es desactiva, tots els sons de notificació i reproducció d'àudio es silenciaran", "settings.service.form.name" : "Nom", - "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", + "settings.service.form.proxy.headline" : "Ajustaments Proxy HTTP\/HTTPS", "settings.service.form.proxy.host" : "Host Proxy \/ IP", "settings.service.form.proxy.info" : "Els ajustaments del Proxy no es sincronitzaran amb els servidors de Franz", "settings.service.form.proxy.isEnabled" : "Utilitzar Proxy", "settings.service.form.proxy.password" : "Contrasenya (opcional)", "settings.service.form.proxy.port" : "Port", - "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", + "settings.service.form.proxy.restartInfo" : "Siusplau, reinicieu el Franz després de canviar els ajustaments de proxy", "settings.service.form.proxy.user" : "Usuari (opcional)", "settings.service.form.saveButton" : "Desa el servei", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Allotjat", "settings.service.form.tabOnPremise" : "Allotjat per si mateix ⭐️", "settings.service.form.team" : "Equip", @@ -212,6 +221,7 @@ "settings.services.discoverServices" : "Descobrir serveis", "settings.services.headline" : "Els vostres serveis", "settings.services.noServicesAdded" : "Encara no heu afegit cap servei.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "El servei està desactivat", "settings.services.tooltip.isMuted" : "Tots els sons estan desactivats", "settings.services.tooltip.notificationsDisabled" : "Les notificacions estan desactivades", @@ -244,9 +254,7 @@ "subscription.euTaxInfo" : "Residents d'EU: es poden aplicar impostos locals", "subscription.features.ads" : "Sense anuncis, mai!", "subscription.features.comingSoon" : "properament", - "subscription.features.encryptedSync" : "Sincronització de sessió xifrada", "subscription.features.noInterruptions" : "Sense retards ni molestes actualitzacions de llicències ", - "subscription.features.onpremise" : "Afegiu serveis en premissa\/allotjats com HipChat", "subscription.features.onpremise.mattermost" : "Afegir serveis allotjats com Mattermost", "subscription.features.proxy" : "Suport de Proxy per a serveis", "subscription.features.spellchecker" : "Suport per corrector ortogràfic", @@ -269,9 +277,9 @@ "tabs.item.reload" : "Recarrega", "validation.email" : "{field} no es vàlid", "validation.minLength" : "{field} ha de ser al menys {length} caràcters de llargada", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} es requerit", "validation.url" : "{field} es una URL no vàlida", "welcome.loginButton" : "Inicia sessió al teu compte", - "welcome.signupButton" : "Crea un compte gratuït", - "welcome.slogan" : "Crea un compte gratuït" + "welcome.signupButton" : "Crea un compte gratuït" } diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json index b8bfd2526..f0b0b7c81 100644 --- a/src/i18n/locales/cs.json +++ b/src/i18n/locales/cs.json @@ -1,11 +1,22 @@ { "app.errorHandler.action" : "Obnovit", - "app.errorHandler.headline" : "Something went wrong", - "feature.delayApp.action" : "Get a Franz Supporter License", - "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", - "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", + "app.errorHandler.headline" : "Něco se pokazilo", + "feature.delayApp.action" : "Podpoř Franz a získej Supporter licenci", + "feature.delayApp.headline" : "Kup si Franz Supporter licenci a nebudeš už muset čekat", + "feature.delayApp.text" : "Franz bude pokračovat v {seconds} sekundách.", + "feature.shareFranz.action.email" : "Send as email", + "feature.shareFranz.action.facebook" : "Share on Facebook", + "feature.shareFranz.action.twitter" : "Share on Twitter", + "feature.shareFranz.headline" : "Franz is better together!", + "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", "global.api.unhealthy" : "Nemůžeme připojit Franz k online službám", "global.notConnectedToTheInternet" : "Připojení k internetu není k dispozici.", + "global.spellchecker.useDefault" : "Use System Default ({default})", + "global.spellchecking.autodetect" : "Detect language automatically", + "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.language" : "Oprava překlepů jazyka", "import.headline" : "Importovat služby z Franz 4", "import.notSupportedHeadline" : "Služby nejsou podporovány ve verzi Franz 5", "import.skip.label" : "Chci přidat službu ručně", @@ -59,7 +70,9 @@ "menu.help.support" : "Podpora", "menu.help.tos" : "Podmínky použití", "menu.services" : "Služby", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Přidat novou službu...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Zobrazení", "menu.view.enterFullScreen" : "Spustit režim celé obrazovky", "menu.view.exitFullScreen" : "Ukončit celoobrazovkový režim", @@ -81,7 +94,7 @@ "password.noUser" : "Pro emailovou adresu nebyl nalezený žádný uživatel", "password.submit.label" : "Odeslat", "password.successInfo" : "Prosím, zkontrolujte svůj e-mail", - "premiumFeature.button.upgradeAccount" : "Upgrade account", + "premiumFeature.button.upgradeAccount" : "Vylepši si svůj účet", "pricing.headline" : "Podpořit Franz", "pricing.link.skipPayment" : "Nechci podporovat vývoj aplikace Franz.", "pricing.submit.label" : "Chci podpořit vývoj aplikace Franz", @@ -96,7 +109,7 @@ "service.errorHandler.editAction" : "Upravit {name}", "service.errorHandler.headline" : "Ale ne!", "service.errorHandler.message" : "Chyba", - "service.errorHandler.text" : "{name} has failed to load.", + "service.errorHandler.text" : "{name} se nepodařilo načíst.", "services.getStarted" : "Začněme", "services.welcome" : "Vítejte v programu Franz", "settings.account.account.editButton" : "Upravit účet", @@ -117,6 +130,7 @@ "settings.account.invoiceDownload" : "Stáhnout", "settings.account.manageSubscription.label" : "Spravovat vaše předplatné", "settings.account.successInfo" : "Vaše změny byly uloženy", + "settings.account.tryReloadServices" : "Zkusit opět", "settings.account.tryReloadUserInfoRequest" : "Zkusit opět", "settings.account.userInfoRequestFailed" : "Nelze načíst informace o uživateli.", "settings.app.buttonClearAllCache" : "Vyprázdnit mezipaměti", @@ -127,18 +141,15 @@ "settings.app.form.autoLaunchInBackground" : "Spustit na pozadí", "settings.app.form.autoLaunchOnStart" : "Spustit Franz při startu", "settings.app.form.beta" : "Zahrnout beta verze", - "settings.app.form.darkMode" : "Join the Dark Side", + "settings.app.form.darkMode" : "Připoj se k Temné straně", "settings.app.form.enableGPUAcceleration" : "Aktivovat GPU zrychlení", - "settings.app.form.enableMenuBar" : "Zobraz Franz v Menu nabídce", "settings.app.form.enableSpellchecking" : "Zapnout kontrolu pravopisu", "settings.app.form.enableSystemTray" : "Zobrazit Franz v systémové liště", - "settings.app.form.hideDockIcon" : "Schovej ikonu Franz v Docku", "settings.app.form.language" : "Jazyk", "settings.app.form.minimizeToSystemTray" : "Minimalizovat Franz do systémové lišty", "settings.app.form.runInBackground" : "Ponechat Franze v pozadí při zavírání okna", "settings.app.form.showDisabledServices" : "Zobrazit záložky vypnutých služeb", "settings.app.form.showMessagesBadgesWhenMuted" : "Zobrazit odznak pro nepřečtené zprávy když jsou upozornění vypnutá", - "settings.app.form.spellcheckerLanguage" : "Spell checking language", "settings.app.headline" : "Nastavení", "settings.app.headlineAdvanced" : "Pokročilé", "settings.app.headlineAppearance" : "Vzhled", @@ -179,7 +190,7 @@ "settings.service.form.editServiceHeadline" : "Upravit {name}", "settings.service.form.enableAudio" : "Zapnout zvuk", "settings.service.form.enableBadge" : "Ukázat odznaky nepřečtených zpráv", - "settings.service.form.enableDarkMode" : "Enable Dark Mode", + "settings.service.form.enableDarkMode" : "Povolit Tmavý vzhled", "settings.service.form.enableNotification" : "Povolit upozornění", "settings.service.form.enableService" : "Povolit službu", "settings.service.form.headlineBadges" : "Odznaky nepřečtených zpráv", @@ -192,7 +203,7 @@ "settings.service.form.indirectMessages" : "Zobrazovat znak zprávy pro všechny nové zprávy", "settings.service.form.isMutedInfo" : "Pokud je vypnuto, všechny zvuky notifikací a jiného audia budou ztišeny", "settings.service.form.name" : "Jméno", - "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", + "settings.service.form.proxy.headline" : "Nastavení HTTP\/HTTPS Proxy", "settings.service.form.proxy.host" : "Proxy Host\/IP", "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", "settings.service.form.proxy.isEnabled" : "Use Proxy", @@ -201,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", "settings.service.form.proxy.user" : "User (optional)", "settings.service.form.saveButton" : "Uložit službu", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Hostováno", "settings.service.form.tabOnPremise" : "Samostatně hostované ⭐️", "settings.service.form.team" : "Tým", @@ -212,6 +221,7 @@ "settings.services.discoverServices" : "Objevte služby", "settings.services.headline" : "Vaše služby", "settings.services.noServicesAdded" : "Doposud jste nepřidali žádné služby.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Služba je zakázána", "settings.services.tooltip.isMuted" : "Všechny zvuky jsou ztišeny", "settings.services.tooltip.notificationsDisabled" : "Oznámení jsou zakázána", @@ -244,9 +254,7 @@ "subscription.euTaxInfo" : "Pro obyvatelé EU: mohou být aplikovány lokální daně", "subscription.features.ads" : "Žádné reklamy, nikdy!", "subscription.features.comingSoon" : "již brzy", - "subscription.features.encryptedSync" : "Šifrovaná synchronizace relací", "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "Přidat hostované služby jako HipChat", "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", "subscription.features.proxy" : "Proxy support for services", "subscription.features.spellchecker" : "Support for spellchecker", @@ -269,9 +277,9 @@ "tabs.item.reload" : "Obnovit", "validation.email" : "{field} není validní", "validation.minLength" : "{field} musí být alespoň {length} znaků dlouhé", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} je povinné", "validation.url" : "{field} není validní URL", "welcome.loginButton" : "Přihlášení do vašeho účtu", - "welcome.signupButton" : "Vytvořit účet zdarma", - "welcome.slogan" : "Zprávy, které pracují pro vás" + "welcome.signupButton" : "Vytvořit účet zdarma" } diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index b5abb56d4..2560a5add 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -1,11 +1,22 @@ { - "app.errorHandler.action" : "Neuladen", + "app.errorHandler.action" : "Neu laden", "app.errorHandler.headline" : "Es trat ein Fehler auf", "feature.delayApp.action" : "Upgrade deinen Account", "feature.delayApp.headline" : "Erspare dir das Warten mit einer Franz Supporter Lizenz", "feature.delayApp.text" : "Es geht in {seconds} Sekunden weiter.", + "feature.shareFranz.action.email" : "Als E-Mail senden", + "feature.shareFranz.action.facebook" : "Auf Facebook teilen", + "feature.shareFranz.action.twitter" : "Auf Twitter teilen", + "feature.shareFranz.headline" : "Gemeinsam ist Franz noch besser!", + "feature.shareFranz.shareText.email" : "Ich verwende Franz! Hol dir jetzt die kostenlose App für WhatsApp, Messenger, Slack, Skype und viele mehr auf www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "Ich verwende Franz mit {count} Diensten! Hol dir jetzt die kostenlose App für WhatsApp, Messenger, Slack, Skype und mehr auf www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Bitte erzähle deinen Freunden und Kollegen wie toll du Franz findest.", "global.api.unhealthy" : "Verbindung mit dem Franz Online Service fehlgeschlagen", "global.notConnectedToTheInternet" : "Du bist nicht mit dem Internet verbunden.", + "global.spellchecker.useDefault" : "Standard benutzen ({default})", + "global.spellchecking.autodetect" : "Sprache automatisch erkennen", + "global.spellchecking.autodetect.short" : "Automatisch", + "global.spellchecking.language" : "Sprache für Rechtschreibprüfung", "import.headline" : "Deine Franz 4 Dienste importieren", "import.notSupportedHeadline" : "Dienste, die noch nicht von Franz 5 unterstützt werden", "import.skip.label" : "Ich möchte Dienste selbst hinzufügen", @@ -59,7 +70,9 @@ "menu.help.support" : "Hilfe", "menu.help.tos" : "Nutzungsbedingungen", "menu.services" : "Dienste", + "menu.services.activatePreviousService" : "Vorheriger Dienst", "menu.services.addNewService" : "Dienst hinzufügen", + "menu.services.setNextServiceActive" : "Nächster Dienst", "menu.view" : "Darstellung", "menu.view.enterFullScreen" : "Vollbildmodus", "menu.view.exitFullScreen" : "Vollbildmodus aus", @@ -117,6 +130,7 @@ "settings.account.invoiceDownload" : "Herunterladen", "settings.account.manageSubscription.label" : "Dein Abonnement verwalten", "settings.account.successInfo" : "Deine Änderungen wurden gespeichert", + "settings.account.tryReloadServices" : "Erneut versuchen", "settings.account.tryReloadUserInfoRequest" : "Erneut versuchen", "settings.account.userInfoRequestFailed" : "Benutzerinformationen konnten nicht geladen werden", "settings.app.buttonClearAllCache" : "Cache leeren", @@ -129,16 +143,13 @@ "settings.app.form.beta" : "Beta-Versionen einbeziehen", "settings.app.form.darkMode" : "Die dunkle Seite erwartet dich (Dark Mode)", "settings.app.form.enableGPUAcceleration" : "Hardwarebeschleunigung aktivieren", - "settings.app.form.enableMenuBar" : "Franz in Menüleiste anzeigen", "settings.app.form.enableSpellchecking" : "Rechtschreibprüfung aktivieren", "settings.app.form.enableSystemTray" : "Franz im Infobereich anzeigen", - "settings.app.form.hideDockIcon" : "Franz Icon im Dock ausblenden", "settings.app.form.language" : "Sprache", "settings.app.form.minimizeToSystemTray" : "Franz in den Infobereich minimieren", "settings.app.form.runInBackground" : "Franz im Hintergrund behalten, wenn das Fenster geschlossen wird", "settings.app.form.showDisabledServices" : "Deaktivierte Services-Tabs anzeigen", "settings.app.form.showMessagesBadgesWhenMuted" : "Ungelesene Nachrichten zeigen, wenn die Benachrichtigungen deaktiviert sind", - "settings.app.form.spellcheckerLanguage" : "Sprache für Rechtschreibprüfung", "settings.app.headline" : "Einstellungen", "settings.app.headlineAdvanced" : "Erweitert", "settings.app.headlineAppearance" : "Darstellung", @@ -201,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Bitte starte Franz nach dem Ändern der Proxy Einstellungen neu.", "settings.service.form.proxy.user" : "Benutzer (optional)", "settings.service.form.saveButton" : "Dienst speichern", - "settings.service.form.spellcheckerLanguage" : "Sprache für Rechtschreibprüfung", - "settings.service.form.spellcheckerLanguage.default" : "Standard benutzen ({default})", "settings.service.form.tabHosted" : "Gehostet", "settings.service.form.tabOnPremise" : "Selbst gehostet ⭐️", "settings.service.form.team" : "Team", @@ -212,6 +221,7 @@ "settings.services.discoverServices" : "Dienste entdecken", "settings.services.headline" : "Deine Dienste", "settings.services.noServicesAdded" : "Du hast noch keine Dienste hinzugefügt.", + "settings.services.servicesRequestFailed" : "Dienste konnten nicht geladen werden", "settings.services.tooltip.isDisabled" : "Dienst ist deaktiviert", "settings.services.tooltip.isMuted" : "Alle Töne sind deaktiviert", "settings.services.tooltip.notificationsDisabled" : "Benachrichtigungen deaktiviert", @@ -244,9 +254,7 @@ "subscription.euTaxInfo" : "Preise sind exklusive Steuern.", "subscription.features.ads" : "Werbefrei auf Lebenszeit!", "subscription.features.comingSoon" : "folgt bald", - "subscription.features.encryptedSync" : "Verschlüsselte Sitzungs-Synchronisation", "subscription.features.noInterruptions" : "Keine Wartezeiten um Franz zu verwenden", - "subscription.features.onpremise" : "Integration von gehosteten Diensten, wie HipChat", "subscription.features.onpremise.mattermost" : "Integration von gehosteten Diensten, wie Mattermost", "subscription.features.proxy" : "Proxy Support für Dienste", "subscription.features.spellchecker" : "Unterstützung für Rechtschreibprüfung", @@ -269,9 +277,9 @@ "tabs.item.reload" : "Neuladen", "validation.email" : "{field} ist ungültig", "validation.minLength" : "{field} muss mindestens {length} Zeichen enthalten", + "validation.oneRequired" : "Mindestens ein Wert wird benötigt", "validation.required" : "{field} wird benötigt", "validation.url" : "{field} ist keine gültige URL", "welcome.loginButton" : "Bei Franz einloggen", - "welcome.signupButton" : "Kostenloses Konto erstellen", - "welcome.slogan" : "Kommunikation, die für Dich funktioniert" + "welcome.signupButton" : "Kostenloses Konto erstellen" } diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json new file mode 100644 index 000000000..0641c510c --- /dev/null +++ b/src/i18n/locales/defaultMessages.json @@ -0,0 +1,3934 @@ +[ + { + "descriptors": [ + { + "defaultMessage": "!!!Import your Franz 4 services", + "end": { + "column": 3, + "line": 16 + }, + "file": "src/components/auth/Import.js", + "id": "import.headline", + "start": { + "column": 12, + "line": 13 + } + }, + { + "defaultMessage": "!!!Services not yet supported in Franz 5", + "end": { + "column": 3, + "line": 20 + }, + "file": "src/components/auth/Import.js", + "id": "import.notSupportedHeadline", + "start": { + "column": 24, + "line": 17 + } + }, + { + "defaultMessage": "!!!Import {count} services", + "end": { + "column": 3, + "line": 24 + }, + "file": "src/components/auth/Import.js", + "id": "import.submit.label", + "start": { + "column": 21, + "line": 21 + } + }, + { + "defaultMessage": "!!!I want to add services manually", + "end": { + "column": 3, + "line": 28 + }, + "file": "src/components/auth/Import.js", + "id": "import.skip.label", + "start": { + "column": 19, + "line": 25 + } + } + ], + "path": "src/components/auth/Import.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Invite Friends", + "end": { + "column": 3, + "line": 19 + }, + "file": "src/components/auth/Invite.js", + "id": "settings.invite.headline", + "start": { + "column": 20, + "line": 16 + } + }, + { + "defaultMessage": "!!!Invite 3 of your friends or colleagues", + "end": { + "column": 3, + "line": 23 + }, + "file": "src/components/auth/Invite.js", + "id": "invite.headline.friends", + "start": { + "column": 12, + "line": 20 + } + }, + { + "defaultMessage": "!!!Name", + "end": { + "column": 3, + "line": 27 + }, + "file": "src/components/auth/Invite.js", + "id": "invite.name.label", + "start": { + "column": 13, + "line": 24 + } + }, + { + "defaultMessage": "!!!Email address", + "end": { + "column": 3, + "line": 31 + }, + "file": "src/components/auth/Invite.js", + "id": "invite.email.label", + "start": { + "column": 14, + "line": 28 + } + }, + { + "defaultMessage": "!!!Send invites", + "end": { + "column": 3, + "line": 35 + }, + "file": "src/components/auth/Invite.js", + "id": "invite.submit.label", + "start": { + "column": 21, + "line": 32 + } + }, + { + "defaultMessage": "!!!I want to do this later", + "end": { + "column": 3, + "line": 39 + }, + "file": "src/components/auth/Invite.js", + "id": "invite.skip.label", + "start": { + "column": 19, + "line": 36 + } + }, + { + "defaultMessage": "!!!Invitations sent successfully", + "end": { + "column": 3, + "line": 43 + }, + "file": "src/components/auth/Invite.js", + "id": "invite.successInfo", + "start": { + "column": 21, + "line": 40 + } + } + ], + "path": "src/components/auth/Invite.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Sign in", + "end": { + "column": 3, + "line": 20 + }, + "file": "src/components/auth/Login.js", + "id": "login.headline", + "start": { + "column": 12, + "line": 17 + } + }, + { + "defaultMessage": "!!!Email address", + "end": { + "column": 3, + "line": 24 + }, + "file": "src/components/auth/Login.js", + "id": "login.email.label", + "start": { + "column": 14, + "line": 21 + } + }, + { + "defaultMessage": "!!!Password", + "end": { + "column": 3, + "line": 28 + }, + "file": "src/components/auth/Login.js", + "id": "login.password.label", + "start": { + "column": 17, + "line": 25 + } + }, + { + "defaultMessage": "!!!Sign in", + "end": { + "column": 3, + "line": 32 + }, + "file": "src/components/auth/Login.js", + "id": "login.submit.label", + "start": { + "column": 21, + "line": 29 + } + }, + { + "defaultMessage": "!!!Email or password not valid", + "end": { + "column": 3, + "line": 36 + }, + "file": "src/components/auth/Login.js", + "id": "login.invalidCredentials", + "start": { + "column": 22, + "line": 33 + } + }, + { + "defaultMessage": "!!!Your session expired, please login again.", + "end": { + "column": 3, + "line": 40 + }, + "file": "src/components/auth/Login.js", + "id": "login.tokenExpired", + "start": { + "column": 16, + "line": 37 + } + }, + { + "defaultMessage": "!!!Your session expired, please login again.", + "end": { + "column": 3, + "line": 44 + }, + "file": "src/components/auth/Login.js", + "id": "login.serverLogout", + "start": { + "column": 16, + "line": 41 + } + }, + { + "defaultMessage": "!!!Create a free account", + "end": { + "column": 3, + "line": 48 + }, + "file": "src/components/auth/Login.js", + "id": "login.link.signup", + "start": { + "column": 14, + "line": 45 + } + }, + { + "defaultMessage": "!!!Forgot password", + "end": { + "column": 3, + "line": 52 + }, + "file": "src/components/auth/Login.js", + "id": "login.link.password", + "start": { + "column": 16, + "line": 49 + } + } + ], + "path": "src/components/auth/Login.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Forgot password", + "end": { + "column": 3, + "line": 17 + }, + "file": "src/components/auth/Password.js", + "id": "password.headline", + "start": { + "column": 12, + "line": 14 + } + }, + { + "defaultMessage": "!!!Email address", + "end": { + "column": 3, + "line": 21 + }, + "file": "src/components/auth/Password.js", + "id": "password.email.label", + "start": { + "column": 14, + "line": 18 + } + }, + { + "defaultMessage": "!!!Submit", + "end": { + "column": 3, + "line": 25 + }, + "file": "src/components/auth/Password.js", + "id": "password.submit.label", + "start": { + "column": 21, + "line": 22 + } + }, + { + "defaultMessage": "!!!Your new password was sent to your email address", + "end": { + "column": 3, + "line": 29 + }, + "file": "src/components/auth/Password.js", + "id": "password.successInfo", + "start": { + "column": 15, + "line": 26 + } + }, + { + "defaultMessage": "!!!No user affiliated with that email address", + "end": { + "column": 3, + "line": 33 + }, + "file": "src/components/auth/Password.js", + "id": "password.noUser", + "start": { + "column": 10, + "line": 30 + } + }, + { + "defaultMessage": "!!!Create a free account", + "end": { + "column": 3, + "line": 37 + }, + "file": "src/components/auth/Password.js", + "id": "password.link.signup", + "start": { + "column": 14, + "line": 34 + } + }, + { + "defaultMessage": "!!!Sign in to your account", + "end": { + "column": 3, + "line": 41 + }, + "file": "src/components/auth/Password.js", + "id": "password.link.login", + "start": { + "column": 13, + "line": 38 + } + } + ], + "path": "src/components/auth/Password.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Support Franz", + "end": { + "column": 3, + "line": 16 + }, + "file": "src/components/auth/Pricing.js", + "id": "pricing.headline", + "start": { + "column": 12, + "line": 13 + } + }, + { + "defaultMessage": "!!!Select your support plan", + "end": { + "column": 3, + "line": 20 + }, + "file": "src/components/auth/Pricing.js", + "id": "pricing.support.label", + "start": { + "column": 23, + "line": 17 + } + }, + { + "defaultMessage": "!!!Support the development of Franz", + "end": { + "column": 3, + "line": 24 + }, + "file": "src/components/auth/Pricing.js", + "id": "pricing.submit.label", + "start": { + "column": 21, + "line": 21 + } + }, + { + "defaultMessage": "!!!I don't want to support the development of Franz.", + "end": { + "column": 3, + "line": 28 + }, + "file": "src/components/auth/Pricing.js", + "id": "pricing.link.skipPayment", + "start": { + "column": 15, + "line": 25 + } + } + ], + "path": "src/components/auth/Pricing.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Sign up", + "end": { + "column": 3, + "line": 21 + }, + "file": "src/components/auth/Signup.js", + "id": "signup.headline", + "start": { + "column": 12, + "line": 18 + } + }, + { + "defaultMessage": "!!!Firstname", + "end": { + "column": 3, + "line": 25 + }, + "file": "src/components/auth/Signup.js", + "id": "signup.firstname.label", + "start": { + "column": 18, + "line": 22 + } + }, + { + "defaultMessage": "!!!Lastname", + "end": { + "column": 3, + "line": 29 + }, + "file": "src/components/auth/Signup.js", + "id": "signup.lastname.label", + "start": { + "column": 17, + "line": 26 + } + }, + { + "defaultMessage": "!!!Email address", + "end": { + "column": 3, + "line": 33 + }, + "file": "src/components/auth/Signup.js", + "id": "signup.email.label", + "start": { + "column": 14, + "line": 30 + } + }, + { + "defaultMessage": "!!!Company", + "end": { + "column": 3, + "line": 37 + }, + "file": "src/components/auth/Signup.js", + "id": "signup.company.label", + "start": { + "column": 16, + "line": 34 + } + }, + { + "defaultMessage": "!!!Password", + "end": { + "column": 3, + "line": 41 + }, + "file": "src/components/auth/Signup.js", + "id": "signup.password.label", + "start": { + "column": 17, + "line": 38 + } + }, + { + "defaultMessage": "!!!By creating a Franz account you accept the", + "end": { + "column": 3, + "line": 45 + }, + "file": "src/components/auth/Signup.js", + "id": "signup.legal.info", + "start": { + "column": 13, + "line": 42 + } + }, + { + "defaultMessage": "!!!Terms of service", + "end": { + "column": 3, + "line": 49 + }, + "file": "src/components/auth/Signup.js", + "id": "signup.legal.terms", + "start": { + "column": 9, + "line": 46 + } + }, + { + "defaultMessage": "!!!Privacy Statement", + "end": { + "column": 3, + "line": 53 + }, + "file": "src/components/auth/Signup.js", + "id": "signup.legal.privacy", + "start": { + "column": 11, + "line": 50 + } + }, + { + "defaultMessage": "!!!Create account", + "end": { + "column": 3, + "line": 57 + }, + "file": "src/components/auth/Signup.js", + "id": "signup.submit.label", + "start": { + "column": 21, + "line": 54 + } + }, + { + "defaultMessage": "!!!Already have an account, sign in?", + "end": { + "column": 3, + "line": 61 + }, + "file": "src/components/auth/Signup.js", + "id": "signup.link.login", + "start": { + "column": 13, + "line": 58 + } + }, + { + "defaultMessage": "!!!A user with that email address already exists", + "end": { + "column": 3, + "line": 65 + }, + "file": "src/components/auth/Signup.js", + "id": "signup.emailDuplicate", + "start": { + "column": 18, + "line": 62 + } + } + ], + "path": "src/components/auth/Signup.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Create a free account", + "end": { + "column": 3, + "line": 12 + }, + "file": "src/components/auth/Welcome.js", + "id": "welcome.signupButton", + "start": { + "column": 16, + "line": 9 + } + }, + { + "defaultMessage": "!!!Login to your account", + "end": { + "column": 3, + "line": 16 + }, + "file": "src/components/auth/Welcome.js", + "id": "welcome.loginButton", + "start": { + "column": 15, + "line": 13 + } + } + ], + "path": "src/components/auth/Welcome.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Your services have been updated.", + "end": { + "column": 3, + "line": 25 + }, + "file": "src/components/layout/AppLayout.js", + "id": "infobar.servicesUpdated", + "start": { + "column": 19, + "line": 22 + } + }, + { + "defaultMessage": "!!!A new update for Franz is available.", + "end": { + "column": 3, + "line": 29 + }, + "file": "src/components/layout/AppLayout.js", + "id": "infobar.updateAvailable", + "start": { + "column": 19, + "line": 26 + } + }, + { + "defaultMessage": "!!!Reload services", + "end": { + "column": 3, + "line": 33 + }, + "file": "src/components/layout/AppLayout.js", + "id": "infobar.buttonReloadServices", + "start": { + "column": 24, + "line": 30 + } + }, + { + "defaultMessage": "!!!Changelog", + "end": { + "column": 3, + "line": 37 + }, + "file": "src/components/layout/AppLayout.js", + "id": "infobar.buttonChangelog", + "start": { + "column": 13, + "line": 34 + } + }, + { + "defaultMessage": "!!!Restart & install update", + "end": { + "column": 3, + "line": 41 + }, + "file": "src/components/layout/AppLayout.js", + "id": "infobar.buttonInstallUpdate", + "start": { + "column": 23, + "line": 38 + } + }, + { + "defaultMessage": "!!!Could not load services and user information", + "end": { + "column": 3, + "line": 45 + }, + "file": "src/components/layout/AppLayout.js", + "id": "infobar.requiredRequestsFailed", + "start": { + "column": 26, + "line": 42 + } + } + ], + "path": "src/components/layout/AppLayout.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Settings", + "end": { + "column": 3, + "line": 14 + }, + "file": "src/components/layout/Sidebar.js", + "id": "sidebar.settings", + "start": { + "column": 12, + "line": 11 + } + }, + { + "defaultMessage": "!!!Add new service", + "end": { + "column": 3, + "line": 18 + }, + "file": "src/components/layout/Sidebar.js", + "id": "sidebar.addNewService", + "start": { + "column": 17, + "line": 15 + } + }, + { + "defaultMessage": "!!!Disable notifications & audio", + "end": { + "column": 3, + "line": 22 + }, + "file": "src/components/layout/Sidebar.js", + "id": "sidebar.muteApp", + "start": { + "column": 8, + "line": 19 + } + }, + { + "defaultMessage": "!!!Enable notifications & audio", + "end": { + "column": 3, + "line": 26 + }, + "file": "src/components/layout/Sidebar.js", + "id": "sidebar.unmuteApp", + "start": { + "column": 10, + "line": 23 + } + } + ], + "path": "src/components/layout/Sidebar.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Oh no!", + "end": { + "column": 3, + "line": 15 + }, + "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js", + "id": "service.errorHandler.headline", + "start": { + "column": 12, + "line": 12 + } + }, + { + "defaultMessage": "!!!{name} has failed to load.", + "end": { + "column": 3, + "line": 19 + }, + "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js", + "id": "service.errorHandler.text", + "start": { + "column": 8, + "line": 16 + } + }, + { + "defaultMessage": "!!!Reload {name}", + "end": { + "column": 3, + "line": 23 + }, + "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js", + "id": "service.errorHandler.action", + "start": { + "column": 10, + "line": 20 + } + }, + { + "defaultMessage": "!!!Edit {name}", + "end": { + "column": 3, + "line": 27 + }, + "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js", + "id": "service.errorHandler.editAction", + "start": { + "column": 14, + "line": 24 + } + }, + { + "defaultMessage": "!!!Error:", + "end": { + "column": 3, + "line": 31 + }, + "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js", + "id": "service.errorHandler.message", + "start": { + "column": 16, + "line": 28 + } + } + ], + "path": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!{name} is disabled", + "end": { + "column": 3, + "line": 12 + }, + "file": "src/components/services/content/ServiceDisabled.js", + "id": "service.disabledHandler.headline", + "start": { + "column": 12, + "line": 9 + } + }, + { + "defaultMessage": "!!!Enable {name}", + "end": { + "column": 3, + "line": 16 + }, + "file": "src/components/services/content/ServiceDisabled.js", + "id": "service.disabledHandler.action", + "start": { + "column": 10, + "line": 13 + } + } + ], + "path": "src/components/services/content/ServiceDisabled.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Welcome to Franz", + "end": { + "column": 3, + "line": 14 + }, + "file": "src/components/services/content/Services.js", + "id": "services.welcome", + "start": { + "column": 11, + "line": 11 + } + }, + { + "defaultMessage": "!!!Get started", + "end": { + "column": 3, + "line": 18 + }, + "file": "src/components/services/content/Services.js", + "id": "services.getStarted", + "start": { + "column": 14, + "line": 15 + } + } + ], + "path": "src/components/services/content/Services.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Oh no!", + "end": { + "column": 3, + "line": 13 + }, + "file": "src/components/services/content/WebviewCrashHandler.js", + "id": "service.crashHandler.headline", + "start": { + "column": 12, + "line": 10 + } + }, + { + "defaultMessage": "!!!{name} has caused an error.", + "end": { + "column": 3, + "line": 17 + }, + "file": "src/components/services/content/WebviewCrashHandler.js", + "id": "service.crashHandler.text", + "start": { + "column": 8, + "line": 14 + } + }, + { + "defaultMessage": "!!!Reload {name}", + "end": { + "column": 3, + "line": 21 + }, + "file": "src/components/services/content/WebviewCrashHandler.js", + "id": "service.crashHandler.action", + "start": { + "column": 10, + "line": 18 + } + }, + { + "defaultMessage": "!!!Trying to automatically restore {name} in {seconds} seconds", + "end": { + "column": 3, + "line": 25 + }, + "file": "src/components/services/content/WebviewCrashHandler.js", + "id": "service.crashHandler.autoReload", + "start": { + "column": 14, + "line": 22 + } + } + ], + "path": "src/components/services/content/WebviewCrashHandler.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Reload", + "end": { + "column": 3, + "line": 18 + }, + "file": "src/components/services/tabs/TabItem.js", + "id": "tabs.item.reload", + "start": { + "column": 10, + "line": 15 + } + }, + { + "defaultMessage": "!!!Edit", + "end": { + "column": 3, + "line": 22 + }, + "file": "src/components/services/tabs/TabItem.js", + "id": "tabs.item.edit", + "start": { + "column": 8, + "line": 19 + } + }, + { + "defaultMessage": "!!!Disable notifications", + "end": { + "column": 3, + "line": 26 + }, + "file": "src/components/services/tabs/TabItem.js", + "id": "tabs.item.disableNotifications", + "start": { + "column": 24, + "line": 23 + } + }, + { + "defaultMessage": "!!!Enable notifications", + "end": { + "column": 3, + "line": 30 + }, + "file": "src/components/services/tabs/TabItem.js", + "id": "tabs.item.enableNotification", + "start": { + "column": 23, + "line": 27 + } + }, + { + "defaultMessage": "!!!Disable audio", + "end": { + "column": 3, + "line": 34 + }, + "file": "src/components/services/tabs/TabItem.js", + "id": "tabs.item.disableAudio", + "start": { + "column": 16, + "line": 31 + } + }, + { + "defaultMessage": "!!!Enable audio", + "end": { + "column": 3, + "line": 38 + }, + "file": "src/components/services/tabs/TabItem.js", + "id": "tabs.item.enableAudio", + "start": { + "column": 15, + "line": 35 + } + }, + { + "defaultMessage": "!!!Disable Service", + "end": { + "column": 3, + "line": 42 + }, + "file": "src/components/services/tabs/TabItem.js", + "id": "tabs.item.disableService", + "start": { + "column": 18, + "line": 39 + } + }, + { + "defaultMessage": "!!!Enable Service", + "end": { + "column": 3, + "line": 46 + }, + "file": "src/components/services/tabs/TabItem.js", + "id": "tabs.item.enableService", + "start": { + "column": 17, + "line": 43 + } + }, + { + "defaultMessage": "!!!Delete Service", + "end": { + "column": 3, + "line": 50 + }, + "file": "src/components/services/tabs/TabItem.js", + "id": "tabs.item.deleteService", + "start": { + "column": 17, + "line": 47 + } + } + ], + "path": "src/components/services/tabs/TabItem.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Account", + "end": { + "column": 3, + "line": 18 + }, + "file": "src/components/settings/account/AccountDashboard.js", + "id": "settings.account.headline", + "start": { + "column": 12, + "line": 15 + } + }, + { + "defaultMessage": "!!!Your Subscription", + "end": { + "column": 3, + "line": 22 + }, + "file": "src/components/settings/account/AccountDashboard.js", + "id": "settings.account.headlineSubscription", + "start": { + "column": 24, + "line": 19 + } + }, + { + "defaultMessage": "!!!Upgrade your Account", + "end": { + "column": 3, + "line": 26 + }, + "file": "src/components/settings/account/AccountDashboard.js", + "id": "settings.account.headlineUpgrade", + "start": { + "column": 19, + "line": 23 + } + }, + { + "defaultMessage": "!!Invoices", + "end": { + "column": 3, + "line": 30 + }, + "file": "src/components/settings/account/AccountDashboard.js", + "id": "settings.account.headlineInvoices", + "start": { + "column": 20, + "line": 27 + } + }, + { + "defaultMessage": "!!Danger Zone", + "end": { + "column": 3, + "line": 34 + }, + "file": "src/components/settings/account/AccountDashboard.js", + "id": "settings.account.headlineDangerZone", + "start": { + "column": 22, + "line": 31 + } + }, + { + "defaultMessage": "!!!Manage your subscription", + "end": { + "column": 3, + "line": 38 + }, + "file": "src/components/settings/account/AccountDashboard.js", + "id": "settings.account.manageSubscription.label", + "start": { + "column": 33, + "line": 35 + } + }, + { + "defaultMessage": "!!!Basic Account", + "end": { + "column": 3, + "line": 42 + }, + "file": "src/components/settings/account/AccountDashboard.js", + "id": "settings.account.accountType.basic", + "start": { + "column": 20, + "line": 39 + } + }, + { + "defaultMessage": "!!!Premium Supporter Account", + "end": { + "column": 3, + "line": 46 + }, + "file": "src/components/settings/account/AccountDashboard.js", + "id": "settings.account.accountType.premium", + "start": { + "column": 22, + "line": 43 + } + }, + { + "defaultMessage": "!!!Edit Account", + "end": { + "column": 3, + "line": 50 + }, + "file": "src/components/settings/account/AccountDashboard.js", + "id": "settings.account.account.editButton", + "start": { + "column": 21, + "line": 47 + } + }, + { + "defaultMessage": "!!!Download", + "end": { + "column": 3, + "line": 54 + }, + "file": "src/components/settings/account/AccountDashboard.js", + "id": "settings.account.invoiceDownload", + "start": { + "column": 19, + "line": 51 + } + }, + { + "defaultMessage": "!!!Could not load user information", + "end": { + "column": 3, + "line": 58 + }, + "file": "src/components/settings/account/AccountDashboard.js", + "id": "settings.account.userInfoRequestFailed", + "start": { + "column": 25, + "line": 55 + } + }, + { + "defaultMessage": "!!!Try again", + "end": { + "column": 3, + "line": 62 + }, + "file": "src/components/settings/account/AccountDashboard.js", + "id": "settings.account.tryReloadUserInfoRequest", + "start": { + "column": 28, + "line": 59 + } + }, + { + "defaultMessage": "!!!Delete account", + "end": { + "column": 3, + "line": 66 + }, + "file": "src/components/settings/account/AccountDashboard.js", + "id": "settings.account.deleteAccount", + "start": { + "column": 17, + "line": 63 + } + }, + { + "defaultMessage": "!!!If you don't need your Franz account any longer, you can delete your account and all related data here.", + "end": { + "column": 3, + "line": 70 + }, + "file": "src/components/settings/account/AccountDashboard.js", + "id": "settings.account.deleteInfo", + "start": { + "column": 14, + "line": 67 + } + }, + { + "defaultMessage": "!!!You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", + "end": { + "column": 3, + "line": 74 + }, + "file": "src/components/settings/account/AccountDashboard.js", + "id": "settings.account.deleteEmailSent", + "start": { + "column": 19, + "line": 71 + } + } + ], + "path": "src/components/settings/account/AccountDashboard.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Available services", + "end": { + "column": 3, + "line": 12 + }, + "file": "src/components/settings/navigation/SettingsNavigation.js", + "id": "settings.navigation.availableServices", + "start": { + "column": 21, + "line": 9 + } + }, + { + "defaultMessage": "!!!Your services", + "end": { + "column": 3, + "line": 16 + }, + "file": "src/components/settings/navigation/SettingsNavigation.js", + "id": "settings.navigation.yourServices", + "start": { + "column": 16, + "line": 13 + } + }, + { + "defaultMessage": "!!!Account", + "end": { + "column": 3, + "line": 20 + }, + "file": "src/components/settings/navigation/SettingsNavigation.js", + "id": "settings.navigation.account", + "start": { + "column": 11, + "line": 17 + } + }, + { + "defaultMessage": "!!!Settings", + "end": { + "column": 3, + "line": 24 + }, + "file": "src/components/settings/navigation/SettingsNavigation.js", + "id": "settings.navigation.settings", + "start": { + "column": 12, + "line": 21 + } + }, + { + "defaultMessage": "!!!Invite Friends", + "end": { + "column": 3, + "line": 28 + }, + "file": "src/components/settings/navigation/SettingsNavigation.js", + "id": "settings.navigation.inviteFriends", + "start": { + "column": 17, + "line": 25 + } + }, + { + "defaultMessage": "!!!Logout", + "end": { + "column": 3, + "line": 32 + }, + "file": "src/components/settings/navigation/SettingsNavigation.js", + "id": "settings.navigation.logout", + "start": { + "column": 10, + "line": 29 + } + } + ], + "path": "src/components/settings/navigation/SettingsNavigation.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Available Services", + "end": { + "column": 3, + "line": 18 + }, + "file": "src/components/settings/recipes/RecipesDashboard.js", + "id": "settings.recipes.headline", + "start": { + "column": 12, + "line": 15 + } + }, + { + "defaultMessage": "!!!Search service", + "end": { + "column": 3, + "line": 22 + }, + "file": "src/components/settings/recipes/RecipesDashboard.js", + "id": "settings.searchService", + "start": { + "column": 17, + "line": 19 + } + }, + { + "defaultMessage": "!!!Most popular", + "end": { + "column": 3, + "line": 26 + }, + "file": "src/components/settings/recipes/RecipesDashboard.js", + "id": "settings.recipes.mostPopular", + "start": { + "column": 22, + "line": 23 + } + }, + { + "defaultMessage": "!!!All services", + "end": { + "column": 3, + "line": 30 + }, + "file": "src/components/settings/recipes/RecipesDashboard.js", + "id": "settings.recipes.all", + "start": { + "column": 14, + "line": 27 + } + }, + { + "defaultMessage": "!!!Development", + "end": { + "column": 3, + "line": 34 + }, + "file": "src/components/settings/recipes/RecipesDashboard.js", + "id": "settings.recipes.dev", + "start": { + "column": 14, + "line": 31 + } + }, + { + "defaultMessage": "!!!Sorry, but no service matched your search term.", + "end": { + "column": 3, + "line": 38 + }, + "file": "src/components/settings/recipes/RecipesDashboard.js", + "id": "settings.recipes.nothingFound", + "start": { + "column": 16, + "line": 35 + } + }, + { + "defaultMessage": "!!!Service successfully added", + "end": { + "column": 3, + "line": 42 + }, + "file": "src/components/settings/recipes/RecipesDashboard.js", + "id": "settings.recipes.servicesSuccessfulAddedInfo", + "start": { + "column": 31, + "line": 39 + } + }, + { + "defaultMessage": "!!!Missing a service?", + "end": { + "column": 3, + "line": 46 + }, + "file": "src/components/settings/recipes/RecipesDashboard.js", + "id": "settings.recipes.missingService", + "start": { + "column": 18, + "line": 43 + } + } + ], + "path": "src/components/settings/recipes/RecipesDashboard.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Save service", + "end": { + "column": 3, + "line": 25 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.saveButton", + "start": { + "column": 15, + "line": 22 + } + }, + { + "defaultMessage": "!!!Delete Service", + "end": { + "column": 3, + "line": 29 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.deleteButton", + "start": { + "column": 17, + "line": 26 + } + }, + { + "defaultMessage": "!!!Available services", + "end": { + "column": 3, + "line": 33 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.availableServices", + "start": { + "column": 21, + "line": 30 + } + }, + { + "defaultMessage": "!!!Your services", + "end": { + "column": 3, + "line": 37 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.yourServices", + "start": { + "column": 16, + "line": 34 + } + }, + { + "defaultMessage": "!!!Add {name}", + "end": { + "column": 3, + "line": 41 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.addServiceHeadline", + "start": { + "column": 22, + "line": 38 + } + }, + { + "defaultMessage": "!!!Edit {name}", + "end": { + "column": 3, + "line": 45 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.editServiceHeadline", + "start": { + "column": 23, + "line": 42 + } + }, + { + "defaultMessage": "!!!Hosted", + "end": { + "column": 3, + "line": 49 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.tabHosted", + "start": { + "column": 13, + "line": 46 + } + }, + { + "defaultMessage": "!!!Self hosted ⭐️", + "end": { + "column": 3, + "line": 53 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.tabOnPremise", + "start": { + "column": 16, + "line": 50 + } + }, + { + "defaultMessage": "!!!Use the hosted {name} service.", + "end": { + "column": 3, + "line": 57 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.useHostedService", + "start": { + "column": 20, + "line": 54 + } + }, + { + "defaultMessage": "!!!Could not validate custom {name} server.", + "end": { + "column": 3, + "line": 61 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.customUrlValidationError", + "start": { + "column": 28, + "line": 58 + } + }, + { + "defaultMessage": "!!!To add self hosted services, you need a Franz Premium Supporter Account.", + "end": { + "column": 3, + "line": 65 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.customUrlPremiumInfo", + "start": { + "column": 24, + "line": 62 + } + }, + { + "defaultMessage": "!!!Upgrade your account", + "end": { + "column": 3, + "line": 69 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.customUrlUpgradeAccount", + "start": { + "column": 27, + "line": 66 + } + }, + { + "defaultMessage": "!!!You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", + "end": { + "column": 3, + "line": 73 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.indirectMessageInfo", + "start": { + "column": 23, + "line": 70 + } + }, + { + "defaultMessage": "!!!When disabled, all notification sounds and audio playback are muted", + "end": { + "column": 3, + "line": 77 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.isMutedInfo", + "start": { + "column": 15, + "line": 74 + } + }, + { + "defaultMessage": "!!!Notifications", + "end": { + "column": 3, + "line": 81 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.headlineNotifications", + "start": { + "column": 25, + "line": 78 + } + }, + { + "defaultMessage": "!!!Unread message badges", + "end": { + "column": 3, + "line": 85 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.headlineBadges", + "start": { + "column": 18, + "line": 82 + } + }, + { + "defaultMessage": "!!!General", + "end": { + "column": 3, + "line": 89 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.headlineGeneral", + "start": { + "column": 19, + "line": 86 + } + }, + { + "defaultMessage": "!!!Delete", + "end": { + "column": 3, + "line": 93 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.iconDelete", + "start": { + "column": 14, + "line": 90 + } + }, + { + "defaultMessage": "!!!Drop your image, or click here", + "end": { + "column": 3, + "line": 97 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.iconUpload", + "start": { + "column": 14, + "line": 94 + } + }, + { + "defaultMessage": "!!!HTTP/HTTPS Proxy Settings", + "end": { + "column": 3, + "line": 101 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.proxy.headline", + "start": { + "column": 17, + "line": 98 + } + }, + { + "defaultMessage": "!!!Please restart Franz after changing proxy Settings.", + "end": { + "column": 3, + "line": 105 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.proxy.restartInfo", + "start": { + "column": 20, + "line": 102 + } + }, + { + "defaultMessage": "!!!Proxy settings will not be synchronized with the Franz servers.", + "end": { + "column": 3, + "line": 109 + }, + "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.proxy.info", + "start": { + "column": 13, + "line": 106 + } + } + ], + "path": "src/components/settings/services/EditServiceForm.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Error", + "end": { + "column": 3, + "line": 13 + }, + "file": "src/components/settings/services/ServiceError.js", + "id": "settings.service.error.headline", + "start": { + "column": 12, + "line": 10 + } + }, + { + "defaultMessage": "!!!Back to services", + "end": { + "column": 3, + "line": 17 + }, + "file": "src/components/settings/services/ServiceError.js", + "id": "settings.service.error.goBack", + "start": { + "column": 10, + "line": 14 + } + }, + { + "defaultMessage": "!!!Available services", + "end": { + "column": 3, + "line": 21 + }, + "file": "src/components/settings/services/ServiceError.js", + "id": "settings.service.form.availableServices", + "start": { + "column": 21, + "line": 18 + } + }, + { + "defaultMessage": "!!!Could not load service recipe.", + "end": { + "column": 3, + "line": 25 + }, + "file": "src/components/settings/services/ServiceError.js", + "id": "settings.service.error.message", + "start": { + "column": 16, + "line": 22 + } + } + ], + "path": "src/components/settings/services/ServiceError.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Service is disabled", + "end": { + "column": 3, + "line": 14 + }, + "file": "src/components/settings/services/ServiceItem.js", + "id": "settings.services.tooltip.isDisabled", + "start": { + "column": 21, + "line": 11 + } + }, + { + "defaultMessage": "!!!Notifications are disabled", + "end": { + "column": 3, + "line": 18 + }, + "file": "src/components/settings/services/ServiceItem.js", + "id": "settings.services.tooltip.notificationsDisabled", + "start": { + "column": 32, + "line": 15 + } + }, + { + "defaultMessage": "!!!All sounds are muted", + "end": { + "column": 3, + "line": 22 + }, + "file": "src/components/settings/services/ServiceItem.js", + "id": "settings.services.tooltip.isMuted", + "start": { + "column": 18, + "line": 19 + } + } + ], + "path": "src/components/settings/services/ServiceItem.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Your services", + "end": { + "column": 3, + "line": 17 + }, + "file": "src/components/settings/services/ServicesDashboard.js", + "id": "settings.services.headline", + "start": { + "column": 12, + "line": 14 + } + }, + { + "defaultMessage": "!!!Search service", + "end": { + "column": 3, + "line": 21 + }, + "file": "src/components/settings/services/ServicesDashboard.js", + "id": "settings.searchService", + "start": { + "column": 17, + "line": 18 + } + }, + { + "defaultMessage": "!!!You haven't added any services yet.", + "end": { + "column": 3, + "line": 25 + }, + "file": "src/components/settings/services/ServicesDashboard.js", + "id": "settings.services.noServicesAdded", + "start": { + "column": 19, + "line": 22 + } + }, + { + "defaultMessage": "!!!Sorry, but no service matched your search term.", + "end": { + "column": 3, + "line": 29 + }, + "file": "src/components/settings/services/ServicesDashboard.js", + "id": "settings.recipes.nothingFound", + "start": { + "column": 18, + "line": 26 + } + }, + { + "defaultMessage": "!!!Discover services", + "end": { + "column": 3, + "line": 33 + }, + "file": "src/components/settings/services/ServicesDashboard.js", + "id": "settings.services.discoverServices", + "start": { + "column": 20, + "line": 30 + } + }, + { + "defaultMessage": "!!!Could not load your services", + "end": { + "column": 3, + "line": 37 + }, + "file": "src/components/settings/services/ServicesDashboard.js", + "id": "settings.services.servicesRequestFailed", + "start": { + "column": 25, + "line": 34 + } + }, + { + "defaultMessage": "!!!Try again", + "end": { + "column": 3, + "line": 41 + }, + "file": "src/components/settings/services/ServicesDashboard.js", + "id": "settings.account.tryReloadServices", + "start": { + "column": 21, + "line": 38 + } + }, + { + "defaultMessage": "!!!Your changes have been saved", + "end": { + "column": 3, + "line": 45 + }, + "file": "src/components/settings/services/ServicesDashboard.js", + "id": "settings.services.updatedInfo", + "start": { + "column": 15, + "line": 42 + } + }, + { + "defaultMessage": "!!!Service has been deleted", + "end": { + "column": 3, + "line": 49 + }, + "file": "src/components/settings/services/ServicesDashboard.js", + "id": "settings.services.deletedInfo", + "start": { + "column": 15, + "line": 46 + } + } + ], + "path": "src/components/settings/services/ServicesDashboard.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Settings", + "end": { + "column": 3, + "line": 19 + }, + "file": "src/components/settings/settings/EditSettingsForm.js", + "id": "settings.app.headline", + "start": { + "column": 12, + "line": 16 + } + }, + { + "defaultMessage": "!!!General", + "end": { + "column": 3, + "line": 23 + }, + "file": "src/components/settings/settings/EditSettingsForm.js", + "id": "settings.app.headlineGeneral", + "start": { + "column": 19, + "line": 20 + } + }, + { + "defaultMessage": "!!!Language", + "end": { + "column": 3, + "line": 27 + }, + "file": "src/components/settings/settings/EditSettingsForm.js", + "id": "settings.app.headlineLanguage", + "start": { + "column": 20, + "line": 24 + } + }, + { + "defaultMessage": "!!!Updates", + "end": { + "column": 3, + "line": 31 + }, + "file": "src/components/settings/settings/EditSettingsForm.js", + "id": "settings.app.headlineUpdates", + "start": { + "column": 19, + "line": 28 + } + }, + { + "defaultMessage": "!!!Appearance", + "end": { + "column": 3, + "line": 35 + }, + "file": "src/components/settings/settings/EditSettingsForm.js", + "id": "settings.app.headlineAppearance", + "start": { + "column": 22, + "line": 32 + } + }, + { + "defaultMessage": "!!!Advanced", + "end": { + "column": 3, + "line": 39 + }, + "file": "src/components/settings/settings/EditSettingsForm.js", + "id": "settings.app.headlineAdvanced", + "start": { + "column": 20, + "line": 36 + } + }, + { + "defaultMessage": "!!!Help us to translate Franz into your language.", + "end": { + "column": 3, + "line": 43 + }, + "file": "src/components/settings/settings/EditSettingsForm.js", + "id": "settings.app.translationHelp", + "start": { + "column": 19, + "line": 40 + } + }, + { + "defaultMessage": "!!!Cache", + "end": { + "column": 3, + "line": 47 + }, + "file": "src/components/settings/settings/EditSettingsForm.js", + "id": "settings.app.subheadlineCache", + "start": { + "column": 20, + "line": 44 + } + }, + { + "defaultMessage": "!!!Franz cache is currently using {size} of disk space.", + "end": { + "column": 3, + "line": 51 + }, + "file": "src/components/settings/settings/EditSettingsForm.js", + "id": "settings.app.cacheInfo", + "start": { + "column": 13, + "line": 48 + } + }, + { + "defaultMessage": "!!!Clear cache", + "end": { + "column": 3, + "line": 55 + }, + "file": "src/components/settings/settings/EditSettingsForm.js", + "id": "settings.app.buttonClearAllCache", + "start": { + "column": 23, + "line": 52 + } + }, + { + "defaultMessage": "!!!Check for updates", + "end": { + "column": 3, + "line": 59 + }, + "file": "src/components/settings/settings/EditSettingsForm.js", + "id": "settings.app.buttonSearchForUpdate", + "start": { + "column": 25, + "line": 56 + } + }, + { + "defaultMessage": "!!!Restart & install update", + "end": { + "column": 3, + "line": 63 + }, + "file": "src/components/settings/settings/EditSettingsForm.js", + "id": "settings.app.buttonInstallUpdate", + "start": { + "column": 23, + "line": 60 + } + }, + { + "defaultMessage": "!!!Is searching for update", + "end": { + "column": 3, + "line": 67 + }, + "file": "src/components/settings/settings/EditSettingsForm.js", + "id": "settings.app.updateStatusSearching", + "start": { + "column": 25, + "line": 64 + } + }, + { + "defaultMessage": "!!!Update available, downloading...", + "end": { + "column": 3, + "line": 71 + }, + "file": "src/components/settings/settings/EditSettingsForm.js", + "id": "settings.app.updateStatusAvailable", + "start": { + "column": 25, + "line": 68 + } + }, + { + "defaultMessage": "!!!You are using the latest version of Franz", + "end": { + "column": 3, + "line": 75 + }, + "file": "src/components/settings/settings/EditSettingsForm.js", + "id": "settings.app.updateStatusUpToDate", + "start": { + "column": 24, + "line": 72 + } + }, + { + "defaultMessage": "!!!Current version:", + "end": { + "column": 3, + "line": 79 + }, + "file": "src/components/settings/settings/EditSettingsForm.js", + "id": "settings.app.currentVersion", + "start": { + "column": 18, + "line": 76 + } + }, + { + "defaultMessage": "!!!Changes require restart", + "end": { + "column": 3, + "line": 83 + }, + "file": "src/components/settings/settings/EditSettingsForm.js", + "id": "settings.app.restartRequired", + "start": { + "column": 29, + "line": 80 + } + } + ], + "path": "src/components/settings/settings/EditSettingsForm.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Account", + "end": { + "column": 3, + "line": 18 + }, + "file": "src/components/settings/user/EditUserForm.js", + "id": "settings.account.headline", + "start": { + "column": 12, + "line": 15 + } + }, + { + "defaultMessage": "!!!Update Profile", + "end": { + "column": 3, + "line": 22 + }, + "file": "src/components/settings/user/EditUserForm.js", + "id": "settings.account.headlineProfile", + "start": { + "column": 19, + "line": 19 + } + }, + { + "defaultMessage": "!!!Account Information", + "end": { + "column": 3, + "line": 26 + }, + "file": "src/components/settings/user/EditUserForm.js", + "id": "settings.account.headlineAccount", + "start": { + "column": 19, + "line": 23 + } + }, + { + "defaultMessage": "!!!Change Password", + "end": { + "column": 3, + "line": 30 + }, + "file": "src/components/settings/user/EditUserForm.js", + "id": "settings.account.headlinePassword", + "start": { + "column": 20, + "line": 27 + } + }, + { + "defaultMessage": "!!!Your changes have been saved", + "end": { + "column": 3, + "line": 34 + }, + "file": "src/components/settings/user/EditUserForm.js", + "id": "settings.account.successInfo", + "start": { + "column": 15, + "line": 31 + } + }, + { + "defaultMessage": "!!!Update profile", + "end": { + "column": 3, + "line": 38 + }, + "file": "src/components/settings/user/EditUserForm.js", + "id": "settings.account.buttonSave", + "start": { + "column": 14, + "line": 35 + } + } + ], + "path": "src/components/settings/user/EditUserForm.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Support the development of Franz", + "end": { + "column": 3, + "line": 17 + }, + "file": "src/components/subscription/SubscriptionForm.js", + "id": "subscription.submit.label", + "start": { + "column": 21, + "line": 14 + } + }, + { + "defaultMessage": "!!!Could not initialize payment form", + "end": { + "column": 3, + "line": 21 + }, + "file": "src/components/subscription/SubscriptionForm.js", + "id": "subscription.paymentSessionError", + "start": { + "column": 23, + "line": 18 + } + }, + { + "defaultMessage": "!!!free", + "end": { + "column": 3, + "line": 25 + }, + "file": "src/components/subscription/SubscriptionForm.js", + "id": "subscription.type.free", + "start": { + "column": 12, + "line": 22 + } + }, + { + "defaultMessage": "!!!month", + "end": { + "column": 3, + "line": 29 + }, + "file": "src/components/subscription/SubscriptionForm.js", + "id": "subscription.type.month", + "start": { + "column": 15, + "line": 26 + } + }, + { + "defaultMessage": "!!!year", + "end": { + "column": 3, + "line": 33 + }, + "file": "src/components/subscription/SubscriptionForm.js", + "id": "subscription.type.year", + "start": { + "column": 14, + "line": 30 + } + }, + { + "defaultMessage": "!!!The Franz Premium Supporter Account includes", + "end": { + "column": 3, + "line": 37 + }, + "file": "src/components/subscription/SubscriptionForm.js", + "id": "subscription.includedFeatures", + "start": { + "column": 20, + "line": 34 + } + }, + { + "defaultMessage": "!!!Add on-premise/hosted services like Mattermost", + "end": { + "column": 3, + "line": 41 + }, + "file": "src/components/subscription/SubscriptionForm.js", + "id": "subscription.features.onpremise.mattermost", + "start": { + "column": 13, + "line": 38 + } + }, + { + "defaultMessage": "!!!No app delays & nagging to upgrade license", + "end": { + "column": 3, + "line": 45 + }, + "file": "src/components/subscription/SubscriptionForm.js", + "id": "subscription.features.noInterruptions", + "start": { + "column": 19, + "line": 42 + } + }, + { + "defaultMessage": "!!!Proxy support for services", + "end": { + "column": 3, + "line": 49 + }, + "file": "src/components/subscription/SubscriptionForm.js", + "id": "subscription.features.proxy", + "start": { + "column": 9, + "line": 46 + } + }, + { + "defaultMessage": "!!!Support for Spellchecker", + "end": { + "column": 3, + "line": 53 + }, + "file": "src/components/subscription/SubscriptionForm.js", + "id": "subscription.features.spellchecker", + "start": { + "column": 16, + "line": 50 + } + }, + { + "defaultMessage": "!!!No ads, ever!", + "end": { + "column": 3, + "line": 57 + }, + "file": "src/components/subscription/SubscriptionForm.js", + "id": "subscription.features.ads", + "start": { + "column": 7, + "line": 54 + } + }, + { + "defaultMessage": "!!!coming soon", + "end": { + "column": 3, + "line": 61 + }, + "file": "src/components/subscription/SubscriptionForm.js", + "id": "subscription.features.comingSoon", + "start": { + "column": 14, + "line": 58 + } + }, + { + "defaultMessage": "!!!EU residents: local sales tax may apply", + "end": { + "column": 3, + "line": 65 + }, + "file": "src/components/subscription/SubscriptionForm.js", + "id": "subscription.euTaxInfo", + "start": { + "column": 13, + "line": 62 + } + } + ], + "path": "src/components/subscription/SubscriptionForm.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Cancel", + "end": { + "column": 3, + "line": 14 + }, + "file": "src/components/subscription/SubscriptionPopup.js", + "id": "subscriptionPopup.buttonCancel", + "start": { + "column": 16, + "line": 11 + } + }, + { + "defaultMessage": "!!!Done", + "end": { + "column": 3, + "line": 18 + }, + "file": "src/components/subscription/SubscriptionPopup.js", + "id": "subscriptionPopup.buttonDone", + "start": { + "column": 14, + "line": 15 + } + } + ], + "path": "src/components/subscription/SubscriptionPopup.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Upgrade account", + "end": { + "column": 3, + "line": 17 + }, + "file": "src/components/ui/PremiumFeatureContainer/index.js", + "id": "premiumFeature.button.upgradeAccount", + "start": { + "column": 10, + "line": 14 + } + } + ], + "path": "src/components/ui/PremiumFeatureContainer/index.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Something went wrong.", + "end": { + "column": 3, + "line": 14 + }, + "file": "src/components/util/ErrorBoundary/index.js", + "id": "app.errorHandler.headline", + "start": { + "column": 12, + "line": 11 + } + }, + { + "defaultMessage": "!!!Reload", + "end": { + "column": 3, + "line": 18 + }, + "file": "src/components/util/ErrorBoundary/index.js", + "id": "app.errorHandler.action", + "start": { + "column": 10, + "line": 15 + } + } + ], + "path": "src/components/util/ErrorBoundary/index.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Name", + "end": { + "column": 3, + "line": 31 + }, + "file": "src/containers/settings/EditServiceScreen.js", + "id": "settings.service.form.name", + "start": { + "column": 8, + "line": 28 + } + }, + { + "defaultMessage": "!!!Enable service", + "end": { + "column": 3, + "line": 35 + }, + "file": "src/containers/settings/EditServiceScreen.js", + "id": "settings.service.form.enableService", + "start": { + "column": 17, + "line": 32 + } + }, + { + "defaultMessage": "!!!Enable Notifications", + "end": { + "column": 3, + "line": 39 + }, + "file": "src/containers/settings/EditServiceScreen.js", + "id": "settings.service.form.enableNotification", + "start": { + "column": 22, + "line": 36 + } + }, + { + "defaultMessage": "!!!Show unread message badges", + "end": { + "column": 3, + "line": 43 + }, + "file": "src/containers/settings/EditServiceScreen.js", + "id": "settings.service.form.enableBadge", + "start": { + "column": 15, + "line": 40 + } + }, + { + "defaultMessage": "!!!Enable audio", + "end": { + "column": 3, + "line": 47 + }, + "file": "src/containers/settings/EditServiceScreen.js", + "id": "settings.service.form.enableAudio", + "start": { + "column": 15, + "line": 44 + } + }, + { + "defaultMessage": "!!!Team", + "end": { + "column": 3, + "line": 51 + }, + "file": "src/containers/settings/EditServiceScreen.js", + "id": "settings.service.form.team", + "start": { + "column": 8, + "line": 48 + } + }, + { + "defaultMessage": "!!!Custom server", + "end": { + "column": 3, + "line": 55 + }, + "file": "src/containers/settings/EditServiceScreen.js", + "id": "settings.service.form.customUrl", + "start": { + "column": 13, + "line": 52 + } + }, + { + "defaultMessage": "!!!Show message badge for all new messages", + "end": { + "column": 3, + "line": 59 + }, + "file": "src/containers/settings/EditServiceScreen.js", + "id": "settings.service.form.indirectMessages", + "start": { + "column": 20, + "line": 56 + } + }, + { + "defaultMessage": "!!!Custom icon", + "end": { + "column": 3, + "line": 63 + }, + "file": "src/containers/settings/EditServiceScreen.js", + "id": "settings.service.form.icon", + "start": { + "column": 8, + "line": 60 + } + }, + { + "defaultMessage": "!!!Enable Dark Mode", + "end": { + "column": 3, + "line": 67 + }, + "file": "src/containers/settings/EditServiceScreen.js", + "id": "settings.service.form.enableDarkMode", + "start": { + "column": 18, + "line": 64 + } + }, + { + "defaultMessage": "!!!Use Proxy", + "end": { + "column": 3, + "line": 71 + }, + "file": "src/containers/settings/EditServiceScreen.js", + "id": "settings.service.form.proxy.isEnabled", + "start": { + "column": 15, + "line": 68 + } + }, + { + "defaultMessage": "!!!Proxy Host/IP", + "end": { + "column": 3, + "line": 75 + }, + "file": "src/containers/settings/EditServiceScreen.js", + "id": "settings.service.form.proxy.host", + "start": { + "column": 13, + "line": 72 + } + }, + { + "defaultMessage": "!!!Port", + "end": { + "column": 3, + "line": 79 + }, + "file": "src/containers/settings/EditServiceScreen.js", + "id": "settings.service.form.proxy.port", + "start": { + "column": 13, + "line": 76 + } + }, + { + "defaultMessage": "!!!User", + "end": { + "column": 3, + "line": 83 + }, + "file": "src/containers/settings/EditServiceScreen.js", + "id": "settings.service.form.proxy.user", + "start": { + "column": 13, + "line": 80 + } + }, + { + "defaultMessage": "!!!Password", + "end": { + "column": 3, + "line": 87 + }, + "file": "src/containers/settings/EditServiceScreen.js", + "id": "settings.service.form.proxy.password", + "start": { + "column": 17, + "line": 84 + } + } + ], + "path": "src/containers/settings/EditServiceScreen.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Launch Franz on start", + "end": { + "column": 3, + "line": 25 + }, + "file": "src/containers/settings/EditSettingsScreen.js", + "id": "settings.app.form.autoLaunchOnStart", + "start": { + "column": 21, + "line": 22 + } + }, + { + "defaultMessage": "!!!Open in background", + "end": { + "column": 3, + "line": 29 + }, + "file": "src/containers/settings/EditSettingsScreen.js", + "id": "settings.app.form.autoLaunchInBackground", + "start": { + "column": 26, + "line": 26 + } + }, + { + "defaultMessage": "!!!Keep Franz in background when closing the window", + "end": { + "column": 3, + "line": 33 + }, + "file": "src/containers/settings/EditSettingsScreen.js", + "id": "settings.app.form.runInBackground", + "start": { + "column": 19, + "line": 30 + } + }, + { + "defaultMessage": "!!!Show Franz in system tray", + "end": { + "column": 3, + "line": 37 + }, + "file": "src/containers/settings/EditSettingsScreen.js", + "id": "settings.app.form.enableSystemTray", + "start": { + "column": 20, + "line": 34 + } + }, + { + "defaultMessage": "!!!Minimize Franz to system tray", + "end": { + "column": 3, + "line": 41 + }, + "file": "src/containers/settings/EditSettingsScreen.js", + "id": "settings.app.form.minimizeToSystemTray", + "start": { + "column": 24, + "line": 38 + } + }, + { + "defaultMessage": "!!!Language", + "end": { + "column": 3, + "line": 45 + }, + "file": "src/containers/settings/EditSettingsScreen.js", + "id": "settings.app.form.language", + "start": { + "column": 12, + "line": 42 + } + }, + { + "defaultMessage": "!!!Dark Mode", + "end": { + "column": 3, + "line": 49 + }, + "file": "src/containers/settings/EditSettingsScreen.js", + "id": "settings.app.form.darkMode", + "start": { + "column": 12, + "line": 46 + } + }, + { + "defaultMessage": "!!!Display disabled services tabs", + "end": { + "column": 3, + "line": 53 + }, + "file": "src/containers/settings/EditSettingsScreen.js", + "id": "settings.app.form.showDisabledServices", + "start": { + "column": 24, + "line": 50 + } + }, + { + "defaultMessage": "!!!Show unread message badge when notifications are disabled", + "end": { + "column": 3, + "line": 57 + }, + "file": "src/containers/settings/EditSettingsScreen.js", + "id": "settings.app.form.showMessagesBadgesWhenMuted", + "start": { + "column": 29, + "line": 54 + } + }, + { + "defaultMessage": "!!!Enable spell checking", + "end": { + "column": 3, + "line": 61 + }, + "file": "src/containers/settings/EditSettingsScreen.js", + "id": "settings.app.form.enableSpellchecking", + "start": { + "column": 23, + "line": 58 + } + }, + { + "defaultMessage": "!!!Enable GPU Acceleration", + "end": { + "column": 3, + "line": 65 + }, + "file": "src/containers/settings/EditSettingsScreen.js", + "id": "settings.app.form.enableGPUAcceleration", + "start": { + "column": 25, + "line": 62 + } + }, + { + "defaultMessage": "!!!Include beta versions", + "end": { + "column": 3, + "line": 69 + }, + "file": "src/containers/settings/EditSettingsScreen.js", + "id": "settings.app.form.beta", + "start": { + "column": 8, + "line": 66 + } + } + ], + "path": "src/containers/settings/EditSettingsScreen.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Firstname", + "end": { + "column": 3, + "line": 17 + }, + "file": "src/containers/settings/EditUserScreen.js", + "id": "settings.user.form.firstname", + "start": { + "column": 13, + "line": 14 + } + }, + { + "defaultMessage": "!!!Lastname", + "end": { + "column": 3, + "line": 21 + }, + "file": "src/containers/settings/EditUserScreen.js", + "id": "settings.user.form.lastname", + "start": { + "column": 12, + "line": 18 + } + }, + { + "defaultMessage": "!!!Email", + "end": { + "column": 3, + "line": 25 + }, + "file": "src/containers/settings/EditUserScreen.js", + "id": "settings.user.form.email", + "start": { + "column": 9, + "line": 22 + } + }, + { + "defaultMessage": "!!!Account type", + "end": { + "column": 3, + "line": 29 + }, + "file": "src/containers/settings/EditUserScreen.js", + "id": "settings.user.form.accountType.label", + "start": { + "column": 20, + "line": 26 + } + }, + { + "defaultMessage": "!!!Individual", + "end": { + "column": 3, + "line": 33 + }, + "file": "src/containers/settings/EditUserScreen.js", + "id": "settings.user.form.accountType.individual", + "start": { + "column": 25, + "line": 30 + } + }, + { + "defaultMessage": "!!!Non-Profit", + "end": { + "column": 3, + "line": 37 + }, + "file": "src/containers/settings/EditUserScreen.js", + "id": "settings.user.form.accountType.non-profit", + "start": { + "column": 24, + "line": 34 + } + }, + { + "defaultMessage": "!!!Company", + "end": { + "column": 3, + "line": 41 + }, + "file": "src/containers/settings/EditUserScreen.js", + "id": "settings.user.form.accountType.company", + "start": { + "column": 22, + "line": 38 + } + }, + { + "defaultMessage": "!!!Current password", + "end": { + "column": 3, + "line": 45 + }, + "file": "src/containers/settings/EditUserScreen.js", + "id": "settings.user.form.currentPassword", + "start": { + "column": 19, + "line": 42 + } + }, + { + "defaultMessage": "!!!New password", + "end": { + "column": 3, + "line": 49 + }, + "file": "src/containers/settings/EditUserScreen.js", + "id": "settings.user.form.newPassword", + "start": { + "column": 15, + "line": 46 + } + } + ], + "path": "src/containers/settings/EditUserScreen.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Please purchase license to skip waiting", + "end": { + "column": 3, + "line": 18 + }, + "file": "src/features/delayApp/Component.js", + "id": "feature.delayApp.headline", + "start": { + "column": 12, + "line": 15 + } + }, + { + "defaultMessage": "!!!Get a Franz Supporter License", + "end": { + "column": 3, + "line": 22 + }, + "file": "src/features/delayApp/Component.js", + "id": "feature.delayApp.action", + "start": { + "column": 10, + "line": 19 + } + }, + { + "defaultMessage": "!!!Franz will continue in {seconds} seconds.", + "end": { + "column": 3, + "line": 26 + }, + "file": "src/features/delayApp/Component.js", + "id": "feature.delayApp.text", + "start": { + "column": 8, + "line": 23 + } + } + ], + "path": "src/features/delayApp/Component.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Franz is better together!", + "end": { + "column": 3, + "line": 18 + }, + "file": "src/features/shareFranz/Component.js", + "id": "feature.shareFranz.headline", + "start": { + "column": 12, + "line": 15 + } + }, + { + "defaultMessage": "!!!Tell your friends and colleagues how awesome Franz is and help us to spread the word.", + "end": { + "column": 3, + "line": 22 + }, + "file": "src/features/shareFranz/Component.js", + "id": "feature.shareFranz.text", + "start": { + "column": 8, + "line": 19 + } + }, + { + "defaultMessage": "!!!Share as email", + "end": { + "column": 3, + "line": 26 + }, + "file": "src/features/shareFranz/Component.js", + "id": "feature.shareFranz.action.email", + "start": { + "column": 16, + "line": 23 + } + }, + { + "defaultMessage": "!!!Share on Facebook", + "end": { + "column": 3, + "line": 30 + }, + "file": "src/features/shareFranz/Component.js", + "id": "feature.shareFranz.action.facebook", + "start": { + "column": 19, + "line": 27 + } + }, + { + "defaultMessage": "!!!Share on Twitter", + "end": { + "column": 3, + "line": 34 + }, + "file": "src/features/shareFranz/Component.js", + "id": "feature.shareFranz.action.twitter", + "start": { + "column": 18, + "line": 31 + } + }, + { + "defaultMessage": "!!! I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "end": { + "column": 3, + "line": 38 + }, + "file": "src/features/shareFranz/Component.js", + "id": "feature.shareFranz.shareText.email", + "start": { + "column": 18, + "line": 35 + } + }, + { + "defaultMessage": "!!! I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com /cc @MeetFranz", + "end": { + "column": 3, + "line": 42 + }, + "file": "src/features/shareFranz/Component.js", + "id": "feature.shareFranz.shareText.twitter", + "start": { + "column": 20, + "line": 39 + } + } + ], + "path": "src/features/shareFranz/Component.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Field is required", + "end": { + "column": 3, + "line": 7 + }, + "file": "src/helpers/validation-helpers.js", + "id": "validation.required", + "start": { + "column": 12, + "line": 4 + } + }, + { + "defaultMessage": "!!!Email not valid", + "end": { + "column": 3, + "line": 11 + }, + "file": "src/helpers/validation-helpers.js", + "id": "validation.email", + "start": { + "column": 9, + "line": 8 + } + }, + { + "defaultMessage": "!!!Not a valid URL", + "end": { + "column": 3, + "line": 15 + }, + "file": "src/helpers/validation-helpers.js", + "id": "validation.url", + "start": { + "column": 7, + "line": 12 + } + }, + { + "defaultMessage": "!!!Too few characters", + "end": { + "column": 3, + "line": 19 + }, + "file": "src/helpers/validation-helpers.js", + "id": "validation.minLength", + "start": { + "column": 13, + "line": 16 + } + }, + { + "defaultMessage": "!!!At least one is required", + "end": { + "column": 3, + "line": 23 + }, + "file": "src/helpers/validation-helpers.js", + "id": "validation.oneRequired", + "start": { + "column": 15, + "line": 20 + } + } + ], + "path": "src/helpers/validation-helpers.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Can't connect to Franz Online Services", + "end": { + "column": 3, + "line": 7 + }, + "file": "src/i18n/globalMessages.js", + "id": "global.api.unhealthy", + "start": { + "column": 16, + "line": 4 + } + }, + { + "defaultMessage": "!!!You are not connected to the internet.", + "end": { + "column": 3, + "line": 11 + }, + "file": "src/i18n/globalMessages.js", + "id": "global.notConnectedToTheInternet", + "start": { + "column": 29, + "line": 8 + } + }, + { + "defaultMessage": "!!!Spell checking language", + "end": { + "column": 3, + "line": 15 + }, + "file": "src/i18n/globalMessages.js", + "id": "global.spellchecking.language", + "start": { + "column": 24, + "line": 12 + } + }, + { + "defaultMessage": "!!!Use System Default ({default})", + "end": { + "column": 3, + "line": 19 + }, + "file": "src/i18n/globalMessages.js", + "id": "global.spellchecker.useDefault", + "start": { + "column": 29, + "line": 16 + } + }, + { + "defaultMessage": "!!!Detect language automatically", + "end": { + "column": 3, + "line": 23 + }, + "file": "src/i18n/globalMessages.js", + "id": "global.spellchecking.autodetect", + "start": { + "column": 34, + "line": 20 + } + }, + { + "defaultMessage": "!!!Automatic", + "end": { + "column": 3, + "line": 27 + }, + "file": "src/i18n/globalMessages.js", + "id": "global.spellchecking.autodetect.short", + "start": { + "column": 39, + "line": 24 + } + } + ], + "path": "src/i18n/globalMessages.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Edit", + "end": { + "column": 3, + "line": 13 + }, + "file": "src/lib/Menu.js", + "id": "menu.edit", + "start": { + "column": 8, + "line": 10 + } + }, + { + "defaultMessage": "!!!Undo", + "end": { + "column": 3, + "line": 17 + }, + "file": "src/lib/Menu.js", + "id": "menu.edit.undo", + "start": { + "column": 8, + "line": 14 + } + }, + { + "defaultMessage": "!!!Redo", + "end": { + "column": 3, + "line": 21 + }, + "file": "src/lib/Menu.js", + "id": "menu.edit.redo", + "start": { + "column": 8, + "line": 18 + } + }, + { + "defaultMessage": "!!!Cut", + "end": { + "column": 3, + "line": 25 + }, + "file": "src/lib/Menu.js", + "id": "menu.edit.cut", + "start": { + "column": 7, + "line": 22 + } + }, + { + "defaultMessage": "!!!Copy", + "end": { + "column": 3, + "line": 29 + }, + "file": "src/lib/Menu.js", + "id": "menu.edit.copy", + "start": { + "column": 8, + "line": 26 + } + }, + { + "defaultMessage": "!!!Paste", + "end": { + "column": 3, + "line": 33 + }, + "file": "src/lib/Menu.js", + "id": "menu.edit.paste", + "start": { + "column": 9, + "line": 30 + } + }, + { + "defaultMessage": "!!!Paste And Match Style", + "end": { + "column": 3, + "line": 37 + }, + "file": "src/lib/Menu.js", + "id": "menu.edit.pasteAndMatchStyle", + "start": { + "column": 22, + "line": 34 + } + }, + { + "defaultMessage": "!!!Delete", + "end": { + "column": 3, + "line": 41 + }, + "file": "src/lib/Menu.js", + "id": "menu.edit.delete", + "start": { + "column": 10, + "line": 38 + } + }, + { + "defaultMessage": "!!!Select All", + "end": { + "column": 3, + "line": 45 + }, + "file": "src/lib/Menu.js", + "id": "menu.edit.selectAll", + "start": { + "column": 13, + "line": 42 + } + }, + { + "defaultMessage": "!!!Speech", + "end": { + "column": 3, + "line": 49 + }, + "file": "src/lib/Menu.js", + "id": "menu.edit.speech", + "start": { + "column": 10, + "line": 46 + } + }, + { + "defaultMessage": "!!!Start Speaking", + "end": { + "column": 3, + "line": 53 + }, + "file": "src/lib/Menu.js", + "id": "menu.edit.startSpeaking", + "start": { + "column": 17, + "line": 50 + } + }, + { + "defaultMessage": "!!!Stop Speaking", + "end": { + "column": 3, + "line": 57 + }, + "file": "src/lib/Menu.js", + "id": "menu.edit.stopSpeaking", + "start": { + "column": 16, + "line": 54 + } + }, + { + "defaultMessage": "!!!Start Dictation", + "end": { + "column": 3, + "line": 61 + }, + "file": "src/lib/Menu.js", + "id": "menu.edit.startDictation", + "start": { + "column": 18, + "line": 58 + } + }, + { + "defaultMessage": "!!!Emoji & Symbols", + "end": { + "column": 3, + "line": 65 + }, + "file": "src/lib/Menu.js", + "id": "menu.edit.emojiSymbols", + "start": { + "column": 16, + "line": 62 + } + }, + { + "defaultMessage": "!!!Actual Size", + "end": { + "column": 3, + "line": 69 + }, + "file": "src/lib/Menu.js", + "id": "menu.view.resetZoom", + "start": { + "column": 13, + "line": 66 + } + }, + { + "defaultMessage": "!!!Zoom In", + "end": { + "column": 3, + "line": 73 + }, + "file": "src/lib/Menu.js", + "id": "menu.view.zoomIn", + "start": { + "column": 10, + "line": 70 + } + }, + { + "defaultMessage": "!!!Zoom Out", + "end": { + "column": 3, + "line": 77 + }, + "file": "src/lib/Menu.js", + "id": "menu.view.zoomOut", + "start": { + "column": 11, + "line": 74 + } + }, + { + "defaultMessage": "!!!Enter Full Screen", + "end": { + "column": 3, + "line": 81 + }, + "file": "src/lib/Menu.js", + "id": "menu.view.enterFullScreen", + "start": { + "column": 19, + "line": 78 + } + }, + { + "defaultMessage": "!!!Exit Full Screen", + "end": { + "column": 3, + "line": 85 + }, + "file": "src/lib/Menu.js", + "id": "menu.view.exitFullScreen", + "start": { + "column": 18, + "line": 82 + } + }, + { + "defaultMessage": "!!!Toggle Full Screen", + "end": { + "column": 3, + "line": 89 + }, + "file": "src/lib/Menu.js", + "id": "menu.view.toggleFullScreen", + "start": { + "column": 20, + "line": 86 + } + }, + { + "defaultMessage": "!!!Toggle Developer Tools", + "end": { + "column": 3, + "line": 93 + }, + "file": "src/lib/Menu.js", + "id": "menu.view.toggleDevTools", + "start": { + "column": 18, + "line": 90 + } + }, + { + "defaultMessage": "!!!Toggle Service Developer Tools", + "end": { + "column": 3, + "line": 97 + }, + "file": "src/lib/Menu.js", + "id": "menu.view.toggleServiceDevTools", + "start": { + "column": 25, + "line": 94 + } + }, + { + "defaultMessage": "!!!Reload Service", + "end": { + "column": 3, + "line": 101 + }, + "file": "src/lib/Menu.js", + "id": "menu.view.reloadService", + "start": { + "column": 17, + "line": 98 + } + }, + { + "defaultMessage": "!!!Reload Franz", + "end": { + "column": 3, + "line": 105 + }, + "file": "src/lib/Menu.js", + "id": "menu.view.reloadFranz", + "start": { + "column": 15, + "line": 102 + } + }, + { + "defaultMessage": "!!!Minimize", + "end": { + "column": 3, + "line": 109 + }, + "file": "src/lib/Menu.js", + "id": "menu.window.minimize", + "start": { + "column": 12, + "line": 106 + } + }, + { + "defaultMessage": "!!!Close", + "end": { + "column": 3, + "line": 113 + }, + "file": "src/lib/Menu.js", + "id": "menu.window.close", + "start": { + "column": 9, + "line": 110 + } + }, + { + "defaultMessage": "!!!Learn More", + "end": { + "column": 3, + "line": 117 + }, + "file": "src/lib/Menu.js", + "id": "menu.help.learnMore", + "start": { + "column": 13, + "line": 114 + } + }, + { + "defaultMessage": "!!!Changelog", + "end": { + "column": 3, + "line": 121 + }, + "file": "src/lib/Menu.js", + "id": "menu.help.changelog", + "start": { + "column": 13, + "line": 118 + } + }, + { + "defaultMessage": "!!!Support", + "end": { + "column": 3, + "line": 125 + }, + "file": "src/lib/Menu.js", + "id": "menu.help.support", + "start": { + "column": 11, + "line": 122 + } + }, + { + "defaultMessage": "!!!Terms of Service", + "end": { + "column": 3, + "line": 129 + }, + "file": "src/lib/Menu.js", + "id": "menu.help.tos", + "start": { + "column": 7, + "line": 126 + } + }, + { + "defaultMessage": "!!!Privacy Statement", + "end": { + "column": 3, + "line": 133 + }, + "file": "src/lib/Menu.js", + "id": "menu.help.privacy", + "start": { + "column": 11, + "line": 130 + } + }, + { + "defaultMessage": "!!!File", + "end": { + "column": 3, + "line": 137 + }, + "file": "src/lib/Menu.js", + "id": "menu.file", + "start": { + "column": 8, + "line": 134 + } + }, + { + "defaultMessage": "!!!View", + "end": { + "column": 3, + "line": 141 + }, + "file": "src/lib/Menu.js", + "id": "menu.view", + "start": { + "column": 8, + "line": 138 + } + }, + { + "defaultMessage": "!!!Services", + "end": { + "column": 3, + "line": 145 + }, + "file": "src/lib/Menu.js", + "id": "menu.services", + "start": { + "column": 12, + "line": 142 + } + }, + { + "defaultMessage": "!!!Window", + "end": { + "column": 3, + "line": 149 + }, + "file": "src/lib/Menu.js", + "id": "menu.window", + "start": { + "column": 10, + "line": 146 + } + }, + { + "defaultMessage": "!!!Help", + "end": { + "column": 3, + "line": 153 + }, + "file": "src/lib/Menu.js", + "id": "menu.help", + "start": { + "column": 8, + "line": 150 + } + }, + { + "defaultMessage": "!!!About Franz", + "end": { + "column": 3, + "line": 157 + }, + "file": "src/lib/Menu.js", + "id": "menu.app.about", + "start": { + "column": 9, + "line": 154 + } + }, + { + "defaultMessage": "!!!Settings", + "end": { + "column": 3, + "line": 161 + }, + "file": "src/lib/Menu.js", + "id": "menu.app.settings", + "start": { + "column": 12, + "line": 158 + } + }, + { + "defaultMessage": "!!!Hide", + "end": { + "column": 3, + "line": 165 + }, + "file": "src/lib/Menu.js", + "id": "menu.app.hide", + "start": { + "column": 8, + "line": 162 + } + }, + { + "defaultMessage": "!!!Hide Others", + "end": { + "column": 3, + "line": 169 + }, + "file": "src/lib/Menu.js", + "id": "menu.app.hideOthers", + "start": { + "column": 14, + "line": 166 + } + }, + { + "defaultMessage": "!!!Unhide", + "end": { + "column": 3, + "line": 173 + }, + "file": "src/lib/Menu.js", + "id": "menu.app.unhide", + "start": { + "column": 10, + "line": 170 + } + }, + { + "defaultMessage": "!!!Quit", + "end": { + "column": 3, + "line": 177 + }, + "file": "src/lib/Menu.js", + "id": "menu.app.quit", + "start": { + "column": 8, + "line": 174 + } + }, + { + "defaultMessage": "!!!Add New Service...", + "end": { + "column": 3, + "line": 181 + }, + "file": "src/lib/Menu.js", + "id": "menu.services.addNewService", + "start": { + "column": 17, + "line": 178 + } + }, + { + "defaultMessage": "!!!Activate next service...", + "end": { + "column": 3, + "line": 185 + }, + "file": "src/lib/Menu.js", + "id": "menu.services.setNextServiceActive", + "start": { + "column": 23, + "line": 182 + } + }, + { + "defaultMessage": "!!!Activate previous service...", + "end": { + "column": 3, + "line": 189 + }, + "file": "src/lib/Menu.js", + "id": "menu.services.activatePreviousService", + "start": { + "column": 27, + "line": 186 + } + }, + { + "defaultMessage": "!!!Disable notifications & audio", + "end": { + "column": 3, + "line": 193 + }, + "file": "src/lib/Menu.js", + "id": "sidebar.muteApp", + "start": { + "column": 11, + "line": 190 + } + }, + { + "defaultMessage": "!!!Enable notifications & audio", + "end": { + "column": 3, + "line": 197 + }, + "file": "src/lib/Menu.js", + "id": "sidebar.unmuteApp", + "start": { + "column": 13, + "line": 194 + } + } + ], + "path": "src/lib/Menu.json" + } +] \ No newline at end of file diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json index 671eecd41..626abfddd 100644 --- a/src/i18n/locales/el.json +++ b/src/i18n/locales/el.json @@ -1,11 +1,22 @@ { "app.errorHandler.action" : "Επαναφόρτωση", - "app.errorHandler.headline" : "Something went wrong", + "app.errorHandler.headline" : "Κάτι δεν λειτουργεί", "feature.delayApp.action" : "Get a Franz Supporter License", "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", - "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", + "feature.delayApp.text" : "Franz θα συνεχίσει σε {seconds} δευτερόλεπτα.", + "feature.shareFranz.action.email" : "Send as email", + "feature.shareFranz.action.facebook" : "Share on Facebook", + "feature.shareFranz.action.twitter" : "Share on Twitter", + "feature.shareFranz.headline" : "Franz is better together!", + "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", "global.api.unhealthy" : "Δεν είναι δυνατή η σύνδεση με τις ζωντανές υπηρεσίες του Franz", "global.notConnectedToTheInternet" : "Έχετε αποσυνδεθεί από το Διαδίκτυο", + "global.spellchecker.useDefault" : "Use System Default ({default})", + "global.spellchecking.autodetect" : "Detect language automatically", + "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.language" : "Spell checking language", "import.headline" : "Εισαγάγετε τις υπηρεσίες σας Franz 4", "import.notSupportedHeadline" : "Υπηρεσίες που δεν υποστηρίζονται ακόμα στο Franz 5", "import.skip.label" : "Θέλω να προσθέσω υπηρεσίες χειροκίνητα", @@ -59,7 +70,9 @@ "menu.help.support" : "Υποστήριξη", "menu.help.tos" : "Όροι Χρήσης", "menu.services" : "Υπηρεσίες", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Νέα Υπηρεσία", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Προβολή", "menu.view.enterFullScreen" : "Πλήρης Οθόνη", "menu.view.exitFullScreen" : "Έξοδος από πλήρη οθόνη", @@ -117,6 +130,7 @@ "settings.account.invoiceDownload" : "Λήψη", "settings.account.manageSubscription.label" : "Διαχείριση της συνδρομής σας", "settings.account.successInfo" : "Οι αλλαγές σας έχουν αποθηκευτεί", + "settings.account.tryReloadServices" : "Δοκιμάστε ξανά", "settings.account.tryReloadUserInfoRequest" : "Δοκιμάστε ξανά", "settings.account.userInfoRequestFailed" : "Δεν ήταν δυνατή η φόρτωση πληροφοριών χρήστη", "settings.app.buttonClearAllCache" : "Καθαρισμός λανθάνουσας μνήμης", @@ -129,16 +143,13 @@ "settings.app.form.beta" : "Συμπεριλάβετε εκδόσεις beta", "settings.app.form.darkMode" : "Join the Dark Side", "settings.app.form.enableGPUAcceleration" : "Ενεργοποιήση Ενίσχυσης GPU ", - "settings.app.form.enableMenuBar" : "Εμφάνιση Γραμμής Μενού Franz", "settings.app.form.enableSpellchecking" : "Ενεργοποίηση ορθογραφικού ελέγχου", "settings.app.form.enableSystemTray" : "Εμφάνιση του Franz στη γραμμή ειδοποιήσεων", - "settings.app.form.hideDockIcon" : "Απόκρυψη εικονιδίου Franz", "settings.app.form.language" : "Γλώσσα", "settings.app.form.minimizeToSystemTray" : "Ελαχιστοποίηση του Franz στη γραμμή ειδοποιήσεων", "settings.app.form.runInBackground" : "Κρατήστε το Franz στο παρασκήνιο κατά το κλείσιμο του παραθύρου", "settings.app.form.showDisabledServices" : "Προβολή καρτελών των απενεργοποιημένων υπηρεσιών", "settings.app.form.showMessagesBadgesWhenMuted" : "Προβολή του εικονιδίου μη αναγνωσμένου μηνύματος όταν οι ειδοποιήσεις είναι απενεργοποιημένες", - "settings.app.form.spellcheckerLanguage" : "Spell checking language", "settings.app.headline" : "Ρυθμίσεις", "settings.app.headlineAdvanced" : "Για προχωρημένους", "settings.app.headlineAppearance" : "Εμφάνιση", @@ -201,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", "settings.service.form.proxy.user" : "User (optional)", "settings.service.form.saveButton" : "Αποθήκευση υπηρεσίας", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Φιλοξενείται", "settings.service.form.tabOnPremise" : "Αυτο-φιλοξενείται ⭐️", "settings.service.form.team" : "Ομάδα", @@ -212,6 +221,7 @@ "settings.services.discoverServices" : "Ανακαλύψτε υπηρεσίες", "settings.services.headline" : "Οι υπηρεσίες σας", "settings.services.noServicesAdded" : "Δεν έχετε προσθέσει ακόμα υπηρεσίες.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Η υπηρεσία είναι απενεργοποιημένη", "settings.services.tooltip.isMuted" : "Όλοι οι ήχοι είναι απενεργοποιημένοι", "settings.services.tooltip.notificationsDisabled" : "Οι ειδοποιήσεις είναι απενεργοποιημένες", @@ -244,9 +254,7 @@ "subscription.euTaxInfo" : "Πολίτες Ε.Ε.: Στις τιμές δεν περιλαμβάνονται τυχόν φόροι και άλλες τοπικές επιβαρύνσεις", "subscription.features.ads" : "Τέλος στις διαφημίσεις", "subscription.features.comingSoon" : "σύντομα", - "subscription.features.encryptedSync" : "Κρυπτογραφημένος συγχρονισμός περιόδου σύνδεσης", "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "Add on-premise \/ hosted services όπως το HipChat", "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", "subscription.features.proxy" : "Proxy support for services", "subscription.features.spellchecker" : "Support for spellchecker", @@ -269,9 +277,9 @@ "tabs.item.reload" : "Επαναφόρτωση", "validation.email" : "{field} δεν είναι έγκυρο", "validation.minLength" : "{field} πρέπει να είναι τουλάχιστον {length} χαρακτήρες", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} είναι υποχρεωτικό", "validation.url" : "{field} δεν είναι έγκυρος σύνδεσμος URL", "welcome.loginButton" : "Σύνδεση στο λογαριασμό σας", - "welcome.signupButton" : "Δημιουργία δωρεάν λογαριασμού", - "welcome.slogan" : "Επικοινωνία που λειτουργεί για εσάς" + "welcome.signupButton" : "Δημιουργία δωρεάν λογαριασμού" } diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 4e0c5575d..7543d38bd 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -1,281 +1,285 @@ { + "app.errorHandler.action": "Reload", + "app.errorHandler.headline": "Something went wrong", + "feature.delayApp.action": "Get a Franz Supporter License", + "feature.delayApp.headline": "Please purchase a Franz Supporter License to skip waiting", + "feature.delayApp.text": "Franz will continue in {seconds} seconds.", + "feature.shareFranz.action.email": "Send as email", + "feature.shareFranz.action.facebook": "Share on Facebook", + "feature.shareFranz.action.twitter": "Share on Twitter", + "feature.shareFranz.headline": "Franz is better together!", + "feature.shareFranz.shareText.email": "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter": "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com /cc @MeetFranz", + "feature.shareFranz.text": "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", "global.api.unhealthy": "Can't connect to Franz online services", "global.notConnectedToTheInternet": "You are not connected to the internet.", - "global.spellchecking.language": "Spell checking language", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Detect language automatically", "global.spellchecking.autodetect.short": "Automatic", - "welcome.signupButton": "Create a free account", - "welcome.loginButton": "Login to your account", - "welcome.slogan": "Messaging that works for you", - "login.headline": "Sign in", + "global.spellchecking.language": "Spell checking language", + "import.headline": "Import your Franz 4 services", + "import.notSupportedHeadline": "Services not yet supported in Franz 5", + "import.skip.label": "I want to add services manually", + "import.submit.label": "Import services", + "infobar.buttonChangelog": "What is new?", + "infobar.buttonInstallUpdate": "Restart & install update", + "infobar.buttonReloadServices": "Reload services", + "infobar.requiredRequestsFailed": "Could not load services and user information", + "infobar.servicesUpdated": "Your services have been updated.", + "infobar.updateAvailable": "A new update for Franz is available.", + "invite.email.label": "Email address", + "invite.headline.friends": "Invite 3 of your friends or colleagues", + "invite.name.label": "Name", + "invite.skip.label": "I want to do this later", + "invite.submit.label": "Send invites", + "invite.successInfo": "Invitations sent successfully", "login.email.label": "Email address", + "login.headline": "Sign in", + "login.invalidCredentials": "Email or password not valid", + "login.link.password": "Reset password", + "login.link.signup": "Create a free account", "login.password.label": "Password", + "login.serverLogout": "Your session expired, please login again.", "login.submit.label": "Sign in", - "login.invalidCredentials": "Email or password not valid", "login.tokenExpired": "Your session expired, please login again.", - "login.serverLogout": "Your session expired, please login again.", - "login.link.signup": "Create a free account", - "login.link.password": "Reset password", - "password.headline": "Reset password", + "menu.app.about": "About Franz", + "menu.app.hide": "Hide", + "menu.app.hideOthers": "Hide Others", + "menu.app.quit": "Quit", + "menu.app.settings": "Settings", + "menu.app.unhide": "Unhide", + "menu.edit": "Edit", + "menu.edit.copy": "Copy", + "menu.edit.cut": "Cut", + "menu.edit.delete": "Delete", + "menu.edit.emojiSymbols": "Emoji & Symbols", + "menu.edit.paste": "Paste", + "menu.edit.pasteAndMatchStyle": "Paste And Match Style", + "menu.edit.redo": "Redo", + "menu.edit.selectAll": "Select All", + "menu.edit.speech": "Speech", + "menu.edit.startDictation": "Start Dictation", + "menu.edit.startSpeaking": "Start Speaking", + "menu.edit.stopSpeaking": "Stop Speaking", + "menu.edit.undo": "Undo", + "menu.file": "File", + "menu.help": "Help", + "menu.help.changelog": "Changelog", + "menu.help.learnMore": "Learn More", + "menu.help.privacy": "Privacy Statement", + "menu.help.support": "Support", + "menu.help.tos": "Terms of Service", + "menu.services": "Services", + "menu.services.activatePreviousService": "Activate previous service", + "menu.services.addNewService": "Add New Service...", + "menu.services.setNextServiceActive": "Activate next service", + "menu.view": "View", + "menu.view.enterFullScreen": "Enter Full Screen", + "menu.view.exitFullScreen": "Exit Full Screen", + "menu.view.reloadFranz": "Reload Franz", + "menu.view.reloadService": "Reload Service", + "menu.view.resetZoom": "Actual Size", + "menu.view.toggleDevTools": "Toggle Developer Tools", + "menu.view.toggleFullScreen": "Toggle Full Screen", + "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", + "menu.view.zoomIn": "Zoom In", + "menu.view.zoomOut": "Zoom Out", + "menu.window": "Window", + "menu.window.close": "Close", + "menu.window.minimize": "Minimize", "password.email.label": "Email address", - "password.submit.label": "Submit", + "password.headline": "Reset password", + "password.link.login": "Sign in to your account", + "password.link.signup": "Create a free account", "password.noUser": "No user with that email address was found", + "password.submit.label": "Submit", "password.successInfo": "Please check your email", - "password.link.signup": "Create a free account", - "password.link.login": "Sign in to your account", - "signup.headline": "Sign up", - "signup.firstname.label": "First Name", - "signup.lastname.label": "Last Name", - "signup.email.label": "Email address", - "signup.company.label": "Company", - "signup.password.label": "Password", - "signup.submit.label": "Create account", - "signup.link.login": "Already have an account, sign in?", - "signup.emailDuplicate": "A user with that email address already exists", - "signup.legal.info": "By creating a Franz account you accept the", - "signup.legal.terms": "Terms of service", - "signup.legal.privacy": "Privacy Statement", + "premiumFeature.button.upgradeAccount": "Upgrade account", "pricing.headline": "Support Franz", - "pricing.support.label": "Select your support plan", - "pricing.submit.label": "I want to support the development of Franz", "pricing.link.skipPayment": "I don't want to support the development of Franz.", - "import.headline": "Import your Franz 4 services", - "import.notSupportedHeadline": "Services not yet supported in Franz 5", - "import.submit.label": "Import services", - "import.skip.label": "I want to add services manually", - "invite.submit.label": "Send invites", - "invite.headline.friends": "Invite 3 of your friends or colleagues", - "invite.name.label": "Name", - "invite.email.label": "Email address", - "invite.skip.label": "I want to do this later", - "invite.successInfo": "Invitations sent successfully", - "subscription.submit.label": "I want to support the development of Franz", - "subscription.paymentSessionError": "Could not initialize payment form", - "subscription.includedFeatures": "Paid Franz Premium Supporter Account includes", - "subscription.features.onpremise": "Add on-premise/hosted services like HipChat", - "subscription.features.onpremise.mattermost": "Add on-premise/hosted services like Mattermost", - "subscription.features.encryptedSync": "Encrypted session synchronization", - "subscription.features.proxy": "Proxy support for services", - "subscription.features.ads": "No ads, ever!", - "subscription.features.spellchecker": "Support for spellchecker", - "subscription.features.noInterruptions": "No app delays & nagging to upgrade license", - "subscription.features.comingSoon": "coming soon", - "infobar.servicesUpdated": "Your services have been updated.", - "infobar.updateAvailable": "A new update for Franz is available.", - "infobar.buttonReloadServices": "Reload services", - "infobar.buttonInstallUpdate": "Restart & install update", - "infobar.buttonChangelog": "What is new?", - "infobar.requiredRequestsFailed": "Could not load services and user information", - "sidebar.settings": "Settings", - "sidebar.addNewService": "Add new service", - "sidebar.muteApp": "Disable notifications & audio", - "sidebar.unmuteApp": "Enable notifications & audio", - "services.welcome": "Welcome to Franz", + "pricing.submit.label": "I want to support the development of Franz", + "pricing.support.label": "Select your support plan", + "service.crashHandler.action": "Reload {name}", + "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds", + "service.crashHandler.headline": "Oh no!", + "service.crashHandler.text": "{name} has caused an error.", + "service.disabledHandler.action": "Enable {name}", + "service.disabledHandler.headline": "{name} is disabled", + "service.errorHandler.action": "Reload {name}", + "service.errorHandler.editAction": "Edit {name}", + "service.errorHandler.headline": "Oh no!", + "service.errorHandler.message": "Error", + "service.errorHandler.text": "{name} has failed to load.", "services.getStarted": "Get started", - "settings.searchService": "Search service", - "settings.account.headline": "Account", - "settings.account.headlineSubscription": "Your subscription", - "settings.account.headlineUpgrade": "Upgrade your account & support Franz", - "settings.account.headlineInvoices": "Invoices", - "settings.account.headlineDangerZone": "Danger Zone", - "settings.account.manageSubscription.label": "Manage your subscription", + "services.welcome": "Welcome to Franz", + "settings.account.account.editButton": "Edit account", "settings.account.accountType.basic": "Basic Account", "settings.account.accountType.premium": "Premium Supporter Account", - "settings.account.account.editButton": "Edit account", - "settings.account.invoiceDownload": "Download", - "settings.account.userInfoRequestFailed": "Could not load user information", - "settings.account.tryReloadUserInfoRequest": "Try again", - "settings.account.headlineProfile": "Update profile", - "settings.account.headlineAccount": "Account information", - "settings.account.headlinePassword": "Change password", - "settings.account.successInfo": "Your changes have been saved", "settings.account.buttonSave": "Update profile", "settings.account.deleteAccount": "Delete account", - "settings.account.deleteInfo": "If you don't need your Franz account any longer, you can delete your account and all related data here.", "settings.account.deleteEmailSent": "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", + "settings.account.deleteInfo": "If you don't need your Franz account any longer, you can delete your account and all related data here.", + "settings.account.headline": "Account", + "settings.account.headlineAccount": "Account information", + "settings.account.headlineDangerZone": "Danger Zone", + "settings.account.headlineInvoices": "Invoices", + "settings.account.headlinePassword": "Change password", + "settings.account.headlineProfile": "Update profile", + "settings.account.headlineSubscription": "Your subscription", + "settings.account.headlineUpgrade": "Upgrade your account & support Franz", + "settings.account.invoiceDownload": "Download", + "settings.account.manageSubscription.label": "Manage your subscription", + "settings.account.successInfo": "Your changes have been saved", + "settings.account.tryReloadServices": "Try again", + "settings.account.tryReloadUserInfoRequest": "Try again", + "settings.account.userInfoRequestFailed": "Could not load user information", + "settings.app.buttonClearAllCache": "Clear cache", + "settings.app.buttonInstallUpdate": "Restart & install update", + "settings.app.buttonSearchForUpdate": "Check for updates", + "settings.app.cacheInfo": "Franz cache is currently using {size} of disk space.", + "settings.app.currentVersion": "Current version:", + "settings.app.form.autoLaunchInBackground": "Open in background", + "settings.app.form.autoLaunchOnStart": "Launch Franz on start", + "settings.app.form.beta": "Include beta versions", + "settings.app.form.darkMode": "Join the Dark Side", + "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", + "settings.app.form.enableSpellchecking": "Enable spell checking", + "settings.app.form.enableSystemTray": "Show Franz in system tray", + "settings.app.form.language": "Language", + "settings.app.form.minimizeToSystemTray": "Minimize Franz to system tray", + "settings.app.form.runInBackground": "Keep Franz in background when closing the window", + "settings.app.form.showDisabledServices": "Display disabled services tabs", + "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", + "settings.app.headline": "Settings", + "settings.app.headlineAdvanced": "Advanced", + "settings.app.headlineAppearance": "Appearance", + "settings.app.headlineGeneral": "General", + "settings.app.headlineLanguage": "Language", + "settings.app.headlineUpdates": "Updates", + "settings.app.restartRequired": "Changes require restart", + "settings.app.subheadlineCache": "Cache", + "settings.app.translationHelp": "Help us to translate Franz into your language.", + "settings.app.updateStatusAvailable": "Update available, downloading...", + "settings.app.updateStatusSearching": "Is searching for update", + "settings.app.updateStatusUpToDate": "You are using the latest version of Franz", "settings.invite.headline": "Invite Friends", - "settings.navigation.availableServices": "Available services", - "settings.navigation.yourServices": "Your services", "settings.navigation.account": "Account", - "settings.navigation.settings": "Settings", + "settings.navigation.availableServices": "Available services", "settings.navigation.inviteFriends": "Invite Friends", "settings.navigation.logout": "Logout", - "settings.recipes.headline": "Available services", - "settings.recipes.mostPopular": "Most popular", + "settings.navigation.settings": "Settings", + "settings.navigation.yourServices": "Your services", "settings.recipes.all": "All services", "settings.recipes.dev": "Development", + "settings.recipes.headline": "Available services", + "settings.recipes.missingService": "Missing a service?", + "settings.recipes.mostPopular": "Most popular", "settings.recipes.nothingFound": "Sorry, but no service matched your search term.", "settings.recipes.servicesSuccessfulAddedInfo": "Service successfully added", - "settings.recipes.missingService": "Missing a service?", - "settings.service.form.saveButton": "Save service", - "settings.service.form.deleteButton": "Delete service", - "settings.service.form.availableServices": "Available services", - "settings.service.form.yourServices": "Your services", + "settings.searchService": "Search service", + "settings.service.error.goBack": "Back to services", + "settings.service.error.headline": "Error", + "settings.service.error.message": "Could not load service recipe.", "settings.service.form.addServiceHeadline": "Add {name}", - "settings.service.form.editServiceHeadline": "Edit {name}", - "settings.service.form.tabHosted": "Hosted", - "settings.service.form.tabOnPremise": "Self hosted ⭐️", - "settings.service.form.useHostedService": "Use the hosted {name} service.", - "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.", + "settings.service.form.availableServices": "Available services", + "settings.service.form.customUrl": "Custom server", "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Franz Premium Supporter Account.", "settings.service.form.customUrlUpgradeAccount": "Upgrade your account", - "settings.service.form.indirectMessageInfo": "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", - "settings.service.form.name": "Name", - "settings.service.form.enableService": "Enable service", - "settings.service.form.enableNotification": "Enable notifications", - "settings.service.form.enableBadge": "Show unread message badges", - "settings.service.form.team": "Team", - "settings.service.form.customUrl": "Custom server", - "settings.service.form.indirectMessages": "Show message badge for all new messages", + "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.", + "settings.service.form.deleteButton": "Delete service", + "settings.service.form.editServiceHeadline": "Edit {name}", "settings.service.form.enableAudio": "Enable audio", - "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", - "settings.service.form.headlineNotifications": "Notifications", + "settings.service.form.enableBadge": "Show unread message badges", + "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.enableNotification": "Enable notifications", + "settings.service.form.enableService": "Enable service", "settings.service.form.headlineBadges": "Unread message badges", "settings.service.form.headlineGeneral": "General", + "settings.service.form.headlineNotifications": "Notifications", "settings.service.form.icon": "Custom icon", "settings.service.form.iconDelete": "Delete", "settings.service.form.iconUpload": "Drop your image, or click here", - "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.indirectMessageInfo": "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", + "settings.service.form.indirectMessages": "Show message badge for all new messages", + "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", + "settings.service.form.name": "Name", "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", - "settings.service.form.proxy.isEnabled": "Use Proxy", "settings.service.form.proxy.host": "Proxy Host/IP", - "settings.service.form.proxy.port": "Port", - "settings.service.form.proxy.user": "User (optional)", - "settings.service.form.proxy.password": "Password (optional)", "settings.service.form.proxy.info": "Proxy settings will not synced with the Franz servers.", + "settings.service.form.proxy.isEnabled": "Use Proxy", + "settings.service.form.proxy.password": "Password (optional)", + "settings.service.form.proxy.port": "Port", "settings.service.form.proxy.restartInfo": "Please restart Franz after changing proxy Settings.", - "settings.service.form.spellcheckerLanguage": "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default": "Use System Default ({default})", - "settings.service.error.headline": "Error", - "settings.service.error.goBack": "Back to services", - "settings.service.error.message": "Could not load service recipe.", - "settings.services.tooltip.isDisabled": "Service is disabled", - "settings.services.tooltip.notificationsDisabled": "Notifications are disabled", - "settings.services.tooltip.isMuted": "All sounds are muted", + "settings.service.form.proxy.user": "User (optional)", + "settings.service.form.saveButton": "Save service", + "settings.service.form.tabHosted": "Hosted", + "settings.service.form.tabOnPremise": "Self hosted ⭐️", + "settings.service.form.team": "Team", + "settings.service.form.useHostedService": "Use the hosted {name} service.", + "settings.service.form.yourServices": "Your services", + "settings.services.deletedInfo": "Service has been deleted", + "settings.services.discoverServices": "Discover services", "settings.services.headline": "Your services", "settings.services.noServicesAdded": "You haven't added any services yet.", - "settings.services.discoverServices": "Discover services", + "settings.services.servicesRequestFailed": "Could not load your services", + "settings.services.tooltip.isDisabled": "Service is disabled", + "settings.services.tooltip.isMuted": "All sounds are muted", + "settings.services.tooltip.notificationsDisabled": "Notifications are disabled", "settings.services.updatedInfo": "Your changes have been saved", - "settings.services.deletedInfo": "Service has been deleted", - "settings.app.headline": "Settings", - "settings.app.headlineGeneral": "General", - "settings.app.headlineLanguage": "Language", - "settings.app.headlineUpdates": "Updates", - "settings.app.headlineAppearance": "Appearance", - "settings.app.headlineAdvanced": "Advanced", - "settings.app.buttonSearchForUpdate": "Check for updates", - "settings.app.buttonInstallUpdate": "Restart & install update", - "settings.app.updateStatusSearching": "Is searching for update", - "settings.app.updateStatusAvailable": "Update available, downloading...", - "settings.app.updateStatusUpToDate": "You are using the latest version of Franz", - "settings.app.subheadlineCache": "Cache", - "settings.app.cacheInfo": "Franz cache is currently using {size} of disk space.", - "settings.app.buttonClearAllCache": "Clear cache", - "settings.app.form.autoLaunchOnStart": "Launch Franz on start", - "settings.app.form.autoLaunchInBackground": "Open in background", - "settings.app.form.enableSystemTray": "Show Franz in system tray", - "settings.app.form.darkMode": "Join the Dark Side", - "settings.app.form.minimizeToSystemTray": "Minimize Franz to system tray", - "settings.app.form.enableMenuBar": "Show Franz in Menu Bar", - "settings.app.form.hideDockIcon": "Hide Franz icon in Dock", - "settings.app.form.runInBackground": "Keep Franz in background when closing the window", - "settings.app.form.language": "Language", - "settings.app.form.enableSpellchecking": "Enable spell checking", - "settings.app.form.spellcheckerLanguage": "Spell checking language", - "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", - "settings.app.form.showDisabledServices": "Display disabled services tabs", - "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", - "settings.app.form.beta": "Include beta versions", - "settings.app.translationHelp": "Help us to translate Franz into your language.", - "settings.app.currentVersion": "Current version:", - "settings.app.restartRequired": "Changes require restart", + "settings.user.form.accountType.company": "Company", + "settings.user.form.accountType.individual": "Individual", + "settings.user.form.accountType.label": "Account type", + "settings.user.form.accountType.non-profit": "Non-Profit", + "settings.user.form.currentPassword": "Current password", + "settings.user.form.email": "Email", "settings.user.form.firstname": "First Name", "settings.user.form.lastname": "Last Name", - "settings.user.form.email": "Email", - "settings.user.form.currentPassword": "Current password", "settings.user.form.newPassword": "New password", - "settings.user.form.accountType.label": "Account type", - "settings.user.form.accountType.individual": "Individual", - "settings.user.form.accountType.non-profit": "Non-Profit", - "settings.user.form.accountType.company": "Company", + "sidebar.addNewService": "Add new service", + "sidebar.muteApp": "Disable notifications & audio", + "sidebar.settings": "Settings", + "sidebar.unmuteApp": "Enable notifications & audio", + "signup.company.label": "Company", + "signup.email.label": "Email address", + "signup.emailDuplicate": "A user with that email address already exists", + "signup.firstname.label": "First Name", + "signup.headline": "Sign up", + "signup.lastname.label": "Last Name", + "signup.legal.info": "By creating a Franz account you accept the", + "signup.legal.privacy": "Privacy Statement", + "signup.legal.terms": "Terms of service", + "signup.link.login": "Already have an account, sign in?", + "signup.password.label": "Password", + "signup.submit.label": "Create account", + "subscription.euTaxInfo": "EU residents: local sales tax may apply", + "subscription.features.ads": "No ads, ever!", + "subscription.features.comingSoon": "coming soon", + "subscription.features.noInterruptions": "No app delays & nagging to upgrade license", + "subscription.features.onpremise.mattermost": "Add on-premise/hosted services like Mattermost", + "subscription.features.proxy": "Proxy support for services", + "subscription.features.spellchecker": "Support for spellchecker", + "subscription.includedFeatures": "Paid Franz Premium Supporter Account includes", + "subscription.paymentSessionError": "Could not initialize payment form", + "subscription.submit.label": "I want to support the development of Franz", "subscription.type.free": "free", "subscription.type.month": "month", "subscription.type.year": "year", - "subscription.euTaxInfo": "EU residents: local sales tax may apply", "subscriptionPopup.buttonCancel": "Cancel", "subscriptionPopup.buttonDone": "Done", - "tabs.item.reload": "Reload", - "tabs.item.edit": "Edit", - "tabs.item.disableNotifications": "Disable notifications", - "tabs.item.enableNotification": "Enable notifications", + "tabs.item.deleteService": "Delete service", "tabs.item.disableAudio": "Disable audio", - "tabs.item.enableAudio": "Enable audio", + "tabs.item.disableNotifications": "Disable notifications", "tabs.item.disableService": "Disable service", + "tabs.item.edit": "Edit", + "tabs.item.enableAudio": "Enable audio", + "tabs.item.enableNotification": "Enable notifications", "tabs.item.enableService": "Enable service", - "tabs.item.deleteService": "Delete service", - "service.crashHandler.headline": "Oh no!", - "service.crashHandler.text": "{name} has caused an error.", - "service.crashHandler.action": "Reload {name}", - "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds", - "service.errorHandler.headline": "Oh no!", - "service.errorHandler.text": "{name} has failed to load.", - "service.errorHandler.message": "Error", - "service.errorHandler.action": "Reload {name}", - "service.errorHandler.editAction": "Edit {name}", - "service.disabledHandler.headline": "{name} is disabled", - "service.disabledHandler.action": "Enable {name}", - "menu.edit": "Edit", - "menu.edit.undo": "Undo", - "menu.edit.redo": "Redo", - "menu.edit.cut": "Cut", - "menu.edit.copy": "Copy", - "menu.edit.paste": "Paste", - "menu.edit.pasteAndMatchStyle": "Paste And Match Style", - "menu.edit.delete": "Delete", - "menu.edit.selectAll": "Select All", - "menu.edit.speech": "Speech", - "menu.edit.startSpeaking": "Start Speaking", - "menu.edit.stopSpeaking": "Stop Speaking", - "menu.edit.startDictation": "Start Dictation", - "menu.edit.emojiSymbols": "Emoji & Symbols", - "menu.view.resetZoom": "Actual Size", - "menu.view.zoomIn": "Zoom In", - "menu.view.zoomOut": "Zoom Out", - "menu.view.enterFullScreen": "Enter Full Screen", - "menu.view.exitFullScreen": "Exit Full Screen", - "menu.view.toggleFullScreen": "Toggle Full Screen", - "menu.view.toggleDevTools": "Toggle Developer Tools", - "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", - "menu.view.reloadService": "Reload Service", - "menu.view.reloadFranz": "Reload Franz", - "menu.window.minimize": "Minimize", - "menu.window.close": "Close", - "menu.help.learnMore": "Learn More", - "menu.help.changelog": "Changelog", - "menu.help.support": "Support", - "menu.help.tos": "Terms of Service", - "menu.help.privacy": "Privacy Statement", - "menu.file": "File", - "menu.view": "View", - "menu.services": "Services", - "menu.window": "Window", - "menu.help": "Help", - "menu.app.about": "About Franz", - "menu.app.settings": "Settings", - "menu.app.hide": "Hide", - "menu.app.hideOthers": "Hide Others", - "menu.app.unhide": "Unhide", - "menu.app.quit": "Quit", - "menu.services.addNewService": "Add New Service...", - "validation.required": "{field} is required", + "tabs.item.reload": "Reload", "validation.email": "{field} is not valid", - "validation.url": "{field} is not a valid URL", "validation.minLength": "{field} should be at least {length} characters long", - "feature.delayApp.headline": "Please purchase a Franz Supporter License to skip waiting", - "feature.delayApp.action": "Get a Franz Supporter License", - "feature.delayApp.text": "Franz will continue in {seconds} seconds.", - "premiumFeature.button.upgradeAccount": "Upgrade account", - "app.errorHandler.headline": "Something went wrong", - "app.errorHandler.action": "Reload" -} + "validation.oneRequired": "At least one is required", + "validation.required": "{field} is required", + "validation.url": "{field} is not a valid URL", + "welcome.loginButton": "Login to your account", + "welcome.signupButton": "Create a free account" +} \ No newline at end of file diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 669b4d2dd..5c26b456c 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -1,11 +1,22 @@ { "app.errorHandler.action" : "Recargar", - "app.errorHandler.headline" : "Something went wrong", + "app.errorHandler.headline" : "Ha surgido un error", "feature.delayApp.action" : "Consigue una Licencia de Soporte de Franz", "feature.delayApp.headline" : "Por favor, compra una Licencia de Soporte de Franz para saltar la espera", - "feature.delayApp.text" : "Franz continuará en {seconds} segundos.", + "feature.delayApp.text" : "Franz continuará en {seconds} segundos.", + "feature.shareFranz.action.email" : "Send as email", + "feature.shareFranz.action.facebook" : "Compartir en Facebook", + "feature.shareFranz.action.twitter" : "Compartir en Twitter", + "feature.shareFranz.headline" : "Franz is better together!", + "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", "global.api.unhealthy" : "No es posible conectarse a los servicios en línea de Franz.", "global.notConnectedToTheInternet" : "No estás conectado a Internet", + "global.spellchecker.useDefault" : "Utilizar estándar del sistema ({default})", + "global.spellchecking.autodetect" : "Detect language automatically", + "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.language" : "Corrector de ortografía", "import.headline" : "Importa tus servicios de Franz 4", "import.notSupportedHeadline" : "Servicios no admitidos aún en Franz 5", "import.skip.label" : "Quiero agregar servicios manualmente", @@ -59,7 +70,9 @@ "menu.help.support" : "Ayuda técnica", "menu.help.tos" : "Términos del Servicio", "menu.services" : "Servicios", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Añadir Nuevo Servicio...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Mostrar", "menu.view.enterFullScreen" : "Pasar a pantalla completa", "menu.view.exitFullScreen" : "Salir de Pantalla Completa", @@ -96,7 +109,7 @@ "service.errorHandler.editAction" : "Editar {name}", "service.errorHandler.headline" : "¡Oh, no!", "service.errorHandler.message" : "Error", - "service.errorHandler.text" : "{name} has failed to load.", + "service.errorHandler.text" : "{name} ha fallado la carga", "services.getStarted" : "Primeros pasos", "services.welcome" : "Bienvenido a Franz", "settings.account.account.editButton" : "Editar cuenta", @@ -117,6 +130,7 @@ "settings.account.invoiceDownload" : "Descargar", "settings.account.manageSubscription.label" : "Administra tu suscripción", "settings.account.successInfo" : "Tus cambios han sido guardados", + "settings.account.tryReloadServices" : "Intentar de nuevo", "settings.account.tryReloadUserInfoRequest" : "Intentar de nuevo", "settings.account.userInfoRequestFailed" : "No se pudo cargar la información de usuario", "settings.app.buttonClearAllCache" : "Limpiar caché", @@ -129,16 +143,13 @@ "settings.app.form.beta" : "Incluir versiones beta", "settings.app.form.darkMode" : "Únete al Lado Oscuro", "settings.app.form.enableGPUAcceleration" : "Habilitar aceleración de GPU", - "settings.app.form.enableMenuBar" : "Mostrar a Franz en la barra de menús", "settings.app.form.enableSpellchecking" : "Activar corrección ortográfica", "settings.app.form.enableSystemTray" : "Mostrar Franz en la bandeja del sistema", - "settings.app.form.hideDockIcon" : "Ocultar Icono de Franz en barra de herramientas", "settings.app.form.language" : "Idioma", "settings.app.form.minimizeToSystemTray" : "Minimizar Franz a la bandeja del sistema", "settings.app.form.runInBackground" : "Mantener Franz en segundo plano al cerrar la ventana", "settings.app.form.showDisabledServices" : "Mostrar pestañas de servicios desactivados", "settings.app.form.showMessagesBadgesWhenMuted" : "Mostrar la insignia de mensajes sin leer cuando las notificaciones están desactivadas", - "settings.app.form.spellcheckerLanguage" : "Corrector de ortografía", "settings.app.headline" : "Configuración", "settings.app.headlineAdvanced" : "Avanzado", "settings.app.headlineAppearance" : "Apariencia", @@ -192,17 +203,15 @@ "settings.service.form.indirectMessages" : "Mostrar señal de notificación para todos los mensajes nuevos", "settings.service.form.isMutedInfo" : "Cuando estén desactivados, todos los sonidos de notificación y la reproducción de audio serán silenciados", "settings.service.form.name" : "Nombre", - "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", + "settings.service.form.proxy.headline" : "Ajustes Proxy HTTP\/HTTPS", "settings.service.form.proxy.host" : "Proxy Host\/IP", "settings.service.form.proxy.info" : "Las configuraciones de Proxy no se sincronizarán con los servidores de Franz.", "settings.service.form.proxy.isEnabled" : "Use Proxy", "settings.service.form.proxy.password" : "Contraseña (opcional)", - "settings.service.form.proxy.port" : "Port", - "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", + "settings.service.form.proxy.port" : "Puerto", + "settings.service.form.proxy.restartInfo" : "Por favor reinicie Franz despues de modificar los ajustes proxy.", "settings.service.form.proxy.user" : "Usuario (opcional)", "settings.service.form.saveButton" : "Guardar servicio", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Alojado", "settings.service.form.tabOnPremise" : "Auto alojado ⭐️", "settings.service.form.team" : "Equipo", @@ -212,6 +221,7 @@ "settings.services.discoverServices" : "Descubrir servicios", "settings.services.headline" : "Tus servicios", "settings.services.noServicesAdded" : "No has añadido ningún servicio aún.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "El servicio está desactivado", "settings.services.tooltip.isMuted" : "Todos los sonidos están silenciados", "settings.services.tooltip.notificationsDisabled" : "Las notificaciones están desactivadas", @@ -244,9 +254,7 @@ "subscription.euTaxInfo" : "Residentes de la UE: pueden aplicarse impuestos locales", "subscription.features.ads" : "¡Sin publicidad, para siempre!", "subscription.features.comingSoon" : "próximamente", - "subscription.features.encryptedSync" : "Sincronización de sesión encriptada", "subscription.features.noInterruptions" : "Sin retrasos en la app ni molestas actualizaciones de licencias", - "subscription.features.onpremise" : "Añade servicios locales\/autoalojados como HipChat", "subscription.features.onpremise.mattermost" : "Agregar servicios de almacenamiento como Mattermost", "subscription.features.proxy" : "Soporte Proxy para servicios", "subscription.features.spellchecker" : "Soporte para corrector de ortografía", @@ -269,9 +277,9 @@ "tabs.item.reload" : "Recargar", "validation.email" : "{field} no es válido", "validation.minLength" : "{field} debería tener al menos {length} caracteres", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} es obligatorio", "validation.url" : "{field} no es una URL válida", "welcome.loginButton" : "Accede a tu cuenta", - "welcome.signupButton" : "Crear una cuenta gratuita", - "welcome.slogan" : "Mensajería que funciona para ti" + "welcome.signupButton" : "Crear una cuenta gratuita" } diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index a83767f1e..6f9d81713 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -1,11 +1,22 @@ { "app.errorHandler.action" : "Recharger", - "app.errorHandler.headline" : "Une erreur s'est produite.", + "app.errorHandler.headline" : "Une erreur s'est produite", "feature.delayApp.action" : "Obtenez une licence de Supporter Franz", "feature.delayApp.headline" : "Veuillez acheter une licence de Supporter Franz pour sauter le temps d'attente", - "feature.delayApp.text" : "Franz continuera dans {seconds} secondes.", + "feature.delayApp.text" : "Franz reprendra dans {seconds} secondes.", + "feature.shareFranz.action.email" : "Envoyer par mail", + "feature.shareFranz.action.facebook" : "Partager sur Facebook", + "feature.shareFranz.action.twitter" : "Partager sur Twitter", + "feature.shareFranz.headline" : "Franz est meilleur quand on est tous ensemble !", + "feature.shareFranz.shareText.email" : "J'ai ajouté {count} services à Franz ! Télécharger l'appli gratuite pour WhatsApp, Messenger, Skype et cie sur www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "J'ai ajouté {count} services à Franz ! Télécharger l'appli gratuite pour WhatsApp, Messenger, Skype et cie sur www.meetfranz.com \/cc @NeetFranz", + "feature.shareFranz.text" : "Dites à vos amis et collègues combien Franz est super et aidez nous à faire passer le mot.", "global.api.unhealthy" : "Impossible de se connecter aux services en ligne de Franz", "global.notConnectedToTheInternet" : "Vous n'êtes pas connecté à Internet.", + "global.spellchecker.useDefault" : "Par défaut ({default})", + "global.spellchecking.autodetect" : "Detecter automatiquement la langue", + "global.spellchecking.autodetect.short" : "Automatiquement", + "global.spellchecking.language" : "Langue de la vérification orthographique", "import.headline" : "Importez vos services depuis la version 4 de Franz.", "import.notSupportedHeadline" : "Ces services ne sont pas encore supportés par Franz 5", "import.skip.label" : "Je veux ajouter des services manuellement", @@ -59,7 +70,9 @@ "menu.help.support" : "Support", "menu.help.tos" : "Conditions d'utilisation", "menu.services" : "Services", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Ajouter un nouveau service...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Aperçu", "menu.view.enterFullScreen" : "Entrer en mode plein écran", "menu.view.exitFullScreen" : "Sortir du mode plein écran", @@ -117,6 +130,7 @@ "settings.account.invoiceDownload" : "Télécharger", "settings.account.manageSubscription.label" : "Gérer votre abonnement", "settings.account.successInfo" : "Vos modifications ont été enregistrées", + "settings.account.tryReloadServices" : "Réessayer", "settings.account.tryReloadUserInfoRequest" : "Réessayer", "settings.account.userInfoRequestFailed" : "Impossible de charger les informations de l'utilisateur", "settings.app.buttonClearAllCache" : "Vider le cache", @@ -129,16 +143,13 @@ "settings.app.form.beta" : "Accepter les versions bêta", "settings.app.form.darkMode" : "Rejoins le côté obscur", "settings.app.form.enableGPUAcceleration" : "Activer l'accélération GPU", - "settings.app.form.enableMenuBar" : "Afficher Franz dans la barre des menus", "settings.app.form.enableSpellchecking" : "Activer la vérification orthographique", "settings.app.form.enableSystemTray" : "Afficher Franz dans la barre d'état système", - "settings.app.form.hideDockIcon" : "Masquer Franz dans le Dock", "settings.app.form.language" : "Langue", "settings.app.form.minimizeToSystemTray" : "Minimiser Franz dans la zone de notification", "settings.app.form.runInBackground" : "Garder Franz ouvert en arrière-plan à la fermeture de la fenêtre", "settings.app.form.showDisabledServices" : "Afficher les onglets des services désactivés", "settings.app.form.showMessagesBadgesWhenMuted" : "Afficher les badges de messages non lus quand les notifications sont désactivées.", - "settings.app.form.spellcheckerLanguage" : "Langue de la vérification orthographique", "settings.app.headline" : "Paramètres", "settings.app.headlineAdvanced" : "Paramètres avancés", "settings.app.headlineAppearance" : "Apparence", @@ -198,11 +209,9 @@ "settings.service.form.proxy.isEnabled" : "Utiliser un proxy", "settings.service.form.proxy.password" : "Mot de passe (facultatif)", "settings.service.form.proxy.port" : "Port", - "settings.service.form.proxy.restartInfo" : "Veuillez redémarrer Franz après avoir modifier les paramètres proxy.", + "settings.service.form.proxy.restartInfo" : "Veuillez redémarrer Franz après avoir modifié les paramètres proxy.", "settings.service.form.proxy.user" : "Utilisateur (facultatif)", "settings.service.form.saveButton" : "Enregistrer le service", - "settings.service.form.spellcheckerLanguage" : "Veuillez vérifier l'épellation Langage", - "settings.service.form.spellcheckerLanguage.default" : "Par défaut ({default})", "settings.service.form.tabHosted" : "Hébergé", "settings.service.form.tabOnPremise" : "Auto-hébergé ⭐️", "settings.service.form.team" : "Équipe", @@ -212,6 +221,7 @@ "settings.services.discoverServices" : "Découvrir les services", "settings.services.headline" : "Vos services", "settings.services.noServicesAdded" : "Vous n'avez pas encore ajouté de services.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Ce service est désactivé", "settings.services.tooltip.isMuted" : "Tous les sons sont coupés", "settings.services.tooltip.notificationsDisabled" : "Notifications désactivées.", @@ -244,9 +254,7 @@ "subscription.euTaxInfo" : "Résidents de l'UE : une taxe locale peut s'appliquer", "subscription.features.ads" : "Plus de pubs !", "subscription.features.comingSoon" : "Bientôt disponible", - "subscription.features.encryptedSync" : "Synchronisation de session cryptée", "subscription.features.noInterruptions" : "Aucun délai dans l'application ni de harcèlement pour mettre à niveau la licence", - "subscription.features.onpremise" : "Ajouter des services locaux\/hébergés comme HipChat", "subscription.features.onpremise.mattermost" : "Ajouter des services auto-hébergés comme Mattermost", "subscription.features.proxy" : "Support proxy pour les services", "subscription.features.spellchecker" : "Prise en charge du correcteur orthographique", @@ -269,9 +277,9 @@ "tabs.item.reload" : "Recharger", "validation.email" : "{field} n'est pas valide", "validation.minLength" : "{field} doit contenir au moins {length} caractère(s)", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} est requis", "validation.url" : "{field} n'est pas une URL valide", "welcome.loginButton" : "Se connecter sur son compte", - "welcome.signupButton" : "Créer un compte gratuit", - "welcome.slogan" : "Une messagerie qui fonctionne pour vous" + "welcome.signupButton" : "Créer un compte gratuit" } diff --git a/src/i18n/locales/ga.json b/src/i18n/locales/ga.json index 0d3d8623e..eb7c04491 100644 --- a/src/i18n/locales/ga.json +++ b/src/i18n/locales/ga.json @@ -4,8 +4,19 @@ "feature.delayApp.action" : "Get a Franz Supporter License", "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", + "feature.shareFranz.action.email" : "Send as email", + "feature.shareFranz.action.facebook" : "Share on Facebook", + "feature.shareFranz.action.twitter" : "Share on Twitter", + "feature.shareFranz.headline" : "Franz is better together!", + "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", "global.api.unhealthy" : "Ní féidir nascadh le seirbhísí Franz ar líne", "global.notConnectedToTheInternet" : "Níl tú nasctha leis an Idirlíon.", + "global.spellchecker.useDefault" : "Use System Default ({default})", + "global.spellchecking.autodetect" : "Detect language automatically", + "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.language" : "Spell checking language", "import.headline" : "Iompórtáil do sheirbhísí Franz 4", "import.notSupportedHeadline" : "Níl na seirbhísí seo taca ag Franz 5 go fóill", "import.skip.label" : "Ba mhaith liom seirbhísí a chur de láimh", @@ -59,7 +70,9 @@ "menu.help.support" : "Tacaíocht", "menu.help.tos" : "Téarmaí tagartha", "menu.services" : "Seirbhísí", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Cuir seirbhís nua leis", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Amharc", "menu.view.enterFullScreen" : "Cuir isteach mód lánscáileáin", "menu.view.exitFullScreen" : "Scoir mód lánscáileáin", @@ -117,6 +130,7 @@ "settings.account.invoiceDownload" : "Íoslódáil", "settings.account.manageSubscription.label" : "Bainistigh do shíntiús", "settings.account.successInfo" : "Sábháladh do chuid athruithe", + "settings.account.tryReloadServices" : "Atriail", "settings.account.tryReloadUserInfoRequest" : "Atriail", "settings.account.userInfoRequestFailed" : "Ní féidir eolas úsáideora a lódáil", "settings.app.buttonClearAllCache" : "Glan taisce", @@ -129,16 +143,13 @@ "settings.app.form.beta" : "Cuir leagain béite san áireamh", "settings.app.form.darkMode" : "Join the Dark Side", "settings.app.form.enableGPUAcceleration" : "Cumasaigh luasghéarú APG", - "settings.app.form.enableMenuBar" : "Taispeáin Franz sa bharra roghchláir", "settings.app.form.enableSpellchecking" : "Cumasaigh seiceáil litrithe", "settings.app.form.enableSystemTray" : "Taispeáin Franz i dtráidire an chórais", - "settings.app.form.hideDockIcon" : "Cuir íocóin Franz i bhfolach ón leaba nasctha", "settings.app.form.language" : "Teanga", "settings.app.form.minimizeToSystemTray" : "Íoslaghdaigh Franz chuig tráidire an chórais", "settings.app.form.runInBackground" : "Coimeád Franz sa chúlra nuair a dhúntar an fhuinneog", "settings.app.form.showDisabledServices" : "Taispeáin tabanna do sheirbhísí dhíchumasaithe", "settings.app.form.showMessagesBadgesWhenMuted" : "Taispeáin teachtaireachtaí neamhléite, nuair a dhíchumasaítear fógraí", - "settings.app.form.spellcheckerLanguage" : "Spell checking language", "settings.app.headline" : "Socruithe", "settings.app.headlineAdvanced" : "Casta", "settings.app.headlineAppearance" : "Dealramh", @@ -201,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", "settings.service.form.proxy.user" : "User (optional)", "settings.service.form.saveButton" : "Sábháil seirbhís", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Óstáilte", "settings.service.form.tabOnPremise" : "Féinóstáilte ⭐️", "settings.service.form.team" : "Foireann", @@ -212,6 +221,7 @@ "settings.services.discoverServices" : "Aimsigh seirbhísí", "settings.services.headline" : "Do sheirbhísí", "settings.services.noServicesAdded" : "Níl aon seirbhís curtha agat go fóill.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Seirbhís díchumasaithe", "settings.services.tooltip.isMuted" : "Tachtar gach fuaim", "settings.services.tooltip.notificationsDisabled" : "Fógraí dhíchumasaithe", @@ -244,9 +254,7 @@ "subscription.euTaxInfo" : "Áithritheoirí an tAÉ: is féidir cáin díolacháin áitiúla a chur i bhfeidhm", "subscription.features.ads" : "Fógraí ar bith, choíche!", "subscription.features.comingSoon" : "ag teacht go luath", - "subscription.features.encryptedSync" : "Sionchronú seisiúin chriptithe", "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "Cuir seirbhísí óstáilte ar nós HipChat leis", "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", "subscription.features.proxy" : "Proxy support for services", "subscription.features.spellchecker" : "Support for spellchecker", @@ -269,9 +277,9 @@ "tabs.item.reload" : "Athlódáil", "validation.email" : "Níl {field} neamhbhailí", "validation.minLength" : "Ba cheart go mbeadh {field} ar a laghad {length} charactar fada", + "validation.oneRequired" : "At least one is required", "validation.required" : "Tá {field} de dhíth", "validation.url" : "Ní AAA bhailí é {field}", "welcome.loginButton" : "Logáil isteach i do chuntas", - "welcome.signupButton" : "Cruthaigh cuntas nua", - "welcome.slogan" : "Teachtaireachtaí a oibríonn duitse" + "welcome.signupButton" : "Cruthaigh cuntas nua" } diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json index 2ff69755d..95920c4ce 100644 --- a/src/i18n/locales/hr.json +++ b/src/i18n/locales/hr.json @@ -4,8 +4,19 @@ "feature.delayApp.action" : "Get a Franz Supporter License", "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", + "feature.shareFranz.action.email" : "Send as email", + "feature.shareFranz.action.facebook" : "Share on Facebook", + "feature.shareFranz.action.twitter" : "Share on Twitter", + "feature.shareFranz.headline" : "Franz is better together!", + "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", "global.api.unhealthy" : "Nije se moguće povezati na Francove on-line servise. ", "global.notConnectedToTheInternet" : "Sada ste povezani s internetom. ", + "global.spellchecker.useDefault" : "Use System Default ({default})", + "global.spellchecking.autodetect" : "Detect language automatically", + "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.language" : "Spell checking language", "import.headline" : "Uvezite svoje Franc 4 servise. ", "import.notSupportedHeadline" : "Franc 5 trenutno ne podržava taj servis", "import.skip.label" : "Želim ručno dodati ove usluge", @@ -59,7 +70,9 @@ "menu.help.support" : "Support", "menu.help.tos" : "Terms of Service", "menu.services" : "Services", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Add New Service...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "View", "menu.view.enterFullScreen" : "Enter Full Screen", "menu.view.exitFullScreen" : "Exit Full Screen", @@ -117,6 +130,7 @@ "settings.account.invoiceDownload" : "Preuzmite", "settings.account.manageSubscription.label" : "Upravljajte pretplatama", "settings.account.successInfo" : "Vaše promjene su spremljene", + "settings.account.tryReloadServices" : "Pokušajte ponovno", "settings.account.tryReloadUserInfoRequest" : "Pokušajte ponovno", "settings.account.userInfoRequestFailed" : "Nije moguće učitati informacije o korisniku", "settings.app.buttonClearAllCache" : "Očisti memoriju", @@ -129,16 +143,13 @@ "settings.app.form.beta" : "Obuhvati i beta verzije", "settings.app.form.darkMode" : "Join the Dark Side", "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", - "settings.app.form.enableMenuBar" : "Prikaži Franz u traci izbornika", "settings.app.form.enableSpellchecking" : "Omogući provjeru pravopisa", "settings.app.form.enableSystemTray" : "Prikaži aplikaciju u sustavskoj traci", - "settings.app.form.hideDockIcon" : "Sakrij ikonu Franz u prostoru za obavijesti", "settings.app.form.language" : "Jezik", "settings.app.form.minimizeToSystemTray" : "Smanji Franca u sustavsku traku", "settings.app.form.runInBackground" : "Neka se Franc održava u pozadini i ako je prozor zatvoren", "settings.app.form.showDisabledServices" : "Prikaži ploče s onemogućenim servisima", "settings.app.form.showMessagesBadgesWhenMuted" : "Pokaži nepročitane značke poruka kad se obavještenja onemoguće", - "settings.app.form.spellcheckerLanguage" : "Spell checking language", "settings.app.headline" : "Postavke", "settings.app.headlineAdvanced" : "Napredne alatke", "settings.app.headlineAppearance" : "Izgled", @@ -201,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", "settings.service.form.proxy.user" : "User (optional)", "settings.service.form.saveButton" : "Sačuvaj uslugu\/e", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Hostovano", "settings.service.form.tabOnPremise" : "Samo-hostovano ⭐️", "settings.service.form.team" : "Tim", @@ -212,6 +221,7 @@ "settings.services.discoverServices" : "Pronađite usluge", "settings.services.headline" : "Vaše usluge", "settings.services.noServicesAdded" : "Još uvijek niste unijeli niti jednu uslugu.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Usluga je onemogućena. ", "settings.services.tooltip.isMuted" : "Svi zvukovi su onemogućeni. ", "settings.services.tooltip.notificationsDisabled" : "Obavijesti su onemogućene.", @@ -244,9 +254,7 @@ "subscription.euTaxInfo" : "EU državljani, upozerenje: Moguće taksiranje ", "subscription.features.ads" : "Bez reklama, doživotno!", "subscription.features.comingSoon" : "Dolazi uskoro", - "subscription.features.encryptedSync" : "Kodirano usklađivanje sesija.", "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "Dodajte pretpostavljeni\/hostirani servis kao što ima usluga HipChat ", "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", "subscription.features.proxy" : "Proxy support for services", "subscription.features.spellchecker" : "Support for spellchecker", @@ -269,9 +277,9 @@ "tabs.item.reload" : "Ponovno učitavanje", "validation.email" : "{field} is not valid", "validation.minLength" : "{field} should be at least {length} characters long", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} is required", "validation.url" : "{field} is not a valid URL", "welcome.loginButton" : "Prijavite se na račun", - "welcome.signupButton" : "Stvorite novi korisnički račun", - "welcome.slogan" : "Poruke koje su stvorene za tebe" + "welcome.signupButton" : "Stvorite novi korisnički račun" } diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json index 0b396cf3b..bce9a368e 100644 --- a/src/i18n/locales/hu.json +++ b/src/i18n/locales/hu.json @@ -1,11 +1,22 @@ { "app.errorHandler.action" : "Újratöltés", - "app.errorHandler.headline" : "Something went wrong", - "feature.delayApp.action" : "Get a Franz Supporter License", - "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", - "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", + "app.errorHandler.headline" : "Valami nem jött össze", + "feature.delayApp.action" : "Szerezz egy Franz Támogatói Liszencet", + "feature.delayApp.headline" : "Kérjük vásárolj egy Franc Támogatói Liszencet a várakozás átugrásához", + "feature.delayApp.text" : "A Franz továbblép {seconds} másodperc múlva.", + "feature.shareFranz.action.email" : "Send as email", + "feature.shareFranz.action.facebook" : "Share on Facebook", + "feature.shareFranz.action.twitter" : "Share on Twitter", + "feature.shareFranz.headline" : "Franz is better together!", + "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", "global.api.unhealthy" : "Nem lehet csatlakozni a Franz online szolgáltatáshoz", "global.notConnectedToTheInternet" : "Nincs hálózati kapcsolat.", + "global.spellchecker.useDefault" : "Rendszer alapbeállítás használata ({default})", + "global.spellchecking.autodetect" : "Detect language automatically", + "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.language" : "Helyesírás-ellenőrző nyelve", "import.headline" : "Importáld szolgáltatásaidat a Franz 4-ből", "import.notSupportedHeadline" : "Még nem támogatott szolgáltatások a Franz 5-ben", "import.skip.label" : "Manuálisan szeretném hozzáadni a szolgáltatásokat", @@ -51,7 +62,7 @@ "menu.edit.startSpeaking" : "Beszélgetés kezdeményezése", "menu.edit.stopSpeaking" : "Beszéd vége", "menu.edit.undo" : "Visszavonás", - "menu.file" : "fájl", + "menu.file" : "Fájl", "menu.help" : "Súgó", "menu.help.changelog" : "Változások listája", "menu.help.learnMore" : "Tudjon meg többet", @@ -59,16 +70,18 @@ "menu.help.support" : "Támogatás", "menu.help.tos" : "Felhasználói feltételek", "menu.services" : "Szolgáltatások", - "menu.services.addNewService" : "Új kiszolgáló hozzáadása", + "menu.services.activatePreviousService" : "Activate previous service", + "menu.services.addNewService" : "Új szolgáltatás hozzáadása...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Nézet", "menu.view.enterFullScreen" : "Kilépés a teljes képernyős módból", "menu.view.exitFullScreen" : "Kilépés a teljes képernyős módból", "menu.view.reloadFranz" : "Franz újrainditása", - "menu.view.reloadService" : "Kiszolgáló újraindítása", + "menu.view.reloadService" : "Szolgáltatás újraindítása", "menu.view.resetZoom" : "Tényleges méret", - "menu.view.toggleDevTools" : "fejlesztői eszközök bekapcsolása", - "menu.view.toggleFullScreen" : "Váltás Teljes képernyős módra", - "menu.view.toggleServiceDevTools" : "Kiszolgáló Fejlesztői Eszközök Bekapcsolása", + "menu.view.toggleDevTools" : "Fejlesztői eszközök ki\/bekapcsolása", + "menu.view.toggleFullScreen" : "Teljes képernyős mód ki\/bekapcsolása", + "menu.view.toggleServiceDevTools" : "Szolgáltatás Fejlesztői Eszközök ki\/bekapcsolása", "menu.view.zoomIn" : "Nagyítás", "menu.view.zoomOut" : "Kicsinyítés", "menu.window" : "Ablak", @@ -81,13 +94,13 @@ "password.noUser" : "Nem található felhasználó a megadott email címmel", "password.submit.label" : "Küldés", "password.successInfo" : "Ellenőrizd az email fiókodat", - "premiumFeature.button.upgradeAccount" : "Upgrade account", + "premiumFeature.button.upgradeAccount" : "Fiók frissítése", "pricing.headline" : "Támogasd a Franz-ot", "pricing.link.skipPayment" : "Nem szeretném támogatni a Franz fejlesztését.", - "pricing.submit.label" : "Támogatni szeretném a Franz fejlesztését.", + "pricing.submit.label" : "Támogatni szeretném a Franz fejlesztését", "pricing.support.label" : "Válaszd ki a támogatás módját", "service.crashHandler.action" : "{name} újratöltése", - "service.crashHandler.autoReload" : "Megpróbáljuk automatikusan helyreállítani {name}-t {seconds} mp-en belül", + "service.crashHandler.autoReload" : "{name} automatikusan helyreállítása {seconds} másodpercen belül", "service.crashHandler.headline" : "Jajj ne!", "service.crashHandler.text" : "{name} hibát okozott.", "service.disabledHandler.action" : "{name} engedélyezése", @@ -96,7 +109,7 @@ "service.errorHandler.editAction" : "{name} szerkesztése", "service.errorHandler.headline" : "Jajj ne!", "service.errorHandler.message" : "Hiba", - "service.errorHandler.text" : "{name} has failed to load.", + "service.errorHandler.text" : "{name} nem tudott betöltődni.", "services.getStarted" : "Kezdj hozzá", "services.welcome" : "Üdvözöl a Franz", "settings.account.account.editButton" : "Fiók szerkesztése", @@ -108,7 +121,7 @@ "settings.account.deleteInfo" : "Ha még nem szeretnéd fenntartani a Franz-fiókodat, akkor itt törölheted minden hozzá kapcsolódó adattal együtt.", "settings.account.headline" : "Fiók", "settings.account.headlineAccount" : "Fiókinformációk", - "settings.account.headlineDangerZone" : "Veszélyes terület, óvatosan!", + "settings.account.headlineDangerZone" : "Veszélyes terület", "settings.account.headlineInvoices" : "Számlák", "settings.account.headlinePassword" : "Jelszócsere", "settings.account.headlineProfile" : "Profil frissítése", @@ -117,28 +130,26 @@ "settings.account.invoiceDownload" : "Letöltés", "settings.account.manageSubscription.label" : "Előfizetés kezelése", "settings.account.successInfo" : "A módosításokat elmentettük", + "settings.account.tryReloadServices" : "Próbáld újra", "settings.account.tryReloadUserInfoRequest" : "Próbáld újra", "settings.account.userInfoRequestFailed" : "A felhasználói adatok betöltése sikertelen", "settings.app.buttonClearAllCache" : "Gyorsítótár törlése", "settings.app.buttonInstallUpdate" : "Újraindítás és frissítések telepítése", "settings.app.buttonSearchForUpdate" : "Frissítések keresése", - "settings.app.cacheInfo" : "A Franz gyorsítótár jelenleg {space} lemezterületet használ.", + "settings.app.cacheInfo" : "A Franz gyorsítótár jelenleg {size} lemezterületet használ.", "settings.app.currentVersion" : "Aktuális verzió:", "settings.app.form.autoLaunchInBackground" : "Megnyitás háttérben", "settings.app.form.autoLaunchOnStart" : "Franz betöltése indításkor", "settings.app.form.beta" : "Béta verziók keresése", - "settings.app.form.darkMode" : "Join the Dark Side", - "settings.app.form.enableGPUAcceleration" : "hardveres gyorsítás engedélyezése", - "settings.app.form.enableMenuBar" : "Franz megjelenítése a menüsorban", + "settings.app.form.darkMode" : "Csatlakozz a Sötét Oldalhoz", + "settings.app.form.enableGPUAcceleration" : "Hardveres gyorsítás engedélyezése", "settings.app.form.enableSpellchecking" : "Helyesírás-ellenőrzés engedélyezése", "settings.app.form.enableSystemTray" : "Franz mutatása a tálcán", - "settings.app.form.hideDockIcon" : "Franz ikon elrejtése a Dock mögött", "settings.app.form.language" : "Nyelv", "settings.app.form.minimizeToSystemTray" : "Franz kicsinyítése a tálcára", "settings.app.form.runInBackground" : "Franz fusson a háttérben az ablak bezárásakor", "settings.app.form.showDisabledServices" : "Letiltott szolgáltatások megjelenítése", - "settings.app.form.showMessagesBadgesWhenMuted" : "Mutass az 'olvasatlan üzenet' jelzést amikor az értesítések le vannak tiltva.", - "settings.app.form.spellcheckerLanguage" : "Spell checking language", + "settings.app.form.showMessagesBadgesWhenMuted" : "Mutassa az 'olvasatlan üzenet' jelzést, amikor az értesítések le vannak tiltva", "settings.app.headline" : "Beállítások", "settings.app.headlineAdvanced" : "Haladó", "settings.app.headlineAppearance" : "Megjelenés", @@ -151,7 +162,7 @@ "settings.app.updateStatusAvailable" : "Frissítés elérhető, letöltés folyamatban...", "settings.app.updateStatusSearching" : "Frissítéseket keres", "settings.app.updateStatusUpToDate" : "A Franz legfrissebb verzióját használod", - "settings.invite.headline" : "Barát meghívása", + "settings.invite.headline" : "Barátok meghívása", "settings.navigation.account" : "Fiók", "settings.navigation.availableServices" : "Elérhető szolgáltatások", "settings.navigation.inviteFriends" : "Barát meghívása", @@ -164,7 +175,7 @@ "settings.recipes.missingService" : "Hiányzik egy szolgáltatás?", "settings.recipes.mostPopular" : "Legnépszerűbb", "settings.recipes.nothingFound" : "Sajnáljuk, nincs egyezés a szolgáltatások között a keresett kifejezésre.", - "settings.recipes.servicesSuccessfulAddedInfo" : "Szolgáltatás sikeresen hozzáadva.", + "settings.recipes.servicesSuccessfulAddedInfo" : "Szolgáltatás sikeresen hozzáadva", "settings.searchService" : "Szolgáltatások keresése", "settings.service.error.goBack" : "Vissza a szolgáltatásokhoz", "settings.service.error.headline" : "Hiba", @@ -174,12 +185,12 @@ "settings.service.form.customUrl" : "Egyéni szerver", "settings.service.form.customUrlPremiumInfo" : "Egyénileg üzemeltetett szolgáltatások hozzáadásához Franz Prémium Támogató Fiók szükséges.", "settings.service.form.customUrlUpgradeAccount" : "Frissítsd fiókodat", - "settings.service.form.customUrlValidationError" : "Nem sikerült hitelesíteni az egyéni {name} szervert.", + "settings.service.form.customUrlValidationError" : "Nem sikerült érvényesíteni az egyéni {name} kiszolgálót.", "settings.service.form.deleteButton" : "Szolgáltatás törlése", "settings.service.form.editServiceHeadline" : "{name} szerkesztése", "settings.service.form.enableAudio" : "Hang engedélyezése", "settings.service.form.enableBadge" : "Mutasd az olvasatlan jelzéseket", - "settings.service.form.enableDarkMode" : "Enable Dark Mode", + "settings.service.form.enableDarkMode" : "Sötét mód engedélyezése", "settings.service.form.enableNotification" : "Értesítések engedélyezése", "settings.service.form.enableService" : "Szolgáltatás engedélyezése", "settings.service.form.headlineBadges" : "Olvasatlan üzenet jelzések", @@ -188,31 +199,30 @@ "settings.service.form.icon" : "Egyedi ikon", "settings.service.form.iconDelete" : "Törlés", "settings.service.form.iconUpload" : "Húzd ide a képet, vagy kattints ide", - "settings.service.form.indirectMessageInfo" : "Értesítést kapsz minden üzenetről a csatornában, nem csak @felhasználónév, @csatorna @here és egyéb említések esetén", + "settings.service.form.indirectMessageInfo" : "Értesítést kapsz minden üzenetről a csatornában, nem csak @felhasználónév, @csatorna, @here és egyéb említések esetén", "settings.service.form.indirectMessages" : "Üzenet kitűző megjelenítése minden üzenethez", - "settings.service.form.isMutedInfo" : "Ha kikapcsolod, minden értesítési és lejátszott hang némításra kerül.", + "settings.service.form.isMutedInfo" : "Ha kikapcsolod, minden értesítési és lejátszott hang némításra kerül", "settings.service.form.name" : "Név", - "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", + "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy beállítások", "settings.service.form.proxy.host" : "Proxy Host\/IP", - "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", - "settings.service.form.proxy.isEnabled" : "Use Proxy", - "settings.service.form.proxy.password" : "Password (optional)", + "settings.service.form.proxy.info" : "Proxy beállítások nem szinkronizálódnak a Franz kiszolgálókkal.", + "settings.service.form.proxy.isEnabled" : "Proxy használata", + "settings.service.form.proxy.password" : "Jelszó (opcionális)", "settings.service.form.proxy.port" : "Port", - "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", - "settings.service.form.proxy.user" : "User (optional)", + "settings.service.form.proxy.restartInfo" : "Kérjük indítsd újra a Franz-ot a proxy beállítások megváltoztatása után.", + "settings.service.form.proxy.user" : "Felhasználó (opcionális)", "settings.service.form.saveButton" : "Szolgáltatás mentése", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Üzemeltetett", "settings.service.form.tabOnPremise" : "Egyénileg üzemeltetett", "settings.service.form.team" : "Csapat", - "settings.service.form.useHostedService" : "A távoli {name} szolgáltatás használata", + "settings.service.form.useHostedService" : "A távoli {name} szolgáltatás használata.", "settings.service.form.yourServices" : "Szolgáltatásaid", "settings.services.deletedInfo" : "A szolgáltatás törlésre került", "settings.services.discoverServices" : "Szolgáltatások felfedezése", "settings.services.headline" : "Szolgáltatásaid", "settings.services.noServicesAdded" : "Még nem adtál hozzá egyetlen szolgáltatást sem eddig.", - "settings.services.tooltip.isDisabled" : "Ez a szolgáltatás le van tiltva.", + "settings.services.servicesRequestFailed" : "Could not load your services", + "settings.services.tooltip.isDisabled" : "A szolgáltatás le van tiltva", "settings.services.tooltip.isMuted" : "Minden hang lenémítva", "settings.services.tooltip.notificationsDisabled" : "Értesítések letiltva", "settings.services.updatedInfo" : "A módosításokat elmentettük", @@ -243,13 +253,11 @@ "signup.submit.label" : "Fiók létrehozása", "subscription.euTaxInfo" : "EU állampolgárok: helyi vásárlás esetén adók kerülhetnek felszámolásra", "subscription.features.ads" : "Hirdetésmentes, mindig!", - "subscription.features.comingSoon" : "Hamarosan!", - "subscription.features.encryptedSync" : "Titkosított munkamenet szinkronizálás", - "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "Helyi\/üzemeltetett szolgáltatások használata, pl. HipChat", - "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", - "subscription.features.proxy" : "Proxy support for services", - "subscription.features.spellchecker" : "Support for spellchecker", + "subscription.features.comingSoon" : "hamarosan", + "subscription.features.noInterruptions" : "Nincs több app késlekedés és liszencfrissítési piszkálás", + "subscription.features.onpremise.mattermost" : "Saját kiszolgálós szolgáltatások hozzáadása, pl.: Mattermost", + "subscription.features.proxy" : "Proxy támogatás a szolgáltatásokhoz", + "subscription.features.spellchecker" : "Támogatás a Helyesírás-ellenőrzőhöz", "subscription.includedFeatures" : "Az előfizetett Franz Prémium Támogató Fiók tartalmazza", "subscription.paymentSessionError" : "Nem sikerült a fizetési felületet betölteni", "subscription.submit.label" : "Szeretném támogatni a Franz fejlesztését", @@ -268,10 +276,10 @@ "tabs.item.enableService" : "Szolgáltatás engedélyezése", "tabs.item.reload" : "Újratöltés", "validation.email" : "{field} nem érvényes", - "validation.minLength" : "{field} legalább {length} karakter hosszúnak kell lennie", - "validation.required" : "{field} Kitöltése kötelező", + "validation.minLength" : "{field} mezőnek legalább {length} karakter hosszúnak kell lennie", + "validation.oneRequired" : "At least one is required", + "validation.required" : "{field} kitöltése kötelező", "validation.url" : "{field} nem érvényes URL", "welcome.loginButton" : "Jelentkezz be a fiókodba", - "welcome.signupButton" : "Új fiók létrehozása", - "welcome.slogan" : "Üzenetküldés okosan" + "welcome.signupButton" : "Új fiók létrehozása" } diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json index 11596d142..73271dceb 100644 --- a/src/i18n/locales/id.json +++ b/src/i18n/locales/id.json @@ -1,11 +1,22 @@ { "app.errorHandler.action" : "Muat Ulang", - "app.errorHandler.headline" : "Something went wrong", + "app.errorHandler.headline" : "Terjadi kesalahan", "feature.delayApp.action" : "Dapatkan Franz Supporter License", "feature.delayApp.headline" : "Beli Franz Supporter License agar tidak perlu menunggu", "feature.delayApp.text" : "Franz akan melanjutkan dalam {seconds} detik.", + "feature.shareFranz.action.email" : "Send as email", + "feature.shareFranz.action.facebook" : "Share on Facebook", + "feature.shareFranz.action.twitter" : "Share on Twitter", + "feature.shareFranz.headline" : "Franz is better together!", + "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", "global.api.unhealthy" : "Tidak dapat tersambung ke layanan Franz", "global.notConnectedToTheInternet" : "Anda tidak tersambung ke internet.", + "global.spellchecker.useDefault" : "Gunakan Bawaan Sistem ({default})", + "global.spellchecking.autodetect" : "Detect language automatically", + "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.language" : "Periksa ejaan", "import.headline" : "Impor layanan Franz 4 Anda", "import.notSupportedHeadline" : "Layanan belum didukung di Franz 5", "import.skip.label" : "Saya ingin menambahkan layanan secara manual", @@ -59,7 +70,9 @@ "menu.help.support" : "Dukungan", "menu.help.tos" : "Ketentuan Layanan", "menu.services" : "Layanan", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Tambahkan Layanan Baru...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Tampilan", "menu.view.enterFullScreen" : "Masuk ke Mode Layar Penuh", "menu.view.exitFullScreen" : "Keluar dari Layar Penuh", @@ -92,11 +105,11 @@ "service.crashHandler.text" : "{name} menyebabkan kesalahan.", "service.disabledHandler.action" : "Aktifkan {name}", "service.disabledHandler.headline" : "{name} dinonaktifkan", - "service.errorHandler.action" : "Muat Ulang {name}", + "service.errorHandler.action" : "Muat ulang {name}", "service.errorHandler.editAction" : "Edit {nama}", - "service.errorHandler.headline" : "Ya Ampun!", + "service.errorHandler.headline" : "Oh tidak!", "service.errorHandler.message" : "Kesalahan", - "service.errorHandler.text" : "{name} has failed to load.", + "service.errorHandler.text" : "{name} gagal dimuat", "services.getStarted" : "Ayo mulai!", "services.welcome" : "Selamat datang di Franz", "settings.account.account.editButton" : "Edit akun", @@ -117,6 +130,7 @@ "settings.account.invoiceDownload" : "Unduh", "settings.account.manageSubscription.label" : "Kelola langganan Anda", "settings.account.successInfo" : "Perubahan Anda telah disimpan", + "settings.account.tryReloadServices" : "Coba lagi", "settings.account.tryReloadUserInfoRequest" : "Coba lagi", "settings.account.userInfoRequestFailed" : "Gagal memuat informasi pengguna", "settings.app.buttonClearAllCache" : "Bersihkan singgahan", @@ -129,16 +143,13 @@ "settings.app.form.beta" : "Sertakan versi beta", "settings.app.form.darkMode" : "Sisi Kelam menunggu Anda (Mode Gelap)", "settings.app.form.enableGPUAcceleration" : "Aktifkan Akselerasi GPU", - "settings.app.form.enableMenuBar" : "Tampilkan Franz di Bilah Menu", "settings.app.form.enableSpellchecking" : "Aktifkan pemeriksaan ejaan", "settings.app.form.enableSystemTray" : "Tampilkan Franz di baki sistem", - "settings.app.form.hideDockIcon" : "Sembunyikan ikon Franz di Dock", "settings.app.form.language" : "Bahasa", "settings.app.form.minimizeToSystemTray" : "Perkecil Franz ke baki sistem", "settings.app.form.runInBackground" : "Tetap jalankan Franz di latar belakang saat menutup jendela", "settings.app.form.showDisabledServices" : "Tampilkan tab layanan yang dinonaktifkan", "settings.app.form.showMessagesBadgesWhenMuted" : "Tampilkan lencana pesan belum dibaca saat pemberitahuan dinonaktifkan", - "settings.app.form.spellcheckerLanguage" : "Periksa ejaan", "settings.app.headline" : "Pengaturan", "settings.app.headlineAdvanced" : "Tingkat Lanjut", "settings.app.headlineAppearance" : "Tampilan", @@ -167,7 +178,7 @@ "settings.recipes.servicesSuccessfulAddedInfo" : "Layanan berhasil ditambahkan", "settings.searchService" : "Cari layanan", "settings.service.error.goBack" : "Kembali ke layanan", - "settings.service.error.headline" : "Kesalahan", + "settings.service.error.headline" : "Terjadi kesalahan", "settings.service.error.message" : "Tidak dapat memuat konfigurasi layanan.", "settings.service.form.addServiceHeadline" : "Tambahkan {name}", "settings.service.form.availableServices" : "Layanan tersedia", @@ -176,7 +187,7 @@ "settings.service.form.customUrlUpgradeAccount" : "Tingkatkan akun Anda", "settings.service.form.customUrlValidationError" : "Gagal memvalidasi server {nama} khusus.", "settings.service.form.deleteButton" : "Hapus layanan", - "settings.service.form.editServiceHeadline" : "Edit {nama}", + "settings.service.form.editServiceHeadline" : "Edit {name}", "settings.service.form.enableAudio" : "Aktifkan audio", "settings.service.form.enableBadge" : "Tampilkan lencana pesan belum dibaca", "settings.service.form.enableDarkMode" : "Aktifkan Mode Gelap", @@ -192,17 +203,15 @@ "settings.service.form.indirectMessages" : "Tampilkan lencana pesan untuk semua pesan baru", "settings.service.form.isMutedInfo" : "Saat dinonaktifkan, semua suara pemberitahuan dan pemutaran audio akan dibisukan", "settings.service.form.name" : "Nama", - "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", + "settings.service.form.proxy.headline" : "Pengaturan Proxy HTTP\/HTTPS", "settings.service.form.proxy.host" : "Host\/IP Proksi", "settings.service.form.proxy.info" : "Pengaturan proksi tidak akan disinkronkan dengan server Franz.", "settings.service.form.proxy.isEnabled" : "Gunakan Proksi", "settings.service.form.proxy.password" : "Sandi (opsional)", "settings.service.form.proxy.port" : "Port", - "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", + "settings.service.form.proxy.restartInfo" : "Silahkan mulai ulang Franz setelah mengubah Setelan proxy", "settings.service.form.proxy.user" : "Pengguna (opsional)", "settings.service.form.saveButton" : "Simpan layanan", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Hosted", "settings.service.form.tabOnPremise" : "Hosted mandiri", "settings.service.form.team" : "Tim", @@ -212,6 +221,7 @@ "settings.services.discoverServices" : "Temukan layanan", "settings.services.headline" : "Layanan Anda", "settings.services.noServicesAdded" : "Anda belum menambahkan layanan apa pun.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Layanan dinonaktifkan", "settings.services.tooltip.isMuted" : "Semua suara dibisukan", "settings.services.tooltip.notificationsDisabled" : "Pemberitahuan dinonaktifkan", @@ -244,9 +254,7 @@ "subscription.euTaxInfo" : "Warga UE: pajak penjualan lokal mungkin berlaku", "subscription.features.ads" : "Tanpa iklan, selamanya!", "subscription.features.comingSoon" : "segera hadir", - "subscription.features.encryptedSync" : "Sinkronisasi sesi terenkripsi", "subscription.features.noInterruptions" : "Tanpa menunggu dan ditanya untuk meningkatkan lisensi", - "subscription.features.onpremise" : "Integrasi layanan hosted, misalnya HipChat", "subscription.features.onpremise.mattermost" : "Integrasi layanan hosted, misalnya Mattermost", "subscription.features.proxy" : "Dukungan proksi untuk layanan", "subscription.features.spellchecker" : "Dukungan pengecek ejaan", @@ -269,9 +277,9 @@ "tabs.item.reload" : "Muat Ulang", "validation.email" : "{field} tidak benar", "validation.minLength" : "{field} setidaknya harus {length} karakter", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} wajib diisi", "validation.url" : "{field} bukan URL yang benar", "welcome.loginButton" : "Masuk ke akun Anda", - "welcome.signupButton" : "Buat akun gratis", - "welcome.slogan" : "Perpesanan yang bekerja untuk Anda" + "welcome.signupButton" : "Buat akun gratis" } diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 47cbd8f1e..71150483c 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -1,11 +1,22 @@ { "app.errorHandler.action" : "Ricarica", - "app.errorHandler.headline" : "Something went wrong", + "app.errorHandler.headline" : "Qualcosa è andato storto", "feature.delayApp.action" : "Ricevi una Licenza Supporter di Franz", "feature.delayApp.headline" : "Per favore, compra una Licenza Supporter di Franz per saltare l'attesa", "feature.delayApp.text" : "Franz continuerà a funzionare tra {seconds} secondi.", + "feature.shareFranz.action.email" : "Send as email", + "feature.shareFranz.action.facebook" : "Share on Facebook", + "feature.shareFranz.action.twitter" : "Share on Twitter", + "feature.shareFranz.headline" : "Franz is better together!", + "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", "global.api.unhealthy" : "Impossibile connettersi ai servizi online di Franz", "global.notConnectedToTheInternet" : "Non sei connesso a Internet.", + "global.spellchecker.useDefault" : "Usa le impostazioni predefinite di sistema ({default})", + "global.spellchecking.autodetect" : "Detect language automatically", + "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.language" : "Lingua per controllo ortografico", "import.headline" : "Importa i servizi di Franz 4", "import.notSupportedHeadline" : "Servizi non ancora supportati in Franz 5", "import.skip.label" : "Voglio aggiungere i servizi manualmente", @@ -59,7 +70,9 @@ "menu.help.support" : "Supporto", "menu.help.tos" : "Termini di Servizio", "menu.services" : "Servizi", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Aggiungi Nuovo Servizio...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Visualizza", "menu.view.enterFullScreen" : "Visualizza a Schermo Intero", "menu.view.exitFullScreen" : "Esci da Schermo Intero", @@ -81,7 +94,7 @@ "password.noUser" : "Non è stato trovato nessun utente con questo indirizzo e-mail", "password.submit.label" : "Invia", "password.successInfo" : "Per favore controlla la tua email", - "premiumFeature.button.upgradeAccount" : "Upgrade account", + "premiumFeature.button.upgradeAccount" : "Effettua l'upgrade del tuo account", "pricing.headline" : "Supporta Franz", "pricing.link.skipPayment" : "Non voglio supportare lo sviluppo di Franz", "pricing.submit.label" : "Voglio supportare lo sviluppo di Franz", @@ -96,7 +109,7 @@ "service.errorHandler.editAction" : "Modifica {name}", "service.errorHandler.headline" : "Oh no!", "service.errorHandler.message" : "Errore", - "service.errorHandler.text" : "{name} has failed to load.", + "service.errorHandler.text" : "{name} non si è caricato correttamente.", "services.getStarted" : "Iniziamo", "services.welcome" : "Benvenuto su Franz", "settings.account.account.editButton" : "Modifica account", @@ -117,6 +130,7 @@ "settings.account.invoiceDownload" : "Scarica", "settings.account.manageSubscription.label" : "Gestisci il tuo abbonamento", "settings.account.successInfo" : "Le tue modifiche sono state salvate", + "settings.account.tryReloadServices" : "Prova di nuovo", "settings.account.tryReloadUserInfoRequest" : "Prova di nuovo", "settings.account.userInfoRequestFailed" : "Impossibile caricare le informazioni dell'utente.", "settings.app.buttonClearAllCache" : "Svuota la cache", @@ -129,16 +143,13 @@ "settings.app.form.beta" : "Includi versioni beta", "settings.app.form.darkMode" : "Unisciti al Lato Oscuro.", "settings.app.form.enableGPUAcceleration" : "Attiva Accelerazione GPU", - "settings.app.form.enableMenuBar" : "Mostra Franz nella Barra del Menu", "settings.app.form.enableSpellchecking" : "Attiva controllo ortografico", "settings.app.form.enableSystemTray" : "Mostra Franz nell'area di notifica", - "settings.app.form.hideDockIcon" : "Nascondi l'icona Franz nel Dock", "settings.app.form.language" : "Lingua", "settings.app.form.minimizeToSystemTray" : "Minimizza Franz nell'area di notifica", "settings.app.form.runInBackground" : "Mantieni Franz in esecuzione quando chiudi la finestra", "settings.app.form.showDisabledServices" : "Mostra schede servizi disattivati", "settings.app.form.showMessagesBadgesWhenMuted" : "Mostra l'etichetta dei messaggi non letti quando le notifiche sono disattivate", - "settings.app.form.spellcheckerLanguage" : "Spell checking language", "settings.app.headline" : "Impostazioni", "settings.app.headlineAdvanced" : "Avanzate", "settings.app.headlineAppearance" : "Aspetto", @@ -192,17 +203,15 @@ "settings.service.form.indirectMessages" : "Mostra l'etichetta per tutti i nuovi messaggi", "settings.service.form.isMutedInfo" : "Se disattivato, tutte le notifiche sonore e le riproduzioni audio saranno mutate", "settings.service.form.name" : "Nome", - "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", + "settings.service.form.proxy.headline" : "Impostazioni Proxy HTTP\/HTTPS", "settings.service.form.proxy.host" : "Proxy Host\/IP", - "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", - "settings.service.form.proxy.isEnabled" : "Use Proxy", - "settings.service.form.proxy.password" : "Password (optional)", - "settings.service.form.proxy.port" : "Port", - "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", - "settings.service.form.proxy.user" : "User (optional)", + "settings.service.form.proxy.info" : "Le impostazioni proxy non verranno sincronizzate con i server Franz", + "settings.service.form.proxy.isEnabled" : "Usa un Proxy", + "settings.service.form.proxy.password" : "Password (opzionale)", + "settings.service.form.proxy.port" : "Porta", + "settings.service.form.proxy.restartInfo" : "Riavvia Franz dopo aver cambiato le impostazioni del proxy.", + "settings.service.form.proxy.user" : "Utente (opzionale)", "settings.service.form.saveButton" : "Salva servizio", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Hosted", "settings.service.form.tabOnPremise" : "Self hosted ⭐️", "settings.service.form.team" : "Gruppo", @@ -212,6 +221,7 @@ "settings.services.discoverServices" : "Scopri servizi", "settings.services.headline" : "I tuoi servizi", "settings.services.noServicesAdded" : "Non hai aggiunto ancora nessun servizio.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Il servizio è disattivato", "settings.services.tooltip.isMuted" : "Tutti i suoni sono disattivati", "settings.services.tooltip.notificationsDisabled" : "Le notifiche sono disattivate", @@ -244,12 +254,10 @@ "subscription.euTaxInfo" : "Per i residenti UE: possono essere applicate tasse locali", "subscription.features.ads" : "Nessuna pubblicità, mai!", "subscription.features.comingSoon" : "in arrivo", - "subscription.features.encryptedSync" : "Sincronizzazione sessione crittografata", - "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "Aggiungi servizi on-premise\/hosted come HipChat", - "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", - "subscription.features.proxy" : "Proxy support for services", - "subscription.features.spellchecker" : "Support for spellchecker", + "subscription.features.noInterruptions" : "L'upgrade della licenza avrà impatti sull'utilizzo dell'App", + "subscription.features.onpremise.mattermost" : "Aggiungi servizi on-premise\/hosted come \"Mattermost\"", + "subscription.features.proxy" : "Supporto proxy per i servizi", + "subscription.features.spellchecker" : "Supporto per il correttore ortografico", "subscription.includedFeatures" : "L'account a pagamento Franz Premium Supporter include", "subscription.paymentSessionError" : "Impossibile inizializzare il modulo per il pagamento", "subscription.submit.label" : "Voglio supportare lo sviluppo di Franz", @@ -269,9 +277,9 @@ "tabs.item.reload" : "Ricarica", "validation.email" : "{field} non valido", "validation.minLength" : "{field} dovrebbe contenere almeno {length} caratteri", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} è necessario", "validation.url" : "{field} non è un URL valido", "welcome.loginButton" : "Accedi al tuo account", - "welcome.signupButton" : "Crea un account gratuito", - "welcome.slogan" : "Un sistema di messaggistica che va bene per te" + "welcome.signupButton" : "Crea un account gratuito" } diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index 6eea64c3a..bd1024a34 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -1,16 +1,27 @@ { "app.errorHandler.action" : "再読み込み", - "app.errorHandler.headline" : "Something went wrong", - "feature.delayApp.action" : "Franz サポーターライセンスを購入する", - "feature.delayApp.headline" : "Franz をすぐに起動するには、Franz サポーターライセンスを購入してください。", - "feature.delayApp.text" : "Franz はあと{seconds}秒後に起動します。", + "app.errorHandler.headline" : "間違えている部分があります", + "feature.delayApp.action" : "Franzサポーターライセンスを購入する", + "feature.delayApp.headline" : "Franzをすぐに起動するには、Franz サポーターライセンスを購入してください。", + "feature.delayApp.text" : "Franzはあと{seconds}秒後に起動します。", + "feature.shareFranz.action.email" : "Send as email", + "feature.shareFranz.action.facebook" : "Share on Facebook", + "feature.shareFranz.action.twitter" : "Share on Twitter", + "feature.shareFranz.headline" : "Franz is better together!", + "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", "global.api.unhealthy" : "Franzのオンラインサービスに接続できません。", "global.notConnectedToTheInternet" : "インターネットに接続されていません。", + "global.spellchecker.useDefault" : " {default}を初期設定で使用してください", + "global.spellchecking.autodetect" : "Detect language automatically", + "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.language" : "スペルチェックする言語", "import.headline" : "Franz 4のサービスをインポートして下さい", "import.notSupportedHeadline" : "Franz 5ではこのサービスにまだ対応していません", "import.skip.label" : "手動でサービスを追加する", "import.submit.label" : "サービスをインポートして下さい", - "infobar.buttonChangelog" : "最新の情報", + "infobar.buttonChangelog" : "更新履歴を見る", "infobar.buttonInstallUpdate" : "再起動して更新をインストールする", "infobar.buttonReloadServices" : "サービスの再読み込み", "infobar.requiredRequestsFailed" : "サービスとユーザー情報を読み込めませんでした", @@ -59,7 +70,9 @@ "menu.help.support" : "サポート", "menu.help.tos" : "サービス利用規約", "menu.services" : "サービス", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "サービスを追加", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "表示", "menu.view.enterFullScreen" : "全画面表示", "menu.view.exitFullScreen" : "全画面表示を終了する", @@ -96,7 +109,7 @@ "service.errorHandler.editAction" : "{name}を編集", "service.errorHandler.headline" : "しまった!", "service.errorHandler.message" : "エラー", - "service.errorHandler.text" : "{name} has failed to load.", + "service.errorHandler.text" : "{name} はロードに失敗しました", "services.getStarted" : "はじめる", "services.welcome" : "Franzにようこそ", "settings.account.account.editButton" : "アカウントの編集", @@ -117,6 +130,7 @@ "settings.account.invoiceDownload" : "ダウンロード", "settings.account.manageSubscription.label" : "サブスクリプションの管理", "settings.account.successInfo" : "変更内容が保存されました", + "settings.account.tryReloadServices" : "もう一度試す", "settings.account.tryReloadUserInfoRequest" : "もう一度試す", "settings.account.userInfoRequestFailed" : "ユーザ情報を読み込めませんでした", "settings.app.buttonClearAllCache" : "キャッシュを消去する", @@ -129,16 +143,13 @@ "settings.app.form.beta" : "Betaバージョンを含める", "settings.app.form.darkMode" : "ダークモードを有効にする", "settings.app.form.enableGPUAcceleration" : "GPUアクセラレーションを有効にする", - "settings.app.form.enableMenuBar" : "メニューバーにFranzを表示する", "settings.app.form.enableSpellchecking" : "スペルチェックを有効にする", "settings.app.form.enableSystemTray" : "Franzをシステムトレイに表示する", - "settings.app.form.hideDockIcon" : "DockからFranzを隠す", "settings.app.form.language" : "言語", "settings.app.form.minimizeToSystemTray" : "Franzをシステムトレイに最小化する", "settings.app.form.runInBackground" : "ウインドウを閉じた際にFranzをバックグラウンドで実行させておく", "settings.app.form.showDisabledServices" : "無効化されたサービスのタブを表示する", "settings.app.form.showMessagesBadgesWhenMuted" : "通知の無効時に未読メッセージ件数を表示する", - "settings.app.form.spellcheckerLanguage" : "スペルチェックする言語", "settings.app.headline" : "設定", "settings.app.headlineAdvanced" : "詳細", "settings.app.headlineAppearance" : "表示スタイル", @@ -192,17 +203,15 @@ "settings.service.form.indirectMessages" : "すべての新規メッセージについてバッジを表示する", "settings.service.form.isMutedInfo" : "無効化されている場合、全ての通知音やオーディオ再生は無音になります", "settings.service.form.name" : "サービス名", - "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", + "settings.service.form.proxy.headline" : "HTTP\/HTTPSのプロキシ設定", "settings.service.form.proxy.host" : "プロキシサーバー\/IP", "settings.service.form.proxy.info" : "プロキシ設定はFranz アカウントで同期されません。", "settings.service.form.proxy.isEnabled" : "プロキシ設定を有効にする", "settings.service.form.proxy.password" : "パスワード(任意)", - "settings.service.form.proxy.port" : "Port", - "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", + "settings.service.form.proxy.port" : "ポート", + "settings.service.form.proxy.restartInfo" : "プロキシ設定を変更してから、Franzを再起動してください", "settings.service.form.proxy.user" : "ユーザー名(任意)", "settings.service.form.saveButton" : "サービスの保存", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "ホスト", "settings.service.form.tabOnPremise" : "セルフホスト ⭐️", "settings.service.form.team" : "チーム", @@ -212,6 +221,7 @@ "settings.services.discoverServices" : "サービスを探す", "settings.services.headline" : "利用中のサービス", "settings.services.noServicesAdded" : "まだ、どのサービスも追加されていません。", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "サービスが無効です", "settings.services.tooltip.isMuted" : "無音となっています", "settings.services.tooltip.notificationsDisabled" : "通知は無効です", @@ -244,9 +254,7 @@ "subscription.euTaxInfo" : "EU在住者 : 地域の消費税が適用される可能性があります", "subscription.features.ads" : "広告は一切ありません!", "subscription.features.comingSoon" : "まもなく登場", - "subscription.features.encryptedSync" : "暗号化されたセッションの同期", "subscription.features.noInterruptions" : "待ち時間なしでFranz をお使いいただけます", - "subscription.features.onpremise" : "HipChatのようなオンプレミス\/ホスト型サービスの追加", "subscription.features.onpremise.mattermost" : "Mattermost のようなオンプレミス(自社運用)型のサービスを追加できるようになります", "subscription.features.proxy" : "プロキシ設定が利用可能", "subscription.features.spellchecker" : "スペルチェック機能をお使いいただけます", @@ -269,9 +277,9 @@ "tabs.item.reload" : "再読み込み", "validation.email" : "{field}は正しくありません", "validation.minLength" : "{field}は少なくとも{length}文字以上でなければなりません", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field}は必須です", "validation.url" : "{field}は正しいURLではありません", "welcome.loginButton" : "アカウントにログイン", - "welcome.signupButton" : "無料アカウントを作成", - "welcome.slogan" : "Messaging that works for you" + "welcome.signupButton" : "無料アカウントを作成" } diff --git a/src/i18n/locales/ka.json b/src/i18n/locales/ka.json index 632ca618e..4796cbe9f 100644 --- a/src/i18n/locales/ka.json +++ b/src/i18n/locales/ka.json @@ -4,8 +4,19 @@ "feature.delayApp.action" : "Get a Franz Supporter License", "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", + "feature.shareFranz.action.email" : "Send as email", + "feature.shareFranz.action.facebook" : "Share on Facebook", + "feature.shareFranz.action.twitter" : "Share on Twitter", + "feature.shareFranz.headline" : "Franz is better together!", + "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", "global.api.unhealthy" : "Franz-ის ონლაინ სერვისთან დაკავშირება ვერ მოხერხდა", "global.notConnectedToTheInternet" : "თქვენ არ ხართ ინტერნეტთან დაკავშირებული.", + "global.spellchecker.useDefault" : "Use System Default ({default})", + "global.spellchecking.autodetect" : "Detect language automatically", + "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.language" : "Spell checking language", "import.headline" : "შემოიტანე Franz 4-ის სერვისები", "import.notSupportedHeadline" : "სერვისები ჯერ არ არის მხარდაჭერილი Franz 5-ში", "import.skip.label" : "I want to add services manually", @@ -59,7 +70,9 @@ "menu.help.support" : "Support", "menu.help.tos" : "Terms of Service", "menu.services" : "Services", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Add New Service...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "View", "menu.view.enterFullScreen" : "Enter Full Screen", "menu.view.exitFullScreen" : "Exit Full Screen", @@ -117,6 +130,7 @@ "settings.account.invoiceDownload" : "გადმოწერა", "settings.account.manageSubscription.label" : "თქვენი გამოწერის მართვა", "settings.account.successInfo" : "თქვენი ცვლილებები შენახულია", + "settings.account.tryReloadServices" : "სცადეთ ხელახლა", "settings.account.tryReloadUserInfoRequest" : "სცადეთ ხელახლა", "settings.account.userInfoRequestFailed" : "მომხმარებლის ინფორმაციის ჩატვირთვა ვერ მოხერხდა", "settings.app.buttonClearAllCache" : "Clear cache", @@ -129,16 +143,13 @@ "settings.app.form.beta" : "ჩართეთ ბეტა ვერსიები", "settings.app.form.darkMode" : "Join the Dark Side", "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", - "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", "settings.app.form.enableSpellchecking" : "Enable spell checking", "settings.app.form.enableSystemTray" : "აჩვენეთ Franz სისტემის უჯრაში", - "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock", "settings.app.form.language" : "ენა", "settings.app.form.minimizeToSystemTray" : "ჩაკეცეთ Franz სისტემის უჯრაში", "settings.app.form.runInBackground" : "დატოვეთ Franz გაშვებული როდესაც ფანჯარა დაიხურება", "settings.app.form.showDisabledServices" : "Display disabled services tabs", "settings.app.form.showMessagesBadgesWhenMuted" : "Show unread message badge when notifications are disabled", - "settings.app.form.spellcheckerLanguage" : "Spell checking language", "settings.app.headline" : "პარამეტრები", "settings.app.headlineAdvanced" : "Advanced", "settings.app.headlineAppearance" : "Appearance", @@ -201,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", "settings.service.form.proxy.user" : "User (optional)", "settings.service.form.saveButton" : "სერვისის შენახვა", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "დაჰოსტილი", "settings.service.form.tabOnPremise" : "თვით დაჰოსტილი ⭐️", "settings.service.form.team" : "გუნდი", @@ -212,6 +221,7 @@ "settings.services.discoverServices" : "აღმოაჩინეთ სერვისები", "settings.services.headline" : "თქვენი სერვისები", "settings.services.noServicesAdded" : "თქვენ ჯერ არ გაქვთ სერვისები დამატებული.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "სერვისი გათიშულია", "settings.services.tooltip.isMuted" : "All sounds are muted", "settings.services.tooltip.notificationsDisabled" : "შეტყობინებები გათიშულია", @@ -244,9 +254,7 @@ "subscription.euTaxInfo" : "EU residents: local sales tax may apply", "subscription.features.ads" : "არანაირი რეკლამები, არასდროს!", "subscription.features.comingSoon" : "მალე", - "subscription.features.encryptedSync" : "დაშიფრული სესიის სინქრონიზაცია", "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "on-premise\/hosted სერვისების დამატება, როგორიცაა HipChat", "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", "subscription.features.proxy" : "Proxy support for services", "subscription.features.spellchecker" : "Support for spellchecker", @@ -269,9 +277,9 @@ "tabs.item.reload" : "ჩატვირთვა", "validation.email" : "{field} is not valid", "validation.minLength" : "{field} should be at least {length} characters long", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} is required", "validation.url" : "{field} is not a valid URL", "welcome.loginButton" : "შედით თქვენს ანგარიშში", - "welcome.signupButton" : "შექმენი ანგარიში, ეს უფასოა", - "welcome.slogan" : "შეტყობინების აპლიკაცია, რომელიც მუშაობს შენთვის" + "welcome.signupButton" : "შექმენი ანგარიში, ეს უფასოა" } diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json index c38a7f024..00d7ddd06 100644 --- a/src/i18n/locales/nl-BE.json +++ b/src/i18n/locales/nl-BE.json @@ -1,74 +1,87 @@ { "app.errorHandler.action" : "Herladen", - "app.errorHandler.headline" : "Something went wrong", - "feature.delayApp.action" : "Get a Franz Supporter License", - "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", - "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", + "app.errorHandler.headline" : "Er ging iets mis", + "feature.delayApp.action" : "Neem een Franz Supporter Licentie ", + "feature.delayApp.headline" : "Neem een Franz Supporter Licentie om niet meer te hoeven wachten", + "feature.delayApp.text" : "Franz gaat over {seconds} seconden verder.", + "feature.shareFranz.action.email" : "Send as email", + "feature.shareFranz.action.facebook" : "Share on Facebook", + "feature.shareFranz.action.twitter" : "Share on Twitter", + "feature.shareFranz.headline" : "Franz is better together!", + "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", "global.api.unhealthy" : "Kan geen verbinding maken met de Franz services", "global.notConnectedToTheInternet" : "Je hebt geen internet verbinding.", + "global.spellchecker.useDefault" : "Gebruik Systeemstandaard ({default})", + "global.spellchecking.autodetect" : "Detect language automatically", + "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.language" : "Taal spellingscontrole", "import.headline" : "Importeer je Franz 4 services", "import.notSupportedHeadline" : "De volgende services worden nog niet ondersteund in Franz 5", - "import.skip.label" : "Ik wens services manueel toe te voegen", + "import.skip.label" : "Ik wil services handmatig toevoegen", "import.submit.label" : "Importeer services", "infobar.buttonChangelog" : "Wat is er nieuw?", - "infobar.buttonInstallUpdate" : "Start opnieuw op & installeer de update", - "infobar.buttonReloadServices" : "Herlaad de services", - "infobar.requiredRequestsFailed" : "Kan de services en gebruikers informatie niet laden", - "infobar.servicesUpdated" : "Je services zijn geüpdatet.", - "infobar.updateAvailable" : "Een nieuwe update voor Franz is beschikbaar.", + "infobar.buttonInstallUpdate" : "Opnieuw opstarten & update installeren", + "infobar.buttonReloadServices" : "Services opnieuw laden", + "infobar.requiredRequestsFailed" : "Kan de services en gebruikersinformatie niet laden", + "infobar.servicesUpdated" : "Je services zijn bijgewerkt.", + "infobar.updateAvailable" : "Er is een nieuwe update voor Franz beschikbaar.", "invite.email.label" : "E-mailadres", "invite.headline.friends" : "Nodig 3 van je vrienden of collega's uit", "invite.name.label" : "Naam", "invite.skip.label" : "Ik wil dit later doen", - "invite.submit.label" : "Verzend uitnodigingen", + "invite.submit.label" : "Uitnodigingen verzenden", "invite.successInfo" : "Uitnodiging met succes verzonden", "login.email.label" : "E-mailadres", "login.headline" : "Inloggen", "login.invalidCredentials" : "E-mailadres of wachtwoord ongeldig", "login.link.password" : "Wachtwoord resetten", - "login.link.signup" : "Maak een gratis account", + "login.link.signup" : "Maak een gratis account aan", "login.password.label" : "Wachtwoord", "login.serverLogout" : "De sessie is verlopen, log opnieuw in alsjeblieft.", - "login.submit.label" : "Log in", + "login.submit.label" : "Inloggen", "login.tokenExpired" : "De sessie is verlopen, log opnieuw in alsjeblieft.", "menu.app.about" : "Over Franz", "menu.app.hide" : "Verbergen", - "menu.app.hideOthers" : "Andere verbergen", + "menu.app.hideOthers" : "Andere Verbergen", "menu.app.quit" : "Afsluiten", "menu.app.settings" : "Instellingen", - "menu.app.unhide" : "Zichtbaar maken", - "menu.edit" : "Aanpassen", + "menu.app.unhide" : "Tonen", + "menu.edit" : "Bewerken", "menu.edit.copy" : "Kopiëren", "menu.edit.cut" : "Knippen", "menu.edit.delete" : "Verwijderen", "menu.edit.emojiSymbols" : "Emoji & Symbolen", "menu.edit.paste" : "Plakken", "menu.edit.pasteAndMatchStyle" : "Plakken en stijl overeen laten komen", - "menu.edit.redo" : "Opnieuw uitvoeren", - "menu.edit.selectAll" : "Selecteer alles", + "menu.edit.redo" : "Opnieuw doen", + "menu.edit.selectAll" : "Selecteer Alles", "menu.edit.speech" : "Spraakuitvoer", "menu.edit.startDictation" : "Beginnen met dicteren", - "menu.edit.startSpeaking" : "Begin met spreken", - "menu.edit.stopSpeaking" : "Stoppen met spreken", + "menu.edit.startSpeaking" : "Begin met Spreken", + "menu.edit.stopSpeaking" : "Stoppen met Spreken", "menu.edit.undo" : "Ongedaan maken", "menu.file" : "Bestand", "menu.help" : "Help", "menu.help.changelog" : "Logboek", - "menu.help.learnMore" : "Meer weten", + "menu.help.learnMore" : "Meer Weten", "menu.help.privacy" : "Privacyverklaring", "menu.help.support" : "Ondersteuning", "menu.help.tos" : "Servicevoorwaarden", - "menu.services" : "Diensten", + "menu.services" : "Services", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Nieuwe service toevoegen...", - "menu.view" : "Beeld", + "menu.services.setNextServiceActive" : "Activate next service", + "menu.view" : "Weergave", "menu.view.enterFullScreen" : "Volledig scherm openen", "menu.view.exitFullScreen" : "Volledig scherm verlaten", "menu.view.reloadFranz" : "Franz Herladen", - "menu.view.reloadService" : "Service herladen", - "menu.view.resetZoom" : "Werkelijke grootte", - "menu.view.toggleDevTools" : "Toggle Developer Tools", - "menu.view.toggleFullScreen" : "Volledig scherm aan\/uit", - "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", + "menu.view.reloadService" : "Service Herladen", + "menu.view.resetZoom" : "Werkelijke Grootte", + "menu.view.toggleDevTools" : "Ontwikkelaarstools Aan\/Uit", + "menu.view.toggleFullScreen" : "Volledig Scherm Aan\/Uit", + "menu.view.toggleServiceDevTools" : "Service Ontwikkelaarstools Aan\/Uit", "menu.view.zoomIn" : "Inzoomen", "menu.view.zoomOut" : "Uitzoomen", "menu.window" : "Venster", @@ -78,47 +91,48 @@ "password.headline" : "Wachtwoord resetten", "password.link.login" : "Log in op je account", "password.link.signup" : "Maak een gratis account", - "password.noUser" : "Geen gebruiker bekend met dat e-mailadres", - "password.submit.label" : "Doorgaan", + "password.noUser" : "Geen gebruiker gevonden met dat e-mailadres", + "password.submit.label" : "Verzenden", "password.successInfo" : "Controleer alsjeblieft je e-mail", "premiumFeature.button.upgradeAccount" : "Upgrade account", - "pricing.headline" : "Ondersteun Franz", + "pricing.headline" : "Steun Franz", "pricing.link.skipPayment" : "Ik wil de ontwikkeling van Franz niet ondersteunen.", "pricing.submit.label" : "Ik wil de ontwikkeling van Franz ondersteunen", "pricing.support.label" : "Selecteer je ondersteuningsplan", "service.crashHandler.action" : "{naam} herladen", - "service.crashHandler.autoReload" : "Automatisch herstellen {name} proberen in {seconds} seconden", + "service.crashHandler.autoReload" : "Ga proberen om {name} te herstellen over {seconds} seconden", "service.crashHandler.headline" : "Oh nee!", "service.crashHandler.text" : "{name} heeft een probleem veroorzaakt.", "service.disabledHandler.action" : "Activeer {name}", "service.disabledHandler.headline" : "{name} is uitgeschakeld", "service.errorHandler.action" : "{naam} herladen", - "service.errorHandler.editAction" : "{name} aanpassen", + "service.errorHandler.editAction" : "Bewerk {name}", "service.errorHandler.headline" : "Oh nee!", "service.errorHandler.message" : "Fout", - "service.errorHandler.text" : "{name} has failed to load.", + "service.errorHandler.text" : "{name} kon niet geladen worden.", "services.getStarted" : "Beginnen", "services.welcome" : "Welkom bij Franz", - "settings.account.account.editButton" : "Bewerk account", + "settings.account.account.editButton" : "Account bewerken", "settings.account.accountType.basic" : "Basis Account", "settings.account.accountType.premium" : "Premium Supporter Account", - "settings.account.buttonSave" : "Profiel aanpassen", + "settings.account.buttonSave" : "Profiel bijwerken", "settings.account.deleteAccount" : "Account verwijderen", "settings.account.deleteEmailSent" : "U heeft een email ontvangen met een bevestiginslink om uw account te verwijderen. Uw account en de bijhorende gegevens kunnen niet meer worden herstel na deze actie!", - "settings.account.deleteInfo" : "Indien u uw Franz account nietmeer nodig heeft, kan u hier uw account en de gerelateerde gegegevens verwijderen.", + "settings.account.deleteInfo" : "Indien u uw Franz account niet meer nodig heeft, kan u hier uw account en alle gerelateerde gegevens verwijderen.", "settings.account.headline" : "Account", "settings.account.headlineAccount" : "Account informatie", - "settings.account.headlineDangerZone" : "Gevaren Zone", + "settings.account.headlineDangerZone" : "Gevarenzone", "settings.account.headlineInvoices" : "Facturen", "settings.account.headlinePassword" : "Wijzig wachtwoord", - "settings.account.headlineProfile" : "Profiel aanpassen", + "settings.account.headlineProfile" : "Profiel bijwerken", "settings.account.headlineSubscription" : "Je abonnement", "settings.account.headlineUpgrade" : "Upgrade je account & ondersteun Franz", "settings.account.invoiceDownload" : "Download", "settings.account.manageSubscription.label" : "Beheer je abonnement", "settings.account.successInfo" : "Je wijzigingen zijn opgeslagen", + "settings.account.tryReloadServices" : "Probeer opnieuw", "settings.account.tryReloadUserInfoRequest" : "Probeer opnieuw", - "settings.account.userInfoRequestFailed" : "Kon gebruikerinformatie niet laden", + "settings.account.userInfoRequestFailed" : "Kon gebruikersinformatie niet laden", "settings.app.buttonClearAllCache" : "Cache wissen", "settings.app.buttonInstallUpdate" : "Herstart & installeer update", "settings.app.buttonSearchForUpdate" : "Controleer op updates", @@ -126,47 +140,44 @@ "settings.app.currentVersion" : "Huidige versie:", "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond", "settings.app.form.autoLaunchOnStart" : "Lanceer Franz bij opstarten", - "settings.app.form.beta" : "Inclusief bèta versies", - "settings.app.form.darkMode" : "Join the Dark Side", + "settings.app.form.beta" : "Inclusief beta versies", + "settings.app.form.darkMode" : "Word lid van de Dark Side", "settings.app.form.enableGPUAcceleration" : "GPU Acceleratie Activeren", - "settings.app.form.enableMenuBar" : "Toon Franz in Menu Bar", "settings.app.form.enableSpellchecking" : "Spellingcontrole inschakelen", "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk", - "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock", "settings.app.form.language" : "Taal", "settings.app.form.minimizeToSystemTray" : "Minimaliseer Franz naar de systeembalk", "settings.app.form.runInBackground" : "Houd Franz op de achtergrond wanneer het venster gesloten wordt", - "settings.app.form.showDisabledServices" : "Display disabled services tabs", - "settings.app.form.showMessagesBadgesWhenMuted" : "Show unread message badge when notifications are disabled", - "settings.app.form.spellcheckerLanguage" : "Spell checking language", + "settings.app.form.showDisabledServices" : "Toon uitgeschakelde services", + "settings.app.form.showMessagesBadgesWhenMuted" : "Toon badge met ongelezen berichten wanneer meldingen zijn uitgeschakeld", "settings.app.headline" : "Instellingen", - "settings.app.headlineAdvanced" : "Advanced", - "settings.app.headlineAppearance" : "Appearance", + "settings.app.headlineAdvanced" : "Geavanceerd", + "settings.app.headlineAppearance" : "Weergave", "settings.app.headlineGeneral" : "Algemeen", "settings.app.headlineLanguage" : "Taal", "settings.app.headlineUpdates" : "Updates", - "settings.app.restartRequired" : "Changes require restart", + "settings.app.restartRequired" : "Deze wijziging heeft een herstart nodig", "settings.app.subheadlineCache" : "Cache", - "settings.app.translationHelp" : "Help us to translate Franz into your language.", + "settings.app.translationHelp" : "Help ons om Franz te vertalen naar uw taal.", "settings.app.updateStatusAvailable" : "Update beschikbaar, downloaden...", "settings.app.updateStatusSearching" : "Zoekt naar updates", "settings.app.updateStatusUpToDate" : "Je gebruikt de laatste versie van Franz", - "settings.invite.headline" : "Invite Friends", + "settings.invite.headline" : "Nodig vrienden uit", "settings.navigation.account" : "Account", "settings.navigation.availableServices" : "Beschikbare services", - "settings.navigation.inviteFriends" : "Invite Friends", + "settings.navigation.inviteFriends" : "Nodig vrienden uit", "settings.navigation.logout" : "Uitloggen", "settings.navigation.settings" : "Instellingen", "settings.navigation.yourServices" : "Jouw services", "settings.recipes.all" : "Alle services", "settings.recipes.dev" : "Ontwikkeling", "settings.recipes.headline" : "Beschikbare services", - "settings.recipes.missingService" : "Missing a service?", + "settings.recipes.missingService" : "Mist er een service?", "settings.recipes.mostPopular" : "Meest populair", "settings.recipes.nothingFound" : "Sorry, maar geen enkele service kwam overeen met je zoekterm.", "settings.recipes.servicesSuccessfulAddedInfo" : "Service succesvol toegevoegd", - "settings.searchService" : "Search service", - "settings.service.error.goBack" : "Terug naar de services", + "settings.searchService" : "Service zoeken", + "settings.service.error.goBack" : "Terug naar services", "settings.service.error.headline" : "Fout", "settings.service.error.message" : "Kon het service-recept niet laden.", "settings.service.form.addServiceHeadline" : "{name} toevoegen", @@ -177,62 +188,61 @@ "settings.service.form.customUrlValidationError" : "Kon de custom {name} server niet valideren.", "settings.service.form.deleteButton" : "Service verwijderen", "settings.service.form.editServiceHeadline" : "{name} aanpassen", - "settings.service.form.enableAudio" : "Enable audio", - "settings.service.form.enableBadge" : "Show unread message badges", - "settings.service.form.enableDarkMode" : "Enable Dark Mode", + "settings.service.form.enableAudio" : "Audio inschakelen", + "settings.service.form.enableBadge" : "Toon badges met ongelezen berichten", + "settings.service.form.enableDarkMode" : "Dark Mode aanzetten", "settings.service.form.enableNotification" : "Notificaties aanzetten", "settings.service.form.enableService" : "Service aanzetten", - "settings.service.form.headlineBadges" : "Unread message badges", + "settings.service.form.headlineBadges" : "Ongelezen berichten badges", "settings.service.form.headlineGeneral" : "Algemeen", - "settings.service.form.headlineNotifications" : "Notifications", - "settings.service.form.icon" : "Custom icon", + "settings.service.form.headlineNotifications" : "Meldingen", + "settings.service.form.icon" : "Aangepast icoon", "settings.service.form.iconDelete" : "Verwijderen", - "settings.service.form.iconUpload" : "Drop your image, or click here", + "settings.service.form.iconUpload" : "Sleep en drop je afbeelding, of klik hier", "settings.service.form.indirectMessageInfo" : "Je wordt verwittigd over alle nieuwe berichten in een kanaal, niet alleen @username, @channel, @here, ...", "settings.service.form.indirectMessages" : "Toon berichten-badge voor alle nieuwe berichten", - "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", + "settings.service.form.isMutedInfo" : "Indien uitgeschakeld zullen alle meldingsgeluiden en afgespeelde audio uitgeschakeld zijn", "settings.service.form.name" : "Naam", - "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", + "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Instellingen", "settings.service.form.proxy.host" : "Proxy Host\/IP", - "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", - "settings.service.form.proxy.isEnabled" : "Use Proxy", - "settings.service.form.proxy.password" : "Password (optional)", - "settings.service.form.proxy.port" : "Port", - "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", - "settings.service.form.proxy.user" : "User (optional)", - "settings.service.form.saveButton" : "Service bewaren", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", + "settings.service.form.proxy.info" : "Proxy instellingen worden niet gesynchroniseerd met de Franz servers.", + "settings.service.form.proxy.isEnabled" : "Proxy gebruiken", + "settings.service.form.proxy.password" : "Wachtwoord (optioneel)", + "settings.service.form.proxy.port" : "Poort", + "settings.service.form.proxy.restartInfo" : "Start Franz opnieuw op na het aanpassen van proxy Instellingen.", + "settings.service.form.proxy.user" : "Gebruiker (optioneel)", + "settings.service.form.saveButton" : "Service opslaan", "settings.service.form.tabHosted" : "Gehost", "settings.service.form.tabOnPremise" : "Intern gehost ⭐️", "settings.service.form.team" : "Team", - "settings.service.form.useHostedService" : "Use the hosted {name} service.", + "settings.service.form.useHostedService" : "Gebruik de gehoste {name} service.", "settings.service.form.yourServices" : "Jouw services", "settings.services.deletedInfo" : "Service werd verwijderd", "settings.services.discoverServices" : "Services ontdekken", "settings.services.headline" : "Jouw services", "settings.services.noServicesAdded" : "Je hebt nog geen services toegevoegd.", - "settings.services.tooltip.isDisabled" : "Service staat uit", - "settings.services.tooltip.isMuted" : "All sounds are muted", + "settings.services.servicesRequestFailed" : "Could not load your services", + "settings.services.tooltip.isDisabled" : "Service is uitgeschakeld", + "settings.services.tooltip.isMuted" : "Alle geluiden zijn uitgeschakeld", "settings.services.tooltip.notificationsDisabled" : "Notificaties staan uit", - "settings.services.updatedInfo" : "Je wijzigingen werden bewaard", + "settings.services.updatedInfo" : "Je wijzigingen zijn opgeslagen", "settings.user.form.accountType.company" : "Bedrijf", "settings.user.form.accountType.individual" : "Particulier", "settings.user.form.accountType.label" : "Account type", "settings.user.form.accountType.non-profit" : "Non-Profit", "settings.user.form.currentPassword" : "Huidig wachtwoord", "settings.user.form.email" : "Email", - "settings.user.form.firstname" : "Naam", + "settings.user.form.firstname" : "Voornaam", "settings.user.form.lastname" : "Achternaam", "settings.user.form.newPassword" : "Nieuw wachtwoord", - "sidebar.addNewService" : "!!!Add new service", - "sidebar.muteApp" : "Disable notifications & audio", + "sidebar.addNewService" : "Nieuw service toevoegen", + "sidebar.muteApp" : "Berichten & geluid uitschakelen", "sidebar.settings" : "Instellingen", - "sidebar.unmuteApp" : "Enable notifications & audio", + "sidebar.unmuteApp" : "Berichten & geluid inschakelen", "signup.company.label" : "Bedrijf", "signup.email.label" : "E-mailadres", - "signup.emailDuplicate" : "Er bestaat reeds een gebruiker met dat e-mailadres", - "signup.firstname.label" : "Naam", + "signup.emailDuplicate" : "Er bestaat al een gebruiker met dat e-mailadres", + "signup.firstname.label" : "Voornaam", "signup.headline" : "Registreren", "signup.lastname.label" : "Achternaam", "signup.legal.info" : "Door een account aan te maken aanvaard je de", @@ -241,15 +251,13 @@ "signup.link.login" : "Al een account, inloggen?", "signup.password.label" : "Wachtwoord", "signup.submit.label" : "Account aanmaken", - "subscription.euTaxInfo" : "EU residents: local sales tax may apply", + "subscription.euTaxInfo" : "Bewoners binnen EU: lokale belasting kan van toepassing zijn", "subscription.features.ads" : "Geen reclame, nooit!", "subscription.features.comingSoon" : "komt binnenkort", - "subscription.features.encryptedSync" : "Synchronisatie van geëncrypteerde sessies", - "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "Intern gehoste services zoals HipChat", - "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", - "subscription.features.proxy" : "Proxy support for services", - "subscription.features.spellchecker" : "Support for spellchecker", + "subscription.features.noInterruptions" : "Geen haperingen & pop ups over upgrades", + "subscription.features.onpremise.mattermost" : "Voeg op-locatie\/gehoste diensten zoals Mattermost toe", + "subscription.features.proxy" : "Proxy ondersteuning voor services", + "subscription.features.spellchecker" : "Ondersteuning voor spellingscheck", "subscription.includedFeatures" : "Een betalend account voor Franz omvat", "subscription.paymentSessionError" : "Betalingsformulier kon niet geladen worden", "subscription.submit.label" : "Ik wil de ontwikkeling van Franz steunen", @@ -259,19 +267,19 @@ "subscriptionPopup.buttonCancel" : "Annuleren", "subscriptionPopup.buttonDone" : "Klaar", "tabs.item.deleteService" : "Service verwijderen", - "tabs.item.disableAudio" : "Disable audio", + "tabs.item.disableAudio" : "Audio uitschakelen", "tabs.item.disableNotifications" : "Notificaties uitschakelen", "tabs.item.disableService" : "Service uitschakelen", "tabs.item.edit" : "Aanpassen", - "tabs.item.enableAudio" : "Enable audio", + "tabs.item.enableAudio" : "Audio inschakelen", "tabs.item.enableNotification" : "Notificaties inschakelen", - "tabs.item.enableService" : "Service aanzetten", + "tabs.item.enableService" : "Service inschakelen", "tabs.item.reload" : "Herladen", - "validation.email" : "{field} is not valid", - "validation.minLength" : "{field} should be at least {length} characters long", - "validation.required" : "{field} is required", - "validation.url" : "{field} is not a valid URL", + "validation.email" : "{field} is niet geldig", + "validation.minLength" : "{field} moet minimaal {length} karakters lang zijn", + "validation.oneRequired" : "At least one is required", + "validation.required" : "{field} is vereist", + "validation.url" : "{field} is niet een geldige URL", "welcome.loginButton" : "Inloggen op je account", - "welcome.signupButton" : "Maak een gratis account aan", - "welcome.slogan" : "Messaging that works for you" + "welcome.signupButton" : "Maak een gratis account aan" } diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index 940f24b0b..782c29a6c 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json @@ -1,11 +1,22 @@ { - "app.errorHandler.action" : "Laad opnieuw", - "app.errorHandler.headline" : "Something went wrong", + "app.errorHandler.action" : "Herladen", + "app.errorHandler.headline" : "Er ging iets mis", "feature.delayApp.action" : "Sponsor Franz", "feature.delayApp.headline" : "Sponsor Franz om wachten over te slaan", "feature.delayApp.text" : "Franz gaat over {seconds} seconden verder.", + "feature.shareFranz.action.email" : "Send as email", + "feature.shareFranz.action.facebook" : "Share on Facebook", + "feature.shareFranz.action.twitter" : "Share on Twitter", + "feature.shareFranz.headline" : "Franz is better together!", + "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", "global.api.unhealthy" : "Kan geen verbinding maken met de Franz-services", "global.notConnectedToTheInternet" : "U bent niet verbonden met het internet.", + "global.spellchecker.useDefault" : "Gebruik systeemstandaard ({default})", + "global.spellchecking.autodetect" : "Detect language automatically", + "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.language" : "Spelling checken", "import.headline" : "Importeer uw Franz 4-services", "import.notSupportedHeadline" : "Services die nog niet ondersteund worden in Franz 5", "import.skip.label" : "Ik wil services handmatig toevoegen", @@ -59,7 +70,9 @@ "menu.help.support" : "Ondersteuning", "menu.help.tos" : "Servicevoorwaarden", "menu.services" : "Diensten", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Nieuwe dienst toevoegen", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Weergave", "menu.view.enterFullScreen" : "Gebruik volledig scherm", "menu.view.exitFullScreen" : "Volledig scherm verlaten", @@ -92,11 +105,11 @@ "service.crashHandler.text" : "{name} heeft een fout veroorzaakt.", "service.disabledHandler.action" : "Activeer {name}", "service.disabledHandler.headline" : "{name} is uitgeschakeld", - "service.errorHandler.action" : "Laad {name} opnieuw", + "service.errorHandler.action" : "{name} herladen", "service.errorHandler.editAction" : "Bewerk {name}", "service.errorHandler.headline" : "Oh nee!", "service.errorHandler.message" : "Fout", - "service.errorHandler.text" : "{name} has failed to load.", + "service.errorHandler.text" : "{name} kon niet geladen worden.", "services.getStarted" : "Begin", "services.welcome" : "Welkom bij Franz", "settings.account.account.editButton" : "Bewerk account", @@ -117,6 +130,7 @@ "settings.account.invoiceDownload" : "Download", "settings.account.manageSubscription.label" : "Beheer je abonnement", "settings.account.successInfo" : "Je wijzigingen zijn opgeslagen", + "settings.account.tryReloadServices" : "Probeer opnieuw", "settings.account.tryReloadUserInfoRequest" : "Probeer opnieuw", "settings.account.userInfoRequestFailed" : "Kon gebruikersinformatie niet laden", "settings.app.buttonClearAllCache" : "Cache legen", @@ -129,16 +143,13 @@ "settings.app.form.beta" : "Inclusief bètaversies", "settings.app.form.darkMode" : "Stap over naar de donkere kant", "settings.app.form.enableGPUAcceleration" : "Schakel videokaart acceleratie in ", - "settings.app.form.enableMenuBar" : "Toon Franz in menubalk", "settings.app.form.enableSpellchecking" : "Zet spellingcontrole aan", "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk", - "settings.app.form.hideDockIcon" : "Verberg Franz in Dock", "settings.app.form.language" : "Taal", "settings.app.form.minimizeToSystemTray" : "Minimaliseer Franz naar de systeembalk", "settings.app.form.runInBackground" : "Houd Franz op de achtergrond wanneer het venster gesloten wordt", "settings.app.form.showDisabledServices" : "Toon uitgeschakelde services", "settings.app.form.showMessagesBadgesWhenMuted" : "Toon badge met ongelezen berichten wanneer meldingen zijn uitgeschakeld", - "settings.app.form.spellcheckerLanguage" : "Spelling checken", "settings.app.headline" : "Instellingen", "settings.app.headlineAdvanced" : "Geavanceerd", "settings.app.headlineAppearance" : "Weergave", @@ -192,17 +203,15 @@ "settings.service.form.indirectMessages" : "Toon berichtenbadge voor alle nieuwe berichten", "settings.service.form.isMutedInfo" : "Indien uitgeschakeld zullen alle meldinggeluiden en afgespeelde audio uitgeschakeld zijn", "settings.service.form.name" : "Naam", - "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", + "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy instellingen", "settings.service.form.proxy.host" : "Proxy Host\/IP", "settings.service.form.proxy.info" : "Proxy instellingen worden niet gesynchroniseerd met de Franz servers", "settings.service.form.proxy.isEnabled" : "Proxy gebruiken", "settings.service.form.proxy.password" : "Wachtwoord (optioneel)", - "settings.service.form.proxy.port" : "Port", - "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", + "settings.service.form.proxy.port" : "Poort", + "settings.service.form.proxy.restartInfo" : "Start Franz opnieuw na het aanpassen van proxy instellingen.", "settings.service.form.proxy.user" : "Gebruiker (optioneel)", "settings.service.form.saveButton" : "Service opslaan", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Gehost", "settings.service.form.tabOnPremise" : "Zelf-gehost ⭐️", "settings.service.form.team" : "Team", @@ -212,6 +221,7 @@ "settings.services.discoverServices" : "Ontdek services", "settings.services.headline" : "Jouw services", "settings.services.noServicesAdded" : "Je hebt nog geen services toegevoegd.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Service is uitgeschakeld", "settings.services.tooltip.isMuted" : "Alle geluiden zijn uitgeschakeld", "settings.services.tooltip.notificationsDisabled" : "Meldingen zijn uitgeschakeld", @@ -244,10 +254,8 @@ "subscription.euTaxInfo" : "Bewoners binnen EU: lokale belasting kan van toepassing zijn", "subscription.features.ads" : "Geen advertenties, nooit!", "subscription.features.comingSoon" : "komt binnenkort", - "subscription.features.encryptedSync" : "Beveiligde sessie synchronisatie", "subscription.features.noInterruptions" : "Geen haperingen & pop ups over upgrades", - "subscription.features.onpremise" : "Add on-geschikt\/gehoste services zoals HipChat", - "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", + "subscription.features.onpremise.mattermost" : "Voeg op-locatie\/gehoste diensten zoals Mattermost toe", "subscription.features.proxy" : "Proxy understeuning voor diensten", "subscription.features.spellchecker" : "Ondersteuning voor spellingscheck", "subscription.includedFeatures" : "Betaald Franz Premium Supporter Account bevat", @@ -266,12 +274,12 @@ "tabs.item.enableAudio" : "Audio inschakelen", "tabs.item.enableNotification" : "Meldingen inschakelen", "tabs.item.enableService" : "Service inschakelen", - "tabs.item.reload" : "Laad opnieuw", + "tabs.item.reload" : "Herladen", "validation.email" : "{field} is niet geldig", "validation.minLength" : "{field} moet minimaal {length} karakters lang zijn", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} is vereist", "validation.url" : "{field} is niet een geldige URL", "welcome.loginButton" : "Log in op je account", - "welcome.signupButton" : "Maak een gratis account", - "welcome.slogan" : "Messaging die voor jou werkt" + "welcome.signupButton" : "Maak een gratis account" } diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index d45e5ce24..dd70f25f7 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -1,11 +1,22 @@ { "app.errorHandler.action" : "Przeładuj", - "app.errorHandler.headline" : "Something went wrong", + "app.errorHandler.headline" : "Coś poszło nie tak", "feature.delayApp.action" : "Uzyskaj licencję Franz Supporter", - "feature.delayApp.headline" : "Kup licencję Franz Supporter , aby nie czekać", + "feature.delayApp.headline" : "Aby nie czekać kup licencję Franz Supporter", "feature.delayApp.text" : "Franz będzie kontynuował za {seconds} sekund.", + "feature.shareFranz.action.email" : "Send as email", + "feature.shareFranz.action.facebook" : "Share on Facebook", + "feature.shareFranz.action.twitter" : "Share on Twitter", + "feature.shareFranz.headline" : "Franz is better together!", + "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", "global.api.unhealthy" : "Nie można połączyć się z usługami Franz online", "global.notConnectedToTheInternet" : "Nie masz połączenia z Internetem.", + "global.spellchecker.useDefault" : "Użyj domyślnego dla systemu ({default})", + "global.spellchecking.autodetect" : "Detect language automatically", + "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.language" : "Język słownika", "import.headline" : "Importuj usługi Franz 4", "import.notSupportedHeadline" : "Usługi, które nie są jeszcze obsługiwane w Franz 5", "import.skip.label" : "Chcę dodać usługi samodzielnie", @@ -25,7 +36,7 @@ "login.email.label" : "Adres email", "login.headline" : "Zaloguj się", "login.invalidCredentials" : "Adres email lub hasło są błędne", - "login.link.password" : "Wyzeruj hasło", + "login.link.password" : "Przypomnij hasło", "login.link.signup" : "Załóż darmowe konto", "login.password.label" : "Hasło", "login.serverLogout" : "Twoja sesja wygasła, zaloguj się ponownie.", @@ -36,7 +47,7 @@ "menu.app.hideOthers" : "Ukryj pozostałe", "menu.app.quit" : "Zakończ", "menu.app.settings" : "Ustawienia", - "menu.app.unhide" : "Pokaż", + "menu.app.unhide" : "Pokaż więcej", "menu.edit" : "Edytuj", "menu.edit.copy" : "Skopiuj", "menu.edit.cut" : "Wytnij", @@ -59,7 +70,9 @@ "menu.help.support" : "Wsparcie", "menu.help.tos" : "Warunki świadczenia usług", "menu.services" : "Usługi", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Dodaj nową usługę...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Widok", "menu.view.enterFullScreen" : "Włącz tryb pełnoekranowy", "menu.view.exitFullScreen" : "Zakończ tryb pełnoekranowy", @@ -68,20 +81,20 @@ "menu.view.resetZoom" : "Domyślny rozmiar", "menu.view.toggleDevTools" : "Pokaż narzędzia developerskie", "menu.view.toggleFullScreen" : "Przełącz tryb pełnoekranowy", - "menu.view.toggleServiceDevTools" : "Włącz narzędzia developerskie serwisu", + "menu.view.toggleServiceDevTools" : "Włącz narzędzia developerskie usługi", "menu.view.zoomIn" : "Powiększ", "menu.view.zoomOut" : "Pomniejsz", "menu.window" : "Okno", "menu.window.close" : "Zamknij", "menu.window.minimize" : "Zminimalizuj", "password.email.label" : "Adres email", - "password.headline" : "Wyzeruj hasło", + "password.headline" : "Przypomnij hasło", "password.link.login" : "Zaloguj się na swoje konto", "password.link.signup" : "Stwórz darmowe konto", "password.noUser" : "Nie znaleziono użytkownika z takim adresem email", "password.submit.label" : "Wyślij", "password.successInfo" : "Proszę sprawdzić swój email", - "premiumFeature.button.upgradeAccount" : "Upgrade account", + "premiumFeature.button.upgradeAccount" : "Ulepsz swoje konto", "pricing.headline" : "Wspieraj Franz", "pricing.link.skipPayment" : "Nie chcę wspierać rozwoju aplikacji Franz.", "pricing.submit.label" : "Chcę wspierać rozwój aplikacji Franz", @@ -96,7 +109,7 @@ "service.errorHandler.editAction" : "Edytuj {name}", "service.errorHandler.headline" : "O nie!", "service.errorHandler.message" : "Błąd", - "service.errorHandler.text" : "{name} has failed to load.", + "service.errorHandler.text" : "Nie udało się załadować {name}.", "services.getStarted" : "Zacznij", "services.welcome" : "Witaj w programie Franz", "settings.account.account.editButton" : "Modyfikuj konta", @@ -117,6 +130,7 @@ "settings.account.invoiceDownload" : "Pobierz", "settings.account.manageSubscription.label" : "Zarządzaj swoimi subskrypcjami", "settings.account.successInfo" : "Twoje zmiany zostały zapisane", + "settings.account.tryReloadServices" : "Spróbuj ponownie", "settings.account.tryReloadUserInfoRequest" : "Spróbuj ponownie", "settings.account.userInfoRequestFailed" : "Nie można wczytać informacji o użytkowniku", "settings.app.buttonClearAllCache" : "Wyczyść pamięć podręczną (cache)", @@ -129,16 +143,13 @@ "settings.app.form.beta" : "Uwzględnij wersje beta", "settings.app.form.darkMode" : "Przejdź na Ciemną Stronę", "settings.app.form.enableGPUAcceleration" : "Włącz akcelerację GPU", - "settings.app.form.enableMenuBar" : "Pokaż Franz na pasku menu", "settings.app.form.enableSpellchecking" : "Włącz sprawdzanie pisowni", "settings.app.form.enableSystemTray" : "Pokaż Franza w obszarze powiadomień", - "settings.app.form.hideDockIcon" : "Ukrywaj ikonę Franz w zasobniku systemowym", "settings.app.form.language" : "Język", "settings.app.form.minimizeToSystemTray" : "Zminimalizuj aplikację Franz", "settings.app.form.runInBackground" : "Zachowaj aplikację Franz w tle po zamknięciu okna", "settings.app.form.showDisabledServices" : "Wyłącz wyświetlanie zakładek z usługami", "settings.app.form.showMessagesBadgesWhenMuted" : "Pokaż licznik nieprzeczytanych wiadomości gdy powiadomienia są wyłączone", - "settings.app.form.spellcheckerLanguage" : "Język słownika", "settings.app.headline" : "Ustawienia", "settings.app.headlineAdvanced" : "Zaawansowane", "settings.app.headlineAppearance" : "Wygląd", @@ -192,17 +203,15 @@ "settings.service.form.indirectMessages" : "Pokaż ikonę wiadomości dla wszystkich nowych wiadomości", "settings.service.form.isMutedInfo" : "Kiedy nieaktywne, wszystkie dźwięki powiadomień są wyciszone", "settings.service.form.name" : "Nazwa", - "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", + "settings.service.form.proxy.headline" : "Ustawienia Proxy HTTP\/HTTPS", "settings.service.form.proxy.host" : "Host Proxy\/IP", "settings.service.form.proxy.info" : "Ustawienia proxy nie będą zsynchronizowane z serwerami Franza.", "settings.service.form.proxy.isEnabled" : "Użyj Proxy", "settings.service.form.proxy.password" : "Hasło (opcjonalnie)", "settings.service.form.proxy.port" : "Port", - "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", + "settings.service.form.proxy.restartInfo" : "Uruchom ponownie Franz po zmianie ustawień proxy.", "settings.service.form.proxy.user" : "Użytkownik (opcjonalnie)", "settings.service.form.saveButton" : "Zapisz usługę", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Hostowane", "settings.service.form.tabOnPremise" : "Hostowane lokalnie ⭐️", "settings.service.form.team" : "Zespół", @@ -212,6 +221,7 @@ "settings.services.discoverServices" : "Przeglądaj usługi", "settings.services.headline" : "Twoje usługi", "settings.services.noServicesAdded" : "Nie dodałeś jeszcze żadnych usług.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Usługa jest nieaktywna", "settings.services.tooltip.isMuted" : "Wszystkie dźwięki są wyciszone", "settings.services.tooltip.notificationsDisabled" : "Powiadomienia są nieaktywne", @@ -244,12 +254,10 @@ "subscription.euTaxInfo" : "Rezydenci UE: lokalne stawki VAT mogą zostać zaaplikowane", "subscription.features.ads" : "Brak reklam, na zawsze!", "subscription.features.comingSoon" : "wkrótce dostępne", - "subscription.features.encryptedSync" : "Szyfrowana synchronizacja sesji", - "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "Dodawanie lokalnych\/hostowanych usług takich jak HipChat", - "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", + "subscription.features.noInterruptions" : "Bez opóźnień i przypominania o ulepszeniu licencji", + "subscription.features.onpremise.mattermost" : "Dodaj prywatnie hostowane usługi takie jak Mattermost", "subscription.features.proxy" : "Obsługa proxy dla usług", - "subscription.features.spellchecker" : "Support for spellchecker", + "subscription.features.spellchecker" : "Wsparcie dla sprawdzania pisowni", "subscription.includedFeatures" : "Płatne konto Franz Premium obejmuje", "subscription.paymentSessionError" : "Nie można wczytać formularza płatności\"", "subscription.submit.label" : "Chcę wspierać rozwój aplikacji Franz", @@ -269,9 +277,9 @@ "tabs.item.reload" : "Przeładuj", "validation.email" : "Pole {field} nie jest poprawne", "validation.minLength" : "Pole {field} powinno składać się z co najmniej {length} znaków", + "validation.oneRequired" : "At least one is required", "validation.required" : "Pole {field} jest wymagane", "validation.url" : "Pole {field} nie jest poprawnym ciągiem URL.", "welcome.loginButton" : "Zaloguj się na swoje konto", - "welcome.signupButton" : "Stwórz darmowe konto", - "welcome.slogan" : "Komunikator który działa" + "welcome.signupButton" : "Stwórz darmowe konto" } diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index c0cf0039f..490771c39 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -1,11 +1,22 @@ { "app.errorHandler.action" : "Recarregar", - "app.errorHandler.headline" : "Something went wrong", + "app.errorHandler.headline" : "Alguma coisa deu errado", "feature.delayApp.action" : "Adquira uma licença Franz Supporter", "feature.delayApp.headline" : "Por favor, adquira uma licença Franz Supporter para pular o tempo de espera", "feature.delayApp.text" : "Franz continuará em {seconds} segundos.", + "feature.shareFranz.action.email" : "Enviar como e-mail", + "feature.shareFranz.action.facebook" : "Compartilhar no Facebook", + "feature.shareFranz.action.twitter" : "Compartilhar no Twitter", + "feature.shareFranz.headline" : "Franz é melhor em grupo!", + "feature.shareFranz.shareText.email" : "Eu adicionei {count} serviços ao Franz! Adquira o aplicativo gratuito para WhatsApp, Messenger, Slack, Skype e mais em www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "Adicionei o serviço de {count} ao Franz! Adquira o app grátis para usar WhatsApp, Messenger, Slack, Skype e mais em www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Conte aos seus amigos e colegas o quão incrível Franz é e nos ajude a espalhar a mensagem. ", "global.api.unhealthy" : "Não foi possível conectar-se aos serviços on-line do Franz.", "global.notConnectedToTheInternet" : "Você não está conectado à internet", + "global.spellchecker.useDefault" : "Use o padrão do sistema ({default})", + "global.spellchecking.autodetect" : "Detectar linguagem automaticamente.", + "global.spellchecking.autodetect.short" : "Automático", + "global.spellchecking.language" : "Idioma de verificação ortográfica", "import.headline" : "Importe seus serviços do Franz 4 ", "import.notSupportedHeadline" : "Serviços ainda não suportados pelo Franz 5 ", "import.skip.label" : "Quero adicionar serviços manualmente", @@ -59,7 +70,9 @@ "menu.help.support" : "Suporte", "menu.help.tos" : "Termos de Serviço", "menu.services" : "Serviços", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Adicionar Novo Serviço", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Visualizar ", "menu.view.enterFullScreen" : "Modo Tela Cheia", "menu.view.exitFullScreen" : "Sair da Tela Cheia", @@ -96,7 +109,7 @@ "service.errorHandler.editAction" : "Editar {name}", "service.errorHandler.headline" : "Ah, não!", "service.errorHandler.message" : "Erro", - "service.errorHandler.text" : "{name} has failed to load.", + "service.errorHandler.text" : "{name} não pôde ser carregado.", "services.getStarted" : "Iniciar", "services.welcome" : "Bem-vindo ao Franz!", "settings.account.account.editButton" : "Editar conta", @@ -117,6 +130,7 @@ "settings.account.invoiceDownload" : "Baixar", "settings.account.manageSubscription.label" : "Gerencie a sua assinatura", "settings.account.successInfo" : "Suas alterações foram gravadas", + "settings.account.tryReloadServices" : "Tente novamente", "settings.account.tryReloadUserInfoRequest" : "Tente novamente", "settings.account.userInfoRequestFailed" : "Não foi possível carregar as informações do usuário", "settings.app.buttonClearAllCache" : "Limpar cache", @@ -129,16 +143,13 @@ "settings.app.form.beta" : "Incluir versões beta", "settings.app.form.darkMode" : "Venha para o Lado Negro da força", "settings.app.form.enableGPUAcceleration" : "Ativar Aceleração de GPU", - "settings.app.form.enableMenuBar" : "Mostrar Franz na Barra de Menu", "settings.app.form.enableSpellchecking" : "Ativar correção ortográfica", "settings.app.form.enableSystemTray" : "Exibir o Franz na barra de sistema", - "settings.app.form.hideDockIcon" : "Ocultar ícone do Franz no Dock", "settings.app.form.language" : "Idioma", "settings.app.form.minimizeToSystemTray" : "Minimizar o Franz para a área de sistema", "settings.app.form.runInBackground" : "Manter o Franz no fundo quando fechar a janela", "settings.app.form.showDisabledServices" : "Mostrar abas de serviços desativados", "settings.app.form.showMessagesBadgesWhenMuted" : "Mostrar ícone de mensagem não lida quando as notificações estiverem desativadas", - "settings.app.form.spellcheckerLanguage" : "Idioma de verificação ortográfica", "settings.app.headline" : "Configurações", "settings.app.headlineAdvanced" : "Avançado", "settings.app.headlineAppearance" : "Aparência", @@ -192,17 +203,15 @@ "settings.service.form.indirectMessages" : "Mostrar avisos para todas as mensagens", "settings.service.form.isMutedInfo" : "Quando desativado, as notificações sonoras e áudios ficarão em silêncio", "settings.service.form.name" : "Nome", - "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", + "settings.service.form.proxy.headline" : "Configurações de HTTP\/HTTPS Proxy", "settings.service.form.proxy.host" : "Proxy Host\/IP", "settings.service.form.proxy.info" : "As configurações de proxy não serão sincronizadas com os servidores do Franz.", "settings.service.form.proxy.isEnabled" : "Usar o Proxy", "settings.service.form.proxy.password" : "Senha (opcional)", - "settings.service.form.proxy.port" : "Port", - "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", + "settings.service.form.proxy.port" : "Porta", + "settings.service.form.proxy.restartInfo" : "Por favor, reinicie o Franz após alterar as configurações de proxy.", "settings.service.form.proxy.user" : "Usuário (opcional)", "settings.service.form.saveButton" : "Salvar serviço", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Hospedado", "settings.service.form.tabOnPremise" : "Auto-hospedado ⭐️", "settings.service.form.team" : "Equipe", @@ -212,6 +221,7 @@ "settings.services.discoverServices" : "Descobrir serviços", "settings.services.headline" : "Seus serviços", "settings.services.noServicesAdded" : "Você ainda não adicionou nenhum serviço.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "O serviço está desativado", "settings.services.tooltip.isMuted" : "Sem som", "settings.services.tooltip.notificationsDisabled" : "Notificações desativadas", @@ -244,10 +254,8 @@ "subscription.euTaxInfo" : "Residentes na União Europeia: taxas locais serão aplicadas", "subscription.features.ads" : "Sem anúncios, pra sempre!", "subscription.features.comingSoon" : "em breve", - "subscription.features.encryptedSync" : "Sincronização encriptada das sessões", - "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "Adicionar serviços locais\/hospedados como o HipChat", - "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", + "subscription.features.noInterruptions" : "Sem demora e sem chateação para comprar uma licença. ", + "subscription.features.onpremise.mattermost" : "Adicionar serviços locais\/hospedados como o Mattermost", "subscription.features.proxy" : "Suporte de proxy para serviços", "subscription.features.spellchecker" : "Suporte para corretor ortográfico", "subscription.includedFeatures" : "A conta Apoiador Franz Premium inclui", @@ -269,9 +277,9 @@ "tabs.item.reload" : "Recarregar", "validation.email" : "inválido", "validation.minLength" : "{campo} deve ter pelo menos {comprimento} mais caracteres ", + "validation.oneRequired" : "At least one is required", "validation.required" : "{campo} obrigatório", "validation.url" : "{campo} essa URL não é válida", "welcome.loginButton" : "Entrar na sua conta", - "welcome.signupButton" : "Criar uma conta grátis", - "welcome.slogan" : "Mensagens que funcionam para você" + "welcome.signupButton" : "Criar uma conta grátis" } diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json index 80e8094f5..7e23aa0ba 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json @@ -1,14 +1,25 @@ { "app.errorHandler.action" : "Recarregar", - "app.errorHandler.headline" : "Something went wrong", - "feature.delayApp.action" : "Get a Franz Supporter License", - "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", - "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", + "app.errorHandler.headline" : "Alguma coisa correu mal", + "feature.delayApp.action" : "Faz parte do grupo de apoio do Franz", + "feature.delayApp.headline" : "Por favor compre uma licença Franz Supporter para saltar a fila de espera", + "feature.delayApp.text" : "Franz irá continuar em {seconds} segundos.", + "feature.shareFranz.action.email" : "Send as email", + "feature.shareFranz.action.facebook" : "Share on Facebook", + "feature.shareFranz.action.twitter" : "Share on Twitter", + "feature.shareFranz.headline" : "Franz is better together!", + "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", "global.api.unhealthy" : "Não foi possível estabelecer ligação aos serviços do Franz", - "global.notConnectedToTheInternet" : "Não existe ligação à Internet", - "import.headline" : "Importe os seus serviços do Franz 4", - "import.notSupportedHeadline" : "Serviços ainda não suportados pelo Franz 5", - "import.skip.label" : "Pretendo adicionar serviços manualmente", + "global.notConnectedToTheInternet" : "Não estás ligado à Internet", + "global.spellchecker.useDefault" : "Utilizar o Sistema por Omissão ({default})", + "global.spellchecking.autodetect" : "Detect language automatically", + "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.language" : "Linguagem para correção ortográfica", + "import.headline" : "Importa os teus serviços do Franz", + "import.notSupportedHeadline" : "Estes serviços ainda não são suportados pelo Franz 5", + "import.skip.label" : "Eu quero adicionar serviços manualmente", "import.submit.label" : "Importar serviços", "infobar.buttonChangelog" : "O que há de novo?", "infobar.buttonInstallUpdate" : "Reiniciar e instalar atualizações", @@ -59,14 +70,16 @@ "menu.help.support" : "Suporte", "menu.help.tos" : "Termos do Serviço", "menu.services" : "Serviços", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Adicionar Novo Serviço...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Ver", "menu.view.enterFullScreen" : "Ativar Modo de Ecrã Completo", "menu.view.exitFullScreen" : "Sair do Modo de Ecrã Completo", "menu.view.reloadFranz" : "Recarregar Franz", "menu.view.reloadService" : "Recarregar serviço", "menu.view.resetZoom" : "Tamanho Real", - "menu.view.toggleDevTools" : "Activar\/Desativar Ferramentas de Desenvolvimento", + "menu.view.toggleDevTools" : "Ativar\/Desativar Ferramentas de Desenvolvimento", "menu.view.toggleFullScreen" : "Ativar\/Desativar Ecrã Completo", "menu.view.toggleServiceDevTools" : "Ativar\/Desativar Ferramentas de Desenvolvimento de Serviços", "menu.view.zoomIn" : "Aumentar", @@ -81,7 +94,7 @@ "password.noUser" : "Não existe nenhuma conta associada a esse endereço de e-mail", "password.submit.label" : "Submeter", "password.successInfo" : "Por favor verifique o seu endereço de e-mail", - "premiumFeature.button.upgradeAccount" : "Upgrade account", + "premiumFeature.button.upgradeAccount" : "Atualiza a tua conta", "pricing.headline" : "Apoie o Franz", "pricing.link.skipPayment" : "Não pretendo patrocinar o desenvolvimento do Franz", "pricing.submit.label" : "Pretendo patrocinar o desenvolvimento do Franz", @@ -96,11 +109,11 @@ "service.errorHandler.editAction" : "Editar {name}", "service.errorHandler.headline" : "Oh não!", "service.errorHandler.message" : "Erro", - "service.errorHandler.text" : "{name} has failed to load.", + "service.errorHandler.text" : "{name} falhou o carregamento", "services.getStarted" : "Vamos começar", "services.welcome" : "Bem-vindo ao Franz", "settings.account.account.editButton" : "Editar conta", - "settings.account.accountType.basic" : "Conta básica", + "settings.account.accountType.basic" : "Conta Básica", "settings.account.accountType.premium" : "Conta Premium", "settings.account.buttonSave" : "Atualizar o perfil", "settings.account.deleteAccount" : "Apagar conta", @@ -117,6 +130,7 @@ "settings.account.invoiceDownload" : "Transferir", "settings.account.manageSubscription.label" : "Gerir as minhas subscrições", "settings.account.successInfo" : "As suas alterações foram efetuadas com sucesso", + "settings.account.tryReloadServices" : "Tentar novamente", "settings.account.tryReloadUserInfoRequest" : "Tentar novamente", "settings.account.userInfoRequestFailed" : "Não é possível carregar a informação do utilizador", "settings.app.buttonClearAllCache" : "Limpar cache", @@ -127,18 +141,15 @@ "settings.app.form.autoLaunchInBackground" : "Abrir em segundo plano", "settings.app.form.autoLaunchOnStart" : "Iniciar o Franz após iniciar o computador", "settings.app.form.beta" : "Incluir versões instáveis (beta)", - "settings.app.form.darkMode" : "Join the Dark Side", + "settings.app.form.darkMode" : "Junta-te ao Lado Negro", "settings.app.form.enableGPUAcceleration" : "Activar Aceleração de GPU", - "settings.app.form.enableMenuBar" : "Mostrar Franz na Barra de Menu", "settings.app.form.enableSpellchecking" : "Ativar verificação ortográfica", "settings.app.form.enableSystemTray" : "Mostrar o Franz na barra do sistema", - "settings.app.form.hideDockIcon" : "Esconder ícone na Dock", "settings.app.form.language" : "Idioma", "settings.app.form.minimizeToSystemTray" : "Minimizar o Franz para a barra do sistema", "settings.app.form.runInBackground" : "Manter o Franz em segundo plano ao fechar a janela", "settings.app.form.showDisabledServices" : "Apresentar separadores de serviços desativados", "settings.app.form.showMessagesBadgesWhenMuted" : "Apresentar emblema com o número de mensagens não lidas quando as notificações estão desativadas", - "settings.app.form.spellcheckerLanguage" : "Spell checking language", "settings.app.headline" : "Definições", "settings.app.headlineAdvanced" : "Avançado", "settings.app.headlineAppearance" : "Aparência", @@ -151,10 +162,10 @@ "settings.app.updateStatusAvailable" : "Atualização disponivel, a transferir...", "settings.app.updateStatusSearching" : "A procurar atualizações", "settings.app.updateStatusUpToDate" : "Está a usar a versão mais recente do Franz", - "settings.invite.headline" : "Convide amigos", + "settings.invite.headline" : "Convide Amigos", "settings.navigation.account" : "Conta", "settings.navigation.availableServices" : "Serviços disponíveis", - "settings.navigation.inviteFriends" : "Convide amigos", + "settings.navigation.inviteFriends" : "Convide Amigos", "settings.navigation.logout" : "Terminar sessão", "settings.navigation.settings" : "Definições", "settings.navigation.yourServices" : "Os seus serviços", @@ -163,9 +174,9 @@ "settings.recipes.headline" : "Serviços disponíveis", "settings.recipes.missingService" : "Falta um serviço?", "settings.recipes.mostPopular" : "Os mais populares", - "settings.recipes.nothingFound" : "Lamentamos, nenhum serviço corresponde ao pesquisado.", - "settings.recipes.servicesSuccessfulAddedInfo" : "Serviço adicionado", - "settings.searchService" : "Pesquisa de serviço", + "settings.recipes.nothingFound" : "Lamentamos, nenhum serviço corresponde ao termo pesquisado.", + "settings.recipes.servicesSuccessfulAddedInfo" : "Serviço adicionado com sucesso", + "settings.searchService" : "Pesquisar erviço", "settings.service.error.goBack" : "Voltar aos serviços", "settings.service.error.headline" : "Erro", "settings.service.error.message" : "Não foi possível carregar a receita do serviço.", @@ -179,30 +190,28 @@ "settings.service.form.editServiceHeadline" : "Editar {name}", "settings.service.form.enableAudio" : "Ativar áudio", "settings.service.form.enableBadge" : "Mostrar emblemas de mensagens não lidas", - "settings.service.form.enableDarkMode" : "Enable Dark Mode", + "settings.service.form.enableDarkMode" : "Ativar o Tema Escuro", "settings.service.form.enableNotification" : "Ativar notificações", "settings.service.form.enableService" : "Ativar serviço", "settings.service.form.headlineBadges" : "Emblema de mensagem não lida", "settings.service.form.headlineGeneral" : "Geral", "settings.service.form.headlineNotifications" : "Notificações", - "settings.service.form.icon" : "Personalizar ícone", + "settings.service.form.icon" : "Ícone personalizado", "settings.service.form.iconDelete" : "Apagar", "settings.service.form.iconUpload" : "Arraste a sua imagem, ou clique aqui", "settings.service.form.indirectMessageInfo" : "Será notificado sobre todas as novas mensagens num canal, não apenas @username, @channel, @here, ...", "settings.service.form.indirectMessages" : "Mostrar o emblema da mensagem para todas as novas mensagens", "settings.service.form.isMutedInfo" : "Quando desativado, todos sons e reproduções de áudio serão silenciados", "settings.service.form.name" : "Nome", - "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", - "settings.service.form.proxy.host" : "Proxy Host\/IP", - "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", - "settings.service.form.proxy.isEnabled" : "Use Proxy", - "settings.service.form.proxy.password" : "Password (optional)", - "settings.service.form.proxy.port" : "Port", - "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", - "settings.service.form.proxy.user" : "User (optional)", + "settings.service.form.proxy.headline" : "Definições HTTP\/HTTPS Proxy", + "settings.service.form.proxy.host" : "Host\/IP proxy", + "settings.service.form.proxy.info" : "As definições do proxy não serão guardadas nos servidores do Franz.", + "settings.service.form.proxy.isEnabled" : "Usar Proxy", + "settings.service.form.proxy.password" : "Palavra-chave (opcional)", + "settings.service.form.proxy.port" : "Porta", + "settings.service.form.proxy.restartInfo" : "Reinicie, por favor, após atualizar as definições do Franz", + "settings.service.form.proxy.user" : "Utilizador (opcional)", "settings.service.form.saveButton" : "Guardar serviço", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Com domínio", "settings.service.form.tabOnPremise" : "Com domínio próprio ⭐️", "settings.service.form.team" : "Equipa", @@ -211,7 +220,8 @@ "settings.services.deletedInfo" : "O serviço foi apagado", "settings.services.discoverServices" : "Descobrir serviços", "settings.services.headline" : "Os seus serviços", - "settings.services.noServicesAdded" : "Ainda não adicionou um serviço.", + "settings.services.noServicesAdded" : "Ainda não adicionou nenhum serviço.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "O serviço está desativado", "settings.services.tooltip.isMuted" : "Todos os sons estão silenciados", "settings.services.tooltip.notificationsDisabled" : "As notificações estão desativadas", @@ -244,12 +254,10 @@ "subscription.euTaxInfo" : "Residentes EU: Taxas locais podem ser aplicadas", "subscription.features.ads" : "Sem anúncios, para sempre!", "subscription.features.comingSoon" : "em breve", - "subscription.features.encryptedSync" : "Sincronização encriptada de sessão", - "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "Adicionar serviços 'on-premise'\/hosted como o HipChat", - "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", - "subscription.features.proxy" : "Proxy support for services", - "subscription.features.spellchecker" : "Support for spellchecker", + "subscription.features.noInterruptions" : "Sem atrasos na aplicação nem mensagens para comprar uma licença", + "subscription.features.onpremise.mattermost" : "Adicione serviços como Mattermost no local ou online", + "subscription.features.proxy" : "Suporte Proxy para os serviços", + "subscription.features.spellchecker" : "Suporte para correção ortográfica", "subscription.includedFeatures" : "Ao subscrever uma Conta Premium, tem acesso a", "subscription.paymentSessionError" : "Erro no serviço de pagamento", "subscription.submit.label" : "Pretendo ajudar o desenvolvimento do Franz", @@ -268,10 +276,10 @@ "tabs.item.enableService" : "Ativar serviço", "tabs.item.reload" : "Recarregar", "validation.email" : "{field} não é válido", - "validation.minLength" : "{field} deveria ter pelo menos {comprimento} caracteres", + "validation.minLength" : "{field} deveria ter pelo menos {length} caracteres", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} é obrigatório", "validation.url" : "{field} não é uma hiperligação válida", "welcome.loginButton" : "Iniciar sessão", - "welcome.signupButton" : "Criar uma conta gratuita", - "welcome.slogan" : "Sistema de mensagens feito para si" + "welcome.signupButton" : "Criar uma conta gratuita" } diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index b605afc4d..d8e02b7f3 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -1,11 +1,22 @@ { "app.errorHandler.action" : "Перезагрузить", - "app.errorHandler.headline" : "Something went wrong", - "feature.delayApp.action" : "Get a Franz Supporter License", - "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", - "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", + "app.errorHandler.headline" : "Что-то пошло не так", + "feature.delayApp.action" : "Получите лицензию Franz Supporter", + "feature.delayApp.headline" : "Пожалуйста приобретите лицензию Franz Supporter чтобы отменить ожидание", + "feature.delayApp.text" : "Franz продолжит работу через {seconds} секунд.", + "feature.shareFranz.action.email" : "Send as email", + "feature.shareFranz.action.facebook" : "Share on Facebook", + "feature.shareFranz.action.twitter" : "Share on Twitter", + "feature.shareFranz.headline" : "Franz is better together!", + "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", "global.api.unhealthy" : "Невозможно подключиться к онлайн-сервисам Franz", "global.notConnectedToTheInternet" : "Вы не подключены к сети Интернет", + "global.spellchecker.useDefault" : "Использовать системные параметры по умолчанию ({default})", + "global.spellchecking.autodetect" : "Detect language automatically", + "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.language" : "Проверка правописания", "import.headline" : "Импортировать ваши сервисы из Franz 4", "import.notSupportedHeadline" : "Сервисы пока ещё не поддерживаются в Franz 5", "import.skip.label" : "Я хочу добавить сервисы вручную", @@ -58,8 +69,10 @@ "menu.help.privacy" : "Политика конфиденциальности", "menu.help.support" : "Поддержка", "menu.help.tos" : "Условия использования", - "menu.services" : "Службы", + "menu.services" : "Сервис", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Добавить новый сервис...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Вид", "menu.view.enterFullScreen" : "На весь экран", "menu.view.exitFullScreen" : "В окне", @@ -81,7 +94,7 @@ "password.noUser" : "Не найдено пользователя с таким адресом электронной почты", "password.submit.label" : "Принять", "password.successInfo" : "Проверьте вашу электронную почту", - "premiumFeature.button.upgradeAccount" : "Upgrade account", + "premiumFeature.button.upgradeAccount" : "Перейти на платную подписку", "pricing.headline" : "Поддержать Franz", "pricing.link.skipPayment" : "Я не хочу поддерживать разработку Franz.", "pricing.submit.label" : "Я хочу поддержать разработку Franz", @@ -96,7 +109,7 @@ "service.errorHandler.editAction" : "Редактирование {name}", "service.errorHandler.headline" : "О, нет!", "service.errorHandler.message" : "Ошибка", - "service.errorHandler.text" : "{name} has failed to load.", + "service.errorHandler.text" : "{name} не смог загрузиться.", "services.getStarted" : "Начать работу", "services.welcome" : "Добро пожаловать во Franz", "settings.account.account.editButton" : "Редактировать аккаунт", @@ -117,6 +130,7 @@ "settings.account.invoiceDownload" : "Скачать", "settings.account.manageSubscription.label" : "Управление вашей подпиской", "settings.account.successInfo" : "Ваши изменения были сохранены", + "settings.account.tryReloadServices" : "Попробовать снова", "settings.account.tryReloadUserInfoRequest" : "Попробовать снова", "settings.account.userInfoRequestFailed" : "Невозможно загрузить информацию пользователя", "settings.app.buttonClearAllCache" : "Очистить кэш", @@ -127,18 +141,15 @@ "settings.app.form.autoLaunchInBackground" : "Открывать в фоне", "settings.app.form.autoLaunchOnStart" : "Запускать Franz при старте", "settings.app.form.beta" : "Включая бета версии", - "settings.app.form.darkMode" : "Join the Dark Side", + "settings.app.form.darkMode" : "Перейти на Тёмную сторону", "settings.app.form.enableGPUAcceleration" : "Включить ускорение GPU", - "settings.app.form.enableMenuBar" : "Показывать Franz на панели меню", "settings.app.form.enableSpellchecking" : "Включить проверку правописания", "settings.app.form.enableSystemTray" : "Показывать Franz в системном трее", - "settings.app.form.hideDockIcon" : "Спрятать иконку Franz на панели", "settings.app.form.language" : "Язык", "settings.app.form.minimizeToSystemTray" : "Сворачивать Franz в системный трей", "settings.app.form.runInBackground" : "Оставлять Franz в фоне при закрытии окна", "settings.app.form.showDisabledServices" : "Показывать вкладки отключённых служб", "settings.app.form.showMessagesBadgesWhenMuted" : "Показывать значок непрочитанного сообщения при отключённых уведомлениях", - "settings.app.form.spellcheckerLanguage" : "Spell checking language", "settings.app.headline" : "Настройки", "settings.app.headlineAdvanced" : "Дополнительно", "settings.app.headlineAppearance" : "Внешний вид", @@ -176,10 +187,10 @@ "settings.service.form.customUrlUpgradeAccount" : "Улучшить ваш аккаунт", "settings.service.form.customUrlValidationError" : "Невозможно проверить сервер {name}.", "settings.service.form.deleteButton" : "Удалить сервис", - "settings.service.form.editServiceHeadline" : "Редактирование {name}", + "settings.service.form.editServiceHeadline" : "Редактировать {name}", "settings.service.form.enableAudio" : "Включить звук", "settings.service.form.enableBadge" : "Показывать иконку непрочитанных сообщений", - "settings.service.form.enableDarkMode" : "Enable Dark Mode", + "settings.service.form.enableDarkMode" : "Включить Тёмный режим", "settings.service.form.enableNotification" : "Включить уведомления", "settings.service.form.enableService" : "Включить сервис", "settings.service.form.headlineBadges" : "Значки непрочитанных сообщений", @@ -192,17 +203,15 @@ "settings.service.form.indirectMessages" : "Показывать значок уведомлений для всех новых сообщений", "settings.service.form.isMutedInfo" : "Когда выключено, все звуковые уведомления будут отключены", "settings.service.form.name" : "Название", - "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", - "settings.service.form.proxy.host" : "Proxy Host\/IP", - "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", - "settings.service.form.proxy.isEnabled" : "Use Proxy", - "settings.service.form.proxy.password" : "Password (optional)", - "settings.service.form.proxy.port" : "Port", - "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", - "settings.service.form.proxy.user" : "User (optional)", + "settings.service.form.proxy.headline" : "Настройки Прокси HTTP\/HTTPS", + "settings.service.form.proxy.host" : "Прокси Host\/IP", + "settings.service.form.proxy.info" : "Настройки прокси не будут синхронизированны с серверами Franz", + "settings.service.form.proxy.isEnabled" : "Использовать прокси", + "settings.service.form.proxy.password" : "Пароль (опционально)", + "settings.service.form.proxy.port" : "Порт", + "settings.service.form.proxy.restartInfo" : "Пожалуйста перезапустите Franz после изменения настроек прокси.", + "settings.service.form.proxy.user" : "Пользователь (опционально)", "settings.service.form.saveButton" : "Сохранить сервис", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Размещено", "settings.service.form.tabOnPremise" : "Свой хостинг ⭐️", "settings.service.form.team" : "Команда", @@ -212,6 +221,7 @@ "settings.services.discoverServices" : "Найти сервисы", "settings.services.headline" : "Ваши сервисы", "settings.services.noServicesAdded" : "Вы пока не добавили никаких сервисов.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Сервис отключен", "settings.services.tooltip.isMuted" : "Все звуки отключены", "settings.services.tooltip.notificationsDisabled" : "Уведомления отключены", @@ -244,12 +254,10 @@ "subscription.euTaxInfo" : "Резидентам ЕвроСоюза: могут применяться местные налоги", "subscription.features.ads" : "Без рекламы, навсегда!", "subscription.features.comingSoon" : "скоро", - "subscription.features.encryptedSync" : "Зашифрованные сессии синхронизации", - "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "Добавление облачных служб или служб на своём хостинге типа HipChat", - "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", - "subscription.features.proxy" : "Proxy support for services", - "subscription.features.spellchecker" : "Support for spellchecker", + "subscription.features.noInterruptions" : "Никаких задержек и предложений перейти на платную версию", + "subscription.features.onpremise.mattermost" : "Локальные\/размещенные на хостинге сервисы, такие как Mattermost", + "subscription.features.proxy" : "Подержка прокси для сервисов", + "subscription.features.spellchecker" : "Поддержка проверки правописания", "subscription.includedFeatures" : "Платный премиум аккаунт Franz включает", "subscription.paymentSessionError" : "Невозможно загрузить форму оплаты", "subscription.submit.label" : "Я хочу поддержать разработку Franz", @@ -269,9 +277,9 @@ "tabs.item.reload" : "Перезагрузить", "validation.email" : "{field} недействительно", "validation.minLength" : "{field} должно быть не менее {length} символов", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} обязательно", "validation.url" : "{field} является недействительной ссылкой", "welcome.loginButton" : "Вход", - "welcome.signupButton" : "Создать бесплатный аккаунт", - "welcome.slogan" : "Общение, которое работает для вас" + "welcome.signupButton" : "Создать бесплатный аккаунт" } diff --git a/src/i18n/locales/sk.json b/src/i18n/locales/sk.json index ca7335fe9..688490b58 100644 --- a/src/i18n/locales/sk.json +++ b/src/i18n/locales/sk.json @@ -4,8 +4,19 @@ "feature.delayApp.action" : "Get a Franz Supporter License", "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", + "feature.shareFranz.action.email" : "Send as email", + "feature.shareFranz.action.facebook" : "Share on Facebook", + "feature.shareFranz.action.twitter" : "Share on Twitter", + "feature.shareFranz.headline" : "Franz is better together!", + "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", "global.api.unhealthy" : "Nedá sa pripojiť k online službám Franz", "global.notConnectedToTheInternet" : "Nie ste pripojení k internetu.", + "global.spellchecker.useDefault" : "Use System Default ({default})", + "global.spellchecking.autodetect" : "Detect language automatically", + "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.language" : "Spell checking language", "import.headline" : "Importovať vaše služby z Franz 4", "import.notSupportedHeadline" : "Služby zatiaľ nie sú podporované vo verzii Franz 5", "import.skip.label" : "Chcem pridať služby ručne", @@ -59,7 +70,9 @@ "menu.help.support" : "Podpora", "menu.help.tos" : "Podmienky použitia", "menu.services" : "Služby", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Pridať novú službu...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Zobraziť", "menu.view.enterFullScreen" : "Na celú obrazovku", "menu.view.exitFullScreen" : "Ukončiť režim na celú obrazovku", @@ -117,6 +130,7 @@ "settings.account.invoiceDownload" : "Prevziať", "settings.account.manageSubscription.label" : "Spravovať vaše odoberanie", "settings.account.successInfo" : "Vaše zmeny boli uložené", + "settings.account.tryReloadServices" : "Skúsiť znova", "settings.account.tryReloadUserInfoRequest" : "Skúsiť znova", "settings.account.userInfoRequestFailed" : "Nebolo možné načítať informácie o používateľovi", "settings.app.buttonClearAllCache" : "Vyčistiť vyrovnávaciu pamäť", @@ -129,16 +143,13 @@ "settings.app.form.beta" : "Vrátane beta verzií", "settings.app.form.darkMode" : "Join the Dark Side", "settings.app.form.enableGPUAcceleration" : "Zapnúť GPU zrýchlenie", - "settings.app.form.enableMenuBar" : "Zobraziť Franz v ponuke menu", "settings.app.form.enableSpellchecking" : "Zapnúť kontrolu pravopisu", "settings.app.form.enableSystemTray" : "Zobrazovať Franz v systémovej lište", - "settings.app.form.hideDockIcon" : "Skryť ikonu Franz v doku", "settings.app.form.language" : "Jazyk", "settings.app.form.minimizeToSystemTray" : "Minimalizovať Franz do systémovej lišty", "settings.app.form.runInBackground" : "Po zatvorení okna ponechať Franz spustený na pozadí", "settings.app.form.showDisabledServices" : "Zobraziť záložky vypnutých služieb", "settings.app.form.showMessagesBadgesWhenMuted" : "Zobraziť symbol pre neprečítané správy, keď sú vypnuté upozornenia", - "settings.app.form.spellcheckerLanguage" : "Spell checking language", "settings.app.headline" : "Nastavenia", "settings.app.headlineAdvanced" : "Pokročilé", "settings.app.headlineAppearance" : "Vzhľad", @@ -201,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", "settings.service.form.proxy.user" : "User (optional)", "settings.service.form.saveButton" : "Uložiť službu", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Hostované", "settings.service.form.tabOnPremise" : "Vlastné hostovanie ⭐️", "settings.service.form.team" : "Tím", @@ -212,6 +221,7 @@ "settings.services.discoverServices" : "Preskúmať služby", "settings.services.headline" : "Vaše služby", "settings.services.noServicesAdded" : "Doposiaľ ste nepridali žiadne služby.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Služba je vypnutá", "settings.services.tooltip.isMuted" : "Všetky zvuky sú stíšené", "settings.services.tooltip.notificationsDisabled" : "Oznámenia sú vypnuté", @@ -244,9 +254,7 @@ "subscription.euTaxInfo" : "Pre obyvateľov EÚ: môže byť aplikovaná miestna daň", "subscription.features.ads" : "Žiadne reklamy, nikdy!", "subscription.features.comingSoon" : "už čoskoro", - "subscription.features.encryptedSync" : "Šifrovaná synchronizácia relácie", "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "Pridať lokálne hostované služby, ako napr. HipChat", "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", "subscription.features.proxy" : "Proxy support for services", "subscription.features.spellchecker" : "Support for spellchecker", @@ -269,9 +277,9 @@ "tabs.item.reload" : "Obnoviť", "validation.email" : "{field} je neplatný", "validation.minLength" : "{field} by malo byť dlhé aspoň {length} znakov", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} je povinné", "validation.url" : "{field} nie je platné URL", "welcome.loginButton" : "Prihlásiť sa do vášho účtu", - "welcome.signupButton" : "Vytvoriť účet zdarma", - "welcome.slogan" : "Správy, ktoré pracujú pre vás" + "welcome.signupButton" : "Vytvoriť účet zdarma" } diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index df0b849c4..a3a80925d 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -4,8 +4,19 @@ "feature.delayApp.action" : "Get a Franz Supporter License", "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", + "feature.shareFranz.action.email" : "Send as email", + "feature.shareFranz.action.facebook" : "Share on Facebook", + "feature.shareFranz.action.twitter" : "Share on Twitter", + "feature.shareFranz.headline" : "Franz is better together!", + "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", "global.api.unhealthy" : "Nije moguće pristupiti Franz-ovim on-line servisima. ", "global.notConnectedToTheInternet" : "Niste povezani sa serverom.", + "global.spellchecker.useDefault" : "Use System Default ({default})", + "global.spellchecking.autodetect" : "Detect language automatically", + "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.language" : "Spell checking language", "import.headline" : "Uvezite svoje Franz 4 servise", "import.notSupportedHeadline" : "Servis trenutno nije podržan u Franz 5", "import.skip.label" : "Желим да додам услуге ручно", @@ -59,7 +70,9 @@ "menu.help.support" : "Подршка", "menu.help.tos" : "Услови коришћења услуге", "menu.services" : "Usluge", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Додај нову услугу", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Преглед", "menu.view.enterFullScreen" : "Отвори у целом екрану", "menu.view.exitFullScreen" : "Напусти цео екран", @@ -117,6 +130,7 @@ "settings.account.invoiceDownload" : "Preuzmite", "settings.account.manageSubscription.label" : "Upravljajte pretplatama", "settings.account.successInfo" : "Vaše promjene su spremljene", + "settings.account.tryReloadServices" : "Pokušajte ponovno", "settings.account.tryReloadUserInfoRequest" : "Pokušajte ponovno", "settings.account.userInfoRequestFailed" : "Nije moguće učitati informacije o korisniku", "settings.app.buttonClearAllCache" : "Очисти кеш", @@ -129,16 +143,13 @@ "settings.app.form.beta" : "Obuhvati i beta verzije", "settings.app.form.darkMode" : "Join the Dark Side", "settings.app.form.enableGPUAcceleration" : "Омогући убрзање графичке јединице", - "settings.app.form.enableMenuBar" : "Покажи Франз у менију", "settings.app.form.enableSpellchecking" : "Omogući provjeru pravopisa", "settings.app.form.enableSystemTray" : "Prikaži aplikaciju u sustavskoj traci", - "settings.app.form.hideDockIcon" : "Сакриј Франз иконицу у доку", "settings.app.form.language" : "Jezik", "settings.app.form.minimizeToSystemTray" : "Smanji Franca u sustavsku traku", "settings.app.form.runInBackground" : "Neka se Franc održava u pozadini i ako je prozor zatvoren", "settings.app.form.showDisabledServices" : "Prikaži ploče s onemogućenim servisima", "settings.app.form.showMessagesBadgesWhenMuted" : "Покажи беџ за непрочитане поруке када су обавештења онемогућена", - "settings.app.form.spellcheckerLanguage" : "Spell checking language", "settings.app.headline" : "Подешавања", "settings.app.headlineAdvanced" : "Napredne alatke", "settings.app.headlineAppearance" : "Izgled", @@ -201,8 +212,6 @@ "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", "settings.service.form.proxy.user" : "User (optional)", "settings.service.form.saveButton" : "Sačuvaj uslugu\/e", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Hostovano", "settings.service.form.tabOnPremise" : "Samo-hostovano ⭐️", "settings.service.form.team" : "Tim", @@ -212,6 +221,7 @@ "settings.services.discoverServices" : "Pronađite usluge", "settings.services.headline" : "Vaše usluge", "settings.services.noServicesAdded" : "Još uvijek niste unijeli niti jednu uslugu.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Usluga je onemogućena.", "settings.services.tooltip.isMuted" : "Svi zvukovi su onemogućeni.", "settings.services.tooltip.notificationsDisabled" : "Obavijesti su onemogućene.", @@ -244,9 +254,7 @@ "subscription.euTaxInfo" : "EU državljani, upozerenje: Moguće taksiranje", "subscription.features.ads" : "Bez reklama, doživotno!", "subscription.features.comingSoon" : "Dolazi uskoro", - "subscription.features.encryptedSync" : "Kodirano usklađivanje sesija.", "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "Dodajte pretpostavljeni\/hostirani servis kao što ima usluga HipChat", "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", "subscription.features.proxy" : "Proxy support for services", "subscription.features.spellchecker" : "Support for spellchecker", @@ -269,9 +277,9 @@ "tabs.item.reload" : "Ponovno učitavanje", "validation.email" : "{поље} није валидно", "validation.minLength" : "{поље} треба да буде најмање {дужина} карактера дугачко", + "validation.oneRequired" : "At least one is required", "validation.required" : "{поље} је неопходно", "validation.url" : "{field} није валидан УРЛ", "welcome.loginButton" : "Prijavite se na račun", - "welcome.signupButton" : "Stvorite novi korisnički račun", - "welcome.slogan" : "Poruke koje su stvorene za tebe" + "welcome.signupButton" : "Stvorite novi korisnički račun" } diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index 9e7619454..9f8313c2e 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json @@ -1,13 +1,24 @@ { - "app.errorHandler.action" : "Yeniden Yükle", - "app.errorHandler.headline" : "Something went wrong", - "feature.delayApp.action" : "Franz Destek Lisansı'nı alın.", - "feature.delayApp.headline" : "Beklememek için Franz Destek Lisansı'nı satın alın.", + "app.errorHandler.action" : "Tekrar Yükle", + "app.errorHandler.headline" : "Bir terslik çıktı", + "feature.delayApp.action" : "Franz Destek Lisansı'nı alın", + "feature.delayApp.headline" : "Beklememek için Franz Destek Lisansı'nı satın alın", "feature.delayApp.text" : "Franz {seconds} saniye sonra devam edecek.", - "global.api.unhealthy" : "Franz hizmetlerine şu anda erişilemiyor.", + "feature.shareFranz.action.email" : "Mail olarak gönder", + "feature.shareFranz.action.facebook" : "Facebook'ta Paylaş", + "feature.shareFranz.action.twitter" : "Twitter'da Paylaş", + "feature.shareFranz.headline" : "Franz birlikte daha iyi!", + "feature.shareFranz.shareText.email" : "Franz'a {count} tane servis ekledim! WhatsApp, Messenger, Slack ve fazlasını içeren ücretsiz uygulamayı www.meetfranz.com adresinden edinin.", + "feature.shareFranz.shareText.twitter" : "Franz'a {count} tane servis ekledim! WhatsApp, Messenger, Slack ve fazlasını içeren ücretsiz uygulamayı www.meetfranz.com adresinden edinin. \/cc @MeetFranz", + "feature.shareFranz.text" : "Arkadaşlarına ve meslektaşlarına Franz'ın ne kadar harika olduğunu söyle ve bize bu kelimeyi yaymamızda yardım et.", + "global.api.unhealthy" : "Franz hizmetlerine şu anda erişilemiyor", "global.notConnectedToTheInternet" : "İnternete bağlı değilsiniz.", - "import.headline" : "Franz 4 servislerinizi ekleyin.", - "import.notSupportedHeadline" : "Servisler henüz Franz 5'te desteklenmiyor.", + "global.spellchecker.useDefault" : "Sistem Dilini Kullan ({default})", + "global.spellchecking.autodetect" : "Dili otomatik tespit et", + "global.spellchecking.autodetect.short" : "Otomatik", + "global.spellchecking.language" : "İmla kontrol dili", + "import.headline" : "Franz 4 servislerinizi içeri aktarın", + "import.notSupportedHeadline" : "Henüz Franz 5'te desteklenmeyen servisler", "import.skip.label" : "Servisleri kendim eklemek istiyorum", "import.submit.label" : "Servisleri içe aktar", "infobar.buttonChangelog" : "Yeni ne var?", @@ -15,7 +26,7 @@ "infobar.buttonReloadServices" : "Hizmetleri yeniden yükle", "infobar.requiredRequestsFailed" : "Hizmetler ve kullanıcı bilgileri yüklenemedi", "infobar.servicesUpdated" : "Hizmetleriniz güncellendi.", - "infobar.updateAvailable" : "Yeni Franz güncellemesi mevcut", + "infobar.updateAvailable" : "Yeni Franz güncellemesi mevcut.", "invite.email.label" : "E-posta adresi", "invite.headline.friends" : "3 arkadaşını ya da çalışma arkadaşını davet et", "invite.name.label" : "Ad", @@ -59,7 +70,9 @@ "menu.help.support" : "Destek", "menu.help.tos" : "Kullanım Şartları", "menu.services" : "Hizmetler", - "menu.services.addNewService" : "Yeni Servis Ekle", + "menu.services.activatePreviousService" : "Activate previous service", + "menu.services.addNewService" : "Yeni servis ekle...", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Görünüm", "menu.view.enterFullScreen" : "Tam Ekrana Geç", "menu.view.exitFullScreen" : "Tam Ekrandan Çık", @@ -81,7 +94,7 @@ "password.noUser" : "Bu e-posta adresinde bir kullanıcı bulunamadı", "password.submit.label" : "Gönder", "password.successInfo" : "E-postanızı kontrol ediniz", - "premiumFeature.button.upgradeAccount" : "Upgrade account", + "premiumFeature.button.upgradeAccount" : "Hesabı Yükselt", "pricing.headline" : "Franz'ı Destekle", "pricing.link.skipPayment" : "Franz'ın gelişimini desteklemek istemiyorum.", "pricing.submit.label" : "Franz'ın gelişimini desteklemek istiyorum", @@ -92,11 +105,11 @@ "service.crashHandler.text" : "{name} bir hataya neden oldu.", "service.disabledHandler.action" : "{name} aktif", "service.disabledHandler.headline" : "{name} devredışı", - "service.errorHandler.action" : "{name} yeniden yükle", + "service.errorHandler.action" : "{İsim} Yeniden Yükle", "service.errorHandler.editAction" : "{name} düzenle", - "service.errorHandler.headline" : "Aman Tanrım hayır!", + "service.errorHandler.headline" : "Hayııırrr!", "service.errorHandler.message" : "Hata", - "service.errorHandler.text" : "{name} has failed to load.", + "service.errorHandler.text" : "{name} yüklenemedi.", "services.getStarted" : "Haydi başlayalım", "services.welcome" : "Franz'a Hoşgeldiniz", "settings.account.account.editButton" : "Hesabı düzenle", @@ -117,8 +130,9 @@ "settings.account.invoiceDownload" : "İndir", "settings.account.manageSubscription.label" : "Aboneliğini yönet", "settings.account.successInfo" : "Değişikliklerin kaydedildi", + "settings.account.tryReloadServices" : "Tekrar deneyin", "settings.account.tryReloadUserInfoRequest" : "Tekrar deneyin", - "settings.account.userInfoRequestFailed" : "Kullanıcı bilgisi yüklenemedi.", + "settings.account.userInfoRequestFailed" : "Kullanıcı bilgisi yüklenemedi", "settings.app.buttonClearAllCache" : "Önbelleği temizle", "settings.app.buttonInstallUpdate" : "Yeniden Başlat ve Güncelleştirmeleri Kur", "settings.app.buttonSearchForUpdate" : "Güncellemeleri kontrol et", @@ -127,18 +141,15 @@ "settings.app.form.autoLaunchInBackground" : "Arka planda aç", "settings.app.form.autoLaunchOnStart" : "Franz'ı başlangıçta aç", "settings.app.form.beta" : "Beta versiyonları dahil et", - "settings.app.form.darkMode" : "Join the Dark Side", + "settings.app.form.darkMode" : "Karanlık tarafa katıl", "settings.app.form.enableGPUAcceleration" : "Grafik İşlemci Ünitesi (GPU) Hızlandırıcısını Aktif et", - "settings.app.form.enableMenuBar" : "Menü çubuğunda Franz'ı göster", "settings.app.form.enableSpellchecking" : "Yazım denetimini etkinleştir", "settings.app.form.enableSystemTray" : "Franz'ı sistem tepsisinde göster", - "settings.app.form.hideDockIcon" : "Franz Simgesini Gösterme", "settings.app.form.language" : "Dil", "settings.app.form.minimizeToSystemTray" : "Franz'ı sistem tepsisine küçült", "settings.app.form.runInBackground" : "Pencereyi kapatırken Franz'ı arka planda tut", "settings.app.form.showDisabledServices" : "Devre dışı bırakılan servis sekmelerini göster", "settings.app.form.showMessagesBadgesWhenMuted" : "Bildirimler kapalı iken okunmamış mesaj sayısını göster", - "settings.app.form.spellcheckerLanguage" : "Spell checking language", "settings.app.headline" : "Ayarlar", "settings.app.headlineAdvanced" : "Gelişmiş", "settings.app.headlineAppearance" : "Görünüm", @@ -168,7 +179,7 @@ "settings.searchService" : "Hizmeti ara", "settings.service.error.goBack" : "Servislere geri dön", "settings.service.error.headline" : "Hata", - "settings.service.error.message" : "Servis tarifi yüklenemedi", + "settings.service.error.message" : "Servis tarifi yüklenemedi.", "settings.service.form.addServiceHeadline" : "{name} Ekle", "settings.service.form.availableServices" : "Mevcut servisler", "settings.service.form.customUrl" : "Özel sunucu", @@ -176,10 +187,10 @@ "settings.service.form.customUrlUpgradeAccount" : "Hesabını yükselt", "settings.service.form.customUrlValidationError" : "{name} özel sunucu doğrulanamadı.", "settings.service.form.deleteButton" : "Servisi sil", - "settings.service.form.editServiceHeadline" : "{name} düzenle", + "settings.service.form.editServiceHeadline" : "{İsim} Düzenle", "settings.service.form.enableAudio" : "Sesi etkinleştirin", "settings.service.form.enableBadge" : "Okunmamış mesajları göster", - "settings.service.form.enableDarkMode" : "Enable Dark Mode", + "settings.service.form.enableDarkMode" : "Karanlık modu aç", "settings.service.form.enableNotification" : "Bildirimleri etkinleştir", "settings.service.form.enableService" : "Servisi etkinleştir", "settings.service.form.headlineBadges" : "Okunmamış mesajlar", @@ -192,17 +203,15 @@ "settings.service.form.indirectMessages" : "Mesaj rozetini tüm yeni mesajlar için göster", "settings.service.form.isMutedInfo" : "Devre dışı bırakıldığında, tüm bildirim sesleri sessize alınır", "settings.service.form.name" : "İsim", - "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", - "settings.service.form.proxy.host" : "Proxy Host\/IP", - "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", - "settings.service.form.proxy.isEnabled" : "Use Proxy", - "settings.service.form.proxy.password" : "Password (optional)", + "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Ayarları", + "settings.service.form.proxy.host" : "Proxy Sunucusu\/IP", + "settings.service.form.proxy.info" : "Proxy ayarları Franz serverlarına yüklenmeyecektir.", + "settings.service.form.proxy.isEnabled" : "Proxy Kullan", + "settings.service.form.proxy.password" : "Parola (opsiyonel)", "settings.service.form.proxy.port" : "Port", - "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", - "settings.service.form.proxy.user" : "User (optional)", + "settings.service.form.proxy.restartInfo" : "Proxy ayarlarını değiştirdikten sonra Franz'ı yeniden başlatınız.", + "settings.service.form.proxy.user" : "Kullanıcı (opsiyonel)", "settings.service.form.saveButton" : "Servisi kaydet", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Barındırılan", "settings.service.form.tabOnPremise" : "Kendi barındırılan", "settings.service.form.team" : "Takım", @@ -212,6 +221,7 @@ "settings.services.discoverServices" : "Servisleri keşfet", "settings.services.headline" : "Servislerin", "settings.services.noServicesAdded" : "Henüz hiç servis eklemedin.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Servis devre dışı", "settings.services.tooltip.isMuted" : "Tüm sesler kapalı", "settings.services.tooltip.notificationsDisabled" : "Bildirimler devre dışı", @@ -238,18 +248,16 @@ "signup.legal.info" : "Franz'ı hesabı oluşturark kabul ediyorsun", "signup.legal.privacy" : "Gizlilik Sözleşmesi", "signup.legal.terms" : "Kullanım Koşulları", - "signup.link.login" : "Mevcut hesabınla giriş yap.", + "signup.link.login" : "Hali hazırda hesabınız varsa giriş yapmak ister misiniz?", "signup.password.label" : "Şifre", "signup.submit.label" : "Hesap oluştur", "subscription.euTaxInfo" : "AB vatandaşları: yerel satış vergileri uygulanabilir", "subscription.features.ads" : "Reklam yok, asla!", "subscription.features.comingSoon" : "yakında geliyor", - "subscription.features.encryptedSync" : "Şifreli oturum senkronizasyonu", - "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "HipChat gibi kurum içi\/barındırılan hizmetler ekle", - "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", - "subscription.features.proxy" : "Proxy support for services", - "subscription.features.spellchecker" : "Support for spellchecker", + "subscription.features.noInterruptions" : "Uygulama gecikmeleri & yükseltme lisanları için dırdır yok", + "subscription.features.onpremise.mattermost" : "Mattermost gibi şirket-içi\/barındırılan servisler ekleyin", + "subscription.features.proxy" : "Servisler için proxy desteği", + "subscription.features.spellchecker" : "Yazım denetleyicisi desteği", "subscription.includedFeatures" : "Ücretli Franz Premium Destekçi Hesabına dahil", "subscription.paymentSessionError" : "Ödeme formu başlatılamadı", "subscription.submit.label" : "Franz'ın gelişimini desteklemek istiyorum", @@ -266,12 +274,12 @@ "tabs.item.enableAudio" : "Sesi etkinleştir", "tabs.item.enableNotification" : "Bildirimleri etkinleştir", "tabs.item.enableService" : "Servisi etkinleştir", - "tabs.item.reload" : "Yeniden Yükle", + "tabs.item.reload" : "Tekrar yükle", "validation.email" : "{alan} geçerli değil", "validation.minLength" : "{field} en az {length} karakter uzunluğunda olmalı", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} gereklidir", "validation.url" : "{field} geçerli bir URL değil", "welcome.loginButton" : "Hesabına giriş yap", - "welcome.signupButton" : "Ücretsiz hesap oluştur", - "welcome.slogan" : "Sizin için çalışan mesajlaşma" + "welcome.signupButton" : "Ücretsiz hesap oluştur" } diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json index 7d51b380e..56dda09d5 100644 --- a/src/i18n/locales/uk.json +++ b/src/i18n/locales/uk.json @@ -1,13 +1,24 @@ { "app.errorHandler.action" : "Перезавантажити", - "app.errorHandler.headline" : "Something went wrong", - "feature.delayApp.action" : "Get a Franz Supporter License", - "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", - "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", - "global.api.unhealthy" : "Не можна підключитись до онлайн сервісів Franz", + "app.errorHandler.headline" : "Щось пішло не так", + "feature.delayApp.action" : "Отримати ліцензію Franz Supporter ", + "feature.delayApp.headline" : "Будь ласка, придбайте ліцензію Franz Supporter аби пропустити очікування", + "feature.delayApp.text" : "Franz відновить роботу за {seconds} секунд", + "feature.shareFranz.action.email" : "Send as email", + "feature.shareFranz.action.facebook" : "Share on Facebook", + "feature.shareFranz.action.twitter" : "Share on Twitter", + "feature.shareFranz.headline" : "Franz is better together!", + "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", + "global.api.unhealthy" : "Не можливо підключитись до онлайн сервісів Franz", "global.notConnectedToTheInternet" : "Ви не підключені до Інтернету.", + "global.spellchecker.useDefault" : "Використовувати системні параметри за змовчуванням ({default})", + "global.spellchecking.autodetect" : "Detect language automatically", + "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.language" : "Мова перевірки правопису", "import.headline" : "Імпортувати ваші сервіси з Franz 4", - "import.notSupportedHeadline" : "Сервіси ще не підтримуються в Franz 5", + "import.notSupportedHeadline" : "Наразі сервіси не підтримуються у Franz 5", "import.skip.label" : "Я бажаю додати сервіс вручну", "import.submit.label" : "Імпортувати сервіси", "infobar.buttonChangelog" : "Що нового?", @@ -17,20 +28,20 @@ "infobar.servicesUpdated" : "Ваші сервіси було оновлено.", "infobar.updateAvailable" : "Нове оновлення для Franz доступне.", "invite.email.label" : "Email адреса", - "invite.headline.friends" : "Запросіть 3 ваших друзів або колег", + "invite.headline.friends" : "Запросіть 3-х ваших друзів або колег", "invite.name.label" : "Ім'я", "invite.skip.label" : "Я хочу зробити це пізніше", "invite.submit.label" : "Відправити запрошення", - "invite.successInfo" : "Запрошення успішно відослані", + "invite.successInfo" : "Запрошення успішно надіслані", "login.email.label" : "Email адреса", "login.headline" : "Увійти", "login.invalidCredentials" : "Email або пароль некоректні", "login.link.password" : "Скинути пароль", "login.link.signup" : "Створити безплатний акаунт", "login.password.label" : "Пароль", - "login.serverLogout" : "Ваша сесія закінчилась, будь ласка, зайдіть знову.", + "login.serverLogout" : "Ваша сесія закінчилась, будь ласка, увійдіть знову.", "login.submit.label" : "Увійти", - "login.tokenExpired" : "Ваша сесія закінчилась, будь ласка, зайдіть знову.", + "login.tokenExpired" : "Ваша сесія закінчилась, будь ласка, увійдіть знову.", "menu.app.about" : "Про Franz", "menu.app.hide" : "Приховати", "menu.app.hideOthers" : "Приховати інші", @@ -59,7 +70,9 @@ "menu.help.support" : "Підтримка", "menu.help.tos" : "Умови використання", "menu.services" : "Служби", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "Додати сервіс", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "Вигляд", "menu.view.enterFullScreen" : "Вікно на повний екран", "menu.view.exitFullScreen" : "Вийти з повного екрану", @@ -81,7 +94,7 @@ "password.noUser" : "Не знайдено жодного користувача з цією email адресою", "password.submit.label" : "Подати", "password.successInfo" : "Будь ласка, перевірте ваш email", - "premiumFeature.button.upgradeAccount" : "Upgrade account", + "premiumFeature.button.upgradeAccount" : "Преміум акаунт", "pricing.headline" : "Підтримайте Franz", "pricing.link.skipPayment" : "Я не хочу підтримувати розробку Franz.", "pricing.submit.label" : "Я хочу підтримати розробку Franz", @@ -96,7 +109,7 @@ "service.errorHandler.editAction" : "Редагувати {name}", "service.errorHandler.headline" : "О, ні!", "service.errorHandler.message" : "Помилка", - "service.errorHandler.text" : "{name} has failed to load.", + "service.errorHandler.text" : "{name} не завантажено", "services.getStarted" : "Почати", "services.welcome" : "Ласкаво просимо в Franz", "settings.account.account.editButton" : "Редагувати акаунт", @@ -117,6 +130,7 @@ "settings.account.invoiceDownload" : "Завантажити", "settings.account.manageSubscription.label" : "Керування вашою підпискою", "settings.account.successInfo" : "Ваші зміни були збережені", + "settings.account.tryReloadServices" : "Спробуйте ще раз", "settings.account.tryReloadUserInfoRequest" : "Спробуйте ще раз", "settings.account.userInfoRequestFailed" : "Не вдалося завантажити інформацію користувача", "settings.app.buttonClearAllCache" : "Очистити кеш", @@ -127,18 +141,15 @@ "settings.app.form.autoLaunchInBackground" : "Відкрити у фоновому режимі", "settings.app.form.autoLaunchOnStart" : "Запускати Franz на початку", "settings.app.form.beta" : "Включити бета-версії", - "settings.app.form.darkMode" : "Join the Dark Side", + "settings.app.form.darkMode" : "Переходь на Темну Сторону", "settings.app.form.enableGPUAcceleration" : "Ввімкнути прискорення GPU", - "settings.app.form.enableMenuBar" : "Відображати Franz в панелі головного меню", "settings.app.form.enableSpellchecking" : "Увімкнути перевірку орфографії", "settings.app.form.enableSystemTray" : "Показувати Franz у системному лотку", - "settings.app.form.hideDockIcon" : "Сховати значок Franz в Dock", "settings.app.form.language" : "Мова", "settings.app.form.minimizeToSystemTray" : "Мінімізувати Franz до системного лотка", "settings.app.form.runInBackground" : "Тримати Franz в фоні при закритті вікна", "settings.app.form.showDisabledServices" : "Показати вкладку вимкнених сервісів", "settings.app.form.showMessagesBadgesWhenMuted" : "Показувати значок непрочитаних повідомлень коли сповіщення вимкнені", - "settings.app.form.spellcheckerLanguage" : "Spell checking language", "settings.app.headline" : "Налаштування", "settings.app.headlineAdvanced" : "Додаткові налаштування", "settings.app.headlineAppearance" : "Вигляд", @@ -179,7 +190,7 @@ "settings.service.form.editServiceHeadline" : "Редагувати {name}", "settings.service.form.enableAudio" : "Увімкнути звук", "settings.service.form.enableBadge" : "Показувати непрочитані повідомлення", - "settings.service.form.enableDarkMode" : "Enable Dark Mode", + "settings.service.form.enableDarkMode" : "Переходь на Темну Сторону", "settings.service.form.enableNotification" : "Увімкнути сповіщення", "settings.service.form.enableService" : "Увімкнути сервіс", "settings.service.form.headlineBadges" : "Значки непрочитаних повідомлень", @@ -192,17 +203,15 @@ "settings.service.form.indirectMessages" : "Показувати значок повідомлення для всіх нових повідомлень", "settings.service.form.isMutedInfo" : "Коли вимкнено, всі сповищення та відтворення ігноруються", "settings.service.form.name" : "Ім'я", - "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", - "settings.service.form.proxy.host" : "Proxy Host\/IP", - "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", - "settings.service.form.proxy.isEnabled" : "Use Proxy", - "settings.service.form.proxy.password" : "Password (optional)", - "settings.service.form.proxy.port" : "Port", - "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", - "settings.service.form.proxy.user" : "User (optional)", + "settings.service.form.proxy.headline" : "Налаштування HTTP\/HTTPS проксі ", + "settings.service.form.proxy.host" : "Проксі Host\/IP", + "settings.service.form.proxy.info" : "Налаштування проксі не будуть синхронізовані із серверами Franz", + "settings.service.form.proxy.isEnabled" : "Використовувати проксі", + "settings.service.form.proxy.password" : "Пароль (опційно)", + "settings.service.form.proxy.port" : "Порт", + "settings.service.form.proxy.restartInfo" : "Будь ласка, перезапустіть Franz після зміни налуштувань проксі", + "settings.service.form.proxy.user" : "Користувач (опційно)", "settings.service.form.saveButton" : "Зберегти сервіс", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "Розміщений", "settings.service.form.tabOnPremise" : "Самостійно розміщений ⭐️", "settings.service.form.team" : "Команда", @@ -212,6 +221,7 @@ "settings.services.discoverServices" : "Відкрийте для себе сервіси", "settings.services.headline" : "Ваші сервіси", "settings.services.noServicesAdded" : "Ви ще не додавали жодних сервісів.", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "Сервіс відключений", "settings.services.tooltip.isMuted" : "Всі звуки вимкнено", "settings.services.tooltip.notificationsDisabled" : "Сповіщення відключені", @@ -244,12 +254,10 @@ "subscription.euTaxInfo" : "Для жителів ЄС: можуть застосовуватися податки", "subscription.features.ads" : "Жодної реклами!", "subscription.features.comingSoon" : "очікуйте незабаром", - "subscription.features.encryptedSync" : "Шифрована синхронізація сеансу", - "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "Додайте on-premise \/ hosted сервіси, такі як Hipchat", - "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", - "subscription.features.proxy" : "Proxy support for services", - "subscription.features.spellchecker" : "Support for spellchecker", + "subscription.features.noInterruptions" : "Ніяких затримок та набридливих пропозицій з платних підписок", + "subscription.features.onpremise.mattermost" : "Сервіси, що виконуються локально\/вимагають хостингу, приміром Mattermost", + "subscription.features.proxy" : "Підтримка проксі ", + "subscription.features.spellchecker" : "Підтримка перевірки правопису", "subscription.includedFeatures" : "Платний Преміальний Акаунт Прихильника Franz включає", "subscription.paymentSessionError" : "Не вдалося ініціалізувати форму платежу", "subscription.submit.label" : "Я хочу підтримати розробку Franz", @@ -269,9 +277,9 @@ "tabs.item.reload" : "Перезавантажити", "validation.email" : "{field} не валідне", "validation.minLength" : "Кількість символів в {field} повина бути не меньше {length} ", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field} обов'язвоке", "validation.url" : "{field} не валідний URL", "welcome.loginButton" : "Увійдіть до свого акаунту", - "welcome.signupButton" : "Створити безплатний акаунт", - "welcome.slogan" : "Обмін повідомленнями, який працює для вас" + "welcome.signupButton" : "Створити безплатний акаунт" } diff --git a/src/i18n/locales/whitelist_en-US.json b/src/i18n/locales/whitelist_en-US.json new file mode 100644 index 000000000..32960f8ce --- /dev/null +++ b/src/i18n/locales/whitelist_en-US.json @@ -0,0 +1,2 @@ +[ +] \ No newline at end of file diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json index cfb1d3dce..54245ba57 100644 --- a/src/i18n/locales/zh-TW.json +++ b/src/i18n/locales/zh-TW.json @@ -1,11 +1,22 @@ { "app.errorHandler.action" : "重新載入", "app.errorHandler.headline" : "有些東西出錯了", - "feature.delayApp.action" : "Get a Franz Supporter License", - "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", - "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", - "global.api.unhealthy" : "無法連線至Franz的伺服器。", + "feature.delayApp.action" : "取得 Franz 支援授權", + "feature.delayApp.headline" : "請購買 Franz 支援授權以跳過等候", + "feature.delayApp.text" : "Franz 會在 {seconds} 秒後繼續。", + "feature.shareFranz.action.email" : "Send as email", + "feature.shareFranz.action.facebook" : "Share on Facebook", + "feature.shareFranz.action.twitter" : "Share on Twitter", + "feature.shareFranz.headline" : "Franz is better together!", + "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz", + "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", + "global.api.unhealthy" : "無法連線至 Franz 的伺服器", "global.notConnectedToTheInternet" : "你沒有連上網路。", + "global.spellchecker.useDefault" : "使用系統預設 ({default})", + "global.spellchecking.autodetect" : "Detect language automatically", + "global.spellchecking.autodetect.short" : "Automatic", + "global.spellchecking.language" : "拼字檢查語言", "import.headline" : "匯入 Franz 4 的服務", "import.notSupportedHeadline" : "Franz 5 尚未支援此服務", "import.skip.label" : "手動添加服務", @@ -14,10 +25,10 @@ "infobar.buttonInstallUpdate" : "重新啟動並安裝更新", "infobar.buttonReloadServices" : "重新載入服務", "infobar.requiredRequestsFailed" : "無法載入服務和使用者資訊", - "infobar.servicesUpdated" : "你的服務已經被更新", - "infobar.updateAvailable" : "Franz有可用的更新", + "infobar.servicesUpdated" : "已經更新你的服務", + "infobar.updateAvailable" : "Franz 有可用的更新", "invite.email.label" : "電子郵件地址", - "invite.headline.friends" : "邀請3位你的朋友或同事", + "invite.headline.friends" : "邀請 3 位朋友或同事", "invite.name.label" : "名稱", "invite.skip.label" : "我想稍後再做", "invite.submit.label" : "送出邀請", @@ -31,7 +42,7 @@ "login.serverLogout" : "您的登入期間已過期,請重新登錄", "login.submit.label" : "登入", "login.tokenExpired" : "您的登入已過期,請重新登入。", - "menu.app.about" : "關於Franz", + "menu.app.about" : "關於 Franz", "menu.app.hide" : "隱藏", "menu.app.hideOthers" : "隱藏其他", "menu.app.quit" : "結束", @@ -59,11 +70,13 @@ "menu.help.support" : "支援", "menu.help.tos" : "服務條款", "menu.services" : "服務", + "menu.services.activatePreviousService" : "Activate previous service", "menu.services.addNewService" : "新增服務", + "menu.services.setNextServiceActive" : "Activate next service", "menu.view" : "檢視", "menu.view.enterFullScreen" : "進入全螢幕模式", "menu.view.exitFullScreen" : "離開全螢幕模式", - "menu.view.reloadFranz" : "重新載入Franz", + "menu.view.reloadFranz" : "重新載入 Franz", "menu.view.reloadService" : "重新載入服務", "menu.view.resetZoom" : "實際大小", "menu.view.toggleDevTools" : "切換開發者工具", @@ -82,9 +95,9 @@ "password.submit.label" : "送出", "password.successInfo" : "請檢查您的電子郵件", "premiumFeature.button.upgradeAccount" : "升級帳號", - "pricing.headline" : "支持Franz", - "pricing.link.skipPayment" : "我不想支持Franz的開發。", - "pricing.submit.label" : "我想支持Franz的開發。", + "pricing.headline" : "支持 Franz", + "pricing.link.skipPayment" : "我不想支持 Franz 的開發。", + "pricing.submit.label" : "我想支持 Franz 的開發。", "pricing.support.label" : "選擇您支持的計畫", "service.crashHandler.action" : "重新載入{name}", "service.crashHandler.autoReload" : "嘗試在{seconds}秒內自動恢復{name}", @@ -92,20 +105,20 @@ "service.crashHandler.text" : "{name}導致了一個錯誤。", "service.disabledHandler.action" : "啟用{name}", "service.disabledHandler.headline" : "{name}已停用", - "service.errorHandler.action" : "重新載入{name}", + "service.errorHandler.action" : "重新載入 {name}", "service.errorHandler.editAction" : "編輯{名稱}", - "service.errorHandler.headline" : "噢不!", + "service.errorHandler.headline" : "噢不!", "service.errorHandler.message" : "錯誤", - "service.errorHandler.text" : "{name} has failed to load.", + "service.errorHandler.text" : "{name} 載入失敗。", "services.getStarted" : "開始", - "services.welcome" : "歡迎使用Franz", + "services.welcome" : "歡迎使用 Franz", "settings.account.account.editButton" : "編輯帳號", "settings.account.accountType.basic" : "基礎帳號", - "settings.account.accountType.premium" : "高級支持者帳戶", + "settings.account.accountType.premium" : "高級支援帳戶", "settings.account.buttonSave" : "更新簡介", "settings.account.deleteAccount" : "移除帳號", "settings.account.deleteEmailSent" : "移除帳號之確認電郵已送出。你的帳號及相關資料將無法恢復!", - "settings.account.deleteInfo" : "如果不再需要你的帳號了,你可以在這裡刪除帳號和相關資料", + "settings.account.deleteInfo" : "如果不再需要你的帳號,你可以在這裡刪除帳號和所有相關資料。", "settings.account.headline" : "帳號", "settings.account.headlineAccount" : "帳戶資訊", "settings.account.headlineDangerZone" : "危險地帶", @@ -113,32 +126,30 @@ "settings.account.headlinePassword" : "變更密碼", "settings.account.headlineProfile" : "更新簡介", "settings.account.headlineSubscription" : "您的訂閱", - "settings.account.headlineUpgrade" : "升級您的帳戶&支持Franz", + "settings.account.headlineUpgrade" : "升級您的帳戶並支持 Franz", "settings.account.invoiceDownload" : "下載", "settings.account.manageSubscription.label" : "管理您的訂閱", "settings.account.successInfo" : "您的更變已經被儲存", + "settings.account.tryReloadServices" : "再試一次", "settings.account.tryReloadUserInfoRequest" : "再試一次", "settings.account.userInfoRequestFailed" : "無法載入使用者資訊。", "settings.app.buttonClearAllCache" : "清除快取", "settings.app.buttonInstallUpdate" : "重新啟動並安裝更新", "settings.app.buttonSearchForUpdate" : "檢查更新", - "settings.app.cacheInfo" : "Franz快取目前占用磁碟空間{大小}。", + "settings.app.cacheInfo" : "Franz 快取目前占用 {size} 的磁碟空間。", "settings.app.currentVersion" : "目前的版本", "settings.app.form.autoLaunchInBackground" : "在背景開啟", - "settings.app.form.autoLaunchOnStart" : "開機時啟動Franz", + "settings.app.form.autoLaunchOnStart" : "開機時啟動 Franz", "settings.app.form.beta" : "包含測試版", - "settings.app.form.darkMode" : "Join the Dark Side", - "settings.app.form.enableGPUAcceleration" : "啟用GPU加速", - "settings.app.form.enableMenuBar" : "顯示Franz在選單列", + "settings.app.form.darkMode" : "加入黑暗面", + "settings.app.form.enableGPUAcceleration" : "啟用 GPU 加速", "settings.app.form.enableSpellchecking" : "啟用拼字檢查", - "settings.app.form.enableSystemTray" : "顯示Franz在系統列", - "settings.app.form.hideDockIcon" : "在工作列中隱藏Franz圖示", + "settings.app.form.enableSystemTray" : "在系統列顯示 Franz", "settings.app.form.language" : "語言", - "settings.app.form.minimizeToSystemTray" : "最小化Franz到系統列", - "settings.app.form.runInBackground" : "當關閉視窗時保持Franz在背景運作", + "settings.app.form.minimizeToSystemTray" : "最小化 Franz 到系統列", + "settings.app.form.runInBackground" : "當關閉視窗時,保持 Franz 在背景運作", "settings.app.form.showDisabledServices" : "顯示停用的服務標籤", "settings.app.form.showMessagesBadgesWhenMuted" : "當通知關閉時,標記未讀的訊息", - "settings.app.form.spellcheckerLanguage" : "拼字檢查語言", "settings.app.headline" : "設定", "settings.app.headlineAdvanced" : "進階", "settings.app.headlineAppearance" : "外觀", @@ -147,10 +158,10 @@ "settings.app.headlineUpdates" : "更新", "settings.app.restartRequired" : "需要重啟以更變", "settings.app.subheadlineCache" : "快取", - "settings.app.translationHelp" : "幫助我們將Franz翻譯成您的語言。", + "settings.app.translationHelp" : "幫助我們將 Franz 翻譯成您的語言。", "settings.app.updateStatusAvailable" : "有可用更新,下載中...", "settings.app.updateStatusSearching" : "正在搜尋更新", - "settings.app.updateStatusUpToDate" : "您正在使用最新版本的Franz", + "settings.app.updateStatusUpToDate" : "您正在使用最新版本的 Franz", "settings.invite.headline" : "邀請朋友", "settings.navigation.account" : "帳號", "settings.navigation.availableServices" : "可使用的服務", @@ -172,11 +183,11 @@ "settings.service.form.addServiceHeadline" : "新增{name}", "settings.service.form.availableServices" : "可使用的服務", "settings.service.form.customUrl" : "自訂伺服器", - "settings.service.form.customUrlPremiumInfo" : "要添加自己託管的服務,您需要一個Franz 額外支持者帳戶。", + "settings.service.form.customUrlPremiumInfo" : "要添加自行託管的服務,您需要擁有 Franz 高級支援帳戶。", "settings.service.form.customUrlUpgradeAccount" : "升級您的帳戶", "settings.service.form.customUrlValidationError" : "無法驗證自定義{name}服務器。", "settings.service.form.deleteButton" : "刪除服務", - "settings.service.form.editServiceHeadline" : "編輯{名稱}", + "settings.service.form.editServiceHeadline" : "編輯 {名稱}", "settings.service.form.enableAudio" : "啟用音訊", "settings.service.form.enableBadge" : "顯示未讀訊息圖示", "settings.service.form.enableDarkMode" : "開啟深色模式", @@ -192,17 +203,15 @@ "settings.service.form.indirectMessages" : "顯示所有新消息的消息標誌", "settings.service.form.isMutedInfo" : "停用時,所有通知聲和聲音播放都將靜音", "settings.service.form.name" : "名稱", - "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", - "settings.service.form.proxy.host" : "Proxy Host\/IP", + "settings.service.form.proxy.headline" : "HTTP\/HTTPS 代理伺服器設定", + "settings.service.form.proxy.host" : "代理伺服器網域 \/ IP", "settings.service.form.proxy.info" : "Proxy 設定不會與 Franz 伺服器同步", "settings.service.form.proxy.isEnabled" : "使用 Proxy", "settings.service.form.proxy.password" : "密碼 (選填)", - "settings.service.form.proxy.port" : "Port", - "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", + "settings.service.form.proxy.port" : "通訊阜", + "settings.service.form.proxy.restartInfo" : "在變更 Proxy 設定後,請重新啟動 Franz", "settings.service.form.proxy.user" : "使用者 (選填)", "settings.service.form.saveButton" : "保存服務", - "settings.service.form.spellcheckerLanguage" : "Spell checking Language", - "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", "settings.service.form.tabHosted" : "託管", "settings.service.form.tabOnPremise" : "自我託管⭐️", "settings.service.form.team" : "團隊", @@ -212,10 +221,11 @@ "settings.services.discoverServices" : "發現服務", "settings.services.headline" : "您的服務", "settings.services.noServicesAdded" : "你尚未新增任何服務", + "settings.services.servicesRequestFailed" : "Could not load your services", "settings.services.tooltip.isDisabled" : "服務已停用", "settings.services.tooltip.isMuted" : "所有的聲音都是靜音", "settings.services.tooltip.notificationsDisabled" : "通知已停用", - "settings.services.updatedInfo" : "你的更變已經儲存", + "settings.services.updatedInfo" : "已儲存你的變更", "settings.user.form.accountType.company" : "公司", "settings.user.form.accountType.individual" : "個人", "settings.user.form.accountType.label" : "帳戶類型", @@ -235,7 +245,7 @@ "signup.firstname.label" : "名", "signup.headline" : "註冊", "signup.lastname.label" : "姓", - "signup.legal.info" : "你接受透過創建一個Franz帳戶", + "signup.legal.info" : "透過創建一個 Franz 帳戶,你同意", "signup.legal.privacy" : "隱私聲明", "signup.legal.terms" : "服務條款", "signup.link.login" : "已經有一個帳戶,登入?", @@ -244,15 +254,13 @@ "subscription.euTaxInfo" : "歐盟居民:可能採用當地銷售稅", "subscription.features.ads" : "無廣告,永遠!", "subscription.features.comingSoon" : "即將推出", - "subscription.features.encryptedSync" : "加密的會話同步", - "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", - "subscription.features.onpremise" : "添加本地\/託管服務如HipChat", - "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", - "subscription.features.proxy" : "Proxy support for services", + "subscription.features.noInterruptions" : "升級授權沒有延遲與打盹", + "subscription.features.onpremise.mattermost" : "加入如 Mattermost 等已預定 \/ 託管的服務", + "subscription.features.proxy" : "服務的代理伺服器支援", "subscription.features.spellchecker" : "支援拼字檢查", - "subscription.includedFeatures" : "包含高級Franz付費帳戶", + "subscription.includedFeatures" : "Franz 高級支援帳戶包含", "subscription.paymentSessionError" : "無法初始化付款表單", - "subscription.submit.label" : "我想支持Franz的開發", + "subscription.submit.label" : "我想支持 Franz 開發", "subscription.type.free" : "自由", "subscription.type.month" : "月", "subscription.type.year" : "年", @@ -269,9 +277,9 @@ "tabs.item.reload" : "重新載入", "validation.email" : "{field}無效", "validation.minLength" : "{field}長度至少應為{length}個字", + "validation.oneRequired" : "At least one is required", "validation.required" : "{field}為必填", "validation.url" : "{field}不是個有效的網址", "welcome.loginButton" : "登入您的帳戶", - "welcome.signupButton" : "建立免費帳號", - "welcome.slogan" : "為你通信" + "welcome.signupButton" : "建立免費帳號" } diff --git a/src/i18n/manage-translations.js b/src/i18n/manage-translations.js new file mode 100644 index 000000000..ee64c9c09 --- /dev/null +++ b/src/i18n/manage-translations.js @@ -0,0 +1,9 @@ +require('@babel/register'); +const manageTranslations = require('react-intl-translations-manager').default; + +manageTranslations({ + messagesDirectory: 'src/i18n/messages', + translationsDirectory: 'src/i18n/locales', + singleMessagesFile: true, + languages: ['en-US'], +}); diff --git a/src/i18n/messages/src/components/auth/Import.json b/src/i18n/messages/src/components/auth/Import.json new file mode 100644 index 000000000..264fc729b --- /dev/null +++ b/src/i18n/messages/src/components/auth/Import.json @@ -0,0 +1,54 @@ +[ + { + "id": "import.headline", + "defaultMessage": "!!!Import your Franz 4 services", + "file": "src/components/auth/Import.js", + "start": { + "line": 13, + "column": 12 + }, + "end": { + "line": 16, + "column": 3 + } + }, + { + "id": "import.notSupportedHeadline", + "defaultMessage": "!!!Services not yet supported in Franz 5", + "file": "src/components/auth/Import.js", + "start": { + "line": 17, + "column": 24 + }, + "end": { + "line": 20, + "column": 3 + } + }, + { + "id": "import.submit.label", + "defaultMessage": "!!!Import {count} services", + "file": "src/components/auth/Import.js", + "start": { + "line": 21, + "column": 21 + }, + "end": { + "line": 24, + "column": 3 + } + }, + { + "id": "import.skip.label", + "defaultMessage": "!!!I want to add services manually", + "file": "src/components/auth/Import.js", + "start": { + "line": 25, + "column": 19 + }, + "end": { + "line": 28, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/auth/Invite.json b/src/i18n/messages/src/components/auth/Invite.json new file mode 100644 index 000000000..57c9bddcf --- /dev/null +++ b/src/i18n/messages/src/components/auth/Invite.json @@ -0,0 +1,93 @@ +[ + { + "id": "settings.invite.headline", + "defaultMessage": "!!!Invite Friends", + "file": "src/components/auth/Invite.js", + "start": { + "line": 16, + "column": 20 + }, + "end": { + "line": 19, + "column": 3 + } + }, + { + "id": "invite.headline.friends", + "defaultMessage": "!!!Invite 3 of your friends or colleagues", + "file": "src/components/auth/Invite.js", + "start": { + "line": 20, + "column": 12 + }, + "end": { + "line": 23, + "column": 3 + } + }, + { + "id": "invite.name.label", + "defaultMessage": "!!!Name", + "file": "src/components/auth/Invite.js", + "start": { + "line": 24, + "column": 13 + }, + "end": { + "line": 27, + "column": 3 + } + }, + { + "id": "invite.email.label", + "defaultMessage": "!!!Email address", + "file": "src/components/auth/Invite.js", + "start": { + "line": 28, + "column": 14 + }, + "end": { + "line": 31, + "column": 3 + } + }, + { + "id": "invite.submit.label", + "defaultMessage": "!!!Send invites", + "file": "src/components/auth/Invite.js", + "start": { + "line": 32, + "column": 21 + }, + "end": { + "line": 35, + "column": 3 + } + }, + { + "id": "invite.skip.label", + "defaultMessage": "!!!I want to do this later", + "file": "src/components/auth/Invite.js", + "start": { + "line": 36, + "column": 19 + }, + "end": { + "line": 39, + "column": 3 + } + }, + { + "id": "invite.successInfo", + "defaultMessage": "!!!Invitations sent successfully", + "file": "src/components/auth/Invite.js", + "start": { + "line": 40, + "column": 21 + }, + "end": { + "line": 43, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/auth/Login.json b/src/i18n/messages/src/components/auth/Login.json new file mode 100644 index 000000000..177f6000b --- /dev/null +++ b/src/i18n/messages/src/components/auth/Login.json @@ -0,0 +1,119 @@ +[ + { + "id": "login.headline", + "defaultMessage": "!!!Sign in", + "file": "src/components/auth/Login.js", + "start": { + "line": 17, + "column": 12 + }, + "end": { + "line": 20, + "column": 3 + } + }, + { + "id": "login.email.label", + "defaultMessage": "!!!Email address", + "file": "src/components/auth/Login.js", + "start": { + "line": 21, + "column": 14 + }, + "end": { + "line": 24, + "column": 3 + } + }, + { + "id": "login.password.label", + "defaultMessage": "!!!Password", + "file": "src/components/auth/Login.js", + "start": { + "line": 25, + "column": 17 + }, + "end": { + "line": 28, + "column": 3 + } + }, + { + "id": "login.submit.label", + "defaultMessage": "!!!Sign in", + "file": "src/components/auth/Login.js", + "start": { + "line": 29, + "column": 21 + }, + "end": { + "line": 32, + "column": 3 + } + }, + { + "id": "login.invalidCredentials", + "defaultMessage": "!!!Email or password not valid", + "file": "src/components/auth/Login.js", + "start": { + "line": 33, + "column": 22 + }, + "end": { + "line": 36, + "column": 3 + } + }, + { + "id": "login.tokenExpired", + "defaultMessage": "!!!Your session expired, please login again.", + "file": "src/components/auth/Login.js", + "start": { + "line": 37, + "column": 16 + }, + "end": { + "line": 40, + "column": 3 + } + }, + { + "id": "login.serverLogout", + "defaultMessage": "!!!Your session expired, please login again.", + "file": "src/components/auth/Login.js", + "start": { + "line": 41, + "column": 16 + }, + "end": { + "line": 44, + "column": 3 + } + }, + { + "id": "login.link.signup", + "defaultMessage": "!!!Create a free account", + "file": "src/components/auth/Login.js", + "start": { + "line": 45, + "column": 14 + }, + "end": { + "line": 48, + "column": 3 + } + }, + { + "id": "login.link.password", + "defaultMessage": "!!!Forgot password", + "file": "src/components/auth/Login.js", + "start": { + "line": 49, + "column": 16 + }, + "end": { + "line": 52, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/auth/Password.json b/src/i18n/messages/src/components/auth/Password.json new file mode 100644 index 000000000..f335b3acb --- /dev/null +++ b/src/i18n/messages/src/components/auth/Password.json @@ -0,0 +1,93 @@ +[ + { + "id": "password.headline", + "defaultMessage": "!!!Forgot password", + "file": "src/components/auth/Password.js", + "start": { + "line": 14, + "column": 12 + }, + "end": { + "line": 17, + "column": 3 + } + }, + { + "id": "password.email.label", + "defaultMessage": "!!!Email address", + "file": "src/components/auth/Password.js", + "start": { + "line": 18, + "column": 14 + }, + "end": { + "line": 21, + "column": 3 + } + }, + { + "id": "password.submit.label", + "defaultMessage": "!!!Submit", + "file": "src/components/auth/Password.js", + "start": { + "line": 22, + "column": 21 + }, + "end": { + "line": 25, + "column": 3 + } + }, + { + "id": "password.successInfo", + "defaultMessage": "!!!Your new password was sent to your email address", + "file": "src/components/auth/Password.js", + "start": { + "line": 26, + "column": 15 + }, + "end": { + "line": 29, + "column": 3 + } + }, + { + "id": "password.noUser", + "defaultMessage": "!!!No user affiliated with that email address", + "file": "src/components/auth/Password.js", + "start": { + "line": 30, + "column": 10 + }, + "end": { + "line": 33, + "column": 3 + } + }, + { + "id": "password.link.signup", + "defaultMessage": "!!!Create a free account", + "file": "src/components/auth/Password.js", + "start": { + "line": 34, + "column": 14 + }, + "end": { + "line": 37, + "column": 3 + } + }, + { + "id": "password.link.login", + "defaultMessage": "!!!Sign in to your account", + "file": "src/components/auth/Password.js", + "start": { + "line": 38, + "column": 13 + }, + "end": { + "line": 41, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/auth/Pricing.json b/src/i18n/messages/src/components/auth/Pricing.json new file mode 100644 index 000000000..f711a55b4 --- /dev/null +++ b/src/i18n/messages/src/components/auth/Pricing.json @@ -0,0 +1,54 @@ +[ + { + "id": "pricing.headline", + "defaultMessage": "!!!Support Franz", + "file": "src/components/auth/Pricing.js", + "start": { + "line": 13, + "column": 12 + }, + "end": { + "line": 16, + "column": 3 + } + }, + { + "id": "pricing.support.label", + "defaultMessage": "!!!Select your support plan", + "file": "src/components/auth/Pricing.js", + "start": { + "line": 17, + "column": 23 + }, + "end": { + "line": 20, + "column": 3 + } + }, + { + "id": "pricing.submit.label", + "defaultMessage": "!!!Support the development of Franz", + "file": "src/components/auth/Pricing.js", + "start": { + "line": 21, + "column": 21 + }, + "end": { + "line": 24, + "column": 3 + } + }, + { + "id": "pricing.link.skipPayment", + "defaultMessage": "!!!I don't want to support the development of Franz.", + "file": "src/components/auth/Pricing.js", + "start": { + "line": 25, + "column": 15 + }, + "end": { + "line": 28, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/auth/Signup.json b/src/i18n/messages/src/components/auth/Signup.json new file mode 100644 index 000000000..a09745048 --- /dev/null +++ b/src/i18n/messages/src/components/auth/Signup.json @@ -0,0 +1,158 @@ +[ + { + "id": "signup.headline", + "defaultMessage": "!!!Sign up", + "file": "src/components/auth/Signup.js", + "start": { + "line": 18, + "column": 12 + }, + "end": { + "line": 21, + "column": 3 + } + }, + { + "id": "signup.firstname.label", + "defaultMessage": "!!!Firstname", + "file": "src/components/auth/Signup.js", + "start": { + "line": 22, + "column": 18 + }, + "end": { + "line": 25, + "column": 3 + } + }, + { + "id": "signup.lastname.label", + "defaultMessage": "!!!Lastname", + "file": "src/components/auth/Signup.js", + "start": { + "line": 26, + "column": 17 + }, + "end": { + "line": 29, + "column": 3 + } + }, + { + "id": "signup.email.label", + "defaultMessage": "!!!Email address", + "file": "src/components/auth/Signup.js", + "start": { + "line": 30, + "column": 14 + }, + "end": { + "line": 33, + "column": 3 + } + }, + { + "id": "signup.company.label", + "defaultMessage": "!!!Company", + "file": "src/components/auth/Signup.js", + "start": { + "line": 34, + "column": 16 + }, + "end": { + "line": 37, + "column": 3 + } + }, + { + "id": "signup.password.label", + "defaultMessage": "!!!Password", + "file": "src/components/auth/Signup.js", + "start": { + "line": 38, + "column": 17 + }, + "end": { + "line": 41, + "column": 3 + } + }, + { + "id": "signup.legal.info", + "defaultMessage": "!!!By creating a Franz account you accept the", + "file": "src/components/auth/Signup.js", + "start": { + "line": 42, + "column": 13 + }, + "end": { + "line": 45, + "column": 3 + } + }, + { + "id": "signup.legal.terms", + "defaultMessage": "!!!Terms of service", + "file": "src/components/auth/Signup.js", + "start": { + "line": 46, + "column": 9 + }, + "end": { + "line": 49, + "column": 3 + } + }, + { + "id": "signup.legal.privacy", + "defaultMessage": "!!!Privacy Statement", + "file": "src/components/auth/Signup.js", + "start": { + "line": 50, + "column": 11 + }, + "end": { + "line": 53, + "column": 3 + } + }, + { + "id": "signup.submit.label", + "defaultMessage": "!!!Create account", + "file": "src/components/auth/Signup.js", + "start": { + "line": 54, + "column": 21 + }, + "end": { + "line": 57, + "column": 3 + } + }, + { + "id": "signup.link.login", + "defaultMessage": "!!!Already have an account, sign in?", + "file": "src/components/auth/Signup.js", + "start": { + "line": 58, + "column": 13 + }, + "end": { + "line": 61, + "column": 3 + } + }, + { + "id": "signup.emailDuplicate", + "defaultMessage": "!!!A user with that email address already exists", + "file": "src/components/auth/Signup.js", + "start": { + "line": 62, + "column": 18 + }, + "end": { + "line": 65, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/auth/Welcome.json b/src/i18n/messages/src/components/auth/Welcome.json new file mode 100644 index 000000000..b4d2ce689 --- /dev/null +++ b/src/i18n/messages/src/components/auth/Welcome.json @@ -0,0 +1,28 @@ +[ + { + "id": "welcome.signupButton", + "defaultMessage": "!!!Create a free account", + "file": "src/components/auth/Welcome.js", + "start": { + "line": 9, + "column": 16 + }, + "end": { + "line": 12, + "column": 3 + } + }, + { + "id": "welcome.loginButton", + "defaultMessage": "!!!Login to your account", + "file": "src/components/auth/Welcome.js", + "start": { + "line": 13, + "column": 15 + }, + "end": { + "line": 16, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/layout/AppLayout.json b/src/i18n/messages/src/components/layout/AppLayout.json new file mode 100644 index 000000000..07603d062 --- /dev/null +++ b/src/i18n/messages/src/components/layout/AppLayout.json @@ -0,0 +1,80 @@ +[ + { + "id": "infobar.servicesUpdated", + "defaultMessage": "!!!Your services have been updated.", + "file": "src/components/layout/AppLayout.js", + "start": { + "line": 22, + "column": 19 + }, + "end": { + "line": 25, + "column": 3 + } + }, + { + "id": "infobar.updateAvailable", + "defaultMessage": "!!!A new update for Franz is available.", + "file": "src/components/layout/AppLayout.js", + "start": { + "line": 26, + "column": 19 + }, + "end": { + "line": 29, + "column": 3 + } + }, + { + "id": "infobar.buttonReloadServices", + "defaultMessage": "!!!Reload services", + "file": "src/components/layout/AppLayout.js", + "start": { + "line": 30, + "column": 24 + }, + "end": { + "line": 33, + "column": 3 + } + }, + { + "id": "infobar.buttonChangelog", + "defaultMessage": "!!!Changelog", + "file": "src/components/layout/AppLayout.js", + "start": { + "line": 34, + "column": 13 + }, + "end": { + "line": 37, + "column": 3 + } + }, + { + "id": "infobar.buttonInstallUpdate", + "defaultMessage": "!!!Restart & install update", + "file": "src/components/layout/AppLayout.js", + "start": { + "line": 38, + "column": 23 + }, + "end": { + "line": 41, + "column": 3 + } + }, + { + "id": "infobar.requiredRequestsFailed", + "defaultMessage": "!!!Could not load services and user information", + "file": "src/components/layout/AppLayout.js", + "start": { + "line": 42, + "column": 26 + }, + "end": { + "line": 45, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/layout/Sidebar.json b/src/i18n/messages/src/components/layout/Sidebar.json new file mode 100644 index 000000000..7aa00a186 --- /dev/null +++ b/src/i18n/messages/src/components/layout/Sidebar.json @@ -0,0 +1,54 @@ +[ + { + "id": "sidebar.settings", + "defaultMessage": "!!!Settings", + "file": "src/components/layout/Sidebar.js", + "start": { + "line": 11, + "column": 12 + }, + "end": { + "line": 14, + "column": 3 + } + }, + { + "id": "sidebar.addNewService", + "defaultMessage": "!!!Add new service", + "file": "src/components/layout/Sidebar.js", + "start": { + "line": 15, + "column": 17 + }, + "end": { + "line": 18, + "column": 3 + } + }, + { + "id": "sidebar.muteApp", + "defaultMessage": "!!!Disable notifications & audio", + "file": "src/components/layout/Sidebar.js", + "start": { + "line": 19, + "column": 8 + }, + "end": { + "line": 22, + "column": 3 + } + }, + { + "id": "sidebar.unmuteApp", + "defaultMessage": "!!!Enable notifications & audio", + "file": "src/components/layout/Sidebar.js", + "start": { + "line": 23, + "column": 10 + }, + "end": { + "line": 26, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/services/content/ErrorHandlers/WebviewErrorHandler.json b/src/i18n/messages/src/components/services/content/ErrorHandlers/WebviewErrorHandler.json new file mode 100644 index 000000000..c8fe802df --- /dev/null +++ b/src/i18n/messages/src/components/services/content/ErrorHandlers/WebviewErrorHandler.json @@ -0,0 +1,67 @@ +[ + { + "id": "service.errorHandler.headline", + "defaultMessage": "!!!Oh no!", + "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js", + "start": { + "line": 12, + "column": 12 + }, + "end": { + "line": 15, + "column": 3 + } + }, + { + "id": "service.errorHandler.text", + "defaultMessage": "!!!{name} has failed to load.", + "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js", + "start": { + "line": 16, + "column": 8 + }, + "end": { + "line": 19, + "column": 3 + } + }, + { + "id": "service.errorHandler.action", + "defaultMessage": "!!!Reload {name}", + "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js", + "start": { + "line": 20, + "column": 10 + }, + "end": { + "line": 23, + "column": 3 + } + }, + { + "id": "service.errorHandler.editAction", + "defaultMessage": "!!!Edit {name}", + "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js", + "start": { + "line": 24, + "column": 14 + }, + "end": { + "line": 27, + "column": 3 + } + }, + { + "id": "service.errorHandler.message", + "defaultMessage": "!!!Error:", + "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js", + "start": { + "line": 28, + "column": 16 + }, + "end": { + "line": 31, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/services/content/ServiceDisabled.json b/src/i18n/messages/src/components/services/content/ServiceDisabled.json new file mode 100644 index 000000000..8bfad28c7 --- /dev/null +++ b/src/i18n/messages/src/components/services/content/ServiceDisabled.json @@ -0,0 +1,28 @@ +[ + { + "id": "service.disabledHandler.headline", + "defaultMessage": "!!!{name} is disabled", + "file": "src/components/services/content/ServiceDisabled.js", + "start": { + "line": 9, + "column": 12 + }, + "end": { + "line": 12, + "column": 3 + } + }, + { + "id": "service.disabledHandler.action", + "defaultMessage": "!!!Enable {name}", + "file": "src/components/services/content/ServiceDisabled.js", + "start": { + "line": 13, + "column": 10 + }, + "end": { + "line": 16, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/services/content/Services.json b/src/i18n/messages/src/components/services/content/Services.json new file mode 100644 index 000000000..884ab0c90 --- /dev/null +++ b/src/i18n/messages/src/components/services/content/Services.json @@ -0,0 +1,28 @@ +[ + { + "id": "services.welcome", + "defaultMessage": "!!!Welcome to Franz", + "file": "src/components/services/content/Services.js", + "start": { + "line": 11, + "column": 11 + }, + "end": { + "line": 14, + "column": 3 + } + }, + { + "id": "services.getStarted", + "defaultMessage": "!!!Get started", + "file": "src/components/services/content/Services.js", + "start": { + "line": 15, + "column": 14 + }, + "end": { + "line": 18, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/services/content/WebviewCrashHandler.json b/src/i18n/messages/src/components/services/content/WebviewCrashHandler.json new file mode 100644 index 000000000..c3d6c41a5 --- /dev/null +++ b/src/i18n/messages/src/components/services/content/WebviewCrashHandler.json @@ -0,0 +1,54 @@ +[ + { + "id": "service.crashHandler.headline", + "defaultMessage": "!!!Oh no!", + "file": "src/components/services/content/WebviewCrashHandler.js", + "start": { + "line": 10, + "column": 12 + }, + "end": { + "line": 13, + "column": 3 + } + }, + { + "id": "service.crashHandler.text", + "defaultMessage": "!!!{name} has caused an error.", + "file": "src/components/services/content/WebviewCrashHandler.js", + "start": { + "line": 14, + "column": 8 + }, + "end": { + "line": 17, + "column": 3 + } + }, + { + "id": "service.crashHandler.action", + "defaultMessage": "!!!Reload {name}", + "file": "src/components/services/content/WebviewCrashHandler.js", + "start": { + "line": 18, + "column": 10 + }, + "end": { + "line": 21, + "column": 3 + } + }, + { + "id": "service.crashHandler.autoReload", + "defaultMessage": "!!!Trying to automatically restore {name} in {seconds} seconds", + "file": "src/components/services/content/WebviewCrashHandler.js", + "start": { + "line": 22, + "column": 14 + }, + "end": { + "line": 25, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/services/tabs/TabItem.json b/src/i18n/messages/src/components/services/tabs/TabItem.json new file mode 100644 index 000000000..08a07845c --- /dev/null +++ b/src/i18n/messages/src/components/services/tabs/TabItem.json @@ -0,0 +1,119 @@ +[ + { + "id": "tabs.item.reload", + "defaultMessage": "!!!Reload", + "file": "src/components/services/tabs/TabItem.js", + "start": { + "line": 15, + "column": 10 + }, + "end": { + "line": 18, + "column": 3 + } + }, + { + "id": "tabs.item.edit", + "defaultMessage": "!!!Edit", + "file": "src/components/services/tabs/TabItem.js", + "start": { + "line": 19, + "column": 8 + }, + "end": { + "line": 22, + "column": 3 + } + }, + { + "id": "tabs.item.disableNotifications", + "defaultMessage": "!!!Disable notifications", + "file": "src/components/services/tabs/TabItem.js", + "start": { + "line": 23, + "column": 24 + }, + "end": { + "line": 26, + "column": 3 + } + }, + { + "id": "tabs.item.enableNotification", + "defaultMessage": "!!!Enable notifications", + "file": "src/components/services/tabs/TabItem.js", + "start": { + "line": 27, + "column": 23 + }, + "end": { + "line": 30, + "column": 3 + } + }, + { + "id": "tabs.item.disableAudio", + "defaultMessage": "!!!Disable audio", + "file": "src/components/services/tabs/TabItem.js", + "start": { + "line": 31, + "column": 16 + }, + "end": { + "line": 34, + "column": 3 + } + }, + { + "id": "tabs.item.enableAudio", + "defaultMessage": "!!!Enable audio", + "file": "src/components/services/tabs/TabItem.js", + "start": { + "line": 35, + "column": 15 + }, + "end": { + "line": 38, + "column": 3 + } + }, + { + "id": "tabs.item.disableService", + "defaultMessage": "!!!Disable Service", + "file": "src/components/services/tabs/TabItem.js", + "start": { + "line": 39, + "column": 18 + }, + "end": { + "line": 42, + "column": 3 + } + }, + { + "id": "tabs.item.enableService", + "defaultMessage": "!!!Enable Service", + "file": "src/components/services/tabs/TabItem.js", + "start": { + "line": 43, + "column": 17 + }, + "end": { + "line": 46, + "column": 3 + } + }, + { + "id": "tabs.item.deleteService", + "defaultMessage": "!!!Delete Service", + "file": "src/components/services/tabs/TabItem.js", + "start": { + "line": 47, + "column": 17 + }, + "end": { + "line": 50, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/settings/account/AccountDashboard.json b/src/i18n/messages/src/components/settings/account/AccountDashboard.json new file mode 100644 index 000000000..603950395 --- /dev/null +++ b/src/i18n/messages/src/components/settings/account/AccountDashboard.json @@ -0,0 +1,197 @@ +[ + { + "id": "settings.account.headline", + "defaultMessage": "!!!Account", + "file": "src/components/settings/account/AccountDashboard.js", + "start": { + "line": 15, + "column": 12 + }, + "end": { + "line": 18, + "column": 3 + } + }, + { + "id": "settings.account.headlineSubscription", + "defaultMessage": "!!!Your Subscription", + "file": "src/components/settings/account/AccountDashboard.js", + "start": { + "line": 19, + "column": 24 + }, + "end": { + "line": 22, + "column": 3 + } + }, + { + "id": "settings.account.headlineUpgrade", + "defaultMessage": "!!!Upgrade your Account", + "file": "src/components/settings/account/AccountDashboard.js", + "start": { + "line": 23, + "column": 19 + }, + "end": { + "line": 26, + "column": 3 + } + }, + { + "id": "settings.account.headlineInvoices", + "defaultMessage": "!!Invoices", + "file": "src/components/settings/account/AccountDashboard.js", + "start": { + "line": 27, + "column": 20 + }, + "end": { + "line": 30, + "column": 3 + } + }, + { + "id": "settings.account.headlineDangerZone", + "defaultMessage": "!!Danger Zone", + "file": "src/components/settings/account/AccountDashboard.js", + "start": { + "line": 31, + "column": 22 + }, + "end": { + "line": 34, + "column": 3 + } + }, + { + "id": "settings.account.manageSubscription.label", + "defaultMessage": "!!!Manage your subscription", + "file": "src/components/settings/account/AccountDashboard.js", + "start": { + "line": 35, + "column": 33 + }, + "end": { + "line": 38, + "column": 3 + } + }, + { + "id": "settings.account.accountType.basic", + "defaultMessage": "!!!Basic Account", + "file": "src/components/settings/account/AccountDashboard.js", + "start": { + "line": 39, + "column": 20 + }, + "end": { + "line": 42, + "column": 3 + } + }, + { + "id": "settings.account.accountType.premium", + "defaultMessage": "!!!Premium Supporter Account", + "file": "src/components/settings/account/AccountDashboard.js", + "start": { + "line": 43, + "column": 22 + }, + "end": { + "line": 46, + "column": 3 + } + }, + { + "id": "settings.account.account.editButton", + "defaultMessage": "!!!Edit Account", + "file": "src/components/settings/account/AccountDashboard.js", + "start": { + "line": 47, + "column": 21 + }, + "end": { + "line": 50, + "column": 3 + } + }, + { + "id": "settings.account.invoiceDownload", + "defaultMessage": "!!!Download", + "file": "src/components/settings/account/AccountDashboard.js", + "start": { + "line": 51, + "column": 19 + }, + "end": { + "line": 54, + "column": 3 + } + }, + { + "id": "settings.account.userInfoRequestFailed", + "defaultMessage": "!!!Could not load user information", + "file": "src/components/settings/account/AccountDashboard.js", + "start": { + "line": 55, + "column": 25 + }, + "end": { + "line": 58, + "column": 3 + } + }, + { + "id": "settings.account.tryReloadUserInfoRequest", + "defaultMessage": "!!!Try again", + "file": "src/components/settings/account/AccountDashboard.js", + "start": { + "line": 59, + "column": 28 + }, + "end": { + "line": 62, + "column": 3 + } + }, + { + "id": "settings.account.deleteAccount", + "defaultMessage": "!!!Delete account", + "file": "src/components/settings/account/AccountDashboard.js", + "start": { + "line": 63, + "column": 17 + }, + "end": { + "line": 66, + "column": 3 + } + }, + { + "id": "settings.account.deleteInfo", + "defaultMessage": "!!!If you don't need your Franz account any longer, you can delete your account and all related data here.", + "file": "src/components/settings/account/AccountDashboard.js", + "start": { + "line": 67, + "column": 14 + }, + "end": { + "line": 70, + "column": 3 + } + }, + { + "id": "settings.account.deleteEmailSent", + "defaultMessage": "!!!You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", + "file": "src/components/settings/account/AccountDashboard.js", + "start": { + "line": 71, + "column": 19 + }, + "end": { + "line": 74, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json b/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json new file mode 100644 index 000000000..785ce9f29 --- /dev/null +++ b/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json @@ -0,0 +1,80 @@ +[ + { + "id": "settings.navigation.availableServices", + "defaultMessage": "!!!Available services", + "file": "src/components/settings/navigation/SettingsNavigation.js", + "start": { + "line": 9, + "column": 21 + }, + "end": { + "line": 12, + "column": 3 + } + }, + { + "id": "settings.navigation.yourServices", + "defaultMessage": "!!!Your services", + "file": "src/components/settings/navigation/SettingsNavigation.js", + "start": { + "line": 13, + "column": 16 + }, + "end": { + "line": 16, + "column": 3 + } + }, + { + "id": "settings.navigation.account", + "defaultMessage": "!!!Account", + "file": "src/components/settings/navigation/SettingsNavigation.js", + "start": { + "line": 17, + "column": 11 + }, + "end": { + "line": 20, + "column": 3 + } + }, + { + "id": "settings.navigation.settings", + "defaultMessage": "!!!Settings", + "file": "src/components/settings/navigation/SettingsNavigation.js", + "start": { + "line": 21, + "column": 12 + }, + "end": { + "line": 24, + "column": 3 + } + }, + { + "id": "settings.navigation.inviteFriends", + "defaultMessage": "!!!Invite Friends", + "file": "src/components/settings/navigation/SettingsNavigation.js", + "start": { + "line": 25, + "column": 17 + }, + "end": { + "line": 28, + "column": 3 + } + }, + { + "id": "settings.navigation.logout", + "defaultMessage": "!!!Logout", + "file": "src/components/settings/navigation/SettingsNavigation.js", + "start": { + "line": 29, + "column": 10 + }, + "end": { + "line": 32, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/settings/recipes/RecipesDashboard.json b/src/i18n/messages/src/components/settings/recipes/RecipesDashboard.json new file mode 100644 index 000000000..7d9ed3283 --- /dev/null +++ b/src/i18n/messages/src/components/settings/recipes/RecipesDashboard.json @@ -0,0 +1,106 @@ +[ + { + "id": "settings.recipes.headline", + "defaultMessage": "!!!Available Services", + "file": "src/components/settings/recipes/RecipesDashboard.js", + "start": { + "line": 15, + "column": 12 + }, + "end": { + "line": 18, + "column": 3 + } + }, + { + "id": "settings.searchService", + "defaultMessage": "!!!Search service", + "file": "src/components/settings/recipes/RecipesDashboard.js", + "start": { + "line": 19, + "column": 17 + }, + "end": { + "line": 22, + "column": 3 + } + }, + { + "id": "settings.recipes.mostPopular", + "defaultMessage": "!!!Most popular", + "file": "src/components/settings/recipes/RecipesDashboard.js", + "start": { + "line": 23, + "column": 22 + }, + "end": { + "line": 26, + "column": 3 + } + }, + { + "id": "settings.recipes.all", + "defaultMessage": "!!!All services", + "file": "src/components/settings/recipes/RecipesDashboard.js", + "start": { + "line": 27, + "column": 14 + }, + "end": { + "line": 30, + "column": 3 + } + }, + { + "id": "settings.recipes.dev", + "defaultMessage": "!!!Development", + "file": "src/components/settings/recipes/RecipesDashboard.js", + "start": { + "line": 31, + "column": 14 + }, + "end": { + "line": 34, + "column": 3 + } + }, + { + "id": "settings.recipes.nothingFound", + "defaultMessage": "!!!Sorry, but no service matched your search term.", + "file": "src/components/settings/recipes/RecipesDashboard.js", + "start": { + "line": 35, + "column": 16 + }, + "end": { + "line": 38, + "column": 3 + } + }, + { + "id": "settings.recipes.servicesSuccessfulAddedInfo", + "defaultMessage": "!!!Service successfully added", + "file": "src/components/settings/recipes/RecipesDashboard.js", + "start": { + "line": 39, + "column": 31 + }, + "end": { + "line": 42, + "column": 3 + } + }, + { + "id": "settings.recipes.missingService", + "defaultMessage": "!!!Missing a service?", + "file": "src/components/settings/recipes/RecipesDashboard.js", + "start": { + "line": 43, + "column": 18 + }, + "end": { + "line": 46, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/settings/services/EditServiceForm.json b/src/i18n/messages/src/components/settings/services/EditServiceForm.json new file mode 100644 index 000000000..42b741b7a --- /dev/null +++ b/src/i18n/messages/src/components/settings/services/EditServiceForm.json @@ -0,0 +1,288 @@ +[ + { + "id": "settings.service.form.saveButton", + "defaultMessage": "!!!Save service", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 22, + "column": 15 + }, + "end": { + "line": 25, + "column": 3 + } + }, + { + "id": "settings.service.form.deleteButton", + "defaultMessage": "!!!Delete Service", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 26, + "column": 17 + }, + "end": { + "line": 29, + "column": 3 + } + }, + { + "id": "settings.service.form.availableServices", + "defaultMessage": "!!!Available services", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 30, + "column": 21 + }, + "end": { + "line": 33, + "column": 3 + } + }, + { + "id": "settings.service.form.yourServices", + "defaultMessage": "!!!Your services", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 34, + "column": 16 + }, + "end": { + "line": 37, + "column": 3 + } + }, + { + "id": "settings.service.form.addServiceHeadline", + "defaultMessage": "!!!Add {name}", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 38, + "column": 22 + }, + "end": { + "line": 41, + "column": 3 + } + }, + { + "id": "settings.service.form.editServiceHeadline", + "defaultMessage": "!!!Edit {name}", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 42, + "column": 23 + }, + "end": { + "line": 45, + "column": 3 + } + }, + { + "id": "settings.service.form.tabHosted", + "defaultMessage": "!!!Hosted", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 46, + "column": 13 + }, + "end": { + "line": 49, + "column": 3 + } + }, + { + "id": "settings.service.form.tabOnPremise", + "defaultMessage": "!!!Self hosted ⭐️", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 50, + "column": 16 + }, + "end": { + "line": 53, + "column": 3 + } + }, + { + "id": "settings.service.form.useHostedService", + "defaultMessage": "!!!Use the hosted {name} service.", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 54, + "column": 20 + }, + "end": { + "line": 57, + "column": 3 + } + }, + { + "id": "settings.service.form.customUrlValidationError", + "defaultMessage": "!!!Could not validate custom {name} server.", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 58, + "column": 28 + }, + "end": { + "line": 61, + "column": 3 + } + }, + { + "id": "settings.service.form.customUrlPremiumInfo", + "defaultMessage": "!!!To add self hosted services, you need a Franz Premium Supporter Account.", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 62, + "column": 24 + }, + "end": { + "line": 65, + "column": 3 + } + }, + { + "id": "settings.service.form.customUrlUpgradeAccount", + "defaultMessage": "!!!Upgrade your account", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 66, + "column": 27 + }, + "end": { + "line": 69, + "column": 3 + } + }, + { + "id": "settings.service.form.indirectMessageInfo", + "defaultMessage": "!!!You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 70, + "column": 23 + }, + "end": { + "line": 73, + "column": 3 + } + }, + { + "id": "settings.service.form.isMutedInfo", + "defaultMessage": "!!!When disabled, all notification sounds and audio playback are muted", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 74, + "column": 15 + }, + "end": { + "line": 77, + "column": 3 + } + }, + { + "id": "settings.service.form.headlineNotifications", + "defaultMessage": "!!!Notifications", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 78, + "column": 25 + }, + "end": { + "line": 81, + "column": 3 + } + }, + { + "id": "settings.service.form.headlineBadges", + "defaultMessage": "!!!Unread message badges", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 82, + "column": 18 + }, + "end": { + "line": 85, + "column": 3 + } + }, + { + "id": "settings.service.form.headlineGeneral", + "defaultMessage": "!!!General", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 86, + "column": 19 + }, + "end": { + "line": 89, + "column": 3 + } + }, + { + "id": "settings.service.form.iconDelete", + "defaultMessage": "!!!Delete", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 90, + "column": 14 + }, + "end": { + "line": 93, + "column": 3 + } + }, + { + "id": "settings.service.form.iconUpload", + "defaultMessage": "!!!Drop your image, or click here", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 94, + "column": 14 + }, + "end": { + "line": 97, + "column": 3 + } + }, + { + "id": "settings.service.form.proxy.headline", + "defaultMessage": "!!!HTTP/HTTPS Proxy Settings", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 98, + "column": 17 + }, + "end": { + "line": 101, + "column": 3 + } + }, + { + "id": "settings.service.form.proxy.restartInfo", + "defaultMessage": "!!!Please restart Franz after changing proxy Settings.", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 102, + "column": 20 + }, + "end": { + "line": 105, + "column": 3 + } + }, + { + "id": "settings.service.form.proxy.info", + "defaultMessage": "!!!Proxy settings will not be synchronized with the Franz servers.", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 106, + "column": 13 + }, + "end": { + "line": 109, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/settings/services/ServiceError.json b/src/i18n/messages/src/components/settings/services/ServiceError.json new file mode 100644 index 000000000..648fc5b3e --- /dev/null +++ b/src/i18n/messages/src/components/settings/services/ServiceError.json @@ -0,0 +1,54 @@ +[ + { + "id": "settings.service.error.headline", + "defaultMessage": "!!!Error", + "file": "src/components/settings/services/ServiceError.js", + "start": { + "line": 10, + "column": 12 + }, + "end": { + "line": 13, + "column": 3 + } + }, + { + "id": "settings.service.error.goBack", + "defaultMessage": "!!!Back to services", + "file": "src/components/settings/services/ServiceError.js", + "start": { + "line": 14, + "column": 10 + }, + "end": { + "line": 17, + "column": 3 + } + }, + { + "id": "settings.service.form.availableServices", + "defaultMessage": "!!!Available services", + "file": "src/components/settings/services/ServiceError.js", + "start": { + "line": 18, + "column": 21 + }, + "end": { + "line": 21, + "column": 3 + } + }, + { + "id": "settings.service.error.message", + "defaultMessage": "!!!Could not load service recipe.", + "file": "src/components/settings/services/ServiceError.js", + "start": { + "line": 22, + "column": 16 + }, + "end": { + "line": 25, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/settings/services/ServiceItem.json b/src/i18n/messages/src/components/settings/services/ServiceItem.json new file mode 100644 index 000000000..ffea8b9e1 --- /dev/null +++ b/src/i18n/messages/src/components/settings/services/ServiceItem.json @@ -0,0 +1,41 @@ +[ + { + "id": "settings.services.tooltip.isDisabled", + "defaultMessage": "!!!Service is disabled", + "file": "src/components/settings/services/ServiceItem.js", + "start": { + "line": 11, + "column": 21 + }, + "end": { + "line": 14, + "column": 3 + } + }, + { + "id": "settings.services.tooltip.notificationsDisabled", + "defaultMessage": "!!!Notifications are disabled", + "file": "src/components/settings/services/ServiceItem.js", + "start": { + "line": 15, + "column": 32 + }, + "end": { + "line": 18, + "column": 3 + } + }, + { + "id": "settings.services.tooltip.isMuted", + "defaultMessage": "!!!All sounds are muted", + "file": "src/components/settings/services/ServiceItem.js", + "start": { + "line": 19, + "column": 18 + }, + "end": { + "line": 22, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/settings/services/ServicesDashboard.json b/src/i18n/messages/src/components/settings/services/ServicesDashboard.json new file mode 100644 index 000000000..3803c6512 --- /dev/null +++ b/src/i18n/messages/src/components/settings/services/ServicesDashboard.json @@ -0,0 +1,119 @@ +[ + { + "id": "settings.services.headline", + "defaultMessage": "!!!Your services", + "file": "src/components/settings/services/ServicesDashboard.js", + "start": { + "line": 14, + "column": 12 + }, + "end": { + "line": 17, + "column": 3 + } + }, + { + "id": "settings.searchService", + "defaultMessage": "!!!Search service", + "file": "src/components/settings/services/ServicesDashboard.js", + "start": { + "line": 18, + "column": 17 + }, + "end": { + "line": 21, + "column": 3 + } + }, + { + "id": "settings.services.noServicesAdded", + "defaultMessage": "!!!You haven't added any services yet.", + "file": "src/components/settings/services/ServicesDashboard.js", + "start": { + "line": 22, + "column": 19 + }, + "end": { + "line": 25, + "column": 3 + } + }, + { + "id": "settings.recipes.nothingFound", + "defaultMessage": "!!!Sorry, but no service matched your search term.", + "file": "src/components/settings/services/ServicesDashboard.js", + "start": { + "line": 26, + "column": 18 + }, + "end": { + "line": 29, + "column": 3 + } + }, + { + "id": "settings.services.discoverServices", + "defaultMessage": "!!!Discover services", + "file": "src/components/settings/services/ServicesDashboard.js", + "start": { + "line": 30, + "column": 20 + }, + "end": { + "line": 33, + "column": 3 + } + }, + { + "id": "settings.services.servicesRequestFailed", + "defaultMessage": "!!!Could not load your services", + "file": "src/components/settings/services/ServicesDashboard.js", + "start": { + "line": 34, + "column": 25 + }, + "end": { + "line": 37, + "column": 3 + } + }, + { + "id": "settings.account.tryReloadServices", + "defaultMessage": "!!!Try again", + "file": "src/components/settings/services/ServicesDashboard.js", + "start": { + "line": 38, + "column": 21 + }, + "end": { + "line": 41, + "column": 3 + } + }, + { + "id": "settings.services.updatedInfo", + "defaultMessage": "!!!Your changes have been saved", + "file": "src/components/settings/services/ServicesDashboard.js", + "start": { + "line": 42, + "column": 15 + }, + "end": { + "line": 45, + "column": 3 + } + }, + { + "id": "settings.services.deletedInfo", + "defaultMessage": "!!!Service has been deleted", + "file": "src/components/settings/services/ServicesDashboard.js", + "start": { + "line": 46, + "column": 15 + }, + "end": { + "line": 49, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json new file mode 100644 index 000000000..c64f477be --- /dev/null +++ b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json @@ -0,0 +1,223 @@ +[ + { + "id": "settings.app.headline", + "defaultMessage": "!!!Settings", + "file": "src/components/settings/settings/EditSettingsForm.js", + "start": { + "line": 16, + "column": 12 + }, + "end": { + "line": 19, + "column": 3 + } + }, + { + "id": "settings.app.headlineGeneral", + "defaultMessage": "!!!General", + "file": "src/components/settings/settings/EditSettingsForm.js", + "start": { + "line": 20, + "column": 19 + }, + "end": { + "line": 23, + "column": 3 + } + }, + { + "id": "settings.app.headlineLanguage", + "defaultMessage": "!!!Language", + "file": "src/components/settings/settings/EditSettingsForm.js", + "start": { + "line": 24, + "column": 20 + }, + "end": { + "line": 27, + "column": 3 + } + }, + { + "id": "settings.app.headlineUpdates", + "defaultMessage": "!!!Updates", + "file": "src/components/settings/settings/EditSettingsForm.js", + "start": { + "line": 28, + "column": 19 + }, + "end": { + "line": 31, + "column": 3 + } + }, + { + "id": "settings.app.headlineAppearance", + "defaultMessage": "!!!Appearance", + "file": "src/components/settings/settings/EditSettingsForm.js", + "start": { + "line": 32, + "column": 22 + }, + "end": { + "line": 35, + "column": 3 + } + }, + { + "id": "settings.app.headlineAdvanced", + "defaultMessage": "!!!Advanced", + "file": "src/components/settings/settings/EditSettingsForm.js", + "start": { + "line": 36, + "column": 20 + }, + "end": { + "line": 39, + "column": 3 + } + }, + { + "id": "settings.app.translationHelp", + "defaultMessage": "!!!Help us to translate Franz into your language.", + "file": "src/components/settings/settings/EditSettingsForm.js", + "start": { + "line": 40, + "column": 19 + }, + "end": { + "line": 43, + "column": 3 + } + }, + { + "id": "settings.app.subheadlineCache", + "defaultMessage": "!!!Cache", + "file": "src/components/settings/settings/EditSettingsForm.js", + "start": { + "line": 44, + "column": 20 + }, + "end": { + "line": 47, + "column": 3 + } + }, + { + "id": "settings.app.cacheInfo", + "defaultMessage": "!!!Franz cache is currently using {size} of disk space.", + "file": "src/components/settings/settings/EditSettingsForm.js", + "start": { + "line": 48, + "column": 13 + }, + "end": { + "line": 51, + "column": 3 + } + }, + { + "id": "settings.app.buttonClearAllCache", + "defaultMessage": "!!!Clear cache", + "file": "src/components/settings/settings/EditSettingsForm.js", + "start": { + "line": 52, + "column": 23 + }, + "end": { + "line": 55, + "column": 3 + } + }, + { + "id": "settings.app.buttonSearchForUpdate", + "defaultMessage": "!!!Check for updates", + "file": "src/components/settings/settings/EditSettingsForm.js", + "start": { + "line": 56, + "column": 25 + }, + "end": { + "line": 59, + "column": 3 + } + }, + { + "id": "settings.app.buttonInstallUpdate", + "defaultMessage": "!!!Restart & install update", + "file": "src/components/settings/settings/EditSettingsForm.js", + "start": { + "line": 60, + "column": 23 + }, + "end": { + "line": 63, + "column": 3 + } + }, + { + "id": "settings.app.updateStatusSearching", + "defaultMessage": "!!!Is searching for update", + "file": "src/components/settings/settings/EditSettingsForm.js", + "start": { + "line": 64, + "column": 25 + }, + "end": { + "line": 67, + "column": 3 + } + }, + { + "id": "settings.app.updateStatusAvailable", + "defaultMessage": "!!!Update available, downloading...", + "file": "src/components/settings/settings/EditSettingsForm.js", + "start": { + "line": 68, + "column": 25 + }, + "end": { + "line": 71, + "column": 3 + } + }, + { + "id": "settings.app.updateStatusUpToDate", + "defaultMessage": "!!!You are using the latest version of Franz", + "file": "src/components/settings/settings/EditSettingsForm.js", + "start": { + "line": 72, + "column": 24 + }, + "end": { + "line": 75, + "column": 3 + } + }, + { + "id": "settings.app.currentVersion", + "defaultMessage": "!!!Current version:", + "file": "src/components/settings/settings/EditSettingsForm.js", + "start": { + "line": 76, + "column": 18 + }, + "end": { + "line": 79, + "column": 3 + } + }, + { + "id": "settings.app.restartRequired", + "defaultMessage": "!!!Changes require restart", + "file": "src/components/settings/settings/EditSettingsForm.js", + "start": { + "line": 80, + "column": 29 + }, + "end": { + "line": 83, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/settings/user/EditUserForm.json b/src/i18n/messages/src/components/settings/user/EditUserForm.json new file mode 100644 index 000000000..3a59f8681 --- /dev/null +++ b/src/i18n/messages/src/components/settings/user/EditUserForm.json @@ -0,0 +1,80 @@ +[ + { + "id": "settings.account.headline", + "defaultMessage": "!!!Account", + "file": "src/components/settings/user/EditUserForm.js", + "start": { + "line": 15, + "column": 12 + }, + "end": { + "line": 18, + "column": 3 + } + }, + { + "id": "settings.account.headlineProfile", + "defaultMessage": "!!!Update Profile", + "file": "src/components/settings/user/EditUserForm.js", + "start": { + "line": 19, + "column": 19 + }, + "end": { + "line": 22, + "column": 3 + } + }, + { + "id": "settings.account.headlineAccount", + "defaultMessage": "!!!Account Information", + "file": "src/components/settings/user/EditUserForm.js", + "start": { + "line": 23, + "column": 19 + }, + "end": { + "line": 26, + "column": 3 + } + }, + { + "id": "settings.account.headlinePassword", + "defaultMessage": "!!!Change Password", + "file": "src/components/settings/user/EditUserForm.js", + "start": { + "line": 27, + "column": 20 + }, + "end": { + "line": 30, + "column": 3 + } + }, + { + "id": "settings.account.successInfo", + "defaultMessage": "!!!Your changes have been saved", + "file": "src/components/settings/user/EditUserForm.js", + "start": { + "line": 31, + "column": 15 + }, + "end": { + "line": 34, + "column": 3 + } + }, + { + "id": "settings.account.buttonSave", + "defaultMessage": "!!!Update profile", + "file": "src/components/settings/user/EditUserForm.js", + "start": { + "line": 35, + "column": 14 + }, + "end": { + "line": 38, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/subscription/SubscriptionForm.json b/src/i18n/messages/src/components/subscription/SubscriptionForm.json new file mode 100644 index 000000000..cc7470358 --- /dev/null +++ b/src/i18n/messages/src/components/subscription/SubscriptionForm.json @@ -0,0 +1,171 @@ +[ + { + "id": "subscription.submit.label", + "defaultMessage": "!!!Support the development of Franz", + "file": "src/components/subscription/SubscriptionForm.js", + "start": { + "line": 14, + "column": 21 + }, + "end": { + "line": 17, + "column": 3 + } + }, + { + "id": "subscription.paymentSessionError", + "defaultMessage": "!!!Could not initialize payment form", + "file": "src/components/subscription/SubscriptionForm.js", + "start": { + "line": 18, + "column": 23 + }, + "end": { + "line": 21, + "column": 3 + } + }, + { + "id": "subscription.type.free", + "defaultMessage": "!!!free", + "file": "src/components/subscription/SubscriptionForm.js", + "start": { + "line": 22, + "column": 12 + }, + "end": { + "line": 25, + "column": 3 + } + }, + { + "id": "subscription.type.month", + "defaultMessage": "!!!month", + "file": "src/components/subscription/SubscriptionForm.js", + "start": { + "line": 26, + "column": 15 + }, + "end": { + "line": 29, + "column": 3 + } + }, + { + "id": "subscription.type.year", + "defaultMessage": "!!!year", + "file": "src/components/subscription/SubscriptionForm.js", + "start": { + "line": 30, + "column": 14 + }, + "end": { + "line": 33, + "column": 3 + } + }, + { + "id": "subscription.includedFeatures", + "defaultMessage": "!!!The Franz Premium Supporter Account includes", + "file": "src/components/subscription/SubscriptionForm.js", + "start": { + "line": 34, + "column": 20 + }, + "end": { + "line": 37, + "column": 3 + } + }, + { + "id": "subscription.features.onpremise.mattermost", + "defaultMessage": "!!!Add on-premise/hosted services like Mattermost", + "file": "src/components/subscription/SubscriptionForm.js", + "start": { + "line": 38, + "column": 13 + }, + "end": { + "line": 41, + "column": 3 + } + }, + { + "id": "subscription.features.noInterruptions", + "defaultMessage": "!!!No app delays & nagging to upgrade license", + "file": "src/components/subscription/SubscriptionForm.js", + "start": { + "line": 42, + "column": 19 + }, + "end": { + "line": 45, + "column": 3 + } + }, + { + "id": "subscription.features.proxy", + "defaultMessage": "!!!Proxy support for services", + "file": "src/components/subscription/SubscriptionForm.js", + "start": { + "line": 46, + "column": 9 + }, + "end": { + "line": 49, + "column": 3 + } + }, + { + "id": "subscription.features.spellchecker", + "defaultMessage": "!!!Support for Spellchecker", + "file": "src/components/subscription/SubscriptionForm.js", + "start": { + "line": 50, + "column": 16 + }, + "end": { + "line": 53, + "column": 3 + } + }, + { + "id": "subscription.features.ads", + "defaultMessage": "!!!No ads, ever!", + "file": "src/components/subscription/SubscriptionForm.js", + "start": { + "line": 54, + "column": 7 + }, + "end": { + "line": 57, + "column": 3 + } + }, + { + "id": "subscription.features.comingSoon", + "defaultMessage": "!!!coming soon", + "file": "src/components/subscription/SubscriptionForm.js", + "start": { + "line": 58, + "column": 14 + }, + "end": { + "line": 61, + "column": 3 + } + }, + { + "id": "subscription.euTaxInfo", + "defaultMessage": "!!!EU residents: local sales tax may apply", + "file": "src/components/subscription/SubscriptionForm.js", + "start": { + "line": 62, + "column": 13 + }, + "end": { + "line": 65, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/subscription/SubscriptionPopup.json b/src/i18n/messages/src/components/subscription/SubscriptionPopup.json new file mode 100644 index 000000000..c06da7531 --- /dev/null +++ b/src/i18n/messages/src/components/subscription/SubscriptionPopup.json @@ -0,0 +1,28 @@ +[ + { + "id": "subscriptionPopup.buttonCancel", + "defaultMessage": "!!!Cancel", + "file": "src/components/subscription/SubscriptionPopup.js", + "start": { + "line": 11, + "column": 16 + }, + "end": { + "line": 14, + "column": 3 + } + }, + { + "id": "subscriptionPopup.buttonDone", + "defaultMessage": "!!!Done", + "file": "src/components/subscription/SubscriptionPopup.js", + "start": { + "line": 15, + "column": 14 + }, + "end": { + "line": 18, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json b/src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json new file mode 100644 index 000000000..582d546fa --- /dev/null +++ b/src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json @@ -0,0 +1,15 @@ +[ + { + "id": "premiumFeature.button.upgradeAccount", + "defaultMessage": "!!!Upgrade account", + "file": "src/components/ui/PremiumFeatureContainer/index.js", + "start": { + "line": 14, + "column": 10 + }, + "end": { + "line": 17, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/util/ErrorBoundary/index.json b/src/i18n/messages/src/components/util/ErrorBoundary/index.json new file mode 100644 index 000000000..43c323031 --- /dev/null +++ b/src/i18n/messages/src/components/util/ErrorBoundary/index.json @@ -0,0 +1,28 @@ +[ + { + "id": "app.errorHandler.headline", + "defaultMessage": "!!!Something went wrong.", + "file": "src/components/util/ErrorBoundary/index.js", + "start": { + "line": 11, + "column": 12 + }, + "end": { + "line": 14, + "column": 3 + } + }, + { + "id": "app.errorHandler.action", + "defaultMessage": "!!!Reload", + "file": "src/components/util/ErrorBoundary/index.js", + "start": { + "line": 15, + "column": 10 + }, + "end": { + "line": 18, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/containers/settings/EditServiceScreen.json b/src/i18n/messages/src/containers/settings/EditServiceScreen.json new file mode 100644 index 000000000..42ca42125 --- /dev/null +++ b/src/i18n/messages/src/containers/settings/EditServiceScreen.json @@ -0,0 +1,197 @@ +[ + { + "id": "settings.service.form.name", + "defaultMessage": "!!!Name", + "file": "src/containers/settings/EditServiceScreen.js", + "start": { + "line": 28, + "column": 8 + }, + "end": { + "line": 31, + "column": 3 + } + }, + { + "id": "settings.service.form.enableService", + "defaultMessage": "!!!Enable service", + "file": "src/containers/settings/EditServiceScreen.js", + "start": { + "line": 32, + "column": 17 + }, + "end": { + "line": 35, + "column": 3 + } + }, + { + "id": "settings.service.form.enableNotification", + "defaultMessage": "!!!Enable Notifications", + "file": "src/containers/settings/EditServiceScreen.js", + "start": { + "line": 36, + "column": 22 + }, + "end": { + "line": 39, + "column": 3 + } + }, + { + "id": "settings.service.form.enableBadge", + "defaultMessage": "!!!Show unread message badges", + "file": "src/containers/settings/EditServiceScreen.js", + "start": { + "line": 40, + "column": 15 + }, + "end": { + "line": 43, + "column": 3 + } + }, + { + "id": "settings.service.form.enableAudio", + "defaultMessage": "!!!Enable audio", + "file": "src/containers/settings/EditServiceScreen.js", + "start": { + "line": 44, + "column": 15 + }, + "end": { + "line": 47, + "column": 3 + } + }, + { + "id": "settings.service.form.team", + "defaultMessage": "!!!Team", + "file": "src/containers/settings/EditServiceScreen.js", + "start": { + "line": 48, + "column": 8 + }, + "end": { + "line": 51, + "column": 3 + } + }, + { + "id": "settings.service.form.customUrl", + "defaultMessage": "!!!Custom server", + "file": "src/containers/settings/EditServiceScreen.js", + "start": { + "line": 52, + "column": 13 + }, + "end": { + "line": 55, + "column": 3 + } + }, + { + "id": "settings.service.form.indirectMessages", + "defaultMessage": "!!!Show message badge for all new messages", + "file": "src/containers/settings/EditServiceScreen.js", + "start": { + "line": 56, + "column": 20 + }, + "end": { + "line": 59, + "column": 3 + } + }, + { + "id": "settings.service.form.icon", + "defaultMessage": "!!!Custom icon", + "file": "src/containers/settings/EditServiceScreen.js", + "start": { + "line": 60, + "column": 8 + }, + "end": { + "line": 63, + "column": 3 + } + }, + { + "id": "settings.service.form.enableDarkMode", + "defaultMessage": "!!!Enable Dark Mode", + "file": "src/containers/settings/EditServiceScreen.js", + "start": { + "line": 64, + "column": 18 + }, + "end": { + "line": 67, + "column": 3 + } + }, + { + "id": "settings.service.form.proxy.isEnabled", + "defaultMessage": "!!!Use Proxy", + "file": "src/containers/settings/EditServiceScreen.js", + "start": { + "line": 68, + "column": 15 + }, + "end": { + "line": 71, + "column": 3 + } + }, + { + "id": "settings.service.form.proxy.host", + "defaultMessage": "!!!Proxy Host/IP", + "file": "src/containers/settings/EditServiceScreen.js", + "start": { + "line": 72, + "column": 13 + }, + "end": { + "line": 75, + "column": 3 + } + }, + { + "id": "settings.service.form.proxy.port", + "defaultMessage": "!!!Port", + "file": "src/containers/settings/EditServiceScreen.js", + "start": { + "line": 76, + "column": 13 + }, + "end": { + "line": 79, + "column": 3 + } + }, + { + "id": "settings.service.form.proxy.user", + "defaultMessage": "!!!User", + "file": "src/containers/settings/EditServiceScreen.js", + "start": { + "line": 80, + "column": 13 + }, + "end": { + "line": 83, + "column": 3 + } + }, + { + "id": "settings.service.form.proxy.password", + "defaultMessage": "!!!Password", + "file": "src/containers/settings/EditServiceScreen.js", + "start": { + "line": 84, + "column": 17 + }, + "end": { + "line": 87, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json new file mode 100644 index 000000000..d3b413540 --- /dev/null +++ b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json @@ -0,0 +1,158 @@ +[ + { + "id": "settings.app.form.autoLaunchOnStart", + "defaultMessage": "!!!Launch Franz on start", + "file": "src/containers/settings/EditSettingsScreen.js", + "start": { + "line": 22, + "column": 21 + }, + "end": { + "line": 25, + "column": 3 + } + }, + { + "id": "settings.app.form.autoLaunchInBackground", + "defaultMessage": "!!!Open in background", + "file": "src/containers/settings/EditSettingsScreen.js", + "start": { + "line": 26, + "column": 26 + }, + "end": { + "line": 29, + "column": 3 + } + }, + { + "id": "settings.app.form.runInBackground", + "defaultMessage": "!!!Keep Franz in background when closing the window", + "file": "src/containers/settings/EditSettingsScreen.js", + "start": { + "line": 30, + "column": 19 + }, + "end": { + "line": 33, + "column": 3 + } + }, + { + "id": "settings.app.form.enableSystemTray", + "defaultMessage": "!!!Show Franz in system tray", + "file": "src/containers/settings/EditSettingsScreen.js", + "start": { + "line": 34, + "column": 20 + }, + "end": { + "line": 37, + "column": 3 + } + }, + { + "id": "settings.app.form.minimizeToSystemTray", + "defaultMessage": "!!!Minimize Franz to system tray", + "file": "src/containers/settings/EditSettingsScreen.js", + "start": { + "line": 38, + "column": 24 + }, + "end": { + "line": 41, + "column": 3 + } + }, + { + "id": "settings.app.form.language", + "defaultMessage": "!!!Language", + "file": "src/containers/settings/EditSettingsScreen.js", + "start": { + "line": 42, + "column": 12 + }, + "end": { + "line": 45, + "column": 3 + } + }, + { + "id": "settings.app.form.darkMode", + "defaultMessage": "!!!Dark Mode", + "file": "src/containers/settings/EditSettingsScreen.js", + "start": { + "line": 46, + "column": 12 + }, + "end": { + "line": 49, + "column": 3 + } + }, + { + "id": "settings.app.form.showDisabledServices", + "defaultMessage": "!!!Display disabled services tabs", + "file": "src/containers/settings/EditSettingsScreen.js", + "start": { + "line": 50, + "column": 24 + }, + "end": { + "line": 53, + "column": 3 + } + }, + { + "id": "settings.app.form.showMessagesBadgesWhenMuted", + "defaultMessage": "!!!Show unread message badge when notifications are disabled", + "file": "src/containers/settings/EditSettingsScreen.js", + "start": { + "line": 54, + "column": 29 + }, + "end": { + "line": 57, + "column": 3 + } + }, + { + "id": "settings.app.form.enableSpellchecking", + "defaultMessage": "!!!Enable spell checking", + "file": "src/containers/settings/EditSettingsScreen.js", + "start": { + "line": 58, + "column": 23 + }, + "end": { + "line": 61, + "column": 3 + } + }, + { + "id": "settings.app.form.enableGPUAcceleration", + "defaultMessage": "!!!Enable GPU Acceleration", + "file": "src/containers/settings/EditSettingsScreen.js", + "start": { + "line": 62, + "column": 25 + }, + "end": { + "line": 65, + "column": 3 + } + }, + { + "id": "settings.app.form.beta", + "defaultMessage": "!!!Include beta versions", + "file": "src/containers/settings/EditSettingsScreen.js", + "start": { + "line": 66, + "column": 8 + }, + "end": { + "line": 69, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/containers/settings/EditUserScreen.json b/src/i18n/messages/src/containers/settings/EditUserScreen.json new file mode 100644 index 000000000..70ff29945 --- /dev/null +++ b/src/i18n/messages/src/containers/settings/EditUserScreen.json @@ -0,0 +1,119 @@ +[ + { + "id": "settings.user.form.firstname", + "defaultMessage": "!!!Firstname", + "file": "src/containers/settings/EditUserScreen.js", + "start": { + "line": 14, + "column": 13 + }, + "end": { + "line": 17, + "column": 3 + } + }, + { + "id": "settings.user.form.lastname", + "defaultMessage": "!!!Lastname", + "file": "src/containers/settings/EditUserScreen.js", + "start": { + "line": 18, + "column": 12 + }, + "end": { + "line": 21, + "column": 3 + } + }, + { + "id": "settings.user.form.email", + "defaultMessage": "!!!Email", + "file": "src/containers/settings/EditUserScreen.js", + "start": { + "line": 22, + "column": 9 + }, + "end": { + "line": 25, + "column": 3 + } + }, + { + "id": "settings.user.form.accountType.label", + "defaultMessage": "!!!Account type", + "file": "src/containers/settings/EditUserScreen.js", + "start": { + "line": 26, + "column": 20 + }, + "end": { + "line": 29, + "column": 3 + } + }, + { + "id": "settings.user.form.accountType.individual", + "defaultMessage": "!!!Individual", + "file": "src/containers/settings/EditUserScreen.js", + "start": { + "line": 30, + "column": 25 + }, + "end": { + "line": 33, + "column": 3 + } + }, + { + "id": "settings.user.form.accountType.non-profit", + "defaultMessage": "!!!Non-Profit", + "file": "src/containers/settings/EditUserScreen.js", + "start": { + "line": 34, + "column": 24 + }, + "end": { + "line": 37, + "column": 3 + } + }, + { + "id": "settings.user.form.accountType.company", + "defaultMessage": "!!!Company", + "file": "src/containers/settings/EditUserScreen.js", + "start": { + "line": 38, + "column": 22 + }, + "end": { + "line": 41, + "column": 3 + } + }, + { + "id": "settings.user.form.currentPassword", + "defaultMessage": "!!!Current password", + "file": "src/containers/settings/EditUserScreen.js", + "start": { + "line": 42, + "column": 19 + }, + "end": { + "line": 45, + "column": 3 + } + }, + { + "id": "settings.user.form.newPassword", + "defaultMessage": "!!!New password", + "file": "src/containers/settings/EditUserScreen.js", + "start": { + "line": 46, + "column": 15 + }, + "end": { + "line": 49, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/features/delayApp/Component.json b/src/i18n/messages/src/features/delayApp/Component.json new file mode 100644 index 000000000..bacd9444a --- /dev/null +++ b/src/i18n/messages/src/features/delayApp/Component.json @@ -0,0 +1,41 @@ +[ + { + "id": "feature.delayApp.headline", + "defaultMessage": "!!!Please purchase license to skip waiting", + "file": "src/features/delayApp/Component.js", + "start": { + "line": 15, + "column": 12 + }, + "end": { + "line": 18, + "column": 3 + } + }, + { + "id": "feature.delayApp.action", + "defaultMessage": "!!!Get a Franz Supporter License", + "file": "src/features/delayApp/Component.js", + "start": { + "line": 19, + "column": 10 + }, + "end": { + "line": 22, + "column": 3 + } + }, + { + "id": "feature.delayApp.text", + "defaultMessage": "!!!Franz will continue in {seconds} seconds.", + "file": "src/features/delayApp/Component.js", + "start": { + "line": 23, + "column": 8 + }, + "end": { + "line": 26, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/features/shareFranz/Component.json b/src/i18n/messages/src/features/shareFranz/Component.json new file mode 100644 index 000000000..0fec9db64 --- /dev/null +++ b/src/i18n/messages/src/features/shareFranz/Component.json @@ -0,0 +1,93 @@ +[ + { + "id": "feature.shareFranz.headline", + "defaultMessage": "!!!Franz is better together!", + "file": "src/features/shareFranz/Component.js", + "start": { + "line": 15, + "column": 12 + }, + "end": { + "line": 18, + "column": 3 + } + }, + { + "id": "feature.shareFranz.text", + "defaultMessage": "!!!Tell your friends and colleagues how awesome Franz is and help us to spread the word.", + "file": "src/features/shareFranz/Component.js", + "start": { + "line": 19, + "column": 8 + }, + "end": { + "line": 22, + "column": 3 + } + }, + { + "id": "feature.shareFranz.action.email", + "defaultMessage": "!!!Share as email", + "file": "src/features/shareFranz/Component.js", + "start": { + "line": 23, + "column": 16 + }, + "end": { + "line": 26, + "column": 3 + } + }, + { + "id": "feature.shareFranz.action.facebook", + "defaultMessage": "!!!Share on Facebook", + "file": "src/features/shareFranz/Component.js", + "start": { + "line": 27, + "column": 19 + }, + "end": { + "line": 30, + "column": 3 + } + }, + { + "id": "feature.shareFranz.action.twitter", + "defaultMessage": "!!!Share on Twitter", + "file": "src/features/shareFranz/Component.js", + "start": { + "line": 31, + "column": 18 + }, + "end": { + "line": 34, + "column": 3 + } + }, + { + "id": "feature.shareFranz.shareText.email", + "defaultMessage": "!!! I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com", + "file": "src/features/shareFranz/Component.js", + "start": { + "line": 35, + "column": 18 + }, + "end": { + "line": 38, + "column": 3 + } + }, + { + "id": "feature.shareFranz.shareText.twitter", + "defaultMessage": "!!! I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com /cc @MeetFranz", + "file": "src/features/shareFranz/Component.js", + "start": { + "line": 39, + "column": 20 + }, + "end": { + "line": 42, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/helpers/validation-helpers.json b/src/i18n/messages/src/helpers/validation-helpers.json new file mode 100644 index 000000000..86bfe1500 --- /dev/null +++ b/src/i18n/messages/src/helpers/validation-helpers.json @@ -0,0 +1,67 @@ +[ + { + "id": "validation.required", + "defaultMessage": "!!!Field is required", + "file": "src/helpers/validation-helpers.js", + "start": { + "line": 4, + "column": 12 + }, + "end": { + "line": 7, + "column": 3 + } + }, + { + "id": "validation.email", + "defaultMessage": "!!!Email not valid", + "file": "src/helpers/validation-helpers.js", + "start": { + "line": 8, + "column": 9 + }, + "end": { + "line": 11, + "column": 3 + } + }, + { + "id": "validation.url", + "defaultMessage": "!!!Not a valid URL", + "file": "src/helpers/validation-helpers.js", + "start": { + "line": 12, + "column": 7 + }, + "end": { + "line": 15, + "column": 3 + } + }, + { + "id": "validation.minLength", + "defaultMessage": "!!!Too few characters", + "file": "src/helpers/validation-helpers.js", + "start": { + "line": 16, + "column": 13 + }, + "end": { + "line": 19, + "column": 3 + } + }, + { + "id": "validation.oneRequired", + "defaultMessage": "!!!At least one is required", + "file": "src/helpers/validation-helpers.js", + "start": { + "line": 20, + "column": 15 + }, + "end": { + "line": 23, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/i18n/globalMessages.json b/src/i18n/messages/src/i18n/globalMessages.json new file mode 100644 index 000000000..28001614f --- /dev/null +++ b/src/i18n/messages/src/i18n/globalMessages.json @@ -0,0 +1,80 @@ +[ + { + "id": "global.api.unhealthy", + "defaultMessage": "!!!Can't connect to Franz Online Services", + "file": "src/i18n/globalMessages.js", + "start": { + "line": 4, + "column": 16 + }, + "end": { + "line": 7, + "column": 3 + } + }, + { + "id": "global.notConnectedToTheInternet", + "defaultMessage": "!!!You are not connected to the internet.", + "file": "src/i18n/globalMessages.js", + "start": { + "line": 8, + "column": 29 + }, + "end": { + "line": 11, + "column": 3 + } + }, + { + "id": "global.spellchecking.language", + "defaultMessage": "!!!Spell checking language", + "file": "src/i18n/globalMessages.js", + "start": { + "line": 12, + "column": 24 + }, + "end": { + "line": 15, + "column": 3 + } + }, + { + "id": "global.spellchecker.useDefault", + "defaultMessage": "!!!Use System Default ({default})", + "file": "src/i18n/globalMessages.js", + "start": { + "line": 16, + "column": 29 + }, + "end": { + "line": 19, + "column": 3 + } + }, + { + "id": "global.spellchecking.autodetect", + "defaultMessage": "!!!Detect language automatically", + "file": "src/i18n/globalMessages.js", + "start": { + "line": 20, + "column": 34 + }, + "end": { + "line": 23, + "column": 3 + } + }, + { + "id": "global.spellchecking.autodetect.short", + "defaultMessage": "!!!Automatic", + "file": "src/i18n/globalMessages.js", + "start": { + "line": 24, + "column": 39 + }, + "end": { + "line": 27, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/lib/Menu.json b/src/i18n/messages/src/lib/Menu.json new file mode 100644 index 000000000..9314f5cce --- /dev/null +++ b/src/i18n/messages/src/lib/Menu.json @@ -0,0 +1,613 @@ +[ + { + "id": "menu.edit", + "defaultMessage": "!!!Edit", + "file": "src/lib/Menu.js", + "start": { + "line": 10, + "column": 8 + }, + "end": { + "line": 13, + "column": 3 + } + }, + { + "id": "menu.edit.undo", + "defaultMessage": "!!!Undo", + "file": "src/lib/Menu.js", + "start": { + "line": 14, + "column": 8 + }, + "end": { + "line": 17, + "column": 3 + } + }, + { + "id": "menu.edit.redo", + "defaultMessage": "!!!Redo", + "file": "src/lib/Menu.js", + "start": { + "line": 18, + "column": 8 + }, + "end": { + "line": 21, + "column": 3 + } + }, + { + "id": "menu.edit.cut", + "defaultMessage": "!!!Cut", + "file": "src/lib/Menu.js", + "start": { + "line": 22, + "column": 7 + }, + "end": { + "line": 25, + "column": 3 + } + }, + { + "id": "menu.edit.copy", + "defaultMessage": "!!!Copy", + "file": "src/lib/Menu.js", + "start": { + "line": 26, + "column": 8 + }, + "end": { + "line": 29, + "column": 3 + } + }, + { + "id": "menu.edit.paste", + "defaultMessage": "!!!Paste", + "file": "src/lib/Menu.js", + "start": { + "line": 30, + "column": 9 + }, + "end": { + "line": 33, + "column": 3 + } + }, + { + "id": "menu.edit.pasteAndMatchStyle", + "defaultMessage": "!!!Paste And Match Style", + "file": "src/lib/Menu.js", + "start": { + "line": 34, + "column": 22 + }, + "end": { + "line": 37, + "column": 3 + } + }, + { + "id": "menu.edit.delete", + "defaultMessage": "!!!Delete", + "file": "src/lib/Menu.js", + "start": { + "line": 38, + "column": 10 + }, + "end": { + "line": 41, + "column": 3 + } + }, + { + "id": "menu.edit.selectAll", + "defaultMessage": "!!!Select All", + "file": "src/lib/Menu.js", + "start": { + "line": 42, + "column": 13 + }, + "end": { + "line": 45, + "column": 3 + } + }, + { + "id": "menu.edit.speech", + "defaultMessage": "!!!Speech", + "file": "src/lib/Menu.js", + "start": { + "line": 46, + "column": 10 + }, + "end": { + "line": 49, + "column": 3 + } + }, + { + "id": "menu.edit.startSpeaking", + "defaultMessage": "!!!Start Speaking", + "file": "src/lib/Menu.js", + "start": { + "line": 50, + "column": 17 + }, + "end": { + "line": 53, + "column": 3 + } + }, + { + "id": "menu.edit.stopSpeaking", + "defaultMessage": "!!!Stop Speaking", + "file": "src/lib/Menu.js", + "start": { + "line": 54, + "column": 16 + }, + "end": { + "line": 57, + "column": 3 + } + }, + { + "id": "menu.edit.startDictation", + "defaultMessage": "!!!Start Dictation", + "file": "src/lib/Menu.js", + "start": { + "line": 58, + "column": 18 + }, + "end": { + "line": 61, + "column": 3 + } + }, + { + "id": "menu.edit.emojiSymbols", + "defaultMessage": "!!!Emoji & Symbols", + "file": "src/lib/Menu.js", + "start": { + "line": 62, + "column": 16 + }, + "end": { + "line": 65, + "column": 3 + } + }, + { + "id": "menu.view.resetZoom", + "defaultMessage": "!!!Actual Size", + "file": "src/lib/Menu.js", + "start": { + "line": 66, + "column": 13 + }, + "end": { + "line": 69, + "column": 3 + } + }, + { + "id": "menu.view.zoomIn", + "defaultMessage": "!!!Zoom In", + "file": "src/lib/Menu.js", + "start": { + "line": 70, + "column": 10 + }, + "end": { + "line": 73, + "column": 3 + } + }, + { + "id": "menu.view.zoomOut", + "defaultMessage": "!!!Zoom Out", + "file": "src/lib/Menu.js", + "start": { + "line": 74, + "column": 11 + }, + "end": { + "line": 77, + "column": 3 + } + }, + { + "id": "menu.view.enterFullScreen", + "defaultMessage": "!!!Enter Full Screen", + "file": "src/lib/Menu.js", + "start": { + "line": 78, + "column": 19 + }, + "end": { + "line": 81, + "column": 3 + } + }, + { + "id": "menu.view.exitFullScreen", + "defaultMessage": "!!!Exit Full Screen", + "file": "src/lib/Menu.js", + "start": { + "line": 82, + "column": 18 + }, + "end": { + "line": 85, + "column": 3 + } + }, + { + "id": "menu.view.toggleFullScreen", + "defaultMessage": "!!!Toggle Full Screen", + "file": "src/lib/Menu.js", + "start": { + "line": 86, + "column": 20 + }, + "end": { + "line": 89, + "column": 3 + } + }, + { + "id": "menu.view.toggleDevTools", + "defaultMessage": "!!!Toggle Developer Tools", + "file": "src/lib/Menu.js", + "start": { + "line": 90, + "column": 18 + }, + "end": { + "line": 93, + "column": 3 + } + }, + { + "id": "menu.view.toggleServiceDevTools", + "defaultMessage": "!!!Toggle Service Developer Tools", + "file": "src/lib/Menu.js", + "start": { + "line": 94, + "column": 25 + }, + "end": { + "line": 97, + "column": 3 + } + }, + { + "id": "menu.view.reloadService", + "defaultMessage": "!!!Reload Service", + "file": "src/lib/Menu.js", + "start": { + "line": 98, + "column": 17 + }, + "end": { + "line": 101, + "column": 3 + } + }, + { + "id": "menu.view.reloadFranz", + "defaultMessage": "!!!Reload Franz", + "file": "src/lib/Menu.js", + "start": { + "line": 102, + "column": 15 + }, + "end": { + "line": 105, + "column": 3 + } + }, + { + "id": "menu.window.minimize", + "defaultMessage": "!!!Minimize", + "file": "src/lib/Menu.js", + "start": { + "line": 106, + "column": 12 + }, + "end": { + "line": 109, + "column": 3 + } + }, + { + "id": "menu.window.close", + "defaultMessage": "!!!Close", + "file": "src/lib/Menu.js", + "start": { + "line": 110, + "column": 9 + }, + "end": { + "line": 113, + "column": 3 + } + }, + { + "id": "menu.help.learnMore", + "defaultMessage": "!!!Learn More", + "file": "src/lib/Menu.js", + "start": { + "line": 114, + "column": 13 + }, + "end": { + "line": 117, + "column": 3 + } + }, + { + "id": "menu.help.changelog", + "defaultMessage": "!!!Changelog", + "file": "src/lib/Menu.js", + "start": { + "line": 118, + "column": 13 + }, + "end": { + "line": 121, + "column": 3 + } + }, + { + "id": "menu.help.support", + "defaultMessage": "!!!Support", + "file": "src/lib/Menu.js", + "start": { + "line": 122, + "column": 11 + }, + "end": { + "line": 125, + "column": 3 + } + }, + { + "id": "menu.help.tos", + "defaultMessage": "!!!Terms of Service", + "file": "src/lib/Menu.js", + "start": { + "line": 126, + "column": 7 + }, + "end": { + "line": 129, + "column": 3 + } + }, + { + "id": "menu.help.privacy", + "defaultMessage": "!!!Privacy Statement", + "file": "src/lib/Menu.js", + "start": { + "line": 130, + "column": 11 + }, + "end": { + "line": 133, + "column": 3 + } + }, + { + "id": "menu.file", + "defaultMessage": "!!!File", + "file": "src/lib/Menu.js", + "start": { + "line": 134, + "column": 8 + }, + "end": { + "line": 137, + "column": 3 + } + }, + { + "id": "menu.view", + "defaultMessage": "!!!View", + "file": "src/lib/Menu.js", + "start": { + "line": 138, + "column": 8 + }, + "end": { + "line": 141, + "column": 3 + } + }, + { + "id": "menu.services", + "defaultMessage": "!!!Services", + "file": "src/lib/Menu.js", + "start": { + "line": 142, + "column": 12 + }, + "end": { + "line": 145, + "column": 3 + } + }, + { + "id": "menu.window", + "defaultMessage": "!!!Window", + "file": "src/lib/Menu.js", + "start": { + "line": 146, + "column": 10 + }, + "end": { + "line": 149, + "column": 3 + } + }, + { + "id": "menu.help", + "defaultMessage": "!!!Help", + "file": "src/lib/Menu.js", + "start": { + "line": 150, + "column": 8 + }, + "end": { + "line": 153, + "column": 3 + } + }, + { + "id": "menu.app.about", + "defaultMessage": "!!!About Franz", + "file": "src/lib/Menu.js", + "start": { + "line": 154, + "column": 9 + }, + "end": { + "line": 157, + "column": 3 + } + }, + { + "id": "menu.app.settings", + "defaultMessage": "!!!Settings", + "file": "src/lib/Menu.js", + "start": { + "line": 158, + "column": 12 + }, + "end": { + "line": 161, + "column": 3 + } + }, + { + "id": "menu.app.hide", + "defaultMessage": "!!!Hide", + "file": "src/lib/Menu.js", + "start": { + "line": 162, + "column": 8 + }, + "end": { + "line": 165, + "column": 3 + } + }, + { + "id": "menu.app.hideOthers", + "defaultMessage": "!!!Hide Others", + "file": "src/lib/Menu.js", + "start": { + "line": 166, + "column": 14 + }, + "end": { + "line": 169, + "column": 3 + } + }, + { + "id": "menu.app.unhide", + "defaultMessage": "!!!Unhide", + "file": "src/lib/Menu.js", + "start": { + "line": 170, + "column": 10 + }, + "end": { + "line": 173, + "column": 3 + } + }, + { + "id": "menu.app.quit", + "defaultMessage": "!!!Quit", + "file": "src/lib/Menu.js", + "start": { + "line": 174, + "column": 8 + }, + "end": { + "line": 177, + "column": 3 + } + }, + { + "id": "menu.services.addNewService", + "defaultMessage": "!!!Add New Service...", + "file": "src/lib/Menu.js", + "start": { + "line": 178, + "column": 17 + }, + "end": { + "line": 181, + "column": 3 + } + }, + { + "id": "menu.services.setNextServiceActive", + "defaultMessage": "!!!Activate next service...", + "file": "src/lib/Menu.js", + "start": { + "line": 182, + "column": 23 + }, + "end": { + "line": 185, + "column": 3 + } + }, + { + "id": "menu.services.activatePreviousService", + "defaultMessage": "!!!Activate previous service...", + "file": "src/lib/Menu.js", + "start": { + "line": 186, + "column": 27 + }, + "end": { + "line": 189, + "column": 3 + } + }, + { + "id": "sidebar.muteApp", + "defaultMessage": "!!!Disable notifications & audio", + "file": "src/lib/Menu.js", + "start": { + "line": 190, + "column": 11 + }, + "end": { + "line": 193, + "column": 3 + } + }, + { + "id": "sidebar.unmuteApp", + "defaultMessage": "!!!Enable notifications & audio", + "file": "src/lib/Menu.js", + "start": { + "line": 194, + "column": 13 + }, + "end": { + "line": 197, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/index.js b/src/index.js index 6a0ee600f..05c793d98 100644 --- a/src/index.js +++ b/src/index.js @@ -34,6 +34,7 @@ import { DEFAULT_WINDOW_OPTIONS, } from './config'; import { asarPath } from './helpers/asar-helpers'; +import { isValidExternalURL } from './helpers/url-helpers'; /* eslint-enable import/first */ const debug = require('debug')('Franz:App'); @@ -71,7 +72,10 @@ if (!gotTheLock) { app.on('second-instance', (event, argv) => { // Someone tried to run a second instance, we should focus our window. if (mainWindow) { - if (mainWindow.isMinimized()) mainWindow.restore(); + mainWindow.show(); + if (mainWindow.isMinimized()) { + mainWindow.restore(); + } mainWindow.focus(); if (isWindows) { @@ -101,6 +105,35 @@ if (!gotTheLock) { } }); } +// const isSecondInstance = app.makeSingleInstance((argv) => { +// if (mainWindow) { +// if (mainWindow.isMinimized()) mainWindow.restore(); +// mainWindow.focus(); + +// if (process.platform === 'win32') { +// // Keep only command line / deep linked arguments +// const url = argv.slice(1); + +// if (url) { +// handleDeepLink(mainWindow, url.toString()); +// } +// } +// } + +// if (argv.includes('--reset-window')) { +// // Needs to be delayed to not interfere with mainWindow.restore(); +// setTimeout(() => { +// debug('Resetting windows via Task'); +// mainWindow.setPosition(DEFAULT_WINDOW_OPTIONS.x + 100, DEFAULT_WINDOW_OPTIONS.y + 100); +// mainWindow.setSize(DEFAULT_WINDOW_OPTIONS.width, DEFAULT_WINDOW_OPTIONS.height); +// }, 1); +// } +// }); + +// if (isSecondInstance) { +// console.log('An instance of Franz is already running. Exiting...'); +// app.exit(); +// } // Fix Unity indicator issue // https://github.com/electron/electron/issues/9046 @@ -194,20 +227,24 @@ const createWindow = () => { // Emitted when the window is closed. mainWindow.on('close', (e) => { + debug('Window: close window'); // Dereference the window object, usually you would store windows // in an array if your app supports multi windows, this is the time // when you should delete the corresponding element. if (!willQuitApp && (settings.get('runInBackground') === undefined || settings.get('runInBackground'))) { e.preventDefault(); if (isWindows) { + debug('Window: minimize'); mainWindow.minimize(); + + if (settings.get('minimizeToSystemTray')) { + debug('Skip taskbar: true'); + mainWindow.setSkipTaskbar(true); + } } else { + debug('Window: hide'); mainWindow.hide(); } - - if (isWindows) { - mainWindow.setSkipTaskbar(true); - } } else { app.quit(); } @@ -219,32 +256,39 @@ const createWindow = () => { app.wasMaximized = app.isMaximized; if (settings.get('minimizeToSystemTray')) { + debug('Skip taskbar: true'); mainWindow.setSkipTaskbar(true); trayIcon.show(); } }); mainWindow.on('maximize', () => { + debug('Window: maximize'); app.isMaximized = true; }); mainWindow.on('unmaximize', () => { + debug('Window: unmaximize'); app.isMaximized = false; }); mainWindow.on('restore', () => { + debug('Window: restore'); mainWindow.setSkipTaskbar(false); if (app.wasMaximized) { + debug('Window: was maximized before, maximize window'); mainWindow.maximize(); } if (!settings.get('enableSystemTray')) { + debug('Tray: hiding tray icon'); trayIcon.hide(); } }); mainWindow.on('show', () => { + debug('Skip taskbar: false'); mainWindow.setSkipTaskbar(false); }); @@ -252,8 +296,12 @@ const createWindow = () => { app.isMaximized = mainWindow.isMaximized(); mainWindow.webContents.on('new-window', (e, url) => { + debug('Open url', url); e.preventDefault(); - shell.openExternal(url); + + if (isValidExternalURL(url)) { + shell.openExternal(url); + } }); }; @@ -331,7 +379,10 @@ app.on('window-all-closed', () => { // to stay active until the user quits explicitly with Cmd + Q if (settings.get('runInBackground') === undefined || settings.get('runInBackground')) { + debug('Window: all windows closed, quit app'); app.quit(); + } else { + debug('Window: don\'t quit app'); } }); diff --git a/src/lib/Menu.js b/src/lib/Menu.js index c378619ad..7a60c448f 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js @@ -1,5 +1,5 @@ import { remote, shell } from 'electron'; -import { observable, autorun, computed } from 'mobx'; +import { observable, autorun } from 'mobx'; import { defineMessages } from 'react-intl'; import { isMac, ctrlKey, cmdKey } from '../environment'; @@ -179,6 +179,22 @@ const menuItems = defineMessages({ id: 'menu.services.addNewService', defaultMessage: '!!!Add New Service...', }, + activateNextService: { + id: 'menu.services.setNextServiceActive', + defaultMessage: '!!!Activate next service...', + }, + activatePreviousService: { + id: 'menu.services.activatePreviousService', + defaultMessage: '!!!Activate previous service...', + }, + muteApp: { + id: 'sidebar.muteApp', + defaultMessage: '!!!Disable notifications & audio', + }, + unmuteApp: { + id: 'sidebar.unmuteApp', + defaultMessage: '!!!Enable notifications & audio', + }, }); function getActiveWebview() { @@ -239,16 +255,32 @@ const _templateFactory = intl => [ }, { label: intl.formatMessage(menuItems.resetZoom), - role: 'resetzoom', + accelerator: 'Cmd+0', + click() { + getActiveWebview().setZoomLevel(0); + }, }, { label: intl.formatMessage(menuItems.zoomIn), - // accelerator: 'Cmd+=', - role: 'zoomin', + accelerator: 'Cmd+plus', + click() { + const activeService = getActiveWebview(); + activeService.getZoomLevel((level) => { + // level 9 =~ +300% and setZoomLevel wouldnt zoom in further + if (level < 9) activeService.setZoomLevel(level + 1); + }); + }, }, { label: intl.formatMessage(menuItems.zoomOut), - role: 'zoomout', + accelerator: 'Cmd+-', + click() { + const activeService = getActiveWebview(); + activeService.getZoomLevel((level) => { + // level -9 =~ -50% and setZoomLevel wouldnt zoom out further + if (level > -9) activeService.setZoomLevel(level - 1); + }); + }, }, { type: 'separator', @@ -392,10 +424,12 @@ const _titleBarTemplateFactory = intl => [ }, { label: intl.formatMessage(menuItems.zoomIn), - accelerator: `${ctrlKey}+Plus`, + accelerator: `${ctrlKey}+=`, click() { - getActiveWebview().getZoomLevel((zoomLevel) => { - getActiveWebview().setZoomLevel(zoomLevel === 5 ? zoomLevel : zoomLevel + 1); + const activeService = getActiveWebview(); + activeService.getZoomLevel((level) => { + // level 9 =~ +300% and setZoomLevel wouldnt zoom in further + if (level < 9) activeService.setZoomLevel(level + 1); }); }, }, @@ -403,8 +437,10 @@ const _titleBarTemplateFactory = intl => [ label: intl.formatMessage(menuItems.zoomOut), accelerator: `${ctrlKey}+-`, click() { - getActiveWebview().getZoomLevel((zoomLevel) => { - getActiveWebview().setZoomLevel(zoomLevel === -5 ? zoomLevel : zoomLevel - 1); + const activeService = getActiveWebview(); + activeService.getZoomLevel((level) => { + // level -9 =~ -50% and setZoomLevel wouldnt zoom out further + if (level > -9) activeService.setZoomLevel(level - 1); }); }, }, @@ -499,13 +535,14 @@ export default class FranzMenu { } _build() { - const serviceTpl = Object.assign([], this.serviceTpl); // need to clone object so we don't modify computed (cached) object + // need to clone object so we don't modify computed (cached) object + const serviceTpl = Object.assign([], this.serviceTpl()); if (window.franz === undefined) { return; } - const intl = window.franz.intl; + const { intl } = window.franz; const tpl = isMac ? _templateFactory(intl) : _titleBarTemplateFactory(intl); tpl[1].submenu.push({ @@ -663,17 +700,6 @@ export default class FranzMenu { }, about); } - serviceTpl.unshift({ - label: intl.formatMessage(menuItems.addNewService), - accelerator: `${cmdKey}+N`, - click: () => { - this.actions.ui.openSettings({ path: 'recipes' }); - }, - enabled: this.stores.user.isLoggedIn, - }, { - type: 'separator', - }); - if (serviceTpl.length > 0) { tpl[3].submenu = serviceTpl; } @@ -683,22 +709,49 @@ export default class FranzMenu { Menu.setApplicationMenu(menu); } - @computed get serviceTpl() { - const services = this.stores.services.allDisplayed; + serviceTpl() { + const { intl } = window.franz; + const { user, services, settings } = this.stores; + if (!user.isLoggedIn) return []; + const menu = []; - if (this.stores.user.isLoggedIn) { - return services.map((service, i) => ({ - label: this._getServiceName(service), - accelerator: i < 9 ? `${cmdKey}+${i + 1}` : null, - type: 'radio', - checked: service.isActive, - click: () => { - this.actions.service.setActive({ serviceId: service.id }); - }, - })); - } + menu.push({ + label: intl.formatMessage(menuItems.addNewService), + accelerator: `${cmdKey}+N`, + click: () => { + this.actions.ui.openSettings({ path: 'recipes' }); + }, + }, { + type: 'separator', + }, { + label: intl.formatMessage(menuItems.activateNextService), + accelerator: `${cmdKey}+alt+right`, + click: () => this.actions.service.setActiveNext(), + }, { + label: intl.formatMessage(menuItems.activatePreviousService), + accelerator: `${cmdKey}+alt+left`, + click: () => this.actions.service.setActivePrev(), + }, { + label: intl.formatMessage( + settings.all.app.isAppMuted ? menuItems.unmuteApp : menuItems.muteApp, + ).replace('&', '&&'), + accelerator: `${cmdKey}+shift+m`, + click: () => this.actions.app.toggleMuteApp(), + }, { + type: 'separator', + }); + + services.allDisplayed.forEach((service, i) => (menu.push({ + label: this._getServiceName(service), + accelerator: i < 9 ? `${cmdKey}+${i + 1}` : null, + type: 'radio', + checked: service.isActive, + click: () => { + this.actions.service.setActive({ serviceId: service.id }); + }, + }))); - return []; + return menu; } _getServiceName(service) { diff --git a/src/lib/Tray.js b/src/lib/Tray.js index 669b02709..192e24796 100644 --- a/src/lib/Tray.js +++ b/src/lib/Tray.js @@ -22,7 +22,11 @@ export default class TrayIcon { { label: 'Show Franz', click() { + if (app.mainWindow.isMinimized()) { + app.mainWindow.restore(); + } app.mainWindow.show(); + app.mainWindow.focus(); }, }, { label: 'Quit Franz', @@ -36,7 +40,11 @@ export default class TrayIcon { this.trayIcon.setContextMenu(trayMenu); this.trayIcon.on('click', () => { + if (app.mainWindow.isMinimized()) { + app.mainWindow.restore(); + } app.mainWindow.show(); + app.mainWindow.focus(); }); if (process.platform === 'darwin') { diff --git a/src/lib/analytics.js b/src/lib/analytics.js index 7044e5bb7..0519192d1 100644 --- a/src/lib/analytics.js +++ b/src/lib/analytics.js @@ -37,7 +37,3 @@ export function gaEvent(category, action, label) { debug('GA track event', category, action); } - -setTimeout(() => { - ga('send', 'Ping'); -}, 1000 * 60 * 10); // Ping GA every 10 Minutes diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js index b21d48a11..351ad6422 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js @@ -1,21 +1,25 @@ import { remote, ipcRenderer, shell } from 'electron'; -import { action, computed, observable } from 'mobx'; +import { + action, computed, observable, reaction, +} from 'mobx'; import moment from 'moment'; -import key from 'keymaster'; import { getDoNotDisturb } from '@meetfranz/electron-notification-state'; import AutoLaunch from 'auto-launch'; import prettyBytes from 'pretty-bytes'; +import ms from 'ms'; +import { URL } from 'url'; import Store from './lib/Store'; import Request from './lib/Request'; import { CHECK_INTERVAL, DEFAULT_APP_SETTINGS } from '../config'; -import { isMac, isLinux, isWindows } from '../environment'; +import { isMac } from '../environment'; import locales from '../i18n/translations'; -import { gaEvent } from '../lib/analytics'; +import { gaEvent, gaPage } from '../lib/analytics'; import { onVisibilityChange } from '../helpers/visibility-helper'; import { getLocale } from '../helpers/i18n-helpers'; import { getServiceIdsFromPartitions, removeServicePartitionDirectory } from '../helpers/service-helpers.js'; +import { isValidExternalURL } from '../helpers/url-helpers'; const debug = require('debug')('Franz:AppStore'); @@ -110,12 +114,12 @@ export default class AppStore extends Store { // Check if system is muted // There are no events to subscribe so we need to poll everey 5s this._systemDND(); - setInterval(() => this._systemDND(), 5000); + setInterval(() => this._systemDND(), ms('5s')); // Check for updates once every 4 hours setInterval(() => this._checkForUpdates(), CHECK_INTERVAL); // Check for an update in 30s (need a delay to prevent Squirrel Installer lock file issues) - setTimeout(() => this._checkForUpdates(), 30000); + setTimeout(() => this._checkForUpdates(), ms('30s')); ipcRenderer.on('autoUpdate', (event, data) => { if (data.available) { this.updateStatus = this.updateStatusTypes.AVAILABLE; @@ -152,27 +156,6 @@ export default class AppStore extends Store { this.stores.router.push(url); }); - // Set active the next service - key( - '⌘+pagedown, ctrl+pagedown, ⌘+alt+right, ctrl+tab', () => { - this.actions.service.setActiveNext(); - }, - ); - - // Set active the prev service - key( - '⌘+pageup, ctrl+pageup, ⌘+alt+left, ctrl+shift+tab', () => { - this.actions.service.setActivePrev(); - }, - ); - - // Global Mute - key( - '⌘+shift+m ctrl+shift+m', () => { - this.actions.app.toggleMuteApp(); - }, - ); - this.locale = this._getDefaultLocale(); this._healthCheck(); @@ -184,6 +167,12 @@ export default class AppStore extends Store { debug('Window is visible/focused', isVisible); }); + + // analytics autorun + reaction(() => this.stores.router.location.pathname, (pathname) => { + gaPage(pathname); + }); + console.log('router location', this.stores.router.location); } @computed get cacheSize() { @@ -196,7 +185,15 @@ export default class AppStore extends Store { }) { if (this.stores.settings.all.app.isAppMuted) return; + // TODO: is there a simple way to use blobs for notifications without storing them on disk? + if (options.icon.startsWith('blob:')) { + delete options.icon; + } + const notification = new window.Notification(title, options); + + debug('New notification', title, options); + notification.onclick = (e) => { if (serviceId) { this.actions.service.sendIPCMessage({ @@ -206,12 +203,13 @@ export default class AppStore extends Store { }); this.actions.service.setActive({ serviceId }); - - if (isWindows) { + mainWindow.show(); + if (app.mainWindow.isMinimized()) { mainWindow.restore(); - } else if (isLinux) { - mainWindow.show(); } + mainWindow.focus(); + + debug('Notification click handler'); } }; } @@ -247,7 +245,14 @@ export default class AppStore extends Store { } @action _openExternalUrl({ url }) { - shell.openExternal(url); + const parsedUrl = new URL(url); + debug('open external url', parsedUrl); + + if (isValidExternalURL(url)) { + shell.openExternal(url); + } + + gaEvent('External URL', 'open', parsedUrl.host); } @action _checkForUpdates() { @@ -271,7 +276,6 @@ export default class AppStore extends Store { @action _muteApp({ isMuted, overrideSystemMute = true }) { this.isSystemMuteOverridden = overrideSystemMute; - this.actions.settings.update({ type: 'app', data: { @@ -308,7 +312,7 @@ export default class AppStore extends Store { } else { const deltaTime = moment().diff(this.timeOfflineStart); - if (deltaTime > 30 * 60 * 1000) { + if (deltaTime > ms('30m')) { this.actions.service.reloadAll(); } } diff --git a/src/stores/FeaturesStore.js b/src/stores/FeaturesStore.js index 0adee6adf..d2842083c 100644 --- a/src/stores/FeaturesStore.js +++ b/src/stores/FeaturesStore.js @@ -7,6 +7,7 @@ import delayApp from '../features/delayApp'; import spellchecker from '../features/spellchecker'; import serviceProxy from '../features/serviceProxy'; import basicAuth from '../features/basicAuth'; +import shareFranz from '../features/shareFranz'; import { DEFAULT_FEATURES_CONFIG } from '../config'; @@ -56,5 +57,6 @@ export default class FeaturesStore extends Store { spellchecker(this.stores, this.actions); serviceProxy(this.stores, this.actions); basicAuth(this.stores, this.actions); + shareFranz(this.stores, this.actions); } } diff --git a/src/stores/RecipePreviewsStore.js b/src/stores/RecipePreviewsStore.js index 10b2928e3..382820d58 100644 --- a/src/stores/RecipePreviewsStore.js +++ b/src/stores/RecipePreviewsStore.js @@ -1,5 +1,6 @@ import { action, computed, observable } from 'mobx'; import { debounce } from 'lodash'; +import ms from 'ms'; import Store from './lib/Store'; import CachedRequest from './lib/CachedRequest'; @@ -48,5 +49,5 @@ export default class RecipePreviewsStore extends Store { // Helper _analyticsSearch = debounce((needle) => { gaEvent('Recipe', 'search', needle); - }, 3000); + }, ms('3s')); } diff --git a/src/stores/RequestStore.js b/src/stores/RequestStore.js index 2629e0a38..9254e3223 100644 --- a/src/stores/RequestStore.js +++ b/src/stores/RequestStore.js @@ -1,4 +1,5 @@ import { action, computed, observable } from 'mobx'; +import ms from 'ms'; import Store from './lib/Store'; @@ -13,7 +14,7 @@ export default class RequestStore extends Store { retries = 0; - retryDelay = 2000; + retryDelay = ms('2s'); constructor(...args) { super(...args); diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index efd57a09d..69e616f0c 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js @@ -5,6 +5,7 @@ import { observable, } from 'mobx'; import { debounce, remove } from 'lodash'; +import ms from 'ms'; import Store from './lib/Store'; import Request from './lib/Request'; @@ -43,6 +44,7 @@ export default class ServicesStore extends Store { this.actions.service.deleteService.listen(this._deleteService.bind(this)); this.actions.service.clearCache.listen(this._clearCache.bind(this)); this.actions.service.setWebviewReference.listen(this._setWebviewReference.bind(this)); + this.actions.service.detachService.listen(this._detachService.bind(this)); this.actions.service.focusService.listen(this._focusService.bind(this)); this.actions.service.focusActiveService.listen(this._focusActiveService.bind(this)); this.actions.service.toggleService.listen(this._toggleService.bind(this)); @@ -340,6 +342,11 @@ export default class ServicesStore extends Store { service.isAttached = true; } + @action _detachService({ service }) { + service.webview = null; + service.isAttached = false; + } + @action _focusService({ serviceId }) { const service = this.one(serviceId); @@ -679,7 +686,7 @@ export default class ServicesStore extends Store { _initRecipePolling(serviceId) { const service = this.one(serviceId); - const delay = 2000; + const delay = ms('2s'); if (service) { if (service.timer !== null) { @@ -700,7 +707,7 @@ export default class ServicesStore extends Store { _reorderAnalytics = debounce(() => { gaEvent('Service', 'order'); - }, 5000); + }, ms('5s')); _wrapIndex(index, delta, size) { return (((index + delta) % size) + size) % size; diff --git a/src/stores/UIStore.js b/src/stores/UIStore.js index d37ebe4c7..bb7965a4a 100644 --- a/src/stores/UIStore.js +++ b/src/stores/UIStore.js @@ -1,8 +1,7 @@ import { action, observable, computed } from 'mobx'; +import { theme } from '@meetfranz/theme'; import Store from './lib/Store'; -import * as themeDefault from '../theme/default'; -import * as themeDark from '../theme/dark'; export default class UIStore extends Store { @observable showServicesUpdatedInfoBar = false; @@ -24,10 +23,10 @@ export default class UIStore extends Store { @computed get theme() { if (this.stores.settings.all.app.darkMode) { - return Object.assign({}, themeDefault, themeDark); + return theme('dark'); } - return themeDefault; + return theme('default'); } // Actions diff --git a/src/styles/layout.scss b/src/styles/layout.scss index 8b7cc512a..9a003a922 100644 --- a/src/styles/layout.scss +++ b/src/styles/layout.scss @@ -124,15 +124,14 @@ html { overflow: hidden; } background: $theme-brand-warning; color: #FFF; display: block; - font-size: 10px; + font-size: 8px; height: auto; padding: 4px; position: fixed; - right: 5px; - top: 5px; + left: 9px; + bottom: 0px; transition: opacity .5s ease; width: auto; z-index: 999999999; - - &:hover { opacity: 0; } + pointer-events: none; } diff --git a/src/styles/toggle.scss b/src/styles/toggle.scss index 0ce0c3379..52675ceed 100644 --- a/src/styles/toggle.scss +++ b/src/styles/toggle.scss @@ -41,7 +41,7 @@ $toggle-button-size: 22px; &.is-active .franz-form__toggle-button { background: $theme-brand-primary; - left: $toggle-width - $toggle-size - 3;; + left: $toggle-width - $toggle-size - 3; } input { display: none; } diff --git a/src/theme/dark/index.js b/src/theme/dark/index.js deleted file mode 100644 index 8fdb321f3..000000000 --- a/src/theme/dark/index.js +++ /dev/null @@ -1,19 +0,0 @@ -import hexToRgba from 'hex-to-rgba'; - -import * as legacyStyles from '../default/legacy'; - -export const colorBackground = legacyStyles.darkThemeGrayDarkest; -export const colorBackgroundSubscriptionContainer = legacyStyles.themeBrandInfo; - -export const colorHeadline = legacyStyles.darkThemeTextColor; -export const colorText = legacyStyles.darkThemeTextColor; - -// Error Handler -export const colorWebviewErrorHandlerBackground = legacyStyles.darkThemeGrayDarkest; - -// Loader -export const colorFullscreenLoaderSpinner = '#FFF'; -export const colorWebviewLoaderBackground = hexToRgba(legacyStyles.darkThemeGrayDarkest, 0.5); - -// Modal -export const colorModalOverlayBackground = hexToRgba(legacyStyles.darkThemeGrayDarkest, 0.8); diff --git a/src/theme/default/index.js b/src/theme/default/index.js deleted file mode 100644 index 61410073d..000000000 --- a/src/theme/default/index.js +++ /dev/null @@ -1,35 +0,0 @@ -import hexToRgba from 'hex-to-rgba'; - -import * as legacyStyles from './legacy'; - -export const brandPrimary = '#3498db'; -export const brandSuccess = '#5cb85c'; -export const brandInfo = '#5bc0de'; -export const brandWarning = '#FF9F00'; -export const brandDanger = '#d9534f'; - -export const borderRadius = legacyStyles.themeBorderRadius; -export const borderRadiusSmall = legacyStyles.themeBorderRadiusSmall; - -export const colorBackground = legacyStyles.themeGrayLighter; -export const colorHeadline = legacyStyles.themeGrayDark; - -export const colorText = legacyStyles.themeTextColor; - -// Subscription Container Component -export const colorSubscriptionContainerBackground = 'none'; -export const colorSubscriptionContainerBorder = [1, 'solid', brandPrimary]; -export const colorSubscriptionContainerTitle = brandPrimary; -export const colorSubscriptionContainerActionButtonBackground = brandPrimary; -export const colorSubscriptionContainerActionButtonColor = '#FFF'; - -// Error Handler -export const colorWebviewErrorHandlerBackground = legacyStyles.themeGrayLighter; - -// Loader -export const colorAppLoaderSpinner = '#FFF'; -export const colorFullscreenLoaderSpinner = legacyStyles.themeGrayDark; -export const colorWebviewLoaderBackground = hexToRgba(legacyStyles.themeGrayLighter, 0.8); - -// Modal -export const colorModalOverlayBackground = hexToRgba(legacyStyles.themeGrayLighter, 0.8); diff --git a/src/webview/contextMenu.js b/src/webview/contextMenu.js index afb1d8912..a4a6ab899 100644 --- a/src/webview/contextMenu.js +++ b/src/webview/contextMenu.js @@ -33,6 +33,8 @@ const buildMenuTpl = (props, suggestions, isSpellcheckEnabled, defaultSpellcheck const canGoBack = webContents.canGoBack(); const canGoForward = webContents.canGoForward(); + // @adlk: we can't use roles here due to a bug with electron where electron.remote.webContents.getFocusedWebContents() returns the first webview in DOM instead of the focused one + // Github issue creation is pending let menuTpl = [ { type: 'separator', @@ -48,19 +50,32 @@ const buildMenuTpl = (props, suggestions, isSpellcheckEnabled, defaultSpellcheck type: 'separator', }, { id: 'cut', - role: can('Cut') ? 'cut' : '', + label: 'Cut', + click() { + if (can('Cut')) { + webContents.cut(); + } + }, enabled: can('Cut'), visible: hasText && props.isEditable, }, { id: 'copy', label: 'Copy', - role: can('Copy') ? 'copy' : '', + click() { + if (can('Copy')) { + webContents.copy(); + } + }, enabled: can('Copy'), visible: props.isEditable || hasText, }, { id: 'paste', label: 'Paste', - role: editFlags.canPaste ? 'paste' : '', + click() { + if (editFlags.canPaste) { + webContents.paste(); + } + }, enabled: editFlags.canPaste, visible: props.isEditable, }, { diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 000000000..46e0e6cfa --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.settings.json", + "compilerOptions": { + "outDir": ".tstmp", + "rootDir": "./" + }, +} diff --git a/tsconfig.settings.json b/tsconfig.settings.json new file mode 100644 index 000000000..ccd0927ab --- /dev/null +++ b/tsconfig.settings.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "target": "esnext", + "module": "commonjs", + "lib": [ + "es2015", + "es2017", + "dom" + ], + "jsx": "react", + "sourceMap": true, + "strict": true, + "allowSyntheticDefaultImports": true, + "experimentalDecorators": true, + "composite": true, + "esModuleInterop": true, + "typeRoots": ["packages/typings/types", "node_modules/@types"], + "paths": { + "@types/*": ["packages/typings/types/*.d.ts"], + "*": ["packages/typings/types/*.d.ts"] + } + } +} diff --git a/tslint.json b/tslint.json new file mode 100644 index 000000000..975089ab0 --- /dev/null +++ b/tslint.json @@ -0,0 +1,12 @@ +{ + "extends": ["tslint-config-airbnb"], + "rules": { + "import-name": false, + "variable-name": false, + "class-name": false, + "prefer-array-literal": false, + "semicolon": [true, "always"], + "max-line-length": false, + "ordered-imports": true + } +} diff --git a/uidev/src/app.html b/uidev/src/app.html new file mode 100644 index 000000000..2557bf25e --- /dev/null +++ b/uidev/src/app.html @@ -0,0 +1,12 @@ + + + + + UIDev + + + + +
+ + diff --git a/uidev/src/app.tsx b/uidev/src/app.tsx new file mode 100644 index 000000000..870911c2f --- /dev/null +++ b/uidev/src/app.tsx @@ -0,0 +1,125 @@ +import CSS from 'csstype'; +import { Classes } from 'jss'; +import { observer } from 'mobx-react'; +import DevTools from 'mobx-react-devtools'; +import React, { Component } from 'react'; +import injectSheet from 'react-jss'; + +import { WithTheme } from './withTheme'; + +import './stories/badge.stories'; +import './stories/button.stories'; +import './stories/headline.stories'; +import './stories/icon.stories'; +import './stories/infobox.stories'; +import './stories/input.stories'; +import './stories/loader.stories'; +import './stories/select.stories'; +import './stories/toggle.stories'; + +import { store } from './stores'; + +import { theme, ThemeType } from '@meetfranz/theme'; +const defaultTheme = theme(ThemeType.default); + +const styles = { + '@global body': { + margin: 0, + fontSize: defaultTheme.uiFontSize, + fontFamily: '\'Open Sans\', sans-serif', + }, + container: { + display: 'flex', + width: '100%', + }, + menu: { + width: 300, + position: 'fixed' as CSS.PositionProperty, + listStyleType: 'none', + fontSize: 14, + overflow: 'scroll', + height: '100%', + }, + storyList: { + paddingLeft: 18, + marginTop: 5, + marginBottom: 20, + }, + stories: { + width: '100%', + marginLeft: 320, + paddingLeft: 40, + paddingRight: 40, + borderLeft: '1px solid #CFCFCF', + background: '#f7f7f7', + }, + sectionHeadline: { + fontSize: 30, + }, + storyHeadline: { + fontSize: 24, + }, + story: { + paddingBottom: 40, + marginBottom: 40, + borderBottom: '1px solid #CFCFCF', + }, + sectionLink: { + fontWeight: 'bold' as CSS.FontWeightProperty, + color: '#000', + textDecoration: 'none', + }, + storyLink: { + color: '#000', + textDecoration: 'none', + }, +}; + +export const App = injectSheet(styles)(observer(({ classes }: { classes: Classes }) => ( +
+ +
+ {store.stories.sections.map((section, key) => ( +
+

+ {section.name} +

+ {section.stories.map((story, storyKey) => ( +
+

+ {story.name} +

+ + + +
+ ))} +
+ ))} +
+ +
+))); diff --git a/uidev/src/index.tsx b/uidev/src/index.tsx new file mode 100644 index 000000000..99658b184 --- /dev/null +++ b/uidev/src/index.tsx @@ -0,0 +1,9 @@ +import React from 'react'; +import { render } from 'react-dom'; +import { App } from './app'; + +const app = () => ( + +); + +render(app(), document.getElementById('root')); diff --git a/uidev/src/stores/index.ts b/uidev/src/stores/index.ts new file mode 100644 index 000000000..276058ec4 --- /dev/null +++ b/uidev/src/stores/index.ts @@ -0,0 +1,5 @@ +import { storyStore } from './stories'; + +export const store = { + stories: storyStore, +}; diff --git a/uidev/src/stores/stories.ts b/uidev/src/stores/stories.ts new file mode 100644 index 000000000..6a98c9fd3 --- /dev/null +++ b/uidev/src/stores/stories.ts @@ -0,0 +1,43 @@ +import { store } from './index'; + +export type StorySectionName = string; +export type StoryName = string; +export type StoryComponent = () => JSX.Element; + +export interface IStories { + name: string; + component: StoryComponent; +} + +export interface ISections { + name: StorySectionName; + stories: IStories[]; +} + +export interface IStoryStore { + sections: ISections[]; +} + +export const storyStore: IStoryStore = { + sections: [], +}; + +export const storiesOf = (name: StorySectionName) => { + const length = storyStore.sections.push({ + name, + stories: [], + }); + + const actions = { + add: (name: StoryName, component: StoryComponent) => { + storyStore.sections[length - 1].stories.push({ + name, + component, + }); + + return actions; + }, + }; + + return actions; +}; diff --git a/uidev/src/stories/badge.stories.tsx b/uidev/src/stories/badge.stories.tsx new file mode 100644 index 000000000..6de2034bf --- /dev/null +++ b/uidev/src/stories/badge.stories.tsx @@ -0,0 +1,21 @@ +import React from 'react'; + +import { Badge } from '@meetfranz/ui'; +import { storiesOf } from '../stores/stories'; + +storiesOf('Badge') + .add('Basic', () => ( + <> + New + + )) + .add('Styles', () => ( + <> + Primary + secondary + success + warning + danger + inverted + + )); diff --git a/uidev/src/stories/button.stories.tsx b/uidev/src/stories/button.stories.tsx new file mode 100644 index 000000000..d81808530 --- /dev/null +++ b/uidev/src/stories/button.stories.tsx @@ -0,0 +1,97 @@ +import { observable } from 'mobx'; +import { observer } from 'mobx-react'; +import React from 'react'; + +import { Button } from '@meetfranz/forms'; +import { storiesOf } from '../stores/stories'; + +const defaultProps = { + label: 'Button', + id: 'test1', + name: 'test1', + type: 'button', + disabled: false, +}; + +const createStore = (args?: any) => { + return observable(Object.assign({}, defaultProps, args)); +}; + +const WithStoreButton = observer(({ store }: { store: any }) => ( + <> + +
diff --git a/src/features/workspaces/containers/WorkspacesScreen.js b/src/features/workspaces/containers/WorkspacesScreen.js index 5fdea217e..89bd2a2ef 100644 --- a/src/features/workspaces/containers/WorkspacesScreen.js +++ b/src/features/workspaces/containers/WorkspacesScreen.js @@ -22,7 +22,7 @@ class WorkspacesScreen extends Component { actions.workspaces.create(data)} onWorkspaceClick={w => actions.workspaces.edit({ workspace: w })} /> diff --git a/src/features/workspaces/store.js b/src/features/workspaces/store.js index 86a8a2c76..3cec5f360 100644 --- a/src/features/workspaces/store.js +++ b/src/features/workspaces/store.js @@ -30,7 +30,7 @@ export default class WorkspacesStore { @computed get workspaces() { if (!this.isFeatureActive) return []; - return getUserWorkspacesRequest.execute().result || []; + return getUserWorkspacesRequest.result || []; } constructor() { @@ -57,6 +57,7 @@ export default class WorkspacesStore { this.actions = actions; this._reactions.forEach(r => r.start()); this.isFeatureActive = true; + getUserWorkspacesRequest.execute(); } stop() { diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 03e96fc40..afbacf28a 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -3388,26 +3388,52 @@ "defaultMessage": "!!!Your workspaces", "end": { "column": 3, - "line": 15 + "line": 17 }, "file": "src/features/workspaces/components/WorkspacesDashboard.js", "id": "settings.workspaces.headline", "start": { "column": 12, - "line": 12 + "line": 14 } }, { "defaultMessage": "!!!You haven't added any workspaces yet.", "end": { "column": 3, - "line": 19 + "line": 21 }, "file": "src/features/workspaces/components/WorkspacesDashboard.js", "id": "settings.workspaces.noWorkspacesAdded", "start": { "column": 19, - "line": 16 + "line": 18 + } + }, + { + "defaultMessage": "!!!Could not load your workspaces", + "end": { + "column": 3, + "line": 25 + }, + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "id": "settings.workspaces.workspacesRequestFailed", + "start": { + "column": 27, + "line": 22 + } + }, + { + "defaultMessage": "!!!Try again", + "end": { + "column": 3, + "line": 29 + }, + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "id": "settings.workspaces.tryReloadWorkspaces", + "start": { + "column": 23, + "line": 26 } } ], diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 4206d4358..2b4e79621 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -251,6 +251,8 @@ "settings.workspace.form.yourWorkspaces": "Your workspaces", "settings.workspaces.headline": "Your workspaces", "settings.workspaces.noWorkspacesAdded": "You haven't added any workspaces yet.", + "settings.workspaces.tryReloadWorkspaces": "Try again", + "settings.workspaces.workspacesRequestFailed": "Could not load your workspaces", "sidebar.addNewService": "Add new service", "sidebar.closeWorkspaceDrawer": "Close workspace drawer", "sidebar.muteApp": "Disable notifications & audio", @@ -305,4 +307,4 @@ "workspaceDrawer.headline": "Workspaces", "workspaceDrawer.item.noServicesAddedYet": "No services added yet", "workspaces.switchingIndicator.switchingTo": "Switching to" -} \ No newline at end of file +} diff --git a/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json b/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json index 0e053a124..f875ace8a 100644 --- a/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json +++ b/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Your workspaces", "file": "src/features/workspaces/components/WorkspacesDashboard.js", "start": { - "line": 12, + "line": 14, "column": 12 }, "end": { - "line": 15, + "line": 17, "column": 3 } }, @@ -17,11 +17,37 @@ "defaultMessage": "!!!You haven't added any workspaces yet.", "file": "src/features/workspaces/components/WorkspacesDashboard.js", "start": { - "line": 16, + "line": 18, "column": 19 }, "end": { - "line": 19, + "line": 21, + "column": 3 + } + }, + { + "id": "settings.workspaces.workspacesRequestFailed", + "defaultMessage": "!!!Could not load your workspaces", + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "start": { + "line": 22, + "column": 27 + }, + "end": { + "line": 25, + "column": 3 + } + }, + { + "id": "settings.workspaces.tryReloadWorkspaces", + "defaultMessage": "!!!Try again", + "file": "src/features/workspaces/components/WorkspacesDashboard.js", + "start": { + "line": 26, + "column": 23 + }, + "end": { + "line": 29, "column": 3 } } diff --git a/src/stores/lib/Request.js b/src/stores/lib/Request.js index 04f528156..1fb67cc15 100644 --- a/src/stores/lib/Request.js +++ b/src/stores/lib/Request.js @@ -85,6 +85,8 @@ export default class Request { return this.execute(...this._currentApiCall.args); } + retry = () => this.reload(); + isExecutingWithArgs(...args) { return this.isExecuting && this._currentApiCall && isEqual(this._currentApiCall.args, args); } -- cgit v1.2.3-54-g00ecf From a2e4316879908c5bc2c38cef81eef9152476b6f6 Mon Sep 17 00:00:00 2001 From: Dominik Guzei Date: Tue, 26 Mar 2019 15:26:20 +0100 Subject: show infobox when updating workspaces --- packages/ui/src/infobox/index.tsx | 7 ++ src/components/ui/Infobox.js | 17 ++++- .../workspaces/components/WorkspacesDashboard.js | 89 +++++++++++++--------- .../workspaces/containers/WorkspacesScreen.js | 3 +- src/features/workspaces/store.js | 15 ++-- src/i18n/locales/defaultMessages.json | 29 +++++-- src/i18n/locales/en-US.json | 3 +- .../workspaces/components/WorkspacesDashboard.json | 29 +++++-- src/stores/lib/Request.js | 4 +- 9 files changed, 129 insertions(+), 67 deletions(-) diff --git a/packages/ui/src/infobox/index.tsx b/packages/ui/src/infobox/index.tsx index 1a442a733..9066a623e 100644 --- a/packages/ui/src/infobox/index.tsx +++ b/packages/ui/src/infobox/index.tsx @@ -11,6 +11,7 @@ interface IProps extends IWithStyle { type?: string; dismissable?: boolean; onDismiss?: () => void; + onUnmount?: () => void; ctaOnClick?: () => void; ctaLabel?: string; ctaLoading?: boolean; @@ -46,6 +47,7 @@ const styles = (theme: Theme) => ({ wrapper: { position: 'relative', overflow: 'hidden', + height: 'auto', }, infobox: { alignItems: 'center', @@ -129,6 +131,11 @@ class InfoboxComponent extends Component { }, 3000); } + componentWillUnmount(): void { + const { onUnmount } = this.props; + if (onUnmount) onUnmount(); + } + render() { const { classes, diff --git a/src/components/ui/Infobox.js b/src/components/ui/Infobox.js index a33c6474a..0917ee9f0 100644 --- a/src/components/ui/Infobox.js +++ b/src/components/ui/Infobox.js @@ -13,6 +13,8 @@ export default @observer class Infobox extends Component { ctaLabel: PropTypes.string, ctaLoading: PropTypes.bool, dismissable: PropTypes.bool, + onDismiss: PropTypes.func, + onSeen: PropTypes.func, }; static defaultProps = { @@ -22,12 +24,19 @@ export default @observer class Infobox extends Component { ctaOnClick: () => null, ctaLabel: '', ctaLoading: false, + onDismiss: () => null, + onSeen: () => null, }; state = { dismissed: false, }; + componentDidMount() { + const { onSeen } = this.props; + if (onSeen) onSeen(); + } + render() { const { children, @@ -37,6 +46,7 @@ export default @observer class Infobox extends Component { ctaLoading, ctaOnClick, dismissable, + onDismiss, } = this.props; if (this.state.dismissed) { @@ -76,9 +86,10 @@ export default @observer class Infobox extends Component { {dismissable && (