aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Stefan Malzner <stefan@adlk.io>2018-12-02 15:08:07 +0100
committerLibravatar Stefan Malzner <stefan@adlk.io>2018-12-02 15:08:07 +0100
commita5aa5e1380a0847eb33be3315d164fb9e0e23255 (patch)
treea1ea4b0f635cabb54d9cf028809d2f079727b9a1
parentAdd instruction to install Franz with homebrew (#1134) (diff)
parentMerge branch 'develop' into release/5.0.0-beta.19 (diff)
downloadferdium-app-a5aa5e1380a0847eb33be3315d164fb9e0e23255.tar.gz
ferdium-app-a5aa5e1380a0847eb33be3315d164fb9e0e23255.tar.zst
ferdium-app-a5aa5e1380a0847eb33be3315d164fb9e0e23255.zip
Merge branch 'release/5.0.0-beta.19'
-rw-r--r--.babelrc19
-rw-r--r--.eslintignore1
-rw-r--r--.eslintrc4
-rw-r--r--.gitignore1
-rw-r--r--.npmrc1
-rw-r--r--.nvmrc2
-rw-r--r--.travis.yml26
-rw-r--r--CHANGELOG.md4
-rw-r--r--CONTRIBUTING.md2
-rw-r--r--README.md21
-rw-r--r--appveyor.yml16
-rw-r--r--gulpfile.babel.js22
-rw-r--r--misty.yml6
-rw-r--r--package-lock.json12828
-rw-r--r--package.json79
-rw-r--r--src/I18n.js3
-rw-r--r--src/api/FeaturesApi.js13
-rw-r--r--src/api/LocalApi.js8
-rw-r--r--src/api/RecipesApi.js2
-rw-r--r--src/api/index.js2
-rw-r--r--src/api/server/LocalApi.js21
-rw-r--r--src/api/server/ServerApi.js33
-rw-r--r--src/app.js2
-rw-r--r--src/components/auth/AuthLayout.js97
-rw-r--r--src/components/auth/Import.js3
-rw-r--r--src/components/auth/Invite.js3
-rw-r--r--src/components/auth/Login.js3
-rw-r--r--src/components/auth/Password.js3
-rw-r--r--src/components/auth/Pricing.js3
-rw-r--r--src/components/auth/Signup.js7
-rw-r--r--src/components/auth/Welcome.js3
-rw-r--r--src/components/layout/AppLayout.js11
-rw-r--r--src/components/layout/Sidebar.js3
-rw-r--r--src/components/services/content/ServiceDisabled.js3
-rw-r--r--src/components/services/content/ServiceWebview.js3
-rw-r--r--src/components/services/content/Services.js3
-rw-r--r--src/components/services/content/WebviewCrashHandler.js3
-rw-r--r--src/components/services/tabs/TabItem.js6
-rw-r--r--src/components/services/tabs/Tabbar.js3
-rw-r--r--src/components/settings/SettingsLayout.js3
-rw-r--r--src/components/settings/account/AccountDashboard.js81
-rw-r--r--src/components/settings/navigation/SettingsNavigation.js4
-rw-r--r--src/components/settings/recipes/RecipeItem.js3
-rw-r--r--src/components/settings/recipes/RecipesDashboard.js3
-rw-r--r--src/components/settings/services/EditServiceForm.js50
-rw-r--r--src/components/settings/services/ServiceError.js3
-rw-r--r--src/components/settings/services/ServiceItem.js3
-rw-r--r--src/components/settings/services/ServicesDashboard.js3
-rw-r--r--src/components/settings/settings/EditSettingsForm.js21
-rw-r--r--src/components/settings/user/EditUserForm.js11
-rw-r--r--src/components/subscription/SubscriptionForm.js38
-rw-r--r--src/components/subscription/SubscriptionPopup.js3
-rw-r--r--src/components/ui/Button.js3
-rw-r--r--src/components/ui/ImageUpload.js4
-rw-r--r--src/components/ui/InfoBar.js3
-rw-r--r--src/components/ui/Infobox.js3
-rw-r--r--src/components/ui/Input.js4
-rw-r--r--src/components/ui/Link.js4
-rw-r--r--src/components/ui/PremiumFeatureContainer/index.js76
-rw-r--r--src/components/ui/PremiumFeatureContainer/styles.js31
-rw-r--r--src/components/ui/Radio.js3
-rw-r--r--src/components/ui/SearchInput.js3
-rw-r--r--src/components/ui/Select.js3
-rw-r--r--src/components/ui/StatusBarTargetUrl.js3
-rw-r--r--src/components/ui/Tabs/Tabs.js3
-rw-r--r--src/components/ui/Toggle.js9
-rw-r--r--src/config.js29
-rw-r--r--src/containers/auth/AuthLayoutContainer.js25
-rw-r--r--src/containers/auth/ImportScreen.js3
-rw-r--r--src/containers/auth/InviteScreen.js3
-rw-r--r--src/containers/auth/LoginScreen.js3
-rw-r--r--src/containers/auth/PasswordScreen.js3
-rw-r--r--src/containers/auth/PricingScreen.js3
-rw-r--r--src/containers/auth/SignupScreen.js3
-rw-r--r--src/containers/auth/WelcomeScreen.js3
-rw-r--r--src/containers/layout/AppLayoutContainer.js57
-rw-r--r--src/containers/settings/AccountScreen.js3
-rw-r--r--src/containers/settings/EditServiceScreen.js77
-rw-r--r--src/containers/settings/EditSettingsScreen.js40
-rw-r--r--src/containers/settings/EditUserScreen.js4
-rw-r--r--src/containers/settings/InviteScreen.js3
-rw-r--r--src/containers/settings/RecipesScreen.js3
-rw-r--r--src/containers/settings/ServicesScreen.js3
-rw-r--r--src/containers/settings/SettingsWindow.js3
-rw-r--r--src/containers/subscription/SubscriptionFormScreen.js4
-rw-r--r--src/containers/subscription/SubscriptionPopupScreen.js3
-rw-r--r--src/electron/Settings.js30
-rw-r--r--src/electron/ipc-api/appIndicator.js2
-rw-r--r--src/electron/ipc-api/autoUpdate.js20
-rw-r--r--src/electron/ipc-api/download.js43
-rw-r--r--src/electron/ipc-api/index.js2
-rw-r--r--src/electron/ipc-api/settings.js10
-rw-r--r--src/features/delayApp/Component.js88
-rw-r--r--src/features/delayApp/index.js70
-rw-r--r--src/features/delayApp/styles.js23
-rw-r--r--src/features/serviceProxy/index.js45
-rw-r--r--src/features/spellchecker/index.js27
-rw-r--r--src/helpers/i18n-helpers.js27
-rw-r--r--src/helpers/visibility-helper.js27
-rw-r--r--src/i18n/languages.js80
-rw-r--r--src/i18n/locales/ca.json35
-rw-r--r--src/i18n/locales/cs.json25
-rw-r--r--src/i18n/locales/de.json73
-rw-r--r--src/i18n/locales/el.json123
-rw-r--r--src/i18n/locales/en-US.json21
-rw-r--r--src/i18n/locales/es.json59
-rw-r--r--src/i18n/locales/fr.json35
-rw-r--r--src/i18n/locales/ga.json19
-rw-r--r--src/i18n/locales/hr.json23
-rw-r--r--src/i18n/locales/hu.json117
-rw-r--r--src/i18n/locales/id.json139
-rw-r--r--src/i18n/locales/it.json109
-rw-r--r--src/i18n/locales/ja.json33
-rw-r--r--src/i18n/locales/ka.json45
-rw-r--r--src/i18n/locales/nl-BE.json129
-rw-r--r--src/i18n/locales/nl.json53
-rw-r--r--src/i18n/locales/pl.json49
-rw-r--r--src/i18n/locales/pt-BR.json109
-rw-r--r--src/i18n/locales/pt.json181
-rw-r--r--src/i18n/locales/ru.json125
-rw-r--r--src/i18n/locales/sk.json263
-rw-r--r--src/i18n/locales/sr.json169
-rw-r--r--src/i18n/locales/tr.json27
-rw-r--r--src/i18n/locales/uk.json127
-rw-r--r--src/i18n/locales/zh-TW.json105
-rw-r--r--src/index.js49
-rw-r--r--src/lib/Menu.js15
-rw-r--r--src/lib/analytics.js2
-rw-r--r--src/models/News.js8
-rw-r--r--src/models/Plan.js4
-rw-r--r--src/models/Recipe.js6
-rw-r--r--src/models/RecipePreview.js8
-rw-r--r--src/models/Service.js7
-rw-r--r--src/models/Settings.js33
-rw-r--r--src/stores/AppStore.js53
-rw-r--r--src/stores/DictionaryStore.js45
-rw-r--r--src/stores/FeaturesStore.js50
-rw-r--r--src/stores/RecipesStore.js2
-rw-r--r--src/stores/RequestStore.js2
-rw-r--r--src/stores/ServicesStore.js41
-rw-r--r--src/stores/SettingsStore.js116
-rw-r--r--src/stores/UIStore.js12
-rw-r--r--src/stores/UserStore.js10
-rw-r--r--src/stores/index.js4
-rw-r--r--src/styles/animations.scss54
-rw-r--r--src/styles/auth.scss121
-rw-r--r--src/styles/badge.scss25
-rw-r--r--src/styles/button.scss97
-rw-r--r--src/styles/colors.scss50
-rw-r--r--src/styles/content-tabs.scss34
-rw-r--r--src/styles/image-upload.scss93
-rw-r--r--src/styles/info-bar.scss49
-rw-r--r--src/styles/infobox.scss34
-rw-r--r--src/styles/input.scss95
-rw-r--r--src/styles/invite.scss11
-rw-r--r--src/styles/layout.scss162
-rw-r--r--src/styles/mixins.scss2
-rw-r--r--src/styles/radio.scss35
-rw-r--r--src/styles/recipes.scss56
-rw-r--r--src/styles/reset.scss67
-rw-r--r--src/styles/searchInput.scss30
-rw-r--r--src/styles/select.scss30
-rw-r--r--src/styles/service-table.scss39
-rw-r--r--src/styles/services.scss60
-rw-r--r--src/styles/settings.scss357
-rw-r--r--src/styles/status-bar-target-url.scss14
-rw-r--r--src/styles/subscription-popup.scss13
-rw-r--r--src/styles/subscription.scss56
-rw-r--r--src/styles/tabs.scss98
-rw-r--r--src/styles/title-bar.scss77
-rw-r--r--src/styles/toggle.scss72
-rw-r--r--src/styles/tooltip.scss2
-rw-r--r--src/styles/type-helper.scss100
-rw-r--r--src/styles/type.scss48
-rw-r--r--src/styles/util.scss10
-rw-r--r--src/styles/welcome.scss138
-rw-r--r--src/theme/dark/index.js6
-rw-r--r--src/theme/default/index.js21
-rw-r--r--src/theme/default/legacy.js39
-rw-r--r--src/webview/contextMenu.js178
-rw-r--r--src/webview/darkmode.js28
-rw-r--r--src/webview/plugin.js64
-rw-r--r--src/webview/spellchecker.js111
-rw-r--r--yarn.lock6570
184 files changed, 17162 insertions, 9064 deletions
diff --git a/.babelrc b/.babelrc
index dc041f43b..3ea65a54e 100644
--- a/.babelrc
+++ b/.babelrc
@@ -1,19 +1,14 @@
1{ 1{
2 "presets": [ 2 "presets": [
3 [ 3 "@babel/env",
4 "babel-preset-env", 4 "@babel/react"
5 {
6 "targets": {
7 "electron": "1.7.2"
8 }
9 }
10 ],
11 "babel-preset-react"
12 ], 5 ],
13 "plugins": [ 6 "plugins": [
14 "transform-decorators-legacy", 7 ["@babel/plugin-proposal-decorators", { "legacy": true }],
15 "transform-flow-strip-types", 8 "@babel/proposal-export-default-from",
16 "transform-class-properties", 9 ["@babel/proposal-class-properties", { "loose": true }],
10 "@babel/proposal-throw-expressions",
11 "@babel/syntax-dynamic-import"
17 ], 12 ],
18 "sourceMaps": "inline" 13 "sourceMaps": "inline"
19} 14}
diff --git a/.eslintignore b/.eslintignore
index 567609b12..3c0160d04 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -1 +1,2 @@
1build/ 1build/
2out/
diff --git a/.eslintrc b/.eslintrc
index 994c00653..948550306 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -6,12 +6,14 @@
6 "import/no-extraneous-dependencies": 0, 6 "import/no-extraneous-dependencies": 0,
7 "import/no-unresolved": [2, { 7 "import/no-unresolved": [2, {
8 "ignore": ["electron"] 8 "ignore": ["electron"]
9 }], 9 }],
10 "import/prefer-default-export": 0,
10 "linebreak-style": 0, 11 "linebreak-style": 0,
11 "react/prefer-stateless-function": 0, 12 "react/prefer-stateless-function": 0,
12 "react/jsx-filename-extension": [1, { 13 "react/jsx-filename-extension": [1, {
13 "extensions": [".js", ".jsx"] 14 "extensions": [".js", ".jsx"]
14 }], 15 }],
16 "react/forbid-prop-types": 1,
15 "no-underscore-dangle": 0, 17 "no-underscore-dangle": 0,
16 "max-len": 0, 18 "max-len": 0,
17 "class-methods-use-this": 0, 19 "class-methods-use-this": 0,
diff --git a/.gitignore b/.gitignore
index f9ca0edc5..0a12f84d9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@ build
7.stage 7.stage
8.env 8.env
9yarn-error.log 9yarn-error.log
10npm-debug.log* \ No newline at end of file
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 000000000..cad57977c
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1 @@
save-exact = true \ No newline at end of file
diff --git a/.nvmrc b/.nvmrc
index 797ed2e27..714ea4c61 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
8.2.1 \ No newline at end of file 10.13.0 \ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index 78c1e3693..dfea3a41e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,28 +1,28 @@
1matrix: 1matrix:
2 include: 2 include:
3 - os: linux 3 - os: linux
4 dist: trusty 4 dist: xenial
5 sudo: required 5 addons:
6 apt:
7 packages:
8 - libx11-dev
9 - libxext-dev
10 - libxss-dev
11 - libxkbfile-dev
6 - os: osx 12 - os: osx
7 osx_image: xcode8.3 13 osx_image: xcode8.3
8 14
9language: node_js 15language: node_js
10 16
11before_script: 17before_script:
12- yarn add global node-sass 18- npm install node-sass -g
13- yarn install 19- npm ci
14 20
15script: 21script:
16- yarn lint 22- npm run lint
17- travis_wait yarn build 23- travis_wait npm run build
18 24
19node_js: 25cache: npm
20- '8'
21
22before_install:
23- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt install libx11-dev libxext-dev libxss-dev libxkbfile-dev; fi
24
25cache: yarn
26 26
27notifications: 27notifications:
28 email: false 28 email: false
diff --git a/CHANGELOG.md b/CHANGELOG.md
index cdc89b325..38cba0829 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -45,7 +45,7 @@
45 45
46### General 46### General
47* **App:** Update Electron version to 1.7.12 (fixes critical security vulnerability CVE-2018–1000006 ) ([c67d7d1](https://github.com/meetfranz/franz/commit/c67d7d1)) 47* **App:** Update Electron version to 1.7.12 (fixes critical security vulnerability CVE-2018–1000006 ) ([c67d7d1](https://github.com/meetfranz/franz/commit/c67d7d1))
48* **Translations:** Improved translations. **[A million thanks to the amazing community. 🎉](http://i18n.meetfranz.com/)** 48* **Translations:** Improved translations. **[A million thanks to the amazing community. 🎉](https://i18n.meetfranz.com/)**
49 49
50### Features 50### Features
51* **App:** Invite Friends in Settings ([ab33c44](https://github.com/meetfranz/franz/commit/ab33c44)) 51* **App:** Invite Friends in Settings ([ab33c44](https://github.com/meetfranz/franz/commit/ab33c44))
@@ -116,7 +116,7 @@ fix(App): Bugfix Fix memory leak in recipe polling loop
116* **Service:** Add option to display disabled services in tabs ([1839eff](https://github.com/meetfranz/franz/commit/1839eff)) 116* **Service:** Add option to display disabled services in tabs ([1839eff](https://github.com/meetfranz/franz/commit/1839eff))
117* **Service:** Add option to mute service ([b405ba1](https://github.com/meetfranz/franz/commit/b405ba1)) 117* **Service:** Add option to mute service ([b405ba1](https://github.com/meetfranz/franz/commit/b405ba1))
118* **Service:** Add dialog to reload crashed services ([259d40c](https://github.com/meetfranz/franz/commit/259d40c)) ([dannyqiu](https://github.com/dannyqiu)) 118* **Service:** Add dialog to reload crashed services ([259d40c](https://github.com/meetfranz/franz/commit/259d40c)) ([dannyqiu](https://github.com/dannyqiu))
119* **Translations:** Added new translations and improved existing ones. **[A million thanks to the amazing community.](http://i18n.meetfranz.com/)** 119* **Translations:** Added new translations and improved existing ones. **[A million thanks to the amazing community.](https://i18n.meetfranz.com/)**
120 120
121 121
122### Bug Fixes 122### Bug Fixes
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index ad5989964..57146bd43 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -33,4 +33,4 @@ As a basic rule, before filing issues, feature requests or anything else. Take a
33* When only changing documentation, include `[ci skip]` in the commit description 33* When only changing documentation, include `[ci skip]` in the commit description
34 34
35### Javascript 35### Javascript
36* Please use `es-lint` and the defined rules to maintain a consistent style 36* Please use `es-lint` and the defined rules to maintain a consistent style
diff --git a/README.md b/README.md
index 012a30fc9..4d024c3be 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
5 5
6# Franz 5 (beta) 6# Franz 5 (beta)
7[![Build status Windows](https://ci.appveyor.com/api/projects/status/9yman4ye19x4274o/branch/master?svg=true)](https://ci.appveyor.com/project/adlk/franz/branch/master) 7[![Build status Windows](https://ci.appveyor.com/api/projects/status/9yman4ye19x4274o/branch/master?svg=true)](https://ci.appveyor.com/project/adlk/franz/branch/master)
8 [![Build Status Mac](https://travis-ci.org/meetfranz/franz.svg?branch=master)](https://travis-ci.org/meetfranz/franz) [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](http://meetfranz.com/payment.html) 8 [![Build Status Mac](https://travis-ci.org/meetfranz/franz.svg?branch=master)](https://travis-ci.org/meetfranz/franz) [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://meetfranz.com/payment.html)
9 9
10Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more. 10Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.
11 11
@@ -25,34 +25,23 @@ Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many mor
25#### Install Linux OS dependencies 25#### Install Linux OS dependencies
26[Guide: Linux distribution specific dependencies](docs/linux.md) 26[Guide: Linux distribution specific dependencies](docs/linux.md)
27 27
28#### Install yarn
29##### MacOS
30```bash
31$ brew install yarn
32```
33##### Windows
34[Download installer](https://yarnpkg.com/latest.msi)
35
36##### Linux
37[Install Yarn on Linux](https://yarnpkg.com/lang/en/docs/install/)
38
39#### Fix native modules to match current electron node version 28#### Fix native modules to match current electron node version
40```bash 29```bash
41$ yarn run rebuild 30$ npm run rebuild
42``` 31```
43 32
44### Run Franz Development App 33### Run Franz Development App
45Run these two commands __simultaneously__ in different console tabs. 34Run these two commands __simultaneously__ in different console tabs.
46 35
47```bash 36```bash
48$ yarn run dev 37$ npm run dev
49$ yarn start 38$ npm run start
50``` 39```
51Be aware that the development database will be reset regularly. 40Be aware that the development database will be reset regularly.
52 41
53## Packaging 42## Packaging
54```bash 43```bash
55$ yarn build 44$ npm run build
56``` 45```
57 46
58## How can I support the project? 47## How can I support the project?
diff --git a/appveyor.yml b/appveyor.yml
index 8c83a5644..1d614b4c7 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -9,18 +9,20 @@ environment:
9version: 5.0.0.{build} 9version: 5.0.0.{build}
10 10
11install: 11install:
12 - ps: Install-Product node 8 12 - ps: $version = Get-Content .\.nvmrc -Raw
13 - yarn cache clean 13 - ps: Install-Product node $version
14 - yarn install 14 - npm ci
15 - node --version
16 - npm --version
15 17
16# cache: 18cache:
17# - "%LOCALAPPDATA%\\Yarn" 19 - '%APPDATA%\npm-cache'
18 20
19before_build: 21before_build:
20 - yarn lint 22 - npm run lint
21 23
22build_script: 24build_script:
23 - yarn build 25 - npm run build
24 26
25notifications: 27notifications:
26 - provider: Slack 28 - provider: Slack
diff --git a/gulpfile.babel.js b/gulpfile.babel.js
index 95b026f66..cea42d6c9 100644
--- a/gulpfile.babel.js
+++ b/gulpfile.babel.js
@@ -3,15 +3,24 @@ import gulp from 'gulp';
3import babel from 'gulp-babel'; 3import babel from 'gulp-babel';
4import sass from 'gulp-sass'; 4import sass from 'gulp-sass';
5import server from 'gulp-server-livereload'; 5import server from 'gulp-server-livereload';
6import del from 'del';
7import { exec } from 'child_process'; 6import { exec } from 'child_process';
8import dotenv from 'dotenv'; 7import dotenv from 'dotenv';
9import sassVariables from 'gulp-sass-variables'; 8import sassVariables from 'gulp-sass-variables';
9import { removeSync } from 'fs-extra';
10import kebabCase from 'kebab-case';
11import hexRgb from 'hex-rgb';
10 12
11import config from './package.json'; 13import config from './package.json';
12 14
15import * as rawStyleConfig from './src/theme/default/legacy.js';
16
13dotenv.config(); 17dotenv.config();
14 18
19const styleConfig = Object.keys(rawStyleConfig).map((key) => {
20 const isHex = /^#[0-9A-F]{6}$/i.test(rawStyleConfig[key]);
21 return ({ [`$raw_${kebabCase(key)}`]: isHex ? hexRgb(rawStyleConfig[key], { format: 'array' }).splice(0, 3).join(',') : rawStyleConfig[key] });
22});
23
15const paths = { 24const paths = {
16 src: 'src', 25 src: 'src',
17 dest: 'build', 26 dest: 'build',
@@ -49,7 +58,12 @@ function _shell(cmd, cb) {
49 }); 58 });
50} 59}
51 60
52const clean = () => del([paths.tmp, paths.dest]); 61const clean = (done) => {
62 removeSync(paths.tmp);
63 removeSync(paths.dest);
64
65 done();
66};
53export { clean }; 67export { clean };
54 68
55export function mvSrc() { 69export function mvSrc() {
@@ -78,9 +92,9 @@ export function html() {
78 92
79export function styles() { 93export function styles() {
80 return gulp.src(paths.styles.src) 94 return gulp.src(paths.styles.src)
81 .pipe(sassVariables({ 95 .pipe(sassVariables(Object.assign({
82 $env: process.env.NODE_ENV === 'development' ? 'development' : 'production', 96 $env: process.env.NODE_ENV === 'development' ? 'development' : 'production',
83 })) 97 }, ...styleConfig)))
84 .pipe(sass({ 98 .pipe(sass({
85 includePaths: [ 99 includePaths: [
86 './node_modules', 100 './node_modules',
diff --git a/misty.yml b/misty.yml
new file mode 100644
index 000000000..a1e024c4e
--- /dev/null
+++ b/misty.yml
@@ -0,0 +1,6 @@
1code:
2 cmd: npm run dev
3
4app:
5 cmd: npx electron ./build
6 waitOn: http://localhost:8000 \ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 000000000..fac5d7a7d
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,12828 @@
1{
2 "name": "franz",
3 "version": "5.0.0-beta.18",
4 "lockfileVersion": 1,
5 "requires": true,
6 "dependencies": {
7 "7zip-bin": {
8 "version": "4.1.0",
9 "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-4.1.0.tgz",
10 "integrity": "sha512-AsnBZN3a8/JcNt+KPkGGODaA4c7l3W5+WpeKgGSbstSLxqWtTXqd1ieJGBQ8IFCtRg8DmmKUcSkIkUc0A4p3YA==",
11 "dev": true
12 },
13 "@adlk/misty": {
14 "version": "0.1.1",
15 "resolved": "https://registry.npmjs.org/@adlk/misty/-/misty-0.1.1.tgz",
16 "integrity": "sha512-Yn8OFNpdsVN7N80iYLKYp06a/3lrW4ri6Koe7TLzpshcFXxRQjjkeP9OZdlb9AsttZVm2tGWrJC73TJlqQvGMA==",
17 "dev": true,
18 "requires": {
19 "chalk": "^2.4.1",
20 "chokidar": "^2.0.4",
21 "concurrently": "^4.0.1",
22 "js-yaml": "^3.12.0",
23 "lodash": "^4.17.10",
24 "minimist": "^1.2.0",
25 "wait-on": "^3.0.1"
26 },
27 "dependencies": {
28 "ansi-styles": {
29 "version": "3.2.1",
30 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
31 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
32 "dev": true,
33 "requires": {
34 "color-convert": "^1.9.0"
35 }
36 },
37 "chalk": {
38 "version": "2.4.1",
39 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
40 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
41 "dev": true,
42 "requires": {
43 "ansi-styles": "^3.2.1",
44 "escape-string-regexp": "^1.0.5",
45 "supports-color": "^5.3.0"
46 }
47 },
48 "supports-color": {
49 "version": "5.5.0",
50 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
51 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
52 "dev": true,
53 "requires": {
54 "has-flag": "^3.0.0"
55 }
56 }
57 }
58 },
59 "@babel/code-frame": {
60 "version": "7.0.0",
61 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
62 "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
63 "dev": true,
64 "requires": {
65 "@babel/highlight": "^7.0.0"
66 }
67 },
68 "@babel/core": {
69 "version": "7.1.2",
70 "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.1.2.tgz",
71 "integrity": "sha512-IFeSSnjXdhDaoysIlev//UzHZbdEmm7D0EIH2qtse9xK7mXEZQpYjs2P00XlP1qYsYvid79p+Zgg6tz1mp6iVw==",
72 "dev": true,
73 "requires": {
74 "@babel/code-frame": "^7.0.0",
75 "@babel/generator": "^7.1.2",
76 "@babel/helpers": "^7.1.2",
77 "@babel/parser": "^7.1.2",
78 "@babel/template": "^7.1.2",
79 "@babel/traverse": "^7.1.0",
80 "@babel/types": "^7.1.2",
81 "convert-source-map": "^1.1.0",
82 "debug": "^3.1.0",
83 "json5": "^0.5.0",
84 "lodash": "^4.17.10",
85 "resolve": "^1.3.2",
86 "semver": "^5.4.1",
87 "source-map": "^0.5.0"
88 },
89 "dependencies": {
90 "debug": {
91 "version": "3.2.6",
92 "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
93 "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
94 "dev": true,
95 "requires": {
96 "ms": "^2.1.1"
97 }
98 },
99 "ms": {
100 "version": "2.1.1",
101 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
102 "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
103 "dev": true
104 }
105 }
106 },
107 "@babel/generator": {
108 "version": "7.1.3",
109 "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.1.3.tgz",
110 "integrity": "sha512-ZoCZGcfIJFJuZBqxcY9OjC1KW2lWK64qrX1o4UYL3yshVhwKFYgzpWZ0vvtGMNJdTlvkw0W+HR1VnYN8q3QPFQ==",
111 "dev": true,
112 "requires": {
113 "@babel/types": "^7.1.3",
114 "jsesc": "^2.5.1",
115 "lodash": "^4.17.10",
116 "source-map": "^0.5.0",
117 "trim-right": "^1.0.1"
118 }
119 },
120 "@babel/helper-annotate-as-pure": {
121 "version": "7.0.0",
122 "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz",
123 "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==",
124 "dev": true,
125 "requires": {
126 "@babel/types": "^7.0.0"
127 }
128 },
129 "@babel/helper-builder-binary-assignment-operator-visitor": {
130 "version": "7.1.0",
131 "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz",
132 "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==",
133 "dev": true,
134 "requires": {
135 "@babel/helper-explode-assignable-expression": "^7.1.0",
136 "@babel/types": "^7.0.0"
137 }
138 },
139 "@babel/helper-builder-react-jsx": {
140 "version": "7.0.0",
141 "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0.tgz",
142 "integrity": "sha512-ebJ2JM6NAKW0fQEqN8hOLxK84RbRz9OkUhGS/Xd5u56ejMfVbayJ4+LykERZCOUM6faa6Fp3SZNX3fcT16MKHw==",
143 "dev": true,
144 "requires": {
145 "@babel/types": "^7.0.0",
146 "esutils": "^2.0.0"
147 }
148 },
149 "@babel/helper-call-delegate": {
150 "version": "7.1.0",
151 "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz",
152 "integrity": "sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==",
153 "dev": true,
154 "requires": {
155 "@babel/helper-hoist-variables": "^7.0.0",
156 "@babel/traverse": "^7.1.0",
157 "@babel/types": "^7.0.0"
158 }
159 },
160 "@babel/helper-define-map": {
161 "version": "7.1.0",
162 "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz",
163 "integrity": "sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg==",
164 "dev": true,
165 "requires": {
166 "@babel/helper-function-name": "^7.1.0",
167 "@babel/types": "^7.0.0",
168 "lodash": "^4.17.10"
169 }
170 },
171 "@babel/helper-explode-assignable-expression": {
172 "version": "7.1.0",
173 "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz",
174 "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==",
175 "dev": true,
176 "requires": {
177 "@babel/traverse": "^7.1.0",
178 "@babel/types": "^7.0.0"
179 }
180 },
181 "@babel/helper-function-name": {
182 "version": "7.1.0",
183 "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
184 "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
185 "dev": true,
186 "requires": {
187 "@babel/helper-get-function-arity": "^7.0.0",
188 "@babel/template": "^7.1.0",
189 "@babel/types": "^7.0.0"
190 }
191 },
192 "@babel/helper-get-function-arity": {
193 "version": "7.0.0",
194 "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
195 "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
196 "dev": true,
197 "requires": {
198 "@babel/types": "^7.0.0"
199 }
200 },
201 "@babel/helper-hoist-variables": {
202 "version": "7.0.0",
203 "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz",
204 "integrity": "sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w==",
205 "dev": true,
206 "requires": {
207 "@babel/types": "^7.0.0"
208 }
209 },
210 "@babel/helper-member-expression-to-functions": {
211 "version": "7.0.0",
212 "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz",
213 "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==",
214 "dev": true,
215 "requires": {
216 "@babel/types": "^7.0.0"
217 }
218 },
219 "@babel/helper-module-imports": {
220 "version": "7.0.0",
221 "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz",
222 "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==",
223 "dev": true,
224 "requires": {
225 "@babel/types": "^7.0.0"
226 }
227 },
228 "@babel/helper-module-transforms": {
229 "version": "7.1.0",
230 "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz",
231 "integrity": "sha512-0JZRd2yhawo79Rcm4w0LwSMILFmFXjugG3yqf+P/UsKsRS1mJCmMwwlHDlMg7Avr9LrvSpp4ZSULO9r8jpCzcw==",
232 "dev": true,
233 "requires": {
234 "@babel/helper-module-imports": "^7.0.0",
235 "@babel/helper-simple-access": "^7.1.0",
236 "@babel/helper-split-export-declaration": "^7.0.0",
237 "@babel/template": "^7.1.0",
238 "@babel/types": "^7.0.0",
239 "lodash": "^4.17.10"
240 }
241 },
242 "@babel/helper-optimise-call-expression": {
243 "version": "7.0.0",
244 "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz",
245 "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==",
246 "dev": true,
247 "requires": {
248 "@babel/types": "^7.0.0"
249 }
250 },
251 "@babel/helper-plugin-utils": {
252 "version": "7.0.0",
253 "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz",
254 "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==",
255 "dev": true
256 },
257 "@babel/helper-regex": {
258 "version": "7.0.0",
259 "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz",
260 "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==",
261 "dev": true,
262 "requires": {
263 "lodash": "^4.17.10"
264 }
265 },
266 "@babel/helper-remap-async-to-generator": {
267 "version": "7.1.0",
268 "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz",
269 "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==",
270 "dev": true,
271 "requires": {
272 "@babel/helper-annotate-as-pure": "^7.0.0",
273 "@babel/helper-wrap-function": "^7.1.0",
274 "@babel/template": "^7.1.0",
275 "@babel/traverse": "^7.1.0",
276 "@babel/types": "^7.0.0"
277 }
278 },
279 "@babel/helper-replace-supers": {
280 "version": "7.1.0",
281 "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz",
282 "integrity": "sha512-BvcDWYZRWVuDeXTYZWxekQNO5D4kO55aArwZOTFXw6rlLQA8ZaDicJR1sO47h+HrnCiDFiww0fSPV0d713KBGQ==",
283 "dev": true,
284 "requires": {
285 "@babel/helper-member-expression-to-functions": "^7.0.0",
286 "@babel/helper-optimise-call-expression": "^7.0.0",
287 "@babel/traverse": "^7.1.0",
288 "@babel/types": "^7.0.0"
289 }
290 },
291 "@babel/helper-simple-access": {
292 "version": "7.1.0",
293 "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz",
294 "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==",
295 "dev": true,
296 "requires": {
297 "@babel/template": "^7.1.0",
298 "@babel/types": "^7.0.0"
299 }
300 },
301 "@babel/helper-split-export-declaration": {
302 "version": "7.0.0",
303 "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz",
304 "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==",
305 "dev": true,
306 "requires": {
307 "@babel/types": "^7.0.0"
308 }
309 },
310 "@babel/helper-wrap-function": {
311 "version": "7.1.0",
312 "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.1.0.tgz",
313 "integrity": "sha512-R6HU3dete+rwsdAfrOzTlE9Mcpk4RjU3aX3gi9grtmugQY0u79X7eogUvfXA5sI81Mfq1cn6AgxihfN33STjJA==",
314 "dev": true,
315 "requires": {
316 "@babel/helper-function-name": "^7.1.0",
317 "@babel/template": "^7.1.0",
318 "@babel/traverse": "^7.1.0",
319 "@babel/types": "^7.0.0"
320 }
321 },
322 "@babel/helpers": {
323 "version": "7.1.2",
324 "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.1.2.tgz",
325 "integrity": "sha512-Myc3pUE8eswD73aWcartxB16K6CGmHDv9KxOmD2CeOs/FaEAQodr3VYGmlvOmog60vNQ2w8QbatuahepZwrHiA==",
326 "dev": true,
327 "requires": {
328 "@babel/template": "^7.1.2",
329 "@babel/traverse": "^7.1.0",
330 "@babel/types": "^7.1.2"
331 }
332 },
333 "@babel/highlight": {
334 "version": "7.0.0",
335 "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
336 "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
337 "dev": true,
338 "requires": {
339 "chalk": "^2.0.0",
340 "esutils": "^2.0.2",
341 "js-tokens": "^4.0.0"
342 },
343 "dependencies": {
344 "ansi-styles": {
345 "version": "3.2.1",
346 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
347 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
348 "dev": true,
349 "requires": {
350 "color-convert": "^1.9.0"
351 }
352 },
353 "chalk": {
354 "version": "2.4.1",
355 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
356 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
357 "dev": true,
358 "requires": {
359 "ansi-styles": "^3.2.1",
360 "escape-string-regexp": "^1.0.5",
361 "supports-color": "^5.3.0"
362 }
363 },
364 "supports-color": {
365 "version": "5.5.0",
366 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
367 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
368 "dev": true,
369 "requires": {
370 "has-flag": "^3.0.0"
371 }
372 }
373 }
374 },
375 "@babel/parser": {
376 "version": "7.1.3",
377 "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.3.tgz",
378 "integrity": "sha512-gqmspPZOMW3MIRb9HlrnbZHXI1/KHTOroBwN1NcLL6pWxzqzEKGvRTq0W/PxS45OtQGbaFikSQpkS5zbnsQm2w==",
379 "dev": true
380 },
381 "@babel/plugin-proposal-async-generator-functions": {
382 "version": "7.1.0",
383 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.1.0.tgz",
384 "integrity": "sha512-Fq803F3Jcxo20MXUSDdmZZXrPe6BWyGcWBPPNB/M7WaUYESKDeKMOGIxEzQOjGSmW/NWb6UaPZrtTB2ekhB/ew==",
385 "dev": true,
386 "requires": {
387 "@babel/helper-plugin-utils": "^7.0.0",
388 "@babel/helper-remap-async-to-generator": "^7.1.0",
389 "@babel/plugin-syntax-async-generators": "^7.0.0"
390 }
391 },
392 "@babel/plugin-proposal-class-properties": {
393 "version": "7.1.0",
394 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.1.0.tgz",
395 "integrity": "sha512-/PCJWN+CKt5v1xcGn4vnuu13QDoV+P7NcICP44BoonAJoPSGwVkgrXihFIQGiEjjPlUDBIw1cM7wYFLARS2/hw==",
396 "dev": true,
397 "requires": {
398 "@babel/helper-function-name": "^7.1.0",
399 "@babel/helper-member-expression-to-functions": "^7.0.0",
400 "@babel/helper-optimise-call-expression": "^7.0.0",
401 "@babel/helper-plugin-utils": "^7.0.0",
402 "@babel/helper-replace-supers": "^7.1.0",
403 "@babel/plugin-syntax-class-properties": "^7.0.0"
404 }
405 },
406 "@babel/plugin-proposal-decorators": {
407 "version": "7.1.2",
408 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.1.2.tgz",
409 "integrity": "sha512-YooynBO6PmBgHvAd0fl5e5Tq/a0pEC6RqF62ouafme8FzdIVH41Mz/u1dn8fFVm4jzEJ+g/MsOxouwybJPuP8Q==",
410 "dev": true,
411 "requires": {
412 "@babel/helper-plugin-utils": "^7.0.0",
413 "@babel/helper-replace-supers": "^7.1.0",
414 "@babel/helper-split-export-declaration": "^7.0.0",
415 "@babel/plugin-syntax-decorators": "^7.1.0"
416 }
417 },
418 "@babel/plugin-proposal-export-default-from": {
419 "version": "7.0.0",
420 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.0.0.tgz",
421 "integrity": "sha512-cWhkx6SyjZ4caFOanoPmDNgQCuYYTmou4QXy886JsyLTw/vhWQbop2gLKsWyyswrJkKTB7fSNxVYbP/oEsoySA==",
422 "dev": true,
423 "requires": {
424 "@babel/helper-plugin-utils": "^7.0.0",
425 "@babel/plugin-syntax-export-default-from": "^7.0.0"
426 }
427 },
428 "@babel/plugin-proposal-json-strings": {
429 "version": "7.0.0",
430 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.0.0.tgz",
431 "integrity": "sha512-kfVdUkIAGJIVmHmtS/40i/fg/AGnw/rsZBCaapY5yjeO5RA9m165Xbw9KMOu2nqXP5dTFjEjHdfNdoVcHv133Q==",
432 "dev": true,
433 "requires": {
434 "@babel/helper-plugin-utils": "^7.0.0",
435 "@babel/plugin-syntax-json-strings": "^7.0.0"
436 }
437 },
438 "@babel/plugin-proposal-object-rest-spread": {
439 "version": "7.0.0",
440 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0.tgz",
441 "integrity": "sha512-14fhfoPcNu7itSen7Py1iGN0gEm87hX/B+8nZPqkdmANyyYWYMY2pjA3r8WXbWVKMzfnSNS0xY8GVS0IjXi/iw==",
442 "dev": true,
443 "requires": {
444 "@babel/helper-plugin-utils": "^7.0.0",
445 "@babel/plugin-syntax-object-rest-spread": "^7.0.0"
446 }
447 },
448 "@babel/plugin-proposal-optional-catch-binding": {
449 "version": "7.0.0",
450 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0.tgz",
451 "integrity": "sha512-JPqAvLG1s13B/AuoBjdBYvn38RqW6n1TzrQO839/sIpqLpbnXKacsAgpZHzLD83Sm8SDXMkkrAvEnJ25+0yIpw==",
452 "dev": true,
453 "requires": {
454 "@babel/helper-plugin-utils": "^7.0.0",
455 "@babel/plugin-syntax-optional-catch-binding": "^7.0.0"
456 }
457 },
458 "@babel/plugin-proposal-throw-expressions": {
459 "version": "7.0.0",
460 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.0.0.tgz",
461 "integrity": "sha512-CA2EUiwnbXrsdV4hy3jYghm91WaL7zL7xYfu628dyItRr6gylbRxshghGEK/Hhm//rR58N3PBmEeuYqSW57IUQ==",
462 "dev": true,
463 "requires": {
464 "@babel/helper-plugin-utils": "^7.0.0",
465 "@babel/plugin-syntax-throw-expressions": "^7.0.0"
466 }
467 },
468 "@babel/plugin-proposal-unicode-property-regex": {
469 "version": "7.0.0",
470 "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0.tgz",
471 "integrity": "sha512-tM3icA6GhC3ch2SkmSxv7J/hCWKISzwycub6eGsDrFDgukD4dZ/I+x81XgW0YslS6mzNuQ1Cbzh5osjIMgepPQ==",
472 "dev": true,
473 "requires": {
474 "@babel/helper-plugin-utils": "^7.0.0",
475 "@babel/helper-regex": "^7.0.0",
476 "regexpu-core": "^4.2.0"
477 }
478 },
479 "@babel/plugin-syntax-async-generators": {
480 "version": "7.0.0",
481 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0.tgz",
482 "integrity": "sha512-im7ged00ddGKAjcZgewXmp1vxSZQQywuQXe2B1A7kajjZmDeY/ekMPmWr9zJgveSaQH0k7BcGrojQhcK06l0zA==",
483 "dev": true,
484 "requires": {
485 "@babel/helper-plugin-utils": "^7.0.0"
486 }
487 },
488 "@babel/plugin-syntax-class-properties": {
489 "version": "7.0.0",
490 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0.tgz",
491 "integrity": "sha512-cR12g0Qzn4sgkjrbrzWy2GE7m9vMl/sFkqZ3gIpAQdrvPDnLM8180i+ANDFIXfjHo9aqp0ccJlQ0QNZcFUbf9w==",
492 "dev": true,
493 "requires": {
494 "@babel/helper-plugin-utils": "^7.0.0"
495 }
496 },
497 "@babel/plugin-syntax-decorators": {
498 "version": "7.1.0",
499 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.1.0.tgz",
500 "integrity": "sha512-uQvRSbgQ0nQg3jsmIixXXDCgSpkBolJ9X7NYThMKCcjvE8dN2uWJUzTUNNAeuKOjARTd+wUQV0ztXpgunZYKzQ==",
501 "dev": true,
502 "requires": {
503 "@babel/helper-plugin-utils": "^7.0.0"
504 }
505 },
506 "@babel/plugin-syntax-dynamic-import": {
507 "version": "7.0.0",
508 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.0.0.tgz",
509 "integrity": "sha512-Gt9xNyRrCHCiyX/ZxDGOcBnlJl0I3IWicpZRC4CdC0P5a/I07Ya2OAMEBU+J7GmRFVmIetqEYRko6QYRuKOESw==",
510 "dev": true,
511 "requires": {
512 "@babel/helper-plugin-utils": "^7.0.0"
513 }
514 },
515 "@babel/plugin-syntax-export-default-from": {
516 "version": "7.0.0",
517 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.0.0.tgz",
518 "integrity": "sha512-HNnjg/fFFbnuLAqr/Ocp1Y3GB4AjmXcu1xxn3ql3bS2kGrB/qi+Povshb8i3hOkE5jNozzh8r/0/lq1w8oOWbQ==",
519 "dev": true,
520 "requires": {
521 "@babel/helper-plugin-utils": "^7.0.0"
522 }
523 },
524 "@babel/plugin-syntax-json-strings": {
525 "version": "7.0.0",
526 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.0.0.tgz",
527 "integrity": "sha512-UlSfNydC+XLj4bw7ijpldc1uZ/HB84vw+U6BTuqMdIEmz/LDe63w/GHtpQMdXWdqQZFeAI9PjnHe/vDhwirhKA==",
528 "dev": true,
529 "requires": {
530 "@babel/helper-plugin-utils": "^7.0.0"
531 }
532 },
533 "@babel/plugin-syntax-jsx": {
534 "version": "7.0.0",
535 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0.tgz",
536 "integrity": "sha512-PdmL2AoPsCLWxhIr3kG2+F9v4WH06Q3z+NoGVpQgnUNGcagXHq5sB3OXxkSahKq9TLdNMN/AJzFYSOo8UKDMHg==",
537 "dev": true,
538 "requires": {
539 "@babel/helper-plugin-utils": "^7.0.0"
540 }
541 },
542 "@babel/plugin-syntax-object-rest-spread": {
543 "version": "7.0.0",
544 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0.tgz",
545 "integrity": "sha512-5A0n4p6bIiVe5OvQPxBnesezsgFJdHhSs3uFSvaPdMqtsovajLZ+G2vZyvNe10EzJBWWo3AcHGKhAFUxqwp2dw==",
546 "dev": true,
547 "requires": {
548 "@babel/helper-plugin-utils": "^7.0.0"
549 }
550 },
551 "@babel/plugin-syntax-optional-catch-binding": {
552 "version": "7.0.0",
553 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0.tgz",
554 "integrity": "sha512-Wc+HVvwjcq5qBg1w5RG9o9RVzmCaAg/Vp0erHCKpAYV8La6I94o4GQAmFYNmkzoMO6gzoOSulpKeSSz6mPEoZw==",
555 "dev": true,
556 "requires": {
557 "@babel/helper-plugin-utils": "^7.0.0"
558 }
559 },
560 "@babel/plugin-syntax-throw-expressions": {
561 "version": "7.0.0",
562 "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.0.0.tgz",
563 "integrity": "sha512-/5uORdWlPta/ALhI5zKtm0Y9vAYOa7HJMML0OnCGk9XZA4hpGjb0Xjt/OVDCJVawC/4FrlAGCHOaj9BtWeVDvg==",
564 "dev": true,
565 "requires": {
566 "@babel/helper-plugin-utils": "^7.0.0"
567 }
568 },
569 "@babel/plugin-transform-arrow-functions": {
570 "version": "7.0.0",
571 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0.tgz",
572 "integrity": "sha512-2EZDBl1WIO/q4DIkIp4s86sdp4ZifL51MoIviLY/gG/mLSuOIEg7J8o6mhbxOTvUJkaN50n+8u41FVsr5KLy/w==",
573 "dev": true,
574 "requires": {
575 "@babel/helper-plugin-utils": "^7.0.0"
576 }
577 },
578 "@babel/plugin-transform-async-to-generator": {
579 "version": "7.1.0",
580 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.1.0.tgz",
581 "integrity": "sha512-rNmcmoQ78IrvNCIt/R9U+cixUHeYAzgusTFgIAv+wQb9HJU4szhpDD6e5GCACmj/JP5KxuCwM96bX3L9v4ZN/g==",
582 "dev": true,
583 "requires": {
584 "@babel/helper-module-imports": "^7.0.0",
585 "@babel/helper-plugin-utils": "^7.0.0",
586 "@babel/helper-remap-async-to-generator": "^7.1.0"
587 }
588 },
589 "@babel/plugin-transform-block-scoped-functions": {
590 "version": "7.0.0",
591 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0.tgz",
592 "integrity": "sha512-AOBiyUp7vYTqz2Jibe1UaAWL0Hl9JUXEgjFvvvcSc9MVDItv46ViXFw2F7SVt1B5k+KWjl44eeXOAk3UDEaJjQ==",
593 "dev": true,
594 "requires": {
595 "@babel/helper-plugin-utils": "^7.0.0"
596 }
597 },
598 "@babel/plugin-transform-block-scoping": {
599 "version": "7.0.0",
600 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0.tgz",
601 "integrity": "sha512-GWEMCrmHQcYWISilUrk9GDqH4enf3UmhOEbNbNrlNAX1ssH3MsS1xLOS6rdjRVPgA7XXVPn87tRkdTEoA/dxEg==",
602 "dev": true,
603 "requires": {
604 "@babel/helper-plugin-utils": "^7.0.0",
605 "lodash": "^4.17.10"
606 }
607 },
608 "@babel/plugin-transform-classes": {
609 "version": "7.1.0",
610 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.1.0.tgz",
611 "integrity": "sha512-rNaqoD+4OCBZjM7VaskladgqnZ1LO6o2UxuWSDzljzW21pN1KXkB7BstAVweZdxQkHAujps5QMNOTWesBciKFg==",
612 "dev": true,
613 "requires": {
614 "@babel/helper-annotate-as-pure": "^7.0.0",
615 "@babel/helper-define-map": "^7.1.0",
616 "@babel/helper-function-name": "^7.1.0",
617 "@babel/helper-optimise-call-expression": "^7.0.0",
618 "@babel/helper-plugin-utils": "^7.0.0",
619 "@babel/helper-replace-supers": "^7.1.0",
620 "@babel/helper-split-export-declaration": "^7.0.0",
621 "globals": "^11.1.0"
622 },
623 "dependencies": {
624 "globals": {
625 "version": "11.8.0",
626 "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz",
627 "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==",
628 "dev": true
629 }
630 }
631 },
632 "@babel/plugin-transform-computed-properties": {
633 "version": "7.0.0",
634 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0.tgz",
635 "integrity": "sha512-ubouZdChNAv4AAWAgU7QKbB93NU5sHwInEWfp+/OzJKA02E6Woh9RVoX4sZrbRwtybky/d7baTUqwFx+HgbvMA==",
636 "dev": true,
637 "requires": {
638 "@babel/helper-plugin-utils": "^7.0.0"
639 }
640 },
641 "@babel/plugin-transform-destructuring": {
642 "version": "7.1.3",
643 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.1.3.tgz",
644 "integrity": "sha512-Mb9M4DGIOspH1ExHOUnn2UUXFOyVTiX84fXCd+6B5iWrQg/QMeeRmSwpZ9lnjYLSXtZwiw80ytVMr3zue0ucYw==",
645 "dev": true,
646 "requires": {
647 "@babel/helper-plugin-utils": "^7.0.0"
648 }
649 },
650 "@babel/plugin-transform-dotall-regex": {
651 "version": "7.0.0",
652 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0.tgz",
653 "integrity": "sha512-00THs8eJxOJUFVx1w8i1MBF4XH4PsAjKjQ1eqN/uCH3YKwP21GCKfrn6YZFZswbOk9+0cw1zGQPHVc1KBlSxig==",
654 "dev": true,
655 "requires": {
656 "@babel/helper-plugin-utils": "^7.0.0",
657 "@babel/helper-regex": "^7.0.0",
658 "regexpu-core": "^4.1.3"
659 }
660 },
661 "@babel/plugin-transform-duplicate-keys": {
662 "version": "7.0.0",
663 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0.tgz",
664 "integrity": "sha512-w2vfPkMqRkdxx+C71ATLJG30PpwtTpW7DDdLqYt2acXU7YjztzeWW2Jk1T6hKqCLYCcEA5UQM/+xTAm+QCSnuQ==",
665 "dev": true,
666 "requires": {
667 "@babel/helper-plugin-utils": "^7.0.0"
668 }
669 },
670 "@babel/plugin-transform-exponentiation-operator": {
671 "version": "7.1.0",
672 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.1.0.tgz",
673 "integrity": "sha512-uZt9kD1Pp/JubkukOGQml9tqAeI8NkE98oZnHZ2qHRElmeKCodbTZgOEUtujSCSLhHSBWbzNiFSDIMC4/RBTLQ==",
674 "dev": true,
675 "requires": {
676 "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0",
677 "@babel/helper-plugin-utils": "^7.0.0"
678 }
679 },
680 "@babel/plugin-transform-for-of": {
681 "version": "7.0.0",
682 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0.tgz",
683 "integrity": "sha512-TlxKecN20X2tt2UEr2LNE6aqA0oPeMT1Y3cgz8k4Dn1j5ObT8M3nl9aA37LLklx0PBZKETC9ZAf9n/6SujTuXA==",
684 "dev": true,
685 "requires": {
686 "@babel/helper-plugin-utils": "^7.0.0"
687 }
688 },
689 "@babel/plugin-transform-function-name": {
690 "version": "7.1.0",
691 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.1.0.tgz",
692 "integrity": "sha512-VxOa1TMlFMtqPW2IDYZQaHsFrq/dDoIjgN098NowhexhZcz3UGlvPgZXuE1jEvNygyWyxRacqDpCZt+par1FNg==",
693 "dev": true,
694 "requires": {
695 "@babel/helper-function-name": "^7.1.0",
696 "@babel/helper-plugin-utils": "^7.0.0"
697 }
698 },
699 "@babel/plugin-transform-literals": {
700 "version": "7.0.0",
701 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0.tgz",
702 "integrity": "sha512-1NTDBWkeNXgpUcyoVFxbr9hS57EpZYXpje92zv0SUzjdu3enaRwF/l3cmyRnXLtIdyJASyiS6PtybK+CgKf7jA==",
703 "dev": true,
704 "requires": {
705 "@babel/helper-plugin-utils": "^7.0.0"
706 }
707 },
708 "@babel/plugin-transform-modules-amd": {
709 "version": "7.1.0",
710 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.1.0.tgz",
711 "integrity": "sha512-wt8P+xQ85rrnGNr2x1iV3DW32W8zrB6ctuBkYBbf5/ZzJY99Ob4MFgsZDFgczNU76iy9PWsy4EuxOliDjdKw6A==",
712 "dev": true,
713 "requires": {
714 "@babel/helper-module-transforms": "^7.1.0",
715 "@babel/helper-plugin-utils": "^7.0.0"
716 }
717 },
718 "@babel/plugin-transform-modules-commonjs": {
719 "version": "7.1.0",
720 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.1.0.tgz",
721 "integrity": "sha512-wtNwtMjn1XGwM0AXPspQgvmE6msSJP15CX2RVfpTSTNPLhKhaOjaIfBaVfj4iUZ/VrFSodcFedwtPg/NxwQlPA==",
722 "dev": true,
723 "requires": {
724 "@babel/helper-module-transforms": "^7.1.0",
725 "@babel/helper-plugin-utils": "^7.0.0",
726 "@babel/helper-simple-access": "^7.1.0"
727 }
728 },
729 "@babel/plugin-transform-modules-systemjs": {
730 "version": "7.1.3",
731 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.1.3.tgz",
732 "integrity": "sha512-PvTxgjxQAq4pvVUZF3mD5gEtVDuId8NtWkJsZLEJZMZAW3TvgQl1pmydLLN1bM8huHFVVU43lf0uvjQj9FRkKw==",
733 "dev": true,
734 "requires": {
735 "@babel/helper-hoist-variables": "^7.0.0",
736 "@babel/helper-plugin-utils": "^7.0.0"
737 }
738 },
739 "@babel/plugin-transform-modules-umd": {
740 "version": "7.1.0",
741 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.1.0.tgz",
742 "integrity": "sha512-enrRtn5TfRhMmbRwm7F8qOj0qEYByqUvTttPEGimcBH4CJHphjyK1Vg7sdU7JjeEmgSpM890IT/efS2nMHwYig==",
743 "dev": true,
744 "requires": {
745 "@babel/helper-module-transforms": "^7.1.0",
746 "@babel/helper-plugin-utils": "^7.0.0"
747 }
748 },
749 "@babel/plugin-transform-new-target": {
750 "version": "7.0.0",
751 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz",
752 "integrity": "sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw==",
753 "dev": true,
754 "requires": {
755 "@babel/helper-plugin-utils": "^7.0.0"
756 }
757 },
758 "@babel/plugin-transform-object-super": {
759 "version": "7.1.0",
760 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.1.0.tgz",
761 "integrity": "sha512-/O02Je1CRTSk2SSJaq0xjwQ8hG4zhZGNjE8psTsSNPXyLRCODv7/PBozqT5AmQMzp7MI3ndvMhGdqp9c96tTEw==",
762 "dev": true,
763 "requires": {
764 "@babel/helper-plugin-utils": "^7.0.0",
765 "@babel/helper-replace-supers": "^7.1.0"
766 }
767 },
768 "@babel/plugin-transform-parameters": {
769 "version": "7.1.0",
770 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.1.0.tgz",
771 "integrity": "sha512-vHV7oxkEJ8IHxTfRr3hNGzV446GAb+0hgbA7o/0Jd76s+YzccdWuTU296FOCOl/xweU4t/Ya4g41yWz80RFCRw==",
772 "dev": true,
773 "requires": {
774 "@babel/helper-call-delegate": "^7.1.0",
775 "@babel/helper-get-function-arity": "^7.0.0",
776 "@babel/helper-plugin-utils": "^7.0.0"
777 }
778 },
779 "@babel/plugin-transform-react-display-name": {
780 "version": "7.0.0",
781 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.0.0.tgz",
782 "integrity": "sha512-BX8xKuQTO0HzINxT6j/GiCwoJB0AOMs0HmLbEnAvcte8U8rSkNa/eSCAY+l1OA4JnCVq2jw2p6U8QQryy2fTPg==",
783 "dev": true,
784 "requires": {
785 "@babel/helper-plugin-utils": "^7.0.0"
786 }
787 },
788 "@babel/plugin-transform-react-jsx": {
789 "version": "7.0.0",
790 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.0.0.tgz",
791 "integrity": "sha512-0TMP21hXsSUjIQJmu/r7RiVxeFrXRcMUigbKu0BLegJK9PkYodHstaszcig7zxXfaBji2LYUdtqIkHs+hgYkJQ==",
792 "dev": true,
793 "requires": {
794 "@babel/helper-builder-react-jsx": "^7.0.0",
795 "@babel/helper-plugin-utils": "^7.0.0",
796 "@babel/plugin-syntax-jsx": "^7.0.0"
797 }
798 },
799 "@babel/plugin-transform-react-jsx-self": {
800 "version": "7.0.0",
801 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.0.0.tgz",
802 "integrity": "sha512-pymy+AK12WO4safW1HmBpwagUQRl9cevNX+82AIAtU1pIdugqcH+nuYP03Ja6B+N4gliAaKWAegIBL/ymALPHA==",
803 "dev": true,
804 "requires": {
805 "@babel/helper-plugin-utils": "^7.0.0",
806 "@babel/plugin-syntax-jsx": "^7.0.0"
807 }
808 },
809 "@babel/plugin-transform-react-jsx-source": {
810 "version": "7.0.0",
811 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.0.0.tgz",
812 "integrity": "sha512-OSeEpFJEH5dw/TtxTg4nijl4nHBbhqbKL94Xo/Y17WKIf2qJWeIk/QeXACF19lG1vMezkxqruwnTjVizaW7u7w==",
813 "dev": true,
814 "requires": {
815 "@babel/helper-plugin-utils": "^7.0.0",
816 "@babel/plugin-syntax-jsx": "^7.0.0"
817 }
818 },
819 "@babel/plugin-transform-regenerator": {
820 "version": "7.0.0",
821 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz",
822 "integrity": "sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw==",
823 "dev": true,
824 "requires": {
825 "regenerator-transform": "^0.13.3"
826 }
827 },
828 "@babel/plugin-transform-shorthand-properties": {
829 "version": "7.0.0",
830 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0.tgz",
831 "integrity": "sha512-g/99LI4vm5iOf5r1Gdxq5Xmu91zvjhEG5+yZDJW268AZELAu4J1EiFLnkSG3yuUsZyOipVOVUKoGPYwfsTymhw==",
832 "dev": true,
833 "requires": {
834 "@babel/helper-plugin-utils": "^7.0.0"
835 }
836 },
837 "@babel/plugin-transform-spread": {
838 "version": "7.0.0",
839 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0.tgz",
840 "integrity": "sha512-L702YFy2EvirrR4shTj0g2xQp7aNwZoWNCkNu2mcoU0uyzMl0XRwDSwzB/xp6DSUFiBmEXuyAyEN16LsgVqGGQ==",
841 "dev": true,
842 "requires": {
843 "@babel/helper-plugin-utils": "^7.0.0"
844 }
845 },
846 "@babel/plugin-transform-sticky-regex": {
847 "version": "7.0.0",
848 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0.tgz",
849 "integrity": "sha512-LFUToxiyS/WD+XEWpkx/XJBrUXKewSZpzX68s+yEOtIbdnsRjpryDw9U06gYc6klYEij/+KQVRnD3nz3AoKmjw==",
850 "dev": true,
851 "requires": {
852 "@babel/helper-plugin-utils": "^7.0.0",
853 "@babel/helper-regex": "^7.0.0"
854 }
855 },
856 "@babel/plugin-transform-template-literals": {
857 "version": "7.0.0",
858 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0.tgz",
859 "integrity": "sha512-vA6rkTCabRZu7Nbl9DfLZE1imj4tzdWcg5vtdQGvj+OH9itNNB6hxuRMHuIY8SGnEt1T9g5foqs9LnrHzsqEFg==",
860 "dev": true,
861 "requires": {
862 "@babel/helper-annotate-as-pure": "^7.0.0",
863 "@babel/helper-plugin-utils": "^7.0.0"
864 }
865 },
866 "@babel/plugin-transform-typeof-symbol": {
867 "version": "7.0.0",
868 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0.tgz",
869 "integrity": "sha512-1r1X5DO78WnaAIvs5uC48t41LLckxsYklJrZjNKcevyz83sF2l4RHbw29qrCPr/6ksFsdfRpT/ZgxNWHXRnffg==",
870 "dev": true,
871 "requires": {
872 "@babel/helper-plugin-utils": "^7.0.0"
873 }
874 },
875 "@babel/plugin-transform-unicode-regex": {
876 "version": "7.0.0",
877 "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0.tgz",
878 "integrity": "sha512-uJBrJhBOEa3D033P95nPHu3nbFwFE9ZgXsfEitzoIXIwqAZWk7uXcg06yFKXz9FSxBH5ucgU/cYdX0IV8ldHKw==",
879 "dev": true,
880 "requires": {
881 "@babel/helper-plugin-utils": "^7.0.0",
882 "@babel/helper-regex": "^7.0.0",
883 "regexpu-core": "^4.1.3"
884 }
885 },
886 "@babel/polyfill": {
887 "version": "7.0.0",
888 "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.0.0.tgz",
889 "integrity": "sha512-dnrMRkyyr74CRelJwvgnnSUDh2ge2NCTyHVwpOdvRMHtJUyxLtMAfhBN3s64pY41zdw0kgiLPh6S20eb1NcX6Q==",
890 "requires": {
891 "core-js": "^2.5.7",
892 "regenerator-runtime": "^0.11.1"
893 }
894 },
895 "@babel/preset-env": {
896 "version": "7.1.0",
897 "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.1.0.tgz",
898 "integrity": "sha512-ZLVSynfAoDHB/34A17/JCZbyrzbQj59QC1Anyueb4Bwjh373nVPq5/HMph0z+tCmcDjXDe+DlKQq9ywQuvWrQg==",
899 "dev": true,
900 "requires": {
901 "@babel/helper-module-imports": "^7.0.0",
902 "@babel/helper-plugin-utils": "^7.0.0",
903 "@babel/plugin-proposal-async-generator-functions": "^7.1.0",
904 "@babel/plugin-proposal-json-strings": "^7.0.0",
905 "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
906 "@babel/plugin-proposal-optional-catch-binding": "^7.0.0",
907 "@babel/plugin-proposal-unicode-property-regex": "^7.0.0",
908 "@babel/plugin-syntax-async-generators": "^7.0.0",
909 "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
910 "@babel/plugin-syntax-optional-catch-binding": "^7.0.0",
911 "@babel/plugin-transform-arrow-functions": "^7.0.0",
912 "@babel/plugin-transform-async-to-generator": "^7.1.0",
913 "@babel/plugin-transform-block-scoped-functions": "^7.0.0",
914 "@babel/plugin-transform-block-scoping": "^7.0.0",
915 "@babel/plugin-transform-classes": "^7.1.0",
916 "@babel/plugin-transform-computed-properties": "^7.0.0",
917 "@babel/plugin-transform-destructuring": "^7.0.0",
918 "@babel/plugin-transform-dotall-regex": "^7.0.0",
919 "@babel/plugin-transform-duplicate-keys": "^7.0.0",
920 "@babel/plugin-transform-exponentiation-operator": "^7.1.0",
921 "@babel/plugin-transform-for-of": "^7.0.0",
922 "@babel/plugin-transform-function-name": "^7.1.0",
923 "@babel/plugin-transform-literals": "^7.0.0",
924 "@babel/plugin-transform-modules-amd": "^7.1.0",
925 "@babel/plugin-transform-modules-commonjs": "^7.1.0",
926 "@babel/plugin-transform-modules-systemjs": "^7.0.0",
927 "@babel/plugin-transform-modules-umd": "^7.1.0",
928 "@babel/plugin-transform-new-target": "^7.0.0",
929 "@babel/plugin-transform-object-super": "^7.1.0",
930 "@babel/plugin-transform-parameters": "^7.1.0",
931 "@babel/plugin-transform-regenerator": "^7.0.0",
932 "@babel/plugin-transform-shorthand-properties": "^7.0.0",
933 "@babel/plugin-transform-spread": "^7.0.0",
934 "@babel/plugin-transform-sticky-regex": "^7.0.0",
935 "@babel/plugin-transform-template-literals": "^7.0.0",
936 "@babel/plugin-transform-typeof-symbol": "^7.0.0",
937 "@babel/plugin-transform-unicode-regex": "^7.0.0",
938 "browserslist": "^4.1.0",
939 "invariant": "^2.2.2",
940 "js-levenshtein": "^1.1.3",
941 "semver": "^5.3.0"
942 }
943 },
944 "@babel/preset-react": {
945 "version": "7.0.0",
946 "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.0.0.tgz",
947 "integrity": "sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w==",
948 "dev": true,
949 "requires": {
950 "@babel/helper-plugin-utils": "^7.0.0",
951 "@babel/plugin-transform-react-display-name": "^7.0.0",
952 "@babel/plugin-transform-react-jsx": "^7.0.0",
953 "@babel/plugin-transform-react-jsx-self": "^7.0.0",
954 "@babel/plugin-transform-react-jsx-source": "^7.0.0"
955 }
956 },
957 "@babel/register": {
958 "version": "7.0.0",
959 "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.0.0.tgz",
960 "integrity": "sha512-f/+CRmaCe7rVEvcvPvxeA8j5aJhHC3aJie7YuqcMDhUOuyWLA7J/aNrTaHIzoWPEhpHA54mec4Mm8fv8KBlv3g==",
961 "dev": true,
962 "requires": {
963 "core-js": "^2.5.7",
964 "find-cache-dir": "^1.0.0",
965 "home-or-tmp": "^3.0.0",
966 "lodash": "^4.17.10",
967 "mkdirp": "^0.5.1",
968 "pirates": "^4.0.0",
969 "source-map-support": "^0.5.9"
970 },
971 "dependencies": {
972 "find-cache-dir": {
973 "version": "1.0.0",
974 "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
975 "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
976 "dev": true,
977 "requires": {
978 "commondir": "^1.0.1",
979 "make-dir": "^1.0.0",
980 "pkg-dir": "^2.0.0"
981 }
982 },
983 "find-up": {
984 "version": "2.1.0",
985 "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
986 "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
987 "dev": true,
988 "requires": {
989 "locate-path": "^2.0.0"
990 }
991 },
992 "home-or-tmp": {
993 "version": "3.0.0",
994 "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-3.0.0.tgz",
995 "integrity": "sha1-V6j+JM8zzdUkhgoVgh3cJchmcfs=",
996 "dev": true
997 },
998 "pkg-dir": {
999 "version": "2.0.0",
1000 "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
1001 "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
1002 "dev": true,
1003 "requires": {
1004 "find-up": "^2.1.0"
1005 }
1006 }
1007 }
1008 },
1009 "@babel/runtime": {
1010 "version": "7.1.2",
1011 "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.1.2.tgz",
1012 "integrity": "sha512-Y3SCjmhSupzFB6wcv1KmmFucH6gDVnI30WjOcicV10ju0cZjak3Jcs67YLIXBrmZYw1xCrVeJPbycFwrqNyxpg==",
1013 "requires": {
1014 "regenerator-runtime": "^0.12.0"
1015 },
1016 "dependencies": {
1017 "regenerator-runtime": {
1018 "version": "0.12.1",
1019 "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz",
1020 "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg=="
1021 }
1022 }
1023 },
1024 "@babel/template": {
1025 "version": "7.1.2",
1026 "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.2.tgz",
1027 "integrity": "sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag==",
1028 "dev": true,
1029 "requires": {
1030 "@babel/code-frame": "^7.0.0",
1031 "@babel/parser": "^7.1.2",
1032 "@babel/types": "^7.1.2"
1033 }
1034 },
1035 "@babel/traverse": {
1036 "version": "7.1.4",
1037 "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.4.tgz",
1038 "integrity": "sha512-my9mdrAIGdDiSVBuMjpn/oXYpva0/EZwWL3sm3Wcy/AVWO2eXnsoZruOT9jOGNRXU8KbCIu5zsKnXcAJ6PcV6Q==",
1039 "dev": true,
1040 "requires": {
1041 "@babel/code-frame": "^7.0.0",
1042 "@babel/generator": "^7.1.3",
1043 "@babel/helper-function-name": "^7.1.0",
1044 "@babel/helper-split-export-declaration": "^7.0.0",
1045 "@babel/parser": "^7.1.3",
1046 "@babel/types": "^7.1.3",
1047 "debug": "^3.1.0",
1048 "globals": "^11.1.0",
1049 "lodash": "^4.17.10"
1050 },
1051 "dependencies": {
1052 "debug": {
1053 "version": "3.2.6",
1054 "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
1055 "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
1056 "dev": true,
1057 "requires": {
1058 "ms": "^2.1.1"
1059 }
1060 },
1061 "globals": {
1062 "version": "11.8.0",
1063 "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz",
1064 "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==",
1065 "dev": true
1066 },
1067 "ms": {
1068 "version": "2.1.1",
1069 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
1070 "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
1071 "dev": true
1072 }
1073 }
1074 },
1075 "@babel/types": {
1076 "version": "7.1.3",
1077 "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.3.tgz",
1078 "integrity": "sha512-RpPOVfK+yatXyn8n4PB1NW6k9qjinrXrRR8ugBN8fD6hCy5RXI6PSbVqpOJBO9oSaY7Nom4ohj35feb0UR9hSA==",
1079 "dev": true,
1080 "requires": {
1081 "esutils": "^2.0.2",
1082 "lodash": "^4.17.10",
1083 "to-fast-properties": "^2.0.0"
1084 },
1085 "dependencies": {
1086 "to-fast-properties": {
1087 "version": "2.0.0",
1088 "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
1089 "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
1090 "dev": true
1091 }
1092 }
1093 },
1094 "@meetfranz/electron-notification-state": {
1095 "version": "1.0.0",
1096 "resolved": "https://registry.npmjs.org/@meetfranz/electron-notification-state/-/electron-notification-state-1.0.0.tgz",
1097 "integrity": "sha512-0gCEV7DfoasuMA9uY9sN1ufrzSFg/fXB0gHbxagid8EilAjGsbkSSLSl2rweZcIBz+ZgR35Yp7DlAVw/I3cIfA==",
1098 "requires": {
1099 "macos-notification-state": "^1.1.0",
1100 "windows-notification-state": "^1.3.0",
1101 "windows-quiet-hours": "^1.2.2"
1102 }
1103 },
1104 "@types/node": {
1105 "version": "8.10.38",
1106 "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.38.tgz",
1107 "integrity": "sha512-EibsnbJerd0hBFaDjJStFrVbVBAtOy4dgL8zZFw0uOvPqzBAX59Ci8cgjg3+RgJIWhsB5A4c+pi+D4P9tQQh/A==",
1108 "dev": true
1109 },
1110 "JSONStream": {
1111 "version": "1.3.5",
1112 "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
1113 "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
1114 "requires": {
1115 "jsonparse": "^1.2.0",
1116 "through": ">=2.2.7 <3"
1117 }
1118 },
1119 "abbrev": {
1120 "version": "1.1.1",
1121 "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
1122 "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
1123 "dev": true
1124 },
1125 "accepts": {
1126 "version": "1.0.7",
1127 "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.0.7.tgz",
1128 "integrity": "sha1-W1AftPBwQwmWTM2wSBclQSCNqxo=",
1129 "dev": true,
1130 "requires": {
1131 "mime-types": "~1.0.0",
1132 "negotiator": "0.4.7"
1133 },
1134 "dependencies": {
1135 "mime-types": {
1136 "version": "1.0.2",
1137 "resolved": "http://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz",
1138 "integrity": "sha1-mVrhOSq4r/y/yyZB3QVOlDwNXc4=",
1139 "dev": true
1140 }
1141 }
1142 },
1143 "acorn": {
1144 "version": "5.7.3",
1145 "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
1146 "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
1147 "dev": true
1148 },
1149 "acorn-jsx": {
1150 "version": "3.0.1",
1151 "resolved": "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
1152 "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
1153 "dev": true,
1154 "requires": {
1155 "acorn": "^3.0.4"
1156 },
1157 "dependencies": {
1158 "acorn": {
1159 "version": "3.3.0",
1160 "resolved": "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
1161 "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
1162 "dev": true
1163 }
1164 }
1165 },
1166 "address-rfc2822": {
1167 "version": "2.0.4",
1168 "resolved": "https://registry.npmjs.org/address-rfc2822/-/address-rfc2822-2.0.4.tgz",
1169 "integrity": "sha1-Lb07jWwt4elXwahUncAS1Au8NDE=",
1170 "requires": {
1171 "email-addresses": "^3.0.0"
1172 }
1173 },
1174 "after": {
1175 "version": "0.8.2",
1176 "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
1177 "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
1178 "dev": true
1179 },
1180 "agent-base": {
1181 "version": "4.2.1",
1182 "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
1183 "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
1184 "requires": {
1185 "es6-promisify": "^5.0.0"
1186 }
1187 },
1188 "agentkeepalive": {
1189 "version": "3.5.2",
1190 "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz",
1191 "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==",
1192 "requires": {
1193 "humanize-ms": "^1.2.1"
1194 }
1195 },
1196 "ajv": {
1197 "version": "5.5.2",
1198 "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
1199 "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
1200 "dev": true,
1201 "requires": {
1202 "co": "^4.6.0",
1203 "fast-deep-equal": "^1.0.0",
1204 "fast-json-stable-stringify": "^2.0.0",
1205 "json-schema-traverse": "^0.3.0"
1206 }
1207 },
1208 "ajv-keywords": {
1209 "version": "2.1.1",
1210 "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
1211 "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
1212 "dev": true
1213 },
1214 "amdefine": {
1215 "version": "1.0.1",
1216 "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
1217 "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
1218 "dev": true
1219 },
1220 "ansi-align": {
1221 "version": "2.0.0",
1222 "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
1223 "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
1224 "dev": true,
1225 "requires": {
1226 "string-width": "^2.0.0"
1227 },
1228 "dependencies": {
1229 "ansi-regex": {
1230 "version": "3.0.0",
1231 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
1232 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
1233 "dev": true
1234 },
1235 "is-fullwidth-code-point": {
1236 "version": "2.0.0",
1237 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
1238 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
1239 "dev": true
1240 },
1241 "string-width": {
1242 "version": "2.1.1",
1243 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
1244 "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
1245 "dev": true,
1246 "requires": {
1247 "is-fullwidth-code-point": "^2.0.0",
1248 "strip-ansi": "^4.0.0"
1249 }
1250 },
1251 "strip-ansi": {
1252 "version": "4.0.0",
1253 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
1254 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
1255 "dev": true,
1256 "requires": {
1257 "ansi-regex": "^3.0.0"
1258 }
1259 }
1260 }
1261 },
1262 "ansi-colors": {
1263 "version": "1.1.0",
1264 "resolved": "http://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz",
1265 "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==",
1266 "dev": true,
1267 "requires": {
1268 "ansi-wrap": "^0.1.0"
1269 }
1270 },
1271 "ansi-escapes": {
1272 "version": "3.1.0",
1273 "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
1274 "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==",
1275 "dev": true
1276 },
1277 "ansi-gray": {
1278 "version": "0.1.1",
1279 "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz",
1280 "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=",
1281 "requires": {
1282 "ansi-wrap": "0.1.0"
1283 }
1284 },
1285 "ansi-regex": {
1286 "version": "2.1.1",
1287 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
1288 "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
1289 },
1290 "ansi-styles": {
1291 "version": "2.2.1",
1292 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
1293 "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
1294 },
1295 "ansi-wrap": {
1296 "version": "0.1.0",
1297 "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
1298 "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768="
1299 },
1300 "anymatch": {
1301 "version": "2.0.0",
1302 "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
1303 "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
1304 "dev": true,
1305 "requires": {
1306 "micromatch": "^3.1.4",
1307 "normalize-path": "^2.1.1"
1308 }
1309 },
1310 "app-builder-bin": {
1311 "version": "2.4.1",
1312 "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-2.4.1.tgz",
1313 "integrity": "sha512-MZ1enBOVLujeKCi/rH3FJaIxjwAPUFRVuwHI3uG7lHj3Zyk0eP/QqFxz6PM9I9K155Yc7N/01bP1sh+ChzjxWw==",
1314 "dev": true
1315 },
1316 "app-builder-lib": {
1317 "version": "20.34.0",
1318 "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-20.34.0.tgz",
1319 "integrity": "sha512-QJbprKnhq0uy8JleWLSW9u3sX1QBIVr8sEsLriTc52FWLWC1+ls28fPhFGqGBAzrMLkJCz15CPZm7Qot64I5RA==",
1320 "dev": true,
1321 "requires": {
1322 "7zip-bin": "~4.1.0",
1323 "app-builder-bin": "2.4.1",
1324 "async-exit-hook": "^2.0.1",
1325 "bluebird-lst": "^1.0.6",
1326 "builder-util": "9.1.0",
1327 "builder-util-runtime": "7.1.0",
1328 "chromium-pickle-js": "^0.2.0",
1329 "debug": "^4.1.0",
1330 "ejs": "^2.6.1",
1331 "electron-osx-sign": "0.4.11",
1332 "electron-publish": "20.33.2",
1333 "fs-extra-p": "^7.0.0",
1334 "hosted-git-info": "^2.7.1",
1335 "is-ci": "^1.2.1",
1336 "isbinaryfile": "^3.0.3",
1337 "js-yaml": "^3.12.0",
1338 "lazy-val": "^1.0.3",
1339 "minimatch": "^3.0.4",
1340 "normalize-package-data": "^2.4.0",
1341 "plist": "^3.0.1",
1342 "read-config-file": "3.2.0",
1343 "sanitize-filename": "^1.6.1",
1344 "semver": "^5.6.0",
1345 "temp-file": "^3.2.0"
1346 },
1347 "dependencies": {
1348 "debug": {
1349 "version": "4.1.0",
1350 "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz",
1351 "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==",
1352 "dev": true,
1353 "requires": {
1354 "ms": "^2.1.1"
1355 }
1356 },
1357 "ms": {
1358 "version": "2.1.1",
1359 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
1360 "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
1361 "dev": true
1362 }
1363 }
1364 },
1365 "append-buffer": {
1366 "version": "1.0.2",
1367 "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz",
1368 "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=",
1369 "dev": true,
1370 "requires": {
1371 "buffer-equal": "^1.0.0"
1372 }
1373 },
1374 "applescript": {
1375 "version": "1.0.0",
1376 "resolved": "https://registry.npmjs.org/applescript/-/applescript-1.0.0.tgz",
1377 "integrity": "sha1-u4evVoytA0pOSMS9r2Bno6JwExc="
1378 },
1379 "aproba": {
1380 "version": "1.2.0",
1381 "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
1382 "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
1383 },
1384 "archy": {
1385 "version": "1.0.0",
1386 "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
1387 "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA="
1388 },
1389 "are-we-there-yet": {
1390 "version": "1.1.5",
1391 "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
1392 "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
1393 "dev": true,
1394 "requires": {
1395 "delegates": "^1.0.0",
1396 "readable-stream": "^2.0.6"
1397 }
1398 },
1399 "argparse": {
1400 "version": "1.0.10",
1401 "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
1402 "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
1403 "requires": {
1404 "sprintf-js": "~1.0.2"
1405 }
1406 },
1407 "arr-diff": {
1408 "version": "4.0.0",
1409 "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
1410 "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
1411 },
1412 "arr-filter": {
1413 "version": "1.1.2",
1414 "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz",
1415 "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=",
1416 "dev": true,
1417 "requires": {
1418 "make-iterator": "^1.0.0"
1419 }
1420 },
1421 "arr-flatten": {
1422 "version": "1.1.0",
1423 "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
1424 "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
1425 },
1426 "arr-map": {
1427 "version": "2.0.2",
1428 "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz",
1429 "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=",
1430 "dev": true,
1431 "requires": {
1432 "make-iterator": "^1.0.0"
1433 }
1434 },
1435 "arr-union": {
1436 "version": "3.1.0",
1437 "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
1438 "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
1439 },
1440 "array-differ": {
1441 "version": "1.0.0",
1442 "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
1443 "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
1444 "dev": true
1445 },
1446 "array-each": {
1447 "version": "1.0.1",
1448 "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
1449 "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8="
1450 },
1451 "array-find-index": {
1452 "version": "1.0.2",
1453 "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
1454 "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
1455 "dev": true
1456 },
1457 "array-initial": {
1458 "version": "1.1.0",
1459 "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz",
1460 "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=",
1461 "dev": true,
1462 "requires": {
1463 "array-slice": "^1.0.0",
1464 "is-number": "^4.0.0"
1465 },
1466 "dependencies": {
1467 "is-number": {
1468 "version": "4.0.0",
1469 "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
1470 "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
1471 "dev": true
1472 }
1473 }
1474 },
1475 "array-last": {
1476 "version": "1.3.0",
1477 "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz",
1478 "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==",
1479 "dev": true,
1480 "requires": {
1481 "is-number": "^4.0.0"
1482 },
1483 "dependencies": {
1484 "is-number": {
1485 "version": "4.0.0",
1486 "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
1487 "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
1488 "dev": true
1489 }
1490 }
1491 },
1492 "array-slice": {
1493 "version": "1.1.0",
1494 "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
1495 "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w=="
1496 },
1497 "array-sort": {
1498 "version": "1.0.0",
1499 "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz",
1500 "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==",
1501 "dev": true,
1502 "requires": {
1503 "default-compare": "^1.0.0",
1504 "get-value": "^2.0.6",
1505 "kind-of": "^5.0.2"
1506 },
1507 "dependencies": {
1508 "kind-of": {
1509 "version": "5.1.0",
1510 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
1511 "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
1512 "dev": true
1513 }
1514 }
1515 },
1516 "array-union": {
1517 "version": "1.0.2",
1518 "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
1519 "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
1520 "dev": true,
1521 "requires": {
1522 "array-uniq": "^1.0.1"
1523 }
1524 },
1525 "array-uniq": {
1526 "version": "1.0.3",
1527 "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
1528 "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
1529 "dev": true
1530 },
1531 "array-unique": {
1532 "version": "0.3.2",
1533 "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
1534 "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
1535 },
1536 "array.prototype.find": {
1537 "version": "2.0.4",
1538 "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.0.4.tgz",
1539 "integrity": "sha1-VWpcU2LAhkgyPdrrnenRS8GGTJA=",
1540 "dev": true,
1541 "requires": {
1542 "define-properties": "^1.1.2",
1543 "es-abstract": "^1.7.0"
1544 }
1545 },
1546 "arraybuffer.slice": {
1547 "version": "0.0.6",
1548 "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz",
1549 "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=",
1550 "dev": true
1551 },
1552 "arrify": {
1553 "version": "1.0.1",
1554 "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
1555 "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
1556 "dev": true
1557 },
1558 "asap": {
1559 "version": "2.0.6",
1560 "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
1561 "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
1562 },
1563 "asn1": {
1564 "version": "0.2.4",
1565 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
1566 "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
1567 "dev": true,
1568 "requires": {
1569 "safer-buffer": "~2.1.0"
1570 }
1571 },
1572 "assert-plus": {
1573 "version": "1.0.0",
1574 "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
1575 "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
1576 "dev": true
1577 },
1578 "assign-symbols": {
1579 "version": "1.0.0",
1580 "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
1581 "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
1582 },
1583 "async": {
1584 "version": "0.1.22",
1585 "resolved": "http://registry.npmjs.org/async/-/async-0.1.22.tgz",
1586 "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE="
1587 },
1588 "async-done": {
1589 "version": "1.3.1",
1590 "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.1.tgz",
1591 "integrity": "sha512-R1BaUeJ4PMoLNJuk+0tLJgjmEqVsdN118+Z8O+alhnQDQgy0kmD5Mqi0DNEmMx2LM0Ed5yekKu+ZXYvIHceicg==",
1592 "dev": true,
1593 "requires": {
1594 "end-of-stream": "^1.1.0",
1595 "once": "^1.3.2",
1596 "process-nextick-args": "^1.0.7",
1597 "stream-exhaust": "^1.0.1"
1598 }
1599 },
1600 "async-each": {
1601 "version": "1.0.1",
1602 "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
1603 "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
1604 "dev": true
1605 },
1606 "async-exit-hook": {
1607 "version": "2.0.1",
1608 "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz",
1609 "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==",
1610 "dev": true
1611 },
1612 "async-foreach": {
1613 "version": "0.1.3",
1614 "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
1615 "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
1616 "dev": true
1617 },
1618 "async-settle": {
1619 "version": "1.0.0",
1620 "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz",
1621 "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=",
1622 "dev": true,
1623 "requires": {
1624 "async-done": "^1.2.2"
1625 }
1626 },
1627 "asynckit": {
1628 "version": "0.4.0",
1629 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
1630 "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
1631 "dev": true
1632 },
1633 "atob": {
1634 "version": "2.1.2",
1635 "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
1636 "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
1637 },
1638 "attr-accept": {
1639 "version": "1.1.3",
1640 "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-1.1.3.tgz",
1641 "integrity": "sha512-iT40nudw8zmCweivz6j58g+RT33I4KbaIvRUhjNmDwO2WmsQUxFEZZYZ5w3vXe5x5MX9D7mfvA/XaLOZYFR9EQ==",
1642 "requires": {
1643 "core-js": "^2.5.0"
1644 }
1645 },
1646 "auto-launch": {
1647 "version": "git+https://github.com/meetfranz/node-auto-launch.git#b90a0470467eb84435e6554ae9db1e2c6db79e61",
1648 "from": "git+https://github.com/meetfranz/node-auto-launch.git",
1649 "requires": {
1650 "applescript": "^1.0.0",
1651 "mkdirp": "^0.5.1",
1652 "path-is-absolute": "^1.0.0",
1653 "untildify": "^3.0.2",
1654 "winreg": "1.2.2"
1655 }
1656 },
1657 "aws-sign2": {
1658 "version": "0.7.0",
1659 "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
1660 "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
1661 "dev": true
1662 },
1663 "aws4": {
1664 "version": "1.8.0",
1665 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
1666 "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
1667 "dev": true
1668 },
1669 "babel-code-frame": {
1670 "version": "6.26.0",
1671 "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
1672 "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
1673 "dev": true,
1674 "requires": {
1675 "chalk": "^1.1.3",
1676 "esutils": "^2.0.2",
1677 "js-tokens": "^3.0.2"
1678 },
1679 "dependencies": {
1680 "js-tokens": {
1681 "version": "3.0.2",
1682 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
1683 "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
1684 "dev": true
1685 }
1686 }
1687 },
1688 "babel-eslint": {
1689 "version": "10.0.1",
1690 "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.1.tgz",
1691 "integrity": "sha512-z7OT1iNV+TjOwHNLLyJk+HN+YVWX+CLE6fPD2SymJZOZQBs+QIexFjhm4keGTm8MW9xr4EC9Q0PbaLB24V5GoQ==",
1692 "dev": true,
1693 "requires": {
1694 "@babel/code-frame": "^7.0.0",
1695 "@babel/parser": "^7.0.0",
1696 "@babel/traverse": "^7.0.0",
1697 "@babel/types": "^7.0.0",
1698 "eslint-scope": "3.7.1",
1699 "eslint-visitor-keys": "^1.0.0"
1700 },
1701 "dependencies": {
1702 "eslint-scope": {
1703 "version": "3.7.1",
1704 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
1705 "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
1706 "dev": true,
1707 "requires": {
1708 "esrecurse": "^4.1.0",
1709 "estraverse": "^4.1.1"
1710 }
1711 }
1712 }
1713 },
1714 "babel-runtime": {
1715 "version": "6.26.0",
1716 "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
1717 "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
1718 "requires": {
1719 "core-js": "^2.4.0",
1720 "regenerator-runtime": "^0.11.0"
1721 },
1722 "dependencies": {
1723 "regenerator-runtime": {
1724 "version": "0.11.1",
1725 "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
1726 "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
1727 }
1728 }
1729 },
1730 "bach": {
1731 "version": "1.2.0",
1732 "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz",
1733 "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=",
1734 "dev": true,
1735 "requires": {
1736 "arr-filter": "^1.1.1",
1737 "arr-flatten": "^1.0.1",
1738 "arr-map": "^2.0.0",
1739 "array-each": "^1.0.0",
1740 "array-initial": "^1.0.0",
1741 "array-last": "^1.1.1",
1742 "async-done": "^1.2.2",
1743 "async-settle": "^1.0.0",
1744 "now-and-later": "^2.0.0"
1745 }
1746 },
1747 "backo2": {
1748 "version": "1.0.2",
1749 "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
1750 "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
1751 "dev": true
1752 },
1753 "balanced-match": {
1754 "version": "1.0.0",
1755 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
1756 "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
1757 },
1758 "base": {
1759 "version": "0.11.2",
1760 "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
1761 "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
1762 "requires": {
1763 "cache-base": "^1.0.1",
1764 "class-utils": "^0.3.5",
1765 "component-emitter": "^1.2.1",
1766 "define-property": "^1.0.0",
1767 "isobject": "^3.0.1",
1768 "mixin-deep": "^1.2.0",
1769 "pascalcase": "^0.1.1"
1770 },
1771 "dependencies": {
1772 "define-property": {
1773 "version": "1.0.0",
1774 "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
1775 "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
1776 "requires": {
1777 "is-descriptor": "^1.0.0"
1778 }
1779 },
1780 "is-accessor-descriptor": {
1781 "version": "1.0.0",
1782 "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
1783 "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
1784 "requires": {
1785 "kind-of": "^6.0.0"
1786 }
1787 },
1788 "is-data-descriptor": {
1789 "version": "1.0.0",
1790 "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
1791 "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
1792 "requires": {
1793 "kind-of": "^6.0.0"
1794 }
1795 },
1796 "is-descriptor": {
1797 "version": "1.0.2",
1798 "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
1799 "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
1800 "requires": {
1801 "is-accessor-descriptor": "^1.0.0",
1802 "is-data-descriptor": "^1.0.0",
1803 "kind-of": "^6.0.2"
1804 }
1805 }
1806 }
1807 },
1808 "base64-arraybuffer": {
1809 "version": "0.1.5",
1810 "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
1811 "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=",
1812 "dev": true
1813 },
1814 "base64-js": {
1815 "version": "1.3.0",
1816 "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
1817 "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==",
1818 "dev": true
1819 },
1820 "base64id": {
1821 "version": "1.0.0",
1822 "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
1823 "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=",
1824 "dev": true
1825 },
1826 "batch": {
1827 "version": "0.5.1",
1828 "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.1.tgz",
1829 "integrity": "sha1-NqS6tZTAUP17UHvKDbMMLZKvT/I=",
1830 "dev": true
1831 },
1832 "bcrypt-pbkdf": {
1833 "version": "1.0.2",
1834 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
1835 "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
1836 "dev": true,
1837 "requires": {
1838 "tweetnacl": "^0.14.3"
1839 }
1840 },
1841 "beeper": {
1842 "version": "1.1.1",
1843 "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
1844 "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=",
1845 "dev": true
1846 },
1847 "better-assert": {
1848 "version": "1.0.2",
1849 "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
1850 "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
1851 "dev": true,
1852 "requires": {
1853 "callsite": "1.0.0"
1854 }
1855 },
1856 "big.js": {
1857 "version": "3.2.0",
1858 "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
1859 "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
1860 "dev": true
1861 },
1862 "binary-extensions": {
1863 "version": "1.12.0",
1864 "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz",
1865 "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==",
1866 "dev": true
1867 },
1868 "bindings": {
1869 "version": "1.3.0",
1870 "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz",
1871 "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw=="
1872 },
1873 "blob": {
1874 "version": "0.0.4",
1875 "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz",
1876 "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=",
1877 "dev": true
1878 },
1879 "block-stream": {
1880 "version": "0.0.9",
1881 "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
1882 "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
1883 "dev": true,
1884 "requires": {
1885 "inherits": "~2.0.0"
1886 }
1887 },
1888 "bluebird": {
1889 "version": "3.5.3",
1890 "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz",
1891 "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw=="
1892 },
1893 "bluebird-lst": {
1894 "version": "1.0.6",
1895 "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.6.tgz",
1896 "integrity": "sha512-CBWFoPuUPpcvMUxfyr8DKdI5d4kjxFl1h39+VbKxP3KJWJHEsLtuT4pPLkjpxCGU6Ask21tvbnftWXdqIxYldQ==",
1897 "requires": {
1898 "bluebird": "^3.5.2"
1899 }
1900 },
1901 "boom": {
1902 "version": "2.10.1",
1903 "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
1904 "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
1905 "requires": {
1906 "hoek": "2.x.x"
1907 }
1908 },
1909 "boxen": {
1910 "version": "1.3.0",
1911 "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz",
1912 "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==",
1913 "dev": true,
1914 "requires": {
1915 "ansi-align": "^2.0.0",
1916 "camelcase": "^4.0.0",
1917 "chalk": "^2.0.1",
1918 "cli-boxes": "^1.0.0",
1919 "string-width": "^2.0.0",
1920 "term-size": "^1.2.0",
1921 "widest-line": "^2.0.0"
1922 },
1923 "dependencies": {
1924 "ansi-regex": {
1925 "version": "3.0.0",
1926 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
1927 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
1928 "dev": true
1929 },
1930 "ansi-styles": {
1931 "version": "3.2.1",
1932 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1933 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1934 "dev": true,
1935 "requires": {
1936 "color-convert": "^1.9.0"
1937 }
1938 },
1939 "camelcase": {
1940 "version": "4.1.0",
1941 "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
1942 "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
1943 "dev": true
1944 },
1945 "chalk": {
1946 "version": "2.4.1",
1947 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
1948 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
1949 "dev": true,
1950 "requires": {
1951 "ansi-styles": "^3.2.1",
1952 "escape-string-regexp": "^1.0.5",
1953 "supports-color": "^5.3.0"
1954 }
1955 },
1956 "is-fullwidth-code-point": {
1957 "version": "2.0.0",
1958 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
1959 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
1960 "dev": true
1961 },
1962 "string-width": {
1963 "version": "2.1.1",
1964 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
1965 "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
1966 "dev": true,
1967 "requires": {
1968 "is-fullwidth-code-point": "^2.0.0",
1969 "strip-ansi": "^4.0.0"
1970 }
1971 },
1972 "strip-ansi": {
1973 "version": "4.0.0",
1974 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
1975 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
1976 "dev": true,
1977 "requires": {
1978 "ansi-regex": "^3.0.0"
1979 }
1980 },
1981 "supports-color": {
1982 "version": "5.5.0",
1983 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1984 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1985 "dev": true,
1986 "requires": {
1987 "has-flag": "^3.0.0"
1988 }
1989 }
1990 }
1991 },
1992 "brace-expansion": {
1993 "version": "1.1.11",
1994 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1995 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1996 "requires": {
1997 "balanced-match": "^1.0.0",
1998 "concat-map": "0.0.1"
1999 }
2000 },
2001 "braces": {
2002 "version": "2.3.2",
2003 "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
2004 "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
2005 "requires": {
2006 "arr-flatten": "^1.1.0",
2007 "array-unique": "^0.3.2",
2008 "extend-shallow": "^2.0.1",
2009 "fill-range": "^4.0.0",
2010 "isobject": "^3.0.1",
2011 "repeat-element": "^1.1.2",
2012 "snapdragon": "^0.8.1",
2013 "snapdragon-node": "^2.0.1",
2014 "split-string": "^3.0.2",
2015 "to-regex": "^3.0.1"
2016 },
2017 "dependencies": {
2018 "extend-shallow": {
2019 "version": "2.0.1",
2020 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
2021 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
2022 "requires": {
2023 "is-extendable": "^0.1.0"
2024 }
2025 }
2026 }
2027 },
2028 "brcast": {
2029 "version": "3.0.1",
2030 "resolved": "https://registry.npmjs.org/brcast/-/brcast-3.0.1.tgz",
2031 "integrity": "sha512-eI3yqf9YEqyGl9PCNTR46MGvDylGtaHjalcz6Q3fAPnP/PhpKkkve52vFdfGpwp4VUvK6LUr4TQN+2stCrEwTg=="
2032 },
2033 "browserslist": {
2034 "version": "4.3.2",
2035 "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.2.tgz",
2036 "integrity": "sha512-wgZJWlYcDvsjRtf8socmAHf1nXq88KrQLB/gMYHGPUc2bzPWsgltSXwPWYHx4Sw0G9E/XGNW5wJDaWlpHRMpjA==",
2037 "dev": true,
2038 "requires": {
2039 "caniuse-lite": "^1.0.30000898",
2040 "electron-to-chromium": "^1.3.80",
2041 "node-releases": "^1.0.0-alpha.14"
2042 }
2043 },
2044 "buffer-alloc": {
2045 "version": "1.2.0",
2046 "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
2047 "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
2048 "dev": true,
2049 "requires": {
2050 "buffer-alloc-unsafe": "^1.1.0",
2051 "buffer-fill": "^1.0.0"
2052 }
2053 },
2054 "buffer-alloc-unsafe": {
2055 "version": "1.1.0",
2056 "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
2057 "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
2058 "dev": true
2059 },
2060 "buffer-equal": {
2061 "version": "1.0.0",
2062 "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz",
2063 "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=",
2064 "dev": true
2065 },
2066 "buffer-equal-constant-time": {
2067 "version": "1.0.1",
2068 "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
2069 "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
2070 },
2071 "buffer-fill": {
2072 "version": "1.0.0",
2073 "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
2074 "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
2075 "dev": true
2076 },
2077 "buffer-from": {
2078 "version": "1.1.1",
2079 "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
2080 "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
2081 },
2082 "builder-util": {
2083 "version": "9.1.0",
2084 "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-9.1.0.tgz",
2085 "integrity": "sha512-YbgEQDPIuIiVzMr5yqC39WQCNjVsE0Vs6aO2bx8X2Han5zwJhUMiPiIQeYxmHldILEwiccNZs+Lb6SgkvbtHoQ==",
2086 "dev": true,
2087 "requires": {
2088 "7zip-bin": "~4.1.0",
2089 "app-builder-bin": "2.4.1",
2090 "bluebird-lst": "^1.0.6",
2091 "builder-util-runtime": "^7.1.0",
2092 "chalk": "^2.4.1",
2093 "debug": "^4.1.0",
2094 "fs-extra-p": "^7.0.0",
2095 "is-ci": "^1.2.1",
2096 "js-yaml": "^3.12.0",
2097 "lazy-val": "^1.0.3",
2098 "semver": "^5.6.0",
2099 "source-map-support": "^0.5.9",
2100 "stat-mode": "^0.2.2",
2101 "temp-file": "^3.2.0"
2102 },
2103 "dependencies": {
2104 "ansi-styles": {
2105 "version": "3.2.1",
2106 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
2107 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
2108 "dev": true,
2109 "requires": {
2110 "color-convert": "^1.9.0"
2111 }
2112 },
2113 "chalk": {
2114 "version": "2.4.1",
2115 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
2116 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
2117 "dev": true,
2118 "requires": {
2119 "ansi-styles": "^3.2.1",
2120 "escape-string-regexp": "^1.0.5",
2121 "supports-color": "^5.3.0"
2122 }
2123 },
2124 "debug": {
2125 "version": "4.1.0",
2126 "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz",
2127 "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==",
2128 "dev": true,
2129 "requires": {
2130 "ms": "^2.1.1"
2131 }
2132 },
2133 "ms": {
2134 "version": "2.1.1",
2135 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
2136 "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
2137 "dev": true
2138 },
2139 "supports-color": {
2140 "version": "5.5.0",
2141 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2142 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2143 "dev": true,
2144 "requires": {
2145 "has-flag": "^3.0.0"
2146 }
2147 }
2148 }
2149 },
2150 "builder-util-runtime": {
2151 "version": "7.1.0",
2152 "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-7.1.0.tgz",
2153 "integrity": "sha512-TAsx651+q6bXYry21SzQblYQBUlfu4ixbDa6k2Nvts+kHO9ajyr0gDuHJsamxBaAyUUi5EldPABqsFERDEK3Hg==",
2154 "dev": true,
2155 "requires": {
2156 "bluebird-lst": "^1.0.6",
2157 "debug": "^4.1.0",
2158 "fs-extra-p": "^7.0.0",
2159 "sax": "^1.2.4"
2160 },
2161 "dependencies": {
2162 "debug": {
2163 "version": "4.1.0",
2164 "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz",
2165 "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==",
2166 "dev": true,
2167 "requires": {
2168 "ms": "^2.1.1"
2169 }
2170 },
2171 "ms": {
2172 "version": "2.1.1",
2173 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
2174 "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
2175 "dev": true
2176 }
2177 }
2178 },
2179 "builtin-modules": {
2180 "version": "1.1.1",
2181 "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
2182 "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8="
2183 },
2184 "builtins": {
2185 "version": "1.0.3",
2186 "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
2187 "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og="
2188 },
2189 "cacache": {
2190 "version": "11.3.1",
2191 "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.1.tgz",
2192 "integrity": "sha512-2PEw4cRRDu+iQvBTTuttQifacYjLPhET+SYO/gEFMy8uhi+jlJREDAjSF5FWSdV/Aw5h18caHA7vMTw2c+wDzA==",
2193 "requires": {
2194 "bluebird": "^3.5.1",
2195 "chownr": "^1.0.1",
2196 "figgy-pudding": "^3.1.0",
2197 "glob": "^7.1.2",
2198 "graceful-fs": "^4.1.11",
2199 "lru-cache": "^4.1.3",
2200 "mississippi": "^3.0.0",
2201 "mkdirp": "^0.5.1",
2202 "move-concurrently": "^1.0.1",
2203 "promise-inflight": "^1.0.1",
2204 "rimraf": "^2.6.2",
2205 "ssri": "^6.0.0",
2206 "unique-filename": "^1.1.0",
2207 "y18n": "^4.0.0"
2208 },
2209 "dependencies": {
2210 "y18n": {
2211 "version": "4.0.0",
2212 "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
2213 "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
2214 }
2215 }
2216 },
2217 "cache-base": {
2218 "version": "1.0.1",
2219 "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
2220 "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
2221 "requires": {
2222 "collection-visit": "^1.0.0",
2223 "component-emitter": "^1.2.1",
2224 "get-value": "^2.0.6",
2225 "has-value": "^1.0.0",
2226 "isobject": "^3.0.1",
2227 "set-value": "^2.0.0",
2228 "to-object-path": "^0.3.0",
2229 "union-value": "^1.0.0",
2230 "unset-value": "^1.0.0"
2231 }
2232 },
2233 "caller-callsite": {
2234 "version": "2.0.0",
2235 "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
2236 "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
2237 "dev": true,
2238 "requires": {
2239 "callsites": "^2.0.0"
2240 },
2241 "dependencies": {
2242 "callsites": {
2243 "version": "2.0.0",
2244 "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
2245 "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
2246 "dev": true
2247 }
2248 }
2249 },
2250 "caller-path": {
2251 "version": "0.1.0",
2252 "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
2253 "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
2254 "dev": true,
2255 "requires": {
2256 "callsites": "^0.2.0"
2257 }
2258 },
2259 "callsite": {
2260 "version": "1.0.0",
2261 "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
2262 "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
2263 "dev": true
2264 },
2265 "callsites": {
2266 "version": "0.2.0",
2267 "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
2268 "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
2269 "dev": true
2270 },
2271 "camelcase": {
2272 "version": "3.0.0",
2273 "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
2274 "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
2275 "dev": true
2276 },
2277 "camelcase-keys": {
2278 "version": "2.1.0",
2279 "resolved": "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
2280 "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
2281 "dev": true,
2282 "requires": {
2283 "camelcase": "^2.0.0",
2284 "map-obj": "^1.0.0"
2285 },
2286 "dependencies": {
2287 "camelcase": {
2288 "version": "2.1.1",
2289 "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
2290 "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
2291 "dev": true
2292 }
2293 }
2294 },
2295 "caniuse-lite": {
2296 "version": "1.0.30000898",
2297 "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000898.tgz",
2298 "integrity": "sha512-ytlTZqO4hYe4rNAJhMynUAIUI33jsP2Bb1two/9OVC39wZjPZ8exIO0eCLw5mqAtegOGiGF0kkTWTn3B02L+mw==",
2299 "dev": true
2300 },
2301 "capture-stack-trace": {
2302 "version": "1.0.1",
2303 "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz",
2304 "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==",
2305 "dev": true
2306 },
2307 "caseless": {
2308 "version": "0.12.0",
2309 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
2310 "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
2311 "dev": true
2312 },
2313 "chain-function": {
2314 "version": "1.0.1",
2315 "resolved": "https://registry.npmjs.org/chain-function/-/chain-function-1.0.1.tgz",
2316 "integrity": "sha512-SxltgMwL9uCko5/ZCLiyG2B7R9fY4pDZUw7hJ4MhirdjBLosoDqkWABi3XMucddHdLiFJMb7PD2MZifZriuMTg=="
2317 },
2318 "chalk": {
2319 "version": "1.1.3",
2320 "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
2321 "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
2322 "requires": {
2323 "ansi-styles": "^2.2.1",
2324 "escape-string-regexp": "^1.0.2",
2325 "has-ansi": "^2.0.0",
2326 "strip-ansi": "^3.0.0",
2327 "supports-color": "^2.0.0"
2328 }
2329 },
2330 "chardet": {
2331 "version": "0.4.2",
2332 "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
2333 "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
2334 "dev": true
2335 },
2336 "chokidar": {
2337 "version": "2.0.4",
2338 "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
2339 "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
2340 "dev": true,
2341 "requires": {
2342 "anymatch": "^2.0.0",
2343 "async-each": "^1.0.0",
2344 "braces": "^2.3.0",
2345 "fsevents": "^1.2.2",
2346 "glob-parent": "^3.1.0",
2347 "inherits": "^2.0.1",
2348 "is-binary-path": "^1.0.0",
2349 "is-glob": "^4.0.0",
2350 "lodash.debounce": "^4.0.8",
2351 "normalize-path": "^2.1.1",
2352 "path-is-absolute": "^1.0.0",
2353 "readdirp": "^2.0.0",
2354 "upath": "^1.0.5"
2355 }
2356 },
2357 "chownr": {
2358 "version": "1.1.1",
2359 "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz",
2360 "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g=="
2361 },
2362 "chromium-pickle-js": {
2363 "version": "0.2.0",
2364 "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz",
2365 "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=",
2366 "dev": true
2367 },
2368 "ci-info": {
2369 "version": "1.6.0",
2370 "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz",
2371 "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==",
2372 "dev": true
2373 },
2374 "circular-json": {
2375 "version": "0.3.3",
2376 "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
2377 "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
2378 "dev": true
2379 },
2380 "class-utils": {
2381 "version": "0.3.6",
2382 "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
2383 "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
2384 "requires": {
2385 "arr-union": "^3.1.0",
2386 "define-property": "^0.2.5",
2387 "isobject": "^3.0.0",
2388 "static-extend": "^0.1.1"
2389 },
2390 "dependencies": {
2391 "define-property": {
2392 "version": "0.2.5",
2393 "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
2394 "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
2395 "requires": {
2396 "is-descriptor": "^0.1.0"
2397 }
2398 }
2399 }
2400 },
2401 "classnames": {
2402 "version": "2.2.6",
2403 "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz",
2404 "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q=="
2405 },
2406 "cli-boxes": {
2407 "version": "1.0.0",
2408 "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
2409 "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=",
2410 "dev": true
2411 },
2412 "cli-cursor": {
2413 "version": "2.1.0",
2414 "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
2415 "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
2416 "dev": true,
2417 "requires": {
2418 "restore-cursor": "^2.0.0"
2419 }
2420 },
2421 "cli-spinners": {
2422 "version": "1.3.1",
2423 "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz",
2424 "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==",
2425 "dev": true
2426 },
2427 "cli-width": {
2428 "version": "2.2.0",
2429 "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
2430 "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
2431 "dev": true
2432 },
2433 "cliui": {
2434 "version": "3.2.0",
2435 "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
2436 "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
2437 "requires": {
2438 "string-width": "^1.0.1",
2439 "strip-ansi": "^3.0.1",
2440 "wrap-ansi": "^2.0.0"
2441 }
2442 },
2443 "clone": {
2444 "version": "2.1.2",
2445 "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
2446 "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
2447 "dev": true
2448 },
2449 "clone-buffer": {
2450 "version": "1.0.0",
2451 "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz",
2452 "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=",
2453 "dev": true
2454 },
2455 "clone-stats": {
2456 "version": "1.0.0",
2457 "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
2458 "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=",
2459 "dev": true
2460 },
2461 "cloneable-readable": {
2462 "version": "1.1.2",
2463 "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz",
2464 "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==",
2465 "dev": true,
2466 "requires": {
2467 "inherits": "^2.0.1",
2468 "process-nextick-args": "^2.0.0",
2469 "readable-stream": "^2.3.5"
2470 },
2471 "dependencies": {
2472 "process-nextick-args": {
2473 "version": "2.0.0",
2474 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
2475 "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
2476 "dev": true
2477 }
2478 }
2479 },
2480 "co": {
2481 "version": "4.6.0",
2482 "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
2483 "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
2484 "dev": true
2485 },
2486 "code-point-at": {
2487 "version": "1.1.0",
2488 "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
2489 "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
2490 },
2491 "collection-map": {
2492 "version": "1.0.0",
2493 "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz",
2494 "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=",
2495 "dev": true,
2496 "requires": {
2497 "arr-map": "^2.0.2",
2498 "for-own": "^1.0.0",
2499 "make-iterator": "^1.0.0"
2500 }
2501 },
2502 "collection-visit": {
2503 "version": "1.0.0",
2504 "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
2505 "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
2506 "requires": {
2507 "map-visit": "^1.0.0",
2508 "object-visit": "^1.0.0"
2509 }
2510 },
2511 "color-convert": {
2512 "version": "1.9.3",
2513 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
2514 "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
2515 "dev": true,
2516 "requires": {
2517 "color-name": "1.1.3"
2518 }
2519 },
2520 "color-name": {
2521 "version": "1.1.3",
2522 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
2523 "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
2524 "dev": true
2525 },
2526 "color-support": {
2527 "version": "1.1.3",
2528 "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
2529 "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg=="
2530 },
2531 "colors": {
2532 "version": "1.3.2",
2533 "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.2.tgz",
2534 "integrity": "sha512-rhP0JSBGYvpcNQj4s5AdShMeE5ahMop96cTeDl/v9qQQm2fYClE2QXZRi8wLzc+GmXSxdIqqbOIAhyObEXDbfQ==",
2535 "dev": true
2536 },
2537 "combined-stream": {
2538 "version": "1.0.7",
2539 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
2540 "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
2541 "dev": true,
2542 "requires": {
2543 "delayed-stream": "~1.0.0"
2544 }
2545 },
2546 "commander": {
2547 "version": "2.19.0",
2548 "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
2549 "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==",
2550 "dev": true
2551 },
2552 "commondir": {
2553 "version": "1.0.1",
2554 "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
2555 "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
2556 "dev": true
2557 },
2558 "compare-version": {
2559 "version": "0.1.2",
2560 "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz",
2561 "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=",
2562 "dev": true
2563 },
2564 "component-bind": {
2565 "version": "1.0.0",
2566 "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
2567 "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=",
2568 "dev": true
2569 },
2570 "component-emitter": {
2571 "version": "1.2.1",
2572 "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
2573 "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
2574 },
2575 "component-inherit": {
2576 "version": "0.0.3",
2577 "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
2578 "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",
2579 "dev": true
2580 },
2581 "concat-map": {
2582 "version": "0.0.1",
2583 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
2584 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
2585 },
2586 "concat-stream": {
2587 "version": "1.6.2",
2588 "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
2589 "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
2590 "requires": {
2591 "buffer-from": "^1.0.0",
2592 "inherits": "^2.0.3",
2593 "readable-stream": "^2.2.2",
2594 "typedarray": "^0.0.6"
2595 }
2596 },
2597 "concurrently": {
2598 "version": "4.0.1",
2599 "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-4.0.1.tgz",
2600 "integrity": "sha512-D8UI+mlI/bfvrA57SeKOht6sEpb01dKk+8Yee4fbnkk1Ue8r3S+JXoEdFZIpzQlXJGtnxo47Wvvg/kG4ba3U6Q==",
2601 "dev": true,
2602 "requires": {
2603 "chalk": "^2.4.1",
2604 "date-fns": "^1.23.0",
2605 "lodash": "^4.17.10",
2606 "read-pkg": "^4.0.1",
2607 "rxjs": "6.2.2",
2608 "spawn-command": "^0.0.2-1",
2609 "supports-color": "^4.5.0",
2610 "tree-kill": "^1.1.0",
2611 "yargs": "^12.0.1"
2612 },
2613 "dependencies": {
2614 "ansi-regex": {
2615 "version": "3.0.0",
2616 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
2617 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
2618 "dev": true
2619 },
2620 "ansi-styles": {
2621 "version": "3.2.1",
2622 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
2623 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
2624 "dev": true,
2625 "requires": {
2626 "color-convert": "^1.9.0"
2627 }
2628 },
2629 "camelcase": {
2630 "version": "4.1.0",
2631 "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
2632 "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
2633 "dev": true
2634 },
2635 "chalk": {
2636 "version": "2.4.1",
2637 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
2638 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
2639 "dev": true,
2640 "requires": {
2641 "ansi-styles": "^3.2.1",
2642 "escape-string-regexp": "^1.0.5",
2643 "supports-color": "^5.3.0"
2644 },
2645 "dependencies": {
2646 "supports-color": {
2647 "version": "5.5.0",
2648 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2649 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2650 "dev": true,
2651 "requires": {
2652 "has-flag": "^3.0.0"
2653 }
2654 }
2655 }
2656 },
2657 "cliui": {
2658 "version": "4.1.0",
2659 "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
2660 "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
2661 "dev": true,
2662 "requires": {
2663 "string-width": "^2.1.1",
2664 "strip-ansi": "^4.0.0",
2665 "wrap-ansi": "^2.0.0"
2666 }
2667 },
2668 "decamelize": {
2669 "version": "2.0.0",
2670 "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz",
2671 "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==",
2672 "dev": true,
2673 "requires": {
2674 "xregexp": "4.0.0"
2675 }
2676 },
2677 "execa": {
2678 "version": "0.10.0",
2679 "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
2680 "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
2681 "dev": true,
2682 "requires": {
2683 "cross-spawn": "^6.0.0",
2684 "get-stream": "^3.0.0",
2685 "is-stream": "^1.1.0",
2686 "npm-run-path": "^2.0.0",
2687 "p-finally": "^1.0.0",
2688 "signal-exit": "^3.0.0",
2689 "strip-eof": "^1.0.0"
2690 }
2691 },
2692 "find-up": {
2693 "version": "3.0.0",
2694 "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
2695 "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
2696 "dev": true,
2697 "requires": {
2698 "locate-path": "^3.0.0"
2699 }
2700 },
2701 "invert-kv": {
2702 "version": "2.0.0",
2703 "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
2704 "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
2705 "dev": true
2706 },
2707 "is-fullwidth-code-point": {
2708 "version": "2.0.0",
2709 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
2710 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
2711 "dev": true
2712 },
2713 "lcid": {
2714 "version": "2.0.0",
2715 "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
2716 "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
2717 "dev": true,
2718 "requires": {
2719 "invert-kv": "^2.0.0"
2720 }
2721 },
2722 "locate-path": {
2723 "version": "3.0.0",
2724 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
2725 "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
2726 "dev": true,
2727 "requires": {
2728 "p-locate": "^3.0.0",
2729 "path-exists": "^3.0.0"
2730 }
2731 },
2732 "mem": {
2733 "version": "4.0.0",
2734 "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz",
2735 "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==",
2736 "dev": true,
2737 "requires": {
2738 "map-age-cleaner": "^0.1.1",
2739 "mimic-fn": "^1.0.0",
2740 "p-is-promise": "^1.1.0"
2741 }
2742 },
2743 "os-locale": {
2744 "version": "3.0.1",
2745 "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz",
2746 "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==",
2747 "dev": true,
2748 "requires": {
2749 "execa": "^0.10.0",
2750 "lcid": "^2.0.0",
2751 "mem": "^4.0.0"
2752 }
2753 },
2754 "p-limit": {
2755 "version": "2.0.0",
2756 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
2757 "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
2758 "dev": true,
2759 "requires": {
2760 "p-try": "^2.0.0"
2761 }
2762 },
2763 "p-locate": {
2764 "version": "3.0.0",
2765 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
2766 "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
2767 "dev": true,
2768 "requires": {
2769 "p-limit": "^2.0.0"
2770 }
2771 },
2772 "p-try": {
2773 "version": "2.0.0",
2774 "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
2775 "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
2776 "dev": true
2777 },
2778 "parse-json": {
2779 "version": "4.0.0",
2780 "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
2781 "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
2782 "dev": true,
2783 "requires": {
2784 "error-ex": "^1.3.1",
2785 "json-parse-better-errors": "^1.0.1"
2786 }
2787 },
2788 "path-exists": {
2789 "version": "3.0.0",
2790 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
2791 "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
2792 "dev": true
2793 },
2794 "pify": {
2795 "version": "3.0.0",
2796 "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
2797 "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
2798 "dev": true
2799 },
2800 "read-pkg": {
2801 "version": "4.0.1",
2802 "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz",
2803 "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=",
2804 "dev": true,
2805 "requires": {
2806 "normalize-package-data": "^2.3.2",
2807 "parse-json": "^4.0.0",
2808 "pify": "^3.0.0"
2809 }
2810 },
2811 "rxjs": {
2812 "version": "6.2.2",
2813 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.2.tgz",
2814 "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==",
2815 "dev": true,
2816 "requires": {
2817 "tslib": "^1.9.0"
2818 }
2819 },
2820 "string-width": {
2821 "version": "2.1.1",
2822 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
2823 "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
2824 "dev": true,
2825 "requires": {
2826 "is-fullwidth-code-point": "^2.0.0",
2827 "strip-ansi": "^4.0.0"
2828 }
2829 },
2830 "strip-ansi": {
2831 "version": "4.0.0",
2832 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
2833 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
2834 "dev": true,
2835 "requires": {
2836 "ansi-regex": "^3.0.0"
2837 }
2838 },
2839 "supports-color": {
2840 "version": "4.5.0",
2841 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
2842 "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
2843 "dev": true,
2844 "requires": {
2845 "has-flag": "^2.0.0"
2846 },
2847 "dependencies": {
2848 "has-flag": {
2849 "version": "2.0.0",
2850 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
2851 "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
2852 "dev": true
2853 }
2854 }
2855 },
2856 "which-module": {
2857 "version": "2.0.0",
2858 "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
2859 "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
2860 "dev": true
2861 },
2862 "yargs": {
2863 "version": "12.0.2",
2864 "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz",
2865 "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==",
2866 "dev": true,
2867 "requires": {
2868 "cliui": "^4.0.0",
2869 "decamelize": "^2.0.0",
2870 "find-up": "^3.0.0",
2871 "get-caller-file": "^1.0.1",
2872 "os-locale": "^3.0.0",
2873 "require-directory": "^2.1.1",
2874 "require-main-filename": "^1.0.1",
2875 "set-blocking": "^2.0.0",
2876 "string-width": "^2.0.0",
2877 "which-module": "^2.0.0",
2878 "y18n": "^3.2.1 || ^4.0.0",
2879 "yargs-parser": "^10.1.0"
2880 }
2881 },
2882 "yargs-parser": {
2883 "version": "10.1.0",
2884 "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz",
2885 "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==",
2886 "dev": true,
2887 "requires": {
2888 "camelcase": "^4.1.0"
2889 }
2890 }
2891 }
2892 },
2893 "configstore": {
2894 "version": "3.1.2",
2895 "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz",
2896 "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==",
2897 "dev": true,
2898 "requires": {
2899 "dot-prop": "^4.1.0",
2900 "graceful-fs": "^4.1.2",
2901 "make-dir": "^1.0.0",
2902 "unique-string": "^1.0.0",
2903 "write-file-atomic": "^2.0.0",
2904 "xdg-basedir": "^3.0.0"
2905 }
2906 },
2907 "connect": {
2908 "version": "3.1.1",
2909 "resolved": "https://registry.npmjs.org/connect/-/connect-3.1.1.tgz",
2910 "integrity": "sha1-pz4kScPvwt/RZhhll3oJGE0SAZY=",
2911 "dev": true,
2912 "requires": {
2913 "debug": "1.0.4",
2914 "finalhandler": "0.1.0",
2915 "parseurl": "~1.3.0",
2916 "utils-merge": "1.0.0"
2917 },
2918 "dependencies": {
2919 "debug": {
2920 "version": "1.0.4",
2921 "resolved": "http://registry.npmjs.org/debug/-/debug-1.0.4.tgz",
2922 "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=",
2923 "dev": true,
2924 "requires": {
2925 "ms": "0.6.2"
2926 }
2927 },
2928 "ms": {
2929 "version": "0.6.2",
2930 "resolved": "http://registry.npmjs.org/ms/-/ms-0.6.2.tgz",
2931 "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=",
2932 "dev": true
2933 }
2934 }
2935 },
2936 "connect-inject": {
2937 "version": "0.3.2",
2938 "resolved": "https://registry.npmjs.org/connect-inject/-/connect-inject-0.3.2.tgz",
2939 "integrity": "sha1-2WtRaltrskwhkeYitegs3WKES6M=",
2940 "dev": true
2941 },
2942 "console-control-strings": {
2943 "version": "1.1.0",
2944 "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
2945 "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
2946 "dev": true
2947 },
2948 "contains-path": {
2949 "version": "0.1.0",
2950 "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
2951 "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
2952 "dev": true
2953 },
2954 "conventional-commit-types": {
2955 "version": "2.2.0",
2956 "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-2.2.0.tgz",
2957 "integrity": "sha1-XblXOdbCEqy+e29lahG5QLqmiUY=",
2958 "dev": true
2959 },
2960 "convert-source-map": {
2961 "version": "1.6.0",
2962 "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
2963 "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
2964 "dev": true,
2965 "requires": {
2966 "safe-buffer": "~5.1.1"
2967 }
2968 },
2969 "cookie": {
2970 "version": "0.3.1",
2971 "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
2972 "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
2973 "dev": true
2974 },
2975 "copy-concurrently": {
2976 "version": "1.0.5",
2977 "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
2978 "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
2979 "requires": {
2980 "aproba": "^1.1.1",
2981 "fs-write-stream-atomic": "^1.0.8",
2982 "iferr": "^0.1.5",
2983 "mkdirp": "^0.5.1",
2984 "rimraf": "^2.5.4",
2985 "run-queue": "^1.0.0"
2986 }
2987 },
2988 "copy-descriptor": {
2989 "version": "0.1.1",
2990 "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
2991 "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
2992 },
2993 "copy-props": {
2994 "version": "2.0.4",
2995 "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz",
2996 "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==",
2997 "dev": true,
2998 "requires": {
2999 "each-props": "^1.3.0",
3000 "is-plain-object": "^2.0.1"
3001 }
3002 },
3003 "core-js": {
3004 "version": "2.5.7",
3005 "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
3006 "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw=="
3007 },
3008 "core-util-is": {
3009 "version": "1.0.2",
3010 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
3011 "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
3012 },
3013 "cosmiconfig": {
3014 "version": "5.0.7",
3015 "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.7.tgz",
3016 "integrity": "sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==",
3017 "dev": true,
3018 "requires": {
3019 "import-fresh": "^2.0.0",
3020 "is-directory": "^0.3.1",
3021 "js-yaml": "^3.9.0",
3022 "parse-json": "^4.0.0"
3023 },
3024 "dependencies": {
3025 "parse-json": {
3026 "version": "4.0.0",
3027 "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
3028 "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
3029 "dev": true,
3030 "requires": {
3031 "error-ex": "^1.3.1",
3032 "json-parse-better-errors": "^1.0.1"
3033 }
3034 }
3035 }
3036 },
3037 "create-error-class": {
3038 "version": "3.0.2",
3039 "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
3040 "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
3041 "dev": true,
3042 "requires": {
3043 "capture-stack-trace": "^1.0.0"
3044 }
3045 },
3046 "create-react-class": {
3047 "version": "15.6.3",
3048 "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz",
3049 "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==",
3050 "requires": {
3051 "fbjs": "^0.8.9",
3052 "loose-envify": "^1.3.1",
3053 "object-assign": "^4.1.1"
3054 }
3055 },
3056 "cross-env": {
3057 "version": "5.2.0",
3058 "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz",
3059 "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==",
3060 "dev": true,
3061 "requires": {
3062 "cross-spawn": "^6.0.5",
3063 "is-windows": "^1.0.0"
3064 }
3065 },
3066 "cross-spawn": {
3067 "version": "6.0.5",
3068 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
3069 "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
3070 "dev": true,
3071 "requires": {
3072 "nice-try": "^1.0.4",
3073 "path-key": "^2.0.1",
3074 "semver": "^5.5.0",
3075 "shebang-command": "^1.2.0",
3076 "which": "^1.2.9"
3077 }
3078 },
3079 "crypto-random-string": {
3080 "version": "1.0.0",
3081 "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
3082 "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=",
3083 "dev": true
3084 },
3085 "css-vendor": {
3086 "version": "0.3.8",
3087 "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-0.3.8.tgz",
3088 "integrity": "sha1-ZCHP0wNM5mT+dnOXL9ARn8KJQfo=",
3089 "requires": {
3090 "is-in-browser": "^1.0.2"
3091 }
3092 },
3093 "currently-unhandled": {
3094 "version": "0.4.1",
3095 "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
3096 "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
3097 "dev": true,
3098 "requires": {
3099 "array-find-index": "^1.0.1"
3100 }
3101 },
3102 "cyclist": {
3103 "version": "0.2.2",
3104 "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz",
3105 "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA="
3106 },
3107 "cz-conventional-changelog": {
3108 "version": "2.1.0",
3109 "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-2.1.0.tgz",
3110 "integrity": "sha1-L0vHOQ4yROTfKT5ro1Hkx0Cnx2Q=",
3111 "dev": true,
3112 "requires": {
3113 "conventional-commit-types": "^2.0.0",
3114 "lodash.map": "^4.5.1",
3115 "longest": "^1.0.1",
3116 "right-pad": "^1.0.1",
3117 "word-wrap": "^1.0.3"
3118 }
3119 },
3120 "d": {
3121 "version": "1.0.0",
3122 "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
3123 "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
3124 "requires": {
3125 "es5-ext": "^0.10.9"
3126 }
3127 },
3128 "damerau-levenshtein": {
3129 "version": "1.0.4",
3130 "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz",
3131 "integrity": "sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=",
3132 "dev": true
3133 },
3134 "dashdash": {
3135 "version": "1.14.1",
3136 "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
3137 "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
3138 "dev": true,
3139 "requires": {
3140 "assert-plus": "^1.0.0"
3141 }
3142 },
3143 "date-fns": {
3144 "version": "1.29.0",
3145 "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz",
3146 "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==",
3147 "dev": true
3148 },
3149 "dateformat": {
3150 "version": "2.2.0",
3151 "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz",
3152 "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=",
3153 "dev": true
3154 },
3155 "debug": {
3156 "version": "2.6.9",
3157 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
3158 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
3159 "requires": {
3160 "ms": "2.0.0"
3161 }
3162 },
3163 "debug-electron": {
3164 "version": "0.0.4",
3165 "resolved": "https://registry.npmjs.org/debug-electron/-/debug-electron-0.0.4.tgz",
3166 "integrity": "sha1-mwNTSayBB7TkPaIA0jOcT9Wxaec=",
3167 "requires": {
3168 "debug": "^2.4.1"
3169 }
3170 },
3171 "decamelize": {
3172 "version": "1.2.0",
3173 "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
3174 "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
3175 },
3176 "decode-uri-component": {
3177 "version": "0.2.0",
3178 "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
3179 "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
3180 },
3181 "deep-equal": {
3182 "version": "1.0.1",
3183 "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
3184 "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
3185 },
3186 "deep-extend": {
3187 "version": "0.6.0",
3188 "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
3189 "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
3190 "dev": true
3191 },
3192 "deep-is": {
3193 "version": "0.1.3",
3194 "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
3195 "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
3196 "dev": true
3197 },
3198 "default-compare": {
3199 "version": "1.0.0",
3200 "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz",
3201 "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==",
3202 "dev": true,
3203 "requires": {
3204 "kind-of": "^5.0.2"
3205 },
3206 "dependencies": {
3207 "kind-of": {
3208 "version": "5.1.0",
3209 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
3210 "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
3211 "dev": true
3212 }
3213 }
3214 },
3215 "default-resolution": {
3216 "version": "2.0.0",
3217 "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz",
3218 "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=",
3219 "dev": true
3220 },
3221 "define-properties": {
3222 "version": "1.1.3",
3223 "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
3224 "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
3225 "dev": true,
3226 "requires": {
3227 "object-keys": "^1.0.12"
3228 }
3229 },
3230 "define-property": {
3231 "version": "2.0.2",
3232 "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
3233 "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
3234 "requires": {
3235 "is-descriptor": "^1.0.2",
3236 "isobject": "^3.0.1"
3237 },
3238 "dependencies": {
3239 "is-accessor-descriptor": {
3240 "version": "1.0.0",
3241 "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
3242 "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
3243 "requires": {
3244 "kind-of": "^6.0.0"
3245 }
3246 },
3247 "is-data-descriptor": {
3248 "version": "1.0.0",
3249 "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
3250 "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
3251 "requires": {
3252 "kind-of": "^6.0.0"
3253 }
3254 },
3255 "is-descriptor": {
3256 "version": "1.0.2",
3257 "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
3258 "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
3259 "requires": {
3260 "is-accessor-descriptor": "^1.0.0",
3261 "is-data-descriptor": "^1.0.0",
3262 "kind-of": "^6.0.2"
3263 }
3264 }
3265 }
3266 },
3267 "del": {
3268 "version": "2.2.2",
3269 "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
3270 "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
3271 "dev": true,
3272 "requires": {
3273 "globby": "^5.0.0",
3274 "is-path-cwd": "^1.0.0",
3275 "is-path-in-cwd": "^1.0.0",
3276 "object-assign": "^4.0.1",
3277 "pify": "^2.0.0",
3278 "pinkie-promise": "^2.0.0",
3279 "rimraf": "^2.2.8"
3280 }
3281 },
3282 "delayed-stream": {
3283 "version": "1.0.0",
3284 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
3285 "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
3286 "dev": true
3287 },
3288 "delegates": {
3289 "version": "1.0.0",
3290 "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
3291 "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
3292 "dev": true
3293 },
3294 "depd": {
3295 "version": "0.4.4",
3296 "resolved": "https://registry.npmjs.org/depd/-/depd-0.4.4.tgz",
3297 "integrity": "sha1-BwkfrnX5eCjYm0oCotR3jw58BmI=",
3298 "dev": true
3299 },
3300 "destroy": {
3301 "version": "1.0.3",
3302 "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz",
3303 "integrity": "sha1-tDO0ck5x/YVR2YhRdIUcX8N34sk=",
3304 "dev": true
3305 },
3306 "detect-file": {
3307 "version": "1.0.0",
3308 "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
3309 "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc="
3310 },
3311 "detect-libc": {
3312 "version": "1.0.3",
3313 "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
3314 "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
3315 "dev": true
3316 },
3317 "dmg-builder": {
3318 "version": "6.2.1",
3319 "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-6.2.1.tgz",
3320 "integrity": "sha512-Tt2XRUp7T3AN+sw43Q43Kt8iBkeLk6Z4UWSLOcXX7d6uj92b/g+d3ZQ8l0Ci8t4Fo4gds8b1XwFsfYbWslpV8g==",
3321 "dev": true,
3322 "requires": {
3323 "app-builder-lib": "~20.33.2",
3324 "bluebird-lst": "^1.0.6",
3325 "builder-util": "~9.1.0",
3326 "fs-extra-p": "^7.0.0",
3327 "iconv-lite": "^0.4.24",
3328 "js-yaml": "^3.12.0",
3329 "parse-color": "^1.0.0",
3330 "sanitize-filename": "^1.6.1"
3331 },
3332 "dependencies": {
3333 "app-builder-lib": {
3334 "version": "20.33.2",
3335 "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-20.33.2.tgz",
3336 "integrity": "sha512-RBeN0UbYYW/xdSiCLnVANhBsro2MemFAtBTib8QkwOr/uE1646tNH1JKOZ7fxhfrIQChWH3xcDSiZMa8ReB2ng==",
3337 "dev": true,
3338 "requires": {
3339 "7zip-bin": "~4.1.0",
3340 "app-builder-bin": "2.4.1",
3341 "async-exit-hook": "^2.0.1",
3342 "bluebird-lst": "^1.0.6",
3343 "builder-util": "9.1.0",
3344 "builder-util-runtime": "7.1.0",
3345 "chromium-pickle-js": "^0.2.0",
3346 "debug": "^4.1.0",
3347 "ejs": "^2.6.1",
3348 "electron-osx-sign": "0.4.11",
3349 "electron-publish": "20.33.2",
3350 "fs-extra-p": "^7.0.0",
3351 "hosted-git-info": "^2.7.1",
3352 "is-ci": "^1.2.1",
3353 "isbinaryfile": "^3.0.3",
3354 "js-yaml": "^3.12.0",
3355 "lazy-val": "^1.0.3",
3356 "minimatch": "^3.0.4",
3357 "normalize-package-data": "^2.4.0",
3358 "plist": "^3.0.1",
3359 "read-config-file": "3.2.0",
3360 "sanitize-filename": "^1.6.1",
3361 "semver": "^5.6.0",
3362 "temp-file": "^3.2.0"
3363 }
3364 },
3365 "debug": {
3366 "version": "4.1.0",
3367 "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz",
3368 "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==",
3369 "dev": true,
3370 "requires": {
3371 "ms": "^2.1.1"
3372 }
3373 },
3374 "ms": {
3375 "version": "2.1.1",
3376 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
3377 "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
3378 "dev": true
3379 }
3380 }
3381 },
3382 "doctrine": {
3383 "version": "2.1.0",
3384 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
3385 "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
3386 "dev": true,
3387 "requires": {
3388 "esutils": "^2.0.2"
3389 }
3390 },
3391 "dom-helpers": {
3392 "version": "3.3.1",
3393 "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.3.1.tgz",
3394 "integrity": "sha512-2Sm+JaYn74OiTM2wHvxJOo3roiq/h25Yi69Fqk269cNUwIXsCvATB6CRSFC9Am/20G2b28hGv/+7NiWydIrPvg=="
3395 },
3396 "dom-serializer": {
3397 "version": "0.1.0",
3398 "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
3399 "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
3400 "requires": {
3401 "domelementtype": "~1.1.1",
3402 "entities": "~1.1.1"
3403 },
3404 "dependencies": {
3405 "domelementtype": {
3406 "version": "1.1.3",
3407 "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
3408 "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs="
3409 }
3410 }
3411 },
3412 "domelementtype": {
3413 "version": "1.3.0",
3414 "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
3415 "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI="
3416 },
3417 "domhandler": {
3418 "version": "2.4.2",
3419 "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
3420 "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
3421 "requires": {
3422 "domelementtype": "1"
3423 }
3424 },
3425 "domutils": {
3426 "version": "1.7.0",
3427 "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
3428 "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
3429 "requires": {
3430 "dom-serializer": "0",
3431 "domelementtype": "1"
3432 }
3433 },
3434 "dot-prop": {
3435 "version": "4.2.0",
3436 "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
3437 "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
3438 "dev": true,
3439 "requires": {
3440 "is-obj": "^1.0.0"
3441 }
3442 },
3443 "dotenv": {
3444 "version": "4.0.0",
3445 "resolved": "http://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz",
3446 "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=",
3447 "dev": true
3448 },
3449 "dotenv-expand": {
3450 "version": "4.2.0",
3451 "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz",
3452 "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=",
3453 "dev": true
3454 },
3455 "du": {
3456 "version": "0.1.0",
3457 "resolved": "https://registry.npmjs.org/du/-/du-0.1.0.tgz",
3458 "integrity": "sha1-8m40CgnHvFtv1pr2263qYPqMb00=",
3459 "requires": {
3460 "async": "~0.1.22"
3461 }
3462 },
3463 "duplexer2": {
3464 "version": "0.0.2",
3465 "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
3466 "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
3467 "dev": true,
3468 "requires": {
3469 "readable-stream": "~1.1.9"
3470 },
3471 "dependencies": {
3472 "isarray": {
3473 "version": "0.0.1",
3474 "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
3475 "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
3476 "dev": true
3477 },
3478 "readable-stream": {
3479 "version": "1.1.14",
3480 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
3481 "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
3482 "dev": true,
3483 "requires": {
3484 "core-util-is": "~1.0.0",
3485 "inherits": "~2.0.1",
3486 "isarray": "0.0.1",
3487 "string_decoder": "~0.10.x"
3488 }
3489 },
3490 "string_decoder": {
3491 "version": "0.10.31",
3492 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
3493 "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
3494 "dev": true
3495 }
3496 }
3497 },
3498 "duplexer3": {
3499 "version": "0.1.4",
3500 "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
3501 "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
3502 "dev": true
3503 },
3504 "duplexify": {
3505 "version": "3.6.1",
3506 "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz",
3507 "integrity": "sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==",
3508 "requires": {
3509 "end-of-stream": "^1.0.0",
3510 "inherits": "^2.0.1",
3511 "readable-stream": "^2.0.0",
3512 "stream-shift": "^1.0.0"
3513 }
3514 },
3515 "each-props": {
3516 "version": "1.3.2",
3517 "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz",
3518 "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==",
3519 "dev": true,
3520 "requires": {
3521 "is-plain-object": "^2.0.1",
3522 "object.defaults": "^1.1.0"
3523 }
3524 },
3525 "ecc-jsbn": {
3526 "version": "0.1.2",
3527 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
3528 "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
3529 "dev": true,
3530 "requires": {
3531 "jsbn": "~0.1.0",
3532 "safer-buffer": "^2.1.0"
3533 }
3534 },
3535 "ecdsa-sig-formatter": {
3536 "version": "1.0.10",
3537 "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz",
3538 "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=",
3539 "requires": {
3540 "safe-buffer": "^5.0.1"
3541 }
3542 },
3543 "ee-first": {
3544 "version": "1.0.5",
3545 "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.0.5.tgz",
3546 "integrity": "sha1-jJshKJjYzZ8alDZlDOe+ICyen/A=",
3547 "dev": true
3548 },
3549 "ejs": {
3550 "version": "2.6.1",
3551 "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz",
3552 "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==",
3553 "dev": true
3554 },
3555 "electron": {
3556 "version": "2.0.13",
3557 "resolved": "https://registry.npmjs.org/electron/-/electron-2.0.13.tgz",
3558 "integrity": "sha512-8ouYaLsp0F4sPI7QKgJkkJhrwj1JPSnBwbz6HHA9l6u7WofEt94lV+gHw71KJrDl7UaIkFwlSjyhIjG8lIZqxw==",
3559 "dev": true,
3560 "requires": {
3561 "@types/node": "^8.0.24",
3562 "electron-download": "^3.0.1",
3563 "extract-zip": "^1.0.3"
3564 }
3565 },
3566 "electron-builder": {
3567 "version": "20.34.0",
3568 "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-20.34.0.tgz",
3569 "integrity": "sha512-3avEeTtJcPOSKmWONlWJ6SKu71fUyeldWRA207NgbJ32PdQeqeVBVlN9tnneA7NAZisBCF7SIY1f0kJDMYmXYw==",
3570 "dev": true,
3571 "requires": {
3572 "app-builder-lib": "20.34.0",
3573 "bluebird-lst": "^1.0.6",
3574 "builder-util": "9.1.0",
3575 "builder-util-runtime": "7.1.0",
3576 "chalk": "^2.4.1",
3577 "dmg-builder": "6.2.1",
3578 "fs-extra-p": "^7.0.0",
3579 "is-ci": "^1.2.1",
3580 "lazy-val": "^1.0.3",
3581 "read-config-file": "3.2.0",
3582 "sanitize-filename": "^1.6.1",
3583 "update-notifier": "^2.5.0",
3584 "yargs": "^12.0.2"
3585 },
3586 "dependencies": {
3587 "ansi-regex": {
3588 "version": "3.0.0",
3589 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
3590 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
3591 "dev": true
3592 },
3593 "ansi-styles": {
3594 "version": "3.2.1",
3595 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
3596 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
3597 "dev": true,
3598 "requires": {
3599 "color-convert": "^1.9.0"
3600 }
3601 },
3602 "camelcase": {
3603 "version": "5.0.0",
3604 "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
3605 "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==",
3606 "dev": true
3607 },
3608 "chalk": {
3609 "version": "2.4.1",
3610 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
3611 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
3612 "dev": true,
3613 "requires": {
3614 "ansi-styles": "^3.2.1",
3615 "escape-string-regexp": "^1.0.5",
3616 "supports-color": "^5.3.0"
3617 }
3618 },
3619 "cliui": {
3620 "version": "4.1.0",
3621 "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
3622 "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
3623 "dev": true,
3624 "requires": {
3625 "string-width": "^2.1.1",
3626 "strip-ansi": "^4.0.0",
3627 "wrap-ansi": "^2.0.0"
3628 }
3629 },
3630 "execa": {
3631 "version": "0.10.0",
3632 "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
3633 "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
3634 "dev": true,
3635 "requires": {
3636 "cross-spawn": "^6.0.0",
3637 "get-stream": "^3.0.0",
3638 "is-stream": "^1.1.0",
3639 "npm-run-path": "^2.0.0",
3640 "p-finally": "^1.0.0",
3641 "signal-exit": "^3.0.0",
3642 "strip-eof": "^1.0.0"
3643 }
3644 },
3645 "find-up": {
3646 "version": "3.0.0",
3647 "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
3648 "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
3649 "dev": true,
3650 "requires": {
3651 "locate-path": "^3.0.0"
3652 }
3653 },
3654 "invert-kv": {
3655 "version": "2.0.0",
3656 "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
3657 "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
3658 "dev": true
3659 },
3660 "is-fullwidth-code-point": {
3661 "version": "2.0.0",
3662 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
3663 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
3664 "dev": true
3665 },
3666 "lcid": {
3667 "version": "2.0.0",
3668 "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
3669 "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
3670 "dev": true,
3671 "requires": {
3672 "invert-kv": "^2.0.0"
3673 }
3674 },
3675 "locate-path": {
3676 "version": "3.0.0",
3677 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
3678 "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
3679 "dev": true,
3680 "requires": {
3681 "p-locate": "^3.0.0",
3682 "path-exists": "^3.0.0"
3683 }
3684 },
3685 "os-locale": {
3686 "version": "3.0.1",
3687 "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz",
3688 "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==",
3689 "dev": true,
3690 "requires": {
3691 "execa": "^0.10.0",
3692 "lcid": "^2.0.0",
3693 "mem": "^4.0.0"
3694 }
3695 },
3696 "p-limit": {
3697 "version": "2.0.0",
3698 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
3699 "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
3700 "dev": true,
3701 "requires": {
3702 "p-try": "^2.0.0"
3703 }
3704 },
3705 "p-locate": {
3706 "version": "3.0.0",
3707 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
3708 "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
3709 "dev": true,
3710 "requires": {
3711 "p-limit": "^2.0.0"
3712 }
3713 },
3714 "p-try": {
3715 "version": "2.0.0",
3716 "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
3717 "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
3718 "dev": true
3719 },
3720 "path-exists": {
3721 "version": "3.0.0",
3722 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
3723 "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
3724 "dev": true
3725 },
3726 "string-width": {
3727 "version": "2.1.1",
3728 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
3729 "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
3730 "dev": true,
3731 "requires": {
3732 "is-fullwidth-code-point": "^2.0.0",
3733 "strip-ansi": "^4.0.0"
3734 }
3735 },
3736 "strip-ansi": {
3737 "version": "4.0.0",
3738 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
3739 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
3740 "dev": true,
3741 "requires": {
3742 "ansi-regex": "^3.0.0"
3743 }
3744 },
3745 "supports-color": {
3746 "version": "5.5.0",
3747 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
3748 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
3749 "dev": true,
3750 "requires": {
3751 "has-flag": "^3.0.0"
3752 }
3753 },
3754 "which-module": {
3755 "version": "2.0.0",
3756 "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
3757 "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
3758 "dev": true
3759 },
3760 "yargs": {
3761 "version": "12.0.5",
3762 "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
3763 "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
3764 "dev": true,
3765 "requires": {
3766 "cliui": "^4.0.0",
3767 "decamelize": "^1.2.0",
3768 "find-up": "^3.0.0",
3769 "get-caller-file": "^1.0.1",
3770 "os-locale": "^3.0.0",
3771 "require-directory": "^2.1.1",
3772 "require-main-filename": "^1.0.1",
3773 "set-blocking": "^2.0.0",
3774 "string-width": "^2.0.0",
3775 "which-module": "^2.0.0",
3776 "y18n": "^3.2.1 || ^4.0.0",
3777 "yargs-parser": "^11.1.1"
3778 }
3779 },
3780 "yargs-parser": {
3781 "version": "11.1.1",
3782 "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
3783 "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
3784 "dev": true,
3785 "requires": {
3786 "camelcase": "^5.0.0",
3787 "decamelize": "^1.2.0"
3788 }
3789 }
3790 }
3791 },
3792 "electron-dl": {
3793 "version": "1.12.0",
3794 "resolved": "https://registry.npmjs.org/electron-dl/-/electron-dl-1.12.0.tgz",
3795 "integrity": "sha512-UMc2CL45Ybpvu66LDPYzwmDRmYK4Ivz+wdnTM0eXcNMztvQwhixAk2UPme1c7McqG8bAlKEkQpZn3epmQy4EWg==",
3796 "requires": {
3797 "ext-name": "^5.0.0",
3798 "pupa": "^1.0.0",
3799 "unused-filename": "^1.0.0"
3800 }
3801 },
3802 "electron-download": {
3803 "version": "3.3.0",
3804 "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-3.3.0.tgz",
3805 "integrity": "sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg=",
3806 "dev": true,
3807 "requires": {
3808 "debug": "^2.2.0",
3809 "fs-extra": "^0.30.0",
3810 "home-path": "^1.0.1",
3811 "minimist": "^1.2.0",
3812 "nugget": "^2.0.0",
3813 "path-exists": "^2.1.0",
3814 "rc": "^1.1.2",
3815 "semver": "^5.3.0",
3816 "sumchecker": "^1.2.0"
3817 },
3818 "dependencies": {
3819 "fs-extra": {
3820 "version": "0.30.0",
3821 "resolved": "http://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
3822 "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
3823 "dev": true,
3824 "requires": {
3825 "graceful-fs": "^4.1.2",
3826 "jsonfile": "^2.1.0",
3827 "klaw": "^1.0.0",
3828 "path-is-absolute": "^1.0.0",
3829 "rimraf": "^2.2.8"
3830 }
3831 },
3832 "jsonfile": {
3833 "version": "2.4.0",
3834 "resolved": "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
3835 "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
3836 "dev": true,
3837 "requires": {
3838 "graceful-fs": "^4.1.6"
3839 }
3840 },
3841 "sumchecker": {
3842 "version": "1.3.1",
3843 "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-1.3.1.tgz",
3844 "integrity": "sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0=",
3845 "dev": true,
3846 "requires": {
3847 "debug": "^2.2.0",
3848 "es6-promise": "^4.0.5"
3849 }
3850 }
3851 }
3852 },
3853 "electron-fetch": {
3854 "version": "1.3.0",
3855 "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.3.0.tgz",
3856 "integrity": "sha512-WzHnWZqKdiCKHqqHu+GphezoWRSUVH6BQ/f13vu16VwYKJRZNt2dUrx40eZJcyZcDGn6RJDTAHS6jVoHoglgNw==",
3857 "requires": {
3858 "encoding": "^0.1.12"
3859 }
3860 },
3861 "electron-hunspell": {
3862 "version": "0.1.1",
3863 "resolved": "https://registry.npmjs.org/electron-hunspell/-/electron-hunspell-0.1.1.tgz",
3864 "integrity": "sha512-B3nOQqHexIX+8bz72FZkNk+iFBrdqS9DpV2SaH+t7T9SLbONBVBRLJ2Jj2ytXFUzvw81q7vz2dfxPCddh/E3ww==",
3865 "requires": {
3866 "hunspell-asm": "1.0.2",
3867 "lodash": "^4.17.11",
3868 "tslib": "1.9.3",
3869 "unixify": "1.0.0"
3870 }
3871 },
3872 "electron-is-dev": {
3873 "version": "0.3.0",
3874 "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-0.3.0.tgz",
3875 "integrity": "sha1-FOb9pcaOnk7L7/nM8DfL18BcWv4="
3876 },
3877 "electron-osx-sign": {
3878 "version": "0.4.11",
3879 "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.11.tgz",
3880 "integrity": "sha512-VVd40nrnVqymvFrY9ZkOYgHJOvexHHYTR3di/SN+mjJ0OWhR1I8BRVj3U+Yamw6hnkZZNKZp52rqL5EFAAPFkQ==",
3881 "dev": true,
3882 "requires": {
3883 "bluebird": "^3.5.0",
3884 "compare-version": "^0.1.2",
3885 "debug": "^2.6.8",
3886 "isbinaryfile": "^3.0.2",
3887 "minimist": "^1.2.0",
3888 "plist": "^3.0.1"
3889 }
3890 },
3891 "electron-publish": {
3892 "version": "20.33.2",
3893 "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-20.33.2.tgz",
3894 "integrity": "sha512-9LeawWk3Ve6goP8UxQEEj/YD5oXB8gWsVDb0PiPmm5kNP6O1So7h+nKiKaX1cZF9gsI7iRcmJ3soSuLXGU7GKg==",
3895 "dev": true,
3896 "requires": {
3897 "bluebird-lst": "^1.0.6",
3898 "builder-util": "~9.1.0",
3899 "builder-util-runtime": "^7.1.0",
3900 "chalk": "^2.4.1",
3901 "fs-extra-p": "^7.0.0",
3902 "lazy-val": "^1.0.3",
3903 "mime": "^2.3.1"
3904 },
3905 "dependencies": {
3906 "ansi-styles": {
3907 "version": "3.2.1",
3908 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
3909 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
3910 "dev": true,
3911 "requires": {
3912 "color-convert": "^1.9.0"
3913 }
3914 },
3915 "chalk": {
3916 "version": "2.4.1",
3917 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
3918 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
3919 "dev": true,
3920 "requires": {
3921 "ansi-styles": "^3.2.1",
3922 "escape-string-regexp": "^1.0.5",
3923 "supports-color": "^5.3.0"
3924 }
3925 },
3926 "supports-color": {
3927 "version": "5.5.0",
3928 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
3929 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
3930 "dev": true,
3931 "requires": {
3932 "has-flag": "^3.0.0"
3933 }
3934 }
3935 }
3936 },
3937 "electron-react-titlebar": {
3938 "version": "0.8.1",
3939 "resolved": "https://registry.npmjs.org/electron-react-titlebar/-/electron-react-titlebar-0.8.1.tgz",
3940 "integrity": "sha512-AJb+eWeLUP7S0kNk+JDqT9rEYbN2tYsP449ekJcO9CJs1OAU2KLGdMJ0pwJNrOu6BFAxEXtFAz+MfQGcSi/1hA==",
3941 "requires": {
3942 "lodash": "^4.17.4",
3943 "react-virtualized": "^9.7.6"
3944 }
3945 },
3946 "electron-rebuild": {
3947 "version": "1.8.2",
3948 "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.2.tgz",
3949 "integrity": "sha512-EeR4dgb6NN7ybxduUWMeeLhU/EuF+FzwFZJfMJXD0bx96K+ttAieCXOn9lTO5nA9Qn3hiS7pEpk8pZ9StpGgSg==",
3950 "dev": true,
3951 "requires": {
3952 "colors": "^1.2.0",
3953 "debug": "^2.6.3",
3954 "detect-libc": "^1.0.3",
3955 "fs-extra": "^3.0.1",
3956 "node-abi": "^2.0.0",
3957 "node-gyp": "^3.6.0",
3958 "ora": "^1.2.0",
3959 "rimraf": "^2.6.1",
3960 "spawn-rx": "^2.0.10",
3961 "yargs": "^7.0.2"
3962 },
3963 "dependencies": {
3964 "fs-extra": {
3965 "version": "3.0.1",
3966 "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz",
3967 "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=",
3968 "dev": true,
3969 "requires": {
3970 "graceful-fs": "^4.1.2",
3971 "jsonfile": "^3.0.0",
3972 "universalify": "^0.1.0"
3973 }
3974 },
3975 "jsonfile": {
3976 "version": "3.0.1",
3977 "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz",
3978 "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=",
3979 "dev": true,
3980 "requires": {
3981 "graceful-fs": "^4.1.6"
3982 }
3983 }
3984 }
3985 },
3986 "electron-to-chromium": {
3987 "version": "1.3.80",
3988 "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.80.tgz",
3989 "integrity": "sha512-WClidEWEUNx7OfwXehB0qaxCuetjbKjev2SmXWgybWPLKAThBiMTF/2Pd8GSUDtoGOavxVzdkKwfFAPRSWlkLw==",
3990 "dev": true
3991 },
3992 "electron-updater": {
3993 "version": "3.2.3",
3994 "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-3.2.3.tgz",
3995 "integrity": "sha512-QkLS+hYyTTHzZ2gGtTyQQ3kY5zQaEf/VwJW+UP37CPi58/VNUOx0xNA9iChwwYa6mzeEyo1xhrS1XjePwkeTbA==",
3996 "requires": {
3997 "bluebird-lst": "^1.0.6",
3998 "builder-util-runtime": "~7.1.0",
3999 "electron-is-dev": "^0.3.0",
4000 "fs-extra-p": "^7.0.0",
4001 "js-yaml": "^3.12.0",
4002 "lazy-val": "^1.0.3",
4003 "lodash.isequal": "^4.5.0",
4004 "pako": "^1.0.6",
4005 "semver": "^5.6.0",
4006 "source-map-support": "^0.5.9"
4007 },
4008 "dependencies": {
4009 "builder-util-runtime": {
4010 "version": "7.1.0",
4011 "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-7.1.0.tgz",
4012 "integrity": "sha512-TAsx651+q6bXYry21SzQblYQBUlfu4ixbDa6k2Nvts+kHO9ajyr0gDuHJsamxBaAyUUi5EldPABqsFERDEK3Hg==",
4013 "requires": {
4014 "bluebird-lst": "^1.0.6",
4015 "debug": "^4.1.0",
4016 "fs-extra-p": "^7.0.0",
4017 "sax": "^1.2.4"
4018 }
4019 },
4020 "debug": {
4021 "version": "4.1.0",
4022 "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz",
4023 "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==",
4024 "requires": {
4025 "ms": "^2.1.1"
4026 }
4027 },
4028 "ms": {
4029 "version": "2.1.1",
4030 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
4031 "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
4032 }
4033 }
4034 },
4035 "electron-window-state": {
4036 "version": "4.1.1",
4037 "resolved": "https://registry.npmjs.org/electron-window-state/-/electron-window-state-4.1.1.tgz",
4038 "integrity": "sha1-azT9wxs4UU3+yLfI97XUrdtnYy0=",
4039 "requires": {
4040 "deep-equal": "^1.0.1",
4041 "jsonfile": "^2.2.3",
4042 "mkdirp": "^0.5.1"
4043 },
4044 "dependencies": {
4045 "jsonfile": {
4046 "version": "2.4.0",
4047 "resolved": "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
4048 "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
4049 "requires": {
4050 "graceful-fs": "^4.1.6"
4051 }
4052 }
4053 }
4054 },
4055 "email-addresses": {
4056 "version": "3.0.2",
4057 "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.0.2.tgz",
4058 "integrity": "sha512-IMn9dnwLMsgZjdUHswB/UZ0S8LQ/u+2/qjnHJ9tCtp3QHZsIYwJCiJOo2FT0i3CwwK/dtSODYtxuvzV4D9MY5g=="
4059 },
4060 "emojis-list": {
4061 "version": "2.1.0",
4062 "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
4063 "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
4064 "dev": true
4065 },
4066 "emscripten-wasm-loader": {
4067 "version": "1.1.0",
4068 "resolved": "https://registry.npmjs.org/emscripten-wasm-loader/-/emscripten-wasm-loader-1.1.0.tgz",
4069 "integrity": "sha512-kXR3lT/900WjvhpdhaNSuD6WJKpd4ZlMh/ZaRM0rp82uKoGBq7Ud/u0GVIxQD15cqsShCKEHOpd3bZypvft9Lw==",
4070 "requires": {
4071 "getroot": "^1.0.0",
4072 "tslib": "^1.8.0"
4073 }
4074 },
4075 "encoding": {
4076 "version": "0.1.12",
4077 "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
4078 "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
4079 "requires": {
4080 "iconv-lite": "~0.4.13"
4081 }
4082 },
4083 "end-of-stream": {
4084 "version": "1.4.1",
4085 "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
4086 "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
4087 "requires": {
4088 "once": "^1.4.0"
4089 }
4090 },
4091 "engine.io": {
4092 "version": "1.8.5",
4093 "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.5.tgz",
4094 "integrity": "sha512-j1DWIcktw4hRwrv6nWx++5nFH2X64x16MAG2P0Lmi5Dvdfi3I+Jhc7JKJIdAmDJa+5aZ/imHV7dWRPy2Cqjh3A==",
4095 "dev": true,
4096 "requires": {
4097 "accepts": "1.3.3",
4098 "base64id": "1.0.0",
4099 "cookie": "0.3.1",
4100 "debug": "2.3.3",
4101 "engine.io-parser": "1.3.2",
4102 "ws": "~1.1.5"
4103 },
4104 "dependencies": {
4105 "accepts": {
4106 "version": "1.3.3",
4107 "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz",
4108 "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=",
4109 "dev": true,
4110 "requires": {
4111 "mime-types": "~2.1.11",
4112 "negotiator": "0.6.1"
4113 }
4114 },
4115 "debug": {
4116 "version": "2.3.3",
4117 "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
4118 "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
4119 "dev": true,
4120 "requires": {
4121 "ms": "0.7.2"
4122 }
4123 },
4124 "ms": {
4125 "version": "0.7.2",
4126 "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
4127 "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
4128 "dev": true
4129 },
4130 "negotiator": {
4131 "version": "0.6.1",
4132 "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
4133 "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
4134 "dev": true
4135 }
4136 }
4137 },
4138 "engine.io-client": {
4139 "version": "1.8.5",
4140 "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.5.tgz",
4141 "integrity": "sha512-AYTgHyeVUPitsseqjoedjhYJapNVoSPShbZ+tEUX9/73jgZ/Z3sUlJf9oYgdEBBdVhupUpUqSxH0kBCXlQnmZg==",
4142 "dev": true,
4143 "requires": {
4144 "component-emitter": "1.2.1",
4145 "component-inherit": "0.0.3",
4146 "debug": "2.3.3",
4147 "engine.io-parser": "1.3.2",
4148 "has-cors": "1.1.0",
4149 "indexof": "0.0.1",
4150 "parsejson": "0.0.3",
4151 "parseqs": "0.0.5",
4152 "parseuri": "0.0.5",
4153 "ws": "~1.1.5",
4154 "xmlhttprequest-ssl": "1.5.3",
4155 "yeast": "0.1.2"
4156 },
4157 "dependencies": {
4158 "debug": {
4159 "version": "2.3.3",
4160 "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
4161 "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
4162 "dev": true,
4163 "requires": {
4164 "ms": "0.7.2"
4165 }
4166 },
4167 "ms": {
4168 "version": "0.7.2",
4169 "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
4170 "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
4171 "dev": true
4172 }
4173 }
4174 },
4175 "engine.io-parser": {
4176 "version": "1.3.2",
4177 "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz",
4178 "integrity": "sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=",
4179 "dev": true,
4180 "requires": {
4181 "after": "0.8.2",
4182 "arraybuffer.slice": "0.0.6",
4183 "base64-arraybuffer": "0.1.5",
4184 "blob": "0.0.4",
4185 "has-binary": "0.1.7",
4186 "wtf-8": "1.0.0"
4187 }
4188 },
4189 "entities": {
4190 "version": "1.1.2",
4191 "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
4192 "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
4193 },
4194 "err-code": {
4195 "version": "1.1.2",
4196 "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz",
4197 "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA="
4198 },
4199 "error-ex": {
4200 "version": "1.3.2",
4201 "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
4202 "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
4203 "dev": true,
4204 "requires": {
4205 "is-arrayish": "^0.2.1"
4206 }
4207 },
4208 "es-abstract": {
4209 "version": "1.12.0",
4210 "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz",
4211 "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==",
4212 "dev": true,
4213 "requires": {
4214 "es-to-primitive": "^1.1.1",
4215 "function-bind": "^1.1.1",
4216 "has": "^1.0.1",
4217 "is-callable": "^1.1.3",
4218 "is-regex": "^1.0.4"
4219 }
4220 },
4221 "es-to-primitive": {
4222 "version": "1.2.0",
4223 "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
4224 "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
4225 "dev": true,
4226 "requires": {
4227 "is-callable": "^1.1.4",
4228 "is-date-object": "^1.0.1",
4229 "is-symbol": "^1.0.2"
4230 }
4231 },
4232 "es5-ext": {
4233 "version": "0.10.46",
4234 "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz",
4235 "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==",
4236 "requires": {
4237 "es6-iterator": "~2.0.3",
4238 "es6-symbol": "~3.1.1",
4239 "next-tick": "1"
4240 }
4241 },
4242 "es6-iterator": {
4243 "version": "2.0.3",
4244 "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
4245 "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
4246 "requires": {
4247 "d": "1",
4248 "es5-ext": "^0.10.35",
4249 "es6-symbol": "^3.1.1"
4250 }
4251 },
4252 "es6-promise": {
4253 "version": "4.2.5",
4254 "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz",
4255 "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg=="
4256 },
4257 "es6-promisify": {
4258 "version": "5.0.0",
4259 "resolved": "http://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
4260 "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
4261 "requires": {
4262 "es6-promise": "^4.0.3"
4263 }
4264 },
4265 "es6-symbol": {
4266 "version": "3.1.1",
4267 "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
4268 "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
4269 "requires": {
4270 "d": "1",
4271 "es5-ext": "~0.10.14"
4272 }
4273 },
4274 "es6-weak-map": {
4275 "version": "2.0.2",
4276 "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
4277 "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
4278 "dev": true,
4279 "requires": {
4280 "d": "1",
4281 "es5-ext": "^0.10.14",
4282 "es6-iterator": "^2.0.1",
4283 "es6-symbol": "^3.1.1"
4284 }
4285 },
4286 "escape-html": {
4287 "version": "1.0.1",
4288 "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz",
4289 "integrity": "sha1-GBoobq05ejmpKFfPsdQwUuNWv/A=",
4290 "dev": true
4291 },
4292 "escape-string-regexp": {
4293 "version": "1.0.5",
4294 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
4295 "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
4296 },
4297 "eslint": {
4298 "version": "4.19.1",
4299 "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz",
4300 "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==",
4301 "dev": true,
4302 "requires": {
4303 "ajv": "^5.3.0",
4304 "babel-code-frame": "^6.22.0",
4305 "chalk": "^2.1.0",
4306 "concat-stream": "^1.6.0",
4307 "cross-spawn": "^5.1.0",
4308 "debug": "^3.1.0",
4309 "doctrine": "^2.1.0",
4310 "eslint-scope": "^3.7.1",
4311 "eslint-visitor-keys": "^1.0.0",
4312 "espree": "^3.5.4",
4313 "esquery": "^1.0.0",
4314 "esutils": "^2.0.2",
4315 "file-entry-cache": "^2.0.0",
4316 "functional-red-black-tree": "^1.0.1",
4317 "glob": "^7.1.2",
4318 "globals": "^11.0.1",
4319 "ignore": "^3.3.3",
4320 "imurmurhash": "^0.1.4",
4321 "inquirer": "^3.0.6",
4322 "is-resolvable": "^1.0.0",
4323 "js-yaml": "^3.9.1",
4324 "json-stable-stringify-without-jsonify": "^1.0.1",
4325 "levn": "^0.3.0",
4326 "lodash": "^4.17.4",
4327 "minimatch": "^3.0.2",
4328 "mkdirp": "^0.5.1",
4329 "natural-compare": "^1.4.0",
4330 "optionator": "^0.8.2",
4331 "path-is-inside": "^1.0.2",
4332 "pluralize": "^7.0.0",
4333 "progress": "^2.0.0",
4334 "regexpp": "^1.0.1",
4335 "require-uncached": "^1.0.3",
4336 "semver": "^5.3.0",
4337 "strip-ansi": "^4.0.0",
4338 "strip-json-comments": "~2.0.1",
4339 "table": "4.0.2",
4340 "text-table": "~0.2.0"
4341 },
4342 "dependencies": {
4343 "ansi-regex": {
4344 "version": "3.0.0",
4345 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
4346 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
4347 "dev": true
4348 },
4349 "ansi-styles": {
4350 "version": "3.2.1",
4351 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
4352 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
4353 "dev": true,
4354 "requires": {
4355 "color-convert": "^1.9.0"
4356 }
4357 },
4358 "chalk": {
4359 "version": "2.4.1",
4360 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
4361 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
4362 "dev": true,
4363 "requires": {
4364 "ansi-styles": "^3.2.1",
4365 "escape-string-regexp": "^1.0.5",
4366 "supports-color": "^5.3.0"
4367 }
4368 },
4369 "cross-spawn": {
4370 "version": "5.1.0",
4371 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
4372 "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
4373 "dev": true,
4374 "requires": {
4375 "lru-cache": "^4.0.1",
4376 "shebang-command": "^1.2.0",
4377 "which": "^1.2.9"
4378 }
4379 },
4380 "debug": {
4381 "version": "3.2.6",
4382 "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
4383 "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
4384 "dev": true,
4385 "requires": {
4386 "ms": "^2.1.1"
4387 }
4388 },
4389 "globals": {
4390 "version": "11.8.0",
4391 "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz",
4392 "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==",
4393 "dev": true
4394 },
4395 "ms": {
4396 "version": "2.1.1",
4397 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
4398 "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
4399 "dev": true
4400 },
4401 "strip-ansi": {
4402 "version": "4.0.0",
4403 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
4404 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
4405 "dev": true,
4406 "requires": {
4407 "ansi-regex": "^3.0.0"
4408 }
4409 },
4410 "supports-color": {
4411 "version": "5.5.0",
4412 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
4413 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
4414 "dev": true,
4415 "requires": {
4416 "has-flag": "^3.0.0"
4417 }
4418 }
4419 }
4420 },
4421 "eslint-config-airbnb": {
4422 "version": "14.1.0",
4423 "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-14.1.0.tgz",
4424 "integrity": "sha1-NV0pAEC7+OAL+LSxn0twy+fCMX8=",
4425 "dev": true,
4426 "requires": {
4427 "eslint-config-airbnb-base": "^11.1.0"
4428 }
4429 },
4430 "eslint-config-airbnb-base": {
4431 "version": "11.3.2",
4432 "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.3.2.tgz",
4433 "integrity": "sha512-/fhjt/VqzBA2SRsx7ErDtv6Ayf+XLw9LIOqmpBuHFCVwyJo2EtzGWMB9fYRFBoWWQLxmNmCpenNiH0RxyeS41w==",
4434 "dev": true,
4435 "requires": {
4436 "eslint-restricted-globals": "^0.1.1"
4437 }
4438 },
4439 "eslint-import-resolver-node": {
4440 "version": "0.3.2",
4441 "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz",
4442 "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==",
4443 "dev": true,
4444 "requires": {
4445 "debug": "^2.6.9",
4446 "resolve": "^1.5.0"
4447 }
4448 },
4449 "eslint-loader": {
4450 "version": "1.9.0",
4451 "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-1.9.0.tgz",
4452 "integrity": "sha512-40aN976qSNPyb9ejTqjEthZITpls1SVKtwguahmH1dzGCwQU/vySE+xX33VZmD8csU0ahVNCtFlsPgKqRBiqgg==",
4453 "dev": true,
4454 "requires": {
4455 "loader-fs-cache": "^1.0.0",
4456 "loader-utils": "^1.0.2",
4457 "object-assign": "^4.0.1",
4458 "object-hash": "^1.1.4",
4459 "rimraf": "^2.6.1"
4460 }
4461 },
4462 "eslint-module-utils": {
4463 "version": "2.2.0",
4464 "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz",
4465 "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=",
4466 "dev": true,
4467 "requires": {
4468 "debug": "^2.6.8",
4469 "pkg-dir": "^1.0.0"
4470 }
4471 },
4472 "eslint-plugin-import": {
4473 "version": "2.14.0",
4474 "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz",
4475 "integrity": "sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==",
4476 "dev": true,
4477 "requires": {
4478 "contains-path": "^0.1.0",
4479 "debug": "^2.6.8",
4480 "doctrine": "1.5.0",
4481 "eslint-import-resolver-node": "^0.3.1",
4482 "eslint-module-utils": "^2.2.0",
4483 "has": "^1.0.1",
4484 "lodash": "^4.17.4",
4485 "minimatch": "^3.0.3",
4486 "read-pkg-up": "^2.0.0",
4487 "resolve": "^1.6.0"
4488 },
4489 "dependencies": {
4490 "doctrine": {
4491 "version": "1.5.0",
4492 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
4493 "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
4494 "dev": true,
4495 "requires": {
4496 "esutils": "^2.0.2",
4497 "isarray": "^1.0.0"
4498 }
4499 },
4500 "find-up": {
4501 "version": "2.1.0",
4502 "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
4503 "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
4504 "dev": true,
4505 "requires": {
4506 "locate-path": "^2.0.0"
4507 }
4508 },
4509 "load-json-file": {
4510 "version": "2.0.0",
4511 "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
4512 "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
4513 "dev": true,
4514 "requires": {
4515 "graceful-fs": "^4.1.2",
4516 "parse-json": "^2.2.0",
4517 "pify": "^2.0.0",
4518 "strip-bom": "^3.0.0"
4519 }
4520 },
4521 "path-type": {
4522 "version": "2.0.0",
4523 "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
4524 "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
4525 "dev": true,
4526 "requires": {
4527 "pify": "^2.0.0"
4528 }
4529 },
4530 "read-pkg": {
4531 "version": "2.0.0",
4532 "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
4533 "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
4534 "dev": true,
4535 "requires": {
4536 "load-json-file": "^2.0.0",
4537 "normalize-package-data": "^2.3.2",
4538 "path-type": "^2.0.0"
4539 }
4540 },
4541 "read-pkg-up": {
4542 "version": "2.0.0",
4543 "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
4544 "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
4545 "dev": true,
4546 "requires": {
4547 "find-up": "^2.0.0",
4548 "read-pkg": "^2.0.0"
4549 }
4550 },
4551 "strip-bom": {
4552 "version": "3.0.0",
4553 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
4554 "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
4555 "dev": true
4556 }
4557 }
4558 },
4559 "eslint-plugin-jsx-a11y": {
4560 "version": "3.0.2",
4561 "resolved": "http://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-3.0.2.tgz",
4562 "integrity": "sha1-nw6ryv3j0qJgDZamatuQ0JnoQf4=",
4563 "dev": true,
4564 "requires": {
4565 "damerau-levenshtein": "^1.0.0",
4566 "jsx-ast-utils": "^1.0.0",
4567 "object-assign": "^4.0.1"
4568 }
4569 },
4570 "eslint-plugin-react": {
4571 "version": "6.10.3",
4572 "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz",
4573 "integrity": "sha1-xUNb6wZ3ThLH2y9qut3L+QDNP3g=",
4574 "dev": true,
4575 "requires": {
4576 "array.prototype.find": "^2.0.1",
4577 "doctrine": "^1.2.2",
4578 "has": "^1.0.1",
4579 "jsx-ast-utils": "^1.3.4",
4580 "object.assign": "^4.0.4"
4581 },
4582 "dependencies": {
4583 "doctrine": {
4584 "version": "1.5.0",
4585 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
4586 "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
4587 "dev": true,
4588 "requires": {
4589 "esutils": "^2.0.2",
4590 "isarray": "^1.0.0"
4591 }
4592 }
4593 }
4594 },
4595 "eslint-restricted-globals": {
4596 "version": "0.1.1",
4597 "resolved": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz",
4598 "integrity": "sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=",
4599 "dev": true
4600 },
4601 "eslint-scope": {
4602 "version": "3.7.3",
4603 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz",
4604 "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==",
4605 "dev": true,
4606 "requires": {
4607 "esrecurse": "^4.1.0",
4608 "estraverse": "^4.1.1"
4609 }
4610 },
4611 "eslint-visitor-keys": {
4612 "version": "1.0.0",
4613 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
4614 "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==",
4615 "dev": true
4616 },
4617 "espree": {
4618 "version": "3.5.4",
4619 "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
4620 "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
4621 "dev": true,
4622 "requires": {
4623 "acorn": "^5.5.0",
4624 "acorn-jsx": "^3.0.0"
4625 }
4626 },
4627 "esprima": {
4628 "version": "4.0.1",
4629 "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
4630 "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
4631 },
4632 "esquery": {
4633 "version": "1.0.1",
4634 "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
4635 "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
4636 "dev": true,
4637 "requires": {
4638 "estraverse": "^4.0.0"
4639 }
4640 },
4641 "esrecurse": {
4642 "version": "4.2.1",
4643 "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
4644 "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
4645 "dev": true,
4646 "requires": {
4647 "estraverse": "^4.1.0"
4648 }
4649 },
4650 "estraverse": {
4651 "version": "4.2.0",
4652 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
4653 "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
4654 "dev": true
4655 },
4656 "esutils": {
4657 "version": "2.0.2",
4658 "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
4659 "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
4660 "dev": true
4661 },
4662 "execa": {
4663 "version": "0.7.0",
4664 "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
4665 "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
4666 "dev": true,
4667 "requires": {
4668 "cross-spawn": "^5.0.1",
4669 "get-stream": "^3.0.0",
4670 "is-stream": "^1.1.0",
4671 "npm-run-path": "^2.0.0",
4672 "p-finally": "^1.0.0",
4673 "signal-exit": "^3.0.0",
4674 "strip-eof": "^1.0.0"
4675 },
4676 "dependencies": {
4677 "cross-spawn": {
4678 "version": "5.1.0",
4679 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
4680 "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
4681 "dev": true,
4682 "requires": {
4683 "lru-cache": "^4.0.1",
4684 "shebang-command": "^1.2.0",
4685 "which": "^1.2.9"
4686 }
4687 }
4688 }
4689 },
4690 "expand-brackets": {
4691 "version": "2.1.4",
4692 "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
4693 "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
4694 "requires": {
4695 "debug": "^2.3.3",
4696 "define-property": "^0.2.5",
4697 "extend-shallow": "^2.0.1",
4698 "posix-character-classes": "^0.1.0",
4699 "regex-not": "^1.0.0",
4700 "snapdragon": "^0.8.1",
4701 "to-regex": "^3.0.1"
4702 },
4703 "dependencies": {
4704 "define-property": {
4705 "version": "0.2.5",
4706 "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
4707 "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
4708 "requires": {
4709 "is-descriptor": "^0.1.0"
4710 }
4711 },
4712 "extend-shallow": {
4713 "version": "2.0.1",
4714 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
4715 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
4716 "requires": {
4717 "is-extendable": "^0.1.0"
4718 }
4719 }
4720 }
4721 },
4722 "expand-range": {
4723 "version": "1.8.2",
4724 "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
4725 "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
4726 "requires": {
4727 "fill-range": "^2.1.0"
4728 },
4729 "dependencies": {
4730 "fill-range": {
4731 "version": "2.2.4",
4732 "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
4733 "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
4734 "requires": {
4735 "is-number": "^2.1.0",
4736 "isobject": "^2.0.0",
4737 "randomatic": "^3.0.0",
4738 "repeat-element": "^1.1.2",
4739 "repeat-string": "^1.5.2"
4740 }
4741 },
4742 "is-number": {
4743 "version": "2.1.0",
4744 "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
4745 "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
4746 "requires": {
4747 "kind-of": "^3.0.2"
4748 }
4749 },
4750 "isobject": {
4751 "version": "2.1.0",
4752 "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
4753 "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
4754 "requires": {
4755 "isarray": "1.0.0"
4756 }
4757 },
4758 "kind-of": {
4759 "version": "3.2.2",
4760 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
4761 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
4762 "requires": {
4763 "is-buffer": "^1.1.5"
4764 }
4765 }
4766 }
4767 },
4768 "expand-tilde": {
4769 "version": "2.0.2",
4770 "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
4771 "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
4772 "requires": {
4773 "homedir-polyfill": "^1.0.1"
4774 }
4775 },
4776 "ext-list": {
4777 "version": "2.2.2",
4778 "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz",
4779 "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==",
4780 "requires": {
4781 "mime-db": "^1.28.0"
4782 }
4783 },
4784 "ext-name": {
4785 "version": "5.0.0",
4786 "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz",
4787 "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==",
4788 "requires": {
4789 "ext-list": "^2.0.0",
4790 "sort-keys-length": "^1.0.0"
4791 }
4792 },
4793 "extend": {
4794 "version": "3.0.2",
4795 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
4796 "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
4797 },
4798 "extend-shallow": {
4799 "version": "3.0.2",
4800 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
4801 "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
4802 "requires": {
4803 "assign-symbols": "^1.0.0",
4804 "is-extendable": "^1.0.1"
4805 },
4806 "dependencies": {
4807 "is-extendable": {
4808 "version": "1.0.1",
4809 "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
4810 "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
4811 "requires": {
4812 "is-plain-object": "^2.0.4"
4813 }
4814 }
4815 }
4816 },
4817 "external-editor": {
4818 "version": "2.2.0",
4819 "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
4820 "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
4821 "dev": true,
4822 "requires": {
4823 "chardet": "^0.4.0",
4824 "iconv-lite": "^0.4.17",
4825 "tmp": "^0.0.33"
4826 },
4827 "dependencies": {
4828 "tmp": {
4829 "version": "0.0.33",
4830 "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
4831 "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
4832 "dev": true,
4833 "requires": {
4834 "os-tmpdir": "~1.0.2"
4835 }
4836 }
4837 }
4838 },
4839 "extglob": {
4840 "version": "2.0.4",
4841 "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
4842 "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
4843 "requires": {
4844 "array-unique": "^0.3.2",
4845 "define-property": "^1.0.0",
4846 "expand-brackets": "^2.1.4",
4847 "extend-shallow": "^2.0.1",
4848 "fragment-cache": "^0.2.1",
4849 "regex-not": "^1.0.0",
4850 "snapdragon": "^0.8.1",
4851 "to-regex": "^3.0.1"
4852 },
4853 "dependencies": {
4854 "define-property": {
4855 "version": "1.0.0",
4856 "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
4857 "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
4858 "requires": {
4859 "is-descriptor": "^1.0.0"
4860 }
4861 },
4862 "extend-shallow": {
4863 "version": "2.0.1",
4864 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
4865 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
4866 "requires": {
4867 "is-extendable": "^0.1.0"
4868 }
4869 },
4870 "is-accessor-descriptor": {
4871 "version": "1.0.0",
4872 "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
4873 "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
4874 "requires": {
4875 "kind-of": "^6.0.0"
4876 }
4877 },
4878 "is-data-descriptor": {
4879 "version": "1.0.0",
4880 "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
4881 "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
4882 "requires": {
4883 "kind-of": "^6.0.0"
4884 }
4885 },
4886 "is-descriptor": {
4887 "version": "1.0.2",
4888 "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
4889 "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
4890 "requires": {
4891 "is-accessor-descriptor": "^1.0.0",
4892 "is-data-descriptor": "^1.0.0",
4893 "kind-of": "^6.0.2"
4894 }
4895 }
4896 }
4897 },
4898 "extract-zip": {
4899 "version": "1.6.7",
4900 "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
4901 "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
4902 "dev": true,
4903 "requires": {
4904 "concat-stream": "1.6.2",
4905 "debug": "2.6.9",
4906 "mkdirp": "0.5.1",
4907 "yauzl": "2.4.1"
4908 }
4909 },
4910 "extsprintf": {
4911 "version": "1.3.0",
4912 "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
4913 "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
4914 "dev": true
4915 },
4916 "fancy-log": {
4917 "version": "1.3.2",
4918 "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz",
4919 "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=",
4920 "requires": {
4921 "ansi-gray": "^0.1.1",
4922 "color-support": "^1.1.3",
4923 "time-stamp": "^1.0.0"
4924 }
4925 },
4926 "fast-deep-equal": {
4927 "version": "1.1.0",
4928 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
4929 "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
4930 "dev": true
4931 },
4932 "fast-json-stable-stringify": {
4933 "version": "2.0.0",
4934 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
4935 "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
4936 "dev": true
4937 },
4938 "fast-levenshtein": {
4939 "version": "2.0.6",
4940 "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
4941 "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
4942 "dev": true
4943 },
4944 "fbjs": {
4945 "version": "0.8.17",
4946 "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz",
4947 "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=",
4948 "requires": {
4949 "core-js": "^1.0.0",
4950 "isomorphic-fetch": "^2.1.1",
4951 "loose-envify": "^1.0.0",
4952 "object-assign": "^4.1.0",
4953 "promise": "^7.1.1",
4954 "setimmediate": "^1.0.5",
4955 "ua-parser-js": "^0.7.18"
4956 },
4957 "dependencies": {
4958 "core-js": {
4959 "version": "1.2.7",
4960 "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
4961 "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
4962 }
4963 }
4964 },
4965 "fd-slicer": {
4966 "version": "1.0.1",
4967 "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
4968 "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
4969 "dev": true,
4970 "requires": {
4971 "pend": "~1.2.0"
4972 }
4973 },
4974 "figgy-pudding": {
4975 "version": "3.5.1",
4976 "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz",
4977 "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w=="
4978 },
4979 "figures": {
4980 "version": "2.0.0",
4981 "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
4982 "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
4983 "dev": true,
4984 "requires": {
4985 "escape-string-regexp": "^1.0.5"
4986 }
4987 },
4988 "file-entry-cache": {
4989 "version": "2.0.0",
4990 "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
4991 "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
4992 "dev": true,
4993 "requires": {
4994 "flat-cache": "^1.2.1",
4995 "object-assign": "^4.0.1"
4996 }
4997 },
4998 "filename-regex": {
4999 "version": "2.0.1",
5000 "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
5001 "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY="
5002 },
5003 "fill-range": {
5004 "version": "4.0.0",
5005 "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
5006 "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
5007 "requires": {
5008 "extend-shallow": "^2.0.1",
5009 "is-number": "^3.0.0",
5010 "repeat-string": "^1.6.1",
5011 "to-regex-range": "^2.1.0"
5012 },
5013 "dependencies": {
5014 "extend-shallow": {
5015 "version": "2.0.1",
5016 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
5017 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
5018 "requires": {
5019 "is-extendable": "^0.1.0"
5020 }
5021 }
5022 }
5023 },
5024 "finalhandler": {
5025 "version": "0.1.0",
5026 "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-0.1.0.tgz",
5027 "integrity": "sha1-2gW7xPX0owyEzh2R88FUAHxOnao=",
5028 "dev": true,
5029 "requires": {
5030 "debug": "1.0.4",
5031 "escape-html": "1.0.1"
5032 },
5033 "dependencies": {
5034 "debug": {
5035 "version": "1.0.4",
5036 "resolved": "http://registry.npmjs.org/debug/-/debug-1.0.4.tgz",
5037 "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=",
5038 "dev": true,
5039 "requires": {
5040 "ms": "0.6.2"
5041 }
5042 },
5043 "ms": {
5044 "version": "0.6.2",
5045 "resolved": "http://registry.npmjs.org/ms/-/ms-0.6.2.tgz",
5046 "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=",
5047 "dev": true
5048 }
5049 }
5050 },
5051 "find-cache-dir": {
5052 "version": "0.1.1",
5053 "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz",
5054 "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=",
5055 "dev": true,
5056 "requires": {
5057 "commondir": "^1.0.1",
5058 "mkdirp": "^0.5.1",
5059 "pkg-dir": "^1.0.0"
5060 }
5061 },
5062 "find-index": {
5063 "version": "0.1.1",
5064 "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz",
5065 "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=",
5066 "dev": true
5067 },
5068 "find-up": {
5069 "version": "1.1.2",
5070 "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
5071 "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
5072 "dev": true,
5073 "requires": {
5074 "path-exists": "^2.0.0",
5075 "pinkie-promise": "^2.0.0"
5076 }
5077 },
5078 "findup-sync": {
5079 "version": "2.0.0",
5080 "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
5081 "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
5082 "requires": {
5083 "detect-file": "^1.0.0",
5084 "is-glob": "^3.1.0",
5085 "micromatch": "^3.0.4",
5086 "resolve-dir": "^1.0.1"
5087 },
5088 "dependencies": {
5089 "is-glob": {
5090 "version": "3.1.0",
5091 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
5092 "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
5093 "requires": {
5094 "is-extglob": "^2.1.0"
5095 }
5096 }
5097 }
5098 },
5099 "fined": {
5100 "version": "1.1.0",
5101 "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz",
5102 "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=",
5103 "requires": {
5104 "expand-tilde": "^2.0.2",
5105 "is-plain-object": "^2.0.3",
5106 "object.defaults": "^1.1.0",
5107 "object.pick": "^1.2.0",
5108 "parse-filepath": "^1.0.1"
5109 }
5110 },
5111 "first-chunk-stream": {
5112 "version": "1.0.0",
5113 "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
5114 "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=",
5115 "dev": true
5116 },
5117 "flagged-respawn": {
5118 "version": "1.0.0",
5119 "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz",
5120 "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c="
5121 },
5122 "flat-cache": {
5123 "version": "1.3.0",
5124 "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz",
5125 "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
5126 "dev": true,
5127 "requires": {
5128 "circular-json": "^0.3.1",
5129 "del": "^2.0.2",
5130 "graceful-fs": "^4.1.2",
5131 "write": "^0.2.1"
5132 }
5133 },
5134 "flush-write-stream": {
5135 "version": "1.0.3",
5136 "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz",
5137 "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==",
5138 "requires": {
5139 "inherits": "^2.0.1",
5140 "readable-stream": "^2.0.4"
5141 }
5142 },
5143 "for-in": {
5144 "version": "1.0.2",
5145 "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
5146 "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
5147 },
5148 "for-own": {
5149 "version": "1.0.0",
5150 "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
5151 "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
5152 "requires": {
5153 "for-in": "^1.0.1"
5154 }
5155 },
5156 "forever-agent": {
5157 "version": "0.6.1",
5158 "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
5159 "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
5160 "dev": true
5161 },
5162 "form-data": {
5163 "version": "2.3.3",
5164 "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
5165 "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
5166 "dev": true,
5167 "requires": {
5168 "asynckit": "^0.4.0",
5169 "combined-stream": "^1.0.6",
5170 "mime-types": "^2.1.12"
5171 }
5172 },
5173 "fragment-cache": {
5174 "version": "0.2.1",
5175 "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
5176 "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
5177 "requires": {
5178 "map-cache": "^0.2.2"
5179 }
5180 },
5181 "fresh": {
5182 "version": "0.2.2",
5183 "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.2.tgz",
5184 "integrity": "sha1-lzHc9WeMf660T7kDxPct9VGH+nc=",
5185 "dev": true
5186 },
5187 "from2": {
5188 "version": "2.3.0",
5189 "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
5190 "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
5191 "requires": {
5192 "inherits": "^2.0.1",
5193 "readable-stream": "^2.0.0"
5194 }
5195 },
5196 "fs-extra": {
5197 "version": "7.0.1",
5198 "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
5199 "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
5200 "requires": {
5201 "graceful-fs": "^4.1.2",
5202 "jsonfile": "^4.0.0",
5203 "universalify": "^0.1.0"
5204 }
5205 },
5206 "fs-extra-p": {
5207 "version": "7.0.0",
5208 "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-7.0.0.tgz",
5209 "integrity": "sha512-5tg5jBOd0xIXjwj4PDnafOXL5TyPVzjxLby4DPKev53wurEXp7IsojBaD4Lj5M5w7jxw0pbkEU0fFEPmcKoMnA==",
5210 "requires": {
5211 "bluebird-lst": "^1.0.6",
5212 "fs-extra": "^7.0.0"
5213 }
5214 },
5215 "fs-minipass": {
5216 "version": "1.2.5",
5217 "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz",
5218 "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
5219 "requires": {
5220 "minipass": "^2.2.1"
5221 }
5222 },
5223 "fs-mkdirp-stream": {
5224 "version": "1.0.0",
5225 "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz",
5226 "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=",
5227 "dev": true,
5228 "requires": {
5229 "graceful-fs": "^4.1.11",
5230 "through2": "^2.0.3"
5231 }
5232 },
5233 "fs-write-stream-atomic": {
5234 "version": "1.0.10",
5235 "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
5236 "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
5237 "requires": {
5238 "graceful-fs": "^4.1.2",
5239 "iferr": "^0.1.5",
5240 "imurmurhash": "^0.1.4",
5241 "readable-stream": "1 || 2"
5242 }
5243 },
5244 "fs.realpath": {
5245 "version": "1.0.0",
5246 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
5247 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
5248 },
5249 "fsevents": {
5250 "version": "1.2.4",
5251 "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz",
5252 "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==",
5253 "dev": true,
5254 "optional": true,
5255 "requires": {
5256 "nan": "^2.9.2",
5257 "node-pre-gyp": "^0.10.0"
5258 },
5259 "dependencies": {
5260 "abbrev": {
5261 "version": "1.1.1",
5262 "resolved": false,
5263 "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
5264 "dev": true,
5265 "optional": true
5266 },
5267 "ansi-regex": {
5268 "version": "2.1.1",
5269 "resolved": false,
5270 "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
5271 "dev": true
5272 },
5273 "aproba": {
5274 "version": "1.2.0",
5275 "resolved": false,
5276 "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
5277 "dev": true,
5278 "optional": true
5279 },
5280 "are-we-there-yet": {
5281 "version": "1.1.4",
5282 "resolved": false,
5283 "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=",
5284 "dev": true,
5285 "optional": true,
5286 "requires": {
5287 "delegates": "^1.0.0",
5288 "readable-stream": "^2.0.6"
5289 }
5290 },
5291 "balanced-match": {
5292 "version": "1.0.0",
5293 "resolved": false,
5294 "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
5295 "dev": true
5296 },
5297 "brace-expansion": {
5298 "version": "1.1.11",
5299 "resolved": false,
5300 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
5301 "dev": true,
5302 "requires": {
5303 "balanced-match": "^1.0.0",
5304 "concat-map": "0.0.1"
5305 }
5306 },
5307 "chownr": {
5308 "version": "1.0.1",
5309 "resolved": false,
5310 "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=",
5311 "dev": true,
5312 "optional": true
5313 },
5314 "code-point-at": {
5315 "version": "1.1.0",
5316 "resolved": false,
5317 "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
5318 "dev": true
5319 },
5320 "concat-map": {
5321 "version": "0.0.1",
5322 "resolved": false,
5323 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
5324 "dev": true
5325 },
5326 "console-control-strings": {
5327 "version": "1.1.0",
5328 "resolved": false,
5329 "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
5330 "dev": true
5331 },
5332 "core-util-is": {
5333 "version": "1.0.2",
5334 "resolved": false,
5335 "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
5336 "dev": true,
5337 "optional": true
5338 },
5339 "debug": {
5340 "version": "2.6.9",
5341 "resolved": false,
5342 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
5343 "dev": true,
5344 "optional": true,
5345 "requires": {
5346 "ms": "2.0.0"
5347 }
5348 },
5349 "deep-extend": {
5350 "version": "0.5.1",
5351 "resolved": false,
5352 "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==",
5353 "dev": true,
5354 "optional": true
5355 },
5356 "delegates": {
5357 "version": "1.0.0",
5358 "resolved": false,
5359 "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
5360 "dev": true,
5361 "optional": true
5362 },
5363 "detect-libc": {
5364 "version": "1.0.3",
5365 "resolved": false,
5366 "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
5367 "dev": true,
5368 "optional": true
5369 },
5370 "fs-minipass": {
5371 "version": "1.2.5",
5372 "resolved": false,
5373 "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
5374 "dev": true,
5375 "optional": true,
5376 "requires": {
5377 "minipass": "^2.2.1"
5378 }
5379 },
5380 "fs.realpath": {
5381 "version": "1.0.0",
5382 "resolved": false,
5383 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
5384 "dev": true,
5385 "optional": true
5386 },
5387 "gauge": {
5388 "version": "2.7.4",
5389 "resolved": false,
5390 "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
5391 "dev": true,
5392 "optional": true,
5393 "requires": {
5394 "aproba": "^1.0.3",
5395 "console-control-strings": "^1.0.0",
5396 "has-unicode": "^2.0.0",
5397 "object-assign": "^4.1.0",
5398 "signal-exit": "^3.0.0",
5399 "string-width": "^1.0.1",
5400 "strip-ansi": "^3.0.1",
5401 "wide-align": "^1.1.0"
5402 }
5403 },
5404 "glob": {
5405 "version": "7.1.2",
5406 "resolved": false,
5407 "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
5408 "dev": true,
5409 "optional": true,
5410 "requires": {
5411 "fs.realpath": "^1.0.0",
5412 "inflight": "^1.0.4",
5413 "inherits": "2",
5414 "minimatch": "^3.0.4",
5415 "once": "^1.3.0",
5416 "path-is-absolute": "^1.0.0"
5417 }
5418 },
5419 "has-unicode": {
5420 "version": "2.0.1",
5421 "resolved": false,
5422 "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
5423 "dev": true,
5424 "optional": true
5425 },
5426 "iconv-lite": {
5427 "version": "0.4.21",
5428 "resolved": false,
5429 "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==",
5430 "dev": true,
5431 "optional": true,
5432 "requires": {
5433 "safer-buffer": "^2.1.0"
5434 }
5435 },
5436 "ignore-walk": {
5437 "version": "3.0.1",
5438 "resolved": false,
5439 "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
5440 "dev": true,
5441 "optional": true,
5442 "requires": {
5443 "minimatch": "^3.0.4"
5444 }
5445 },
5446 "inflight": {
5447 "version": "1.0.6",
5448 "resolved": false,
5449 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
5450 "dev": true,
5451 "optional": true,
5452 "requires": {
5453 "once": "^1.3.0",
5454 "wrappy": "1"
5455 }
5456 },
5457 "inherits": {
5458 "version": "2.0.3",
5459 "resolved": false,
5460 "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
5461 "dev": true
5462 },
5463 "ini": {
5464 "version": "1.3.5",
5465 "resolved": false,
5466 "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
5467 "dev": true,
5468 "optional": true
5469 },
5470 "is-fullwidth-code-point": {
5471 "version": "1.0.0",
5472 "resolved": false,
5473 "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
5474 "dev": true,
5475 "requires": {
5476 "number-is-nan": "^1.0.0"
5477 }
5478 },
5479 "isarray": {
5480 "version": "1.0.0",
5481 "resolved": false,
5482 "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
5483 "dev": true,
5484 "optional": true
5485 },
5486 "minimatch": {
5487 "version": "3.0.4",
5488 "resolved": false,
5489 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
5490 "dev": true,
5491 "requires": {
5492 "brace-expansion": "^1.1.7"
5493 }
5494 },
5495 "minimist": {
5496 "version": "0.0.8",
5497 "resolved": false,
5498 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
5499 "dev": true
5500 },
5501 "minipass": {
5502 "version": "2.2.4",
5503 "resolved": false,
5504 "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==",
5505 "dev": true,
5506 "requires": {
5507 "safe-buffer": "^5.1.1",
5508 "yallist": "^3.0.0"
5509 }
5510 },
5511 "minizlib": {
5512 "version": "1.1.0",
5513 "resolved": false,
5514 "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==",
5515 "dev": true,
5516 "optional": true,
5517 "requires": {
5518 "minipass": "^2.2.1"
5519 }
5520 },
5521 "mkdirp": {
5522 "version": "0.5.1",
5523 "resolved": false,
5524 "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
5525 "dev": true,
5526 "requires": {
5527 "minimist": "0.0.8"
5528 }
5529 },
5530 "ms": {
5531 "version": "2.0.0",
5532 "resolved": false,
5533 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
5534 "dev": true,
5535 "optional": true
5536 },
5537 "needle": {
5538 "version": "2.2.0",
5539 "resolved": false,
5540 "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==",
5541 "dev": true,
5542 "optional": true,
5543 "requires": {
5544 "debug": "^2.1.2",
5545 "iconv-lite": "^0.4.4",
5546 "sax": "^1.2.4"
5547 }
5548 },
5549 "node-pre-gyp": {
5550 "version": "0.10.0",
5551 "resolved": false,
5552 "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==",
5553 "dev": true,
5554 "optional": true,
5555 "requires": {
5556 "detect-libc": "^1.0.2",
5557 "mkdirp": "^0.5.1",
5558 "needle": "^2.2.0",
5559 "nopt": "^4.0.1",
5560 "npm-packlist": "^1.1.6",
5561 "npmlog": "^4.0.2",
5562 "rc": "^1.1.7",
5563 "rimraf": "^2.6.1",
5564 "semver": "^5.3.0",
5565 "tar": "^4"
5566 }
5567 },
5568 "nopt": {
5569 "version": "4.0.1",
5570 "resolved": false,
5571 "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
5572 "dev": true,
5573 "optional": true,
5574 "requires": {
5575 "abbrev": "1",
5576 "osenv": "^0.1.4"
5577 }
5578 },
5579 "npm-bundled": {
5580 "version": "1.0.3",
5581 "resolved": false,
5582 "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==",
5583 "dev": true,
5584 "optional": true
5585 },
5586 "npm-packlist": {
5587 "version": "1.1.10",
5588 "resolved": false,
5589 "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==",
5590 "dev": true,
5591 "optional": true,
5592 "requires": {
5593 "ignore-walk": "^3.0.1",
5594 "npm-bundled": "^1.0.1"
5595 }
5596 },
5597 "npmlog": {
5598 "version": "4.1.2",
5599 "resolved": false,
5600 "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
5601 "dev": true,
5602 "optional": true,
5603 "requires": {
5604 "are-we-there-yet": "~1.1.2",
5605 "console-control-strings": "~1.1.0",
5606 "gauge": "~2.7.3",
5607 "set-blocking": "~2.0.0"
5608 }
5609 },
5610 "number-is-nan": {
5611 "version": "1.0.1",
5612 "resolved": false,
5613 "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
5614 "dev": true
5615 },
5616 "object-assign": {
5617 "version": "4.1.1",
5618 "resolved": false,
5619 "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
5620 "dev": true,
5621 "optional": true
5622 },
5623 "once": {
5624 "version": "1.4.0",
5625 "resolved": false,
5626 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
5627 "dev": true,
5628 "requires": {
5629 "wrappy": "1"
5630 }
5631 },
5632 "os-homedir": {
5633 "version": "1.0.2",
5634 "resolved": false,
5635 "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
5636 "dev": true,
5637 "optional": true
5638 },
5639 "os-tmpdir": {
5640 "version": "1.0.2",
5641 "resolved": false,
5642 "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
5643 "dev": true,
5644 "optional": true
5645 },
5646 "osenv": {
5647 "version": "0.1.5",
5648 "resolved": false,
5649 "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
5650 "dev": true,
5651 "optional": true,
5652 "requires": {
5653 "os-homedir": "^1.0.0",
5654 "os-tmpdir": "^1.0.0"
5655 }
5656 },
5657 "path-is-absolute": {
5658 "version": "1.0.1",
5659 "resolved": false,
5660 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
5661 "dev": true,
5662 "optional": true
5663 },
5664 "process-nextick-args": {
5665 "version": "2.0.0",
5666 "resolved": false,
5667 "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
5668 "dev": true,
5669 "optional": true
5670 },
5671 "rc": {
5672 "version": "1.2.7",
5673 "resolved": false,
5674 "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==",
5675 "dev": true,
5676 "optional": true,
5677 "requires": {
5678 "deep-extend": "^0.5.1",
5679 "ini": "~1.3.0",
5680 "minimist": "^1.2.0",
5681 "strip-json-comments": "~2.0.1"
5682 },
5683 "dependencies": {
5684 "minimist": {
5685 "version": "1.2.0",
5686 "resolved": false,
5687 "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
5688 "dev": true,
5689 "optional": true
5690 }
5691 }
5692 },
5693 "readable-stream": {
5694 "version": "2.3.6",
5695 "resolved": false,
5696 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
5697 "dev": true,
5698 "optional": true,
5699 "requires": {
5700 "core-util-is": "~1.0.0",
5701 "inherits": "~2.0.3",
5702 "isarray": "~1.0.0",
5703 "process-nextick-args": "~2.0.0",
5704 "safe-buffer": "~5.1.1",
5705 "string_decoder": "~1.1.1",
5706 "util-deprecate": "~1.0.1"
5707 }
5708 },
5709 "rimraf": {
5710 "version": "2.6.2",
5711 "resolved": false,
5712 "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
5713 "dev": true,
5714 "optional": true,
5715 "requires": {
5716 "glob": "^7.0.5"
5717 }
5718 },
5719 "safe-buffer": {
5720 "version": "5.1.1",
5721 "resolved": false,
5722 "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
5723 "dev": true
5724 },
5725 "safer-buffer": {
5726 "version": "2.1.2",
5727 "resolved": false,
5728 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
5729 "dev": true,
5730 "optional": true
5731 },
5732 "sax": {
5733 "version": "1.2.4",
5734 "resolved": false,
5735 "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
5736 "dev": true,
5737 "optional": true
5738 },
5739 "semver": {
5740 "version": "5.5.0",
5741 "resolved": false,
5742 "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
5743 "dev": true,
5744 "optional": true
5745 },
5746 "set-blocking": {
5747 "version": "2.0.0",
5748 "resolved": false,
5749 "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
5750 "dev": true,
5751 "optional": true
5752 },
5753 "signal-exit": {
5754 "version": "3.0.2",
5755 "resolved": false,
5756 "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
5757 "dev": true,
5758 "optional": true
5759 },
5760 "string-width": {
5761 "version": "1.0.2",
5762 "resolved": false,
5763 "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
5764 "dev": true,
5765 "requires": {
5766 "code-point-at": "^1.0.0",
5767 "is-fullwidth-code-point": "^1.0.0",
5768 "strip-ansi": "^3.0.0"
5769 }
5770 },
5771 "string_decoder": {
5772 "version": "1.1.1",
5773 "resolved": false,
5774 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
5775 "dev": true,
5776 "optional": true,
5777 "requires": {
5778 "safe-buffer": "~5.1.0"
5779 }
5780 },
5781 "strip-ansi": {
5782 "version": "3.0.1",
5783 "resolved": false,
5784 "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
5785 "dev": true,
5786 "requires": {
5787 "ansi-regex": "^2.0.0"
5788 }
5789 },
5790 "strip-json-comments": {
5791 "version": "2.0.1",
5792 "resolved": false,
5793 "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
5794 "dev": true,
5795 "optional": true
5796 },
5797 "tar": {
5798 "version": "4.4.1",
5799 "resolved": false,
5800 "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==",
5801 "dev": true,
5802 "optional": true,
5803 "requires": {
5804 "chownr": "^1.0.1",
5805 "fs-minipass": "^1.2.5",
5806 "minipass": "^2.2.4",
5807 "minizlib": "^1.1.0",
5808 "mkdirp": "^0.5.0",
5809 "safe-buffer": "^5.1.1",
5810 "yallist": "^3.0.2"
5811 }
5812 },
5813 "util-deprecate": {
5814 "version": "1.0.2",
5815 "resolved": false,
5816 "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
5817 "dev": true,
5818 "optional": true
5819 },
5820 "wide-align": {
5821 "version": "1.1.2",
5822 "resolved": false,
5823 "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==",
5824 "dev": true,
5825 "optional": true,
5826 "requires": {
5827 "string-width": "^1.0.2"
5828 }
5829 },
5830 "wrappy": {
5831 "version": "1.0.2",
5832 "resolved": false,
5833 "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
5834 "dev": true
5835 },
5836 "yallist": {
5837 "version": "3.0.2",
5838 "resolved": false,
5839 "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=",
5840 "dev": true
5841 }
5842 }
5843 },
5844 "fstream": {
5845 "version": "1.0.11",
5846 "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
5847 "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
5848 "dev": true,
5849 "requires": {
5850 "graceful-fs": "^4.1.2",
5851 "inherits": "~2.0.0",
5852 "mkdirp": ">=0.5 0",
5853 "rimraf": "2"
5854 }
5855 },
5856 "function-bind": {
5857 "version": "1.1.1",
5858 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
5859 "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
5860 "dev": true
5861 },
5862 "functional-red-black-tree": {
5863 "version": "1.0.1",
5864 "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
5865 "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
5866 "dev": true
5867 },
5868 "gauge": {
5869 "version": "2.7.4",
5870 "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
5871 "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
5872 "dev": true,
5873 "requires": {
5874 "aproba": "^1.0.3",
5875 "console-control-strings": "^1.0.0",
5876 "has-unicode": "^2.0.0",
5877 "object-assign": "^4.1.0",
5878 "signal-exit": "^3.0.0",
5879 "string-width": "^1.0.1",
5880 "strip-ansi": "^3.0.1",
5881 "wide-align": "^1.1.0"
5882 }
5883 },
5884 "gaze": {
5885 "version": "1.1.3",
5886 "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
5887 "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
5888 "dev": true,
5889 "requires": {
5890 "globule": "^1.0.0"
5891 }
5892 },
5893 "genfun": {
5894 "version": "5.0.0",
5895 "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz",
5896 "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA=="
5897 },
5898 "get-caller-file": {
5899 "version": "1.0.3",
5900 "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
5901 "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
5902 "dev": true
5903 },
5904 "get-stdin": {
5905 "version": "4.0.1",
5906 "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
5907 "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
5908 "dev": true
5909 },
5910 "get-stream": {
5911 "version": "3.0.0",
5912 "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
5913 "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
5914 "dev": true
5915 },
5916 "get-value": {
5917 "version": "2.0.6",
5918 "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
5919 "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
5920 },
5921 "getpass": {
5922 "version": "0.1.7",
5923 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
5924 "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
5925 "dev": true,
5926 "requires": {
5927 "assert-plus": "^1.0.0"
5928 }
5929 },
5930 "getroot": {
5931 "version": "1.0.0",
5932 "resolved": "https://registry.npmjs.org/getroot/-/getroot-1.0.0.tgz",
5933 "integrity": "sha512-W9Q31kOv921dQuZBeAbK4R/dAPbC0WkhZD3alLcdVwjSkEtS1aX8twrzG3I5yo0sQ88M/d4JOqVbRiCuI/XPNA==",
5934 "requires": {
5935 "tslib": "^1.7.1"
5936 }
5937 },
5938 "glob": {
5939 "version": "7.1.3",
5940 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
5941 "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
5942 "requires": {
5943 "fs.realpath": "^1.0.0",
5944 "inflight": "^1.0.4",
5945 "inherits": "2",
5946 "minimatch": "^3.0.4",
5947 "once": "^1.3.0",
5948 "path-is-absolute": "^1.0.0"
5949 }
5950 },
5951 "glob-base": {
5952 "version": "0.3.0",
5953 "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
5954 "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
5955 "requires": {
5956 "glob-parent": "^2.0.0",
5957 "is-glob": "^2.0.0"
5958 },
5959 "dependencies": {
5960 "glob-parent": {
5961 "version": "2.0.0",
5962 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
5963 "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
5964 "requires": {
5965 "is-glob": "^2.0.0"
5966 }
5967 },
5968 "is-extglob": {
5969 "version": "1.0.0",
5970 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
5971 "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
5972 },
5973 "is-glob": {
5974 "version": "2.0.1",
5975 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
5976 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
5977 "requires": {
5978 "is-extglob": "^1.0.0"
5979 }
5980 }
5981 }
5982 },
5983 "glob-parent": {
5984 "version": "3.1.0",
5985 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
5986 "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
5987 "dev": true,
5988 "requires": {
5989 "is-glob": "^3.1.0",
5990 "path-dirname": "^1.0.0"
5991 },
5992 "dependencies": {
5993 "is-glob": {
5994 "version": "3.1.0",
5995 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
5996 "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
5997 "dev": true,
5998 "requires": {
5999 "is-extglob": "^2.1.0"
6000 }
6001 }
6002 }
6003 },
6004 "glob-stream": {
6005 "version": "6.1.0",
6006 "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz",
6007 "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=",
6008 "dev": true,
6009 "requires": {
6010 "extend": "^3.0.0",
6011 "glob": "^7.1.1",
6012 "glob-parent": "^3.1.0",
6013 "is-negated-glob": "^1.0.0",
6014 "ordered-read-streams": "^1.0.0",
6015 "pumpify": "^1.3.5",
6016 "readable-stream": "^2.1.5",
6017 "remove-trailing-separator": "^1.0.1",
6018 "to-absolute-glob": "^2.0.0",
6019 "unique-stream": "^2.0.2"
6020 }
6021 },
6022 "glob-watcher": {
6023 "version": "5.0.1",
6024 "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.1.tgz",
6025 "integrity": "sha512-fK92r2COMC199WCyGUblrZKhjra3cyVMDiypDdqg1vsSDmexnbYivK1kNR4QItiNXLKmGlqan469ks67RtNa2g==",
6026 "dev": true,
6027 "requires": {
6028 "async-done": "^1.2.0",
6029 "chokidar": "^2.0.0",
6030 "just-debounce": "^1.0.0",
6031 "object.defaults": "^1.1.0"
6032 }
6033 },
6034 "glob2base": {
6035 "version": "0.0.12",
6036 "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz",
6037 "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=",
6038 "dev": true,
6039 "requires": {
6040 "find-index": "^0.1.1"
6041 }
6042 },
6043 "global-dirs": {
6044 "version": "0.1.1",
6045 "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
6046 "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
6047 "dev": true,
6048 "requires": {
6049 "ini": "^1.3.4"
6050 }
6051 },
6052 "global-modules": {
6053 "version": "1.0.0",
6054 "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
6055 "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
6056 "requires": {
6057 "global-prefix": "^1.0.1",
6058 "is-windows": "^1.0.1",
6059 "resolve-dir": "^1.0.0"
6060 }
6061 },
6062 "global-prefix": {
6063 "version": "1.0.2",
6064 "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
6065 "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
6066 "requires": {
6067 "expand-tilde": "^2.0.2",
6068 "homedir-polyfill": "^1.0.1",
6069 "ini": "^1.3.4",
6070 "is-windows": "^1.0.1",
6071 "which": "^1.2.14"
6072 },
6073 "dependencies": {
6074 "ini": {
6075 "version": "1.3.5",
6076 "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
6077 "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
6078 }
6079 }
6080 },
6081 "globby": {
6082 "version": "5.0.0",
6083 "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
6084 "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
6085 "dev": true,
6086 "requires": {
6087 "array-union": "^1.0.1",
6088 "arrify": "^1.0.0",
6089 "glob": "^7.0.3",
6090 "object-assign": "^4.0.1",
6091 "pify": "^2.0.0",
6092 "pinkie-promise": "^2.0.0"
6093 }
6094 },
6095 "globule": {
6096 "version": "1.2.1",
6097 "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
6098 "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
6099 "dev": true,
6100 "requires": {
6101 "glob": "~7.1.1",
6102 "lodash": "~4.17.10",
6103 "minimatch": "~3.0.2"
6104 }
6105 },
6106 "glogg": {
6107 "version": "1.0.1",
6108 "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz",
6109 "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==",
6110 "requires": {
6111 "sparkles": "^1.0.0"
6112 }
6113 },
6114 "got": {
6115 "version": "6.7.1",
6116 "resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz",
6117 "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
6118 "dev": true,
6119 "requires": {
6120 "create-error-class": "^3.0.0",
6121 "duplexer3": "^0.1.4",
6122 "get-stream": "^3.0.0",
6123 "is-redirect": "^1.0.0",
6124 "is-retry-allowed": "^1.0.0",
6125 "is-stream": "^1.0.0",
6126 "lowercase-keys": "^1.0.0",
6127 "safe-buffer": "^5.0.1",
6128 "timed-out": "^4.0.0",
6129 "unzip-response": "^2.0.1",
6130 "url-parse-lax": "^1.0.0"
6131 }
6132 },
6133 "graceful-fs": {
6134 "version": "4.1.11",
6135 "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
6136 "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
6137 },
6138 "gulp": {
6139 "version": "4.0.0",
6140 "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.0.tgz",
6141 "integrity": "sha1-lXZsYB2t5Kd+0+eyttwDiBtZY2Y=",
6142 "dev": true,
6143 "requires": {
6144 "glob-watcher": "^5.0.0",
6145 "gulp-cli": "^2.0.0",
6146 "undertaker": "^1.0.0",
6147 "vinyl-fs": "^3.0.0"
6148 },
6149 "dependencies": {
6150 "gulp-cli": {
6151 "version": "2.0.1",
6152 "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.0.1.tgz",
6153 "integrity": "sha512-RxujJJdN8/O6IW2nPugl7YazhmrIEjmiVfPKrWt68r71UCaLKS71Hp0gpKT+F6qOUFtr7KqtifDKaAJPRVvMYQ==",
6154 "dev": true,
6155 "requires": {
6156 "ansi-colors": "^1.0.1",
6157 "archy": "^1.0.0",
6158 "array-sort": "^1.0.0",
6159 "color-support": "^1.1.3",
6160 "concat-stream": "^1.6.0",
6161 "copy-props": "^2.0.1",
6162 "fancy-log": "^1.3.2",
6163 "gulplog": "^1.0.0",
6164 "interpret": "^1.1.0",
6165 "isobject": "^3.0.1",
6166 "liftoff": "^2.5.0",
6167 "matchdep": "^2.0.0",
6168 "mute-stdout": "^1.0.0",
6169 "pretty-hrtime": "^1.0.0",
6170 "replace-homedir": "^1.0.0",
6171 "semver-greatest-satisfied-range": "^1.1.0",
6172 "v8flags": "^3.0.1",
6173 "yargs": "^7.1.0"
6174 }
6175 }
6176 }
6177 },
6178 "gulp-babel": {
6179 "version": "8.0.0",
6180 "resolved": "https://registry.npmjs.org/gulp-babel/-/gulp-babel-8.0.0.tgz",
6181 "integrity": "sha512-oomaIqDXxFkg7lbpBou/gnUkX51/Y/M2ZfSjL2hdqXTAlSWZcgZtd2o0cOH0r/eE8LWD0+Q/PsLsr2DKOoqToQ==",
6182 "dev": true,
6183 "requires": {
6184 "plugin-error": "^1.0.1",
6185 "replace-ext": "^1.0.0",
6186 "through2": "^2.0.0",
6187 "vinyl-sourcemaps-apply": "^0.2.0"
6188 }
6189 },
6190 "gulp-cli": {
6191 "version": "1.2.2",
6192 "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-1.2.2.tgz",
6193 "integrity": "sha1-c5Le9jFsbnk5pPKW8/VAFRrjonU=",
6194 "requires": {
6195 "archy": "^1.0.0",
6196 "chalk": "^1.1.0",
6197 "fancy-log": "^1.1.0",
6198 "gulplog": "^1.0.0",
6199 "interpret": "^1.0.0",
6200 "liftoff": "^2.1.0",
6201 "lodash.isfunction": "^3.0.8",
6202 "lodash.isplainobject": "^4.0.4",
6203 "lodash.isstring": "^4.0.1",
6204 "lodash.sortby": "^4.5.0",
6205 "matchdep": "^1.0.0",
6206 "mute-stdout": "^1.0.0",
6207 "pretty-hrtime": "^1.0.0",
6208 "semver-greatest-satisfied-range": "^1.0.0",
6209 "tildify": "^1.0.0",
6210 "v8flags": "^2.0.9",
6211 "wreck": "^6.3.0",
6212 "yargs": "^3.28.0"
6213 },
6214 "dependencies": {
6215 "arr-diff": {
6216 "version": "2.0.0",
6217 "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
6218 "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
6219 "requires": {
6220 "arr-flatten": "^1.0.1"
6221 }
6222 },
6223 "array-unique": {
6224 "version": "0.2.1",
6225 "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
6226 "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
6227 },
6228 "braces": {
6229 "version": "1.8.5",
6230 "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
6231 "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
6232 "requires": {
6233 "expand-range": "^1.8.1",
6234 "preserve": "^0.2.0",
6235 "repeat-element": "^1.1.2"
6236 }
6237 },
6238 "camelcase": {
6239 "version": "2.1.1",
6240 "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
6241 "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
6242 },
6243 "expand-brackets": {
6244 "version": "0.1.5",
6245 "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
6246 "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
6247 "requires": {
6248 "is-posix-bracket": "^0.1.0"
6249 }
6250 },
6251 "extglob": {
6252 "version": "0.3.2",
6253 "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
6254 "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
6255 "requires": {
6256 "is-extglob": "^1.0.0"
6257 }
6258 },
6259 "findup-sync": {
6260 "version": "0.3.0",
6261 "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz",
6262 "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=",
6263 "requires": {
6264 "glob": "~5.0.0"
6265 }
6266 },
6267 "glob": {
6268 "version": "5.0.15",
6269 "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
6270 "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
6271 "requires": {
6272 "inflight": "^1.0.4",
6273 "inherits": "2",
6274 "minimatch": "2 || 3",
6275 "once": "^1.3.0",
6276 "path-is-absolute": "^1.0.0"
6277 }
6278 },
6279 "is-extglob": {
6280 "version": "1.0.0",
6281 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
6282 "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
6283 },
6284 "is-glob": {
6285 "version": "2.0.1",
6286 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
6287 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
6288 "requires": {
6289 "is-extglob": "^1.0.0"
6290 }
6291 },
6292 "kind-of": {
6293 "version": "3.2.2",
6294 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
6295 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
6296 "requires": {
6297 "is-buffer": "^1.1.5"
6298 }
6299 },
6300 "matchdep": {
6301 "version": "1.0.1",
6302 "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-1.0.1.tgz",
6303 "integrity": "sha1-pXozgESR+64girqPaDgEN6vC3KU=",
6304 "requires": {
6305 "findup-sync": "~0.3.0",
6306 "micromatch": "^2.3.7",
6307 "resolve": "~1.1.6",
6308 "stack-trace": "0.0.9"
6309 }
6310 },
6311 "micromatch": {
6312 "version": "2.3.11",
6313 "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
6314 "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
6315 "requires": {
6316 "arr-diff": "^2.0.0",
6317 "array-unique": "^0.2.1",
6318 "braces": "^1.8.2",
6319 "expand-brackets": "^0.1.4",
6320 "extglob": "^0.3.1",
6321 "filename-regex": "^2.0.0",
6322 "is-extglob": "^1.0.0",
6323 "is-glob": "^2.0.1",
6324 "kind-of": "^3.0.2",
6325 "normalize-path": "^2.0.1",
6326 "object.omit": "^2.0.0",
6327 "parse-glob": "^3.0.4",
6328 "regex-cache": "^0.4.2"
6329 }
6330 },
6331 "resolve": {
6332 "version": "1.1.7",
6333 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
6334 "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs="
6335 },
6336 "stack-trace": {
6337 "version": "0.0.9",
6338 "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz",
6339 "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU="
6340 },
6341 "v8flags": {
6342 "version": "2.1.1",
6343 "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
6344 "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=",
6345 "requires": {
6346 "user-home": "^1.1.1"
6347 }
6348 },
6349 "yargs": {
6350 "version": "3.32.0",
6351 "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
6352 "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=",
6353 "requires": {
6354 "camelcase": "^2.0.1",
6355 "cliui": "^3.0.3",
6356 "decamelize": "^1.1.1",
6357 "os-locale": "^1.4.0",
6358 "string-width": "^1.0.1",
6359 "window-size": "^0.1.4",
6360 "y18n": "^3.2.0"
6361 }
6362 }
6363 }
6364 },
6365 "gulp-sass": {
6366 "version": "4.0.2",
6367 "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-4.0.2.tgz",
6368 "integrity": "sha512-q8psj4+aDrblJMMtRxihNBdovfzGrXJp1l4JU0Sz4b/Mhsi2DPrKFYCGDwjIWRENs04ELVHxdOJQ7Vs98OFohg==",
6369 "dev": true,
6370 "requires": {
6371 "chalk": "^2.3.0",
6372 "lodash.clonedeep": "^4.3.2",
6373 "node-sass": "^4.8.3",
6374 "plugin-error": "^1.0.1",
6375 "replace-ext": "^1.0.0",
6376 "strip-ansi": "^4.0.0",
6377 "through2": "^2.0.0",
6378 "vinyl-sourcemaps-apply": "^0.2.0"
6379 },
6380 "dependencies": {
6381 "ansi-regex": {
6382 "version": "3.0.0",
6383 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
6384 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
6385 "dev": true
6386 },
6387 "ansi-styles": {
6388 "version": "3.2.1",
6389 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
6390 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
6391 "dev": true,
6392 "requires": {
6393 "color-convert": "^1.9.0"
6394 }
6395 },
6396 "chalk": {
6397 "version": "2.4.1",
6398 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
6399 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
6400 "dev": true,
6401 "requires": {
6402 "ansi-styles": "^3.2.1",
6403 "escape-string-regexp": "^1.0.5",
6404 "supports-color": "^5.3.0"
6405 }
6406 },
6407 "strip-ansi": {
6408 "version": "4.0.0",
6409 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
6410 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
6411 "dev": true,
6412 "requires": {
6413 "ansi-regex": "^3.0.0"
6414 }
6415 },
6416 "supports-color": {
6417 "version": "5.5.0",
6418 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
6419 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
6420 "dev": true,
6421 "requires": {
6422 "has-flag": "^3.0.0"
6423 }
6424 }
6425 }
6426 },
6427 "gulp-sass-variables": {
6428 "version": "1.2.0",
6429 "resolved": "https://registry.npmjs.org/gulp-sass-variables/-/gulp-sass-variables-1.2.0.tgz",
6430 "integrity": "sha512-xdRyM/OXlRLcK2rN4K7cucc/5eHoqS1MLgAI79tW5gRYAdxF8pYX7Zuj89zu4RchX9nr2Yu/jIC146V/6w7TnA==",
6431 "dev": true,
6432 "requires": {
6433 "plugin-error": "^1.0.1",
6434 "through2": "^2.0.1"
6435 }
6436 },
6437 "gulp-server-livereload": {
6438 "version": "1.9.2",
6439 "resolved": "https://registry.npmjs.org/gulp-server-livereload/-/gulp-server-livereload-1.9.2.tgz",
6440 "integrity": "sha1-PbIn80Y8/k8pv2WgE7qhYuKnQMY=",
6441 "dev": true,
6442 "requires": {
6443 "commander": "^2.8.1",
6444 "connect": "~3.1.1",
6445 "connect-inject": "~0.3.2",
6446 "glogg": "^1.0.0",
6447 "gulp-util": "^3.0.7",
6448 "gulplog": "^1.0.0",
6449 "lodash": "^4.0.0",
6450 "node-watch": "^0.3.4",
6451 "node.extend": "~1.0.10",
6452 "open": "~0.0.5",
6453 "proxy-middleware": "~0.15.0",
6454 "serve-index": "~1.1.4",
6455 "serve-static": "~1.5.2",
6456 "socket.io": "^1.4.4",
6457 "through2": "~0.5.1",
6458 "vinyl-fs": "^1.0.0"
6459 },
6460 "dependencies": {
6461 "clone": {
6462 "version": "0.2.0",
6463 "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
6464 "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
6465 "dev": true
6466 },
6467 "clone-stats": {
6468 "version": "0.0.1",
6469 "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
6470 "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
6471 "dev": true
6472 },
6473 "gaze": {
6474 "version": "0.5.2",
6475 "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz",
6476 "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=",
6477 "dev": true,
6478 "requires": {
6479 "globule": "~0.1.0"
6480 }
6481 },
6482 "glob": {
6483 "version": "4.5.3",
6484 "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
6485 "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=",
6486 "dev": true,
6487 "requires": {
6488 "inflight": "^1.0.4",
6489 "inherits": "2",
6490 "minimatch": "^2.0.1",
6491 "once": "^1.3.0"
6492 }
6493 },
6494 "glob-stream": {
6495 "version": "4.1.1",
6496 "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-4.1.1.tgz",
6497 "integrity": "sha1-uELfENaIx+trz869hG84UilrMgA=",
6498 "dev": true,
6499 "requires": {
6500 "glob": "^4.3.1",
6501 "glob2base": "^0.0.12",
6502 "minimatch": "^2.0.1",
6503 "ordered-read-streams": "^0.1.0",
6504 "through2": "^0.6.1",
6505 "unique-stream": "^2.0.2"
6506 },
6507 "dependencies": {
6508 "through2": {
6509 "version": "0.6.5",
6510 "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
6511 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
6512 "dev": true,
6513 "requires": {
6514 "readable-stream": ">=1.0.33-1 <1.1.0-0",
6515 "xtend": ">=4.0.0 <4.1.0-0"
6516 }
6517 },
6518 "xtend": {
6519 "version": "4.0.1",
6520 "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
6521 "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
6522 "dev": true
6523 }
6524 }
6525 },
6526 "glob-watcher": {
6527 "version": "0.0.8",
6528 "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.8.tgz",
6529 "integrity": "sha1-aK62Yefizo02NDgbLsQV8AxrwqQ=",
6530 "dev": true,
6531 "requires": {
6532 "gaze": "^0.5.1"
6533 }
6534 },
6535 "globule": {
6536 "version": "0.1.0",
6537 "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz",
6538 "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=",
6539 "dev": true,
6540 "requires": {
6541 "glob": "~3.1.21",
6542 "lodash": "~1.0.1",
6543 "minimatch": "~0.2.11"
6544 },
6545 "dependencies": {
6546 "glob": {
6547 "version": "3.1.21",
6548 "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
6549 "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
6550 "dev": true,
6551 "requires": {
6552 "graceful-fs": "~1.2.0",
6553 "inherits": "1",
6554 "minimatch": "~0.2.11"
6555 }
6556 },
6557 "graceful-fs": {
6558 "version": "1.2.3",
6559 "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
6560 "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
6561 "dev": true
6562 },
6563 "inherits": {
6564 "version": "1.0.2",
6565 "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
6566 "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
6567 "dev": true
6568 },
6569 "lodash": {
6570 "version": "1.0.2",
6571 "resolved": "http://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz",
6572 "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=",
6573 "dev": true
6574 },
6575 "minimatch": {
6576 "version": "0.2.14",
6577 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
6578 "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
6579 "dev": true,
6580 "requires": {
6581 "lru-cache": "2",
6582 "sigmund": "~1.0.0"
6583 }
6584 }
6585 }
6586 },
6587 "graceful-fs": {
6588 "version": "3.0.11",
6589 "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
6590 "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
6591 "dev": true,
6592 "requires": {
6593 "natives": "^1.1.0"
6594 }
6595 },
6596 "isarray": {
6597 "version": "0.0.1",
6598 "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
6599 "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
6600 "dev": true
6601 },
6602 "lru-cache": {
6603 "version": "2.7.3",
6604 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
6605 "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
6606 "dev": true
6607 },
6608 "minimatch": {
6609 "version": "2.0.10",
6610 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
6611 "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
6612 "dev": true,
6613 "requires": {
6614 "brace-expansion": "^1.0.0"
6615 }
6616 },
6617 "object-assign": {
6618 "version": "2.1.1",
6619 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
6620 "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=",
6621 "dev": true
6622 },
6623 "ordered-read-streams": {
6624 "version": "0.1.0",
6625 "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz",
6626 "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=",
6627 "dev": true
6628 },
6629 "readable-stream": {
6630 "version": "1.0.34",
6631 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
6632 "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
6633 "dev": true,
6634 "requires": {
6635 "core-util-is": "~1.0.0",
6636 "inherits": "~2.0.1",
6637 "isarray": "0.0.1",
6638 "string_decoder": "~0.10.x"
6639 }
6640 },
6641 "string_decoder": {
6642 "version": "0.10.31",
6643 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
6644 "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
6645 "dev": true
6646 },
6647 "strip-bom": {
6648 "version": "1.0.0",
6649 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz",
6650 "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=",
6651 "dev": true,
6652 "requires": {
6653 "first-chunk-stream": "^1.0.0",
6654 "is-utf8": "^0.2.0"
6655 }
6656 },
6657 "through2": {
6658 "version": "0.5.1",
6659 "resolved": "https://registry.npmjs.org/through2/-/through2-0.5.1.tgz",
6660 "integrity": "sha1-390BLrnHAOIyP9M084rGIqs3Lac=",
6661 "dev": true,
6662 "requires": {
6663 "readable-stream": "~1.0.17",
6664 "xtend": "~3.0.0"
6665 }
6666 },
6667 "vinyl": {
6668 "version": "0.4.6",
6669 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
6670 "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
6671 "dev": true,
6672 "requires": {
6673 "clone": "^0.2.0",
6674 "clone-stats": "^0.0.1"
6675 }
6676 },
6677 "vinyl-fs": {
6678 "version": "1.0.0",
6679 "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-1.0.0.tgz",
6680 "integrity": "sha1-0VdS5owtrXQ2Tn6FNHNzU1RpLt8=",
6681 "dev": true,
6682 "requires": {
6683 "duplexify": "^3.2.0",
6684 "glob-stream": "^4.0.1",
6685 "glob-watcher": "^0.0.8",
6686 "graceful-fs": "^3.0.0",
6687 "merge-stream": "^0.1.7",
6688 "mkdirp": "^0.5.0",
6689 "object-assign": "^2.0.0",
6690 "strip-bom": "^1.0.0",
6691 "through2": "^0.6.1",
6692 "vinyl": "^0.4.0"
6693 },
6694 "dependencies": {
6695 "through2": {
6696 "version": "0.6.5",
6697 "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
6698 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
6699 "dev": true,
6700 "requires": {
6701 "readable-stream": ">=1.0.33-1 <1.1.0-0",
6702 "xtend": ">=4.0.0 <4.1.0-0"
6703 }
6704 },
6705 "xtend": {
6706 "version": "4.0.1",
6707 "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
6708 "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
6709 "dev": true
6710 }
6711 }
6712 },
6713 "xtend": {
6714 "version": "3.0.0",
6715 "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz",
6716 "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=",
6717 "dev": true
6718 }
6719 }
6720 },
6721 "gulp-util": {
6722 "version": "3.0.8",
6723 "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz",
6724 "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=",
6725 "dev": true,
6726 "requires": {
6727 "array-differ": "^1.0.0",
6728 "array-uniq": "^1.0.2",
6729 "beeper": "^1.0.0",
6730 "chalk": "^1.0.0",
6731 "dateformat": "^2.0.0",
6732 "fancy-log": "^1.1.0",
6733 "gulplog": "^1.0.0",
6734 "has-gulplog": "^0.1.0",
6735 "lodash._reescape": "^3.0.0",
6736 "lodash._reevaluate": "^3.0.0",
6737 "lodash._reinterpolate": "^3.0.0",
6738 "lodash.template": "^3.0.0",
6739 "minimist": "^1.1.0",
6740 "multipipe": "^0.1.2",
6741 "object-assign": "^3.0.0",
6742 "replace-ext": "0.0.1",
6743 "through2": "^2.0.0",
6744 "vinyl": "^0.5.0"
6745 },
6746 "dependencies": {
6747 "clone": {
6748 "version": "1.0.4",
6749 "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
6750 "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
6751 "dev": true
6752 },
6753 "clone-stats": {
6754 "version": "0.0.1",
6755 "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
6756 "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
6757 "dev": true
6758 },
6759 "object-assign": {
6760 "version": "3.0.0",
6761 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
6762 "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
6763 "dev": true
6764 },
6765 "replace-ext": {
6766 "version": "0.0.1",
6767 "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
6768 "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
6769 "dev": true
6770 },
6771 "vinyl": {
6772 "version": "0.5.3",
6773 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
6774 "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
6775 "dev": true,
6776 "requires": {
6777 "clone": "^1.0.0",
6778 "clone-stats": "^0.0.1",
6779 "replace-ext": "0.0.1"
6780 }
6781 }
6782 }
6783 },
6784 "gulplog": {
6785 "version": "1.0.0",
6786 "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
6787 "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
6788 "requires": {
6789 "glogg": "^1.0.0"
6790 }
6791 },
6792 "har-schema": {
6793 "version": "2.0.0",
6794 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
6795 "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
6796 "dev": true
6797 },
6798 "har-validator": {
6799 "version": "5.1.0",
6800 "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz",
6801 "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==",
6802 "dev": true,
6803 "requires": {
6804 "ajv": "^5.3.0",
6805 "har-schema": "^2.0.0"
6806 }
6807 },
6808 "has": {
6809 "version": "1.0.3",
6810 "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
6811 "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
6812 "dev": true,
6813 "requires": {
6814 "function-bind": "^1.1.1"
6815 }
6816 },
6817 "has-ansi": {
6818 "version": "2.0.0",
6819 "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
6820 "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
6821 "requires": {
6822 "ansi-regex": "^2.0.0"
6823 }
6824 },
6825 "has-binary": {
6826 "version": "0.1.7",
6827 "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz",
6828 "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=",
6829 "dev": true,
6830 "requires": {
6831 "isarray": "0.0.1"
6832 },
6833 "dependencies": {
6834 "isarray": {
6835 "version": "0.0.1",
6836 "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
6837 "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
6838 "dev": true
6839 }
6840 }
6841 },
6842 "has-cors": {
6843 "version": "1.1.0",
6844 "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
6845 "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=",
6846 "dev": true
6847 },
6848 "has-flag": {
6849 "version": "3.0.0",
6850 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
6851 "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
6852 "dev": true
6853 },
6854 "has-gulplog": {
6855 "version": "0.1.0",
6856 "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
6857 "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
6858 "dev": true,
6859 "requires": {
6860 "sparkles": "^1.0.0"
6861 }
6862 },
6863 "has-symbols": {
6864 "version": "1.0.0",
6865 "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
6866 "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
6867 "dev": true
6868 },
6869 "has-unicode": {
6870 "version": "2.0.1",
6871 "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
6872 "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
6873 "dev": true
6874 },
6875 "has-value": {
6876 "version": "1.0.0",
6877 "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
6878 "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
6879 "requires": {
6880 "get-value": "^2.0.6",
6881 "has-values": "^1.0.0",
6882 "isobject": "^3.0.0"
6883 }
6884 },
6885 "has-values": {
6886 "version": "1.0.0",
6887 "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
6888 "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
6889 "requires": {
6890 "is-number": "^3.0.0",
6891 "kind-of": "^4.0.0"
6892 },
6893 "dependencies": {
6894 "kind-of": {
6895 "version": "4.0.0",
6896 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
6897 "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
6898 "requires": {
6899 "is-buffer": "^1.1.5"
6900 }
6901 }
6902 }
6903 },
6904 "hex-rgb": {
6905 "version": "3.0.0",
6906 "resolved": "https://registry.npmjs.org/hex-rgb/-/hex-rgb-3.0.0.tgz",
6907 "integrity": "sha512-iWOUTZu7KQGhErV8JfTQDH5F/M2D0HVd0sexS4Grg4e4RYAiN3c4jfpPqKgfedqeebKcNZBl2z3zlgCtFjpFJQ==",
6908 "dev": true
6909 },
6910 "history": {
6911 "version": "3.3.0",
6912 "resolved": "https://registry.npmjs.org/history/-/history-3.3.0.tgz",
6913 "integrity": "sha1-/O3M6PEpdTcVRdc1RhAzV5ptrpw=",
6914 "requires": {
6915 "invariant": "^2.2.1",
6916 "loose-envify": "^1.2.0",
6917 "query-string": "^4.2.2",
6918 "warning": "^3.0.0"
6919 }
6920 },
6921 "hoek": {
6922 "version": "2.16.3",
6923 "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
6924 "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
6925 },
6926 "hoist-non-react-statics": {
6927 "version": "2.5.5",
6928 "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz",
6929 "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw=="
6930 },
6931 "home-path": {
6932 "version": "1.0.6",
6933 "resolved": "https://registry.npmjs.org/home-path/-/home-path-1.0.6.tgz",
6934 "integrity": "sha512-wo+yjrdAtoXt43Vy92a+0IPCYViiyLAHyp0QVS4xL/tfvVz5sXIW1ubLZk3nhVkD92fQpUMKX+fzMjr5F489vw==",
6935 "dev": true
6936 },
6937 "homedir-polyfill": {
6938 "version": "1.0.1",
6939 "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz",
6940 "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=",
6941 "requires": {
6942 "parse-passwd": "^1.0.0"
6943 }
6944 },
6945 "hosted-git-info": {
6946 "version": "2.7.1",
6947 "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
6948 "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w=="
6949 },
6950 "htmlparser2": {
6951 "version": "3.10.0",
6952 "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.0.tgz",
6953 "integrity": "sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ==",
6954 "requires": {
6955 "domelementtype": "^1.3.0",
6956 "domhandler": "^2.3.0",
6957 "domutils": "^1.5.1",
6958 "entities": "^1.1.1",
6959 "inherits": "^2.0.1",
6960 "readable-stream": "^3.0.6"
6961 },
6962 "dependencies": {
6963 "readable-stream": {
6964 "version": "3.0.6",
6965 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.6.tgz",
6966 "integrity": "sha512-9E1oLoOWfhSXHGv6QlwXJim7uNzd9EVlWK+21tCU9Ju/kR0/p2AZYPz4qSchgO8PlLIH4FpZYfzwS+rEksZjIg==",
6967 "requires": {
6968 "inherits": "^2.0.3",
6969 "string_decoder": "^1.1.1",
6970 "util-deprecate": "^1.0.1"
6971 }
6972 }
6973 }
6974 },
6975 "http-cache-semantics": {
6976 "version": "3.8.1",
6977 "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
6978 "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w=="
6979 },
6980 "http-proxy-agent": {
6981 "version": "2.1.0",
6982 "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz",
6983 "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==",
6984 "requires": {
6985 "agent-base": "4",
6986 "debug": "3.1.0"
6987 },
6988 "dependencies": {
6989 "debug": {
6990 "version": "3.1.0",
6991 "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
6992 "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
6993 "requires": {
6994 "ms": "2.0.0"
6995 }
6996 }
6997 }
6998 },
6999 "http-signature": {
7000 "version": "1.2.0",
7001 "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
7002 "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
7003 "dev": true,
7004 "requires": {
7005 "assert-plus": "^1.0.0",
7006 "jsprim": "^1.2.2",
7007 "sshpk": "^1.7.0"
7008 }
7009 },
7010 "https-proxy-agent": {
7011 "version": "2.2.1",
7012 "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
7013 "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
7014 "requires": {
7015 "agent-base": "^4.1.0",
7016 "debug": "^3.1.0"
7017 },
7018 "dependencies": {
7019 "debug": {
7020 "version": "3.2.6",
7021 "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
7022 "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
7023 "requires": {
7024 "ms": "^2.1.1"
7025 }
7026 },
7027 "ms": {
7028 "version": "2.1.1",
7029 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
7030 "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
7031 }
7032 }
7033 },
7034 "humanize-ms": {
7035 "version": "1.2.1",
7036 "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
7037 "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=",
7038 "requires": {
7039 "ms": "^2.0.0"
7040 }
7041 },
7042 "hunspell-asm": {
7043 "version": "1.0.2",
7044 "resolved": "http://registry.npmjs.org/hunspell-asm/-/hunspell-asm-1.0.2.tgz",
7045 "integrity": "sha512-UTLBvc0yZiIcHl9qrgxnFTZbX3zF4CprzEY+u+N0iXlUKZnUJRIgvgppTdgiQTsucm5b0aN/rHsgXz2q/0kBRA==",
7046 "requires": {
7047 "emscripten-wasm-loader": "^1.0.0",
7048 "nanoid": "^1.0.2",
7049 "tslib": "^1.9.0",
7050 "unixify": "^1.0.0"
7051 }
7052 },
7053 "hunspell-dict-downloader": {
7054 "version": "1.0.0",
7055 "resolved": "https://registry.npmjs.org/hunspell-dict-downloader/-/hunspell-dict-downloader-1.0.0.tgz",
7056 "integrity": "sha512-HKVIcQPG8/S3lv+zAsD0dDqDCPM+ICFBUIUqcCTgE6WNDqMYc34pi1XuVjQGhMD901UxcTA+cns/PMoNLGPBJA==",
7057 "requires": {
7058 "fs-extra": "^7.0.0",
7059 "lodash.includes": "^4.3.0",
7060 "md5-file": "^4.0.0",
7061 "pacote": "^9.1.0",
7062 "pify": "^4.0.1",
7063 "tslib": "^1.9.3"
7064 },
7065 "dependencies": {
7066 "pify": {
7067 "version": "4.0.1",
7068 "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
7069 "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
7070 }
7071 }
7072 },
7073 "husky": {
7074 "version": "1.1.4",
7075 "resolved": "https://registry.npmjs.org/husky/-/husky-1.1.4.tgz",
7076 "integrity": "sha512-cZjGpS7qsaBSo3fOMUuR7erQloX3l5XzL1v/RkIqU6zrQImDdU70z5Re9fGDp7+kbYlM2EtS4aYMlahBeiCUGw==",
7077 "dev": true,
7078 "requires": {
7079 "cosmiconfig": "^5.0.6",
7080 "execa": "^1.0.0",
7081 "find-up": "^3.0.0",
7082 "get-stdin": "^6.0.0",
7083 "is-ci": "^1.2.1",
7084 "pkg-dir": "^3.0.0",
7085 "please-upgrade-node": "^3.1.1",
7086 "read-pkg": "^4.0.1",
7087 "run-node": "^1.0.0",
7088 "slash": "^2.0.0"
7089 },
7090 "dependencies": {
7091 "execa": {
7092 "version": "1.0.0",
7093 "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
7094 "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
7095 "dev": true,
7096 "requires": {
7097 "cross-spawn": "^6.0.0",
7098 "get-stream": "^4.0.0",
7099 "is-stream": "^1.1.0",
7100 "npm-run-path": "^2.0.0",
7101 "p-finally": "^1.0.0",
7102 "signal-exit": "^3.0.0",
7103 "strip-eof": "^1.0.0"
7104 }
7105 },
7106 "find-up": {
7107 "version": "3.0.0",
7108 "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
7109 "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
7110 "dev": true,
7111 "requires": {
7112 "locate-path": "^3.0.0"
7113 }
7114 },
7115 "get-stdin": {
7116 "version": "6.0.0",
7117 "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz",
7118 "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==",
7119 "dev": true
7120 },
7121 "get-stream": {
7122 "version": "4.1.0",
7123 "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
7124 "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
7125 "dev": true,
7126 "requires": {
7127 "pump": "^3.0.0"
7128 }
7129 },
7130 "locate-path": {
7131 "version": "3.0.0",
7132 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
7133 "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
7134 "dev": true,
7135 "requires": {
7136 "p-locate": "^3.0.0",
7137 "path-exists": "^3.0.0"
7138 }
7139 },
7140 "p-limit": {
7141 "version": "2.0.0",
7142 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
7143 "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
7144 "dev": true,
7145 "requires": {
7146 "p-try": "^2.0.0"
7147 }
7148 },
7149 "p-locate": {
7150 "version": "3.0.0",
7151 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
7152 "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
7153 "dev": true,
7154 "requires": {
7155 "p-limit": "^2.0.0"
7156 }
7157 },
7158 "p-try": {
7159 "version": "2.0.0",
7160 "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
7161 "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
7162 "dev": true
7163 },
7164 "parse-json": {
7165 "version": "4.0.0",
7166 "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
7167 "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
7168 "dev": true,
7169 "requires": {
7170 "error-ex": "^1.3.1",
7171 "json-parse-better-errors": "^1.0.1"
7172 }
7173 },
7174 "path-exists": {
7175 "version": "3.0.0",
7176 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
7177 "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
7178 "dev": true
7179 },
7180 "pify": {
7181 "version": "3.0.0",
7182 "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
7183 "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
7184 "dev": true
7185 },
7186 "pkg-dir": {
7187 "version": "3.0.0",
7188 "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
7189 "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
7190 "dev": true,
7191 "requires": {
7192 "find-up": "^3.0.0"
7193 }
7194 },
7195 "pump": {
7196 "version": "3.0.0",
7197 "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
7198 "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
7199 "dev": true,
7200 "requires": {
7201 "end-of-stream": "^1.1.0",
7202 "once": "^1.3.1"
7203 }
7204 },
7205 "read-pkg": {
7206 "version": "4.0.1",
7207 "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz",
7208 "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=",
7209 "dev": true,
7210 "requires": {
7211 "normalize-package-data": "^2.3.2",
7212 "parse-json": "^4.0.0",
7213 "pify": "^3.0.0"
7214 }
7215 }
7216 }
7217 },
7218 "hyphenate-style-name": {
7219 "version": "1.0.2",
7220 "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz",
7221 "integrity": "sha1-MRYKNpMK2vH8BMYHT360FGXU7Es="
7222 },
7223 "iconv-lite": {
7224 "version": "0.4.24",
7225 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
7226 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
7227 "requires": {
7228 "safer-buffer": ">= 2.1.2 < 3"
7229 }
7230 },
7231 "iferr": {
7232 "version": "0.1.5",
7233 "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
7234 "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE="
7235 },
7236 "ignore": {
7237 "version": "3.3.10",
7238 "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
7239 "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
7240 "dev": true
7241 },
7242 "ignore-walk": {
7243 "version": "3.0.1",
7244 "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz",
7245 "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
7246 "requires": {
7247 "minimatch": "^3.0.4"
7248 }
7249 },
7250 "import-fresh": {
7251 "version": "2.0.0",
7252 "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
7253 "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
7254 "dev": true,
7255 "requires": {
7256 "caller-path": "^2.0.0",
7257 "resolve-from": "^3.0.0"
7258 },
7259 "dependencies": {
7260 "caller-path": {
7261 "version": "2.0.0",
7262 "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
7263 "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
7264 "dev": true,
7265 "requires": {
7266 "caller-callsite": "^2.0.0"
7267 }
7268 },
7269 "resolve-from": {
7270 "version": "3.0.0",
7271 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
7272 "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
7273 "dev": true
7274 }
7275 }
7276 },
7277 "import-lazy": {
7278 "version": "2.1.0",
7279 "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
7280 "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
7281 "dev": true
7282 },
7283 "imurmurhash": {
7284 "version": "0.1.4",
7285 "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
7286 "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
7287 },
7288 "in-publish": {
7289 "version": "2.0.0",
7290 "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
7291 "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
7292 "dev": true
7293 },
7294 "indent-string": {
7295 "version": "2.1.0",
7296 "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
7297 "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
7298 "dev": true,
7299 "requires": {
7300 "repeating": "^2.0.0"
7301 }
7302 },
7303 "indexof": {
7304 "version": "0.0.1",
7305 "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
7306 "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
7307 "dev": true
7308 },
7309 "inflight": {
7310 "version": "1.0.6",
7311 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
7312 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
7313 "requires": {
7314 "once": "^1.3.0",
7315 "wrappy": "1"
7316 }
7317 },
7318 "inherits": {
7319 "version": "2.0.3",
7320 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
7321 "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
7322 },
7323 "ini": {
7324 "version": "1.3.5",
7325 "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
7326 "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
7327 },
7328 "inquirer": {
7329 "version": "3.3.0",
7330 "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
7331 "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
7332 "dev": true,
7333 "requires": {
7334 "ansi-escapes": "^3.0.0",
7335 "chalk": "^2.0.0",
7336 "cli-cursor": "^2.1.0",
7337 "cli-width": "^2.0.0",
7338 "external-editor": "^2.0.4",
7339 "figures": "^2.0.0",
7340 "lodash": "^4.3.0",
7341 "mute-stream": "0.0.7",
7342 "run-async": "^2.2.0",
7343 "rx-lite": "^4.0.8",
7344 "rx-lite-aggregates": "^4.0.8",
7345 "string-width": "^2.1.0",
7346 "strip-ansi": "^4.0.0",
7347 "through": "^2.3.6"
7348 },
7349 "dependencies": {
7350 "ansi-regex": {
7351 "version": "3.0.0",
7352 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
7353 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
7354 "dev": true
7355 },
7356 "ansi-styles": {
7357 "version": "3.2.1",
7358 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
7359 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
7360 "dev": true,
7361 "requires": {
7362 "color-convert": "^1.9.0"
7363 }
7364 },
7365 "chalk": {
7366 "version": "2.4.1",
7367 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
7368 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
7369 "dev": true,
7370 "requires": {
7371 "ansi-styles": "^3.2.1",
7372 "escape-string-regexp": "^1.0.5",
7373 "supports-color": "^5.3.0"
7374 }
7375 },
7376 "is-fullwidth-code-point": {
7377 "version": "2.0.0",
7378 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
7379 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
7380 "dev": true
7381 },
7382 "string-width": {
7383 "version": "2.1.1",
7384 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
7385 "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
7386 "dev": true,
7387 "requires": {
7388 "is-fullwidth-code-point": "^2.0.0",
7389 "strip-ansi": "^4.0.0"
7390 }
7391 },
7392 "strip-ansi": {
7393 "version": "4.0.0",
7394 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
7395 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
7396 "dev": true,
7397 "requires": {
7398 "ansi-regex": "^3.0.0"
7399 }
7400 },
7401 "supports-color": {
7402 "version": "5.5.0",
7403 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
7404 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
7405 "dev": true,
7406 "requires": {
7407 "has-flag": "^3.0.0"
7408 }
7409 }
7410 }
7411 },
7412 "interpret": {
7413 "version": "1.1.0",
7414 "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
7415 "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ="
7416 },
7417 "intl-format-cache": {
7418 "version": "2.1.0",
7419 "resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.1.0.tgz",
7420 "integrity": "sha1-BKNp/sv61tpgBbrh8UMzMy3PkxY="
7421 },
7422 "intl-messageformat": {
7423 "version": "2.2.0",
7424 "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz",
7425 "integrity": "sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=",
7426 "requires": {
7427 "intl-messageformat-parser": "1.4.0"
7428 }
7429 },
7430 "intl-messageformat-parser": {
7431 "version": "1.4.0",
7432 "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz",
7433 "integrity": "sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU="
7434 },
7435 "intl-relativeformat": {
7436 "version": "2.1.0",
7437 "resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.1.0.tgz",
7438 "integrity": "sha1-AQ8RBYAiUfQKxH0OPhogE0iiVd8=",
7439 "requires": {
7440 "intl-messageformat": "^2.0.0"
7441 }
7442 },
7443 "invariant": {
7444 "version": "2.2.4",
7445 "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
7446 "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
7447 "requires": {
7448 "loose-envify": "^1.0.0"
7449 }
7450 },
7451 "invert-kv": {
7452 "version": "1.0.0",
7453 "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
7454 "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
7455 },
7456 "ip": {
7457 "version": "1.1.5",
7458 "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
7459 "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
7460 },
7461 "is": {
7462 "version": "0.3.0",
7463 "resolved": "http://registry.npmjs.org/is/-/is-0.3.0.tgz",
7464 "integrity": "sha1-qPcd/IpuKDcWJ/JskpCYxvTV1dc=",
7465 "dev": true
7466 },
7467 "is-absolute": {
7468 "version": "1.0.0",
7469 "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
7470 "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
7471 "requires": {
7472 "is-relative": "^1.0.0",
7473 "is-windows": "^1.0.1"
7474 }
7475 },
7476 "is-accessor-descriptor": {
7477 "version": "0.1.6",
7478 "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
7479 "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
7480 "requires": {
7481 "kind-of": "^3.0.2"
7482 },
7483 "dependencies": {
7484 "kind-of": {
7485 "version": "3.2.2",
7486 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
7487 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
7488 "requires": {
7489 "is-buffer": "^1.1.5"
7490 }
7491 }
7492 }
7493 },
7494 "is-arrayish": {
7495 "version": "0.2.1",
7496 "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
7497 "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
7498 "dev": true
7499 },
7500 "is-binary-path": {
7501 "version": "1.0.1",
7502 "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
7503 "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
7504 "dev": true,
7505 "requires": {
7506 "binary-extensions": "^1.0.0"
7507 }
7508 },
7509 "is-buffer": {
7510 "version": "1.1.6",
7511 "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
7512 "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
7513 },
7514 "is-builtin-module": {
7515 "version": "1.0.0",
7516 "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
7517 "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
7518 "requires": {
7519 "builtin-modules": "^1.0.0"
7520 }
7521 },
7522 "is-callable": {
7523 "version": "1.1.4",
7524 "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
7525 "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
7526 "dev": true
7527 },
7528 "is-ci": {
7529 "version": "1.2.1",
7530 "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz",
7531 "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
7532 "dev": true,
7533 "requires": {
7534 "ci-info": "^1.5.0"
7535 }
7536 },
7537 "is-data-descriptor": {
7538 "version": "0.1.4",
7539 "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
7540 "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
7541 "requires": {
7542 "kind-of": "^3.0.2"
7543 },
7544 "dependencies": {
7545 "kind-of": {
7546 "version": "3.2.2",
7547 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
7548 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
7549 "requires": {
7550 "is-buffer": "^1.1.5"
7551 }
7552 }
7553 }
7554 },
7555 "is-date-object": {
7556 "version": "1.0.1",
7557 "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
7558 "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
7559 "dev": true
7560 },
7561 "is-descriptor": {
7562 "version": "0.1.6",
7563 "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
7564 "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
7565 "requires": {
7566 "is-accessor-descriptor": "^0.1.6",
7567 "is-data-descriptor": "^0.1.4",
7568 "kind-of": "^5.0.0"
7569 },
7570 "dependencies": {
7571 "kind-of": {
7572 "version": "5.1.0",
7573 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
7574 "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
7575 }
7576 }
7577 },
7578 "is-directory": {
7579 "version": "0.3.1",
7580 "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
7581 "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
7582 "dev": true
7583 },
7584 "is-dotfile": {
7585 "version": "1.0.3",
7586 "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
7587 "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE="
7588 },
7589 "is-equal-shallow": {
7590 "version": "0.1.3",
7591 "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
7592 "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
7593 "requires": {
7594 "is-primitive": "^2.0.0"
7595 }
7596 },
7597 "is-extendable": {
7598 "version": "0.1.1",
7599 "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
7600 "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
7601 },
7602 "is-extglob": {
7603 "version": "2.1.1",
7604 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
7605 "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
7606 },
7607 "is-finite": {
7608 "version": "1.0.2",
7609 "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
7610 "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
7611 "dev": true,
7612 "requires": {
7613 "number-is-nan": "^1.0.0"
7614 }
7615 },
7616 "is-fullwidth-code-point": {
7617 "version": "1.0.0",
7618 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
7619 "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
7620 "requires": {
7621 "number-is-nan": "^1.0.0"
7622 }
7623 },
7624 "is-function": {
7625 "version": "1.0.1",
7626 "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz",
7627 "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU="
7628 },
7629 "is-glob": {
7630 "version": "4.0.0",
7631 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
7632 "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
7633 "dev": true,
7634 "requires": {
7635 "is-extglob": "^2.1.1"
7636 }
7637 },
7638 "is-in-browser": {
7639 "version": "1.1.3",
7640 "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz",
7641 "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU="
7642 },
7643 "is-installed-globally": {
7644 "version": "0.1.0",
7645 "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
7646 "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
7647 "dev": true,
7648 "requires": {
7649 "global-dirs": "^0.1.0",
7650 "is-path-inside": "^1.0.0"
7651 }
7652 },
7653 "is-negated-glob": {
7654 "version": "1.0.0",
7655 "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz",
7656 "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=",
7657 "dev": true
7658 },
7659 "is-npm": {
7660 "version": "1.0.0",
7661 "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
7662 "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=",
7663 "dev": true
7664 },
7665 "is-number": {
7666 "version": "3.0.0",
7667 "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
7668 "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
7669 "requires": {
7670 "kind-of": "^3.0.2"
7671 },
7672 "dependencies": {
7673 "kind-of": {
7674 "version": "3.2.2",
7675 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
7676 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
7677 "requires": {
7678 "is-buffer": "^1.1.5"
7679 }
7680 }
7681 }
7682 },
7683 "is-obj": {
7684 "version": "1.0.1",
7685 "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
7686 "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
7687 "dev": true
7688 },
7689 "is-path-cwd": {
7690 "version": "1.0.0",
7691 "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
7692 "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
7693 "dev": true
7694 },
7695 "is-path-in-cwd": {
7696 "version": "1.0.1",
7697 "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
7698 "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
7699 "dev": true,
7700 "requires": {
7701 "is-path-inside": "^1.0.0"
7702 }
7703 },
7704 "is-path-inside": {
7705 "version": "1.0.1",
7706 "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
7707 "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
7708 "dev": true,
7709 "requires": {
7710 "path-is-inside": "^1.0.1"
7711 }
7712 },
7713 "is-plain-obj": {
7714 "version": "1.1.0",
7715 "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
7716 "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
7717 },
7718 "is-plain-object": {
7719 "version": "2.0.4",
7720 "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
7721 "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
7722 "requires": {
7723 "isobject": "^3.0.1"
7724 }
7725 },
7726 "is-posix-bracket": {
7727 "version": "0.1.1",
7728 "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
7729 "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q="
7730 },
7731 "is-primitive": {
7732 "version": "2.0.0",
7733 "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
7734 "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
7735 },
7736 "is-promise": {
7737 "version": "2.1.0",
7738 "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
7739 "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
7740 "dev": true
7741 },
7742 "is-redirect": {
7743 "version": "1.0.0",
7744 "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
7745 "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
7746 "dev": true
7747 },
7748 "is-regex": {
7749 "version": "1.0.4",
7750 "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
7751 "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
7752 "dev": true,
7753 "requires": {
7754 "has": "^1.0.1"
7755 }
7756 },
7757 "is-relative": {
7758 "version": "1.0.0",
7759 "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
7760 "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
7761 "requires": {
7762 "is-unc-path": "^1.0.0"
7763 }
7764 },
7765 "is-resolvable": {
7766 "version": "1.1.0",
7767 "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
7768 "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
7769 "dev": true
7770 },
7771 "is-retry-allowed": {
7772 "version": "1.1.0",
7773 "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
7774 "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=",
7775 "dev": true
7776 },
7777 "is-stream": {
7778 "version": "1.1.0",
7779 "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
7780 "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
7781 },
7782 "is-symbol": {
7783 "version": "1.0.2",
7784 "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
7785 "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
7786 "dev": true,
7787 "requires": {
7788 "has-symbols": "^1.0.0"
7789 }
7790 },
7791 "is-typedarray": {
7792 "version": "1.0.0",
7793 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
7794 "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
7795 "dev": true
7796 },
7797 "is-unc-path": {
7798 "version": "1.0.0",
7799 "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
7800 "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
7801 "requires": {
7802 "unc-path-regex": "^0.1.2"
7803 }
7804 },
7805 "is-utf8": {
7806 "version": "0.2.1",
7807 "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
7808 "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
7809 "dev": true
7810 },
7811 "is-valid-glob": {
7812 "version": "1.0.0",
7813 "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz",
7814 "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=",
7815 "dev": true
7816 },
7817 "is-windows": {
7818 "version": "1.0.2",
7819 "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
7820 "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
7821 },
7822 "isarray": {
7823 "version": "1.0.0",
7824 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
7825 "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
7826 },
7827 "isbinaryfile": {
7828 "version": "3.0.3",
7829 "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz",
7830 "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==",
7831 "dev": true,
7832 "requires": {
7833 "buffer-alloc": "^1.2.0"
7834 }
7835 },
7836 "isemail": {
7837 "version": "1.2.0",
7838 "resolved": "http://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz",
7839 "integrity": "sha1-vgPfjMPineTSxd9lASY/H6RZXpo="
7840 },
7841 "isexe": {
7842 "version": "2.0.0",
7843 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
7844 "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
7845 },
7846 "isobject": {
7847 "version": "3.0.1",
7848 "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
7849 "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
7850 },
7851 "isomorphic-fetch": {
7852 "version": "2.2.1",
7853 "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
7854 "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
7855 "requires": {
7856 "node-fetch": "^1.0.1",
7857 "whatwg-fetch": ">=0.10.0"
7858 }
7859 },
7860 "isstream": {
7861 "version": "0.1.2",
7862 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
7863 "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
7864 "dev": true
7865 },
7866 "joi": {
7867 "version": "6.10.1",
7868 "resolved": "http://registry.npmjs.org/joi/-/joi-6.10.1.tgz",
7869 "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=",
7870 "requires": {
7871 "hoek": "2.x.x",
7872 "isemail": "1.x.x",
7873 "moment": "2.x.x",
7874 "topo": "1.x.x"
7875 }
7876 },
7877 "js-base64": {
7878 "version": "2.4.9",
7879 "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz",
7880 "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==",
7881 "dev": true
7882 },
7883 "js-levenshtein": {
7884 "version": "1.1.4",
7885 "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.4.tgz",
7886 "integrity": "sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow==",
7887 "dev": true
7888 },
7889 "js-tokens": {
7890 "version": "4.0.0",
7891 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
7892 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
7893 },
7894 "js-yaml": {
7895 "version": "3.12.0",
7896 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
7897 "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
7898 "requires": {
7899 "argparse": "^1.0.7",
7900 "esprima": "^4.0.0"
7901 }
7902 },
7903 "jsbn": {
7904 "version": "0.1.1",
7905 "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
7906 "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
7907 "dev": true
7908 },
7909 "jsesc": {
7910 "version": "2.5.1",
7911 "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz",
7912 "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=",
7913 "dev": true
7914 },
7915 "jshashes": {
7916 "version": "1.0.7",
7917 "resolved": "https://registry.npmjs.org/jshashes/-/jshashes-1.0.7.tgz",
7918 "integrity": "sha1-vtjJeg6WMv0FE5FvVfdt1Uhr5Z8="
7919 },
7920 "json-parse-better-errors": {
7921 "version": "1.0.2",
7922 "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
7923 "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
7924 },
7925 "json-schema": {
7926 "version": "0.2.3",
7927 "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
7928 "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
7929 "dev": true
7930 },
7931 "json-schema-traverse": {
7932 "version": "0.3.1",
7933 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
7934 "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
7935 "dev": true
7936 },
7937 "json-stable-stringify": {
7938 "version": "1.0.1",
7939 "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
7940 "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
7941 "dev": true,
7942 "requires": {
7943 "jsonify": "~0.0.0"
7944 }
7945 },
7946 "json-stable-stringify-without-jsonify": {
7947 "version": "1.0.1",
7948 "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
7949 "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
7950 "dev": true
7951 },
7952 "json-stringify-safe": {
7953 "version": "5.0.1",
7954 "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
7955 "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
7956 "dev": true
7957 },
7958 "json3": {
7959 "version": "3.3.2",
7960 "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
7961 "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=",
7962 "dev": true
7963 },
7964 "json5": {
7965 "version": "0.5.1",
7966 "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
7967 "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
7968 "dev": true
7969 },
7970 "jsonfile": {
7971 "version": "4.0.0",
7972 "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
7973 "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
7974 "requires": {
7975 "graceful-fs": "^4.1.6"
7976 }
7977 },
7978 "jsonify": {
7979 "version": "0.0.0",
7980 "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
7981 "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
7982 "dev": true
7983 },
7984 "jsonparse": {
7985 "version": "1.3.1",
7986 "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
7987 "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA="
7988 },
7989 "jsonwebtoken": {
7990 "version": "7.4.3",
7991 "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-7.4.3.tgz",
7992 "integrity": "sha1-d/UCHeBYtgWheD+hKD6ZgS5kVjg=",
7993 "requires": {
7994 "joi": "^6.10.1",
7995 "jws": "^3.1.4",
7996 "lodash.once": "^4.0.0",
7997 "ms": "^2.0.0",
7998 "xtend": "^4.0.1"
7999 }
8000 },
8001 "jsprim": {
8002 "version": "1.4.1",
8003 "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
8004 "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
8005 "dev": true,
8006 "requires": {
8007 "assert-plus": "1.0.0",
8008 "extsprintf": "1.3.0",
8009 "json-schema": "0.2.3",
8010 "verror": "1.10.0"
8011 }
8012 },
8013 "jss": {
8014 "version": "9.8.7",
8015 "resolved": "https://registry.npmjs.org/jss/-/jss-9.8.7.tgz",
8016 "integrity": "sha512-awj3XRZYxbrmmrx9LUSj5pXSUfm12m8xzi/VKeqI1ZwWBtQ0kVPTs3vYs32t4rFw83CgFDukA8wKzOE9sMQnoQ==",
8017 "requires": {
8018 "is-in-browser": "^1.1.3",
8019 "symbol-observable": "^1.1.0",
8020 "warning": "^3.0.0"
8021 },
8022 "dependencies": {
8023 "symbol-observable": {
8024 "version": "1.2.0",
8025 "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
8026 "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ=="
8027 }
8028 }
8029 },
8030 "jss-camel-case": {
8031 "version": "6.1.0",
8032 "resolved": "https://registry.npmjs.org/jss-camel-case/-/jss-camel-case-6.1.0.tgz",
8033 "integrity": "sha512-HPF2Q7wmNW1t79mCqSeU2vdd/vFFGpkazwvfHMOhPlMgXrJDzdj9viA2SaHk9ZbD5pfL63a8ylp4++irYbbzMQ==",
8034 "requires": {
8035 "hyphenate-style-name": "^1.0.2"
8036 }
8037 },
8038 "jss-compose": {
8039 "version": "5.0.0",
8040 "resolved": "https://registry.npmjs.org/jss-compose/-/jss-compose-5.0.0.tgz",
8041 "integrity": "sha512-YofRYuiA0+VbeOw0VjgkyO380sA4+TWDrW52nSluD9n+1FWOlDzNbgpZ/Sb3Y46+DcAbOS21W5jo6SAqUEiuwA==",
8042 "requires": {
8043 "warning": "^3.0.0"
8044 }
8045 },
8046 "jss-default-unit": {
8047 "version": "8.0.2",
8048 "resolved": "https://registry.npmjs.org/jss-default-unit/-/jss-default-unit-8.0.2.tgz",
8049 "integrity": "sha512-WxNHrF/18CdoAGw2H0FqOEvJdREXVXLazn7PQYU7V6/BWkCV0GkmWsppNiExdw8dP4TU1ma1dT9zBNJ95feLmg=="
8050 },
8051 "jss-expand": {
8052 "version": "5.3.0",
8053 "resolved": "https://registry.npmjs.org/jss-expand/-/jss-expand-5.3.0.tgz",
8054 "integrity": "sha512-NiM4TbDVE0ykXSAw6dfFmB1LIqXP/jdd0ZMnlvlGgEMkMt+weJIl8Ynq1DsuBY9WwkNyzWktdqcEW2VN0RAtQg=="
8055 },
8056 "jss-extend": {
8057 "version": "6.2.0",
8058 "resolved": "https://registry.npmjs.org/jss-extend/-/jss-extend-6.2.0.tgz",
8059 "integrity": "sha512-YszrmcB6o9HOsKPszK7NeDBNNjVyiW864jfoiHoMlgMIg2qlxKw70axZHqgczXHDcoyi/0/ikP1XaHDPRvYtEA==",
8060 "requires": {
8061 "warning": "^3.0.0"
8062 }
8063 },
8064 "jss-global": {
8065 "version": "3.0.0",
8066 "resolved": "https://registry.npmjs.org/jss-global/-/jss-global-3.0.0.tgz",
8067 "integrity": "sha512-wxYn7vL+TImyQYGAfdplg7yaxnPQ9RaXY/cIA8hawaVnmmWxDHzBK32u1y+RAvWboa3lW83ya3nVZ/C+jyjZ5Q=="
8068 },
8069 "jss-nested": {
8070 "version": "6.0.1",
8071 "resolved": "https://registry.npmjs.org/jss-nested/-/jss-nested-6.0.1.tgz",
8072 "integrity": "sha512-rn964TralHOZxoyEgeq3hXY8hyuCElnvQoVrQwKHVmu55VRDd6IqExAx9be5HgK0yN/+hQdgAXQl/GUrBbbSTA==",
8073 "requires": {
8074 "warning": "^3.0.0"
8075 }
8076 },
8077 "jss-preset-default": {
8078 "version": "4.5.0",
8079 "resolved": "https://registry.npmjs.org/jss-preset-default/-/jss-preset-default-4.5.0.tgz",
8080 "integrity": "sha512-qZbpRVtHT7hBPpZEBPFfafZKWmq3tA/An5RNqywDsZQGrlinIF/mGD9lmj6jGqu8GrED2SMHZ3pPKLmjCZoiaQ==",
8081 "requires": {
8082 "jss-camel-case": "^6.1.0",
8083 "jss-compose": "^5.0.0",
8084 "jss-default-unit": "^8.0.2",
8085 "jss-expand": "^5.3.0",
8086 "jss-extend": "^6.2.0",
8087 "jss-global": "^3.0.0",
8088 "jss-nested": "^6.0.1",
8089 "jss-props-sort": "^6.0.0",
8090 "jss-template": "^1.0.1",
8091 "jss-vendor-prefixer": "^7.0.0"
8092 }
8093 },
8094 "jss-props-sort": {
8095 "version": "6.0.0",
8096 "resolved": "https://registry.npmjs.org/jss-props-sort/-/jss-props-sort-6.0.0.tgz",
8097 "integrity": "sha512-E89UDcrphmI0LzmvYk25Hp4aE5ZBsXqMWlkFXS0EtPkunJkRr+WXdCNYbXbksIPnKlBenGB9OxzQY+mVc70S+g=="
8098 },
8099 "jss-template": {
8100 "version": "1.0.1",
8101 "resolved": "https://registry.npmjs.org/jss-template/-/jss-template-1.0.1.tgz",
8102 "integrity": "sha512-m5BqEWha17fmIVXm1z8xbJhY6GFJxNB9H68GVnCWPyGYfxiAgY9WTQyvDAVj+pYRgrXSOfN5V1T4+SzN1sJTeg==",
8103 "requires": {
8104 "warning": "^3.0.0"
8105 }
8106 },
8107 "jss-vendor-prefixer": {
8108 "version": "7.0.0",
8109 "resolved": "https://registry.npmjs.org/jss-vendor-prefixer/-/jss-vendor-prefixer-7.0.0.tgz",
8110 "integrity": "sha512-Agd+FKmvsI0HLcYXkvy8GYOw3AAASBUpsmIRvVQheps+JWaN892uFOInTr0DRydwaD91vSSUCU4NssschvF7MA==",
8111 "requires": {
8112 "css-vendor": "^0.3.8"
8113 }
8114 },
8115 "jsx-ast-utils": {
8116 "version": "1.4.1",
8117 "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz",
8118 "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=",
8119 "dev": true
8120 },
8121 "just-debounce": {
8122 "version": "1.0.0",
8123 "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz",
8124 "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=",
8125 "dev": true
8126 },
8127 "jwa": {
8128 "version": "1.1.6",
8129 "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.6.tgz",
8130 "integrity": "sha512-tBO/cf++BUsJkYql/kBbJroKOgHWEigTKBAjjBEmrMGYd1QMBC74Hr4Wo2zCZw6ZrVhlJPvoMrkcOnlWR/DJfw==",
8131 "requires": {
8132 "buffer-equal-constant-time": "1.0.1",
8133 "ecdsa-sig-formatter": "1.0.10",
8134 "safe-buffer": "^5.0.1"
8135 }
8136 },
8137 "jws": {
8138 "version": "3.1.5",
8139 "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz",
8140 "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==",
8141 "requires": {
8142 "jwa": "^1.1.5",
8143 "safe-buffer": "^5.0.1"
8144 }
8145 },
8146 "kebab-case": {
8147 "version": "1.0.0",
8148 "resolved": "https://registry.npmjs.org/kebab-case/-/kebab-case-1.0.0.tgz",
8149 "integrity": "sha1-P55JkK3K0MaGwOcB92RYaPdfkes=",
8150 "dev": true
8151 },
8152 "keymaster": {
8153 "version": "1.6.2",
8154 "resolved": "https://registry.npmjs.org/keymaster/-/keymaster-1.6.2.tgz",
8155 "integrity": "sha1-4a5U0OqUiPn2C2a2aPAumhlGxus="
8156 },
8157 "kind-of": {
8158 "version": "6.0.2",
8159 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
8160 "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
8161 },
8162 "klaw": {
8163 "version": "1.3.1",
8164 "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
8165 "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
8166 "dev": true,
8167 "requires": {
8168 "graceful-fs": "^4.1.9"
8169 }
8170 },
8171 "last-run": {
8172 "version": "1.1.1",
8173 "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz",
8174 "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=",
8175 "dev": true,
8176 "requires": {
8177 "default-resolution": "^2.0.0",
8178 "es6-weak-map": "^2.0.1"
8179 }
8180 },
8181 "latest-version": {
8182 "version": "3.1.0",
8183 "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz",
8184 "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=",
8185 "dev": true,
8186 "requires": {
8187 "package-json": "^4.0.0"
8188 }
8189 },
8190 "lazy-val": {
8191 "version": "1.0.3",
8192 "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.3.tgz",
8193 "integrity": "sha512-pjCf3BYk+uv3ZcPzEVM0BFvO9Uw58TmlrU0oG5tTrr9Kcid3+kdKxapH8CjdYmVa2nO5wOoZn2rdvZx2PKj/xg=="
8194 },
8195 "lazystream": {
8196 "version": "1.0.0",
8197 "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
8198 "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
8199 "dev": true,
8200 "requires": {
8201 "readable-stream": "^2.0.5"
8202 }
8203 },
8204 "lcid": {
8205 "version": "1.0.0",
8206 "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
8207 "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
8208 "requires": {
8209 "invert-kv": "^1.0.0"
8210 }
8211 },
8212 "lead": {
8213 "version": "1.0.0",
8214 "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz",
8215 "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=",
8216 "dev": true,
8217 "requires": {
8218 "flush-write-stream": "^1.0.2"
8219 }
8220 },
8221 "levn": {
8222 "version": "0.3.0",
8223 "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
8224 "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
8225 "dev": true,
8226 "requires": {
8227 "prelude-ls": "~1.1.2",
8228 "type-check": "~0.3.2"
8229 }
8230 },
8231 "liftoff": {
8232 "version": "2.5.0",
8233 "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz",
8234 "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=",
8235 "requires": {
8236 "extend": "^3.0.0",
8237 "findup-sync": "^2.0.0",
8238 "fined": "^1.0.1",
8239 "flagged-respawn": "^1.0.0",
8240 "is-plain-object": "^2.0.4",
8241 "object.map": "^1.0.0",
8242 "rechoir": "^0.6.2",
8243 "resolve": "^1.1.7"
8244 }
8245 },
8246 "load-json-file": {
8247 "version": "1.1.0",
8248 "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
8249 "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
8250 "dev": true,
8251 "requires": {
8252 "graceful-fs": "^4.1.2",
8253 "parse-json": "^2.2.0",
8254 "pify": "^2.0.0",
8255 "pinkie-promise": "^2.0.0",
8256 "strip-bom": "^2.0.0"
8257 }
8258 },
8259 "loader-fs-cache": {
8260 "version": "1.0.1",
8261 "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz",
8262 "integrity": "sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw=",
8263 "dev": true,
8264 "requires": {
8265 "find-cache-dir": "^0.1.1",
8266 "mkdirp": "0.5.1"
8267 }
8268 },
8269 "loader-utils": {
8270 "version": "1.1.0",
8271 "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
8272 "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
8273 "dev": true,
8274 "requires": {
8275 "big.js": "^3.1.3",
8276 "emojis-list": "^2.0.0",
8277 "json5": "^0.5.0"
8278 }
8279 },
8280 "locate-path": {
8281 "version": "2.0.0",
8282 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
8283 "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
8284 "dev": true,
8285 "requires": {
8286 "p-locate": "^2.0.0",
8287 "path-exists": "^3.0.0"
8288 },
8289 "dependencies": {
8290 "path-exists": {
8291 "version": "3.0.0",
8292 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
8293 "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
8294 "dev": true
8295 }
8296 }
8297 },
8298 "lodash": {
8299 "version": "4.17.11",
8300 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
8301 "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
8302 },
8303 "lodash._basecopy": {
8304 "version": "3.0.1",
8305 "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
8306 "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
8307 "dev": true
8308 },
8309 "lodash._basetostring": {
8310 "version": "3.0.1",
8311 "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
8312 "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=",
8313 "dev": true
8314 },
8315 "lodash._basevalues": {
8316 "version": "3.0.0",
8317 "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
8318 "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=",
8319 "dev": true
8320 },
8321 "lodash._getnative": {
8322 "version": "3.9.1",
8323 "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
8324 "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
8325 "dev": true
8326 },
8327 "lodash._isiterateecall": {
8328 "version": "3.0.9",
8329 "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
8330 "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
8331 "dev": true
8332 },
8333 "lodash._reescape": {
8334 "version": "3.0.0",
8335 "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
8336 "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=",
8337 "dev": true
8338 },
8339 "lodash._reevaluate": {
8340 "version": "3.0.0",
8341 "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
8342 "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=",
8343 "dev": true
8344 },
8345 "lodash._reinterpolate": {
8346 "version": "3.0.0",
8347 "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
8348 "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
8349 "dev": true
8350 },
8351 "lodash._root": {
8352 "version": "3.0.1",
8353 "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
8354 "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
8355 "dev": true
8356 },
8357 "lodash.assign": {
8358 "version": "4.2.0",
8359 "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
8360 "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
8361 "dev": true
8362 },
8363 "lodash.camelcase": {
8364 "version": "4.3.0",
8365 "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
8366 "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY="
8367 },
8368 "lodash.clonedeep": {
8369 "version": "4.5.0",
8370 "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
8371 "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
8372 "dev": true
8373 },
8374 "lodash.debounce": {
8375 "version": "4.0.8",
8376 "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
8377 "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
8378 "dev": true
8379 },
8380 "lodash.escape": {
8381 "version": "3.2.0",
8382 "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
8383 "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=",
8384 "dev": true,
8385 "requires": {
8386 "lodash._root": "^3.0.0"
8387 }
8388 },
8389 "lodash.includes": {
8390 "version": "4.3.0",
8391 "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
8392 "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
8393 },
8394 "lodash.isarguments": {
8395 "version": "3.1.0",
8396 "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
8397 "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
8398 "dev": true
8399 },
8400 "lodash.isarray": {
8401 "version": "3.0.4",
8402 "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
8403 "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
8404 "dev": true
8405 },
8406 "lodash.isequal": {
8407 "version": "4.5.0",
8408 "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
8409 "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
8410 },
8411 "lodash.isfunction": {
8412 "version": "3.0.9",
8413 "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz",
8414 "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw=="
8415 },
8416 "lodash.isplainobject": {
8417 "version": "4.0.6",
8418 "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
8419 "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
8420 },
8421 "lodash.isstring": {
8422 "version": "4.0.1",
8423 "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
8424 "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
8425 },
8426 "lodash.keys": {
8427 "version": "3.1.2",
8428 "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
8429 "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
8430 "dev": true,
8431 "requires": {
8432 "lodash._getnative": "^3.0.0",
8433 "lodash.isarguments": "^3.0.0",
8434 "lodash.isarray": "^3.0.0"
8435 }
8436 },
8437 "lodash.map": {
8438 "version": "4.6.0",
8439 "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz",
8440 "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=",
8441 "dev": true
8442 },
8443 "lodash.mergewith": {
8444 "version": "4.6.1",
8445 "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz",
8446 "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==",
8447 "dev": true
8448 },
8449 "lodash.once": {
8450 "version": "4.1.1",
8451 "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
8452 "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
8453 },
8454 "lodash.restparam": {
8455 "version": "3.6.1",
8456 "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
8457 "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=",
8458 "dev": true
8459 },
8460 "lodash.sortby": {
8461 "version": "4.7.0",
8462 "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
8463 "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg="
8464 },
8465 "lodash.template": {
8466 "version": "3.6.2",
8467 "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
8468 "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=",
8469 "dev": true,
8470 "requires": {
8471 "lodash._basecopy": "^3.0.0",
8472 "lodash._basetostring": "^3.0.0",
8473 "lodash._basevalues": "^3.0.0",
8474 "lodash._isiterateecall": "^3.0.0",
8475 "lodash._reinterpolate": "^3.0.0",
8476 "lodash.escape": "^3.0.0",
8477 "lodash.keys": "^3.0.0",
8478 "lodash.restparam": "^3.0.0",
8479 "lodash.templatesettings": "^3.0.0"
8480 }
8481 },
8482 "lodash.templatesettings": {
8483 "version": "3.1.1",
8484 "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz",
8485 "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=",
8486 "dev": true,
8487 "requires": {
8488 "lodash._reinterpolate": "^3.0.0",
8489 "lodash.escape": "^3.0.0"
8490 }
8491 },
8492 "log-symbols": {
8493 "version": "2.2.0",
8494 "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
8495 "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
8496 "dev": true,
8497 "requires": {
8498 "chalk": "^2.0.1"
8499 },
8500 "dependencies": {
8501 "ansi-styles": {
8502 "version": "3.2.1",
8503 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
8504 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
8505 "dev": true,
8506 "requires": {
8507 "color-convert": "^1.9.0"
8508 }
8509 },
8510 "chalk": {
8511 "version": "2.4.1",
8512 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
8513 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
8514 "dev": true,
8515 "requires": {
8516 "ansi-styles": "^3.2.1",
8517 "escape-string-regexp": "^1.0.5",
8518 "supports-color": "^5.3.0"
8519 }
8520 },
8521 "supports-color": {
8522 "version": "5.5.0",
8523 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
8524 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
8525 "dev": true,
8526 "requires": {
8527 "has-flag": "^3.0.0"
8528 }
8529 }
8530 }
8531 },
8532 "longest": {
8533 "version": "1.0.1",
8534 "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
8535 "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
8536 "dev": true
8537 },
8538 "loose-envify": {
8539 "version": "1.4.0",
8540 "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
8541 "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
8542 "requires": {
8543 "js-tokens": "^3.0.0 || ^4.0.0"
8544 }
8545 },
8546 "loud-rejection": {
8547 "version": "1.6.0",
8548 "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
8549 "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
8550 "dev": true,
8551 "requires": {
8552 "currently-unhandled": "^0.4.1",
8553 "signal-exit": "^3.0.0"
8554 }
8555 },
8556 "lowercase-keys": {
8557 "version": "1.0.1",
8558 "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
8559 "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
8560 "dev": true
8561 },
8562 "lru-cache": {
8563 "version": "4.1.3",
8564 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
8565 "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
8566 "requires": {
8567 "pseudomap": "^1.0.2",
8568 "yallist": "^2.1.2"
8569 }
8570 },
8571 "macos-notification-state": {
8572 "version": "1.1.0",
8573 "resolved": "https://registry.npmjs.org/macos-notification-state/-/macos-notification-state-1.1.0.tgz",
8574 "integrity": "sha1-7llnHgXB7DiMCwkQHvYRyFtLTg4=",
8575 "requires": {
8576 "bindings": "^1.2.1",
8577 "nan": "^2.4.0"
8578 }
8579 },
8580 "make-dir": {
8581 "version": "1.3.0",
8582 "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
8583 "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
8584 "dev": true,
8585 "requires": {
8586 "pify": "^3.0.0"
8587 },
8588 "dependencies": {
8589 "pify": {
8590 "version": "3.0.0",
8591 "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
8592 "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
8593 "dev": true
8594 }
8595 }
8596 },
8597 "make-fetch-happen": {
8598 "version": "4.0.1",
8599 "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz",
8600 "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==",
8601 "requires": {
8602 "agentkeepalive": "^3.4.1",
8603 "cacache": "^11.0.1",
8604 "http-cache-semantics": "^3.8.1",
8605 "http-proxy-agent": "^2.1.0",
8606 "https-proxy-agent": "^2.2.1",
8607 "lru-cache": "^4.1.2",
8608 "mississippi": "^3.0.0",
8609 "node-fetch-npm": "^2.0.2",
8610 "promise-retry": "^1.1.1",
8611 "socks-proxy-agent": "^4.0.0",
8612 "ssri": "^6.0.0"
8613 }
8614 },
8615 "make-iterator": {
8616 "version": "1.0.1",
8617 "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
8618 "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
8619 "requires": {
8620 "kind-of": "^6.0.2"
8621 }
8622 },
8623 "map-age-cleaner": {
8624 "version": "0.1.2",
8625 "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz",
8626 "integrity": "sha512-UN1dNocxQq44IhJyMI4TU8phc2m9BddacHRPRjKGLYaF0jqd3xLz0jS0skpAU9WgYyoR4gHtUpzytNBS385FWQ==",
8627 "dev": true,
8628 "requires": {
8629 "p-defer": "^1.0.0"
8630 }
8631 },
8632 "map-cache": {
8633 "version": "0.2.2",
8634 "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
8635 "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
8636 },
8637 "map-obj": {
8638 "version": "1.0.1",
8639 "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
8640 "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
8641 "dev": true
8642 },
8643 "map-visit": {
8644 "version": "1.0.0",
8645 "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
8646 "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
8647 "requires": {
8648 "object-visit": "^1.0.0"
8649 }
8650 },
8651 "matchdep": {
8652 "version": "2.0.0",
8653 "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz",
8654 "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=",
8655 "dev": true,
8656 "requires": {
8657 "findup-sync": "^2.0.0",
8658 "micromatch": "^3.0.4",
8659 "resolve": "^1.4.0",
8660 "stack-trace": "0.0.10"
8661 }
8662 },
8663 "math-random": {
8664 "version": "1.0.1",
8665 "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz",
8666 "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w="
8667 },
8668 "md5-file": {
8669 "version": "4.0.0",
8670 "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-4.0.0.tgz",
8671 "integrity": "sha512-UC0qFwyAjn4YdPpKaDNw6gNxRf7Mcx7jC1UGCY4boCzgvU2Aoc1mOGzTtrjjLKhM5ivsnhoKpQVxKPp+1j1qwg=="
8672 },
8673 "mdi": {
8674 "version": "1.9.33",
8675 "resolved": "https://registry.npmjs.org/mdi/-/mdi-1.9.33.tgz",
8676 "integrity": "sha1-PK9tlfxrgAYzYwvWK6DPH73msuI="
8677 },
8678 "mem": {
8679 "version": "4.0.0",
8680 "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz",
8681 "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==",
8682 "dev": true,
8683 "requires": {
8684 "map-age-cleaner": "^0.1.1",
8685 "mimic-fn": "^1.0.0",
8686 "p-is-promise": "^1.1.0"
8687 }
8688 },
8689 "meow": {
8690 "version": "3.7.0",
8691 "resolved": "http://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
8692 "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
8693 "dev": true,
8694 "requires": {
8695 "camelcase-keys": "^2.0.0",
8696 "decamelize": "^1.1.2",
8697 "loud-rejection": "^1.0.0",
8698 "map-obj": "^1.0.1",
8699 "minimist": "^1.1.3",
8700 "normalize-package-data": "^2.3.4",
8701 "object-assign": "^4.0.1",
8702 "read-pkg-up": "^1.0.1",
8703 "redent": "^1.0.0",
8704 "trim-newlines": "^1.0.0"
8705 }
8706 },
8707 "merge-stream": {
8708 "version": "0.1.8",
8709 "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-0.1.8.tgz",
8710 "integrity": "sha1-SKB7O0oSHXSj7b/c20sIrb8CQLE=",
8711 "dev": true,
8712 "requires": {
8713 "through2": "^0.6.1"
8714 },
8715 "dependencies": {
8716 "isarray": {
8717 "version": "0.0.1",
8718 "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
8719 "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
8720 "dev": true
8721 },
8722 "readable-stream": {
8723 "version": "1.0.34",
8724 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
8725 "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
8726 "dev": true,
8727 "requires": {
8728 "core-util-is": "~1.0.0",
8729 "inherits": "~2.0.1",
8730 "isarray": "0.0.1",
8731 "string_decoder": "~0.10.x"
8732 }
8733 },
8734 "string_decoder": {
8735 "version": "0.10.31",
8736 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
8737 "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
8738 "dev": true
8739 },
8740 "through2": {
8741 "version": "0.6.5",
8742 "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
8743 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
8744 "dev": true,
8745 "requires": {
8746 "readable-stream": ">=1.0.33-1 <1.1.0-0",
8747 "xtend": ">=4.0.0 <4.1.0-0"
8748 }
8749 }
8750 }
8751 },
8752 "micromatch": {
8753 "version": "3.1.10",
8754 "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
8755 "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
8756 "requires": {
8757 "arr-diff": "^4.0.0",
8758 "array-unique": "^0.3.2",
8759 "braces": "^2.3.1",
8760 "define-property": "^2.0.2",
8761 "extend-shallow": "^3.0.2",
8762 "extglob": "^2.0.4",
8763 "fragment-cache": "^0.2.1",
8764 "kind-of": "^6.0.2",
8765 "nanomatch": "^1.2.9",
8766 "object.pick": "^1.3.0",
8767 "regex-not": "^1.0.0",
8768 "snapdragon": "^0.8.1",
8769 "to-regex": "^3.0.2"
8770 }
8771 },
8772 "mime": {
8773 "version": "2.4.0",
8774 "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz",
8775 "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==",
8776 "dev": true
8777 },
8778 "mime-db": {
8779 "version": "1.37.0",
8780 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
8781 "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg=="
8782 },
8783 "mime-types": {
8784 "version": "2.1.21",
8785 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
8786 "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
8787 "requires": {
8788 "mime-db": "~1.37.0"
8789 }
8790 },
8791 "mimic-fn": {
8792 "version": "1.2.0",
8793 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
8794 "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
8795 "dev": true
8796 },
8797 "minimatch": {
8798 "version": "3.0.4",
8799 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
8800 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
8801 "requires": {
8802 "brace-expansion": "^1.1.7"
8803 }
8804 },
8805 "minimist": {
8806 "version": "1.2.0",
8807 "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
8808 "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
8809 },
8810 "minipass": {
8811 "version": "2.3.4",
8812 "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.4.tgz",
8813 "integrity": "sha512-mlouk1OHlaUE8Odt1drMtG1bAJA4ZA6B/ehysgV0LUIrDHdKgo1KorZq3pK0b/7Z7LJIQ12MNM6aC+Tn6lUZ5w==",
8814 "requires": {
8815 "safe-buffer": "^5.1.2",
8816 "yallist": "^3.0.0"
8817 },
8818 "dependencies": {
8819 "yallist": {
8820 "version": "3.0.2",
8821 "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz",
8822 "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k="
8823 }
8824 }
8825 },
8826 "minizlib": {
8827 "version": "1.1.1",
8828 "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.1.tgz",
8829 "integrity": "sha512-TrfjCjk4jLhcJyGMYymBH6oTXcWjYbUAXTHDbtnWHjZC25h0cdajHuPE1zxb4DVmu8crfh+HwH/WMuyLG0nHBg==",
8830 "requires": {
8831 "minipass": "^2.2.1"
8832 }
8833 },
8834 "mississippi": {
8835 "version": "3.0.0",
8836 "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
8837 "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
8838 "requires": {
8839 "concat-stream": "^1.5.0",
8840 "duplexify": "^3.4.2",
8841 "end-of-stream": "^1.1.0",
8842 "flush-write-stream": "^1.0.0",
8843 "from2": "^2.1.0",
8844 "parallel-transform": "^1.1.0",
8845 "pump": "^3.0.0",
8846 "pumpify": "^1.3.3",
8847 "stream-each": "^1.1.0",
8848 "through2": "^2.0.0"
8849 },
8850 "dependencies": {
8851 "pump": {
8852 "version": "3.0.0",
8853 "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
8854 "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
8855 "requires": {
8856 "end-of-stream": "^1.1.0",
8857 "once": "^1.3.1"
8858 }
8859 }
8860 }
8861 },
8862 "mixin-deep": {
8863 "version": "1.3.1",
8864 "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
8865 "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
8866 "requires": {
8867 "for-in": "^1.0.2",
8868 "is-extendable": "^1.0.1"
8869 },
8870 "dependencies": {
8871 "is-extendable": {
8872 "version": "1.0.1",
8873 "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
8874 "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
8875 "requires": {
8876 "is-plain-object": "^2.0.4"
8877 }
8878 }
8879 }
8880 },
8881 "mkdirp": {
8882 "version": "0.5.1",
8883 "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
8884 "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
8885 "requires": {
8886 "minimist": "0.0.8"
8887 },
8888 "dependencies": {
8889 "minimist": {
8890 "version": "0.0.8",
8891 "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
8892 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
8893 }
8894 }
8895 },
8896 "mobx": {
8897 "version": "3.6.2",
8898 "resolved": "http://registry.npmjs.org/mobx/-/mobx-3.6.2.tgz",
8899 "integrity": "sha512-Dq3boJFLpZEvuh5a/MbHLUIyN9XobKWIb0dBfkNOJffNkE3vtuY0C9kSDVpfH8BB0BPkVw8g22qCv7d05LEhKg=="
8900 },
8901 "mobx-localstorage": {
8902 "version": "0.1.7",
8903 "resolved": "https://registry.npmjs.org/mobx-localstorage/-/mobx-localstorage-0.1.7.tgz",
8904 "integrity": "sha1-wMZDZnafOQykozP0GRLq4AzUqd4="
8905 },
8906 "mobx-react": {
8907 "version": "4.4.3",
8908 "resolved": "http://registry.npmjs.org/mobx-react/-/mobx-react-4.4.3.tgz",
8909 "integrity": "sha1-uqnsQRZe41rnud8ZvKEBkPNvEX4=",
8910 "requires": {
8911 "hoist-non-react-statics": "^2.3.1"
8912 }
8913 },
8914 "mobx-react-form": {
8915 "version": "1.35.1",
8916 "resolved": "https://registry.npmjs.org/mobx-react-form/-/mobx-react-form-1.35.1.tgz",
8917 "integrity": "sha1-iSrsZykiThHCl4+4LmetxOgOOmo=",
8918 "requires": {
8919 "lodash": "^4.16.2"
8920 }
8921 },
8922 "mobx-react-router": {
8923 "version": "3.1.2",
8924 "resolved": "https://registry.npmjs.org/mobx-react-router/-/mobx-react-router-3.1.2.tgz",
8925 "integrity": "sha1-gzKLEIOTAXFI2G/qF/YR3i0qrNw="
8926 },
8927 "modify-filename": {
8928 "version": "1.1.0",
8929 "resolved": "https://registry.npmjs.org/modify-filename/-/modify-filename-1.1.0.tgz",
8930 "integrity": "sha1-mi3sg4Bvuy2XXyK+7IWcoms5OqE="
8931 },
8932 "moment": {
8933 "version": "2.22.2",
8934 "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz",
8935 "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y="
8936 },
8937 "move-concurrently": {
8938 "version": "1.0.1",
8939 "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
8940 "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
8941 "requires": {
8942 "aproba": "^1.1.1",
8943 "copy-concurrently": "^1.0.0",
8944 "fs-write-stream-atomic": "^1.0.8",
8945 "mkdirp": "^0.5.1",
8946 "rimraf": "^2.5.4",
8947 "run-queue": "^1.0.3"
8948 }
8949 },
8950 "ms": {
8951 "version": "2.0.0",
8952 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
8953 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
8954 },
8955 "multipipe": {
8956 "version": "0.1.2",
8957 "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
8958 "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=",
8959 "dev": true,
8960 "requires": {
8961 "duplexer2": "0.0.2"
8962 }
8963 },
8964 "mute-stdout": {
8965 "version": "1.0.1",
8966 "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz",
8967 "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg=="
8968 },
8969 "mute-stream": {
8970 "version": "0.0.7",
8971 "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
8972 "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
8973 "dev": true
8974 },
8975 "nan": {
8976 "version": "2.11.1",
8977 "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz",
8978 "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA=="
8979 },
8980 "nanoid": {
8981 "version": "1.3.4",
8982 "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-1.3.4.tgz",
8983 "integrity": "sha512-4ug4BsuHxiVHoRUe1ud6rUFT3WUMmjXt1W0quL0CviZQANdan7D8kqN5/maw53hmAApY/jfzMRkC57BNNs60ZQ=="
8984 },
8985 "nanomatch": {
8986 "version": "1.2.13",
8987 "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
8988 "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
8989 "requires": {
8990 "arr-diff": "^4.0.0",
8991 "array-unique": "^0.3.2",
8992 "define-property": "^2.0.2",
8993 "extend-shallow": "^3.0.2",
8994 "fragment-cache": "^0.2.1",
8995 "is-windows": "^1.0.2",
8996 "kind-of": "^6.0.2",
8997 "object.pick": "^1.3.0",
8998 "regex-not": "^1.0.0",
8999 "snapdragon": "^0.8.1",
9000 "to-regex": "^3.0.1"
9001 }
9002 },
9003 "natives": {
9004 "version": "1.1.6",
9005 "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz",
9006 "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==",
9007 "dev": true
9008 },
9009 "natural-compare": {
9010 "version": "1.4.0",
9011 "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
9012 "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
9013 "dev": true
9014 },
9015 "negotiator": {
9016 "version": "0.4.7",
9017 "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.4.7.tgz",
9018 "integrity": "sha1-pBYPcXfsgGc4Yx0NMFIyXaQqvcg=",
9019 "dev": true
9020 },
9021 "next-tick": {
9022 "version": "1.0.0",
9023 "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
9024 "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
9025 },
9026 "nice-try": {
9027 "version": "1.0.5",
9028 "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
9029 "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
9030 "dev": true
9031 },
9032 "node-abi": {
9033 "version": "2.4.5",
9034 "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.4.5.tgz",
9035 "integrity": "sha512-aa/UC6Nr3+tqhHGRsAuw/edz7/q9nnetBrKWxj6rpTtm+0X9T1qU7lIEHMS3yN9JwAbRiKUbRRFy1PLz/y3aaA==",
9036 "dev": true,
9037 "requires": {
9038 "semver": "^5.4.1"
9039 }
9040 },
9041 "node-fetch": {
9042 "version": "1.7.3",
9043 "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
9044 "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
9045 "requires": {
9046 "encoding": "^0.1.11",
9047 "is-stream": "^1.0.1"
9048 }
9049 },
9050 "node-fetch-npm": {
9051 "version": "2.0.2",
9052 "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz",
9053 "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==",
9054 "requires": {
9055 "encoding": "^0.1.11",
9056 "json-parse-better-errors": "^1.0.0",
9057 "safe-buffer": "^5.1.1"
9058 }
9059 },
9060 "node-gyp": {
9061 "version": "3.8.0",
9062 "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
9063 "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
9064 "dev": true,
9065 "requires": {
9066 "fstream": "^1.0.0",
9067 "glob": "^7.0.3",
9068 "graceful-fs": "^4.1.2",
9069 "mkdirp": "^0.5.0",
9070 "nopt": "2 || 3",
9071 "npmlog": "0 || 1 || 2 || 3 || 4",
9072 "osenv": "0",
9073 "request": "^2.87.0",
9074 "rimraf": "2",
9075 "semver": "~5.3.0",
9076 "tar": "^2.0.0",
9077 "which": "1"
9078 },
9079 "dependencies": {
9080 "semver": {
9081 "version": "5.3.0",
9082 "resolved": "http://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
9083 "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
9084 "dev": true
9085 },
9086 "tar": {
9087 "version": "2.2.1",
9088 "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
9089 "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
9090 "dev": true,
9091 "requires": {
9092 "block-stream": "*",
9093 "fstream": "^1.0.2",
9094 "inherits": "2"
9095 }
9096 }
9097 }
9098 },
9099 "node-modules-regexp": {
9100 "version": "1.0.0",
9101 "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz",
9102 "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=",
9103 "dev": true
9104 },
9105 "node-releases": {
9106 "version": "1.0.0-alpha.14",
9107 "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.0.0-alpha.14.tgz",
9108 "integrity": "sha512-G8nnF9cP9QPP/jUmYWw/uUUhumHmkm+X/EarCugYFjYm2uXRMFeOD6CVT3RLdoyCvDUNy51nirGfUItKWs/S1g==",
9109 "dev": true,
9110 "requires": {
9111 "semver": "^5.3.0"
9112 }
9113 },
9114 "node-sass": {
9115 "version": "4.9.4",
9116 "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.4.tgz",
9117 "integrity": "sha512-MXyurANsUoE4/6KmfMkwGcBzAnJQ5xJBGW7Ei6ea8KnUKuzHr/SguVBIi3uaUAHtZCPUYkvlJ3Ef5T5VAwVpaA==",
9118 "dev": true,
9119 "requires": {
9120 "async-foreach": "^0.1.3",
9121 "chalk": "^1.1.1",
9122 "cross-spawn": "^3.0.0",
9123 "gaze": "^1.0.0",
9124 "get-stdin": "^4.0.1",
9125 "glob": "^7.0.3",
9126 "in-publish": "^2.0.0",
9127 "lodash.assign": "^4.2.0",
9128 "lodash.clonedeep": "^4.3.2",
9129 "lodash.mergewith": "^4.6.0",
9130 "meow": "^3.7.0",
9131 "mkdirp": "^0.5.1",
9132 "nan": "^2.10.0",
9133 "node-gyp": "^3.8.0",
9134 "npmlog": "^4.0.0",
9135 "request": "^2.88.0",
9136 "sass-graph": "^2.2.4",
9137 "stdout-stream": "^1.4.0",
9138 "true-case-path": "^1.0.2"
9139 },
9140 "dependencies": {
9141 "cross-spawn": {
9142 "version": "3.0.1",
9143 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
9144 "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
9145 "dev": true,
9146 "requires": {
9147 "lru-cache": "^4.0.1",
9148 "which": "^1.2.9"
9149 }
9150 }
9151 }
9152 },
9153 "node-watch": {
9154 "version": "0.3.5",
9155 "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.3.5.tgz",
9156 "integrity": "sha1-oH8lOk9TjenUylIt1/GZbu7A2X4=",
9157 "dev": true
9158 },
9159 "node.extend": {
9160 "version": "1.0.10",
9161 "resolved": "https://registry.npmjs.org/node.extend/-/node.extend-1.0.10.tgz",
9162 "integrity": "sha1-Mmm934HFRTX0CKvHhMMrDSvVX28=",
9163 "dev": true,
9164 "requires": {
9165 "is": "~0.3.0"
9166 }
9167 },
9168 "nopt": {
9169 "version": "3.0.6",
9170 "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
9171 "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
9172 "dev": true,
9173 "requires": {
9174 "abbrev": "1"
9175 }
9176 },
9177 "normalize-package-data": {
9178 "version": "2.4.0",
9179 "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
9180 "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
9181 "requires": {
9182 "hosted-git-info": "^2.1.4",
9183 "is-builtin-module": "^1.0.0",
9184 "semver": "2 || 3 || 4 || 5",
9185 "validate-npm-package-license": "^3.0.1"
9186 },
9187 "dependencies": {
9188 "semver": {
9189 "version": "5.6.0",
9190 "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
9191 "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg=="
9192 }
9193 }
9194 },
9195 "normalize-path": {
9196 "version": "2.1.1",
9197 "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
9198 "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
9199 "requires": {
9200 "remove-trailing-separator": "^1.0.1"
9201 }
9202 },
9203 "normalize-url": {
9204 "version": "1.9.1",
9205 "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
9206 "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
9207 "requires": {
9208 "object-assign": "^4.0.1",
9209 "prepend-http": "^1.0.0",
9210 "query-string": "^4.1.0",
9211 "sort-keys": "^1.0.0"
9212 }
9213 },
9214 "now-and-later": {
9215 "version": "2.0.0",
9216 "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.0.tgz",
9217 "integrity": "sha1-vGHLtFbXnLMiB85HygUTb/Ln1u4=",
9218 "dev": true,
9219 "requires": {
9220 "once": "^1.3.2"
9221 }
9222 },
9223 "npm-bundled": {
9224 "version": "1.0.5",
9225 "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.5.tgz",
9226 "integrity": "sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g=="
9227 },
9228 "npm-package-arg": {
9229 "version": "6.1.0",
9230 "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz",
9231 "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==",
9232 "requires": {
9233 "hosted-git-info": "^2.6.0",
9234 "osenv": "^0.1.5",
9235 "semver": "^5.5.0",
9236 "validate-npm-package-name": "^3.0.0"
9237 }
9238 },
9239 "npm-packlist": {
9240 "version": "1.1.12",
9241 "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.12.tgz",
9242 "integrity": "sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g==",
9243 "requires": {
9244 "ignore-walk": "^3.0.1",
9245 "npm-bundled": "^1.0.1"
9246 }
9247 },
9248 "npm-pick-manifest": {
9249 "version": "2.2.3",
9250 "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz",
9251 "integrity": "sha512-+IluBC5K201+gRU85vFlUwX3PFShZAbAgDNp2ewJdWMVSppdo/Zih0ul2Ecky/X7b51J7LrrUAP+XOmOCvYZqA==",
9252 "requires": {
9253 "figgy-pudding": "^3.5.1",
9254 "npm-package-arg": "^6.0.0",
9255 "semver": "^5.4.1"
9256 }
9257 },
9258 "npm-registry-fetch": {
9259 "version": "3.8.0",
9260 "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.8.0.tgz",
9261 "integrity": "sha512-hrw8UMD+Nob3Kl3h8Z/YjmKamb1gf7D1ZZch2otrIXM3uFLB5vjEY6DhMlq80z/zZet6eETLbOXcuQudCB3Zpw==",
9262 "requires": {
9263 "JSONStream": "^1.3.4",
9264 "bluebird": "^3.5.1",
9265 "figgy-pudding": "^3.4.1",
9266 "lru-cache": "^4.1.3",
9267 "make-fetch-happen": "^4.0.1",
9268 "npm-package-arg": "^6.1.0"
9269 }
9270 },
9271 "npm-run-path": {
9272 "version": "2.0.2",
9273 "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
9274 "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
9275 "dev": true,
9276 "requires": {
9277 "path-key": "^2.0.0"
9278 }
9279 },
9280 "npmlog": {
9281 "version": "4.1.2",
9282 "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
9283 "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
9284 "dev": true,
9285 "requires": {
9286 "are-we-there-yet": "~1.1.2",
9287 "console-control-strings": "~1.1.0",
9288 "gauge": "~2.7.3",
9289 "set-blocking": "~2.0.0"
9290 }
9291 },
9292 "nugget": {
9293 "version": "2.0.1",
9294 "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz",
9295 "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=",
9296 "dev": true,
9297 "requires": {
9298 "debug": "^2.1.3",
9299 "minimist": "^1.1.0",
9300 "pretty-bytes": "^1.0.2",
9301 "progress-stream": "^1.1.0",
9302 "request": "^2.45.0",
9303 "single-line-log": "^1.1.2",
9304 "throttleit": "0.0.2"
9305 },
9306 "dependencies": {
9307 "pretty-bytes": {
9308 "version": "1.0.4",
9309 "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz",
9310 "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=",
9311 "dev": true,
9312 "requires": {
9313 "get-stdin": "^4.0.1",
9314 "meow": "^3.1.0"
9315 }
9316 }
9317 }
9318 },
9319 "number-is-nan": {
9320 "version": "1.0.1",
9321 "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
9322 "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
9323 },
9324 "oauth-sign": {
9325 "version": "0.9.0",
9326 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
9327 "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
9328 "dev": true
9329 },
9330 "object-assign": {
9331 "version": "4.1.1",
9332 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
9333 "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
9334 },
9335 "object-component": {
9336 "version": "0.0.3",
9337 "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
9338 "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=",
9339 "dev": true
9340 },
9341 "object-copy": {
9342 "version": "0.1.0",
9343 "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
9344 "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
9345 "requires": {
9346 "copy-descriptor": "^0.1.0",
9347 "define-property": "^0.2.5",
9348 "kind-of": "^3.0.3"
9349 },
9350 "dependencies": {
9351 "define-property": {
9352 "version": "0.2.5",
9353 "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
9354 "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
9355 "requires": {
9356 "is-descriptor": "^0.1.0"
9357 }
9358 },
9359 "kind-of": {
9360 "version": "3.2.2",
9361 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
9362 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
9363 "requires": {
9364 "is-buffer": "^1.1.5"
9365 }
9366 }
9367 }
9368 },
9369 "object-hash": {
9370 "version": "1.3.0",
9371 "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.0.tgz",
9372 "integrity": "sha512-05KzQ70lSeGSrZJQXE5wNDiTkBJDlUT/myi6RX9dVIvz7a7Qh4oH93BQdiPMn27nldYvVQCKMUaM83AfizZlsQ==",
9373 "dev": true
9374 },
9375 "object-keys": {
9376 "version": "1.0.12",
9377 "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz",
9378 "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==",
9379 "dev": true
9380 },
9381 "object-visit": {
9382 "version": "1.0.1",
9383 "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
9384 "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
9385 "requires": {
9386 "isobject": "^3.0.0"
9387 }
9388 },
9389 "object.assign": {
9390 "version": "4.1.0",
9391 "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
9392 "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
9393 "dev": true,
9394 "requires": {
9395 "define-properties": "^1.1.2",
9396 "function-bind": "^1.1.1",
9397 "has-symbols": "^1.0.0",
9398 "object-keys": "^1.0.11"
9399 }
9400 },
9401 "object.defaults": {
9402 "version": "1.1.0",
9403 "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
9404 "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=",
9405 "requires": {
9406 "array-each": "^1.0.1",
9407 "array-slice": "^1.0.0",
9408 "for-own": "^1.0.0",
9409 "isobject": "^3.0.0"
9410 }
9411 },
9412 "object.map": {
9413 "version": "1.0.1",
9414 "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
9415 "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=",
9416 "requires": {
9417 "for-own": "^1.0.0",
9418 "make-iterator": "^1.0.0"
9419 }
9420 },
9421 "object.omit": {
9422 "version": "2.0.1",
9423 "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
9424 "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
9425 "requires": {
9426 "for-own": "^0.1.4",
9427 "is-extendable": "^0.1.1"
9428 },
9429 "dependencies": {
9430 "for-own": {
9431 "version": "0.1.5",
9432 "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
9433 "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
9434 "requires": {
9435 "for-in": "^1.0.1"
9436 }
9437 }
9438 }
9439 },
9440 "object.pick": {
9441 "version": "1.3.0",
9442 "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
9443 "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
9444 "requires": {
9445 "isobject": "^3.0.1"
9446 }
9447 },
9448 "object.reduce": {
9449 "version": "1.0.1",
9450 "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz",
9451 "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=",
9452 "dev": true,
9453 "requires": {
9454 "for-own": "^1.0.0",
9455 "make-iterator": "^1.0.0"
9456 }
9457 },
9458 "on-finished": {
9459 "version": "2.1.0",
9460 "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.1.0.tgz",
9461 "integrity": "sha1-DFOfCSkej/rd4MiiWFD7LO3HAi0=",
9462 "dev": true,
9463 "requires": {
9464 "ee-first": "1.0.5"
9465 }
9466 },
9467 "once": {
9468 "version": "1.4.0",
9469 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
9470 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
9471 "requires": {
9472 "wrappy": "1"
9473 }
9474 },
9475 "onetime": {
9476 "version": "2.0.1",
9477 "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
9478 "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
9479 "dev": true,
9480 "requires": {
9481 "mimic-fn": "^1.0.0"
9482 }
9483 },
9484 "open": {
9485 "version": "0.0.5",
9486 "resolved": "https://registry.npmjs.org/open/-/open-0.0.5.tgz",
9487 "integrity": "sha1-QsPhjslUZra/DcQvOilFw/DK2Pw=",
9488 "dev": true
9489 },
9490 "optionator": {
9491 "version": "0.8.2",
9492 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
9493 "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
9494 "dev": true,
9495 "requires": {
9496 "deep-is": "~0.1.3",
9497 "fast-levenshtein": "~2.0.4",
9498 "levn": "~0.3.0",
9499 "prelude-ls": "~1.1.2",
9500 "type-check": "~0.3.2",
9501 "wordwrap": "~1.0.0"
9502 }
9503 },
9504 "options": {
9505 "version": "0.0.6",
9506 "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz",
9507 "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=",
9508 "dev": true
9509 },
9510 "ora": {
9511 "version": "1.4.0",
9512 "resolved": "https://registry.npmjs.org/ora/-/ora-1.4.0.tgz",
9513 "integrity": "sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==",
9514 "dev": true,
9515 "requires": {
9516 "chalk": "^2.1.0",
9517 "cli-cursor": "^2.1.0",
9518 "cli-spinners": "^1.0.1",
9519 "log-symbols": "^2.1.0"
9520 },
9521 "dependencies": {
9522 "ansi-styles": {
9523 "version": "3.2.1",
9524 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
9525 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
9526 "dev": true,
9527 "requires": {
9528 "color-convert": "^1.9.0"
9529 }
9530 },
9531 "chalk": {
9532 "version": "2.4.1",
9533 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
9534 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
9535 "dev": true,
9536 "requires": {
9537 "ansi-styles": "^3.2.1",
9538 "escape-string-regexp": "^1.0.5",
9539 "supports-color": "^5.3.0"
9540 }
9541 },
9542 "supports-color": {
9543 "version": "5.5.0",
9544 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
9545 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
9546 "dev": true,
9547 "requires": {
9548 "has-flag": "^3.0.0"
9549 }
9550 }
9551 }
9552 },
9553 "ordered-read-streams": {
9554 "version": "1.0.1",
9555 "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz",
9556 "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=",
9557 "dev": true,
9558 "requires": {
9559 "readable-stream": "^2.0.1"
9560 }
9561 },
9562 "os-homedir": {
9563 "version": "1.0.2",
9564 "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
9565 "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
9566 },
9567 "os-locale": {
9568 "version": "1.4.0",
9569 "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
9570 "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
9571 "requires": {
9572 "lcid": "^1.0.0"
9573 }
9574 },
9575 "os-tmpdir": {
9576 "version": "1.0.2",
9577 "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
9578 "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
9579 },
9580 "osenv": {
9581 "version": "0.1.5",
9582 "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
9583 "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
9584 "requires": {
9585 "os-homedir": "^1.0.0",
9586 "os-tmpdir": "^1.0.0"
9587 }
9588 },
9589 "p-defer": {
9590 "version": "1.0.0",
9591 "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
9592 "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
9593 "dev": true
9594 },
9595 "p-finally": {
9596 "version": "1.0.0",
9597 "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
9598 "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
9599 "dev": true
9600 },
9601 "p-is-promise": {
9602 "version": "1.1.0",
9603 "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz",
9604 "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=",
9605 "dev": true
9606 },
9607 "p-limit": {
9608 "version": "1.3.0",
9609 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
9610 "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
9611 "dev": true,
9612 "requires": {
9613 "p-try": "^1.0.0"
9614 }
9615 },
9616 "p-locate": {
9617 "version": "2.0.0",
9618 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
9619 "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
9620 "dev": true,
9621 "requires": {
9622 "p-limit": "^1.1.0"
9623 }
9624 },
9625 "p-try": {
9626 "version": "1.0.0",
9627 "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
9628 "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
9629 "dev": true
9630 },
9631 "package-json": {
9632 "version": "4.0.1",
9633 "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz",
9634 "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
9635 "dev": true,
9636 "requires": {
9637 "got": "^6.7.1",
9638 "registry-auth-token": "^3.0.1",
9639 "registry-url": "^3.0.3",
9640 "semver": "^5.1.0"
9641 }
9642 },
9643 "pacote": {
9644 "version": "9.2.3",
9645 "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.2.3.tgz",
9646 "integrity": "sha512-Y3+yY3nBRAxMlZWvr62XLJxOwCmG9UmkGZkFurWHoCjqF0cZL72cTOCRJTvWw8T4OhJS2RTg13x4oYYriauvEw==",
9647 "requires": {
9648 "bluebird": "^3.5.2",
9649 "cacache": "^11.2.0",
9650 "figgy-pudding": "^3.5.1",
9651 "get-stream": "^4.1.0",
9652 "glob": "^7.1.3",
9653 "lru-cache": "^4.1.3",
9654 "make-fetch-happen": "^4.0.1",
9655 "minimatch": "^3.0.4",
9656 "minipass": "^2.3.5",
9657 "mississippi": "^3.0.0",
9658 "mkdirp": "^0.5.1",
9659 "normalize-package-data": "^2.4.0",
9660 "npm-package-arg": "^6.1.0",
9661 "npm-packlist": "^1.1.12",
9662 "npm-pick-manifest": "^2.2.3",
9663 "npm-registry-fetch": "^3.8.0",
9664 "osenv": "^0.1.5",
9665 "promise-inflight": "^1.0.1",
9666 "promise-retry": "^1.1.1",
9667 "protoduck": "^5.0.1",
9668 "rimraf": "^2.6.2",
9669 "safe-buffer": "^5.1.2",
9670 "semver": "^5.6.0",
9671 "ssri": "^6.0.1",
9672 "tar": "^4.4.6",
9673 "unique-filename": "^1.1.1",
9674 "which": "^1.3.1"
9675 },
9676 "dependencies": {
9677 "get-stream": {
9678 "version": "4.1.0",
9679 "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
9680 "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
9681 "requires": {
9682 "pump": "^3.0.0"
9683 }
9684 },
9685 "minipass": {
9686 "version": "2.3.5",
9687 "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz",
9688 "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
9689 "requires": {
9690 "safe-buffer": "^5.1.2",
9691 "yallist": "^3.0.0"
9692 }
9693 },
9694 "pump": {
9695 "version": "3.0.0",
9696 "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
9697 "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
9698 "requires": {
9699 "end-of-stream": "^1.1.0",
9700 "once": "^1.3.1"
9701 }
9702 },
9703 "yallist": {
9704 "version": "3.0.3",
9705 "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
9706 "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A=="
9707 }
9708 }
9709 },
9710 "pako": {
9711 "version": "1.0.7",
9712 "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.7.tgz",
9713 "integrity": "sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ=="
9714 },
9715 "parallel-transform": {
9716 "version": "1.1.0",
9717 "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz",
9718 "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=",
9719 "requires": {
9720 "cyclist": "~0.2.2",
9721 "inherits": "^2.0.3",
9722 "readable-stream": "^2.1.5"
9723 }
9724 },
9725 "parse-color": {
9726 "version": "1.0.0",
9727 "resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz",
9728 "integrity": "sha1-e3SLlag/A/FqlPU15S1/PZRlhhk=",
9729 "dev": true,
9730 "requires": {
9731 "color-convert": "~0.5.0"
9732 },
9733 "dependencies": {
9734 "color-convert": {
9735 "version": "0.5.3",
9736 "resolved": "http://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz",
9737 "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=",
9738 "dev": true
9739 }
9740 }
9741 },
9742 "parse-filepath": {
9743 "version": "1.0.2",
9744 "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
9745 "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=",
9746 "requires": {
9747 "is-absolute": "^1.0.0",
9748 "map-cache": "^0.2.0",
9749 "path-root": "^0.1.1"
9750 }
9751 },
9752 "parse-glob": {
9753 "version": "3.0.4",
9754 "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
9755 "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
9756 "requires": {
9757 "glob-base": "^0.3.0",
9758 "is-dotfile": "^1.0.0",
9759 "is-extglob": "^1.0.0",
9760 "is-glob": "^2.0.0"
9761 },
9762 "dependencies": {
9763 "is-extglob": {
9764 "version": "1.0.0",
9765 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
9766 "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
9767 },
9768 "is-glob": {
9769 "version": "2.0.1",
9770 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
9771 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
9772 "requires": {
9773 "is-extglob": "^1.0.0"
9774 }
9775 }
9776 }
9777 },
9778 "parse-json": {
9779 "version": "2.2.0",
9780 "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
9781 "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
9782 "dev": true,
9783 "requires": {
9784 "error-ex": "^1.2.0"
9785 }
9786 },
9787 "parse-passwd": {
9788 "version": "1.0.0",
9789 "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
9790 "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY="
9791 },
9792 "parsejson": {
9793 "version": "0.0.3",
9794 "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz",
9795 "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=",
9796 "dev": true,
9797 "requires": {
9798 "better-assert": "~1.0.0"
9799 }
9800 },
9801 "parseqs": {
9802 "version": "0.0.5",
9803 "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
9804 "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
9805 "dev": true,
9806 "requires": {
9807 "better-assert": "~1.0.0"
9808 }
9809 },
9810 "parseuri": {
9811 "version": "0.0.5",
9812 "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
9813 "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
9814 "dev": true,
9815 "requires": {
9816 "better-assert": "~1.0.0"
9817 }
9818 },
9819 "parseurl": {
9820 "version": "1.3.2",
9821 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
9822 "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
9823 "dev": true
9824 },
9825 "pascalcase": {
9826 "version": "0.1.1",
9827 "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
9828 "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
9829 },
9830 "path-dirname": {
9831 "version": "1.0.2",
9832 "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
9833 "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
9834 "dev": true
9835 },
9836 "path-exists": {
9837 "version": "2.1.0",
9838 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
9839 "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
9840 "dev": true,
9841 "requires": {
9842 "pinkie-promise": "^2.0.0"
9843 }
9844 },
9845 "path-is-absolute": {
9846 "version": "1.0.1",
9847 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
9848 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
9849 },
9850 "path-is-inside": {
9851 "version": "1.0.2",
9852 "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
9853 "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
9854 "dev": true
9855 },
9856 "path-key": {
9857 "version": "2.0.1",
9858 "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
9859 "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
9860 "dev": true
9861 },
9862 "path-parse": {
9863 "version": "1.0.6",
9864 "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
9865 "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
9866 },
9867 "path-root": {
9868 "version": "0.1.1",
9869 "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
9870 "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
9871 "requires": {
9872 "path-root-regex": "^0.1.0"
9873 }
9874 },
9875 "path-root-regex": {
9876 "version": "0.1.2",
9877 "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
9878 "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0="
9879 },
9880 "path-type": {
9881 "version": "1.1.0",
9882 "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
9883 "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
9884 "dev": true,
9885 "requires": {
9886 "graceful-fs": "^4.1.2",
9887 "pify": "^2.0.0",
9888 "pinkie-promise": "^2.0.0"
9889 }
9890 },
9891 "pend": {
9892 "version": "1.2.0",
9893 "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
9894 "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
9895 "dev": true
9896 },
9897 "performance-now": {
9898 "version": "0.2.0",
9899 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
9900 "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU="
9901 },
9902 "pify": {
9903 "version": "2.3.0",
9904 "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
9905 "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
9906 "dev": true
9907 },
9908 "pinkie": {
9909 "version": "2.0.4",
9910 "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
9911 "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
9912 "dev": true
9913 },
9914 "pinkie-promise": {
9915 "version": "2.0.1",
9916 "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
9917 "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
9918 "dev": true,
9919 "requires": {
9920 "pinkie": "^2.0.0"
9921 }
9922 },
9923 "pirates": {
9924 "version": "4.0.0",
9925 "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.0.tgz",
9926 "integrity": "sha512-8t5BsXy1LUIjn3WWOlOuFDuKswhQb/tkak641lvBgmPOBUQHXveORtlMCp6OdPV1dtuTaEahKA8VNz6uLfKBtA==",
9927 "dev": true,
9928 "requires": {
9929 "node-modules-regexp": "^1.0.0"
9930 }
9931 },
9932 "pkg-dir": {
9933 "version": "1.0.0",
9934 "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
9935 "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
9936 "dev": true,
9937 "requires": {
9938 "find-up": "^1.0.0"
9939 }
9940 },
9941 "please-upgrade-node": {
9942 "version": "3.1.1",
9943 "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz",
9944 "integrity": "sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==",
9945 "dev": true,
9946 "requires": {
9947 "semver-compare": "^1.0.0"
9948 }
9949 },
9950 "plist": {
9951 "version": "3.0.1",
9952 "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz",
9953 "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==",
9954 "dev": true,
9955 "requires": {
9956 "base64-js": "^1.2.3",
9957 "xmlbuilder": "^9.0.7",
9958 "xmldom": "0.1.x"
9959 }
9960 },
9961 "plugin-error": {
9962 "version": "1.0.1",
9963 "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz",
9964 "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==",
9965 "dev": true,
9966 "requires": {
9967 "ansi-colors": "^1.0.1",
9968 "arr-diff": "^4.0.0",
9969 "arr-union": "^3.1.0",
9970 "extend-shallow": "^3.0.2"
9971 }
9972 },
9973 "pluralize": {
9974 "version": "7.0.0",
9975 "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
9976 "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
9977 "dev": true
9978 },
9979 "posix-character-classes": {
9980 "version": "0.1.1",
9981 "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
9982 "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
9983 },
9984 "prelude-ls": {
9985 "version": "1.1.2",
9986 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
9987 "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
9988 "dev": true
9989 },
9990 "prepend-http": {
9991 "version": "1.0.4",
9992 "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
9993 "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
9994 },
9995 "preserve": {
9996 "version": "0.2.0",
9997 "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
9998 "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
9999 },
10000 "prettier": {
10001 "version": "1.15.2",
10002 "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.15.2.tgz",
10003 "integrity": "sha512-YgPLFFA0CdKL4Eg2IHtUSjzj/BWgszDHiNQAe0VAIBse34148whfdzLagRL+QiKS+YfK5ftB6X4v/MBw8yCoug==",
10004 "dev": true
10005 },
10006 "pretty-bytes": {
10007 "version": "4.0.2",
10008 "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz",
10009 "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk="
10010 },
10011 "pretty-hrtime": {
10012 "version": "1.0.3",
10013 "resolved": "http://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
10014 "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE="
10015 },
10016 "private": {
10017 "version": "0.1.8",
10018 "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
10019 "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
10020 "dev": true
10021 },
10022 "process-nextick-args": {
10023 "version": "1.0.7",
10024 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
10025 "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
10026 "dev": true
10027 },
10028 "progress": {
10029 "version": "2.0.1",
10030 "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz",
10031 "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==",
10032 "dev": true
10033 },
10034 "progress-stream": {
10035 "version": "1.2.0",
10036 "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz",
10037 "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=",
10038 "dev": true,
10039 "requires": {
10040 "speedometer": "~0.1.2",
10041 "through2": "~0.2.3"
10042 },
10043 "dependencies": {
10044 "isarray": {
10045 "version": "0.0.1",
10046 "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
10047 "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
10048 "dev": true
10049 },
10050 "object-keys": {
10051 "version": "0.4.0",
10052 "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz",
10053 "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=",
10054 "dev": true
10055 },
10056 "readable-stream": {
10057 "version": "1.1.14",
10058 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
10059 "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
10060 "dev": true,
10061 "requires": {
10062 "core-util-is": "~1.0.0",
10063 "inherits": "~2.0.1",
10064 "isarray": "0.0.1",
10065 "string_decoder": "~0.10.x"
10066 }
10067 },
10068 "string_decoder": {
10069 "version": "0.10.31",
10070 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
10071 "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
10072 "dev": true
10073 },
10074 "through2": {
10075 "version": "0.2.3",
10076 "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz",
10077 "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=",
10078 "dev": true,
10079 "requires": {
10080 "readable-stream": "~1.1.9",
10081 "xtend": "~2.1.1"
10082 }
10083 },
10084 "xtend": {
10085 "version": "2.1.2",
10086 "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
10087 "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=",
10088 "dev": true,
10089 "requires": {
10090 "object-keys": "~0.4.0"
10091 }
10092 }
10093 }
10094 },
10095 "promise": {
10096 "version": "7.3.1",
10097 "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
10098 "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
10099 "requires": {
10100 "asap": "~2.0.3"
10101 }
10102 },
10103 "promise-inflight": {
10104 "version": "1.0.1",
10105 "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
10106 "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM="
10107 },
10108 "promise-retry": {
10109 "version": "1.1.1",
10110 "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz",
10111 "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=",
10112 "requires": {
10113 "err-code": "^1.0.0",
10114 "retry": "^0.10.0"
10115 }
10116 },
10117 "prop-types": {
10118 "version": "15.6.2",
10119 "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz",
10120 "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==",
10121 "requires": {
10122 "loose-envify": "^1.3.1",
10123 "object-assign": "^4.1.1"
10124 }
10125 },
10126 "prop-types-extended": {
10127 "version": "0.2.1",
10128 "resolved": "https://registry.npmjs.org/prop-types-extended/-/prop-types-extended-0.2.1.tgz",
10129 "integrity": "sha1-ziPz28SMzcds+hpMfj9+2aXdglk=",
10130 "requires": {
10131 "invariant": "^2.2.0"
10132 }
10133 },
10134 "protoduck": {
10135 "version": "5.0.1",
10136 "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz",
10137 "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==",
10138 "requires": {
10139 "genfun": "^5.0.0"
10140 }
10141 },
10142 "proxy-middleware": {
10143 "version": "0.15.0",
10144 "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz",
10145 "integrity": "sha1-o/3xvvtzD5UZZYcqwvYHTGFHelY=",
10146 "dev": true
10147 },
10148 "pseudomap": {
10149 "version": "1.0.2",
10150 "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
10151 "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
10152 },
10153 "psl": {
10154 "version": "1.1.29",
10155 "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz",
10156 "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==",
10157 "dev": true
10158 },
10159 "pump": {
10160 "version": "2.0.1",
10161 "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
10162 "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
10163 "requires": {
10164 "end-of-stream": "^1.1.0",
10165 "once": "^1.3.1"
10166 }
10167 },
10168 "pumpify": {
10169 "version": "1.5.1",
10170 "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
10171 "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
10172 "requires": {
10173 "duplexify": "^3.6.0",
10174 "inherits": "^2.0.3",
10175 "pump": "^2.0.0"
10176 }
10177 },
10178 "punycode": {
10179 "version": "1.4.1",
10180 "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
10181 "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
10182 "dev": true
10183 },
10184 "pupa": {
10185 "version": "1.0.0",
10186 "resolved": "https://registry.npmjs.org/pupa/-/pupa-1.0.0.tgz",
10187 "integrity": "sha1-mpVopa9+ZXuEYqbp1TKHQ1YM7/Y="
10188 },
10189 "qs": {
10190 "version": "6.5.2",
10191 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
10192 "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
10193 "dev": true
10194 },
10195 "query-string": {
10196 "version": "4.3.4",
10197 "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
10198 "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
10199 "requires": {
10200 "object-assign": "^4.1.0",
10201 "strict-uri-encode": "^1.0.0"
10202 }
10203 },
10204 "raf": {
10205 "version": "3.4.0",
10206 "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz",
10207 "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==",
10208 "requires": {
10209 "performance-now": "^2.1.0"
10210 },
10211 "dependencies": {
10212 "performance-now": {
10213 "version": "2.1.0",
10214 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
10215 "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
10216 }
10217 }
10218 },
10219 "randomatic": {
10220 "version": "3.1.0",
10221 "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz",
10222 "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==",
10223 "requires": {
10224 "is-number": "^4.0.0",
10225 "kind-of": "^6.0.0",
10226 "math-random": "^1.0.1"
10227 },
10228 "dependencies": {
10229 "is-number": {
10230 "version": "4.0.0",
10231 "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
10232 "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ=="
10233 }
10234 }
10235 },
10236 "range-parser": {
10237 "version": "1.0.3",
10238 "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz",
10239 "integrity": "sha1-aHKCNTXGkuLCoBA4Jq/YLC4P8XU=",
10240 "dev": true
10241 },
10242 "rc": {
10243 "version": "1.2.8",
10244 "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
10245 "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
10246 "dev": true,
10247 "requires": {
10248 "deep-extend": "^0.6.0",
10249 "ini": "~1.3.0",
10250 "minimist": "^1.2.0",
10251 "strip-json-comments": "~2.0.1"
10252 }
10253 },
10254 "react": {
10255 "version": "15.6.2",
10256 "resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz",
10257 "integrity": "sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=",
10258 "requires": {
10259 "create-react-class": "^15.6.0",
10260 "fbjs": "^0.8.9",
10261 "loose-envify": "^1.1.0",
10262 "object-assign": "^4.1.0",
10263 "prop-types": "^15.5.10"
10264 }
10265 },
10266 "react-addons-css-transition-group": {
10267 "version": "15.6.2",
10268 "resolved": "https://registry.npmjs.org/react-addons-css-transition-group/-/react-addons-css-transition-group-15.6.2.tgz",
10269 "integrity": "sha1-nkN2vPQLUhfRTsaFUwgc7ksIptY=",
10270 "requires": {
10271 "react-transition-group": "^1.2.0"
10272 }
10273 },
10274 "react-dom": {
10275 "version": "15.6.2",
10276 "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.2.tgz",
10277 "integrity": "sha1-Qc+t9pO3V/rycIRDodH9WgK+9zA=",
10278 "requires": {
10279 "fbjs": "^0.8.9",
10280 "loose-envify": "^1.1.0",
10281 "object-assign": "^4.1.0",
10282 "prop-types": "^15.5.10"
10283 }
10284 },
10285 "react-dropzone": {
10286 "version": "4.3.0",
10287 "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-4.3.0.tgz",
10288 "integrity": "sha512-ULfrLaTSsd8BDa9KVAGCueuq1AN3L14dtMsGGqtP0UwYyjG4Vhf158f/ITSHuSPYkZXbvfcIiOlZsH+e3QWm+Q==",
10289 "requires": {
10290 "attr-accept": "^1.1.3",
10291 "prop-types": "^15.5.7"
10292 }
10293 },
10294 "react-electron-web-view": {
10295 "version": "2.0.1",
10296 "resolved": "https://registry.npmjs.org/react-electron-web-view/-/react-electron-web-view-2.0.1.tgz",
10297 "integrity": "sha1-mEt7u+t341vMqSHcUBIPyPKw8n0=",
10298 "requires": {
10299 "lodash.camelcase": "^4.3.0"
10300 }
10301 },
10302 "react-intl": {
10303 "version": "2.7.1",
10304 "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.7.1.tgz",
10305 "integrity": "sha512-Ndk0i04dSplBivA0/fELd8lMvIPuRizKC+F6s1EZ6jELvRKNcx9shWa8A1UIlTQfYSbys5huWCRgmylbW0e57A==",
10306 "requires": {
10307 "hoist-non-react-statics": "^2.5.5",
10308 "intl-format-cache": "^2.0.5",
10309 "intl-messageformat": "^2.1.0",
10310 "intl-relativeformat": "^2.1.0",
10311 "invariant": "^2.1.1"
10312 }
10313 },
10314 "react-jss": {
10315 "version": "8.6.1",
10316 "resolved": "https://registry.npmjs.org/react-jss/-/react-jss-8.6.1.tgz",
10317 "integrity": "sha512-SH6XrJDJkAphp602J14JTy3puB2Zxz1FkM3bKVE8wON+va99jnUTKWnzGECb3NfIn9JPR5vHykge7K3/A747xQ==",
10318 "requires": {
10319 "hoist-non-react-statics": "^2.5.0",
10320 "jss": "^9.7.0",
10321 "jss-preset-default": "^4.3.0",
10322 "prop-types": "^15.6.0",
10323 "theming": "^1.3.0"
10324 }
10325 },
10326 "react-lifecycles-compat": {
10327 "version": "3.0.4",
10328 "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
10329 "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
10330 },
10331 "react-loader": {
10332 "version": "2.4.5",
10333 "resolved": "https://registry.npmjs.org/react-loader/-/react-loader-2.4.5.tgz",
10334 "integrity": "sha1-zT5VHGzQc4wcDxPwc2VPk4KL5ak=",
10335 "requires": {
10336 "create-react-class": "^15.5.2",
10337 "prop-types": "^15.5.8",
10338 "spin.js": "2.x"
10339 }
10340 },
10341 "react-motion": {
10342 "version": "0.4.8",
10343 "resolved": "https://registry.npmjs.org/react-motion/-/react-motion-0.4.8.tgz",
10344 "integrity": "sha1-I7st0nwtjgDSKeRVctEF789Ao14=",
10345 "requires": {
10346 "create-react-class": "^15.5.2",
10347 "performance-now": "^0.2.0",
10348 "prop-types": "^15.5.8",
10349 "raf": "^3.1.0"
10350 }
10351 },
10352 "react-router": {
10353 "version": "3.2.1",
10354 "resolved": "http://registry.npmjs.org/react-router/-/react-router-3.2.1.tgz",
10355 "integrity": "sha512-SXkhC0nr3G0ltzVU07IN8jYl0bB6FsrDIqlLC9dK3SITXqyTJyM7yhXlUqs89w3Nqi5OkXsfRUeHX+P874HQrg==",
10356 "requires": {
10357 "create-react-class": "^15.5.1",
10358 "history": "^3.0.0",
10359 "hoist-non-react-statics": "^2.3.1",
10360 "invariant": "^2.2.1",
10361 "loose-envify": "^1.2.0",
10362 "prop-types": "^15.5.6",
10363 "warning": "^3.0.0"
10364 }
10365 },
10366 "react-router-transition": {
10367 "version": "0.1.1",
10368 "resolved": "https://registry.npmjs.org/react-router-transition/-/react-router-transition-0.1.1.tgz",
10369 "integrity": "sha1-bMLLdHyyfk1WMsgsp1C0MSzNO9Y=",
10370 "requires": {
10371 "prop-types": "^15.5.8",
10372 "react-motion": "^0.4.8"
10373 }
10374 },
10375 "react-sortable-hoc": {
10376 "version": "0.6.8",
10377 "resolved": "https://registry.npmjs.org/react-sortable-hoc/-/react-sortable-hoc-0.6.8.tgz",
10378 "integrity": "sha512-sUUAtNdV84AKZ2o+F5lVOOFWcyWG6aGDkNFgHoieB1zFLeWLWENkix06asPS4/GhigfuRh06aZix1j3Qx8+NSQ==",
10379 "requires": {
10380 "babel-runtime": "^6.11.6",
10381 "invariant": "^2.2.1",
10382 "lodash": "^4.12.0",
10383 "prop-types": "^15.5.7"
10384 }
10385 },
10386 "react-tooltip": {
10387 "version": "3.9.0",
10388 "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-3.9.0.tgz",
10389 "integrity": "sha512-vpn738FVv2oe2LzdwUchped3WqLgZSQwrBow+ceChS1+lFEJBPjOa9KD3JH/L/s0Aorxawi3A20qBcHX7vqaag==",
10390 "requires": {
10391 "classnames": "^2.2.5",
10392 "prop-types": "^15.6.0",
10393 "sanitize-html-react": "^1.13.0"
10394 }
10395 },
10396 "react-transition-group": {
10397 "version": "1.2.1",
10398 "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-1.2.1.tgz",
10399 "integrity": "sha512-CWaL3laCmgAFdxdKbhhps+c0HRGF4c+hdM4H23+FI1QBNUyx/AMeIJGWorehPNSaKnQNOAxL7PQmqMu78CDj3Q==",
10400 "requires": {
10401 "chain-function": "^1.0.0",
10402 "dom-helpers": "^3.2.0",
10403 "loose-envify": "^1.3.1",
10404 "prop-types": "^15.5.6",
10405 "warning": "^3.0.0"
10406 }
10407 },
10408 "react-virtualized": {
10409 "version": "9.21.0",
10410 "resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.21.0.tgz",
10411 "integrity": "sha512-duKD2HvO33mqld4EtQKm9H9H0p+xce1c++2D5xn59Ma7P8VT7CprfAe5hwjd1OGkyhqzOZiTMlTal7LxjH5yBQ==",
10412 "requires": {
10413 "babel-runtime": "^6.26.0",
10414 "classnames": "^2.2.3",
10415 "dom-helpers": "^2.4.0 || ^3.0.0",
10416 "loose-envify": "^1.3.0",
10417 "prop-types": "^15.6.0",
10418 "react-lifecycles-compat": "^3.0.4"
10419 }
10420 },
10421 "read-config-file": {
10422 "version": "3.2.0",
10423 "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-3.2.0.tgz",
10424 "integrity": "sha512-i1QRc5jy4sHm9YBGb6ArA5SU1mDrc5wu2mnm3r9gPnm+LVZhBGbpTCKqAXyvV4TJHnBR3Yaaww+9b3DyRZcfww==",
10425 "dev": true,
10426 "requires": {
10427 "ajv": "^6.5.5",
10428 "ajv-keywords": "^3.2.0",
10429 "bluebird-lst": "^1.0.6",
10430 "dotenv": "^6.1.0",
10431 "dotenv-expand": "^4.2.0",
10432 "fs-extra-p": "^7.0.0",
10433 "js-yaml": "^3.12.0",
10434 "json5": "^2.1.0",
10435 "lazy-val": "^1.0.3"
10436 },
10437 "dependencies": {
10438 "ajv": {
10439 "version": "6.6.1",
10440 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.1.tgz",
10441 "integrity": "sha512-ZoJjft5B+EJBjUyu9C9Hc0OZyPZSSlOF+plzouTrg6UlA8f+e/n8NIgBFG/9tppJtpPWfthHakK7juJdNDODww==",
10442 "dev": true,
10443 "requires": {
10444 "fast-deep-equal": "^2.0.1",
10445 "fast-json-stable-stringify": "^2.0.0",
10446 "json-schema-traverse": "^0.4.1",
10447 "uri-js": "^4.2.2"
10448 }
10449 },
10450 "ajv-keywords": {
10451 "version": "3.2.0",
10452 "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz",
10453 "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=",
10454 "dev": true
10455 },
10456 "dotenv": {
10457 "version": "6.1.0",
10458 "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.1.0.tgz",
10459 "integrity": "sha512-/veDn2ztgRlB7gKmE3i9f6CmDIyXAy6d5nBq+whO9SLX+Zs1sXEgFLPi+aSuWqUuusMfbi84fT8j34fs1HaYUw==",
10460 "dev": true
10461 },
10462 "fast-deep-equal": {
10463 "version": "2.0.1",
10464 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
10465 "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
10466 "dev": true
10467 },
10468 "json-schema-traverse": {
10469 "version": "0.4.1",
10470 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
10471 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
10472 "dev": true
10473 },
10474 "json5": {
10475 "version": "2.1.0",
10476 "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz",
10477 "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==",
10478 "dev": true,
10479 "requires": {
10480 "minimist": "^1.2.0"
10481 }
10482 }
10483 }
10484 },
10485 "read-pkg": {
10486 "version": "1.1.0",
10487 "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
10488 "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
10489 "dev": true,
10490 "requires": {
10491 "load-json-file": "^1.0.0",
10492 "normalize-package-data": "^2.3.2",
10493 "path-type": "^1.0.0"
10494 }
10495 },
10496 "read-pkg-up": {
10497 "version": "1.0.1",
10498 "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
10499 "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
10500 "dev": true,
10501 "requires": {
10502 "find-up": "^1.0.0",
10503 "read-pkg": "^1.0.0"
10504 }
10505 },
10506 "readable-stream": {
10507 "version": "2.3.6",
10508 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
10509 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
10510 "requires": {
10511 "core-util-is": "~1.0.0",
10512 "inherits": "~2.0.3",
10513 "isarray": "~1.0.0",
10514 "process-nextick-args": "~2.0.0",
10515 "safe-buffer": "~5.1.1",
10516 "string_decoder": "~1.1.1",
10517 "util-deprecate": "~1.0.1"
10518 },
10519 "dependencies": {
10520 "process-nextick-args": {
10521 "version": "2.0.0",
10522 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
10523 "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
10524 }
10525 }
10526 },
10527 "readdirp": {
10528 "version": "2.2.1",
10529 "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
10530 "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
10531 "dev": true,
10532 "requires": {
10533 "graceful-fs": "^4.1.11",
10534 "micromatch": "^3.1.10",
10535 "readable-stream": "^2.0.2"
10536 }
10537 },
10538 "rechoir": {
10539 "version": "0.6.2",
10540 "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
10541 "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
10542 "requires": {
10543 "resolve": "^1.1.6"
10544 }
10545 },
10546 "redent": {
10547 "version": "1.0.0",
10548 "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
10549 "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
10550 "dev": true,
10551 "requires": {
10552 "indent-string": "^2.1.0",
10553 "strip-indent": "^1.0.1"
10554 }
10555 },
10556 "regenerate": {
10557 "version": "1.4.0",
10558 "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
10559 "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
10560 "dev": true
10561 },
10562 "regenerate-unicode-properties": {
10563 "version": "7.0.0",
10564 "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz",
10565 "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==",
10566 "dev": true,
10567 "requires": {
10568 "regenerate": "^1.4.0"
10569 }
10570 },
10571 "regenerator-runtime": {
10572 "version": "0.11.1",
10573 "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
10574 "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
10575 },
10576 "regenerator-transform": {
10577 "version": "0.13.3",
10578 "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.3.tgz",
10579 "integrity": "sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA==",
10580 "dev": true,
10581 "requires": {
10582 "private": "^0.1.6"
10583 }
10584 },
10585 "regex-cache": {
10586 "version": "0.4.4",
10587 "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
10588 "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
10589 "requires": {
10590 "is-equal-shallow": "^0.1.3"
10591 }
10592 },
10593 "regex-not": {
10594 "version": "1.0.2",
10595 "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
10596 "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
10597 "requires": {
10598 "extend-shallow": "^3.0.2",
10599 "safe-regex": "^1.1.0"
10600 }
10601 },
10602 "regexp-quote": {
10603 "version": "0.0.0",
10604 "resolved": "https://registry.npmjs.org/regexp-quote/-/regexp-quote-0.0.0.tgz",
10605 "integrity": "sha1-Hg9GUMhi3L/tVP1CsUjpuxch/PI="
10606 },
10607 "regexpp": {
10608 "version": "1.1.0",
10609 "resolved": "http://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz",
10610 "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==",
10611 "dev": true
10612 },
10613 "regexpu-core": {
10614 "version": "4.2.0",
10615 "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.2.0.tgz",
10616 "integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==",
10617 "dev": true,
10618 "requires": {
10619 "regenerate": "^1.4.0",
10620 "regenerate-unicode-properties": "^7.0.0",
10621 "regjsgen": "^0.4.0",
10622 "regjsparser": "^0.3.0",
10623 "unicode-match-property-ecmascript": "^1.0.4",
10624 "unicode-match-property-value-ecmascript": "^1.0.2"
10625 }
10626 },
10627 "registry-auth-token": {
10628 "version": "3.3.2",
10629 "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz",
10630 "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==",
10631 "dev": true,
10632 "requires": {
10633 "rc": "^1.1.6",
10634 "safe-buffer": "^5.0.1"
10635 }
10636 },
10637 "registry-url": {
10638 "version": "3.1.0",
10639 "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
10640 "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
10641 "dev": true,
10642 "requires": {
10643 "rc": "^1.0.1"
10644 }
10645 },
10646 "regjsgen": {
10647 "version": "0.4.0",
10648 "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.4.0.tgz",
10649 "integrity": "sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA==",
10650 "dev": true
10651 },
10652 "regjsparser": {
10653 "version": "0.3.0",
10654 "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.3.0.tgz",
10655 "integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==",
10656 "dev": true,
10657 "requires": {
10658 "jsesc": "~0.5.0"
10659 },
10660 "dependencies": {
10661 "jsesc": {
10662 "version": "0.5.0",
10663 "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
10664 "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
10665 "dev": true
10666 }
10667 }
10668 },
10669 "remove-bom-buffer": {
10670 "version": "3.0.0",
10671 "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz",
10672 "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==",
10673 "dev": true,
10674 "requires": {
10675 "is-buffer": "^1.1.5",
10676 "is-utf8": "^0.2.1"
10677 }
10678 },
10679 "remove-bom-stream": {
10680 "version": "1.2.0",
10681 "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz",
10682 "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=",
10683 "dev": true,
10684 "requires": {
10685 "remove-bom-buffer": "^3.0.0",
10686 "safe-buffer": "^5.1.0",
10687 "through2": "^2.0.3"
10688 }
10689 },
10690 "remove-trailing-separator": {
10691 "version": "1.1.0",
10692 "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
10693 "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
10694 },
10695 "repeat-element": {
10696 "version": "1.1.3",
10697 "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
10698 "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
10699 },
10700 "repeat-string": {
10701 "version": "1.6.1",
10702 "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
10703 "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
10704 },
10705 "repeating": {
10706 "version": "2.0.1",
10707 "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
10708 "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
10709 "dev": true,
10710 "requires": {
10711 "is-finite": "^1.0.0"
10712 }
10713 },
10714 "replace-ext": {
10715 "version": "1.0.0",
10716 "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
10717 "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
10718 "dev": true
10719 },
10720 "replace-homedir": {
10721 "version": "1.0.0",
10722 "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz",
10723 "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=",
10724 "dev": true,
10725 "requires": {
10726 "homedir-polyfill": "^1.0.1",
10727 "is-absolute": "^1.0.0",
10728 "remove-trailing-separator": "^1.1.0"
10729 }
10730 },
10731 "request": {
10732 "version": "2.88.0",
10733 "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
10734 "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
10735 "dev": true,
10736 "requires": {
10737 "aws-sign2": "~0.7.0",
10738 "aws4": "^1.8.0",
10739 "caseless": "~0.12.0",
10740 "combined-stream": "~1.0.6",
10741 "extend": "~3.0.2",
10742 "forever-agent": "~0.6.1",
10743 "form-data": "~2.3.2",
10744 "har-validator": "~5.1.0",
10745 "http-signature": "~1.2.0",
10746 "is-typedarray": "~1.0.0",
10747 "isstream": "~0.1.2",
10748 "json-stringify-safe": "~5.0.1",
10749 "mime-types": "~2.1.19",
10750 "oauth-sign": "~0.9.0",
10751 "performance-now": "^2.1.0",
10752 "qs": "~6.5.2",
10753 "safe-buffer": "^5.1.2",
10754 "tough-cookie": "~2.4.3",
10755 "tunnel-agent": "^0.6.0",
10756 "uuid": "^3.3.2"
10757 },
10758 "dependencies": {
10759 "performance-now": {
10760 "version": "2.1.0",
10761 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
10762 "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
10763 "dev": true
10764 }
10765 }
10766 },
10767 "require-directory": {
10768 "version": "2.1.1",
10769 "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
10770 "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
10771 "dev": true
10772 },
10773 "require-main-filename": {
10774 "version": "1.0.1",
10775 "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
10776 "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
10777 "dev": true
10778 },
10779 "require-uncached": {
10780 "version": "1.0.3",
10781 "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
10782 "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
10783 "dev": true,
10784 "requires": {
10785 "caller-path": "^0.1.0",
10786 "resolve-from": "^1.0.0"
10787 }
10788 },
10789 "resolve": {
10790 "version": "1.8.1",
10791 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
10792 "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
10793 "requires": {
10794 "path-parse": "^1.0.5"
10795 }
10796 },
10797 "resolve-dir": {
10798 "version": "1.0.1",
10799 "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
10800 "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
10801 "requires": {
10802 "expand-tilde": "^2.0.0",
10803 "global-modules": "^1.0.0"
10804 }
10805 },
10806 "resolve-from": {
10807 "version": "1.0.1",
10808 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
10809 "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
10810 "dev": true
10811 },
10812 "resolve-options": {
10813 "version": "1.1.0",
10814 "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz",
10815 "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=",
10816 "dev": true,
10817 "requires": {
10818 "value-or-function": "^3.0.0"
10819 }
10820 },
10821 "resolve-url": {
10822 "version": "0.2.1",
10823 "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
10824 "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
10825 },
10826 "restore-cursor": {
10827 "version": "2.0.0",
10828 "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
10829 "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
10830 "dev": true,
10831 "requires": {
10832 "onetime": "^2.0.0",
10833 "signal-exit": "^3.0.2"
10834 }
10835 },
10836 "ret": {
10837 "version": "0.1.15",
10838 "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
10839 "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
10840 },
10841 "retry": {
10842 "version": "0.10.1",
10843 "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz",
10844 "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q="
10845 },
10846 "right-pad": {
10847 "version": "1.0.1",
10848 "resolved": "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz",
10849 "integrity": "sha1-jKCMLLtbVedNr6lr9/0aJ9VoyNA=",
10850 "dev": true
10851 },
10852 "rimraf": {
10853 "version": "2.6.2",
10854 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
10855 "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
10856 "requires": {
10857 "glob": "^7.0.5"
10858 }
10859 },
10860 "route-parser": {
10861 "version": "0.0.5",
10862 "resolved": "https://registry.npmjs.org/route-parser/-/route-parser-0.0.5.tgz",
10863 "integrity": "sha1-fR0J0zXkkJQDHqFpkaSnmwG74fQ="
10864 },
10865 "run-async": {
10866 "version": "2.3.0",
10867 "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
10868 "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
10869 "dev": true,
10870 "requires": {
10871 "is-promise": "^2.1.0"
10872 }
10873 },
10874 "run-node": {
10875 "version": "1.0.0",
10876 "resolved": "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz",
10877 "integrity": "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==",
10878 "dev": true
10879 },
10880 "run-queue": {
10881 "version": "1.0.3",
10882 "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
10883 "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
10884 "requires": {
10885 "aproba": "^1.1.1"
10886 }
10887 },
10888 "rx-lite": {
10889 "version": "4.0.8",
10890 "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
10891 "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
10892 "dev": true
10893 },
10894 "rx-lite-aggregates": {
10895 "version": "4.0.8",
10896 "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
10897 "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
10898 "dev": true,
10899 "requires": {
10900 "rx-lite": "*"
10901 }
10902 },
10903 "rxjs": {
10904 "version": "5.5.12",
10905 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz",
10906 "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==",
10907 "dev": true,
10908 "requires": {
10909 "symbol-observable": "1.0.1"
10910 }
10911 },
10912 "safe-buffer": {
10913 "version": "5.1.2",
10914 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
10915 "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
10916 },
10917 "safe-regex": {
10918 "version": "1.1.0",
10919 "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
10920 "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
10921 "requires": {
10922 "ret": "~0.1.10"
10923 }
10924 },
10925 "safer-buffer": {
10926 "version": "2.1.2",
10927 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
10928 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
10929 },
10930 "sanitize-filename": {
10931 "version": "1.6.1",
10932 "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.1.tgz",
10933 "integrity": "sha1-YS2hyWRz+gLczaktzVtKsWSmdyo=",
10934 "dev": true,
10935 "requires": {
10936 "truncate-utf8-bytes": "^1.0.0"
10937 }
10938 },
10939 "sanitize-html-react": {
10940 "version": "1.13.0",
10941 "resolved": "https://registry.npmjs.org/sanitize-html-react/-/sanitize-html-react-1.13.0.tgz",
10942 "integrity": "sha1-51e5rbryyKdi89Lf9wE4g44FQgo=",
10943 "requires": {
10944 "htmlparser2": "^3.9.0",
10945 "regexp-quote": "0.0.0",
10946 "xtend": "^4.0.0"
10947 }
10948 },
10949 "sass-graph": {
10950 "version": "2.2.4",
10951 "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
10952 "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
10953 "dev": true,
10954 "requires": {
10955 "glob": "^7.0.0",
10956 "lodash": "^4.0.0",
10957 "scss-tokenizer": "^0.2.3",
10958 "yargs": "^7.0.0"
10959 }
10960 },
10961 "sax": {
10962 "version": "1.2.4",
10963 "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
10964 "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
10965 },
10966 "scss-tokenizer": {
10967 "version": "0.2.3",
10968 "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
10969 "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
10970 "dev": true,
10971 "requires": {
10972 "js-base64": "^2.1.8",
10973 "source-map": "^0.4.2"
10974 },
10975 "dependencies": {
10976 "source-map": {
10977 "version": "0.4.4",
10978 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
10979 "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
10980 "dev": true,
10981 "requires": {
10982 "amdefine": ">=0.0.4"
10983 }
10984 }
10985 }
10986 },
10987 "semver": {
10988 "version": "5.6.0",
10989 "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
10990 "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg=="
10991 },
10992 "semver-compare": {
10993 "version": "1.0.0",
10994 "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
10995 "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
10996 "dev": true
10997 },
10998 "semver-diff": {
10999 "version": "2.1.0",
11000 "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
11001 "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
11002 "dev": true,
11003 "requires": {
11004 "semver": "^5.0.3"
11005 }
11006 },
11007 "semver-greatest-satisfied-range": {
11008 "version": "1.1.0",
11009 "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz",
11010 "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=",
11011 "requires": {
11012 "sver-compat": "^1.5.0"
11013 }
11014 },
11015 "send": {
11016 "version": "0.8.5",
11017 "resolved": "https://registry.npmjs.org/send/-/send-0.8.5.tgz",
11018 "integrity": "sha1-N/cIIW5vUMF150xp/sU0hOL9gsc=",
11019 "dev": true,
11020 "requires": {
11021 "debug": "1.0.4",
11022 "depd": "0.4.4",
11023 "destroy": "1.0.3",
11024 "escape-html": "1.0.1",
11025 "fresh": "0.2.2",
11026 "mime": "1.2.11",
11027 "ms": "0.6.2",
11028 "on-finished": "2.1.0",
11029 "range-parser": "~1.0.0"
11030 },
11031 "dependencies": {
11032 "debug": {
11033 "version": "1.0.4",
11034 "resolved": "http://registry.npmjs.org/debug/-/debug-1.0.4.tgz",
11035 "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=",
11036 "dev": true,
11037 "requires": {
11038 "ms": "0.6.2"
11039 }
11040 },
11041 "mime": {
11042 "version": "1.2.11",
11043 "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz",
11044 "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=",
11045 "dev": true
11046 },
11047 "ms": {
11048 "version": "0.6.2",
11049 "resolved": "http://registry.npmjs.org/ms/-/ms-0.6.2.tgz",
11050 "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=",
11051 "dev": true
11052 }
11053 }
11054 },
11055 "serve-index": {
11056 "version": "1.1.6",
11057 "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.1.6.tgz",
11058 "integrity": "sha1-t1gxj+eBYoOD9mrIDdRHcS6neB8=",
11059 "dev": true,
11060 "requires": {
11061 "accepts": "~1.0.7",
11062 "batch": "0.5.1",
11063 "parseurl": "~1.3.0"
11064 }
11065 },
11066 "serve-static": {
11067 "version": "1.5.4",
11068 "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.5.4.tgz",
11069 "integrity": "sha1-gZ+zeuRr0C3VILd/z3/Y9REvl4I=",
11070 "dev": true,
11071 "requires": {
11072 "escape-html": "1.0.1",
11073 "parseurl": "~1.3.0",
11074 "send": "0.8.5",
11075 "utils-merge": "1.0.0"
11076 }
11077 },
11078 "set-blocking": {
11079 "version": "2.0.0",
11080 "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
11081 "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
11082 "dev": true
11083 },
11084 "set-value": {
11085 "version": "2.0.0",
11086 "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
11087 "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
11088 "requires": {
11089 "extend-shallow": "^2.0.1",
11090 "is-extendable": "^0.1.1",
11091 "is-plain-object": "^2.0.3",
11092 "split-string": "^3.0.1"
11093 },
11094 "dependencies": {
11095 "extend-shallow": {
11096 "version": "2.0.1",
11097 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
11098 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
11099 "requires": {
11100 "is-extendable": "^0.1.0"
11101 }
11102 }
11103 }
11104 },
11105 "setimmediate": {
11106 "version": "1.0.5",
11107 "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
11108 "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
11109 },
11110 "shebang-command": {
11111 "version": "1.2.0",
11112 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
11113 "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
11114 "dev": true,
11115 "requires": {
11116 "shebang-regex": "^1.0.0"
11117 }
11118 },
11119 "shebang-regex": {
11120 "version": "1.0.0",
11121 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
11122 "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
11123 "dev": true
11124 },
11125 "sigmund": {
11126 "version": "1.0.1",
11127 "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
11128 "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
11129 "dev": true
11130 },
11131 "signal-exit": {
11132 "version": "3.0.2",
11133 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
11134 "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
11135 "dev": true
11136 },
11137 "single-line-log": {
11138 "version": "1.1.2",
11139 "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz",
11140 "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=",
11141 "dev": true,
11142 "requires": {
11143 "string-width": "^1.0.1"
11144 }
11145 },
11146 "slash": {
11147 "version": "2.0.0",
11148 "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
11149 "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
11150 "dev": true
11151 },
11152 "slice-ansi": {
11153 "version": "1.0.0",
11154 "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
11155 "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
11156 "dev": true,
11157 "requires": {
11158 "is-fullwidth-code-point": "^2.0.0"
11159 },
11160 "dependencies": {
11161 "is-fullwidth-code-point": {
11162 "version": "2.0.0",
11163 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
11164 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
11165 "dev": true
11166 }
11167 }
11168 },
11169 "smart-buffer": {
11170 "version": "4.0.1",
11171 "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.1.tgz",
11172 "integrity": "sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg=="
11173 },
11174 "smoothscroll-polyfill": {
11175 "version": "0.3.6",
11176 "resolved": "https://registry.npmjs.org/smoothscroll-polyfill/-/smoothscroll-polyfill-0.3.6.tgz",
11177 "integrity": "sha1-SSvoRRlRV83C/FKaldieenFQkXI="
11178 },
11179 "snapdragon": {
11180 "version": "0.8.2",
11181 "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
11182 "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
11183 "requires": {
11184 "base": "^0.11.1",
11185 "debug": "^2.2.0",
11186 "define-property": "^0.2.5",
11187 "extend-shallow": "^2.0.1",
11188 "map-cache": "^0.2.2",
11189 "source-map": "^0.5.6",
11190 "source-map-resolve": "^0.5.0",
11191 "use": "^3.1.0"
11192 },
11193 "dependencies": {
11194 "define-property": {
11195 "version": "0.2.5",
11196 "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
11197 "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
11198 "requires": {
11199 "is-descriptor": "^0.1.0"
11200 }
11201 },
11202 "extend-shallow": {
11203 "version": "2.0.1",
11204 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
11205 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
11206 "requires": {
11207 "is-extendable": "^0.1.0"
11208 }
11209 }
11210 }
11211 },
11212 "snapdragon-node": {
11213 "version": "2.1.1",
11214 "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
11215 "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
11216 "requires": {
11217 "define-property": "^1.0.0",
11218 "isobject": "^3.0.0",
11219 "snapdragon-util": "^3.0.1"
11220 },
11221 "dependencies": {
11222 "define-property": {
11223 "version": "1.0.0",
11224 "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
11225 "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
11226 "requires": {
11227 "is-descriptor": "^1.0.0"
11228 }
11229 },
11230 "is-accessor-descriptor": {
11231 "version": "1.0.0",
11232 "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
11233 "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
11234 "requires": {
11235 "kind-of": "^6.0.0"
11236 }
11237 },
11238 "is-data-descriptor": {
11239 "version": "1.0.0",
11240 "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
11241 "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
11242 "requires": {
11243 "kind-of": "^6.0.0"
11244 }
11245 },
11246 "is-descriptor": {
11247 "version": "1.0.2",
11248 "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
11249 "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
11250 "requires": {
11251 "is-accessor-descriptor": "^1.0.0",
11252 "is-data-descriptor": "^1.0.0",
11253 "kind-of": "^6.0.2"
11254 }
11255 }
11256 }
11257 },
11258 "snapdragon-util": {
11259 "version": "3.0.1",
11260 "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
11261 "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
11262 "requires": {
11263 "kind-of": "^3.2.0"
11264 },
11265 "dependencies": {
11266 "kind-of": {
11267 "version": "3.2.2",
11268 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
11269 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
11270 "requires": {
11271 "is-buffer": "^1.1.5"
11272 }
11273 }
11274 }
11275 },
11276 "socket.io": {
11277 "version": "1.7.4",
11278 "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.4.tgz",
11279 "integrity": "sha1-L37O3DORvy1cc+KR/iM+bjTU3QA=",
11280 "dev": true,
11281 "requires": {
11282 "debug": "2.3.3",
11283 "engine.io": "~1.8.4",
11284 "has-binary": "0.1.7",
11285 "object-assign": "4.1.0",
11286 "socket.io-adapter": "0.5.0",
11287 "socket.io-client": "1.7.4",
11288 "socket.io-parser": "2.3.1"
11289 },
11290 "dependencies": {
11291 "debug": {
11292 "version": "2.3.3",
11293 "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
11294 "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
11295 "dev": true,
11296 "requires": {
11297 "ms": "0.7.2"
11298 }
11299 },
11300 "ms": {
11301 "version": "0.7.2",
11302 "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
11303 "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
11304 "dev": true
11305 },
11306 "object-assign": {
11307 "version": "4.1.0",
11308 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
11309 "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
11310 "dev": true
11311 }
11312 }
11313 },
11314 "socket.io-adapter": {
11315 "version": "0.5.0",
11316 "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz",
11317 "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=",
11318 "dev": true,
11319 "requires": {
11320 "debug": "2.3.3",
11321 "socket.io-parser": "2.3.1"
11322 },
11323 "dependencies": {
11324 "debug": {
11325 "version": "2.3.3",
11326 "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
11327 "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
11328 "dev": true,
11329 "requires": {
11330 "ms": "0.7.2"
11331 }
11332 },
11333 "ms": {
11334 "version": "0.7.2",
11335 "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
11336 "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
11337 "dev": true
11338 }
11339 }
11340 },
11341 "socket.io-client": {
11342 "version": "1.7.4",
11343 "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.4.tgz",
11344 "integrity": "sha1-7J+CA1btme9tNX8HVtZIcXvdQoE=",
11345 "dev": true,
11346 "requires": {
11347 "backo2": "1.0.2",
11348 "component-bind": "1.0.0",
11349 "component-emitter": "1.2.1",
11350 "debug": "2.3.3",
11351 "engine.io-client": "~1.8.4",
11352 "has-binary": "0.1.7",
11353 "indexof": "0.0.1",
11354 "object-component": "0.0.3",
11355 "parseuri": "0.0.5",
11356 "socket.io-parser": "2.3.1",
11357 "to-array": "0.1.4"
11358 },
11359 "dependencies": {
11360 "debug": {
11361 "version": "2.3.3",
11362 "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
11363 "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
11364 "dev": true,
11365 "requires": {
11366 "ms": "0.7.2"
11367 }
11368 },
11369 "ms": {
11370 "version": "0.7.2",
11371 "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
11372 "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
11373 "dev": true
11374 }
11375 }
11376 },
11377 "socket.io-parser": {
11378 "version": "2.3.1",
11379 "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz",
11380 "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=",
11381 "dev": true,
11382 "requires": {
11383 "component-emitter": "1.1.2",
11384 "debug": "2.2.0",
11385 "isarray": "0.0.1",
11386 "json3": "3.3.2"
11387 },
11388 "dependencies": {
11389 "component-emitter": {
11390 "version": "1.1.2",
11391 "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz",
11392 "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=",
11393 "dev": true
11394 },
11395 "debug": {
11396 "version": "2.2.0",
11397 "resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
11398 "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
11399 "dev": true,
11400 "requires": {
11401 "ms": "0.7.1"
11402 }
11403 },
11404 "isarray": {
11405 "version": "0.0.1",
11406 "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
11407 "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
11408 "dev": true
11409 },
11410 "ms": {
11411 "version": "0.7.1",
11412 "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
11413 "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
11414 "dev": true
11415 }
11416 }
11417 },
11418 "socks": {
11419 "version": "2.2.2",
11420 "resolved": "https://registry.npmjs.org/socks/-/socks-2.2.2.tgz",
11421 "integrity": "sha512-g6wjBnnMOZpE0ym6e0uHSddz9p3a+WsBaaYQaBaSCJYvrC4IXykQR9MNGjLQf38e9iIIhp3b1/Zk8YZI3KGJ0Q==",
11422 "requires": {
11423 "ip": "^1.1.5",
11424 "smart-buffer": "^4.0.1"
11425 }
11426 },
11427 "socks-proxy-agent": {
11428 "version": "4.0.1",
11429 "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz",
11430 "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==",
11431 "requires": {
11432 "agent-base": "~4.2.0",
11433 "socks": "~2.2.0"
11434 }
11435 },
11436 "sort-keys": {
11437 "version": "1.1.2",
11438 "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
11439 "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
11440 "requires": {
11441 "is-plain-obj": "^1.0.0"
11442 }
11443 },
11444 "sort-keys-length": {
11445 "version": "1.0.1",
11446 "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz",
11447 "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=",
11448 "requires": {
11449 "sort-keys": "^1.0.0"
11450 }
11451 },
11452 "source-map": {
11453 "version": "0.5.7",
11454 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
11455 "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
11456 },
11457 "source-map-resolve": {
11458 "version": "0.5.2",
11459 "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
11460 "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
11461 "requires": {
11462 "atob": "^2.1.1",
11463 "decode-uri-component": "^0.2.0",
11464 "resolve-url": "^0.2.1",
11465 "source-map-url": "^0.4.0",
11466 "urix": "^0.1.0"
11467 }
11468 },
11469 "source-map-support": {
11470 "version": "0.5.9",
11471 "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz",
11472 "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
11473 "requires": {
11474 "buffer-from": "^1.0.0",
11475 "source-map": "^0.6.0"
11476 },
11477 "dependencies": {
11478 "source-map": {
11479 "version": "0.6.1",
11480 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
11481 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
11482 }
11483 }
11484 },
11485 "source-map-url": {
11486 "version": "0.4.0",
11487 "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
11488 "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
11489 },
11490 "sparkles": {
11491 "version": "1.0.1",
11492 "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz",
11493 "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw=="
11494 },
11495 "spawn-command": {
11496 "version": "0.0.2-1",
11497 "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz",
11498 "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=",
11499 "dev": true
11500 },
11501 "spawn-rx": {
11502 "version": "2.0.12",
11503 "resolved": "https://registry.npmjs.org/spawn-rx/-/spawn-rx-2.0.12.tgz",
11504 "integrity": "sha512-gOPXiQQFQ9lTOLuys0iMn3jfxxv9c7zzwhbYLOEbQGvEShHVJ5sSR1oD3Daj88os7jKArDYT7rbOKdvNhe7iEg==",
11505 "dev": true,
11506 "requires": {
11507 "debug": "^2.5.1",
11508 "lodash.assign": "^4.2.0",
11509 "rxjs": "^5.1.1"
11510 }
11511 },
11512 "spdx-correct": {
11513 "version": "3.0.2",
11514 "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz",
11515 "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==",
11516 "requires": {
11517 "spdx-expression-parse": "^3.0.0",
11518 "spdx-license-ids": "^3.0.0"
11519 }
11520 },
11521 "spdx-exceptions": {
11522 "version": "2.2.0",
11523 "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
11524 "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA=="
11525 },
11526 "spdx-expression-parse": {
11527 "version": "3.0.0",
11528 "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
11529 "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
11530 "requires": {
11531 "spdx-exceptions": "^2.1.0",
11532 "spdx-license-ids": "^3.0.0"
11533 }
11534 },
11535 "spdx-license-ids": {
11536 "version": "3.0.1",
11537 "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz",
11538 "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w=="
11539 },
11540 "speedometer": {
11541 "version": "0.1.4",
11542 "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz",
11543 "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=",
11544 "dev": true
11545 },
11546 "spin.js": {
11547 "version": "2.3.2",
11548 "resolved": "https://registry.npmjs.org/spin.js/-/spin.js-2.3.2.tgz",
11549 "integrity": "sha1-bKpW1SBnNFD9XPvGlx5tB3LDeho="
11550 },
11551 "split-string": {
11552 "version": "3.1.0",
11553 "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
11554 "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
11555 "requires": {
11556 "extend-shallow": "^3.0.0"
11557 }
11558 },
11559 "sprintf-js": {
11560 "version": "1.0.3",
11561 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
11562 "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
11563 },
11564 "sshpk": {
11565 "version": "1.15.1",
11566 "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.1.tgz",
11567 "integrity": "sha512-mSdgNUaidk+dRU5MhYtN9zebdzF2iG0cNPWy8HG+W8y+fT1JnSkh0fzzpjOa0L7P8i1Rscz38t0h4gPcKz43xA==",
11568 "dev": true,
11569 "requires": {
11570 "asn1": "~0.2.3",
11571 "assert-plus": "^1.0.0",
11572 "bcrypt-pbkdf": "^1.0.0",
11573 "dashdash": "^1.12.0",
11574 "ecc-jsbn": "~0.1.1",
11575 "getpass": "^0.1.1",
11576 "jsbn": "~0.1.0",
11577 "safer-buffer": "^2.0.2",
11578 "tweetnacl": "~0.14.0"
11579 }
11580 },
11581 "ssri": {
11582 "version": "6.0.1",
11583 "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
11584 "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
11585 "requires": {
11586 "figgy-pudding": "^3.5.1"
11587 }
11588 },
11589 "stack-trace": {
11590 "version": "0.0.10",
11591 "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
11592 "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
11593 "dev": true
11594 },
11595 "stat-mode": {
11596 "version": "0.2.2",
11597 "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz",
11598 "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=",
11599 "dev": true
11600 },
11601 "static-extend": {
11602 "version": "0.1.2",
11603 "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
11604 "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
11605 "requires": {
11606 "define-property": "^0.2.5",
11607 "object-copy": "^0.1.0"
11608 },
11609 "dependencies": {
11610 "define-property": {
11611 "version": "0.2.5",
11612 "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
11613 "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
11614 "requires": {
11615 "is-descriptor": "^0.1.0"
11616 }
11617 }
11618 }
11619 },
11620 "stdout-stream": {
11621 "version": "1.4.1",
11622 "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
11623 "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
11624 "dev": true,
11625 "requires": {
11626 "readable-stream": "^2.0.1"
11627 }
11628 },
11629 "stream-each": {
11630 "version": "1.2.3",
11631 "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
11632 "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
11633 "requires": {
11634 "end-of-stream": "^1.1.0",
11635 "stream-shift": "^1.0.0"
11636 }
11637 },
11638 "stream-exhaust": {
11639 "version": "1.0.2",
11640 "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz",
11641 "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==",
11642 "dev": true
11643 },
11644 "stream-shift": {
11645 "version": "1.0.0",
11646 "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
11647 "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI="
11648 },
11649 "strict-uri-encode": {
11650 "version": "1.1.0",
11651 "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
11652 "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
11653 },
11654 "string-width": {
11655 "version": "1.0.2",
11656 "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
11657 "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
11658 "requires": {
11659 "code-point-at": "^1.0.0",
11660 "is-fullwidth-code-point": "^1.0.0",
11661 "strip-ansi": "^3.0.0"
11662 }
11663 },
11664 "string_decoder": {
11665 "version": "1.1.1",
11666 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
11667 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
11668 "requires": {
11669 "safe-buffer": "~5.1.0"
11670 }
11671 },
11672 "strip-ansi": {
11673 "version": "3.0.1",
11674 "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
11675 "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
11676 "requires": {
11677 "ansi-regex": "^2.0.0"
11678 }
11679 },
11680 "strip-bom": {
11681 "version": "2.0.0",
11682 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
11683 "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
11684 "dev": true,
11685 "requires": {
11686 "is-utf8": "^0.2.0"
11687 }
11688 },
11689 "strip-eof": {
11690 "version": "1.0.0",
11691 "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
11692 "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
11693 "dev": true
11694 },
11695 "strip-indent": {
11696 "version": "1.0.1",
11697 "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
11698 "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
11699 "dev": true,
11700 "requires": {
11701 "get-stdin": "^4.0.1"
11702 }
11703 },
11704 "strip-json-comments": {
11705 "version": "2.0.1",
11706 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
11707 "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
11708 "dev": true
11709 },
11710 "supports-color": {
11711 "version": "2.0.0",
11712 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
11713 "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
11714 },
11715 "sver-compat": {
11716 "version": "1.5.0",
11717 "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz",
11718 "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=",
11719 "requires": {
11720 "es6-iterator": "^2.0.1",
11721 "es6-symbol": "^3.1.1"
11722 }
11723 },
11724 "symbol-observable": {
11725 "version": "1.0.1",
11726 "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
11727 "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=",
11728 "dev": true
11729 },
11730 "table": {
11731 "version": "4.0.2",
11732 "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
11733 "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
11734 "dev": true,
11735 "requires": {
11736 "ajv": "^5.2.3",
11737 "ajv-keywords": "^2.1.0",
11738 "chalk": "^2.1.0",
11739 "lodash": "^4.17.4",
11740 "slice-ansi": "1.0.0",
11741 "string-width": "^2.1.1"
11742 },
11743 "dependencies": {
11744 "ansi-regex": {
11745 "version": "3.0.0",
11746 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
11747 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
11748 "dev": true
11749 },
11750 "ansi-styles": {
11751 "version": "3.2.1",
11752 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
11753 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
11754 "dev": true,
11755 "requires": {
11756 "color-convert": "^1.9.0"
11757 }
11758 },
11759 "chalk": {
11760 "version": "2.4.1",
11761 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
11762 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
11763 "dev": true,
11764 "requires": {
11765 "ansi-styles": "^3.2.1",
11766 "escape-string-regexp": "^1.0.5",
11767 "supports-color": "^5.3.0"
11768 }
11769 },
11770 "is-fullwidth-code-point": {
11771 "version": "2.0.0",
11772 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
11773 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
11774 "dev": true
11775 },
11776 "string-width": {
11777 "version": "2.1.1",
11778 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
11779 "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
11780 "dev": true,
11781 "requires": {
11782 "is-fullwidth-code-point": "^2.0.0",
11783 "strip-ansi": "^4.0.0"
11784 }
11785 },
11786 "strip-ansi": {
11787 "version": "4.0.0",
11788 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
11789 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
11790 "dev": true,
11791 "requires": {
11792 "ansi-regex": "^3.0.0"
11793 }
11794 },
11795 "supports-color": {
11796 "version": "5.5.0",
11797 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
11798 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
11799 "dev": true,
11800 "requires": {
11801 "has-flag": "^3.0.0"
11802 }
11803 }
11804 }
11805 },
11806 "tar": {
11807 "version": "4.4.6",
11808 "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.6.tgz",
11809 "integrity": "sha512-tMkTnh9EdzxyfW+6GK6fCahagXsnYk6kE6S9Gr9pjVdys769+laCTbodXDhPAjzVtEBazRgP0gYqOjnk9dQzLg==",
11810 "requires": {
11811 "chownr": "^1.0.1",
11812 "fs-minipass": "^1.2.5",
11813 "minipass": "^2.3.3",
11814 "minizlib": "^1.1.0",
11815 "mkdirp": "^0.5.0",
11816 "safe-buffer": "^5.1.2",
11817 "yallist": "^3.0.2"
11818 },
11819 "dependencies": {
11820 "yallist": {
11821 "version": "3.0.2",
11822 "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz",
11823 "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k="
11824 }
11825 }
11826 },
11827 "temp-file": {
11828 "version": "3.3.2",
11829 "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.3.2.tgz",
11830 "integrity": "sha512-FGKccAW0Mux9hC/2bdUIe4bJRv4OyVo4RpVcuplFird1V/YoplIFbnPZjfzbJSf/qNvRZIRB9/4n/RkI0GziuQ==",
11831 "dev": true,
11832 "requires": {
11833 "async-exit-hook": "^2.0.1",
11834 "bluebird-lst": "^1.0.6",
11835 "fs-extra-p": "^7.0.0"
11836 }
11837 },
11838 "term-size": {
11839 "version": "1.2.0",
11840 "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
11841 "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
11842 "dev": true,
11843 "requires": {
11844 "execa": "^0.7.0"
11845 }
11846 },
11847 "text-table": {
11848 "version": "0.2.0",
11849 "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
11850 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
11851 "dev": true
11852 },
11853 "theming": {
11854 "version": "1.3.0",
11855 "resolved": "https://registry.npmjs.org/theming/-/theming-1.3.0.tgz",
11856 "integrity": "sha512-ya5Ef7XDGbTPBv5ENTwrwkPUexrlPeiAg/EI9kdlUAZhNlRbCdhMKRgjNX1IcmsmiPcqDQZE6BpSaH+cr31FKw==",
11857 "requires": {
11858 "brcast": "^3.0.1",
11859 "is-function": "^1.0.1",
11860 "is-plain-object": "^2.0.1",
11861 "prop-types": "^15.5.8"
11862 }
11863 },
11864 "throttleit": {
11865 "version": "0.0.2",
11866 "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz",
11867 "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=",
11868 "dev": true
11869 },
11870 "through": {
11871 "version": "2.3.8",
11872 "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz",
11873 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
11874 },
11875 "through2": {
11876 "version": "2.0.3",
11877 "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
11878 "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
11879 "requires": {
11880 "readable-stream": "^2.1.5",
11881 "xtend": "~4.0.1"
11882 }
11883 },
11884 "through2-filter": {
11885 "version": "2.0.0",
11886 "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz",
11887 "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=",
11888 "dev": true,
11889 "requires": {
11890 "through2": "~2.0.0",
11891 "xtend": "~4.0.0"
11892 }
11893 },
11894 "tildify": {
11895 "version": "1.2.0",
11896 "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz",
11897 "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=",
11898 "requires": {
11899 "os-homedir": "^1.0.0"
11900 }
11901 },
11902 "time-stamp": {
11903 "version": "1.1.0",
11904 "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz",
11905 "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM="
11906 },
11907 "timed-out": {
11908 "version": "4.0.1",
11909 "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
11910 "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
11911 "dev": true
11912 },
11913 "to-absolute-glob": {
11914 "version": "2.0.2",
11915 "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
11916 "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=",
11917 "dev": true,
11918 "requires": {
11919 "is-absolute": "^1.0.0",
11920 "is-negated-glob": "^1.0.0"
11921 }
11922 },
11923 "to-array": {
11924 "version": "0.1.4",
11925 "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
11926 "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=",
11927 "dev": true
11928 },
11929 "to-object-path": {
11930 "version": "0.3.0",
11931 "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
11932 "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
11933 "requires": {
11934 "kind-of": "^3.0.2"
11935 },
11936 "dependencies": {
11937 "kind-of": {
11938 "version": "3.2.2",
11939 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
11940 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
11941 "requires": {
11942 "is-buffer": "^1.1.5"
11943 }
11944 }
11945 }
11946 },
11947 "to-regex": {
11948 "version": "3.0.2",
11949 "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
11950 "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
11951 "requires": {
11952 "define-property": "^2.0.2",
11953 "extend-shallow": "^3.0.2",
11954 "regex-not": "^1.0.2",
11955 "safe-regex": "^1.1.0"
11956 }
11957 },
11958 "to-regex-range": {
11959 "version": "2.1.1",
11960 "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
11961 "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
11962 "requires": {
11963 "is-number": "^3.0.0",
11964 "repeat-string": "^1.6.1"
11965 }
11966 },
11967 "to-through": {
11968 "version": "2.0.0",
11969 "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz",
11970 "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=",
11971 "dev": true,
11972 "requires": {
11973 "through2": "^2.0.3"
11974 }
11975 },
11976 "topo": {
11977 "version": "1.1.0",
11978 "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz",
11979 "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=",
11980 "requires": {
11981 "hoek": "2.x.x"
11982 }
11983 },
11984 "tough-cookie": {
11985 "version": "2.4.3",
11986 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
11987 "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
11988 "dev": true,
11989 "requires": {
11990 "psl": "^1.1.24",
11991 "punycode": "^1.4.1"
11992 }
11993 },
11994 "tree-kill": {
11995 "version": "1.2.0",
11996 "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz",
11997 "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==",
11998 "dev": true
11999 },
12000 "trim-newlines": {
12001 "version": "1.0.0",
12002 "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
12003 "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
12004 "dev": true
12005 },
12006 "trim-right": {
12007 "version": "1.0.1",
12008 "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
12009 "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
12010 "dev": true
12011 },
12012 "true-case-path": {
12013 "version": "1.0.3",
12014 "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
12015 "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
12016 "dev": true,
12017 "requires": {
12018 "glob": "^7.1.2"
12019 }
12020 },
12021 "truncate-utf8-bytes": {
12022 "version": "1.0.2",
12023 "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
12024 "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=",
12025 "dev": true,
12026 "requires": {
12027 "utf8-byte-length": "^1.0.1"
12028 }
12029 },
12030 "tslib": {
12031 "version": "1.9.3",
12032 "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
12033 "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
12034 },
12035 "tunnel-agent": {
12036 "version": "0.6.0",
12037 "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
12038 "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
12039 "dev": true,
12040 "requires": {
12041 "safe-buffer": "^5.0.1"
12042 }
12043 },
12044 "tweetnacl": {
12045 "version": "0.14.5",
12046 "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
12047 "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
12048 "dev": true
12049 },
12050 "type-check": {
12051 "version": "0.3.2",
12052 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
12053 "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
12054 "dev": true,
12055 "requires": {
12056 "prelude-ls": "~1.1.2"
12057 }
12058 },
12059 "typedarray": {
12060 "version": "0.0.6",
12061 "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
12062 "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
12063 },
12064 "ua-parser-js": {
12065 "version": "0.7.18",
12066 "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz",
12067 "integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA=="
12068 },
12069 "ultron": {
12070 "version": "1.0.2",
12071 "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz",
12072 "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=",
12073 "dev": true
12074 },
12075 "unc-path-regex": {
12076 "version": "0.1.2",
12077 "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
12078 "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo="
12079 },
12080 "undertaker": {
12081 "version": "1.2.0",
12082 "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.0.tgz",
12083 "integrity": "sha1-M52kZGJS0ILcN45wgGcpl1DhG0k=",
12084 "dev": true,
12085 "requires": {
12086 "arr-flatten": "^1.0.1",
12087 "arr-map": "^2.0.0",
12088 "bach": "^1.0.0",
12089 "collection-map": "^1.0.0",
12090 "es6-weak-map": "^2.0.1",
12091 "last-run": "^1.1.0",
12092 "object.defaults": "^1.0.0",
12093 "object.reduce": "^1.0.0",
12094 "undertaker-registry": "^1.0.0"
12095 }
12096 },
12097 "undertaker-registry": {
12098 "version": "1.0.1",
12099 "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz",
12100 "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=",
12101 "dev": true
12102 },
12103 "unicode-canonical-property-names-ecmascript": {
12104 "version": "1.0.4",
12105 "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
12106 "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==",
12107 "dev": true
12108 },
12109 "unicode-match-property-ecmascript": {
12110 "version": "1.0.4",
12111 "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
12112 "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
12113 "dev": true,
12114 "requires": {
12115 "unicode-canonical-property-names-ecmascript": "^1.0.4",
12116 "unicode-property-aliases-ecmascript": "^1.0.4"
12117 }
12118 },
12119 "unicode-match-property-value-ecmascript": {
12120 "version": "1.0.2",
12121 "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz",
12122 "integrity": "sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==",
12123 "dev": true
12124 },
12125 "unicode-property-aliases-ecmascript": {
12126 "version": "1.0.4",
12127 "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz",
12128 "integrity": "sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==",
12129 "dev": true
12130 },
12131 "union-value": {
12132 "version": "1.0.0",
12133 "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
12134 "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
12135 "requires": {
12136 "arr-union": "^3.1.0",
12137 "get-value": "^2.0.6",
12138 "is-extendable": "^0.1.1",
12139 "set-value": "^0.4.3"
12140 },
12141 "dependencies": {
12142 "extend-shallow": {
12143 "version": "2.0.1",
12144 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
12145 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
12146 "requires": {
12147 "is-extendable": "^0.1.0"
12148 }
12149 },
12150 "set-value": {
12151 "version": "0.4.3",
12152 "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
12153 "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
12154 "requires": {
12155 "extend-shallow": "^2.0.1",
12156 "is-extendable": "^0.1.1",
12157 "is-plain-object": "^2.0.1",
12158 "to-object-path": "^0.3.0"
12159 }
12160 }
12161 }
12162 },
12163 "unique-filename": {
12164 "version": "1.1.1",
12165 "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
12166 "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
12167 "requires": {
12168 "unique-slug": "^2.0.0"
12169 }
12170 },
12171 "unique-slug": {
12172 "version": "2.0.1",
12173 "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz",
12174 "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==",
12175 "requires": {
12176 "imurmurhash": "^0.1.4"
12177 }
12178 },
12179 "unique-stream": {
12180 "version": "2.2.1",
12181 "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz",
12182 "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=",
12183 "dev": true,
12184 "requires": {
12185 "json-stable-stringify": "^1.0.0",
12186 "through2-filter": "^2.0.0"
12187 }
12188 },
12189 "unique-string": {
12190 "version": "1.0.0",
12191 "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
12192 "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
12193 "dev": true,
12194 "requires": {
12195 "crypto-random-string": "^1.0.0"
12196 }
12197 },
12198 "universalify": {
12199 "version": "0.1.2",
12200 "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
12201 "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
12202 },
12203 "unixify": {
12204 "version": "1.0.0",
12205 "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz",
12206 "integrity": "sha1-OmQcjC/7zk2mg6XHDwOkYpQMIJA=",
12207 "requires": {
12208 "normalize-path": "^2.1.1"
12209 }
12210 },
12211 "unset-value": {
12212 "version": "1.0.0",
12213 "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
12214 "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
12215 "requires": {
12216 "has-value": "^0.3.1",
12217 "isobject": "^3.0.0"
12218 },
12219 "dependencies": {
12220 "has-value": {
12221 "version": "0.3.1",
12222 "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
12223 "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
12224 "requires": {
12225 "get-value": "^2.0.3",
12226 "has-values": "^0.1.4",
12227 "isobject": "^2.0.0"
12228 },
12229 "dependencies": {
12230 "isobject": {
12231 "version": "2.1.0",
12232 "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
12233 "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
12234 "requires": {
12235 "isarray": "1.0.0"
12236 }
12237 }
12238 }
12239 },
12240 "has-values": {
12241 "version": "0.1.4",
12242 "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
12243 "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
12244 }
12245 }
12246 },
12247 "untildify": {
12248 "version": "3.0.3",
12249 "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz",
12250 "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA=="
12251 },
12252 "unused-filename": {
12253 "version": "1.0.0",
12254 "resolved": "https://registry.npmjs.org/unused-filename/-/unused-filename-1.0.0.tgz",
12255 "integrity": "sha1-00CID3GuIRXrqhMlvvBcxmhEacY=",
12256 "requires": {
12257 "modify-filename": "^1.1.0",
12258 "path-exists": "^3.0.0"
12259 },
12260 "dependencies": {
12261 "path-exists": {
12262 "version": "3.0.0",
12263 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
12264 "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
12265 }
12266 }
12267 },
12268 "unzip-response": {
12269 "version": "2.0.1",
12270 "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz",
12271 "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=",
12272 "dev": true
12273 },
12274 "upath": {
12275 "version": "1.1.0",
12276 "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz",
12277 "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==",
12278 "dev": true
12279 },
12280 "update-notifier": {
12281 "version": "2.5.0",
12282 "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz",
12283 "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==",
12284 "dev": true,
12285 "requires": {
12286 "boxen": "^1.2.1",
12287 "chalk": "^2.0.1",
12288 "configstore": "^3.0.0",
12289 "import-lazy": "^2.1.0",
12290 "is-ci": "^1.0.10",
12291 "is-installed-globally": "^0.1.0",
12292 "is-npm": "^1.0.0",
12293 "latest-version": "^3.0.0",
12294 "semver-diff": "^2.0.0",
12295 "xdg-basedir": "^3.0.0"
12296 },
12297 "dependencies": {
12298 "ansi-styles": {
12299 "version": "3.2.1",
12300 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
12301 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
12302 "dev": true,
12303 "requires": {
12304 "color-convert": "^1.9.0"
12305 }
12306 },
12307 "chalk": {
12308 "version": "2.4.1",
12309 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
12310 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
12311 "dev": true,
12312 "requires": {
12313 "ansi-styles": "^3.2.1",
12314 "escape-string-regexp": "^1.0.5",
12315 "supports-color": "^5.3.0"
12316 }
12317 },
12318 "supports-color": {
12319 "version": "5.5.0",
12320 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
12321 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
12322 "dev": true,
12323 "requires": {
12324 "has-flag": "^3.0.0"
12325 }
12326 }
12327 }
12328 },
12329 "uri-js": {
12330 "version": "4.2.2",
12331 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
12332 "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
12333 "dev": true,
12334 "requires": {
12335 "punycode": "^2.1.0"
12336 },
12337 "dependencies": {
12338 "punycode": {
12339 "version": "2.1.1",
12340 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
12341 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
12342 "dev": true
12343 }
12344 }
12345 },
12346 "urix": {
12347 "version": "0.1.0",
12348 "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
12349 "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
12350 },
12351 "url-parse-lax": {
12352 "version": "1.0.0",
12353 "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
12354 "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
12355 "dev": true,
12356 "requires": {
12357 "prepend-http": "^1.0.1"
12358 }
12359 },
12360 "use": {
12361 "version": "3.1.1",
12362 "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
12363 "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
12364 },
12365 "user-home": {
12366 "version": "1.1.1",
12367 "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
12368 "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA="
12369 },
12370 "utf8-byte-length": {
12371 "version": "1.0.4",
12372 "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz",
12373 "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=",
12374 "dev": true
12375 },
12376 "util-deprecate": {
12377 "version": "1.0.2",
12378 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
12379 "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
12380 },
12381 "utils-merge": {
12382 "version": "1.0.0",
12383 "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz",
12384 "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=",
12385 "dev": true
12386 },
12387 "uuid": {
12388 "version": "3.3.2",
12389 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
12390 "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
12391 },
12392 "v8flags": {
12393 "version": "3.1.1",
12394 "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.1.tgz",
12395 "integrity": "sha512-iw/1ViSEaff8NJ3HLyEjawk/8hjJib3E7pvG4pddVXfUg1983s3VGsiClDjhK64MQVDGqc1Q8r18S4VKQZS9EQ==",
12396 "dev": true,
12397 "requires": {
12398 "homedir-polyfill": "^1.0.1"
12399 }
12400 },
12401 "validate-npm-package-license": {
12402 "version": "3.0.4",
12403 "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
12404 "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
12405 "requires": {
12406 "spdx-correct": "^3.0.0",
12407 "spdx-expression-parse": "^3.0.0"
12408 }
12409 },
12410 "validate-npm-package-name": {
12411 "version": "3.0.0",
12412 "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz",
12413 "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=",
12414 "requires": {
12415 "builtins": "^1.0.3"
12416 }
12417 },
12418 "value-or-function": {
12419 "version": "3.0.0",
12420 "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz",
12421 "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=",
12422 "dev": true
12423 },
12424 "verror": {
12425 "version": "1.10.0",
12426 "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
12427 "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
12428 "dev": true,
12429 "requires": {
12430 "assert-plus": "^1.0.0",
12431 "core-util-is": "1.0.2",
12432 "extsprintf": "^1.2.0"
12433 }
12434 },
12435 "vinyl": {
12436 "version": "2.2.0",
12437 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz",
12438 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
12439 "dev": true,
12440 "requires": {
12441 "clone": "^2.1.1",
12442 "clone-buffer": "^1.0.0",
12443 "clone-stats": "^1.0.0",
12444 "cloneable-readable": "^1.0.0",
12445 "remove-trailing-separator": "^1.0.1",
12446 "replace-ext": "^1.0.0"
12447 }
12448 },
12449 "vinyl-fs": {
12450 "version": "3.0.3",
12451 "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz",
12452 "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==",
12453 "dev": true,
12454 "requires": {
12455 "fs-mkdirp-stream": "^1.0.0",
12456 "glob-stream": "^6.1.0",
12457 "graceful-fs": "^4.0.0",
12458 "is-valid-glob": "^1.0.0",
12459 "lazystream": "^1.0.0",
12460 "lead": "^1.0.0",
12461 "object.assign": "^4.0.4",
12462 "pumpify": "^1.3.5",
12463 "readable-stream": "^2.3.3",
12464 "remove-bom-buffer": "^3.0.0",
12465 "remove-bom-stream": "^1.2.0",
12466 "resolve-options": "^1.1.0",
12467 "through2": "^2.0.0",
12468 "to-through": "^2.0.0",
12469 "value-or-function": "^3.0.0",
12470 "vinyl": "^2.0.0",
12471 "vinyl-sourcemap": "^1.1.0"
12472 }
12473 },
12474 "vinyl-sourcemap": {
12475 "version": "1.1.0",
12476 "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz",
12477 "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=",
12478 "dev": true,
12479 "requires": {
12480 "append-buffer": "^1.0.2",
12481 "convert-source-map": "^1.5.0",
12482 "graceful-fs": "^4.1.6",
12483 "normalize-path": "^2.1.1",
12484 "now-and-later": "^2.0.0",
12485 "remove-bom-buffer": "^3.0.0",
12486 "vinyl": "^2.0.0"
12487 }
12488 },
12489 "vinyl-sourcemaps-apply": {
12490 "version": "0.2.1",
12491 "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz",
12492 "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=",
12493 "dev": true,
12494 "requires": {
12495 "source-map": "^0.5.1"
12496 }
12497 },
12498 "wait-on": {
12499 "version": "3.1.0",
12500 "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-3.1.0.tgz",
12501 "integrity": "sha512-yjYwMvnOhA3PTghvzPQAmT2TSVvBMbOdBRRjMPfBD6FU5si/PkAsI8P3X5sh9ntkYjZvPQLpQRpDUyax5h4COg==",
12502 "dev": true,
12503 "requires": {
12504 "core-js": "^2.5.7",
12505 "joi": "^13.0.0",
12506 "minimist": "^1.2.0",
12507 "request": "^2.88.0",
12508 "rx": "^4.1.0"
12509 },
12510 "dependencies": {
12511 "hoek": {
12512 "version": "5.0.4",
12513 "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.4.tgz",
12514 "integrity": "sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==",
12515 "dev": true
12516 },
12517 "isemail": {
12518 "version": "3.2.0",
12519 "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz",
12520 "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==",
12521 "dev": true,
12522 "requires": {
12523 "punycode": "2.x.x"
12524 }
12525 },
12526 "joi": {
12527 "version": "13.7.0",
12528 "resolved": "https://registry.npmjs.org/joi/-/joi-13.7.0.tgz",
12529 "integrity": "sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==",
12530 "dev": true,
12531 "requires": {
12532 "hoek": "5.x.x",
12533 "isemail": "3.x.x",
12534 "topo": "3.x.x"
12535 }
12536 },
12537 "punycode": {
12538 "version": "2.1.1",
12539 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
12540 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
12541 "dev": true
12542 },
12543 "rx": {
12544 "version": "4.1.0",
12545 "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
12546 "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=",
12547 "dev": true
12548 },
12549 "topo": {
12550 "version": "3.0.0",
12551 "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.0.tgz",
12552 "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==",
12553 "dev": true,
12554 "requires": {
12555 "hoek": "5.x.x"
12556 }
12557 }
12558 }
12559 },
12560 "warning": {
12561 "version": "3.0.0",
12562 "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
12563 "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
12564 "requires": {
12565 "loose-envify": "^1.0.0"
12566 }
12567 },
12568 "whatwg-fetch": {
12569 "version": "3.0.0",
12570 "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz",
12571 "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q=="
12572 },
12573 "which": {
12574 "version": "1.3.1",
12575 "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
12576 "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
12577 "requires": {
12578 "isexe": "^2.0.0"
12579 }
12580 },
12581 "which-module": {
12582 "version": "1.0.0",
12583 "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
12584 "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
12585 "dev": true
12586 },
12587 "wide-align": {
12588 "version": "1.1.3",
12589 "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
12590 "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
12591 "dev": true,
12592 "requires": {
12593 "string-width": "^1.0.2 || 2"
12594 }
12595 },
12596 "widest-line": {
12597 "version": "2.0.1",
12598 "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz",
12599 "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==",
12600 "dev": true,
12601 "requires": {
12602 "string-width": "^2.1.1"
12603 },
12604 "dependencies": {
12605 "ansi-regex": {
12606 "version": "3.0.0",
12607 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
12608 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
12609 "dev": true
12610 },
12611 "is-fullwidth-code-point": {
12612 "version": "2.0.0",
12613 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
12614 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
12615 "dev": true
12616 },
12617 "string-width": {
12618 "version": "2.1.1",
12619 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
12620 "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
12621 "dev": true,
12622 "requires": {
12623 "is-fullwidth-code-point": "^2.0.0",
12624 "strip-ansi": "^4.0.0"
12625 }
12626 },
12627 "strip-ansi": {
12628 "version": "4.0.0",
12629 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
12630 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
12631 "dev": true,
12632 "requires": {
12633 "ansi-regex": "^3.0.0"
12634 }
12635 }
12636 }
12637 },
12638 "window-size": {
12639 "version": "0.1.4",
12640 "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
12641 "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY="
12642 },
12643 "windows-notification-state": {
12644 "version": "1.3.0",
12645 "resolved": "https://registry.npmjs.org/windows-notification-state/-/windows-notification-state-1.3.0.tgz",
12646 "integrity": "sha1-n3J3guysjZIKQI8QJr5vjgj9kC4=",
12647 "requires": {
12648 "bindings": "^1.2.1",
12649 "nan": "^2.4.0"
12650 }
12651 },
12652 "windows-quiet-hours": {
12653 "version": "1.2.5",
12654 "resolved": "https://registry.npmjs.org/windows-quiet-hours/-/windows-quiet-hours-1.2.5.tgz",
12655 "integrity": "sha512-0JbfFw91Ys+A0vSR0pratoJgfTwWNFLHniu59dpOg1FC5IvpPSYQIATcQqhdy41HYSCijmT7Pyv9w0I2zC0+5w==",
12656 "requires": {
12657 "bindings": "^1.3.0",
12658 "nan": "^2.7.0"
12659 }
12660 },
12661 "winreg": {
12662 "version": "1.2.2",
12663 "resolved": "https://registry.npmjs.org/winreg/-/winreg-1.2.2.tgz",
12664 "integrity": "sha1-hQmvo7ccW70RCm18YkfsZ3NsWY8="
12665 },
12666 "word-wrap": {
12667 "version": "1.2.3",
12668 "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
12669 "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
12670 "dev": true
12671 },
12672 "wordwrap": {
12673 "version": "1.0.0",
12674 "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
12675 "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
12676 "dev": true
12677 },
12678 "wrap-ansi": {
12679 "version": "2.1.0",
12680 "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
12681 "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
12682 "requires": {
12683 "string-width": "^1.0.1",
12684 "strip-ansi": "^3.0.1"
12685 }
12686 },
12687 "wrappy": {
12688 "version": "1.0.2",
12689 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
12690 "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
12691 },
12692 "wreck": {
12693 "version": "6.3.0",
12694 "resolved": "https://registry.npmjs.org/wreck/-/wreck-6.3.0.tgz",
12695 "integrity": "sha1-oTaXafB7u2LWo3gzanhx/Hc8dAs=",
12696 "requires": {
12697 "boom": "2.x.x",
12698 "hoek": "2.x.x"
12699 }
12700 },
12701 "write": {
12702 "version": "0.2.1",
12703 "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
12704 "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
12705 "dev": true,
12706 "requires": {
12707 "mkdirp": "^0.5.1"
12708 }
12709 },
12710 "write-file-atomic": {
12711 "version": "2.3.0",
12712 "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz",
12713 "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==",
12714 "dev": true,
12715 "requires": {
12716 "graceful-fs": "^4.1.11",
12717 "imurmurhash": "^0.1.4",
12718 "signal-exit": "^3.0.2"
12719 }
12720 },
12721 "ws": {
12722 "version": "1.1.5",
12723 "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz",
12724 "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==",
12725 "dev": true,
12726 "requires": {
12727 "options": ">=0.0.5",
12728 "ultron": "1.0.x"
12729 }
12730 },
12731 "wtf-8": {
12732 "version": "1.0.0",
12733 "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz",
12734 "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=",
12735 "dev": true
12736 },
12737 "xdg-basedir": {
12738 "version": "3.0.0",
12739 "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
12740 "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
12741 "dev": true
12742 },
12743 "xmlbuilder": {
12744 "version": "9.0.7",
12745 "resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
12746 "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
12747 "dev": true
12748 },
12749 "xmldom": {
12750 "version": "0.1.27",
12751 "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz",
12752 "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=",
12753 "dev": true
12754 },
12755 "xmlhttprequest-ssl": {
12756 "version": "1.5.3",
12757 "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz",
12758 "integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=",
12759 "dev": true
12760 },
12761 "xregexp": {
12762 "version": "4.0.0",
12763 "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz",
12764 "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==",
12765 "dev": true
12766 },
12767 "xtend": {
12768 "version": "4.0.1",
12769 "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
12770 "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
12771 },
12772 "y18n": {
12773 "version": "3.2.1",
12774 "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
12775 "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
12776 },
12777 "yallist": {
12778 "version": "2.1.2",
12779 "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
12780 "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
12781 },
12782 "yargs": {
12783 "version": "7.1.0",
12784 "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
12785 "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
12786 "dev": true,
12787 "requires": {
12788 "camelcase": "^3.0.0",
12789 "cliui": "^3.2.0",
12790 "decamelize": "^1.1.1",
12791 "get-caller-file": "^1.0.1",
12792 "os-locale": "^1.4.0",
12793 "read-pkg-up": "^1.0.1",
12794 "require-directory": "^2.1.1",
12795 "require-main-filename": "^1.0.1",
12796 "set-blocking": "^2.0.0",
12797 "string-width": "^1.0.2",
12798 "which-module": "^1.0.0",
12799 "y18n": "^3.2.1",
12800 "yargs-parser": "^5.0.0"
12801 }
12802 },
12803 "yargs-parser": {
12804 "version": "5.0.0",
12805 "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
12806 "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
12807 "dev": true,
12808 "requires": {
12809 "camelcase": "^3.0.0"
12810 }
12811 },
12812 "yauzl": {
12813 "version": "2.4.1",
12814 "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
12815 "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
12816 "dev": true,
12817 "requires": {
12818 "fd-slicer": "~1.0.1"
12819 }
12820 },
12821 "yeast": {
12822 "version": "0.1.2",
12823 "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
12824 "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=",
12825 "dev": true
12826 }
12827 }
12828}
diff --git a/package.json b/package.json
index 3647e963b..f184f2651 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
2 "name": "franz", 2 "name": "franz",
3 "productName": "Franz", 3 "productName": "Franz",
4 "appId": "com.meetfranz.franz", 4 "appId": "com.meetfranz.franz",
5 "version": "5.0.0-beta.18", 5 "version": "5.0.0-beta.19",
6 "description": "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.", 6 "description": "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.",
7 "copyright": "adlk x franz - Stefan Malzner", 7 "copyright": "adlk x franz - Stefan Malzner",
8 "main": "index.js", 8 "main": "index.js",
@@ -10,44 +10,48 @@
10 "repository": "https://github.com/meetfranz/franz.git", 10 "repository": "https://github.com/meetfranz/franz.git",
11 "private": true, 11 "private": true,
12 "scripts": { 12 "scripts": {
13 "prestart": "npm run rebuild",
13 "start": "electron ./build", 14 "start": "electron ./build",
14 "start:local": "cross-env LOCAL_API=1 yarn start", 15 "start:local": "cross-env LOCAL_API=1 npm start",
15 "start:live": "cross-env LIVE_API=1 yarn start", 16 "start:live": "cross-env LIVE_API=1 npm start",
16 "dev": "cross-env NODE_ENV=development gulp dev", 17 "dev": "cross-env NODE_ENV=development gulp dev",
17 "lint": "eslint src", 18 "lint": "eslint src",
18 "sign": "gulp sign", 19 "sign": "gulp sign",
19 "prebuild": "gulp build", 20 "prebuild": "gulp build",
20 "build": "node_modules/.bin/electron-builder --publish onTag", 21 "build": "node_modules/.bin/electron-builder --publish onTag",
21 "rebuild": "node_modules/.bin/electron-rebuild", 22 "rebuild": "node_modules/.bin/electron-rebuild",
22 "precommit": "yarn lint",
23 "commit": "git-cz", 23 "commit": "git-cz",
24 "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s" 24 "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",
25 "reformat-files": "./node_modules/.bin/prettier --ignore-path .eslintignore --write --require-pragma \"**/*.{js,jsx,scss}\""
25 }, 26 },
26 "keywords": [], 27 "keywords": [],
27 "author": "Stefan Malzner <stefan@adlk.io>", 28 "author": "Stefan Malzner <stefan@adlk.io>",
28 "license": "Apache-2.0", 29 "license": "Apache-2.0",
29 "dependencies": { 30 "dependencies": {
31 "@babel/polyfill": "^7.0.0",
32 "@babel/runtime": "^7.0.0",
30 "@meetfranz/electron-notification-state": "^1.0.0", 33 "@meetfranz/electron-notification-state": "^1.0.0",
31 "address-rfc2822": "^2.0.1", 34 "address-rfc2822": "^2.0.1",
32 "auto-launch": "https://github.com/meetfranz/node-auto-launch.git", 35 "auto-launch": "https://github.com/meetfranz/node-auto-launch.git",
33 "babel-polyfill": "^6.23.0",
34 "babel-runtime": "^6.23.0",
35 "classnames": "^2.2.5", 36 "classnames": "^2.2.5",
36 "debug-electron": "^0.0.4", 37 "debug-electron": "^0.0.4",
37 "du": "^0.1.0", 38 "du": "^0.1.0",
38 "electron-fetch": "^1.1.0", 39 "electron-dl": "1.12.0",
39 "electron-react-titlebar": "^0.7.1", 40 "electron-fetch": "1.3.0",
40 "electron-spellchecker": "^1.1.2", 41 "electron-hunspell": "0.1.1",
41 "electron-updater": "^2.4.3", 42 "electron-react-titlebar": "0.8.1",
43 "electron-updater": "3.2.3",
42 "electron-window-state": "^4.1.0", 44 "electron-window-state": "^4.1.0",
43 "fs-extra": "^3.0.1", 45 "fs-extra": "7.0.1",
44 "gulp-cli": "1.2.2", 46 "gulp-cli": "1.2.2",
47 "hunspell-dict-downloader": "1.0.0",
45 "ini": "^1.3.4", 48 "ini": "^1.3.4",
46 "jshashes": "^1.0.6", 49 "jshashes": "^1.0.6",
47 "jsonwebtoken": "^7.4.1", 50 "jsonwebtoken": "^7.4.1",
48 "keymaster": "^1.6.2", 51 "keymaster": "^1.6.2",
49 "lodash": "^4.17.4", 52 "lodash": "^4.17.4",
50 "mdi": "^1.9.33", 53 "mdi": "^1.9.33",
54 "mime-types": "2.1.21",
51 "minimist": "^1.2.0", 55 "minimist": "^1.2.0",
52 "mkdirp": "^0.5.1", 56 "mkdirp": "^0.5.1",
53 "mobx": "^3.1.0", 57 "mobx": "^3.1.0",
@@ -66,6 +70,7 @@
66 "react-dropzone": "^4.2.1", 70 "react-dropzone": "^4.2.1",
67 "react-electron-web-view": "^2.0.1", 71 "react-electron-web-view": "^2.0.1",
68 "react-intl": "^2.3.0", 72 "react-intl": "^2.3.0",
73 "react-jss": "8.6.1",
69 "react-loader": "^2.4.0", 74 "react-loader": "^2.4.0",
70 "react-router": "^3.0.2", 75 "react-router": "^3.0.2",
71 "react-router-transition": "^0.1.1", 76 "react-router-transition": "^0.1.1",
@@ -78,24 +83,23 @@
78 "uuid": "^3.0.1" 83 "uuid": "^3.0.1"
79 }, 84 },
80 "devDependencies": { 85 "devDependencies": {
81 "babel-eslint": "^7.1.1", 86 "@adlk/misty": "^0.1.1",
82 "babel-plugin-transform-class-properties": "^6.19.0", 87 "@babel/core": "^7.0.0",
83 "babel-plugin-transform-decorators-legacy": "^1.3.4", 88 "@babel/plugin-proposal-class-properties": "^7.0.0",
84 "babel-plugin-transform-flow-strip-types": "^6.22.0", 89 "@babel/plugin-proposal-decorators": "^7.0.0",
85 "babel-preset-env": "^1.5.2", 90 "@babel/plugin-proposal-export-default-from": "^7.0.0",
86 "babel-preset-es2015": "^6.22.0", 91 "@babel/plugin-proposal-throw-expressions": "^7.0.0",
87 "babel-preset-es2016": "^6.16.0", 92 "@babel/plugin-syntax-dynamic-import": "^7.0.0",
88 "babel-preset-es2017": "^6.16.0", 93 "@babel/plugin-transform-regenerator": "^7.0.0",
89 "babel-preset-react": "^6.23.0", 94 "@babel/preset-env": "^7.0.0",
90 "babel-preset-stage-0": "^6.22.0", 95 "@babel/preset-react": "^7.0.0",
91 "babel-preset-stage-1": "^6.22.0", 96 "@babel/register": "^7.0.0",
97 "babel-eslint": "^10.0.1",
92 "cross-env": "^5.0.5", 98 "cross-env": "^5.0.5",
93 "cz-conventional-changelog": "^2.0.0", 99 "cz-conventional-changelog": "^2.0.0",
94 "del": "^2.2.2",
95 "dotenv": "^4.0.0", 100 "dotenv": "^4.0.0",
96 "electron": "1.8.4", 101 "electron": "^2.0.13",
97 "electron-builder": "19.15.1", 102 "electron-builder": "20.34.0",
98 "electron-packager": "^8.7.0",
99 "electron-rebuild": "^1.6.0", 103 "electron-rebuild": "^1.6.0",
100 "eslint": "^4.7.1", 104 "eslint": "^4.7.1",
101 "eslint-config-airbnb": "^14.1.0", 105 "eslint-config-airbnb": "^14.1.0",
@@ -103,17 +107,28 @@
103 "eslint-plugin-import": "^2.2.0", 107 "eslint-plugin-import": "^2.2.0",
104 "eslint-plugin-jsx-a11y": "^3.0.0", 108 "eslint-plugin-jsx-a11y": "^3.0.0",
105 "eslint-plugin-react": "^6.10.0", 109 "eslint-plugin-react": "^6.10.0",
106 "gulp": "gulpjs/gulp#4.0", 110 "gulp": "^4.0.0",
107 "gulp-babel": "^6.1.2", 111 "gulp-babel": "^8.0.0",
108 "gulp-github-release": "^1.2.1", 112 "gulp-sass": "^4.0.2",
109 "gulp-sass": "^3.1.0",
110 "gulp-sass-variables": "^1.1.1", 113 "gulp-sass-variables": "^1.1.1",
111 "gulp-server-livereload": "^1.9.2", 114 "gulp-server-livereload": "^1.9.2",
112 "node-sass": "^4.7.2" 115 "hex-rgb": "3.0.0",
116 "husky": "^1.1.4",
117 "kebab-case": "1.0.0",
118 "node-sass": "^4.7.2",
119 "prettier": "1.15.2"
113 }, 120 },
114 "config": { 121 "config": {
115 "commitizen": { 122 "commitizen": {
116 "path": "./node_modules/cz-conventional-changelog" 123 "path": "./node_modules/cz-conventional-changelog"
117 } 124 }
125 },
126 "browserslist": [
127 "Chrome 66"
128 ],
129 "husky": {
130 "hooks": {
131 "pre-push": "npm run lint && npm run reformat-files"
132 }
118 } 133 }
119} 134}
diff --git a/src/I18n.js b/src/I18n.js
index 4ee34157c..e33141576 100644
--- a/src/I18n.js
+++ b/src/I18n.js
@@ -7,8 +7,7 @@ import { oneOrManyChildElements } from './prop-types';
7import translations from './i18n/translations'; 7import translations from './i18n/translations';
8import UserStore from './stores/UserStore'; 8import UserStore from './stores/UserStore';
9 9
10@inject('stores') @observer 10export default @inject('stores') @observer class I18N extends Component {
11export default class I18N extends Component {
12 componentDidUpdate() { 11 componentDidUpdate() {
13 window.franz.menu.rebuild(); 12 window.franz.menu.rebuild();
14 } 13 }
diff --git a/src/api/FeaturesApi.js b/src/api/FeaturesApi.js
new file mode 100644
index 000000000..c66f28f5b
--- /dev/null
+++ b/src/api/FeaturesApi.js
@@ -0,0 +1,13 @@
1export default class FeaturesApi {
2 constructor(server) {
3 this.server = server;
4 }
5
6 default() {
7 return this.server.getDefaultFeatures();
8 }
9
10 features() {
11 return this.server.getFeatures();
12 }
13}
diff --git a/src/api/LocalApi.js b/src/api/LocalApi.js
index 741917104..e2a46874a 100644
--- a/src/api/LocalApi.js
+++ b/src/api/LocalApi.js
@@ -4,12 +4,12 @@ export default class LocalApi {
4 this.local = local; 4 this.local = local;
5 } 5 }
6 6
7 getAppSettings() { 7 getAppSettings(type) {
8 return this.local.getAppSettings(); 8 return this.local.getAppSettings(type);
9 } 9 }
10 10
11 updateAppSettings(data) { 11 updateAppSettings(type, data) {
12 return this.local.updateAppSettings(data); 12 return this.local.updateAppSettings(type, data);
13 } 13 }
14 14
15 getAppCacheSize() { 15 getAppCacheSize() {
diff --git a/src/api/RecipesApi.js b/src/api/RecipesApi.js
index 0573dacaf..800888b00 100644
--- a/src/api/RecipesApi.js
+++ b/src/api/RecipesApi.js
@@ -1,4 +1,4 @@
1export default class ServicesApi { 1export default class RecipesApi {
2 constructor(server) { 2 constructor(server) {
3 this.server = server; 3 this.server = server;
4 } 4 }
diff --git a/src/api/index.js b/src/api/index.js
index 3fc18c4b5..3c87cc087 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -6,12 +6,14 @@ import UserApi from './UserApi';
6import LocalApi from './LocalApi'; 6import LocalApi from './LocalApi';
7import PaymentApi from './PaymentApi'; 7import PaymentApi from './PaymentApi';
8import NewsApi from './NewsApi'; 8import NewsApi from './NewsApi';
9import FeaturesApi from './FeaturesApi';
9 10
10export default (server, local) => ({ 11export default (server, local) => ({
11 app: new AppApi(server, local), 12 app: new AppApi(server, local),
12 services: new ServicesApi(server, local), 13 services: new ServicesApi(server, local),
13 recipePreviews: new RecipePreviewsApi(server, local), 14 recipePreviews: new RecipePreviewsApi(server, local),
14 recipes: new RecipesApi(server, local), 15 recipes: new RecipesApi(server, local),
16 features: new FeaturesApi(server, local),
15 user: new UserApi(server, local), 17 user: new UserApi(server, local),
16 local: new LocalApi(server, local), 18 local: new LocalApi(server, local),
17 payment: new PaymentApi(server, local), 19 payment: new PaymentApi(server, local),
diff --git a/src/api/server/LocalApi.js b/src/api/server/LocalApi.js
index 78deb7aa5..ab1604a27 100644
--- a/src/api/server/LocalApi.js
+++ b/src/api/server/LocalApi.js
@@ -3,26 +3,29 @@ import du from 'du';
3 3
4import { getServicePartitionsDirectory } from '../../helpers/service-helpers.js'; 4import { getServicePartitionsDirectory } from '../../helpers/service-helpers.js';
5 5
6const debug = require('debug')('LocalApi'); 6const debug = require('debug')('Franz:LocalApi');
7 7
8const { session } = remote; 8const { session } = remote;
9 9
10export default class LocalApi { 10export default class LocalApi {
11 // Settings 11 // Settings
12 getAppSettings() { 12 getAppSettings(type) {
13 return new Promise((resolve) => { 13 return new Promise((resolve) => {
14 ipcRenderer.once('appSettings', (event, data) => { 14 ipcRenderer.once('appSettings', (event, resp) => {
15 debug('LocalApi::getAppSettings resolves', data); 15 debug('LocalApi::getAppSettings resolves', resp.type, resp.data);
16 resolve(data); 16 resolve(resp);
17 }); 17 });
18 18
19 ipcRenderer.send('getAppSettings'); 19 ipcRenderer.send('getAppSettings', type);
20 }); 20 });
21 } 21 }
22 22
23 async updateAppSettings(data) { 23 async updateAppSettings(type, data) {
24 debug('LocalApi::updateAppSettings resolves', data); 24 debug('LocalApi::updateAppSettings resolves', type, data);
25 ipcRenderer.send('updateAppSettings', data); 25 ipcRenderer.send('updateAppSettings', {
26 type,
27 data,
28 });
26 } 29 }
27 30
28 // Services 31 // Services
diff --git a/src/api/server/ServerApi.js b/src/api/server/ServerApi.js
index 353faa7f4..164419951 100644
--- a/src/api/server/ServerApi.js
+++ b/src/api/server/ServerApi.js
@@ -27,7 +27,7 @@ import {
27 removeServicePartitionDirectory, 27 removeServicePartitionDirectory,
28} from '../../helpers/service-helpers.js'; 28} from '../../helpers/service-helpers.js';
29 29
30const debug = require('debug')('ServerApi'); 30const debug = require('debug')('Franz:ServerApi');
31 31
32module.paths.unshift( 32module.paths.unshift(
33 getDevRecipeDirectory(), 33 getDevRecipeDirectory(),
@@ -35,7 +35,7 @@ module.paths.unshift(
35); 35);
36 36
37const { app } = remote; 37const { app } = remote;
38const fetch = remote.require('electron-fetch'); 38const { default: fetch } = remote.require('electron-fetch');
39 39
40const SERVER_URL = API; 40const SERVER_URL = API;
41const API_VERSION = 'v1'; 41const API_VERSION = 'v1';
@@ -261,6 +261,35 @@ export default class ServerApi {
261 return data; 261 return data;
262 } 262 }
263 263
264 // Features
265 async getDefaultFeatures() {
266 const request = await window.fetch(`${SERVER_URL}/${API_VERSION}/features/default`, this._prepareAuthRequest({
267 method: 'GET',
268 }));
269 if (!request.ok) {
270 throw request;
271 }
272 const data = await request.json();
273
274 const features = data;
275 console.debug('ServerApi::getDefaultFeatures resolves', features);
276 return features;
277 }
278
279 async getFeatures() {
280 const request = await window.fetch(`${SERVER_URL}/${API_VERSION}/features`, this._prepareAuthRequest({
281 method: 'GET',
282 }));
283 if (!request.ok) {
284 throw request;
285 }
286 const data = await request.json();
287
288 const features = data;
289 console.debug('ServerApi::getFeatures resolves', features);
290 return features;
291 }
292
264 // Recipes 293 // Recipes
265 async getInstalledRecipes() { 294 async getInstalledRecipes() {
266 const recipesDirectory = getRecipeDirectory(); 295 const recipesDirectory = getRecipeDirectory();
diff --git a/src/app.js b/src/app.js
index 814bfacf1..43d0cf018 100644
--- a/src/app.js
+++ b/src/app.js
@@ -6,7 +6,7 @@ import { Provider } from 'mobx-react';
6import { syncHistoryWithStore, RouterStore } from 'mobx-react-router'; 6import { syncHistoryWithStore, RouterStore } from 'mobx-react-router';
7import { Router, Route, hashHistory, IndexRedirect } from 'react-router'; 7import { Router, Route, hashHistory, IndexRedirect } from 'react-router';
8 8
9import 'babel-polyfill'; 9import '@babel/polyfill';
10import smoothScroll from 'smoothscroll-polyfill'; 10import smoothScroll from 'smoothscroll-polyfill';
11 11
12import ServerApi from './api/server/ServerApi'; 12import ServerApi from './api/server/ServerApi';
diff --git a/src/components/auth/AuthLayout.js b/src/components/auth/AuthLayout.js
index 2741b8a15..4fb0e6a59 100644
--- a/src/components/auth/AuthLayout.js
+++ b/src/components/auth/AuthLayout.js
@@ -3,6 +3,7 @@ import PropTypes from 'prop-types';
3import { observer } from 'mobx-react'; 3import { observer } from 'mobx-react';
4import { RouteTransition } from 'react-router-transition'; 4import { RouteTransition } from 'react-router-transition';
5import { intlShape } from 'react-intl'; 5import { intlShape } from 'react-intl';
6import { TitleBar } from 'electron-react-titlebar';
6 7
7import Link from '../ui/Link'; 8import Link from '../ui/Link';
8import InfoBar from '../ui/InfoBar'; 9import InfoBar from '../ui/InfoBar';
@@ -10,8 +11,9 @@ import InfoBar from '../ui/InfoBar';
10import { oneOrManyChildElements, globalError as globalErrorPropType } from '../../prop-types'; 11import { oneOrManyChildElements, globalError as globalErrorPropType } from '../../prop-types';
11import globalMessages from '../../i18n/globalMessages'; 12import globalMessages from '../../i18n/globalMessages';
12 13
13@observer 14import { isWindows } from '../../environment';
14export default class AuthLayout extends Component { 15
16export default @observer class AuthLayout extends Component {
15 static propTypes = { 17 static propTypes = {
16 children: oneOrManyChildElements.isRequired, 18 children: oneOrManyChildElements.isRequired,
17 pathname: PropTypes.string.isRequired, 19 pathname: PropTypes.string.isRequired,
@@ -20,6 +22,8 @@ export default class AuthLayout extends Component {
20 isAPIHealthy: PropTypes.bool.isRequired, 22 isAPIHealthy: PropTypes.bool.isRequired,
21 retryHealthCheck: PropTypes.func.isRequired, 23 retryHealthCheck: PropTypes.func.isRequired,
22 isHealthCheckLoading: PropTypes.bool.isRequired, 24 isHealthCheckLoading: PropTypes.bool.isRequired,
25 isFullScreen: PropTypes.bool.isRequired,
26 darkMode: PropTypes.bool.isRequired,
23 }; 27 };
24 28
25 static contextTypes = { 29 static contextTypes = {
@@ -35,53 +39,58 @@ export default class AuthLayout extends Component {
35 isAPIHealthy, 39 isAPIHealthy,
36 retryHealthCheck, 40 retryHealthCheck,
37 isHealthCheckLoading, 41 isHealthCheckLoading,
42 isFullScreen,
43 darkMode,
38 } = this.props; 44 } = this.props;
39 const { intl } = this.context; 45 const { intl } = this.context;
40 46
41 return ( 47 return (
42 <div className="auth"> 48 <div className={darkMode ? 'theme__dark' : ''}>
43 {!isOnline && ( 49 {isWindows && !isFullScreen && <TitleBar menu={window.franz.menu.template} icon={'assets/images/logo.svg'} />}
44 <InfoBar 50 <div className={'auth'}>
45 type="warning" 51 {!isOnline && (
46 > 52 <InfoBar
47 <span className="mdi mdi-flash" /> 53 type="warning"
48 {intl.formatMessage(globalMessages.notConnectedToTheInternet)} 54 >
49 </InfoBar> 55 <span className="mdi mdi-flash" />
50 )} 56 {intl.formatMessage(globalMessages.notConnectedToTheInternet)}
51 {isOnline && !isAPIHealthy && ( 57 </InfoBar>
52 <InfoBar 58 )}
53 type="danger" 59 {isOnline && !isAPIHealthy && (
54 ctaLabel="Try again" 60 <InfoBar
55 ctaLoading={isHealthCheckLoading} 61 type="danger"
56 sticky 62 ctaLabel="Try again"
57 onClick={retryHealthCheck} 63 ctaLoading={isHealthCheckLoading}
58 > 64 sticky
59 <span className="mdi mdi-flash" /> 65 onClick={retryHealthCheck}
60 {intl.formatMessage(globalMessages.APIUnhealthy)} 66 >
61 </InfoBar> 67 <span className="mdi mdi-flash" />
62 )} 68 {intl.formatMessage(globalMessages.APIUnhealthy)}
63 <div className="auth__layout"> 69 </InfoBar>
64 <RouteTransition 70 )}
65 pathname={pathname} 71 <div className="auth__layout">
66 atEnter={{ opacity: 0 }} 72 <RouteTransition
67 atLeave={{ opacity: 0 }} 73 pathname={pathname}
68 atActive={{ opacity: 1 }} 74 atEnter={{ opacity: 0 }}
69 mapStyles={styles => ({ 75 atLeave={{ opacity: 0 }}
70 transform: `translateX(${styles.translateX}%)`, 76 atActive={{ opacity: 1 }}
71 opacity: styles.opacity, 77 mapStyles={styles => ({
72 })} 78 transform: `translateX(${styles.translateX}%)`,
73 component="span" 79 opacity: styles.opacity,
74 > 80 })}
75 {/* Inject globalError into children */} 81 component="span"
76 {React.cloneElement(children, { 82 >
77 error, 83 {/* Inject globalError into children */}
78 })} 84 {React.cloneElement(children, {
79 </RouteTransition> 85 error,
86 })}
87 </RouteTransition>
88 </div>
89 {/* </div> */}
90 <Link to="https://adlk.io" className="auth__adlk" target="_blank">
91 <img src="./assets/images/adlk.svg" alt="" />
92 </Link>
80 </div> 93 </div>
81 {/* </div> */}
82 <Link to="https://adlk.io" className="auth__adlk" target="_blank">
83 <img src="./assets/images/adlk.svg" alt="" />
84 </Link>
85 </div> 94 </div>
86 ); 95 );
87 } 96 }
diff --git a/src/components/auth/Import.js b/src/components/auth/Import.js
index 9ba14e768..0d5feb274 100644
--- a/src/components/auth/Import.js
+++ b/src/components/auth/Import.js
@@ -28,8 +28,7 @@ const messages = defineMessages({
28 }, 28 },
29}); 29});
30 30
31@observer 31export default @observer class Import extends Component {
32export default class Import extends Component {
33 static propTypes = { 32 static propTypes = {
34 services: MobxPropTypes.arrayOrObservableArray.isRequired, 33 services: MobxPropTypes.arrayOrObservableArray.isRequired,
35 onSubmit: PropTypes.func.isRequired, 34 onSubmit: PropTypes.func.isRequired,
diff --git a/src/components/auth/Invite.js b/src/components/auth/Invite.js
index f1c16986b..96821a61a 100644
--- a/src/components/auth/Invite.js
+++ b/src/components/auth/Invite.js
@@ -43,8 +43,7 @@ const messages = defineMessages({
43 }, 43 },
44}); 44});
45 45
46@observer 46export default @observer class Invite extends Component {
47export default class Invite extends Component {
48 static propTypes = { 47 static propTypes = {
49 onSubmit: PropTypes.func.isRequired, 48 onSubmit: PropTypes.func.isRequired,
50 embed: PropTypes.bool, 49 embed: PropTypes.bool,
diff --git a/src/components/auth/Login.js b/src/components/auth/Login.js
index 4a3cd6776..f465b35a5 100644
--- a/src/components/auth/Login.js
+++ b/src/components/auth/Login.js
@@ -55,8 +55,7 @@ const messages = defineMessages({
55 }, 55 },
56}); 56});
57 57
58@observer 58export default @observer class Login extends Component {
59export default class Login extends Component {
60 static propTypes = { 59 static propTypes = {
61 onSubmit: PropTypes.func.isRequired, 60 onSubmit: PropTypes.func.isRequired,
62 isSubmitting: PropTypes.bool.isRequired, 61 isSubmitting: PropTypes.bool.isRequired,
diff --git a/src/components/auth/Password.js b/src/components/auth/Password.js
index 5bcc80b6e..ad34e39af 100644
--- a/src/components/auth/Password.js
+++ b/src/components/auth/Password.js
@@ -41,8 +41,7 @@ const messages = defineMessages({
41 }, 41 },
42}); 42});
43 43
44@observer 44export default @observer class Password extends Component {
45export default class Password extends Component {
46 static propTypes = { 45 static propTypes = {
47 onSubmit: PropTypes.func.isRequired, 46 onSubmit: PropTypes.func.isRequired,
48 isSubmitting: PropTypes.bool.isRequired, 47 isSubmitting: PropTypes.bool.isRequired,
diff --git a/src/components/auth/Pricing.js b/src/components/auth/Pricing.js
index 3cc8d5f6b..f08129568 100644
--- a/src/components/auth/Pricing.js
+++ b/src/components/auth/Pricing.js
@@ -28,8 +28,7 @@ const messages = defineMessages({
28 }, 28 },
29}); 29});
30 30
31@observer 31export default @observer class Signup extends Component {
32export default class Signup extends Component {
33 static propTypes = { 32 static propTypes = {
34 donor: MobxPropTypes.objectOrObservableObject.isRequired, 33 donor: MobxPropTypes.objectOrObservableObject.isRequired,
35 isLoading: PropTypes.bool.isRequired, 34 isLoading: PropTypes.bool.isRequired,
diff --git a/src/components/auth/Signup.js b/src/components/auth/Signup.js
index 219948274..bbcad8b67 100644
--- a/src/components/auth/Signup.js
+++ b/src/components/auth/Signup.js
@@ -65,8 +65,7 @@ const messages = defineMessages({
65 }, 65 },
66}); 66});
67 67
68@observer 68export default @observer class Signup extends Component {
69export default class Signup extends Component {
70 static propTypes = { 69 static propTypes = {
71 onSubmit: PropTypes.func.isRequired, 70 onSubmit: PropTypes.func.isRequired,
72 isSubmitting: PropTypes.bool.isRequired, 71 isSubmitting: PropTypes.bool.isRequired,
@@ -187,7 +186,7 @@ export default class Signup extends Component {
187 {intl.formatMessage(messages.legalInfo)} 186 {intl.formatMessage(messages.legalInfo)}
188 <br /> 187 <br />
189 <Link 188 <Link
190 to="http://meetfranz.com/terms" 189 to="https://meetfranz.com/terms"
191 target="_blank" 190 target="_blank"
192 className="link" 191 className="link"
193 > 192 >
@@ -195,7 +194,7 @@ export default class Signup extends Component {
195 </Link> 194 </Link>
196 &nbsp;&amp;&nbsp; 195 &nbsp;&amp;&nbsp;
197 <Link 196 <Link
198 to="http://meetfranz.com/privacy" 197 to="https://meetfranz.com/privacy"
199 target="_blank" 198 target="_blank"
200 className="link" 199 className="link"
201 > 200 >
diff --git a/src/components/auth/Welcome.js b/src/components/auth/Welcome.js
index 9e1c762a5..f6d77f70f 100644
--- a/src/components/auth/Welcome.js
+++ b/src/components/auth/Welcome.js
@@ -16,8 +16,7 @@ const messages = defineMessages({
16 }, 16 },
17}); 17});
18 18
19@observer 19export default @observer class Login extends Component {
20export default class Login extends Component {
21 static propTypes = { 20 static propTypes = {
22 loginRoute: PropTypes.string.isRequired, 21 loginRoute: PropTypes.string.isRequired,
23 signupRoute: PropTypes.string.isRequired, 22 signupRoute: PropTypes.string.isRequired,
diff --git a/src/components/layout/AppLayout.js b/src/components/layout/AppLayout.js
index 746775a7f..3ababe54a 100644
--- a/src/components/layout/AppLayout.js
+++ b/src/components/layout/AppLayout.js
@@ -5,6 +5,7 @@ import { defineMessages, intlShape } from 'react-intl';
5import { TitleBar } from 'electron-react-titlebar'; 5import { TitleBar } from 'electron-react-titlebar';
6 6
7import InfoBar from '../ui/InfoBar'; 7import InfoBar from '../ui/InfoBar';
8import { Component as DelayApp } from '../../features/delayApp';
8import globalMessages from '../../i18n/globalMessages'; 9import globalMessages from '../../i18n/globalMessages';
9 10
10import { isWindows } from '../../environment'; 11import { isWindows } from '../../environment';
@@ -40,8 +41,7 @@ const messages = defineMessages({
40 }, 41 },
41}); 42});
42 43
43@observer 44export default @observer class AppLayout extends Component {
44export default class AppLayout extends Component {
45 static propTypes = { 45 static propTypes = {
46 isFullScreen: PropTypes.bool.isRequired, 46 isFullScreen: PropTypes.bool.isRequired,
47 sidebar: PropTypes.element.isRequired, 47 sidebar: PropTypes.element.isRequired,
@@ -58,6 +58,8 @@ export default class AppLayout extends Component {
58 areRequiredRequestsSuccessful: PropTypes.bool.isRequired, 58 areRequiredRequestsSuccessful: PropTypes.bool.isRequired,
59 retryRequiredRequests: PropTypes.func.isRequired, 59 retryRequiredRequests: PropTypes.func.isRequired,
60 areRequiredRequestsLoading: PropTypes.bool.isRequired, 60 areRequiredRequestsLoading: PropTypes.bool.isRequired,
61 darkMode: PropTypes.bool.isRequired,
62 isDelayAppScreenVisible: PropTypes.bool.isRequired,
61 }; 63 };
62 64
63 static defaultProps = { 65 static defaultProps = {
@@ -85,12 +87,14 @@ export default class AppLayout extends Component {
85 areRequiredRequestsSuccessful, 87 areRequiredRequestsSuccessful,
86 retryRequiredRequests, 88 retryRequiredRequests,
87 areRequiredRequestsLoading, 89 areRequiredRequestsLoading,
90 darkMode,
91 isDelayAppScreenVisible,
88 } = this.props; 92 } = this.props;
89 93
90 const { intl } = this.context; 94 const { intl } = this.context;
91 95
92 return ( 96 return (
93 <div> 97 <div className={(darkMode ? 'theme__dark' : '')}>
94 <div className="app"> 98 <div className="app">
95 {isWindows && !isFullScreen && <TitleBar menu={window.franz.menu.template} icon={'assets/images/logo.svg'} />} 99 {isWindows && !isFullScreen && <TitleBar menu={window.franz.menu.template} icon={'assets/images/logo.svg'} />}
96 <div className="app__content"> 100 <div className="app__content">
@@ -151,6 +155,7 @@ export default class AppLayout extends Component {
151 </a> 155 </a>
152 </InfoBar> 156 </InfoBar>
153 )} 157 )}
158 {isDelayAppScreenVisible && (<DelayApp />)}
154 {services} 159 {services}
155 </div> 160 </div>
156 </div> 161 </div>
diff --git a/src/components/layout/Sidebar.js b/src/components/layout/Sidebar.js
index fa269f216..6ea95bf88 100644
--- a/src/components/layout/Sidebar.js
+++ b/src/components/layout/Sidebar.js
@@ -26,8 +26,7 @@ const messages = defineMessages({
26 }, 26 },
27}); 27});
28 28
29@observer 29export default @observer class Sidebar extends Component {
30export default class Sidebar extends Component {
31 static propTypes = { 30 static propTypes = {
32 openSettings: PropTypes.func.isRequired, 31 openSettings: PropTypes.func.isRequired,
33 toggleMuteApp: PropTypes.func.isRequired, 32 toggleMuteApp: PropTypes.func.isRequired,
diff --git a/src/components/services/content/ServiceDisabled.js b/src/components/services/content/ServiceDisabled.js
index b5af3743d..58fb38d8c 100644
--- a/src/components/services/content/ServiceDisabled.js
+++ b/src/components/services/content/ServiceDisabled.js
@@ -16,8 +16,7 @@ const messages = defineMessages({
16 }, 16 },
17}); 17});
18 18
19@observer 19export default @observer class ServiceDisabled extends Component {
20export default class ServiceDisabled extends Component {
21 static propTypes = { 20 static propTypes = {
22 name: PropTypes.string.isRequired, 21 name: PropTypes.string.isRequired,
23 enable: PropTypes.func.isRequired, 22 enable: PropTypes.func.isRequired,
diff --git a/src/components/services/content/ServiceWebview.js b/src/components/services/content/ServiceWebview.js
index c146abf4e..7163209ee 100644
--- a/src/components/services/content/ServiceWebview.js
+++ b/src/components/services/content/ServiceWebview.js
@@ -10,8 +10,7 @@ import StatusBarTargetUrl from '../../ui/StatusBarTargetUrl';
10import WebviewCrashHandler from './WebviewCrashHandler'; 10import WebviewCrashHandler from './WebviewCrashHandler';
11import ServiceDisabled from './ServiceDisabled'; 11import ServiceDisabled from './ServiceDisabled';
12 12
13@observer 13export default @observer class ServiceWebview extends Component {
14export default class ServiceWebview extends Component {
15 static propTypes = { 14 static propTypes = {
16 service: PropTypes.instanceOf(ServiceModel).isRequired, 15 service: PropTypes.instanceOf(ServiceModel).isRequired,
17 setWebviewReference: PropTypes.func.isRequired, 16 setWebviewReference: PropTypes.func.isRequired,
diff --git a/src/components/services/content/Services.js b/src/components/services/content/Services.js
index b1322afc2..4cbd51043 100644
--- a/src/components/services/content/Services.js
+++ b/src/components/services/content/Services.js
@@ -18,8 +18,7 @@ const messages = defineMessages({
18 }, 18 },
19}); 19});
20 20
21@observer 21export default @observer class Services extends Component {
22export default class Services extends Component {
23 static propTypes = { 22 static propTypes = {
24 services: MobxPropTypes.arrayOrObservableArray.isRequired, 23 services: MobxPropTypes.arrayOrObservableArray.isRequired,
25 setWebviewReference: PropTypes.func.isRequired, 24 setWebviewReference: PropTypes.func.isRequired,
diff --git a/src/components/services/content/WebviewCrashHandler.js b/src/components/services/content/WebviewCrashHandler.js
index d3e6951f3..3be1fccf4 100644
--- a/src/components/services/content/WebviewCrashHandler.js
+++ b/src/components/services/content/WebviewCrashHandler.js
@@ -24,8 +24,7 @@ const messages = defineMessages({
24 }, 24 },
25}); 25});
26 26
27@observer 27export default @observer class WebviewCrashHandler extends Component {
28export default class WebviewCrashHandler extends Component {
29 static propTypes = { 28 static propTypes = {
30 name: PropTypes.string.isRequired, 29 name: PropTypes.string.isRequired,
31 reload: PropTypes.func.isRequired, 30 reload: PropTypes.func.isRequired,
diff --git a/src/components/services/tabs/TabItem.js b/src/components/services/tabs/TabItem.js
index 638262f7f..8de7dc438 100644
--- a/src/components/services/tabs/TabItem.js
+++ b/src/components/services/tabs/TabItem.js
@@ -141,10 +141,10 @@ class TabItem extends Component {
141 {service.unreadIndirectMessageCount > 0 141 {service.unreadIndirectMessageCount > 0
142 && service.unreadDirectMessageCount === 0 142 && service.unreadDirectMessageCount === 0
143 && service.isIndirectMessageBadgeEnabled && ( 143 && service.isIndirectMessageBadgeEnabled && (
144 <span className="tab-item__message-count is-indirect"> 144 <span className="tab-item__message-count is-indirect">
145 • 145 •
146 </span> 146 </span>
147 )} 147 )}
148 </span> 148 </span>
149 ); 149 );
150 } 150 }
diff --git a/src/components/services/tabs/Tabbar.js b/src/components/services/tabs/Tabbar.js
index ceb88c51c..dd5c2140f 100644
--- a/src/components/services/tabs/Tabbar.js
+++ b/src/components/services/tabs/Tabbar.js
@@ -4,8 +4,7 @@ import { observer, PropTypes as MobxPropTypes } from 'mobx-react';
4 4
5import TabBarSortableList from './TabBarSortableList'; 5import TabBarSortableList from './TabBarSortableList';
6 6
7@observer 7export default @observer class TabBar extends Component {
8export default class TabBar extends Component {
9 static propTypes = { 8 static propTypes = {
10 services: MobxPropTypes.arrayOrObservableArray.isRequired, 9 services: MobxPropTypes.arrayOrObservableArray.isRequired,
11 setActive: PropTypes.func.isRequired, 10 setActive: PropTypes.func.isRequired,
diff --git a/src/components/settings/SettingsLayout.js b/src/components/settings/SettingsLayout.js
index d5392ddba..3cb08feb1 100644
--- a/src/components/settings/SettingsLayout.js
+++ b/src/components/settings/SettingsLayout.js
@@ -5,8 +5,7 @@ import { observer } from 'mobx-react';
5import { oneOrManyChildElements } from '../../prop-types'; 5import { oneOrManyChildElements } from '../../prop-types';
6import Appear from '../ui/effects/Appear'; 6import Appear from '../ui/effects/Appear';
7 7
8@observer 8export default @observer class SettingsLayout extends Component {
9export default class SettingsLayout extends Component {
10 static propTypes = { 9 static propTypes = {
11 navigation: PropTypes.element.isRequired, 10 navigation: PropTypes.element.isRequired,
12 children: oneOrManyChildElements.isRequired, 11 children: oneOrManyChildElements.isRequired,
diff --git a/src/components/settings/account/AccountDashboard.js b/src/components/settings/account/AccountDashboard.js
index 4992f0913..06c7074dd 100644
--- a/src/components/settings/account/AccountDashboard.js
+++ b/src/components/settings/account/AccountDashboard.js
@@ -44,6 +44,10 @@ const messages = defineMessages({
44 id: 'settings.account.accountType.premium', 44 id: 'settings.account.accountType.premium',
45 defaultMessage: '!!!Premium Supporter Account', 45 defaultMessage: '!!!Premium Supporter Account',
46 }, 46 },
47 accountTypeEnterprise: {
48 id: 'settings.account.accountType.enterprise',
49 defaultMessage: '!!!Enterprise Account',
50 },
47 accountEditButton: { 51 accountEditButton: {
48 id: 'settings.account.account.editButton', 52 id: 'settings.account.account.editButton',
49 defaultMessage: '!!!Edit Account', 53 defaultMessage: '!!!Edit Account',
@@ -74,8 +78,7 @@ const messages = defineMessages({
74 }, 78 },
75}); 79});
76 80
77@observer 81export default @observer class AccountDashboard extends Component {
78export default class AccountDashboard extends Component {
79 static propTypes = { 82 static propTypes = {
80 user: MobxPropTypes.observableObject.isRequired, 83 user: MobxPropTypes.observableObject.isRequired,
81 orders: MobxPropTypes.arrayOrObservableArray.isRequired, 84 orders: MobxPropTypes.arrayOrObservableArray.isRequired,
@@ -167,17 +170,19 @@ export default class AccountDashboard extends Component {
167 </h2> 170 </h2>
168 {user.organization && `${user.organization}, `} 171 {user.organization && `${user.organization}, `}
169 {user.email}<br /> 172 {user.email}<br />
170 {!user.isPremium && ( 173 {!user.isEnterprise && !user.isPremium && (
171 <span className="badge badge">{intl.formatMessage(messages.accountTypeBasic)}</span> 174 <span className="badge badge">{intl.formatMessage(messages.accountTypeBasic)}</span>
172 )} 175 )}
173 {user.isPremium && ( 176 {user.isPremium && (
174 <span className="badge badge--premium">{intl.formatMessage(messages.accountTypePremium)}</span> 177 <span className="badge badge--premium">{intl.formatMessage(messages.accountTypePremium)}</span>
175 )} 178 )}
179 {user.isEnterprise && (
180 <span className="badge badge--success">{intl.formatMessage(messages.accountTypeEnterprise)}</span>
181 )}
176 </div> 182 </div>
177 <Link to="/settings/user/edit" className="button"> 183 <Link to="/settings/user/edit" className="button">
178 {intl.formatMessage(messages.accountEditButton)} 184 {intl.formatMessage(messages.accountEditButton)}
179 </Link> 185 </Link>
180
181 {user.emailValidated} 186 {user.emailValidated}
182 </div> 187 </div>
183 </div> 188 </div>
@@ -230,6 +235,33 @@ export default class AccountDashboard extends Component {
230 ) 235 )
231 )} 236 )}
232 237
238 {user.isEnterprise && (
239 <div className="account">
240 <div className="account__box">
241 <h2>{user.company.name}</h2>
242 <p>
243 Technical contact:&nbsp;
244 <Link
245 className="link"
246 target="_blank"
247 to={`mailto:${user.company.contact.technical}?subject=Franz`}
248 >
249 {user.company.contact.technical}
250 </Link>
251 <br />
252 General contact:&nbsp;
253 <Link
254 className="link"
255 target="_blank"
256 to={`mailto:${user.company.contact.default}?subject=Franz`}
257 >
258 {user.company.contact.default}
259 </Link>
260 </p>
261 </div>
262 </div>
263 )}
264
233 {user.isMiner && ( 265 {user.isMiner && (
234 <div className="account franz-form"> 266 <div className="account franz-form">
235 <div className="account__box account__box"> 267 <div className="account__box account__box">
@@ -244,7 +276,7 @@ export default class AccountDashboard extends Component {
244 </div> 276 </div>
245 )} 277 )}
246 278
247 {!user.isPremium && ( 279 {!user.isEnterprise && !user.isPremium && (
248 isLoadingPlans ? ( 280 isLoadingPlans ? (
249 <Loader /> 281 <Loader />
250 ) : ( 282 ) : (
@@ -259,28 +291,29 @@ export default class AccountDashboard extends Component {
259 ) 291 )
260 )} 292 )}
261 293
262 <div className="account franz-form"> 294 {!user.isEnterprise && (
263 <div className="account__box"> 295 <div className="account franz-form">
264 <h2>{intl.formatMessage(messages.headlineDangerZone)}</h2> 296 <div className="account__box">
265 {!isDeleteAccountSuccessful && ( 297 <h2>{intl.formatMessage(messages.headlineDangerZone)}</h2>
266 <div className="account__subscription"> 298 {!isDeleteAccountSuccessful && (
267 <p>{intl.formatMessage(messages.deleteInfo)}</p> 299 <div className="account__subscription">
268 <Button 300 <p>{intl.formatMessage(messages.deleteInfo)}</p>
269 label={intl.formatMessage(messages.deleteAccount)} 301 <Button
270 buttonType="danger" 302 label={intl.formatMessage(messages.deleteAccount)}
271 onClick={() => deleteAccount()} 303 buttonType="danger"
272 loaded={!isLoadingDeleteAccount} 304 onClick={() => deleteAccount()}
273 /> 305 loaded={!isLoadingDeleteAccount}
274 </div> 306 />
275 )} 307 </div>
276 {isDeleteAccountSuccessful && ( 308 )}
277 <p>{intl.formatMessage(messages.deleteEmailSent)}</p> 309 {isDeleteAccountSuccessful && (
278 )} 310 <p>{intl.formatMessage(messages.deleteEmailSent)}</p>
311 )}
312 </div>
279 </div> 313 </div>
280 </div> 314 )}
281 </div> 315 </div>
282 )} 316 )}
283
284 </div> 317 </div>
285 <ReactTooltip place="right" type="dark" effect="solid" /> 318 <ReactTooltip place="right" type="dark" effect="solid" />
286 </div> 319 </div>
diff --git a/src/components/settings/navigation/SettingsNavigation.js b/src/components/settings/navigation/SettingsNavigation.js
index 66539f324..b86d94ac7 100644
--- a/src/components/settings/navigation/SettingsNavigation.js
+++ b/src/components/settings/navigation/SettingsNavigation.js
@@ -1,6 +1,7 @@
1import React, { Component } from 'react'; 1import React, { Component } from 'react';
2import PropTypes from 'prop-types'; 2import PropTypes from 'prop-types';
3import { defineMessages, intlShape } from 'react-intl'; 3import { defineMessages, intlShape } from 'react-intl';
4import { inject, observer } from 'mobx-react';
4 5
5import Link from '../../ui/Link'; 6import Link from '../../ui/Link';
6 7
@@ -31,7 +32,7 @@ const messages = defineMessages({
31 }, 32 },
32}); 33});
33 34
34export default class SettingsNavigation extends Component { 35export default @inject('stores') @observer class SettingsNavigation extends Component {
35 static propTypes = { 36 static propTypes = {
36 serviceCount: PropTypes.number.isRequired, 37 serviceCount: PropTypes.number.isRequired,
37 }; 38 };
@@ -92,3 +93,4 @@ export default class SettingsNavigation extends Component {
92 ); 93 );
93 } 94 }
94} 95}
96
diff --git a/src/components/settings/recipes/RecipeItem.js b/src/components/settings/recipes/RecipeItem.js
index 7b2f64d26..dae8891b3 100644
--- a/src/components/settings/recipes/RecipeItem.js
+++ b/src/components/settings/recipes/RecipeItem.js
@@ -4,8 +4,7 @@ import { observer } from 'mobx-react';
4 4
5import RecipePreviewModel from '../../../models/RecipePreview'; 5import RecipePreviewModel from '../../../models/RecipePreview';
6 6
7@observer 7export default @observer class RecipeItem extends Component {
8export default class RecipeItem extends Component {
9 static propTypes = { 8 static propTypes = {
10 recipe: PropTypes.instanceOf(RecipePreviewModel).isRequired, 9 recipe: PropTypes.instanceOf(RecipePreviewModel).isRequired,
11 onClick: PropTypes.func.isRequired, 10 onClick: PropTypes.func.isRequired,
diff --git a/src/components/settings/recipes/RecipesDashboard.js b/src/components/settings/recipes/RecipesDashboard.js
index 4610c69a5..cd783200f 100644
--- a/src/components/settings/recipes/RecipesDashboard.js
+++ b/src/components/settings/recipes/RecipesDashboard.js
@@ -46,8 +46,7 @@ const messages = defineMessages({
46 }, 46 },
47}); 47});
48 48
49@observer 49export default @observer class RecipesDashboard extends Component {
50export default class RecipesDashboard extends Component {
51 static propTypes = { 50 static propTypes = {
52 recipes: MobxPropTypes.arrayOrObservableArray.isRequired, 51 recipes: MobxPropTypes.arrayOrObservableArray.isRequired,
53 isLoading: PropTypes.bool.isRequired, 52 isLoading: PropTypes.bool.isRequired,
diff --git a/src/components/settings/services/EditServiceForm.js b/src/components/settings/services/EditServiceForm.js
index f6f2df2f3..d16ec35b8 100644
--- a/src/components/settings/services/EditServiceForm.js
+++ b/src/components/settings/services/EditServiceForm.js
@@ -15,6 +15,8 @@ import Toggle from '../../ui/Toggle';
15import Button from '../../ui/Button'; 15import Button from '../../ui/Button';
16import ImageUpload from '../../ui/ImageUpload'; 16import ImageUpload from '../../ui/ImageUpload';
17 17
18import PremiumFeatureContainer from '../../ui/PremiumFeatureContainer';
19
18const messages = defineMessages({ 20const messages = defineMessages({
19 saveService: { 21 saveService: {
20 id: 'settings.service.form.saveButton', 22 id: 'settings.service.form.saveButton',
@@ -92,10 +94,17 @@ const messages = defineMessages({
92 id: 'settings.service.form.iconUpload', 94 id: 'settings.service.form.iconUpload',
93 defaultMessage: '!!!Drop your image, or click here', 95 defaultMessage: '!!!Drop your image, or click here',
94 }, 96 },
97 headlineProxy: {
98 id: 'settings.service.form.proxy.headline',
99 defaultMessage: '!!!Proxy Settings',
100 },
101 proxyInfo: {
102 id: 'settings.service.form.proxy.info',
103 defaultMessage: '!!!Proxy settings will not be synchronized with the Franz servers.',
104 },
95}); 105});
96 106
97@observer 107export default @observer class EditServiceForm extends Component {
98export default class EditServiceForm extends Component {
99 static propTypes = { 108 static propTypes = {
100 recipe: PropTypes.instanceOf(Recipe).isRequired, 109 recipe: PropTypes.instanceOf(Recipe).isRequired,
101 service(props, propName) { 110 service(props, propName) {
@@ -113,6 +122,8 @@ export default class EditServiceForm extends Component {
113 onDelete: PropTypes.func.isRequired, 122 onDelete: PropTypes.func.isRequired,
114 isSaving: PropTypes.bool.isRequired, 123 isSaving: PropTypes.bool.isRequired,
115 isDeleting: PropTypes.bool.isRequired, 124 isDeleting: PropTypes.bool.isRequired,
125 isProxyFeatureEnabled: PropTypes.bool.isRequired,
126 isProxyFeaturePremiumFeature: PropTypes.bool.isRequired,
116 }; 127 };
117 128
118 static defaultProps = { 129 static defaultProps = {
@@ -173,6 +184,8 @@ export default class EditServiceForm extends Component {
173 isSaving, 184 isSaving,
174 isDeleting, 185 isDeleting,
175 onDelete, 186 onDelete,
187 isProxyFeatureEnabled,
188 isProxyFeaturePremiumFeature,
176 } = this.props; 189 } = this.props;
177 const { intl } = this.context; 190 const { intl } = this.context;
178 191
@@ -202,6 +215,8 @@ export default class EditServiceForm extends Component {
202 activeTabIndex = 2; 215 activeTabIndex = 2;
203 } 216 }
204 217
218 const requiresUserInput = !recipe.hasHostedOption && (recipe.hasTeamId || recipe.hasCustomUrl);
219
205 return ( 220 return (
206 <div className="settings__main"> 221 <div className="settings__main">
207 <div className="settings__header"> 222 <div className="settings__header">
@@ -303,6 +318,9 @@ export default class EditServiceForm extends Component {
303 318
304 <div className="settings__settings-group"> 319 <div className="settings__settings-group">
305 <h3>{intl.formatMessage(messages.headlineGeneral)}</h3> 320 <h3>{intl.formatMessage(messages.headlineGeneral)}</h3>
321 {recipe.hasDarkMode && (
322 <Toggle field={form.$('isDarkModeEnabled')} />
323 )}
306 <Toggle field={form.$('isEnabled')} /> 324 <Toggle field={form.$('isEnabled')} />
307 </div> 325 </div>
308 </div> 326 </div>
@@ -314,6 +332,33 @@ export default class EditServiceForm extends Component {
314 /> 332 />
315 </div> 333 </div>
316 </div> 334 </div>
335
336 {isProxyFeatureEnabled && (
337 <PremiumFeatureContainer condition={isProxyFeaturePremiumFeature}>
338 <div className="settings__settings-group">
339 <h3>
340 {intl.formatMessage(messages.headlineProxy)}
341 <span className="badge badge--success">beta</span>
342 </h3>
343 <Toggle field={form.$('proxy.isEnabled')} />
344 {form.$('proxy.isEnabled').value && (
345 <div>
346 <Input field={form.$('proxy.host')} />
347 <Input field={form.$('proxy.user')} />
348 <Input
349 field={form.$('proxy.password')}
350 showPasswordToggle
351 />
352 <p>
353 <span className="mdi mdi-information" />
354 {intl.formatMessage(messages.proxyInfo)}
355 </p>
356 </div>
357 )}
358 </div>
359 </PremiumFeatureContainer>
360 )}
361
317 {recipe.message && ( 362 {recipe.message && (
318 <p className="settings__message"> 363 <p className="settings__message">
319 <span className="mdi mdi-information" /> 364 <span className="mdi mdi-information" />
@@ -340,6 +385,7 @@ export default class EditServiceForm extends Component {
340 type="submit" 385 type="submit"
341 label={intl.formatMessage(messages.saveService)} 386 label={intl.formatMessage(messages.saveService)}
342 htmlForm="form" 387 htmlForm="form"
388 disabled={action !== 'edit' && form.isPristine && requiresUserInput}
343 /> 389 />
344 )} 390 )}
345 </div> 391 </div>
diff --git a/src/components/settings/services/ServiceError.js b/src/components/settings/services/ServiceError.js
index 1f1512927..3cfc080d6 100644
--- a/src/components/settings/services/ServiceError.js
+++ b/src/components/settings/services/ServiceError.js
@@ -25,8 +25,7 @@ const messages = defineMessages({
25 }, 25 },
26}); 26});
27 27
28@observer 28export default @observer class ServiceError extends Component {
29export default class ServiceError extends Component {
30 static contextTypes = { 29 static contextTypes = {
31 intl: intlShape, 30 intl: intlShape,
32 }; 31 };
diff --git a/src/components/settings/services/ServiceItem.js b/src/components/settings/services/ServiceItem.js
index 9743315b0..84080519b 100644
--- a/src/components/settings/services/ServiceItem.js
+++ b/src/components/settings/services/ServiceItem.js
@@ -22,8 +22,7 @@ const messages = defineMessages({
22 }, 22 },
23}); 23});
24 24
25@observer 25export default @observer class ServiceItem extends Component {
26export default class ServiceItem extends Component {
27 static propTypes = { 26 static propTypes = {
28 service: PropTypes.instanceOf(ServiceModel).isRequired, 27 service: PropTypes.instanceOf(ServiceModel).isRequired,
29 goToServiceForm: PropTypes.func.isRequired, 28 goToServiceForm: PropTypes.func.isRequired,
diff --git a/src/components/settings/services/ServicesDashboard.js b/src/components/settings/services/ServicesDashboard.js
index 20e451f01..e7dfaf106 100644
--- a/src/components/settings/services/ServicesDashboard.js
+++ b/src/components/settings/services/ServicesDashboard.js
@@ -49,8 +49,7 @@ const messages = defineMessages({
49 }, 49 },
50}); 50});
51 51
52@observer 52export default @observer class ServicesDashboard extends Component {
53export default class ServicesDashboard extends Component {
54 static propTypes = { 53 static propTypes = {
55 services: MobxPropTypes.arrayOrObservableArray.isRequired, 54 services: MobxPropTypes.arrayOrObservableArray.isRequired,
56 isLoading: PropTypes.bool.isRequired, 55 isLoading: PropTypes.bool.isRequired,
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js
index 97f535594..1ec2ab614 100644
--- a/src/components/settings/settings/EditSettingsForm.js
+++ b/src/components/settings/settings/EditSettingsForm.js
@@ -8,6 +8,7 @@ import Form from '../../../lib/Form';
8import Button from '../../ui/Button'; 8import Button from '../../ui/Button';
9import Toggle from '../../ui/Toggle'; 9import Toggle from '../../ui/Toggle';
10import Select from '../../ui/Select'; 10import Select from '../../ui/Select';
11import PremiumFeatureContainer from '../../ui/PremiumFeatureContainer';
11 12
12import { FRANZ_TRANSLATION } from '../../../config'; 13import { FRANZ_TRANSLATION } from '../../../config';
13 14
@@ -82,8 +83,7 @@ const messages = defineMessages({
82 }, 83 },
83}); 84});
84 85
85@observer 86export default @observer class EditSettingsForm extends Component {
86export default class EditSettingsForm extends Component {
87 static propTypes = { 87 static propTypes = {
88 checkForUpdates: PropTypes.func.isRequired, 88 checkForUpdates: PropTypes.func.isRequired,
89 installUpdate: PropTypes.func.isRequired, 89 installUpdate: PropTypes.func.isRequired,
@@ -96,6 +96,7 @@ export default class EditSettingsForm extends Component {
96 isClearingAllCache: PropTypes.bool.isRequired, 96 isClearingAllCache: PropTypes.bool.isRequired,
97 onClearAllCache: PropTypes.func.isRequired, 97 onClearAllCache: PropTypes.func.isRequired,
98 cacheSize: PropTypes.string.isRequired, 98 cacheSize: PropTypes.string.isRequired,
99 isSpellcheckerPremiumFeature: PropTypes.bool.isRequired,
99 }; 100 };
100 101
101 static contextTypes = { 102 static contextTypes = {
@@ -125,6 +126,7 @@ export default class EditSettingsForm extends Component {
125 isClearingAllCache, 126 isClearingAllCache,
126 onClearAllCache, 127 onClearAllCache,
127 cacheSize, 128 cacheSize,
129 isSpellcheckerPremiumFeature,
128 } = this.props; 130 } = this.props;
129 const { intl } = this.context; 131 const { intl } = this.context;
130 132
@@ -161,10 +163,23 @@ export default class EditSettingsForm extends Component {
161 <h2 id="apperance">{intl.formatMessage(messages.headlineAppearance)}</h2> 163 <h2 id="apperance">{intl.formatMessage(messages.headlineAppearance)}</h2>
162 <Toggle field={form.$('showDisabledServices')} /> 164 <Toggle field={form.$('showDisabledServices')} />
163 <Toggle field={form.$('showMessageBadgeWhenMuted')} /> 165 <Toggle field={form.$('showMessageBadgeWhenMuted')} />
166 <Toggle field={form.$('darkMode')} />
164 167
165 {/* Language */} 168 {/* Language */}
166 <h2 id="language">{intl.formatMessage(messages.headlineLanguage)}</h2> 169 <h2 id="language">{intl.formatMessage(messages.headlineLanguage)}</h2>
167 <Select field={form.$('locale')} showLabel={false} /> 170 <Select field={form.$('locale')} showLabel={false} />
171 <PremiumFeatureContainer
172 condition={isSpellcheckerPremiumFeature}
173 >
174 <div>
175 <Toggle
176 field={form.$('enableSpellchecking')}
177 />
178 {form.$('enableSpellchecking').value && (
179 <Select field={form.$('spellcheckerLanguage')} />
180 )}
181 </div>
182 </PremiumFeatureContainer>
168 <a 183 <a
169 href={FRANZ_TRANSLATION} 184 href={FRANZ_TRANSLATION}
170 target="_blank" 185 target="_blank"
@@ -175,10 +190,8 @@ export default class EditSettingsForm extends Component {
175 190
176 {/* Advanced */} 191 {/* Advanced */}
177 <h2 id="advanced">{intl.formatMessage(messages.headlineAdvanced)}</h2> 192 <h2 id="advanced">{intl.formatMessage(messages.headlineAdvanced)}</h2>
178 <Toggle field={form.$('enableSpellchecking')} />
179 <Toggle field={form.$('enableGPUAcceleration')} /> 193 <Toggle field={form.$('enableGPUAcceleration')} />
180 <p className="settings__help">{intl.formatMessage(messages.enableGPUAccelerationInfo)}</p> 194 <p className="settings__help">{intl.formatMessage(messages.enableGPUAccelerationInfo)}</p>
181 {/* <Select field={form.$('spellcheckingLanguage')} /> */}
182 <div className="settings__settings-group"> 195 <div className="settings__settings-group">
183 <h3> 196 <h3>
184 {intl.formatMessage(messages.subheadlineCache)} 197 {intl.formatMessage(messages.subheadlineCache)}
diff --git a/src/components/settings/user/EditUserForm.js b/src/components/settings/user/EditUserForm.js
index f36887fc2..b825f844a 100644
--- a/src/components/settings/user/EditUserForm.js
+++ b/src/components/settings/user/EditUserForm.js
@@ -39,13 +39,13 @@ const messages = defineMessages({
39 }, 39 },
40}); 40});
41 41
42@observer 42export default @observer class EditServiceForm extends Component {
43export default class EditServiceForm extends Component {
44 static propTypes = { 43 static propTypes = {
45 status: MobxPropTypes.observableArray.isRequired, 44 status: MobxPropTypes.observableArray.isRequired,
46 form: PropTypes.instanceOf(Form).isRequired, 45 form: PropTypes.instanceOf(Form).isRequired,
47 onSubmit: PropTypes.func.isRequired, 46 onSubmit: PropTypes.func.isRequired,
48 isSaving: PropTypes.bool.isRequired, 47 isSaving: PropTypes.bool.isRequired,
48 isEnterprise: PropTypes.bool.isRequired,
49 }; 49 };
50 50
51 static defaultProps = { 51 static defaultProps = {
@@ -72,6 +72,7 @@ export default class EditServiceForm extends Component {
72 // user, 72 // user,
73 status, 73 status,
74 form, 74 form,
75 isEnterprise,
75 isSaving, 76 isSaving,
76 } = this.props; 77 } = this.props;
77 const { intl } = this.context; 78 const { intl } = this.context;
@@ -105,8 +106,10 @@ export default class EditServiceForm extends Component {
105 <Input field={form.$('lastname')} /> 106 <Input field={form.$('lastname')} />
106 </div> 107 </div>
107 <Input field={form.$('email')} /> 108 <Input field={form.$('email')} />
108 <Radio field={form.$('accountType')} /> 109 {!isEnterprise && (
109 {form.$('accountType').value === 'company' && ( 110 <Radio field={form.$('accountType')} />
111 )}
112 {!isEnterprise && form.$('accountType').value === 'company' && (
110 <Input field={form.$('organization')} /> 113 <Input field={form.$('organization')} />
111 )} 114 )}
112 <h2>{intl.formatMessage(messages.headlinePassword)}</h2> 115 <h2>{intl.formatMessage(messages.headlinePassword)}</h2>
diff --git a/src/components/subscription/SubscriptionForm.js b/src/components/subscription/SubscriptionForm.js
index dd350479d..12e8471ff 100644
--- a/src/components/subscription/SubscriptionForm.js
+++ b/src/components/subscription/SubscriptionForm.js
@@ -36,25 +36,21 @@ const messages = defineMessages({
36 defaultMessage: '!!!The Franz Premium Supporter Account includes', 36 defaultMessage: '!!!The Franz Premium Supporter Account includes',
37 }, 37 },
38 features: { 38 features: {
39 unlimitedServices: {
40 id: 'subscription.features.unlimitedServices',
41 defaultMessage: '!!!Add unlimited services',
42 },
43 onpremise: { 39 onpremise: {
44 id: 'subscription.features.onpremise', 40 id: 'subscription.features.onpremise.mattermost',
45 defaultMessage: '!!!Add on-premise/hosted services like HipChat', 41 defaultMessage: '!!!Add on-premise/hosted services like Mattermost',
46 }, 42 },
47 customServices: { 43 noInterruptions: {
48 id: 'subscription.features.customServices', 44 id: 'subscription.features.noInterruptions',
49 defaultMessage: '!!!Add your custom services', 45 defaultMessage: '!!!No app delays & nagging to upgrade license',
50 }, 46 },
51 encryptedSync: { 47 proxy: {
52 id: 'subscription.features.encryptedSync', 48 id: 'subscription.features.proxy',
53 defaultMessage: '!!!Encrypted session synchronization', 49 defaultMessage: '!!!Proxy support for services',
54 }, 50 },
55 vpn: { 51 spellchecker: {
56 id: 'subscription.features.vpn', 52 id: 'subscription.features.spellchecker',
57 defaultMessage: '!!!Proxy & VPN support', 53 defaultMessage: '!!!Support for Spellchecker',
58 }, 54 },
59 ads: { 55 ads: {
60 id: 'subscription.features.ads', 56 id: 'subscription.features.ads',
@@ -71,8 +67,7 @@ const messages = defineMessages({
71 }, 67 },
72}); 68});
73 69
74@observer 70export default @observer class SubscriptionForm extends Component {
75export default class SubscriptionForm extends Component {
76 static propTypes = { 71 static propTypes = {
77 plan: MobxPropTypes.objectOrObservableObject.isRequired, 72 plan: MobxPropTypes.objectOrObservableObject.isRequired,
78 isLoading: PropTypes.bool.isRequired, 73 isLoading: PropTypes.bool.isRequired,
@@ -171,16 +166,13 @@ export default class SubscriptionForm extends Component {
171 <ul className="subscription__premium-features"> 166 <ul className="subscription__premium-features">
172 <li>{intl.formatMessage(messages.features.onpremise)}</li> 167 <li>{intl.formatMessage(messages.features.onpremise)}</li>
173 <li> 168 <li>
174 {intl.formatMessage(messages.features.encryptedSync)} 169 {intl.formatMessage(messages.features.noInterruptions)}
175 <span className="badge">{intl.formatMessage(messages.features.comingSoon)}</span>
176 </li> 170 </li>
177 <li> 171 <li>
178 {intl.formatMessage(messages.features.customServices)} 172 {intl.formatMessage(messages.features.spellchecker)}
179 <span className="badge">{intl.formatMessage(messages.features.comingSoon)}</span>
180 </li> 173 </li>
181 <li> 174 <li>
182 {intl.formatMessage(messages.features.vpn)} 175 {intl.formatMessage(messages.features.proxy)}
183 <span className="badge">{intl.formatMessage(messages.features.comingSoon)}</span>
184 </li> 176 </li>
185 <li> 177 <li>
186 {intl.formatMessage(messages.features.ads)} 178 {intl.formatMessage(messages.features.ads)}
diff --git a/src/components/subscription/SubscriptionPopup.js b/src/components/subscription/SubscriptionPopup.js
index 528d02907..f3c63e7ee 100644
--- a/src/components/subscription/SubscriptionPopup.js
+++ b/src/components/subscription/SubscriptionPopup.js
@@ -17,8 +17,7 @@ const messages = defineMessages({
17 }, 17 },
18}); 18});
19 19
20@observer 20export default @observer class SubscriptionPopup extends Component {
21export default class SubscriptionPopup extends Component {
22 static propTypes = { 21 static propTypes = {
23 url: PropTypes.string.isRequired, 22 url: PropTypes.string.isRequired,
24 closeWindow: PropTypes.func.isRequired, 23 closeWindow: PropTypes.func.isRequired,
diff --git a/src/components/ui/Button.js b/src/components/ui/Button.js
index 554206cb7..309e05bb4 100644
--- a/src/components/ui/Button.js
+++ b/src/components/ui/Button.js
@@ -4,8 +4,7 @@ import { observer } from 'mobx-react';
4import Loader from 'react-loader'; 4import Loader from 'react-loader';
5import classnames from 'classnames'; 5import classnames from 'classnames';
6 6
7@observer 7export default @observer class Button extends Component {
8export default class Button extends Component {
9 static propTypes = { 8 static propTypes = {
10 className: PropTypes.string, 9 className: PropTypes.string,
11 label: PropTypes.string.isRequired, 10 label: PropTypes.string.isRequired,
diff --git a/src/components/ui/ImageUpload.js b/src/components/ui/ImageUpload.js
index 81c3b8da6..76f77d631 100644
--- a/src/components/ui/ImageUpload.js
+++ b/src/components/ui/ImageUpload.js
@@ -2,12 +2,10 @@ import React, { Component } from 'react';
2import PropTypes from 'prop-types'; 2import PropTypes from 'prop-types';
3import { observer } from 'mobx-react'; 3import { observer } from 'mobx-react';
4import { Field } from 'mobx-react-form'; 4import { Field } from 'mobx-react-form';
5// import Loader from 'react-loader';
6import classnames from 'classnames'; 5import classnames from 'classnames';
7import Dropzone from 'react-dropzone'; 6import Dropzone from 'react-dropzone';
8 7
9@observer 8export default @observer class ImageUpload extends Component {
10export default class ImageUpload extends Component {
11 static propTypes = { 9 static propTypes = {
12 field: PropTypes.instanceOf(Field).isRequired, 10 field: PropTypes.instanceOf(Field).isRequired,
13 className: PropTypes.string, 11 className: PropTypes.string,
diff --git a/src/components/ui/InfoBar.js b/src/components/ui/InfoBar.js
index 84a5f1446..94a1ddf76 100644
--- a/src/components/ui/InfoBar.js
+++ b/src/components/ui/InfoBar.js
@@ -7,8 +7,7 @@ import Loader from 'react-loader';
7// import { oneOrManyChildElements } from '../../prop-types'; 7// import { oneOrManyChildElements } from '../../prop-types';
8import Appear from '../ui/effects/Appear'; 8import Appear from '../ui/effects/Appear';
9 9
10@observer 10export default @observer class InfoBar extends Component {
11export default class InfoBar extends Component {
12 static propTypes = { 11 static propTypes = {
13 // eslint-disable-next-line 12 // eslint-disable-next-line
14 children: PropTypes.any.isRequired, 13 children: PropTypes.any.isRequired,
diff --git a/src/components/ui/Infobox.js b/src/components/ui/Infobox.js
index 2d063c7ef..77051f567 100644
--- a/src/components/ui/Infobox.js
+++ b/src/components/ui/Infobox.js
@@ -4,8 +4,7 @@ import { observer } from 'mobx-react';
4import classnames from 'classnames'; 4import classnames from 'classnames';
5import Loader from 'react-loader'; 5import Loader from 'react-loader';
6 6
7@observer 7export default @observer class Infobox extends Component {
8export default class Infobox extends Component {
9 static propTypes = { 8 static propTypes = {
10 children: PropTypes.any.isRequired, // eslint-disable-line 9 children: PropTypes.any.isRequired, // eslint-disable-line
11 icon: PropTypes.string, 10 icon: PropTypes.string,
diff --git a/src/components/ui/Input.js b/src/components/ui/Input.js
index 0bb9f23bf..7bf6e1b00 100644
--- a/src/components/ui/Input.js
+++ b/src/components/ui/Input.js
@@ -6,8 +6,7 @@ import classnames from 'classnames';
6 6
7import { scorePassword as scorePasswordFunc } from '../../helpers/password-helpers'; 7import { scorePassword as scorePasswordFunc } from '../../helpers/password-helpers';
8 8
9@observer 9export default @observer class Input extends Component {
10export default class Input extends Component {
11 static propTypes = { 10 static propTypes = {
12 field: PropTypes.instanceOf(Field).isRequired, 11 field: PropTypes.instanceOf(Field).isRequired,
13 className: PropTypes.string, 12 className: PropTypes.string,
@@ -97,6 +96,7 @@ export default class Input extends Component {
97 onBlur={field.onBlur} 96 onBlur={field.onBlur}
98 onFocus={field.onFocus} 97 onFocus={field.onFocus}
99 ref={(element) => { this.inputElement = element; }} 98 ref={(element) => { this.inputElement = element; }}
99 disabled={field.disabled}
100 /> 100 />
101 {suffix && ( 101 {suffix && (
102 <span className="franz-form__input-suffix">{suffix}</span> 102 <span className="franz-form__input-suffix">{suffix}</span>
diff --git a/src/components/ui/Link.js b/src/components/ui/Link.js
index f5da921fa..0602290f1 100644
--- a/src/components/ui/Link.js
+++ b/src/components/ui/Link.js
@@ -9,9 +9,7 @@ import { oneOrManyChildElements } from '../../prop-types';
9import { matchRoute } from '../../helpers/routing-helpers'; 9import { matchRoute } from '../../helpers/routing-helpers';
10 10
11// TODO: create container component for this component 11// TODO: create container component for this component
12 12export default @inject('stores') @observer class Link extends Component {
13@inject('stores') @observer
14export default class Link extends Component {
15 onClick(e) { 13 onClick(e) {
16 if (this.props.target === '_blank') { 14 if (this.props.target === '_blank') {
17 e.preventDefault(); 15 e.preventDefault();
diff --git a/src/components/ui/PremiumFeatureContainer/index.js b/src/components/ui/PremiumFeatureContainer/index.js
new file mode 100644
index 000000000..73984be94
--- /dev/null
+++ b/src/components/ui/PremiumFeatureContainer/index.js
@@ -0,0 +1,76 @@
1import React, { Component } from 'react';
2import { inject, observer } from 'mobx-react';
3import PropTypes from 'prop-types';
4import { defineMessages, intlShape } from 'react-intl';
5import injectSheet from 'react-jss';
6
7import { oneOrManyChildElements } from '../../../prop-types';
8
9import UserStore from '../../../stores/UserStore';
10
11import styles from './styles';
12
13const messages = defineMessages({
14 action: {
15 id: 'premiumFeature.button.upgradeAccount',
16 defaultMessage: '!!!Upgrade account',
17 },
18});
19
20export default @inject('stores', 'actions') @injectSheet(styles) @observer class PremiumFeatureContainer extends Component {
21 static propTypes = {
22 classes: PropTypes.object.isRequired,
23 condition: PropTypes.bool,
24 };
25
26 static defaultProps = {
27 condition: true,
28 };
29
30 static contextTypes = {
31 intl: intlShape,
32 };
33
34 render() {
35 const {
36 classes,
37 children,
38 actions,
39 condition,
40 stores,
41 } = this.props;
42
43 const { intl } = this.context;
44
45 return !stores.user.data.isPremium && !!condition ? (
46 <div className={classes.container}>
47 <div className={classes.titleContainer}>
48 <p className={classes.title}>Premium Feature</p>
49 <button
50 className={classes.actionButton}
51 type="button"
52 onClick={() => actions.ui.openSettings({ path: 'user' })}
53 >
54 {intl.formatMessage(messages.action)}
55 </button>
56 </div>
57 <div className={classes.content}>
58 {children}
59 </div>
60 </div>
61 ) : children;
62 }
63}
64
65PremiumFeatureContainer.wrappedComponent.propTypes = {
66 children: oneOrManyChildElements.isRequired,
67 stores: PropTypes.shape({
68 user: PropTypes.instanceOf(UserStore).isRequired,
69 }).isRequired,
70 actions: PropTypes.shape({
71 ui: PropTypes.shape({
72 openSettings: PropTypes.func.isRequired,
73 }).isRequired,
74 }).isRequired,
75};
76
diff --git a/src/components/ui/PremiumFeatureContainer/styles.js b/src/components/ui/PremiumFeatureContainer/styles.js
new file mode 100644
index 000000000..16c40d0ec
--- /dev/null
+++ b/src/components/ui/PremiumFeatureContainer/styles.js
@@ -0,0 +1,31 @@
1export default theme => ({
2 container: {
3 background: theme.colorSubscriptionContainerBackground,
4 border: theme.colorSubscriptionContainerBorder,
5 margin: [0, 0, 20, -20],
6 padding: 20,
7 'border-radius': theme.borderRadius,
8 },
9 titleContainer: {
10 display: 'flex',
11 },
12 title: {
13 'font-weight': 'bold',
14 color: theme.colorSubscriptionContainerTitle,
15 },
16 actionButton: {
17 background: theme.colorSubscriptionContainerActionButtonBackground,
18 color: theme.colorSubscriptionContainerActionButtonColor,
19 'margin-left': 'auto',
20 'border-radius': theme.borderRadiusSmall,
21 padding: [2, 4],
22 'font-size': 12,
23 },
24 content: {
25 opacity: 0.5,
26 'margin-top': 20,
27 '& :last-child': {
28 'margin-bottom': 0,
29 },
30 },
31});
diff --git a/src/components/ui/Radio.js b/src/components/ui/Radio.js
index b54cfc820..63ca6f9b8 100644
--- a/src/components/ui/Radio.js
+++ b/src/components/ui/Radio.js
@@ -4,8 +4,7 @@ import { observer } from 'mobx-react';
4import { Field } from 'mobx-react-form'; 4import { Field } from 'mobx-react-form';
5import classnames from 'classnames'; 5import classnames from 'classnames';
6 6
7@observer 7export default @observer class Radio extends Component {
8export default class Radio extends Component {
9 static propTypes = { 8 static propTypes = {
10 field: PropTypes.instanceOf(Field).isRequired, 9 field: PropTypes.instanceOf(Field).isRequired,
11 className: PropTypes.string, 10 className: PropTypes.string,
diff --git a/src/components/ui/SearchInput.js b/src/components/ui/SearchInput.js
index a94cde201..5a9571d27 100644
--- a/src/components/ui/SearchInput.js
+++ b/src/components/ui/SearchInput.js
@@ -5,8 +5,7 @@ import classnames from 'classnames';
5import uuidv1 from 'uuid/v1'; 5import uuidv1 from 'uuid/v1';
6import { debounce } from 'lodash'; 6import { debounce } from 'lodash';
7 7
8@observer 8export default @observer class SearchInput extends Component {
9export default class SearchInput extends Component {
10 static propTypes = { 9 static propTypes = {
11 value: PropTypes.string, 10 value: PropTypes.string,
12 placeholder: PropTypes.string, 11 placeholder: PropTypes.string,
diff --git a/src/components/ui/Select.js b/src/components/ui/Select.js
index 2a877af3e..abcad417e 100644
--- a/src/components/ui/Select.js
+++ b/src/components/ui/Select.js
@@ -4,8 +4,7 @@ import { observer } from 'mobx-react';
4import { Field } from 'mobx-react-form'; 4import { Field } from 'mobx-react-form';
5import classnames from 'classnames'; 5import classnames from 'classnames';
6 6
7@observer 7export default @observer class Select extends Component {
8export default class Select extends Component {
9 static propTypes = { 8 static propTypes = {
10 field: PropTypes.instanceOf(Field).isRequired, 9 field: PropTypes.instanceOf(Field).isRequired,
11 className: PropTypes.string, 10 className: PropTypes.string,
diff --git a/src/components/ui/StatusBarTargetUrl.js b/src/components/ui/StatusBarTargetUrl.js
index b7b198f42..4285a343c 100644
--- a/src/components/ui/StatusBarTargetUrl.js
+++ b/src/components/ui/StatusBarTargetUrl.js
@@ -5,8 +5,7 @@ import classnames from 'classnames';
5 5
6import Appear from '../ui/effects/Appear'; 6import Appear from '../ui/effects/Appear';
7 7
8@observer 8export default @observer class StatusBarTargetUrl extends Component {
9export default class StatusBarTargetUrl extends Component {
10 static propTypes = { 9 static propTypes = {
11 className: PropTypes.string, 10 className: PropTypes.string,
12 text: PropTypes.string, 11 text: PropTypes.string,
diff --git a/src/components/ui/Tabs/Tabs.js b/src/components/ui/Tabs/Tabs.js
index 50397f9bb..12f650ffd 100644
--- a/src/components/ui/Tabs/Tabs.js
+++ b/src/components/ui/Tabs/Tabs.js
@@ -5,8 +5,7 @@ import classnames from 'classnames';
5 5
6import { oneOrManyChildElements } from '../../../prop-types'; 6import { oneOrManyChildElements } from '../../../prop-types';
7 7
8@observer 8export default @observer class Tab extends Component {
9export default class Tab extends Component {
10 static propTypes = { 9 static propTypes = {
11 children: oneOrManyChildElements.isRequired, 10 children: oneOrManyChildElements.isRequired,
12 active: PropTypes.number, 11 active: PropTypes.number,
diff --git a/src/components/ui/Toggle.js b/src/components/ui/Toggle.js
index 62d46393e..78fb77cbe 100644
--- a/src/components/ui/Toggle.js
+++ b/src/components/ui/Toggle.js
@@ -4,17 +4,18 @@ import { observer } from 'mobx-react';
4import classnames from 'classnames'; 4import classnames from 'classnames';
5import { Field } from 'mobx-react-form'; 5import { Field } from 'mobx-react-form';
6 6
7@observer 7export default @observer class Toggle extends Component {
8export default class Toggle extends Component {
9 static propTypes = { 8 static propTypes = {
10 field: PropTypes.instanceOf(Field).isRequired, 9 field: PropTypes.instanceOf(Field).isRequired,
11 className: PropTypes.string, 10 className: PropTypes.string,
12 showLabel: PropTypes.bool, 11 showLabel: PropTypes.bool,
12 disabled: PropTypes.bool,
13 }; 13 };
14 14
15 static defaultProps = { 15 static defaultProps = {
16 className: '', 16 className: '',
17 showLabel: true, 17 showLabel: true,
18 disabled: false,
18 }; 19 };
19 20
20 onChange(e) { 21 onChange(e) {
@@ -28,6 +29,7 @@ export default class Toggle extends Component {
28 field, 29 field,
29 className, 30 className,
30 showLabel, 31 showLabel,
32 disabled,
31 } = this.props; 33 } = this.props;
32 34
33 if (field.value === '' && field.default !== '') { 35 if (field.value === '' && field.default !== '') {
@@ -39,6 +41,7 @@ export default class Toggle extends Component {
39 className={classnames([ 41 className={classnames([
40 'franz-form__field', 42 'franz-form__field',
41 'franz-form__toggle-wrapper', 43 'franz-form__toggle-wrapper',
44 'franz-form__toggle-disabled',
42 className, 45 className,
43 ])} 46 ])}
44 > 47 >
@@ -56,7 +59,7 @@ export default class Toggle extends Component {
56 name={field.name} 59 name={field.name}
57 value={field.name} 60 value={field.name}
58 checked={field.value} 61 checked={field.value}
59 onChange={e => this.onChange(e)} 62 onChange={e => (!disabled ? this.onChange(e) : null)}
60 /> 63 />
61 </label> 64 </label>
62 {field.error && <div className={field.error}>{field.error}</div>} 65 {field.error && <div className={field.error}>{field.error}</div>}
diff --git a/src/config.js b/src/config.js
index 77fa92eca..08dbb85f3 100644
--- a/src/config.js
+++ b/src/config.js
@@ -7,7 +7,7 @@ export const CHECK_INTERVAL = 1000 * 3600; // How often should we perform checks
7export const LOCAL_API = 'http://localhost:3000'; 7export const LOCAL_API = 'http://localhost:3000';
8export const DEV_API = 'https://dev.franzinfra.com'; 8export const DEV_API = 'https://dev.franzinfra.com';
9export const LIVE_API = 'https://api.franzinfra.com'; 9export const LIVE_API = 'https://api.franzinfra.com';
10export const GA_ID = 'UA-74126766-6'; 10export const GA_ID = 'UA-74126766-10';
11 11
12export const DEFAULT_APP_SETTINGS = { 12export const DEFAULT_APP_SETTINGS = {
13 autoLaunchInBackground: false, 13 autoLaunchInBackground: false,
@@ -17,14 +17,35 @@ export const DEFAULT_APP_SETTINGS = {
17 showDisabledServices: true, 17 showDisabledServices: true,
18 showMessageBadgeWhenMuted: true, 18 showMessageBadgeWhenMuted: true,
19 enableSpellchecking: true, 19 enableSpellchecking: true,
20 spellcheckerLanguage: 'en-us',
21 darkMode: false,
20 locale: '', 22 locale: '',
21 fallbackLocale: 'en-US', 23 fallbackLocale: 'en-US',
22 beta: false, 24 beta: false,
23 isAppMuted: false, 25 isAppMuted: false,
24 enableGPUAcceleration: true, 26 enableGPUAcceleration: true,
27 serviceLimit: 5,
25}; 28};
26 29
27export const FRANZ_SERVICE_REQUEST = 'http://bit.ly/franz-service-request'; 30export const DEFAULT_FEATURES_CONFIG = {
28export const FRANZ_TRANSLATION = 'http://bit.ly/franz-translate'; 31 isSpellcheckerPremiumFeature: false,
32 needToWaitToProceed: false,
33 needToWaitToProceedConfig: {
34 delayOffset: 3600000,
35 wait: 10000,
36 },
37 isServiceProxyEnabled: false,
38 isServiceProxyPremiumFeature: true,
39};
40
41export const FRANZ_SERVICE_REQUEST = 'hhttp://bit.ly/franz-plugin-docs';
42export const FRANZ_TRANSLATION = 'https://bit.ly/franz-translate';
43
44export const FILE_SYSTEM_SETTINGS_TYPES = [
45 'app',
46 'proxy',
47];
48
49export const SETTINGS_PATH = path.join(app.getPath('userData'), 'config');
29 50
30export const SETTINGS_PATH = path.join(app.getPath('userData'), 'config', 'settings.json'); 51export const DICTIONARY_PATH = path.join(app.getPath('userData'), 'dicts');
diff --git a/src/containers/auth/AuthLayoutContainer.js b/src/containers/auth/AuthLayoutContainer.js
index 004054fdd..b73598f3d 100644
--- a/src/containers/auth/AuthLayoutContainer.js
+++ b/src/containers/auth/AuthLayoutContainer.js
@@ -5,11 +5,11 @@ import { inject, observer } from 'mobx-react';
5import AuthLayout from '../../components/auth/AuthLayout'; 5import AuthLayout from '../../components/auth/AuthLayout';
6import AppStore from '../../stores/AppStore'; 6import AppStore from '../../stores/AppStore';
7import GlobalErrorStore from '../../stores/GlobalErrorStore'; 7import GlobalErrorStore from '../../stores/GlobalErrorStore';
8import AppLoader from '../../components/ui/AppLoader';
8 9
9import { oneOrManyChildElements } from '../../prop-types'; 10import { oneOrManyChildElements } from '../../prop-types';
10 11
11@inject('stores', 'actions') @observer 12export default @inject('stores', 'actions') @observer class AuthLayoutContainer extends Component {
12export default class AuthLayoutContainer extends Component {
13 static propTypes = { 13 static propTypes = {
14 children: oneOrManyChildElements.isRequired, 14 children: oneOrManyChildElements.isRequired,
15 location: PropTypes.shape({ 15 location: PropTypes.shape({
@@ -19,14 +19,27 @@ export default class AuthLayoutContainer extends Component {
19 19
20 render() { 20 render() {
21 const { stores, actions, children, location } = this.props; 21 const { stores, actions, children, location } = this.props;
22 const { app, features, globalError } = stores;
23
24 const isLoadingBaseFeatures = features.defaultFeaturesRequest.isExecuting
25 && !features.defaultFeaturesRequest.wasExecuted;
26
27 if (isLoadingBaseFeatures) {
28 return (
29 <AppLoader />
30 );
31 }
32
22 return ( 33 return (
23 <AuthLayout 34 <AuthLayout
24 error={stores.globalError.response} 35 error={globalError.response}
25 pathname={location.pathname} 36 pathname={location.pathname}
26 isOnline={stores.app.isOnline} 37 isOnline={app.isOnline}
27 isAPIHealthy={!stores.app.healthCheckRequest.isError} 38 isAPIHealthy={!app.healthCheckRequest.isError}
28 retryHealthCheck={actions.app.healthCheck} 39 retryHealthCheck={actions.app.healthCheck}
29 isHealthCheckLoading={stores.app.healthCheckRequest.isExecuting} 40 isHealthCheckLoading={app.healthCheckRequest.isExecuting}
41 isFullScreen={app.isFullScreen}
42 darkMode={app.isSystemDarkModeEnabled}
30 > 43 >
31 {children} 44 {children}
32 </AuthLayout> 45 </AuthLayout>
diff --git a/src/containers/auth/ImportScreen.js b/src/containers/auth/ImportScreen.js
index ddd56ffb6..fc46f8b54 100644
--- a/src/containers/auth/ImportScreen.js
+++ b/src/containers/auth/ImportScreen.js
@@ -5,8 +5,7 @@ import Import from '../../components/auth/Import';
5import UserStore from '../../stores/UserStore'; 5import UserStore from '../../stores/UserStore';
6import { gaPage } from '../../lib/analytics'; 6import { gaPage } from '../../lib/analytics';
7 7
8@inject('stores', 'actions') @observer 8export default @inject('stores', 'actions') @observer class ImportScreen extends Component {
9export default class ImportScreen extends Component {
10 componentDidMount() { 9 componentDidMount() {
11 gaPage('Auth/Import'); 10 gaPage('Auth/Import');
12 } 11 }
diff --git a/src/containers/auth/InviteScreen.js b/src/containers/auth/InviteScreen.js
index 059888c99..26bf97038 100644
--- a/src/containers/auth/InviteScreen.js
+++ b/src/containers/auth/InviteScreen.js
@@ -4,8 +4,7 @@ import { inject, observer } from 'mobx-react';
4import Invite from '../../components/auth/Invite'; 4import Invite from '../../components/auth/Invite';
5import { gaPage } from '../../lib/analytics'; 5import { gaPage } from '../../lib/analytics';
6 6
7@inject('stores', 'actions') @observer 7export default @inject('stores', 'actions') @observer class InviteScreen extends Component {
8export default class InviteScreen extends Component {
9 componentDidMount() { 8 componentDidMount() {
10 gaPage('Auth/Invite'); 9 gaPage('Auth/Invite');
11 } 10 }
diff --git a/src/containers/auth/LoginScreen.js b/src/containers/auth/LoginScreen.js
index 9e22c5141..865bd38f8 100644
--- a/src/containers/auth/LoginScreen.js
+++ b/src/containers/auth/LoginScreen.js
@@ -7,8 +7,7 @@ import { gaPage } from '../../lib/analytics';
7 7
8import { globalError as globalErrorPropType } from '../../prop-types'; 8import { globalError as globalErrorPropType } from '../../prop-types';
9 9
10@inject('stores', 'actions') @observer 10export default @inject('stores', 'actions') @observer class LoginScreen extends Component {
11export default class LoginScreen extends Component {
12 static propTypes = { 11 static propTypes = {
13 error: globalErrorPropType.isRequired, 12 error: globalErrorPropType.isRequired,
14 }; 13 };
diff --git a/src/containers/auth/PasswordScreen.js b/src/containers/auth/PasswordScreen.js
index d88cb08e6..236fd2031 100644
--- a/src/containers/auth/PasswordScreen.js
+++ b/src/containers/auth/PasswordScreen.js
@@ -5,8 +5,7 @@ import Password from '../../components/auth/Password';
5import UserStore from '../../stores/UserStore'; 5import UserStore from '../../stores/UserStore';
6import { gaPage } from '../../lib/analytics'; 6import { gaPage } from '../../lib/analytics';
7 7
8@inject('stores', 'actions') @observer 8export default @inject('stores', 'actions') @observer class PasswordScreen extends Component {
9export default class PasswordScreen extends Component {
10 componentDidMount() { 9 componentDidMount() {
11 gaPage('Auth/Password Retrieve'); 10 gaPage('Auth/Password Retrieve');
12 } 11 }
diff --git a/src/containers/auth/PricingScreen.js b/src/containers/auth/PricingScreen.js
index 7e1586535..34b512e15 100644
--- a/src/containers/auth/PricingScreen.js
+++ b/src/containers/auth/PricingScreen.js
@@ -10,8 +10,7 @@ import { gaPage } from '../../lib/analytics';
10 10
11import { globalError as globalErrorPropType } from '../../prop-types'; 11import { globalError as globalErrorPropType } from '../../prop-types';
12 12
13@inject('stores', 'actions') @observer 13export default @inject('stores', 'actions') @observer class PricingScreen extends Component {
14export default class PricingScreen extends Component {
15 static propTypes = { 14 static propTypes = {
16 error: globalErrorPropType.isRequired, 15 error: globalErrorPropType.isRequired,
17 }; 16 };
diff --git a/src/containers/auth/SignupScreen.js b/src/containers/auth/SignupScreen.js
index 3b86ab138..caf75de90 100644
--- a/src/containers/auth/SignupScreen.js
+++ b/src/containers/auth/SignupScreen.js
@@ -8,8 +8,7 @@ import { gaPage } from '../../lib/analytics';
8 8
9import { globalError as globalErrorPropType } from '../../prop-types'; 9import { globalError as globalErrorPropType } from '../../prop-types';
10 10
11@inject('stores', 'actions') @observer 11export default @inject('stores', 'actions') @observer class SignupScreen extends Component {
12export default class SignupScreen extends Component {
13 static propTypes = { 12 static propTypes = {
14 error: globalErrorPropType.isRequired, 13 error: globalErrorPropType.isRequired,
15 }; 14 };
diff --git a/src/containers/auth/WelcomeScreen.js b/src/containers/auth/WelcomeScreen.js
index e413264a6..2c120f81c 100644
--- a/src/containers/auth/WelcomeScreen.js
+++ b/src/containers/auth/WelcomeScreen.js
@@ -7,8 +7,7 @@ import UserStore from '../../stores/UserStore';
7import RecipePreviewsStore from '../../stores/RecipePreviewsStore'; 7import RecipePreviewsStore from '../../stores/RecipePreviewsStore';
8import { gaPage } from '../../lib/analytics'; 8import { gaPage } from '../../lib/analytics';
9 9
10@inject('stores', 'actions') @observer 10export default @inject('stores', 'actions') @observer class LoginScreen extends Component {
11export default class LoginScreen extends Component {
12 componentDidMount() { 11 componentDidMount() {
13 gaPage('Auth/Welcome'); 12 gaPage('Auth/Welcome');
14 } 13 }
diff --git a/src/containers/layout/AppLayoutContainer.js b/src/containers/layout/AppLayoutContainer.js
index 9212f809f..e1423bdaa 100644
--- a/src/containers/layout/AppLayoutContainer.js
+++ b/src/containers/layout/AppLayoutContainer.js
@@ -1,10 +1,12 @@
1import React, { Component } from 'react'; 1import React, { Component } from 'react';
2import PropTypes from 'prop-types'; 2import PropTypes from 'prop-types';
3import { inject, observer } from 'mobx-react'; 3import { inject, observer } from 'mobx-react';
4import { ThemeProvider } from 'react-jss';
4 5
5import AppStore from '../../stores/AppStore'; 6import AppStore from '../../stores/AppStore';
6import RecipesStore from '../../stores/RecipesStore'; 7import RecipesStore from '../../stores/RecipesStore';
7import ServicesStore from '../../stores/ServicesStore'; 8import ServicesStore from '../../stores/ServicesStore';
9import FeaturesStore from '../../stores/FeaturesStore';
8import UIStore from '../../stores/UIStore'; 10import UIStore from '../../stores/UIStore';
9import NewsStore from '../../stores/NewsStore'; 11import NewsStore from '../../stores/NewsStore';
10import SettingsStore from '../../stores/SettingsStore'; 12import SettingsStore from '../../stores/SettingsStore';
@@ -17,8 +19,9 @@ import Sidebar from '../../components/layout/Sidebar';
17import Services from '../../components/services/content/Services'; 19import Services from '../../components/services/content/Services';
18import AppLoader from '../../components/ui/AppLoader'; 20import AppLoader from '../../components/ui/AppLoader';
19 21
20@inject('stores', 'actions') @observer 22import { state as delayAppState } from '../../features/delayApp';
21export default class AppLayoutContainer extends Component { 23
24export default @inject('stores', 'actions') @observer class AppLayoutContainer extends Component {
22 static defaultProps = { 25 static defaultProps = {
23 children: null, 26 children: null,
24 }; 27 };
@@ -26,6 +29,7 @@ export default class AppLayoutContainer extends Component {
26 render() { 29 render() {
27 const { 30 const {
28 app, 31 app,
32 features,
29 services, 33 services,
30 ui, 34 ui,
31 news, 35 news,
@@ -39,7 +43,6 @@ export default class AppLayoutContainer extends Component {
39 handleIPCMessage, 43 handleIPCMessage,
40 setWebviewReference, 44 setWebviewReference,
41 openWindow, 45 openWindow,
42 reloadUpdatedServices,
43 reorder, 46 reorder,
44 reload, 47 reload,
45 toggleNotifications, 48 toggleNotifications,
@@ -64,10 +67,13 @@ export default class AppLayoutContainer extends Component {
64 67
65 const { children } = this.props; 68 const { children } = this.props;
66 69
70 const isLoadingFeatures = features.featuresRequest.isExecuting
71 && !features.featuresRequest.wasExecuted;
72
67 const isLoadingServices = services.allServicesRequest.isExecuting 73 const isLoadingServices = services.allServicesRequest.isExecuting
68 && services.allServicesRequest.isExecutingFirstTime; 74 && services.allServicesRequest.isExecutingFirstTime;
69 75
70 if (isLoadingServices) { 76 if (isLoadingFeatures || isLoadingServices) {
71 return ( 77 return (
72 <AppLoader /> 78 <AppLoader />
73 ); 79 );
@@ -105,25 +111,29 @@ export default class AppLayoutContainer extends Component {
105 ); 111 );
106 112
107 return ( 113 return (
108 <AppLayout 114 <ThemeProvider theme={ui.theme}>
109 isFullScreen={app.isFullScreen} 115 <AppLayout
110 isOnline={app.isOnline} 116 isFullScreen={app.isFullScreen}
111 showServicesUpdatedInfoBar={ui.showServicesUpdatedInfoBar} 117 isOnline={app.isOnline}
112 appUpdateIsDownloaded={app.updateStatus === app.updateStatusTypes.DOWNLOADED} 118 showServicesUpdatedInfoBar={ui.showServicesUpdatedInfoBar}
113 sidebar={sidebar} 119 appUpdateIsDownloaded={app.updateStatus === app.updateStatusTypes.DOWNLOADED}
114 services={servicesContainer} 120 sidebar={sidebar}
115 news={news.latest} 121 services={servicesContainer}
116 removeNewsItem={hide} 122 news={news.latest}
117 reloadServicesAfterUpdate={reloadUpdatedServices} 123 removeNewsItem={hide}
118 installAppUpdate={installUpdate} 124 reloadServicesAfterUpdate={() => window.location.reload()}
119 globalError={globalError.error} 125 installAppUpdate={installUpdate}
120 showRequiredRequestsError={requests.showRequiredRequestsError} 126 globalError={globalError.error}
121 areRequiredRequestsSuccessful={requests.areRequiredRequestsSuccessful} 127 showRequiredRequestsError={requests.showRequiredRequestsError}
122 retryRequiredRequests={retryRequiredRequests} 128 areRequiredRequestsSuccessful={requests.areRequiredRequestsSuccessful}
123 areRequiredRequestsLoading={requests.areRequiredRequestsLoading} 129 retryRequiredRequests={retryRequiredRequests}
124 > 130 areRequiredRequestsLoading={requests.areRequiredRequestsLoading}
125 {React.Children.count(children) > 0 ? children : null} 131 darkMode={settings.all.app.darkMode}
126 </AppLayout> 132 isDelayAppScreenVisible={delayAppState.isDelayAppScreenVisible}
133 >
134 {React.Children.count(children) > 0 ? children : null}
135 </AppLayout>
136 </ThemeProvider>
127 ); 137 );
128 } 138 }
129} 139}
@@ -131,6 +141,7 @@ export default class AppLayoutContainer extends Component {
131AppLayoutContainer.wrappedComponent.propTypes = { 141AppLayoutContainer.wrappedComponent.propTypes = {
132 stores: PropTypes.shape({ 142 stores: PropTypes.shape({
133 services: PropTypes.instanceOf(ServicesStore).isRequired, 143 services: PropTypes.instanceOf(ServicesStore).isRequired,
144 features: PropTypes.instanceOf(FeaturesStore).isRequired,
134 recipes: PropTypes.instanceOf(RecipesStore).isRequired, 145 recipes: PropTypes.instanceOf(RecipesStore).isRequired,
135 app: PropTypes.instanceOf(AppStore).isRequired, 146 app: PropTypes.instanceOf(AppStore).isRequired,
136 ui: PropTypes.instanceOf(UIStore).isRequired, 147 ui: PropTypes.instanceOf(UIStore).isRequired,
diff --git a/src/containers/settings/AccountScreen.js b/src/containers/settings/AccountScreen.js
index c5c2982b0..5818af0b1 100644
--- a/src/containers/settings/AccountScreen.js
+++ b/src/containers/settings/AccountScreen.js
@@ -12,8 +12,7 @@ import AccountDashboard from '../../components/settings/account/AccountDashboard
12 12
13const { BrowserWindow } = remote; 13const { BrowserWindow } = remote;
14 14
15@inject('stores', 'actions') @observer 15export default @inject('stores', 'actions') @observer class AccountScreen extends Component {
16export default class AccountScreen extends Component {
17 componentDidMount() { 16 componentDidMount() {
18 gaPage('Settings/Account Dashboard'); 17 gaPage('Settings/Account Dashboard');
19 } 18 }
diff --git a/src/containers/settings/EditServiceScreen.js b/src/containers/settings/EditServiceScreen.js
index 67c2731fc..639e8b070 100644
--- a/src/containers/settings/EditServiceScreen.js
+++ b/src/containers/settings/EditServiceScreen.js
@@ -6,6 +6,8 @@ import { defineMessages, intlShape } from 'react-intl';
6import UserStore from '../../stores/UserStore'; 6import UserStore from '../../stores/UserStore';
7import RecipesStore from '../../stores/RecipesStore'; 7import RecipesStore from '../../stores/RecipesStore';
8import ServicesStore from '../../stores/ServicesStore'; 8import ServicesStore from '../../stores/ServicesStore';
9import SettingsStore from '../../stores/SettingsStore';
10import FeaturesStore from '../../stores/FeaturesStore';
9import Form from '../../lib/Form'; 11import Form from '../../lib/Form';
10import { gaPage } from '../../lib/analytics'; 12import { gaPage } from '../../lib/analytics';
11 13
@@ -13,6 +15,8 @@ import ServiceError from '../../components/settings/services/ServiceError';
13import EditServiceForm from '../../components/settings/services/EditServiceForm'; 15import EditServiceForm from '../../components/settings/services/EditServiceForm';
14import { required, url, oneRequired } from '../../helpers/validation-helpers'; 16import { required, url, oneRequired } from '../../helpers/validation-helpers';
15 17
18import { config as proxyFeature } from '../../features/serviceProxy';
19
16const messages = defineMessages({ 20const messages = defineMessages({
17 name: { 21 name: {
18 id: 'settings.service.form.name', 22 id: 'settings.service.form.name',
@@ -50,10 +54,29 @@ const messages = defineMessages({
50 id: 'settings.service.form.icon', 54 id: 'settings.service.form.icon',
51 defaultMessage: '!!!Custom icon', 55 defaultMessage: '!!!Custom icon',
52 }, 56 },
57 enableDarkMode: {
58 id: 'settings.service.form.enableDarkMode',
59 defaultMessage: '!!!Enable Dark Mode',
60 },
61 enableProxy: {
62 id: 'settings.service.form.proxy.isEnabled',
63 defaultMessage: '!!!Use Proxy',
64 },
65 proxyHost: {
66 id: 'settings.service.form.proxy.host',
67 defaultMessage: '!!!Proxy Host/IP',
68 },
69 proxyUser: {
70 id: 'settings.service.form.proxy.user',
71 defaultMessage: '!!!User',
72 },
73 proxyPassword: {
74 id: 'settings.service.form.proxy.password',
75 defaultMessage: '!!!Password',
76 },
53}); 77});
54 78
55@inject('stores', 'actions') @observer 79export default @inject('stores', 'actions') @observer class EditServiceScreen extends Component {
56export default class EditServiceScreen extends Component {
57 static contextTypes = { 80 static contextTypes = {
58 intl: intlShape, 81 intl: intlShape,
59 }; 82 };
@@ -77,7 +100,7 @@ export default class EditServiceScreen extends Component {
77 } 100 }
78 } 101 }
79 102
80 prepareForm(recipe, service) { 103 prepareForm(recipe, service, proxy) {
81 const { intl } = this.context; 104 const { intl } = this.context;
82 const config = { 105 const config = {
83 fields: { 106 fields: {
@@ -112,6 +135,11 @@ export default class EditServiceScreen extends Component {
112 default: null, 135 default: null,
113 type: 'file', 136 type: 'file',
114 }, 137 },
138 isDarkModeEnabled: {
139 label: intl.formatMessage(messages.enableDarkMode),
140 value: service.isDarkModeEnabled,
141 default: this.props.stores.settings.all.app.darkMode,
142 },
115 }, 143 },
116 }; 144 };
117 145
@@ -163,6 +191,40 @@ export default class EditServiceScreen extends Component {
163 }); 191 });
164 } 192 }
165 193
194 if (proxy.isEnabled) {
195 const serviceProxyConfig = this.props.stores.settings.proxy[service.id] || {};
196
197 Object.assign(config.fields, {
198 proxy: {
199 name: 'proxy',
200 label: 'proxy',
201 fields: {
202 isEnabled: {
203 label: intl.formatMessage(messages.enableProxy),
204 value: serviceProxyConfig.isEnabled,
205 default: false,
206 },
207 host: {
208 label: intl.formatMessage(messages.proxyHost),
209 value: serviceProxyConfig.host,
210 default: '',
211 },
212 user: {
213 label: intl.formatMessage(messages.proxyUser),
214 value: serviceProxyConfig.user,
215 default: '',
216 },
217 password: {
218 label: intl.formatMessage(messages.proxyPassword),
219 value: serviceProxyConfig.password,
220 default: '',
221 type: 'password',
222 },
223 },
224 },
225 });
226 }
227
166 return new Form(config); 228 return new Form(config);
167 } 229 }
168 230
@@ -215,7 +277,7 @@ export default class EditServiceScreen extends Component {
215 ); 277 );
216 } 278 }
217 279
218 const form = this.prepareForm(recipe, service); 280 const form = this.prepareForm(recipe, service, proxyFeature);
219 281
220 return ( 282 return (
221 <EditServiceForm 283 <EditServiceForm
@@ -229,6 +291,8 @@ export default class EditServiceScreen extends Component {
229 isDeleting={services.deleteServiceRequest.isExecuting} 291 isDeleting={services.deleteServiceRequest.isExecuting}
230 onSubmit={d => this.onSubmit(d)} 292 onSubmit={d => this.onSubmit(d)}
231 onDelete={() => this.deleteService()} 293 onDelete={() => this.deleteService()}
294 isProxyFeatureEnabled={proxyFeature.isEnabled}
295 isProxyFeaturePremiumFeature={proxyFeature.isPremium}
232 /> 296 />
233 ); 297 );
234 } 298 }
@@ -239,6 +303,8 @@ EditServiceScreen.wrappedComponent.propTypes = {
239 user: PropTypes.instanceOf(UserStore).isRequired, 303 user: PropTypes.instanceOf(UserStore).isRequired,
240 recipes: PropTypes.instanceOf(RecipesStore).isRequired, 304 recipes: PropTypes.instanceOf(RecipesStore).isRequired,
241 services: PropTypes.instanceOf(ServicesStore).isRequired, 305 services: PropTypes.instanceOf(ServicesStore).isRequired,
306 settings: PropTypes.instanceOf(SettingsStore).isRequired,
307 features: PropTypes.instanceOf(FeaturesStore).isRequired,
242 }).isRequired, 308 }).isRequired,
243 router: PropTypes.shape({ 309 router: PropTypes.shape({
244 params: PropTypes.shape({ 310 params: PropTypes.shape({
@@ -251,5 +317,8 @@ EditServiceScreen.wrappedComponent.propTypes = {
251 updateService: PropTypes.func.isRequired, 317 updateService: PropTypes.func.isRequired,
252 deleteService: PropTypes.func.isRequired, 318 deleteService: PropTypes.func.isRequired,
253 }).isRequired, 319 }).isRequired,
320 // settings: PropTypes.shape({
321 // update: PropTypes.func.isRequred,
322 // }).isRequired,
254 }).isRequired, 323 }).isRequired,
255}; 324};
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js
index 018ce663f..ea1d319d9 100644
--- a/src/containers/settings/EditSettingsScreen.js
+++ b/src/containers/settings/EditSettingsScreen.js
@@ -7,9 +7,10 @@ import AppStore from '../../stores/AppStore';
7import SettingsStore from '../../stores/SettingsStore'; 7import SettingsStore from '../../stores/SettingsStore';
8import UserStore from '../../stores/UserStore'; 8import UserStore from '../../stores/UserStore';
9import Form from '../../lib/Form'; 9import Form from '../../lib/Form';
10import { APP_LOCALES } from '../../i18n/languages'; 10import { APP_LOCALES, SPELLCHECKER_LOCALES } from '../../i18n/languages';
11import { gaPage } from '../../lib/analytics'; 11import { gaPage } from '../../lib/analytics';
12import { DEFAULT_APP_SETTINGS } from '../../config'; 12import { DEFAULT_APP_SETTINGS } from '../../config';
13import { config as spellcheckerConfig } from '../../features/spellchecker';
13 14
14 15
15import EditSettingsForm from '../../components/settings/settings/EditSettingsForm'; 16import EditSettingsForm from '../../components/settings/settings/EditSettingsForm';
@@ -39,6 +40,10 @@ const messages = defineMessages({
39 id: 'settings.app.form.language', 40 id: 'settings.app.form.language',
40 defaultMessage: '!!!Language', 41 defaultMessage: '!!!Language',
41 }, 42 },
43 darkMode: {
44 id: 'settings.app.form.darkMode',
45 defaultMessage: '!!!Dark Mode',
46 },
42 showDisabledServices: { 47 showDisabledServices: {
43 id: 'settings.app.form.showDisabledServices', 48 id: 'settings.app.form.showDisabledServices',
44 defaultMessage: '!!!Display disabled services tabs', 49 defaultMessage: '!!!Display disabled services tabs',
@@ -55,8 +60,8 @@ const messages = defineMessages({
55 id: 'settings.app.form.enableGPUAcceleration', 60 id: 'settings.app.form.enableGPUAcceleration',
56 defaultMessage: '!!!Enable GPU Acceleration', 61 defaultMessage: '!!!Enable GPU Acceleration',
57 }, 62 },
58 spellcheckingLanguage: { 63 spellcheckerLanguage: {
59 id: 'settings.app.form.spellcheckingLanguage', 64 id: 'settings.app.form.spellcheckerLanguage',
60 defaultMessage: '!!!Language for spell checking', 65 defaultMessage: '!!!Language for spell checking',
61 }, 66 },
62 beta: { 67 beta: {
@@ -65,8 +70,7 @@ const messages = defineMessages({
65 }, 70 },
66}); 71});
67 72
68@inject('stores', 'actions') @observer 73export default @inject('stores', 'actions') @observer class EditSettingsScreen extends Component {
69export default class EditSettingsScreen extends Component {
70 static contextTypes = { 74 static contextTypes = {
71 intl: intlShape, 75 intl: intlShape,
72 }; 76 };
@@ -91,8 +95,10 @@ export default class EditSettingsScreen extends Component {
91 minimizeToSystemTray: settingsData.minimizeToSystemTray, 95 minimizeToSystemTray: settingsData.minimizeToSystemTray,
92 enableGPUAcceleration: settingsData.enableGPUAcceleration, 96 enableGPUAcceleration: settingsData.enableGPUAcceleration,
93 showDisabledServices: settingsData.showDisabledServices, 97 showDisabledServices: settingsData.showDisabledServices,
98 darkMode: settingsData.darkMode,
94 showMessageBadgeWhenMuted: settingsData.showMessageBadgeWhenMuted, 99 showMessageBadgeWhenMuted: settingsData.showMessageBadgeWhenMuted,
95 enableSpellchecking: settingsData.enableSpellchecking, 100 enableSpellchecking: settingsData.enableSpellchecking,
101 spellcheckerLanguage: settingsData.spellcheckerLanguage,
96 beta: settingsData.beta, // we need this info in the main process as well 102 beta: settingsData.beta, // we need this info in the main process as well
97 locale: settingsData.locale, // we need this info in the main process as well 103 locale: settingsData.locale, // we need this info in the main process as well
98 }, 104 },
@@ -118,6 +124,14 @@ export default class EditSettingsScreen extends Component {
118 }); 124 });
119 }); 125 });
120 126
127 const spellcheckingLanguages = [];
128 Object.keys(SPELLCHECKER_LOCALES).sort(Intl.Collator().compare).forEach((key) => {
129 spellcheckingLanguages.push({
130 value: key,
131 label: SPELLCHECKER_LOCALES[key],
132 });
133 });
134
121 const config = { 135 const config = {
122 fields: { 136 fields: {
123 autoLaunchOnStart: { 137 autoLaunchOnStart: {
@@ -157,8 +171,19 @@ export default class EditSettingsScreen extends Component {
157 }, 171 },
158 enableSpellchecking: { 172 enableSpellchecking: {
159 label: intl.formatMessage(messages.enableSpellchecking), 173 label: intl.formatMessage(messages.enableSpellchecking),
160 value: settings.all.app.enableSpellchecking, 174 value: !this.props.stores.user.data.isPremium && spellcheckerConfig.isPremiumFeature ? false : settings.all.app.enableSpellchecking,
161 default: DEFAULT_APP_SETTINGS.enableSpellchecking, 175 default: !this.props.stores.user.data.isPremium && spellcheckerConfig.isPremiumFeature ? false : DEFAULT_APP_SETTINGS.enableSpellchecking,
176 },
177 spellcheckerLanguage: {
178 label: intl.formatMessage(messages.spellcheckerLanguage),
179 value: settings.all.app.spellcheckerLanguage,
180 options: spellcheckingLanguages,
181 default: DEFAULT_APP_SETTINGS.spellcheckerLanguage,
182 },
183 darkMode: {
184 label: intl.formatMessage(messages.darkMode),
185 value: settings.all.app.darkMode,
186 default: DEFAULT_APP_SETTINGS.darkMode,
162 }, 187 },
163 enableGPUAcceleration: { 188 enableGPUAcceleration: {
164 label: intl.formatMessage(messages.enableGPUAcceleration), 189 label: intl.formatMessage(messages.enableGPUAcceleration),
@@ -209,6 +234,7 @@ export default class EditSettingsScreen extends Component {
209 cacheSize={cacheSize} 234 cacheSize={cacheSize}
210 isClearingAllCache={isClearingAllCache} 235 isClearingAllCache={isClearingAllCache}
211 onClearAllCache={clearAllCache} 236 onClearAllCache={clearAllCache}
237 isSpellcheckerPremiumFeature={spellcheckerConfig.isPremiumFeature}
212 /> 238 />
213 ); 239 );
214 } 240 }
diff --git a/src/containers/settings/EditUserScreen.js b/src/containers/settings/EditUserScreen.js
index dda8ce513..3da3e8d2c 100644
--- a/src/containers/settings/EditUserScreen.js
+++ b/src/containers/settings/EditUserScreen.js
@@ -50,8 +50,7 @@ const messages = defineMessages({
50 }, 50 },
51}); 51});
52 52
53@inject('stores', 'actions') @observer 53export default @inject('stores', 'actions') @observer class EditUserScreen extends Component {
54export default class EditUserScreen extends Component {
55 static contextTypes = { 54 static contextTypes = {
56 intl: intlShape, 55 intl: intlShape,
57 }; 56 };
@@ -145,6 +144,7 @@ export default class EditUserScreen extends Component {
145 // user={user.data} 144 // user={user.data}
146 status={user.actionStatus} 145 status={user.actionStatus}
147 form={form} 146 form={form}
147 isEnterprise={user.data.isEnterprise}
148 isSaving={user.updateUserInfoRequest.isExecuting} 148 isSaving={user.updateUserInfoRequest.isExecuting}
149 onSubmit={d => this.onSubmit(d)} 149 onSubmit={d => this.onSubmit(d)}
150 /> 150 />
diff --git a/src/containers/settings/InviteScreen.js b/src/containers/settings/InviteScreen.js
index 5f341b1b3..38ca6ec74 100644
--- a/src/containers/settings/InviteScreen.js
+++ b/src/containers/settings/InviteScreen.js
@@ -5,8 +5,7 @@ import { inject, observer } from 'mobx-react';
5import Invite from '../../components/auth/Invite'; 5import Invite from '../../components/auth/Invite';
6import { gaPage } from '../../lib/analytics'; 6import { gaPage } from '../../lib/analytics';
7 7
8@inject('stores', 'actions') @observer 8export default @inject('stores', 'actions') @observer class InviteScreen extends Component {
9export default class InviteScreen extends Component {
10 componentDidMount() { 9 componentDidMount() {
11 gaPage('Settings/Invite'); 10 gaPage('Settings/Invite');
12 } 11 }
diff --git a/src/containers/settings/RecipesScreen.js b/src/containers/settings/RecipesScreen.js
index 65341e9e3..4efe81505 100644
--- a/src/containers/settings/RecipesScreen.js
+++ b/src/containers/settings/RecipesScreen.js
@@ -11,8 +11,7 @@ import { gaPage } from '../../lib/analytics';
11 11
12import RecipesDashboard from '../../components/settings/recipes/RecipesDashboard'; 12import RecipesDashboard from '../../components/settings/recipes/RecipesDashboard';
13 13
14@inject('stores', 'actions') @observer 14export default @inject('stores', 'actions') @observer class RecipesScreen extends Component {
15export default class RecipesScreen extends Component {
16 static propTypes = { 15 static propTypes = {
17 params: PropTypes.shape({ 16 params: PropTypes.shape({
18 filter: PropTypes.string, 17 filter: PropTypes.string,
diff --git a/src/containers/settings/ServicesScreen.js b/src/containers/settings/ServicesScreen.js
index 12db1bcd3..c1a133ef7 100644
--- a/src/containers/settings/ServicesScreen.js
+++ b/src/containers/settings/ServicesScreen.js
@@ -10,8 +10,7 @@ import { gaPage } from '../../lib/analytics';
10 10
11import ServicesDashboard from '../../components/settings/services/ServicesDashboard'; 11import ServicesDashboard from '../../components/settings/services/ServicesDashboard';
12 12
13@inject('stores', 'actions') @observer 13export default @inject('stores', 'actions') @observer class ServicesScreen extends Component {
14export default class ServicesScreen extends Component {
15 componentDidMount() { 14 componentDidMount() {
16 gaPage('Settings/Service Dashboard'); 15 gaPage('Settings/Service Dashboard');
17 } 16 }
diff --git a/src/containers/settings/SettingsWindow.js b/src/containers/settings/SettingsWindow.js
index 13ca96f72..55589d0be 100644
--- a/src/containers/settings/SettingsWindow.js
+++ b/src/containers/settings/SettingsWindow.js
@@ -7,8 +7,7 @@ import ServicesStore from '../../stores/ServicesStore';
7import Layout from '../../components/settings/SettingsLayout'; 7import Layout from '../../components/settings/SettingsLayout';
8import Navigation from '../../components/settings/navigation/SettingsNavigation'; 8import Navigation from '../../components/settings/navigation/SettingsNavigation';
9 9
10@inject('stores', 'actions') @observer 10export default @inject('stores', 'actions') @observer class SettingsContainer extends Component {
11export default class SettingsContainer extends Component {
12 render() { 11 render() {
13 const { children, stores } = this.props; 12 const { children, stores } = this.props;
14 const { closeSettings } = this.props.actions.ui; 13 const { closeSettings } = this.props.actions.ui;
diff --git a/src/containers/subscription/SubscriptionFormScreen.js b/src/containers/subscription/SubscriptionFormScreen.js
index fc6e3c4be..50ed19bef 100644
--- a/src/containers/subscription/SubscriptionFormScreen.js
+++ b/src/containers/subscription/SubscriptionFormScreen.js
@@ -9,8 +9,7 @@ import SubscriptionForm from '../../components/subscription/SubscriptionForm';
9 9
10const { BrowserWindow } = remote; 10const { BrowserWindow } = remote;
11 11
12@inject('stores', 'actions') @observer 12export default @inject('stores', 'actions') @observer class SubscriptionFormScreen extends Component {
13export default class SubscriptionFormScreen extends Component {
14 static propTypes = { 13 static propTypes = {
15 onCloseWindow: PropTypes.func, 14 onCloseWindow: PropTypes.func,
16 content: PropTypes.oneOrManyChildElements, 15 content: PropTypes.oneOrManyChildElements,
@@ -80,7 +79,6 @@ export default class SubscriptionFormScreen extends Component {
80 return ( 79 return (
81 <SubscriptionForm 80 <SubscriptionForm
82 plan={stores.payment.plan} 81 plan={stores.payment.plan}
83 // form={this.prepareForm(stores.payment.plan)}
84 isLoading={stores.payment.plansRequest.isExecuting} 82 isLoading={stores.payment.plansRequest.isExecuting}
85 retryPlanRequest={() => stores.payment.plansRequest.reload()} 83 retryPlanRequest={() => stores.payment.plansRequest.reload()}
86 isCreatingHostedPage={stores.payment.createHostedPageRequest.isExecuting} 84 isCreatingHostedPage={stores.payment.createHostedPageRequest.isExecuting}
diff --git a/src/containers/subscription/SubscriptionPopupScreen.js b/src/containers/subscription/SubscriptionPopupScreen.js
index bb0603170..6641f236d 100644
--- a/src/containers/subscription/SubscriptionPopupScreen.js
+++ b/src/containers/subscription/SubscriptionPopupScreen.js
@@ -5,8 +5,7 @@ import { inject, observer } from 'mobx-react';
5import SubscriptionPopup from '../../components/subscription/SubscriptionPopup'; 5import SubscriptionPopup from '../../components/subscription/SubscriptionPopup';
6 6
7 7
8@inject('stores', 'actions') @observer 8export default @inject('stores', 'actions') @observer class SubscriptionPopupScreen extends Component {
9export default class SubscriptionPopupScreen extends Component {
10 state = { 9 state = {
11 complete: false, 10 complete: false,
12 }; 11 };
diff --git a/src/electron/Settings.js b/src/electron/Settings.js
index b3138e948..6ac3b9177 100644
--- a/src/electron/Settings.js
+++ b/src/electron/Settings.js
@@ -1,15 +1,21 @@
1import { observable, toJS } from 'mobx'; 1import { observable, toJS } from 'mobx';
2import { pathExistsSync, outputJsonSync, readJsonSync } from 'fs-extra'; 2import { pathExistsSync, outputJsonSync, readJsonSync } from 'fs-extra';
3import path from 'path';
3 4
4import { SETTINGS_PATH, DEFAULT_APP_SETTINGS } from '../config'; 5import { SETTINGS_PATH } from '../config';
5 6
6const debug = require('debug')('Settings'); 7const debug = require('debug')('Franz:Settings');
7 8
8export default class Settings { 9export default class Settings {
9 @observable store = DEFAULT_APP_SETTINGS; 10 type = '';
11 @observable store = {};
10 12
11 constructor() { 13 constructor(type, defaultState = {}) {
12 if (!pathExistsSync(SETTINGS_PATH)) { 14 this.type = type;
15 this.store = defaultState;
16 this.defaultState = defaultState;
17
18 if (!pathExistsSync(this.settingsFile)) {
13 this._writeFile(); 19 this._writeFile();
14 } else { 20 } else {
15 this._hydrate(); 21 this._hydrate();
@@ -17,7 +23,7 @@ export default class Settings {
17 } 23 }
18 24
19 set(settings) { 25 set(settings) {
20 this.store = Object.assign(this.store, settings); 26 this.store = this._merge(settings);
21 27
22 this._writeFile(); 28 this._writeFile();
23 } 29 }
@@ -30,13 +36,21 @@ export default class Settings {
30 return this.store[key]; 36 return this.store[key];
31 } 37 }
32 38
39 _merge(settings) {
40 return Object.assign(this.defaultState, this.store, settings);
41 }
42
33 _hydrate() { 43 _hydrate() {
34 this.store = readJsonSync(SETTINGS_PATH); 44 this.store = this._merge(readJsonSync(this.settingsFile));
35 debug('Hydrate store', toJS(this.store)); 45 debug('Hydrate store', toJS(this.store));
36 } 46 }
37 47
38 _writeFile() { 48 _writeFile() {
39 outputJsonSync(SETTINGS_PATH, this.store); 49 outputJsonSync(this.settingsFile, this.store);
40 debug('Write settings file', toJS(this.store)); 50 debug('Write settings file', toJS(this.store));
41 } 51 }
52
53 get settingsFile() {
54 return path.join(SETTINGS_PATH, `${this.type === 'app' ? 'settings' : this.type}.json`);
55 }
42} 56}
diff --git a/src/electron/ipc-api/appIndicator.js b/src/electron/ipc-api/appIndicator.js
index d31819068..e568bf35d 100644
--- a/src/electron/ipc-api/appIndicator.js
+++ b/src/electron/ipc-api/appIndicator.js
@@ -15,7 +15,7 @@ function getAsset(type, asset) {
15 15
16export default (params) => { 16export default (params) => {
17 autorun(() => { 17 autorun(() => {
18 isTrayIconEnabled = params.settings.get('enableSystemTray'); 18 isTrayIconEnabled = params.settings.app.get('enableSystemTray');
19 19
20 if (!isTrayIconEnabled) { 20 if (!isTrayIconEnabled) {
21 params.trayIcon.hide(); 21 params.trayIcon.hide();
diff --git a/src/electron/ipc-api/autoUpdate.js b/src/electron/ipc-api/autoUpdate.js
index ba49a2f97..9ccc89ea2 100644
--- a/src/electron/ipc-api/autoUpdate.js
+++ b/src/electron/ipc-api/autoUpdate.js
@@ -1,17 +1,17 @@
1import { app, ipcMain } from 'electron'; 1import { app, ipcMain } from 'electron';
2import { autoUpdater } from 'electron-updater'; 2import { autoUpdater } from 'electron-updater';
3import { isDevMode } from '../../environment.js'; 3
4const debug = require('debug')('Franz:ipcApi:autoUpdate');
4 5
5export default (params) => { 6export default (params) => {
6 if (!isDevMode && (process.platform === 'darwin' || process.platform === 'win32')) { 7 if (process.platform === 'darwin' || process.platform === 'win32') {
7 // autoUpdater.setFeedURL(updateUrl);
8 ipcMain.on('autoUpdate', (event, args) => { 8 ipcMain.on('autoUpdate', (event, args) => {
9 try { 9 try {
10 autoUpdater.allowPrerelease = Boolean(params.settings.get('beta')); 10 autoUpdater.allowPrerelease = Boolean(params.settings.app.get('beta'));
11 if (args.action === 'check') { 11 if (args.action === 'check') {
12 autoUpdater.checkForUpdates(); 12 autoUpdater.checkForUpdates();
13 } else if (args.action === 'install') { 13 } else if (args.action === 'install') {
14 console.log('install update'); 14 debug('install update');
15 autoUpdater.quitAndInstall(); 15 autoUpdater.quitAndInstall();
16 // we need to send a quit event 16 // we need to send a quit event
17 setTimeout(() => { 17 setTimeout(() => {
@@ -25,12 +25,12 @@ export default (params) => {
25 }); 25 });
26 26
27 autoUpdater.on('update-not-available', () => { 27 autoUpdater.on('update-not-available', () => {
28 console.log('update-not-available'); 28 debug('update-not-available');
29 params.mainWindow.webContents.send('autoUpdate', { available: false }); 29 params.mainWindow.webContents.send('autoUpdate', { available: false });
30 }); 30 });
31 31
32 autoUpdater.on('update-available', () => { 32 autoUpdater.on('update-available', () => {
33 console.log('update-available'); 33 debug('update-available');
34 params.mainWindow.webContents.send('autoUpdate', { available: true }); 34 params.mainWindow.webContents.send('autoUpdate', { available: true });
35 }); 35 });
36 36
@@ -39,16 +39,16 @@ export default (params) => {
39 logMessage = `${logMessage} - Downloaded ${progressObj.percent}%`; 39 logMessage = `${logMessage} - Downloaded ${progressObj.percent}%`;
40 logMessage = `${logMessage} (${progressObj.transferred}/${progressObj.total})`; 40 logMessage = `${logMessage} (${progressObj.transferred}/${progressObj.total})`;
41 41
42 console.log(logMessage); 42 debug(logMessage);
43 }); 43 });
44 44
45 autoUpdater.on('update-downloaded', () => { 45 autoUpdater.on('update-downloaded', () => {
46 console.log('update-downloaded'); 46 debug('update-downloaded');
47 params.mainWindow.webContents.send('autoUpdate', { downloaded: true }); 47 params.mainWindow.webContents.send('autoUpdate', { downloaded: true });
48 }); 48 });
49 49
50 autoUpdater.on('error', () => { 50 autoUpdater.on('error', () => {
51 console.log('update-error'); 51 debug('update-error');
52 params.mainWindow.webContents.send('autoUpdate', { error: true }); 52 params.mainWindow.webContents.send('autoUpdate', { error: true });
53 }); 53 });
54 } 54 }
diff --git a/src/electron/ipc-api/download.js b/src/electron/ipc-api/download.js
new file mode 100644
index 000000000..9e504834d
--- /dev/null
+++ b/src/electron/ipc-api/download.js
@@ -0,0 +1,43 @@
1import { ipcMain, dialog } from 'electron';
2import { download } from 'electron-dl';
3import mime from 'mime-types';
4import fs from 'fs-extra';
5
6const debug = require('debug')('Franz:ipcApi:download');
7
8function decodeBase64Image(dataString) {
9 const matches = dataString.match(/^data:([A-Za-z-+/]+);base64,(.+)$/);
10
11 if (matches.length !== 3) {
12 return new Error('Invalid input string');
13 }
14
15 return new Buffer(matches[2], 'base64');
16}
17
18export default (params) => {
19 ipcMain.on('download-file', async (event, { url, content, fileOptions = {} }) => {
20 try {
21 if (!content) {
22 const dl = await download(params.mainWindow, url, {
23 saveAs: true,
24 });
25 debug('File saved to', dl.getSavePath());
26 } else {
27 const extension = mime.extension(fileOptions.mime);
28 const filename = `${fileOptions.name}.${extension}`;
29
30 dialog.showSaveDialog(params.mainWindow, {
31 defaultPath: filename,
32 }, (name) => {
33 const binaryImage = decodeBase64Image(content);
34 fs.writeFileSync(name, binaryImage, 'binary');
35
36 debug('File blob saved to', name);
37 });
38 }
39 } catch (e) {
40 console.error(e);
41 }
42 });
43};
diff --git a/src/electron/ipc-api/index.js b/src/electron/ipc-api/index.js
index 4ea6d1475..be8e0815a 100644
--- a/src/electron/ipc-api/index.js
+++ b/src/electron/ipc-api/index.js
@@ -1,9 +1,11 @@
1import autoUpdate from './autoUpdate'; 1import autoUpdate from './autoUpdate';
2import settings from './settings'; 2import settings from './settings';
3import appIndicator from './appIndicator'; 3import appIndicator from './appIndicator';
4import download from './download';
4 5
5export default (params) => { 6export default (params) => {
6 settings(params); 7 settings(params);
7 autoUpdate(params); 8 autoUpdate(params);
8 appIndicator(params); 9 appIndicator(params);
10 download(params);
9}; 11};
diff --git a/src/electron/ipc-api/settings.js b/src/electron/ipc-api/settings.js
index 3eab68a91..ce006bb92 100644
--- a/src/electron/ipc-api/settings.js
+++ b/src/electron/ipc-api/settings.js
@@ -1,11 +1,15 @@
1import { ipcMain } from 'electron'; 1import { ipcMain } from 'electron';
2 2
3export default (params) => { 3export default (params) => {
4 ipcMain.on('getAppSettings', () => { 4 ipcMain.on('getAppSettings', (event, type) => {
5 params.mainWindow.webContents.send('appSettings', params.settings.all); 5 console.log('getAppSettings', type, params.settings[type].all);
6 params.mainWindow.webContents.send('appSettings', {
7 type,
8 data: params.settings[type].all,
9 });
6 }); 10 });
7 11
8 ipcMain.on('updateAppSettings', (event, args) => { 12 ipcMain.on('updateAppSettings', (event, args) => {
9 params.settings.set(args); 13 params.settings[args.type].set(args.data);
10 }); 14 });
11}; 15};
diff --git a/src/features/delayApp/Component.js b/src/features/delayApp/Component.js
new file mode 100644
index 000000000..403340c7b
--- /dev/null
+++ b/src/features/delayApp/Component.js
@@ -0,0 +1,88 @@
1import React, { Component } from 'react';
2import PropTypes from 'prop-types';
3import { inject, observer } from 'mobx-react';
4import { defineMessages, intlShape } from 'react-intl';
5import injectSheet from 'react-jss';
6
7import Button from '../../components/ui/Button';
8
9import { config } from './';
10import styles from './styles';
11
12const messages = defineMessages({
13 headline: {
14 id: 'feature.delayApp.headline',
15 defaultMessage: '!!!Please purchase license to skip waiting',
16 },
17 action: {
18 id: 'feature.delayApp.action',
19 defaultMessage: '!!!Get a Franz Supporter License',
20 },
21 text: {
22 id: 'feature.delayApp.text',
23 defaultMessage: '!!!Franz will continue in {seconds} seconds.',
24 },
25});
26
27export default @inject('actions') @injectSheet(styles) @observer class DelayApp extends Component {
28 static propTypes = {
29 // eslint-disable-next-line
30 classes: PropTypes.object.isRequired,
31 };
32
33 static contextTypes = {
34 intl: intlShape,
35 };
36
37 state = {
38 countdown: config.delayDuration,
39 }
40
41 componentDidMount() {
42 this.countdownInterval = setInterval(() => {
43 this.setState({
44 countdown: this.state.countdown - this.countdownIntervalTimeout,
45 });
46
47 if (this.state.countdown <= 0) {
48 // reload();
49 clearInterval(this.countdownInterval);
50 }
51 }, this.countdownIntervalTimeout);
52 }
53
54 componentWillUnmount() {
55 clearInterval(this.countdownInterval);
56 }
57
58 countdownInterval = null;
59 countdownIntervalTimeout = 1000;
60
61 render() {
62 const { classes, actions } = this.props;
63 const { intl } = this.context;
64
65 return (
66 <div className={`${classes.container}`}>
67 <h1 className={classes.headline}>{intl.formatMessage(messages.headline)}</h1>
68 <Button
69 label={intl.formatMessage(messages.action)}
70 className={classes.button}
71 buttonType="inverted"
72 onClick={() => actions.ui.openSettings({ path: 'user' })}
73 />
74 <p className="footnote">{intl.formatMessage(messages.text, {
75 seconds: this.state.countdown / 1000,
76 })}</p>
77 </div>
78 );
79 }
80}
81
82DelayApp.wrappedComponent.propTypes = {
83 actions: PropTypes.shape({
84 ui: PropTypes.shape({
85 openSettings: PropTypes.func.isRequired,
86 }).isRequired,
87 }).isRequired,
88};
diff --git a/src/features/delayApp/index.js b/src/features/delayApp/index.js
new file mode 100644
index 000000000..9ffa1d2fd
--- /dev/null
+++ b/src/features/delayApp/index.js
@@ -0,0 +1,70 @@
1import { autorun, observable, reaction } from 'mobx';
2import moment from 'moment';
3import DelayAppComponent from './Component';
4
5import { DEFAULT_FEATURES_CONFIG } from '../../config';
6
7const debug = require('debug')('Franz:feature:delayApp');
8
9export const config = {
10 delayOffset: DEFAULT_FEATURES_CONFIG.needToWaitToProceedConfig.delayOffset,
11 delayDuration: DEFAULT_FEATURES_CONFIG.needToWaitToProceedConfig.wait,
12};
13
14export const state = observable({
15 isDelayAppScreenVisible: DEFAULT_FEATURES_CONFIG.needToWaitToProceed,
16});
17
18function setVisibility(value) {
19 Object.assign(state, {
20 isDelayAppScreenVisible: value,
21 });
22}
23
24export default function init(stores) {
25 reaction(
26 () => stores.features.features.needToWaitToProceed,
27 (enabled, r) => {
28 if (enabled) {
29 debug('Initializing `delayApp` feature');
30
31 // Dispose the reaction to run this only once
32 r.dispose();
33
34 const { needToWaitToProceedConfig: globalConfig } = stores.features.features;
35
36 let shownAfterLaunch = false;
37 let timeLastDelay = moment();
38
39 config.delayOffset = globalConfig.delayOffset !== undefined ? globalConfig.delayOffset : DEFAULT_FEATURES_CONFIG.needToWaitToProceedConfig.delayOffset;
40 config.delayDuration = globalConfig.wait !== undefined ? globalConfig.wait : DEFAULT_FEATURES_CONFIG.needToWaitToProceedConfig.wait;
41
42 autorun(() => {
43 if (stores.services.all.length === 0) {
44 shownAfterLaunch = true;
45 return;
46 }
47
48 const diff = moment().diff(timeLastDelay);
49 if ((stores.app.isFocused && diff >= config.delayOffset) || !shownAfterLaunch) {
50 debug(`App will be delayed for ${config.delayDuration / 1000}s`);
51
52 setVisibility(true);
53
54 timeLastDelay = moment();
55 shownAfterLaunch = true;
56
57 setTimeout(() => {
58 debug('Resetting app delay');
59
60 setVisibility(false);
61 }, DEFAULT_FEATURES_CONFIG.needToWaitToProceedConfig.wait + 1000); // timer needs to be able to hit 0
62 }
63 });
64 }
65 },
66 );
67}
68
69export const Component = DelayAppComponent;
70
diff --git a/src/features/delayApp/styles.js b/src/features/delayApp/styles.js
new file mode 100644
index 000000000..5c214cfdf
--- /dev/null
+++ b/src/features/delayApp/styles.js
@@ -0,0 +1,23 @@
1export default theme => ({
2 container: {
3 background: theme.colorBackground,
4 position: 'absolute',
5 top: 0,
6 width: '100%',
7 display: 'flex',
8 'flex-direction': 'column',
9 'align-items': 'center',
10 'justify-content': 'center',
11 'z-index': 150,
12 },
13 headline: {
14 color: theme.colorHeadline,
15 margin: [25, 0, 40],
16 'max-width': 500,
17 'text-align': 'center',
18 'line-height': '1.3em',
19 },
20 button: {
21 margin: [40, 0, 20],
22 },
23});
diff --git a/src/features/serviceProxy/index.js b/src/features/serviceProxy/index.js
new file mode 100644
index 000000000..cad9844fd
--- /dev/null
+++ b/src/features/serviceProxy/index.js
@@ -0,0 +1,45 @@
1import { autorun, observable } from 'mobx';
2import { remote } from 'electron';
3
4import { DEFAULT_FEATURES_CONFIG } from '../../config';
5
6const { session } = remote;
7
8const debug = require('debug')('Franz:feature:serviceProxy');
9
10export const config = observable({
11 isEnabled: DEFAULT_FEATURES_CONFIG.isServiceProxyEnabled,
12 isPremium: DEFAULT_FEATURES_CONFIG.isServiceProxyPremiumFeature,
13});
14
15export default function init(stores) {
16 debug('Initializing `serviceProxy` feature');
17
18 autorun(() => {
19 const { isServiceProxyEnabled, isServiceProxyPremiumFeature } = stores.features.features;
20
21 config.isEnabled = isServiceProxyEnabled !== undefined ? isServiceProxyEnabled : DEFAULT_FEATURES_CONFIG.isServiceProxyEnabled;
22 config.isPremium = isServiceProxyPremiumFeature !== undefined ? isServiceProxyPremiumFeature : DEFAULT_FEATURES_CONFIG.isServiceProxyPremiumFeature;
23
24 const services = stores.services.all;
25 const isPremiumUser = stores.user.data.isPremium;
26
27 services.forEach((service) => {
28 const s = session.fromPartition(`persist:service-${service.id}`);
29 let proxyHost = 'direct://';
30
31 if (config.isEnabled && (isPremiumUser || !config.isPremium)) {
32 const serviceProxyConfig = stores.settings.proxy[service.id];
33
34 if (serviceProxyConfig && serviceProxyConfig.isEnabled && serviceProxyConfig.host) {
35 proxyHost = serviceProxyConfig.host;
36 }
37 }
38
39 s.setProxy({ proxyRules: proxyHost }, (e) => {
40 debug(`Using proxy "${proxyHost}" for "${service.name}" (${service.id})`, e);
41 });
42 });
43 });
44}
45
diff --git a/src/features/spellchecker/index.js b/src/features/spellchecker/index.js
new file mode 100644
index 000000000..63506103c
--- /dev/null
+++ b/src/features/spellchecker/index.js
@@ -0,0 +1,27 @@
1import { autorun, observable } from 'mobx';
2
3import { DEFAULT_FEATURES_CONFIG } from '../../config';
4
5const debug = require('debug')('Franz:feature:spellchecker');
6
7export const config = observable({
8 isPremiumFeature: DEFAULT_FEATURES_CONFIG.isSpellcheckerPremiumFeature,
9});
10
11export default function init(stores) {
12 debug('Initializing `spellchecker` feature');
13
14 autorun(() => {
15 const { isSpellcheckerPremiumFeature } = stores.features.features;
16
17 config.isPremiumFeature = isSpellcheckerPremiumFeature !== undefined ? isSpellcheckerPremiumFeature : DEFAULT_FEATURES_CONFIG.isSpellcheckerPremiumFeature;
18
19 if (!stores.user.data.isPremium && config.isPremiumFeature && stores.settings.app.enableSpellchecking) {
20 debug('Override settings.spellcheckerEnabled flag to false');
21
22 Object.assign(stores.settings.app, {
23 enableSpellchecking: false,
24 });
25 }
26 });
27}
diff --git a/src/helpers/i18n-helpers.js b/src/helpers/i18n-helpers.js
new file mode 100644
index 000000000..00a2061c1
--- /dev/null
+++ b/src/helpers/i18n-helpers.js
@@ -0,0 +1,27 @@
1export function getLocale({ locale, locales, defaultLocale, fallbackLocale }) {
2 let localeStr = locale;
3 if (locales[locale] === undefined) {
4 let localeFuzzy;
5 Object.keys(locales).forEach((localStr) => {
6 if (locales && Object.hasOwnProperty.call(locales, localStr)) {
7 if (locale.substring(0, 2) === localStr.substring(0, 2)) {
8 localeFuzzy = localStr;
9 }
10 }
11 });
12
13 if (localeFuzzy !== undefined) {
14 localeStr = localeFuzzy;
15 }
16 }
17
18 if (locales[localeStr] === undefined) {
19 localeStr = defaultLocale;
20 }
21
22 if (!localeStr) {
23 localeStr = fallbackLocale;
24 }
25
26 return localeStr;
27}
diff --git a/src/helpers/visibility-helper.js b/src/helpers/visibility-helper.js
new file mode 100644
index 000000000..8456c4ecf
--- /dev/null
+++ b/src/helpers/visibility-helper.js
@@ -0,0 +1,27 @@
1export function onVisibilityChange(cb) {
2 let isVisible = true;
3
4 if (!cb) {
5 throw new Error('no callback given');
6 }
7
8 function focused() {
9 if (!isVisible) {
10 cb(isVisible = true);
11 }
12 }
13
14 function unfocused() {
15 if (isVisible) {
16 cb(isVisible = false);
17 }
18 }
19
20 document.addEventListener('visibilitychange', () => { (document.hidden ? unfocused : focused)(); });
21
22 window.onpageshow = focused;
23 window.onfocus = focused;
24
25 window.onpagehid = unfocused;
26 window.onblur = unfocused;
27}
diff --git a/src/i18n/languages.js b/src/i18n/languages.js
index 34b369da7..b262df01e 100644
--- a/src/i18n/languages.js
+++ b/src/i18n/languages.js
@@ -27,45 +27,43 @@ export const APP_LOCALES = {
27 es: 'Español', 27 es: 'Español',
28}; 28};
29 29
30export default APP_LOCALES; 30// Hunspell compatible keys
31export const SPELLCHECKER_LOCALES = {
32 'bg-bg': 'българÑки език',
33 'ca-es': 'Català',
34 'cs-cz': 'Čeština',
35 'da-dk': 'Dansk',
36 'de-de': 'Deutsch',
37 'el-gr': 'λληνικά (Greek)',
38 'en-us': 'English',
39 'es-es': 'Español',
40 'et-ee': 'Estonian',
41 'fa-ir': 'Ùارسی (Persian)',
42 'fo-fo': 'Faroese',
43 'fr-fr': 'Français',
44 'he-il': 'עברית (Hebrew)',
45 'hr-hr': 'Hrvatski jezik',
46 'hu-hu': 'Magyar',
47 'it-it': 'Italiano',
48 ko: 'Korean',
49 'lt-lt': 'Lietuvių kalba',
50 'lv-lv': 'Latviešu valoda',
51 'nb-no': 'Norsk bokmål',
52 'nl-nl': 'Nederlands',
53 'pl-pl': 'Język polski',
54 'pt-br': 'Português (Brazil)',
55 'pt-pt': 'Português',
56 'ro-ro': 'Limba română',
57 'ru-ru': 'РуÑÑкий (Russian)',
58 'sk-sk': 'SlovenÄina',
59 'sl-si': 'Slovenski jezik',
60 sr: 'СрпÑки језик (Serbian)',
61 'sv-se': 'Svenska',
62 'ta-in': 'தமிழ௠(Tamil)',
63 'tg-tg': 'Тоҷикӣ (Tajik)',
64 tr: 'Türkçe',
65 'uk-ua': 'УкраїнÑька (Ukrainian)',
66 vi: 'Tiếng Việt',
67};
31 68
32// export const SPELLCHECKER_LOCALES = { 69export default APP_LOCALES;
33// af: 'Afrikaans',
34// sq: 'Albanian',
35// ar: 'Arabic',
36// bg: 'Bulgarian',
37// zh: 'Chinese',
38// hr: 'Croatian',
39// cs: 'Czech',
40// da: 'Danish',
41// nl: 'Dutch',
42// en: 'English',
43// 'en-AU': 'English (AU)',
44// 'en-CA': 'English (CA)',
45// 'en-GB': 'English (GB)',
46// fi: 'Finnish',
47// fr: 'French',
48// ka: 'Georgian',
49// de: 'German',
50// el: 'Greek, Modern',
51// hi: 'Hindi',
52// hu: 'Hungarian',
53// id: 'Indonesian',
54// it: 'Italian',
55// ja: 'Japanese',
56// jv: 'Javanese',
57// ko: 'Korean',
58// lt: 'Lithuanian',
59// lv: 'Latvian',
60// ms: 'Malay',
61// no: 'Norwegian',
62// pl: 'Polish',
63// pt: 'Portuguese',
64// ro: 'Romanian, Moldavian, Moldovan',
65// ru: 'Russian',
66// sk: 'Slovak',
67// es: 'Spanish',
68// sv: 'Swedish',
69// uk: 'Ukrainian',
70// vi: 'Vietnamese',
71// };
diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json
index 4ea3eb1a7..117e66d76 100644
--- a/src/i18n/locales/ca.json
+++ b/src/i18n/locales/ca.json
@@ -1,4 +1,7 @@
1{ 1{
2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
2 "global.api.unhealthy" : "No es pot connectar amb els serveis en línia de Franz", 5 "global.api.unhealthy" : "No es pot connectar amb els serveis en línia de Franz",
3 "global.notConnectedToTheInternet" : "No esteu connectat a Internet.", 6 "global.notConnectedToTheInternet" : "No esteu connectat a Internet.",
4 "import.headline" : "Importa els teus serveis Franz 4", 7 "import.headline" : "Importa els teus serveis Franz 4",
@@ -7,23 +10,23 @@
7 "import.submit.label" : "Importa serveis", 10 "import.submit.label" : "Importa serveis",
8 "infobar.buttonChangelog" : "Que hi ha de nou?", 11 "infobar.buttonChangelog" : "Que hi ha de nou?",
9 "infobar.buttonInstallUpdate" : "Reinicia i instal·la l'actualització", 12 "infobar.buttonInstallUpdate" : "Reinicia i instal·la l'actualització",
10 "infobar.buttonReloadServices" : "Recarrega serveis", 13 "infobar.buttonReloadServices" : "Recarrega els serveis",
11 "infobar.requiredRequestsFailed" : "No s'han pogut carregar els serveis i la informació de l'usuari", 14 "infobar.requiredRequestsFailed" : "No s'han pogut carregar els serveis i la informació de l'usuari",
12 "infobar.servicesUpdated" : "Els vostres serveis s'han actualitzat.", 15 "infobar.servicesUpdated" : "Els teus serveis s'han actualitzat.",
13 "infobar.updateAvailable" : "Hi ha disponible una nova actualització per a Franz.", 16 "infobar.updateAvailable" : "Hi ha disponible una nova actualització per a Franz.",
14 "invite.email.label" : "Correu electrònic", 17 "invite.email.label" : "Correu electrònic",
15 "invite.headline.friends" : "Convida 3 dels teus amics o companys", 18 "invite.headline.friends" : "Convida a tres dels teus amics o companys",
16 "invite.name.label" : "Nom", 19 "invite.name.label" : "Nom",
17 "invite.skip.label" : "Vull fer-ho més tard", 20 "invite.skip.label" : "Ho vull fer més tard",
18 "invite.submit.label" : "Enviar invitacions", 21 "invite.submit.label" : "Enviar invitacions",
19 "invite.successInfo" : "Invitacions enviades correctament", 22 "invite.successInfo" : "Invitacions enviades correctament",
20 "login.email.label" : "Correu electrònic", 23 "login.email.label" : "Correu electrònic",
21 "login.headline" : "Accedir", 24 "login.headline" : "Accedir-hi",
22 "login.invalidCredentials" : "El correu electrònic o la contrasenya no són vàlids", 25 "login.invalidCredentials" : "El correu electrònic o la contrasenya no són vàlids",
23 "login.link.password" : "Restablir contrasenya", 26 "login.link.password" : "Restablir la contrasenya",
24 "login.link.signup" : "Crea un compte gratuït", 27 "login.link.signup" : "Crea un compte gratuït",
25 "login.password.label" : "Contrasenya", 28 "login.password.label" : "Contrasenya",
26 "login.serverLogout" : "La teva sessió ha caducat, torna a iniciar la sessió.", 29 "login.serverLogout" : "La teva sessió ha caducat, torna-la a iniciar.",
27 "login.submit.label" : "Accedir", 30 "login.submit.label" : "Accedir",
28 "login.tokenExpired" : "La teva sessió ha caducat, torna a iniciar la sessió.", 31 "login.tokenExpired" : "La teva sessió ha caducat, torna a iniciar la sessió.",
29 "menu.app.about" : "Sobre Franz", 32 "menu.app.about" : "Sobre Franz",
@@ -76,6 +79,7 @@
76 "password.noUser" : "No s'ha trobat cap usuari amb aquesta adreça de correu electrònic", 79 "password.noUser" : "No s'ha trobat cap usuari amb aquesta adreça de correu electrònic",
77 "password.submit.label" : "Enviar", 80 "password.submit.label" : "Enviar",
78 "password.successInfo" : "Comproveu el vostre correu electrònic", 81 "password.successInfo" : "Comproveu el vostre correu electrònic",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "Donar suport a Franz", 83 "pricing.headline" : "Donar suport a Franz",
80 "pricing.link.skipPayment" : "No vull donar suport al desenvolupament de Franz.", 84 "pricing.link.skipPayment" : "No vull donar suport al desenvolupament de Franz.",
81 "pricing.submit.label" : "Vull donar suport al desenvolupament de Franz", 85 "pricing.submit.label" : "Vull donar suport al desenvolupament de Franz",
@@ -116,7 +120,8 @@
116 "settings.app.form.autoLaunchInBackground" : "Obrir en segon plà", 120 "settings.app.form.autoLaunchInBackground" : "Obrir en segon plà",
117 "settings.app.form.autoLaunchOnStart" : "Iniciar Franz a l'inici", 121 "settings.app.form.autoLaunchOnStart" : "Iniciar Franz a l'inici",
118 "settings.app.form.beta" : "Inclou versions beta", 122 "settings.app.form.beta" : "Inclou versions beta",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", 123 "settings.app.form.darkMode" : "Join the Dark Side",
124 "settings.app.form.enableGPUAcceleration" : "Activar acceleració GPU",
120 "settings.app.form.enableMenuBar" : "Mostra Franz a la barra de menú", 125 "settings.app.form.enableMenuBar" : "Mostra Franz a la barra de menú",
121 "settings.app.form.enableSpellchecking" : "Habilita la comprobació ortogràfica", 126 "settings.app.form.enableSpellchecking" : "Habilita la comprobació ortogràfica",
122 "settings.app.form.enableSystemTray" : "Mostra Franz a la safata del sistema", 127 "settings.app.form.enableSystemTray" : "Mostra Franz a la safata del sistema",
@@ -126,6 +131,7 @@
126 "settings.app.form.runInBackground" : "Mantén a Franz en segon pla en tancar la finestra", 131 "settings.app.form.runInBackground" : "Mantén a Franz en segon pla en tancar la finestra",
127 "settings.app.form.showDisabledServices" : "Mostra les pestanyes dels serveis desactivats", 132 "settings.app.form.showDisabledServices" : "Mostra les pestanyes dels serveis desactivats",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "Mostra la insígnia de missatges no llegits quan les notificacions estiguin desactivades", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "Mostra la insígnia de missatges no llegits quan les notificacions estiguin desactivades",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "Configuració", 135 "settings.app.headline" : "Configuració",
130 "settings.app.headlineAdvanced" : "Avançat", 136 "settings.app.headlineAdvanced" : "Avançat",
131 "settings.app.headlineAppearance" : "Aparença", 137 "settings.app.headlineAppearance" : "Aparença",
@@ -166,6 +172,7 @@
166 "settings.service.form.editServiceHeadline" : "Edita {name}", 172 "settings.service.form.editServiceHeadline" : "Edita {name}",
167 "settings.service.form.enableAudio" : "Activa l'àudio", 173 "settings.service.form.enableAudio" : "Activa l'àudio",
168 "settings.service.form.enableBadge" : "Mostra les insígnies als missatges no llegits.", 174 "settings.service.form.enableBadge" : "Mostra les insígnies als missatges no llegits.",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "Activa les notificacions", 176 "settings.service.form.enableNotification" : "Activa les notificacions",
170 "settings.service.form.enableService" : "Activa el servei", 177 "settings.service.form.enableService" : "Activa el servei",
171 "settings.service.form.headlineBadges" : "Insígnies de missatges no llegits", 178 "settings.service.form.headlineBadges" : "Insígnies de missatges no llegits",
@@ -178,6 +185,12 @@
178 "settings.service.form.indirectMessages" : "Mostra la insígnia de missatge per a tots els missatges nous", 185 "settings.service.form.indirectMessages" : "Mostra la insígnia de missatge per a tots els missatges nous",
179 "settings.service.form.isMutedInfo" : "Quan es desactiva, tots els sons de notificació i reproducció d'àudio es silenciaran", 186 "settings.service.form.isMutedInfo" : "Quan es desactiva, tots els sons de notificació i reproducció d'àudio es silenciaran",
180 "settings.service.form.name" : "Nom", 187 "settings.service.form.name" : "Nom",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "Desa el servei", 194 "settings.service.form.saveButton" : "Desa el servei",
182 "settings.service.form.tabHosted" : "Allotjat", 195 "settings.service.form.tabHosted" : "Allotjat",
183 "settings.service.form.tabOnPremise" : "Allotjat per si mateix â­ï¸", 196 "settings.service.form.tabOnPremise" : "Allotjat per si mateix â­ï¸",
@@ -220,10 +233,12 @@
220 "subscription.euTaxInfo" : "Residents d'EU: es poden aplicar impostos locals", 233 "subscription.euTaxInfo" : "Residents d'EU: es poden aplicar impostos locals",
221 "subscription.features.ads" : "Sense anuncis, mai!", 234 "subscription.features.ads" : "Sense anuncis, mai!",
222 "subscription.features.comingSoon" : "properament", 235 "subscription.features.comingSoon" : "properament",
223 "subscription.features.customServices" : "Serveis privats per a vostè i el seu equip",
224 "subscription.features.encryptedSync" : "Sincronització de sessió xifrada", 236 "subscription.features.encryptedSync" : "Sincronització de sessió xifrada",
237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "Afegiu serveis en premissa\/allotjats com HipChat", 238 "subscription.features.onpremise" : "Afegiu serveis en premissa\/allotjats com HipChat",
226 "subscription.features.vpn" : "Compatibilitat amb proxy i VPN", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "El compte de pagament Franz Premium Supporter inclou", 242 "subscription.includedFeatures" : "El compte de pagament Franz Premium Supporter inclou",
228 "subscription.paymentSessionError" : "No s'ha pogut inicialitzar el formulari de pagament", 243 "subscription.paymentSessionError" : "No s'ha pogut inicialitzar el formulari de pagament",
229 "subscription.submit.label" : "Vull donar suport al desenvolupament de Franz", 244 "subscription.submit.label" : "Vull donar suport al desenvolupament de Franz",
diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json
index ed4c7a468..eb8088e28 100644
--- a/src/i18n/locales/cs.json
+++ b/src/i18n/locales/cs.json
@@ -1,5 +1,8 @@
1{ 1{
2 "global.api.unhealthy" : "Nemůžeme Franz připojit k online službám", 2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
5 "global.api.unhealthy" : "Nemůžeme připojit Franz k online službám",
3 "global.notConnectedToTheInternet" : "Připojení k internetu není k dispozici.", 6 "global.notConnectedToTheInternet" : "Připojení k internetu není k dispozici.",
4 "import.headline" : "Importovat služby z Franz 4", 7 "import.headline" : "Importovat služby z Franz 4",
5 "import.notSupportedHeadline" : "Služby nejsou podporovány ve verzi Franz 5", 8 "import.notSupportedHeadline" : "Služby nejsou podporovány ve verzi Franz 5",
@@ -11,13 +14,13 @@
11 "infobar.requiredRequestsFailed" : "Není možné nahrát služby a informace o uživateli", 14 "infobar.requiredRequestsFailed" : "Není možné nahrát služby a informace o uživateli",
12 "infobar.servicesUpdated" : "Vaše služby byly aktualizovány", 15 "infobar.servicesUpdated" : "Vaše služby byly aktualizovány",
13 "infobar.updateAvailable" : "Nová aktualizace Franz je k dispozici", 16 "infobar.updateAvailable" : "Nová aktualizace Franz je k dispozici",
14 "invite.email.label" : "Email", 17 "invite.email.label" : "E-mailová adresa",
15 "invite.headline.friends" : "Pozvěte 3 přátele nebo kolegy", 18 "invite.headline.friends" : "Pozvěte 3 přátele nebo kolegy",
16 "invite.name.label" : "Jméno", 19 "invite.name.label" : "Jméno",
17 "invite.skip.label" : "Nechat na později", 20 "invite.skip.label" : "Nechat na později",
18 "invite.submit.label" : "Poslat pozvánky", 21 "invite.submit.label" : "Poslat pozvánky",
19 "invite.successInfo" : "Pozvánky byly úspěšně odeslány.", 22 "invite.successInfo" : "Pozvánky byly úspěšně odeslány.",
20 "login.email.label" : "Email", 23 "login.email.label" : "E-mailová adresa",
21 "login.headline" : "Přihlásit se", 24 "login.headline" : "Přihlásit se",
22 "login.invalidCredentials" : "Email nebo heslo nesouhlasí", 25 "login.invalidCredentials" : "Email nebo heslo nesouhlasí",
23 "login.link.password" : "Obnovit heslo", 26 "login.link.password" : "Obnovit heslo",
@@ -76,6 +79,7 @@
76 "password.noUser" : "Pro emailovou adresu nebyl nalezený žádný uživatel", 79 "password.noUser" : "Pro emailovou adresu nebyl nalezený žádný uživatel",
77 "password.submit.label" : "Odeslat", 80 "password.submit.label" : "Odeslat",
78 "password.successInfo" : "Prosím, zkontrolujte svůj e-mail", 81 "password.successInfo" : "Prosím, zkontrolujte svůj e-mail",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "Podpořit Franz", 83 "pricing.headline" : "Podpořit Franz",
80 "pricing.link.skipPayment" : "Nechci podporovat vývoj aplikace Franz.", 84 "pricing.link.skipPayment" : "Nechci podporovat vývoj aplikace Franz.",
81 "pricing.submit.label" : "Chci podpořit vývoj aplikace Franz", 85 "pricing.submit.label" : "Chci podpořit vývoj aplikace Franz",
@@ -116,6 +120,7 @@
116 "settings.app.form.autoLaunchInBackground" : "Spustit na pozadí", 120 "settings.app.form.autoLaunchInBackground" : "Spustit na pozadí",
117 "settings.app.form.autoLaunchOnStart" : "Spustit Franz při startu", 121 "settings.app.form.autoLaunchOnStart" : "Spustit Franz při startu",
118 "settings.app.form.beta" : "Zahrnout beta verze", 122 "settings.app.form.beta" : "Zahrnout beta verze",
123 "settings.app.form.darkMode" : "Join the Dark Side",
119 "settings.app.form.enableGPUAcceleration" : "Aktivovat GPU zrychlení", 124 "settings.app.form.enableGPUAcceleration" : "Aktivovat GPU zrychlení",
120 "settings.app.form.enableMenuBar" : "Zobraz Franz v Menu nabídce", 125 "settings.app.form.enableMenuBar" : "Zobraz Franz v Menu nabídce",
121 "settings.app.form.enableSpellchecking" : "Zapnout kontrolu pravopisu", 126 "settings.app.form.enableSpellchecking" : "Zapnout kontrolu pravopisu",
@@ -126,6 +131,7 @@
126 "settings.app.form.runInBackground" : "Ponechat Franze v pozadí při zavírání okna", 131 "settings.app.form.runInBackground" : "Ponechat Franze v pozadí při zavírání okna",
127 "settings.app.form.showDisabledServices" : "Zobrazit záložky vypnutých služeb", 132 "settings.app.form.showDisabledServices" : "Zobrazit záložky vypnutých služeb",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "Zobrazit odznak pro nepÅ™eÄtené zprávy když jsou upozornÄ›ní vypnutá", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "Zobrazit odznak pro nepÅ™eÄtené zprávy když jsou upozornÄ›ní vypnutá",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "Nastavení", 135 "settings.app.headline" : "Nastavení",
130 "settings.app.headlineAdvanced" : "PokroÄilé", 136 "settings.app.headlineAdvanced" : "PokroÄilé",
131 "settings.app.headlineAppearance" : "Vzhled", 137 "settings.app.headlineAppearance" : "Vzhled",
@@ -166,6 +172,7 @@
166 "settings.service.form.editServiceHeadline" : "Upravit {name}", 172 "settings.service.form.editServiceHeadline" : "Upravit {name}",
167 "settings.service.form.enableAudio" : "Zapnout zvuk", 173 "settings.service.form.enableAudio" : "Zapnout zvuk",
168 "settings.service.form.enableBadge" : "Ukázat odznaky nepÅ™eÄtených zpráv", 174 "settings.service.form.enableBadge" : "Ukázat odznaky nepÅ™eÄtených zpráv",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "Povolit upozornění", 176 "settings.service.form.enableNotification" : "Povolit upozornění",
170 "settings.service.form.enableService" : "Povolit službu", 177 "settings.service.form.enableService" : "Povolit službu",
171 "settings.service.form.headlineBadges" : "Odznaky nepÅ™eÄtených zpráv", 178 "settings.service.form.headlineBadges" : "Odznaky nepÅ™eÄtených zpráv",
@@ -178,6 +185,12 @@
178 "settings.service.form.indirectMessages" : "Zobrazovat znak zprávy pro všechny nové zprávy", 185 "settings.service.form.indirectMessages" : "Zobrazovat znak zprávy pro všechny nové zprávy",
179 "settings.service.form.isMutedInfo" : "Pokud je vypnuto, všechny zvuky notifikací a jiného audia budou ztišeny", 186 "settings.service.form.isMutedInfo" : "Pokud je vypnuto, všechny zvuky notifikací a jiného audia budou ztišeny",
180 "settings.service.form.name" : "Jméno", 187 "settings.service.form.name" : "Jméno",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "Uložit službu", 194 "settings.service.form.saveButton" : "Uložit službu",
182 "settings.service.form.tabHosted" : "Hostováno", 195 "settings.service.form.tabHosted" : "Hostováno",
183 "settings.service.form.tabOnPremise" : "SamostatnÄ› hostované â­ï¸", 196 "settings.service.form.tabOnPremise" : "SamostatnÄ› hostované â­ï¸",
@@ -220,10 +233,12 @@
220 "subscription.euTaxInfo" : "Pro obyvatelé EU: mohou být aplikovány lokální daně", 233 "subscription.euTaxInfo" : "Pro obyvatelé EU: mohou být aplikovány lokální daně",
221 "subscription.features.ads" : "Žádné reklamy, nikdy!", 234 "subscription.features.ads" : "Žádné reklamy, nikdy!",
222 "subscription.features.comingSoon" : "již brzy", 235 "subscription.features.comingSoon" : "již brzy",
223 "subscription.features.customServices" : "Privátní služby pro vás a váš tým",
224 "subscription.features.encryptedSync" : "Šifrovaná synchronizace relací", 236 "subscription.features.encryptedSync" : "Šifrovaná synchronizace relací",
237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "Přidat hostované služby jako HipChat", 238 "subscription.features.onpremise" : "Přidat hostované služby jako HipChat",
226 "subscription.features.vpn" : "Proxy & VPN podpora", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "Placený úÄet Premium Supporter Franz zahrnuje", 242 "subscription.includedFeatures" : "Placený úÄet Premium Supporter Franz zahrnuje",
228 "subscription.paymentSessionError" : "Nebylo možné inicializovat platbu od", 243 "subscription.paymentSessionError" : "Nebylo možné inicializovat platbu od",
229 "subscription.submit.label" : "Chci podpořit vývoj aplikace Franz", 244 "subscription.submit.label" : "Chci podpořit vývoj aplikace Franz",
diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json
index fa61d26d4..6aa909519 100644
--- a/src/i18n/locales/de.json
+++ b/src/i18n/locales/de.json
@@ -1,37 +1,40 @@
1{ 1{
2 "feature.delayApp.action" : "Upgrade deinen Account",
3 "feature.delayApp.headline" : "Erspare dir das Warten mit einer Franz Supporter Lizenz",
4 "feature.delayApp.text" : "Es geht in {seconds} Sekunden weiter.",
2 "global.api.unhealthy" : "Verbindung mit dem Franz Online Service fehlgeschlagen", 5 "global.api.unhealthy" : "Verbindung mit dem Franz Online Service fehlgeschlagen",
3 "global.notConnectedToTheInternet" : "Du bist nicht mit dem Internet verbunden.", 6 "global.notConnectedToTheInternet" : "Du bist nicht mit dem Internet verbunden.",
4 "import.headline" : "Deine Franz 4 Dienste importieren", 7 "import.headline" : "Deine Franz 4 Dienste importieren",
5 "import.notSupportedHeadline" : "Dienste, die noch nicht von Franz 5 unterstützt werden", 8 "import.notSupportedHeadline" : "Dienste, die noch nicht von Franz 5 unterstützt werden",
6 "import.skip.label" : "Ich möchte Dienste selbst hinzufügen", 9 "import.skip.label" : "Ich möchte Dienste selbst hinzufügen",
7 "import.submit.label" : "Dienste importieren", 10 "import.submit.label" : "Dienste importieren",
8 "infobar.buttonChangelog" : "Was gibt es neues?", 11 "infobar.buttonChangelog" : "Was ist neu?",
9 "infobar.buttonInstallUpdate" : "Neu starten & Update installieren", 12 "infobar.buttonInstallUpdate" : "Neu starten & Update installieren",
10 "infobar.buttonReloadServices" : "Dienste neuladen", 13 "infobar.buttonReloadServices" : "Dienste neuladen",
11 "infobar.requiredRequestsFailed" : "Dienste und Benutzerinformationen konnten nicht geladen werden", 14 "infobar.requiredRequestsFailed" : "Dienste und Benutzerinformationen konnten nicht geladen werden",
12 "infobar.servicesUpdated" : "Deine Dienste wurden aktualisiert.", 15 "infobar.servicesUpdated" : "Deine Dienste wurden aktualisiert.",
13 "infobar.updateAvailable" : "Eine neue Version von Franz ist verfügbar.", 16 "infobar.updateAvailable" : "Eine neue Version von Franz ist verfügbar.",
14 "invite.email.label" : "E-Mail Adresse", 17 "invite.email.label" : "E-Mail-Adresse",
15 "invite.headline.friends" : "Lade 3 Freunde ein", 18 "invite.headline.friends" : "Lade 3 Freunde oder Kollegen ein",
16 "invite.name.label" : "Name", 19 "invite.name.label" : "Name",
17 "invite.skip.label" : "Ich möchte das später tun", 20 "invite.skip.label" : "Ich möchte das später tun",
18 "invite.submit.label" : "Einladungen schicken", 21 "invite.submit.label" : "Einladungen schicken",
19 "invite.successInfo" : "Einladungen wurden erfolgreich gesendet, vielen Dank.", 22 "invite.successInfo" : "Die Einladungen wurden erfolgreich gesendet.",
20 "login.email.label" : "E-Mail Adresse", 23 "login.email.label" : "E-Mail-Adresse",
21 "login.headline" : "Anmelden", 24 "login.headline" : "Anmelden",
22 "login.invalidCredentials" : "E-Mail Adresse oder Passwort ungültig", 25 "login.invalidCredentials" : "E-Mail Adresse oder Passwort ungültig",
23 "login.link.password" : "Passwort zurücksetzen", 26 "login.link.password" : "Passwort zurücksetzen",
24 "login.link.signup" : "Kostenloses Konto erstellen", 27 "login.link.signup" : "Kostenloses Konto erstellen",
25 "login.password.label" : "Passwort", 28 "login.password.label" : "Passwort",
26 "login.serverLogout" : "Deine Sitzung ist abgelaufen, bitte melde dich erneut an.", 29 "login.serverLogout" : "Deine Sitzung ist abgelaufen, bitte melde Dich erneut an.",
27 "login.submit.label" : "Anmelden", 30 "login.submit.label" : "Anmelden",
28 "login.tokenExpired" : "Deine Sitzung ist abgelaufen, bitte melde dich erneut an.", 31 "login.tokenExpired" : "Deine Sitzung ist abgelaufen, bitte melde Dich erneut an.",
29 "menu.app.about" : "Ãœber Franz", 32 "menu.app.about" : "Ãœber Franz",
30 "menu.app.hide" : "Franz ausblenden", 33 "menu.app.hide" : "Ausblenden",
31 "menu.app.hideOthers" : "Andere ausblenden", 34 "menu.app.hideOthers" : "Andere ausblenden",
32 "menu.app.quit" : "Franz Beenden", 35 "menu.app.quit" : "Beenden",
33 "menu.app.settings" : "Einstellungen", 36 "menu.app.settings" : "Einstellungen",
34 "menu.app.unhide" : "Alle einblenden", 37 "menu.app.unhide" : "Einblenden",
35 "menu.edit" : "Bearbeiten", 38 "menu.edit" : "Bearbeiten",
36 "menu.edit.copy" : "Kopieren", 39 "menu.edit.copy" : "Kopieren",
37 "menu.edit.cut" : "Ausschneiden", 40 "menu.edit.cut" : "Ausschneiden",
@@ -42,7 +45,7 @@
42 "menu.edit.redo" : "Wiederholen", 45 "menu.edit.redo" : "Wiederholen",
43 "menu.edit.selectAll" : "Alle auswählen", 46 "menu.edit.selectAll" : "Alle auswählen",
44 "menu.edit.speech" : "Sprachausgabe", 47 "menu.edit.speech" : "Sprachausgabe",
45 "menu.edit.startDictation" : "Diktat starten ...", 48 "menu.edit.startDictation" : "Diktat starten",
46 "menu.edit.startSpeaking" : "Sprachausgabe starten", 49 "menu.edit.startSpeaking" : "Sprachausgabe starten",
47 "menu.edit.stopSpeaking" : "Sprachausgabe stoppen", 50 "menu.edit.stopSpeaking" : "Sprachausgabe stoppen",
48 "menu.edit.undo" : "Widerrufen", 51 "menu.edit.undo" : "Widerrufen",
@@ -71,15 +74,16 @@
71 "menu.window.minimize" : "Minimieren", 74 "menu.window.minimize" : "Minimieren",
72 "password.email.label" : "E-Mail Adresse", 75 "password.email.label" : "E-Mail Adresse",
73 "password.headline" : "Passwort zurücksetzen", 76 "password.headline" : "Passwort zurücksetzen",
74 "password.link.login" : "An deinem Konto anmelden", 77 "password.link.login" : "An Deinem Konto anmelden",
75 "password.link.signup" : "Kostenloses Konto erstellen", 78 "password.link.signup" : "Kostenloses Konto erstellen",
76 "password.noUser" : "Es wurde kein Benutzer mit dieser E-Mail-Adresse gefunden.", 79 "password.noUser" : "Es wurde kein Benutzer mit dieser E-Mail-Adresse gefunden.",
77 "password.submit.label" : "Absenden", 80 "password.submit.label" : "Absenden",
78 "password.successInfo" : "Wir haben dir eine E-Mail mit weiteren Anweisungen geschickt.", 81 "password.successInfo" : "Wir haben Dir eine E-Mail mit weiteren Anweisungen geschickt.",
82 "premiumFeature.button.upgradeAccount" : "Account upgraden",
79 "pricing.headline" : "Franz unterstützen", 83 "pricing.headline" : "Franz unterstützen",
80 "pricing.link.skipPayment" : "Ich möchte die Entwicklung von Franz nicht unterstützen.", 84 "pricing.link.skipPayment" : "Ich möchte die Entwicklung von Franz nicht unterstützen.",
81 "pricing.submit.label" : "Ich möchte die Entwicklung von Franz unterstützen.", 85 "pricing.submit.label" : "Ich möchte die Entwicklung von Franz unterstützen.",
82 "pricing.support.label" : "Wie möchtest du Franz unterstützen?", 86 "pricing.support.label" : "Wie möchtest Du Franz unterstützen?",
83 "service.crashHandler.action" : "{name} neuladen", 87 "service.crashHandler.action" : "{name} neuladen",
84 "service.crashHandler.autoReload" : "{name} wird in {seconds} Sekunden automatisch wiederhergestellt", 88 "service.crashHandler.autoReload" : "{name} wird in {seconds} Sekunden automatisch wiederhergestellt",
85 "service.crashHandler.headline" : "Oh nein!", 89 "service.crashHandler.headline" : "Oh nein!",
@@ -93,8 +97,8 @@
93 "settings.account.accountType.premium" : "Premium-Supporter Konto", 97 "settings.account.accountType.premium" : "Premium-Supporter Konto",
94 "settings.account.buttonSave" : "Profil aktualisieren", 98 "settings.account.buttonSave" : "Profil aktualisieren",
95 "settings.account.deleteAccount" : "Benutzerkonto löschen", 99 "settings.account.deleteAccount" : "Benutzerkonto löschen",
96 "settings.account.deleteEmailSent" : "Du hast eine Email zur Bestätigung der Löschung deines Benutzerkontos erhalten. Dein Benutzerkonto und deine Daten können nach der Löschung nicht wiederhergestellt werden!", 100 "settings.account.deleteEmailSent" : "Du hast eine Email zur Bestätigung der Löschung Deines Benutzerkontos erhalten. Dein Benutzerkonto und Deine Daten können nach der Löschung nicht wiederhergestellt werden!",
97 "settings.account.deleteInfo" : "Hier kannst du dein Franz Benutzerkonto, und alle dazugehörigen Daten, löschen.", 101 "settings.account.deleteInfo" : "Wenn du dein Franz Benutzerkonto nicht mehr länger benötigst, kannst du hier deinen Account und alle dazugehörigen Daten löschen.",
98 "settings.account.headline" : "Konto", 102 "settings.account.headline" : "Konto",
99 "settings.account.headlineAccount" : "Konto Informationen", 103 "settings.account.headlineAccount" : "Konto Informationen",
100 "settings.account.headlineDangerZone" : "Benutzerkonto löschen", 104 "settings.account.headlineDangerZone" : "Benutzerkonto löschen",
@@ -116,29 +120,31 @@
116 "settings.app.form.autoLaunchInBackground" : "Im Hintergrund öffnen", 120 "settings.app.form.autoLaunchInBackground" : "Im Hintergrund öffnen",
117 "settings.app.form.autoLaunchOnStart" : "Franz beim Systemstart ausführen", 121 "settings.app.form.autoLaunchOnStart" : "Franz beim Systemstart ausführen",
118 "settings.app.form.beta" : "Beta-Versionen einbeziehen", 122 "settings.app.form.beta" : "Beta-Versionen einbeziehen",
123 "settings.app.form.darkMode" : "Die dunkle Seite erwartet dich (Dark Mode)",
119 "settings.app.form.enableGPUAcceleration" : "Hardwarebeschleunigung aktivieren", 124 "settings.app.form.enableGPUAcceleration" : "Hardwarebeschleunigung aktivieren",
120 "settings.app.form.enableMenuBar" : "Franz in Menüleiste anzeigen", 125 "settings.app.form.enableMenuBar" : "Franz in Menüleiste anzeigen",
121 "settings.app.form.enableSpellchecking" : "Rechtschreibprüfung aktivieren", 126 "settings.app.form.enableSpellchecking" : "Rechtschreibprüfung aktivieren",
122 "settings.app.form.enableSystemTray" : "Franz in der Systemleiste anzeigen", 127 "settings.app.form.enableSystemTray" : "Franz in der Taskleiste anzeigen",
123 "settings.app.form.hideDockIcon" : "Franz Icon im Dock ausblenden", 128 "settings.app.form.hideDockIcon" : "Franz Icon im Dock ausblenden",
124 "settings.app.form.language" : "Sprache", 129 "settings.app.form.language" : "Sprache",
125 "settings.app.form.minimizeToSystemTray" : "Franz in die Systemleiste minimieren", 130 "settings.app.form.minimizeToSystemTray" : "Franz in die Systemleiste minimieren",
126 "settings.app.form.runInBackground" : "Franz im Hintergrund behalten, wenn das Fenster geschlossen wird", 131 "settings.app.form.runInBackground" : "Franz im Hintergrund behalten, wenn das Fenster geschlossen wird",
127 "settings.app.form.showDisabledServices" : "Deaktivierte Services-Tabs anzeigen", 132 "settings.app.form.showDisabledServices" : "Deaktivierte Services-Tabs anzeigen",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "Ungelesene Nachrichten zeigen, wenn die Benachrichtigungen deaktiviert sind", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "Ungelesene Nachrichten zeigen, wenn die Benachrichtigungen deaktiviert sind",
134 "settings.app.form.spellcheckerLanguage" : "Sprache für Rechtschreibprüfung",
129 "settings.app.headline" : "Einstellungen", 135 "settings.app.headline" : "Einstellungen",
130 "settings.app.headlineAdvanced" : "Erweitert", 136 "settings.app.headlineAdvanced" : "Erweitert",
131 "settings.app.headlineAppearance" : "Darstellung", 137 "settings.app.headlineAppearance" : "Darstellung",
132 "settings.app.headlineGeneral" : "Allgemeines", 138 "settings.app.headlineGeneral" : "Allgemeines",
133 "settings.app.headlineLanguage" : "Sprache", 139 "settings.app.headlineLanguage" : "Sprache",
134 "settings.app.headlineUpdates" : "Updates", 140 "settings.app.headlineUpdates" : "Updates",
135 "settings.app.restartRequired" : "Änderungen werden erst nach einem Neustart wirksam. ", 141 "settings.app.restartRequired" : "Änderungen werden erst nach einem Neustart wirksam.",
136 "settings.app.subheadlineCache" : "Cache", 142 "settings.app.subheadlineCache" : "Cache",
137 "settings.app.translationHelp" : "Hilf uns, Franz in deine Sprache zu übersetzen.", 143 "settings.app.translationHelp" : "Hilf uns, Franz in Deine Sprache zu übersetzen.",
138 "settings.app.updateStatusAvailable" : "Update verfügbar, herunterladen...", 144 "settings.app.updateStatusAvailable" : "Update verfügbar, lädt herunter...",
139 "settings.app.updateStatusSearching" : "Suche nach Updates", 145 "settings.app.updateStatusSearching" : "Suche nach Updates",
140 "settings.app.updateStatusUpToDate" : "Du nutzt die aktuellste Version von Franz", 146 "settings.app.updateStatusUpToDate" : "Du nutzt die aktuellste Version von Franz",
141 "settings.invite.headline" : "Lade 3 deiner Freunde ein", 147 "settings.invite.headline" : "Lade 3 Deiner Freunde ein",
142 "settings.navigation.account" : "Konto", 148 "settings.navigation.account" : "Konto",
143 "settings.navigation.availableServices" : "Verfügbare Dienste", 149 "settings.navigation.availableServices" : "Verfügbare Dienste",
144 "settings.navigation.inviteFriends" : "Freunde einladen", 150 "settings.navigation.inviteFriends" : "Freunde einladen",
@@ -150,7 +156,7 @@
150 "settings.recipes.headline" : "Verfügbare Dienste", 156 "settings.recipes.headline" : "Verfügbare Dienste",
151 "settings.recipes.missingService" : "Fehlt ein Service?", 157 "settings.recipes.missingService" : "Fehlt ein Service?",
152 "settings.recipes.mostPopular" : "Am beliebtesten", 158 "settings.recipes.mostPopular" : "Am beliebtesten",
153 "settings.recipes.nothingFound" : "Entschuldigung, aber kein Dienst entspricht deiner Suchanfrage.", 159 "settings.recipes.nothingFound" : "Entschuldigung, aber der von Dir gesuchte Dienst konnte nicht gefunden werden.",
154 "settings.recipes.servicesSuccessfulAddedInfo" : "Dienst erfolgreich hinzugefügt", 160 "settings.recipes.servicesSuccessfulAddedInfo" : "Dienst erfolgreich hinzugefügt",
155 "settings.searchService" : "Service suchen", 161 "settings.searchService" : "Service suchen",
156 "settings.service.error.goBack" : "Zurück zu den Diensten", 162 "settings.service.error.goBack" : "Zurück zu den Diensten",
@@ -159,13 +165,14 @@
159 "settings.service.form.addServiceHeadline" : "{name} hinzufügen", 165 "settings.service.form.addServiceHeadline" : "{name} hinzufügen",
160 "settings.service.form.availableServices" : "Verfügbare Dienste", 166 "settings.service.form.availableServices" : "Verfügbare Dienste",
161 "settings.service.form.customUrl" : "Eigener Server", 167 "settings.service.form.customUrl" : "Eigener Server",
162 "settings.service.form.customUrlPremiumInfo" : "Um einen selbst gehosteten Dienst hinzuzufügen, brauchst du ein Franz Premium-Supporter Konto.", 168 "settings.service.form.customUrlPremiumInfo" : "Um einen selbst gehosteten Dienst hinzuzufügen, brauchst Du ein Franz Premium-Supporter Konto.",
163 "settings.service.form.customUrlUpgradeAccount" : "Dein Konto upgraden", 169 "settings.service.form.customUrlUpgradeAccount" : "Dein Konto upgraden",
164 "settings.service.form.customUrlValidationError" : "Dein {name}-Server konnte nicht verifiziert werden.", 170 "settings.service.form.customUrlValidationError" : "Dein {name}-Server konnte nicht verifiziert werden.",
165 "settings.service.form.deleteButton" : "Dienst löschen", 171 "settings.service.form.deleteButton" : "Dienst löschen",
166 "settings.service.form.editServiceHeadline" : "{name} bearbeiten", 172 "settings.service.form.editServiceHeadline" : "{name} bearbeiten",
167 "settings.service.form.enableAudio" : "Audio aktivieren", 173 "settings.service.form.enableAudio" : "Audio aktivieren",
168 "settings.service.form.enableBadge" : "Nachrichten-Badge anzeigen", 174 "settings.service.form.enableBadge" : "Nachrichten-Badge anzeigen",
175 "settings.service.form.enableDarkMode" : "Dark Mode aktivieren",
169 "settings.service.form.enableNotification" : "Benachrichtigungen aktivieren", 176 "settings.service.form.enableNotification" : "Benachrichtigungen aktivieren",
170 "settings.service.form.enableService" : "Dienst aktivieren", 177 "settings.service.form.enableService" : "Dienst aktivieren",
171 "settings.service.form.headlineBadges" : "Nachrichten-Badge", 178 "settings.service.form.headlineBadges" : "Nachrichten-Badge",
@@ -178,6 +185,12 @@
178 "settings.service.form.indirectMessages" : "Nachrichten-Badge für alle neuen Nachrichten anzeigen", 185 "settings.service.form.indirectMessages" : "Nachrichten-Badge für alle neuen Nachrichten anzeigen",
179 "settings.service.form.isMutedInfo" : "Sämtliche Wiedergabe von Tönen wird deaktiviert", 186 "settings.service.form.isMutedInfo" : "Sämtliche Wiedergabe von Tönen wird deaktiviert",
180 "settings.service.form.name" : "Name", 187 "settings.service.form.name" : "Name",
188 "settings.service.form.proxy.headline" : "Proxy Einstellungen",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy Einstellungen werden nicht mit den Franz Servern synchronisiert.",
191 "settings.service.form.proxy.isEnabled" : "Proxy Server verwenden",
192 "settings.service.form.proxy.password" : "Passwort (optional)",
193 "settings.service.form.proxy.user" : "Benutzer (optional)",
181 "settings.service.form.saveButton" : "Dienst speichern", 194 "settings.service.form.saveButton" : "Dienst speichern",
182 "settings.service.form.tabHosted" : "Gehostet", 195 "settings.service.form.tabHosted" : "Gehostet",
183 "settings.service.form.tabOnPremise" : "Selbst gehostet â­ï¸", 196 "settings.service.form.tabOnPremise" : "Selbst gehostet â­ï¸",
@@ -211,19 +224,21 @@
211 "signup.firstname.label" : "Vorname", 224 "signup.firstname.label" : "Vorname",
212 "signup.headline" : "Anmelden", 225 "signup.headline" : "Anmelden",
213 "signup.lastname.label" : "Nachname", 226 "signup.lastname.label" : "Nachname",
214 "signup.legal.info" : "Mit der Erstellung eines Franz Kontos akzeptierst du die", 227 "signup.legal.info" : "Mit der Erstellung eines Franz Kontos akzeptierst Du die",
215 "signup.legal.privacy" : "Datenschutzerklärung", 228 "signup.legal.privacy" : "Datenschutzerklärung",
216 "signup.legal.terms" : "Nutzungsbedingungen", 229 "signup.legal.terms" : "Nutzungsbedingungen",
217 "signup.link.login" : "Du hast bereits ein Konto? Melde dich an.", 230 "signup.link.login" : "Du hast bereits ein Konto? Melde Dich an.",
218 "signup.password.label" : "Passwort", 231 "signup.password.label" : "Passwort",
219 "signup.submit.label" : "Konto erstellen", 232 "signup.submit.label" : "Konto erstellen",
220 "subscription.euTaxInfo" : "Preise sind exklusive Steuern.", 233 "subscription.euTaxInfo" : "Preise sind exklusive Steuern.",
221 "subscription.features.ads" : "Nie mehr Werbung!", 234 "subscription.features.ads" : "Werbefrei auf Lebenszeit!",
222 "subscription.features.comingSoon" : "folgt bald", 235 "subscription.features.comingSoon" : "folgt bald",
223 "subscription.features.customServices" : "Private Dienste für dich und dein Team",
224 "subscription.features.encryptedSync" : "Verschlüsselte Sitzungs-Synchronisation", 236 "subscription.features.encryptedSync" : "Verschlüsselte Sitzungs-Synchronisation",
237 "subscription.features.noInterruptions" : "Keine Wartezeiten um Franz zu verwenden",
225 "subscription.features.onpremise" : "Integration von gehosteten Diensten, wie HipChat", 238 "subscription.features.onpremise" : "Integration von gehosteten Diensten, wie HipChat",
226 "subscription.features.vpn" : "Proxy- & VPN-Unterstützung", 239 "subscription.features.onpremise.mattermost" : "Integration von gehosteten Diensten, wie Mattermost",
240 "subscription.features.proxy" : "Proxy Support für Dienste",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "Bezahlte Franz Premium Support Konten beinhalten", 242 "subscription.includedFeatures" : "Bezahlte Franz Premium Support Konten beinhalten",
228 "subscription.paymentSessionError" : "Das Zahlungs-Formular konnte nicht geladen werden.", 243 "subscription.paymentSessionError" : "Das Zahlungs-Formular konnte nicht geladen werden.",
229 "subscription.submit.label" : "Ich möchte die Entwicklung von Franz unterstützen", 244 "subscription.submit.label" : "Ich möchte die Entwicklung von Franz unterstützen",
@@ -247,5 +262,5 @@
247 "validation.url" : "{field} ist keine gültige URL", 262 "validation.url" : "{field} ist keine gültige URL",
248 "welcome.loginButton" : "Bei Franz einloggen", 263 "welcome.loginButton" : "Bei Franz einloggen",
249 "welcome.signupButton" : "Kostenloses Konto erstellen", 264 "welcome.signupButton" : "Kostenloses Konto erstellen",
250 "welcome.slogan" : "Kommunikation, die für dich funktioniert" 265 "welcome.slogan" : "Kommunikation, die für Dich funktioniert"
251} 266}
diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json
index 7361d29b7..31852d20c 100644
--- a/src/i18n/locales/el.json
+++ b/src/i18n/locales/el.json
@@ -1,7 +1,10 @@
1{ 1{
2 "global.api.unhealthy" : "Δεν είναι δυνατή η σÏνδεση με τις online υπηÏεσίες του Franz", 2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "global.notConnectedToTheInternet" : "Δεν είστε συνδεδεμένοι στο διαδίκτυο.", 3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "import.headline" : "Εισαγάγετε τις Franz 4 υπηÏεσίες σας", 4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
5 "global.api.unhealthy" : "Δεν είναι δυνατή η σÏνδεση με τις ζωντανές υπηÏεσίες του Franz",
6 "global.notConnectedToTheInternet" : "Έχετε αποσυνδεθεί από το Διαδίκτυο",
7 "import.headline" : "Εισαγάγετε τις υπηÏεσίες σας Franz 4",
5 "import.notSupportedHeadline" : "ΥπηÏεσίες που δεν υποστηÏίζονται ακόμα στο Franz 5", 8 "import.notSupportedHeadline" : "ΥπηÏεσίες που δεν υποστηÏίζονται ακόμα στο Franz 5",
6 "import.skip.label" : "Θέλω να Ï€Ïοσθέσω υπηÏεσίες χειÏοκίνητα", 9 "import.skip.label" : "Θέλω να Ï€Ïοσθέσω υπηÏεσίες χειÏοκίνητα",
7 "import.submit.label" : "Εισαγωγή υπηÏεσιών", 10 "import.submit.label" : "Εισαγωγή υπηÏεσιών",
@@ -16,7 +19,7 @@
16 "invite.name.label" : "Όνομα", 19 "invite.name.label" : "Όνομα",
17 "invite.skip.label" : "Θέλω να το κάνω αÏγότεÏα", 20 "invite.skip.label" : "Θέλω να το κάνω αÏγότεÏα",
18 "invite.submit.label" : "Αποστολή Ï€Ïοσκλήσεων", 21 "invite.submit.label" : "Αποστολή Ï€Ïοσκλήσεων",
19 "invite.successInfo" : "Invitations sent successfully", 22 "invite.successInfo" : "Επιτυχής αποστολή Ï€Ïοσκλήσεων",
20 "login.email.label" : "ΔιεÏθυνση ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Ï„Î±Ï‡Ï…Î´Ïομείου", 23 "login.email.label" : "ΔιεÏθυνση ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Ï„Î±Ï‡Ï…Î´Ïομείου",
21 "login.headline" : "ΣÏνδεση", 24 "login.headline" : "ΣÏνδεση",
22 "login.invalidCredentials" : "Το email ή ο κωδικός Ï€Ïόσβασης δεν είναι έγκυÏος", 25 "login.invalidCredentials" : "Το email ή ο κωδικός Ï€Ïόσβασης δεν είναι έγκυÏος",
@@ -26,49 +29,49 @@
26 "login.serverLogout" : "Η συνεδÏία σας έληξε, συνδεθείτε ξανά.", 29 "login.serverLogout" : "Η συνεδÏία σας έληξε, συνδεθείτε ξανά.",
27 "login.submit.label" : "ΣÏνδεση", 30 "login.submit.label" : "ΣÏνδεση",
28 "login.tokenExpired" : "Η συνεδÏία σας έληξε, συνδεθείτε ξανά.", 31 "login.tokenExpired" : "Η συνεδÏία σας έληξε, συνδεθείτε ξανά.",
29 "menu.app.about" : "About Franz", 32 "menu.app.about" : "Σχετικά με το Franz",
30 "menu.app.hide" : "Hide", 33 "menu.app.hide" : "ΑπόκÏυψη",
31 "menu.app.hideOthers" : "Hide Others", 34 "menu.app.hideOthers" : "ΑπόκÏυψη των άλλων",
32 "menu.app.quit" : "Quit", 35 "menu.app.quit" : "Έξοδος",
33 "menu.app.settings" : "Ρυθμίσεις", 36 "menu.app.settings" : "Ρυθμίσεις",
34 "menu.app.unhide" : "Unhide", 37 "menu.app.unhide" : "Εμφάνιση",
35 "menu.edit" : "ΕπεξεÏγασία", 38 "menu.edit" : "ΕπεξεÏγασία",
36 "menu.edit.copy" : "Copy", 39 "menu.edit.copy" : "ΑντιγÏαφή",
37 "menu.edit.cut" : "Cut", 40 "menu.edit.cut" : "Αποκοπή",
38 "menu.edit.delete" : "ΔιαγÏαφή", 41 "menu.edit.delete" : "ΔιαγÏαφή",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols", 42 "menu.edit.emojiSymbols" : "Emoji & ΣÏμβολα",
40 "menu.edit.paste" : "Paste", 43 "menu.edit.paste" : "Επικόλληση",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", 44 "menu.edit.pasteAndMatchStyle" : "Επικόλληση και διατήÏηση μοÏφοποίησης",
42 "menu.edit.redo" : "Redo", 45 "menu.edit.redo" : "ΑκÏÏωση αναίÏεσης",
43 "menu.edit.selectAll" : "Select All", 46 "menu.edit.selectAll" : "Επιλογή Όλων",
44 "menu.edit.speech" : "Speech", 47 "menu.edit.speech" : "Ομιλία",
45 "menu.edit.startDictation" : "Start Dictation", 48 "menu.edit.startDictation" : "ΈναÏξη φωνητικής πληκτÏολόγησης",
46 "menu.edit.startSpeaking" : "Start Speaking", 49 "menu.edit.startSpeaking" : "ΈναÏξη εκφώνησης",
47 "menu.edit.stopSpeaking" : "Stop Speaking", 50 "menu.edit.stopSpeaking" : "Σταμάτημα εκφώνησης",
48 "menu.edit.undo" : "Undo", 51 "menu.edit.undo" : "ΑναίÏεση",
49 "menu.file" : "File", 52 "menu.file" : "ΑÏχείο",
50 "menu.help" : "Help", 53 "menu.help" : "Βοήθεια",
51 "menu.help.changelog" : "Changelog", 54 "menu.help.changelog" : "ΠÏόσφατες αλλαγές",
52 "menu.help.learnMore" : "Learn More", 55 "menu.help.learnMore" : "Μάθετε πεÏισσότεÏα",
53 "menu.help.privacy" : "Δήλωση αποÏÏήτου", 56 "menu.help.privacy" : "Δήλωση αποÏÏήτου",
54 "menu.help.support" : "Support", 57 "menu.help.support" : "ΥποστήÏιξη",
55 "menu.help.tos" : "Terms of Service", 58 "menu.help.tos" : "ÎŒÏοι ΧÏήσης",
56 "menu.services" : "Services", 59 "menu.services" : "ΥπηÏεσίες",
57 "menu.services.addNewService" : "Add New Service...", 60 "menu.services.addNewService" : "Îέα ΥπηÏεσία",
58 "menu.view" : "View", 61 "menu.view" : "ΠÏοβολή",
59 "menu.view.enterFullScreen" : "Enter Full Screen", 62 "menu.view.enterFullScreen" : "ΠλήÏης Οθόνη",
60 "menu.view.exitFullScreen" : "Exit Full Screen", 63 "menu.view.exitFullScreen" : "Έξοδος από πλήÏη οθόνη",
61 "menu.view.reloadFranz" : "Reload Franz", 64 "menu.view.reloadFranz" : "Ανανέωση Franz",
62 "menu.view.reloadService" : "Reload Service", 65 "menu.view.reloadService" : "Ανανέωση ΥπηÏεσίας",
63 "menu.view.resetZoom" : "Actual Size", 66 "menu.view.resetZoom" : "ΠÏαγματικό μέγεθος",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools", 67 "menu.view.toggleDevTools" : "Άνοιγμα ΕÏγαλειοθήκη ΠÏογÏαμματιστών",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen", 68 "menu.view.toggleFullScreen" : "ΛειτουÏγία πλήÏους οθόνης",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", 69 "menu.view.toggleServiceDevTools" : "ΛειτουÏγεία ΥπηÏεσίασ ΕÏγαλειοθήκης ΠÏογÏαμματιστών",
67 "menu.view.zoomIn" : "Zoom In", 70 "menu.view.zoomIn" : "Μεγέθυνση",
68 "menu.view.zoomOut" : "Zoom Out", 71 "menu.view.zoomOut" : "ΣμίκÏυνση",
69 "menu.window" : "Window", 72 "menu.window" : "ΠαÏάθυÏο",
70 "menu.window.close" : "Close", 73 "menu.window.close" : "Κλείσιμο",
71 "menu.window.minimize" : "Minimize", 74 "menu.window.minimize" : "Ελαχιστοποίηση",
72 "password.email.label" : "ΔιεÏθυνση ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Ï„Î±Ï‡Ï…Î´Ïομείου", 75 "password.email.label" : "ΔιεÏθυνση ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Ï„Î±Ï‡Ï…Î´Ïομείου",
73 "password.headline" : "ΕπαναφοÏά ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης", 76 "password.headline" : "ΕπαναφοÏά ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης",
74 "password.link.login" : "ΣÏνδεση στο λογαÏιασμό σας", 77 "password.link.login" : "ΣÏνδεση στο λογαÏιασμό σας",
@@ -76,6 +79,7 @@
76 "password.noUser" : "Δεν βÏέθηκε χÏήστης με τη συγκεκÏιμένη διεÏθυνση ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Ï„Î±Ï‡Ï…Î´Ïομείου", 79 "password.noUser" : "Δεν βÏέθηκε χÏήστης με τη συγκεκÏιμένη διεÏθυνση ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Ï„Î±Ï‡Ï…Î´Ïομείου",
77 "password.submit.label" : "Υποβολή", 80 "password.submit.label" : "Υποβολή",
78 "password.successInfo" : "Ελέγξτε το email σας", 81 "password.successInfo" : "Ελέγξτε το email σας",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "ΥποστηÏίξτε το Franz", 83 "pricing.headline" : "ΥποστηÏίξτε το Franz",
80 "pricing.link.skipPayment" : "Δεν θέλω να βοηθήσω στην ανάπτυξη του Franz.", 84 "pricing.link.skipPayment" : "Δεν θέλω να βοηθήσω στην ανάπτυξη του Franz.",
81 "pricing.submit.label" : "Θέλω να βοηθήσω στην ανάπτυξη του Franz", 85 "pricing.submit.label" : "Θέλω να βοηθήσω στην ανάπτυξη του Franz",
@@ -116,16 +120,18 @@
116 "settings.app.form.autoLaunchInBackground" : "Άνοιγμα στο παÏασκήνιο", 120 "settings.app.form.autoLaunchInBackground" : "Άνοιγμα στο παÏασκήνιο",
117 "settings.app.form.autoLaunchOnStart" : "Εκκίνηση του Franz κατά την εκκίνηση του συστήματος", 121 "settings.app.form.autoLaunchOnStart" : "Εκκίνηση του Franz κατά την εκκίνηση του συστήματος",
118 "settings.app.form.beta" : "ΣυμπεÏιλάβετε εκδόσεις beta", 122 "settings.app.form.beta" : "ΣυμπεÏιλάβετε εκδόσεις beta",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", 123 "settings.app.form.darkMode" : "Join the Dark Side",
120 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", 124 "settings.app.form.enableGPUAcceleration" : "ΕνεÏγοποιήση Ενίσχυσης GPU ",
125 "settings.app.form.enableMenuBar" : "Εμφάνιση ΓÏαμμής ÎœÎµÎ½Î¿Ï Franz",
121 "settings.app.form.enableSpellchecking" : "ΕνεÏγοποίηση οÏθογÏÎ±Ï†Î¹ÎºÎ¿Ï ÎµÎ»Î­Î³Ï‡Î¿Ï…", 126 "settings.app.form.enableSpellchecking" : "ΕνεÏγοποίηση οÏθογÏÎ±Ï†Î¹ÎºÎ¿Ï ÎµÎ»Î­Î³Ï‡Î¿Ï…",
122 "settings.app.form.enableSystemTray" : "Εμφάνιση του Franz στη γÏαμμή ειδοποιήσεων", 127 "settings.app.form.enableSystemTray" : "Εμφάνιση του Franz στη γÏαμμή ειδοποιήσεων",
123 "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock", 128 "settings.app.form.hideDockIcon" : "ΑπόκÏυψη εικονιδίου Franz",
124 "settings.app.form.language" : "Γλώσσα", 129 "settings.app.form.language" : "Γλώσσα",
125 "settings.app.form.minimizeToSystemTray" : "Ελαχιστοποίηση του Franz στη γÏαμμή ειδοποιήσεων", 130 "settings.app.form.minimizeToSystemTray" : "Ελαχιστοποίηση του Franz στη γÏαμμή ειδοποιήσεων",
126 "settings.app.form.runInBackground" : "ΚÏατήστε το Franz στο παÏασκήνιο κατά το κλείσιμο του παÏαθÏÏου", 131 "settings.app.form.runInBackground" : "ΚÏατήστε το Franz στο παÏασκήνιο κατά το κλείσιμο του παÏαθÏÏου",
127 "settings.app.form.showDisabledServices" : "ΠÏοβολή καÏτελών των απενεÏγοποιημένων υπηÏεσιών", 132 "settings.app.form.showDisabledServices" : "ΠÏοβολή καÏτελών των απενεÏγοποιημένων υπηÏεσιών",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "ΠÏοβολή του εικονιδίου μη αναγνωσμένου μηνÏματος όταν οι ειδοποιήσεις είναι απενεÏγοποιημένες", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "ΠÏοβολή του εικονιδίου μη αναγνωσμένου μηνÏματος όταν οι ειδοποιήσεις είναι απενεÏγοποιημένες",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "Ρυθμίσεις", 135 "settings.app.headline" : "Ρυθμίσεις",
130 "settings.app.headlineAdvanced" : "Για Ï€ÏοχωÏημένους", 136 "settings.app.headlineAdvanced" : "Για Ï€ÏοχωÏημένους",
131 "settings.app.headlineAppearance" : "Εμφάνιση", 137 "settings.app.headlineAppearance" : "Εμφάνιση",
@@ -138,10 +144,10 @@
138 "settings.app.updateStatusAvailable" : "ΥπάÏχει διαθέσιμη ενημέÏωση, γίνεται λήψη...", 144 "settings.app.updateStatusAvailable" : "ΥπάÏχει διαθέσιμη ενημέÏωση, γίνεται λήψη...",
139 "settings.app.updateStatusSearching" : " Γίνεται αναζήτηση για ενημέÏωση", 145 "settings.app.updateStatusSearching" : " Γίνεται αναζήτηση για ενημέÏωση",
140 "settings.app.updateStatusUpToDate" : "ΧÏησιμοποιείτε την τελευταία έκδοση του Franz", 146 "settings.app.updateStatusUpToDate" : "ΧÏησιμοποιείτε την τελευταία έκδοση του Franz",
141 "settings.invite.headline" : "Invite Friends", 147 "settings.invite.headline" : "ΠÏοσκαλέστε Φίλους",
142 "settings.navigation.account" : "ΛογαÏιασμός", 148 "settings.navigation.account" : "ΛογαÏιασμός",
143 "settings.navigation.availableServices" : "Διαθέσιμες υπηÏεσίες", 149 "settings.navigation.availableServices" : "Διαθέσιμες υπηÏεσίες",
144 "settings.navigation.inviteFriends" : "Invite Friends", 150 "settings.navigation.inviteFriends" : "ΠÏασκαλέστε Φίλους",
145 "settings.navigation.logout" : "ΑποσÏνδεση", 151 "settings.navigation.logout" : "ΑποσÏνδεση",
146 "settings.navigation.settings" : "Ρυθμίσεις", 152 "settings.navigation.settings" : "Ρυθμίσεις",
147 "settings.navigation.yourServices" : "Οι υπηÏεσίες σας", 153 "settings.navigation.yourServices" : "Οι υπηÏεσίες σας",
@@ -166,6 +172,7 @@
166 "settings.service.form.editServiceHeadline" : "ΕπεξεÏγασία {name}", 172 "settings.service.form.editServiceHeadline" : "ΕπεξεÏγασία {name}",
167 "settings.service.form.enableAudio" : "ΕνεÏγοποίηση ήχου", 173 "settings.service.form.enableAudio" : "ΕνεÏγοποίηση ήχου",
168 "settings.service.form.enableBadge" : "Εμφάνιση εικονιδίων μη αναγνωσμένου μηνÏματος", 174 "settings.service.form.enableBadge" : "Εμφάνιση εικονιδίων μη αναγνωσμένου μηνÏματος",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "ΕνεÏγοποίηση ειδοποιήσεων", 176 "settings.service.form.enableNotification" : "ΕνεÏγοποίηση ειδοποιήσεων",
170 "settings.service.form.enableService" : "ΕνεÏγοποίηση υπηÏεσίας", 177 "settings.service.form.enableService" : "ΕνεÏγοποίηση υπηÏεσίας",
171 "settings.service.form.headlineBadges" : "Εικονίδια μη αναγνωσμένου μηνÏματος", 178 "settings.service.form.headlineBadges" : "Εικονίδια μη αναγνωσμένου μηνÏματος",
@@ -178,6 +185,12 @@
178 "settings.service.form.indirectMessages" : "Εμφάνιση ειδοποίησης μηνÏματος για όλα τα νέα μηνÏματα", 185 "settings.service.form.indirectMessages" : "Εμφάνιση ειδοποίησης μηνÏματος για όλα τα νέα μηνÏματα",
179 "settings.service.form.isMutedInfo" : "Όλοι οι ήχοι καθώς και η αναπαÏαγωγή ήχου θα απενεÏγοποιηθοÏν", 186 "settings.service.form.isMutedInfo" : "Όλοι οι ήχοι καθώς και η αναπαÏαγωγή ήχου θα απενεÏγοποιηθοÏν",
180 "settings.service.form.name" : "Όνομα", 187 "settings.service.form.name" : "Όνομα",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "Αποθήκευση υπηÏεσίας", 194 "settings.service.form.saveButton" : "Αποθήκευση υπηÏεσίας",
182 "settings.service.form.tabHosted" : "Φιλοξενείται", 195 "settings.service.form.tabHosted" : "Φιλοξενείται",
183 "settings.service.form.tabOnPremise" : "Αυτο-φιλοξενείται â­ï¸", 196 "settings.service.form.tabOnPremise" : "Αυτο-φιλοξενείται â­ï¸",
@@ -220,10 +233,12 @@
220 "subscription.euTaxInfo" : "Πολίτες Ε.Ε.: Στις τιμές δεν πεÏιλαμβάνονται τυχόν φόÏοι και άλλες τοπικές επιβαÏÏνσεις", 233 "subscription.euTaxInfo" : "Πολίτες Ε.Ε.: Στις τιμές δεν πεÏιλαμβάνονται τυχόν φόÏοι και άλλες τοπικές επιβαÏÏνσεις",
221 "subscription.features.ads" : "Τέλος στις διαφημίσεις", 234 "subscription.features.ads" : "Τέλος στις διαφημίσεις",
222 "subscription.features.comingSoon" : "σÏντομα", 235 "subscription.features.comingSoon" : "σÏντομα",
223 "subscription.features.customServices" : "Ιδιωτικές υπηÏεσίες για εσάς και την ομάδα σας",
224 "subscription.features.encryptedSync" : "ΚÏυπτογÏαφημένος συγχÏονισμός πεÏιόδου σÏνδεσης", 236 "subscription.features.encryptedSync" : "ΚÏυπτογÏαφημένος συγχÏονισμός πεÏιόδου σÏνδεσης",
237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "Add on-premise \/ hosted services όπως το HipChat", 238 "subscription.features.onpremise" : "Add on-premise \/ hosted services όπως το HipChat",
226 "subscription.features.vpn" : "ΥποστήÏιξη μεσολαβητή (Proxy) και VPN", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "Ο Premium λογαÏιασμός υποστήÏιξης Franz πεÏιλαμβάνει", 242 "subscription.includedFeatures" : "Ο Premium λογαÏιασμός υποστήÏιξης Franz πεÏιλαμβάνει",
228 "subscription.paymentSessionError" : "Δεν ήταν δυνατή η Ï€Ïοετοιμασία της φόÏμας πληÏωμής", 243 "subscription.paymentSessionError" : "Δεν ήταν δυνατή η Ï€Ïοετοιμασία της φόÏμας πληÏωμής",
229 "subscription.submit.label" : "Θέλω να βοηθήσω στην ανάπτυξη του Franz", 244 "subscription.submit.label" : "Θέλω να βοηθήσω στην ανάπτυξη του Franz",
@@ -241,10 +256,10 @@
241 "tabs.item.enableNotification" : "ΕνεÏγοποίηση ειδοποιήσεων", 256 "tabs.item.enableNotification" : "ΕνεÏγοποίηση ειδοποιήσεων",
242 "tabs.item.enableService" : "ΕνεÏγοποίηση υπηÏεσίας", 257 "tabs.item.enableService" : "ΕνεÏγοποίηση υπηÏεσίας",
243 "tabs.item.reload" : "ΕπαναφόÏτωση", 258 "tabs.item.reload" : "ΕπαναφόÏτωση",
244 "validation.email" : "{field} is not valid", 259 "validation.email" : "{field} δεν είναι έγκυÏο",
245 "validation.minLength" : "{field} should be at least {length} characters long", 260 "validation.minLength" : "{field} Ï€Ïέπει να είναι τουλάχιστον {length} χαÏακτήÏες",
246 "validation.required" : "{field} is required", 261 "validation.required" : "{field} είναι υποχÏεωτικό",
247 "validation.url" : "{field} is not a valid URL", 262 "validation.url" : "{field} δεν είναι έγκυÏος σÏνδεσμος URL",
248 "welcome.loginButton" : "ΣÏνδεση στο λογαÏιασμό σας", 263 "welcome.loginButton" : "ΣÏνδεση στο λογαÏιασμό σας",
249 "welcome.signupButton" : "ΔημιουÏγία δωÏεάν λογαÏιασμοÏ", 264 "welcome.signupButton" : "ΔημιουÏγία δωÏεάν λογαÏιασμοÏ",
250 "welcome.slogan" : "Επικοινωνία που λειτουÏγεί για εσάς" 265 "welcome.slogan" : "Επικοινωνία που λειτουÏγεί για εσάς"
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json
index 0c62da44a..aa55f5dfe 100644
--- a/src/i18n/locales/en-US.json
+++ b/src/i18n/locales/en-US.json
@@ -50,10 +50,12 @@
50 "subscription.paymentSessionError": "Could not initialize payment form", 50 "subscription.paymentSessionError": "Could not initialize payment form",
51 "subscription.includedFeatures": "Paid Franz Premium Supporter Account includes", 51 "subscription.includedFeatures": "Paid Franz Premium Supporter Account includes",
52 "subscription.features.onpremise": "Add on-premise/hosted services like HipChat", 52 "subscription.features.onpremise": "Add on-premise/hosted services like HipChat",
53 "subscription.features.customServices": "Private services for you and your team", 53 "subscription.features.onpremise.mattermost": "Add on-premise/hosted services like Mattermost",
54 "subscription.features.encryptedSync": "Encrypted session synchronization", 54 "subscription.features.encryptedSync": "Encrypted session synchronization",
55 "subscription.features.vpn": "Proxy & VPN support", 55 "subscription.features.proxy": "Proxy support for services",
56 "subscription.features.ads": "No ads, ever!", 56 "subscription.features.ads": "No ads, ever!",
57 "subscription.features.spellchecker": "Support for spellchecker",
58 "subscription.features.noInterruptions": "No app delays & nagging to upgrade license",
57 "subscription.features.comingSoon": "coming soon", 59 "subscription.features.comingSoon": "coming soon",
58 "infobar.servicesUpdated": "Your services have been updated.", 60 "infobar.servicesUpdated": "Your services have been updated.",
59 "infobar.updateAvailable": "A new update for Franz is available.", 61 "infobar.updateAvailable": "A new update for Franz is available.",
@@ -130,6 +132,13 @@
130 "settings.service.form.icon": "Custom icon", 132 "settings.service.form.icon": "Custom icon",
131 "settings.service.form.iconDelete": "Delete", 133 "settings.service.form.iconDelete": "Delete",
132 "settings.service.form.iconUpload": "Drop your image, or click here", 134 "settings.service.form.iconUpload": "Drop your image, or click here",
135 "settings.service.form.enableDarkMode": "Enable Dark Mode",
136 "settings.service.form.proxy.headline": "Proxy Settings",
137 "settings.service.form.proxy.isEnabled": "Use Proxy",
138 "settings.service.form.proxy.host": "Proxy Host/IP",
139 "settings.service.form.proxy.user": "User (optional)",
140 "settings.service.form.proxy.password": "Password (optional)",
141 "settings.service.form.proxy.info": "Proxy settings will not synced with the Franz servers.",
133 "settings.service.error.headline": "Error", 142 "settings.service.error.headline": "Error",
134 "settings.service.error.goBack": "Back to services", 143 "settings.service.error.goBack": "Back to services",
135 "settings.service.error.message": "Could not load service recipe.", 144 "settings.service.error.message": "Could not load service recipe.",
@@ -158,12 +167,14 @@
158 "settings.app.form.autoLaunchOnStart": "Launch Franz on start", 167 "settings.app.form.autoLaunchOnStart": "Launch Franz on start",
159 "settings.app.form.autoLaunchInBackground": "Open in background", 168 "settings.app.form.autoLaunchInBackground": "Open in background",
160 "settings.app.form.enableSystemTray": "Show Franz in system tray", 169 "settings.app.form.enableSystemTray": "Show Franz in system tray",
170 "settings.app.form.darkMode": "Join the Dark Side",
161 "settings.app.form.minimizeToSystemTray": "Minimize Franz to system tray", 171 "settings.app.form.minimizeToSystemTray": "Minimize Franz to system tray",
162 "settings.app.form.enableMenuBar": "Show Franz in Menu Bar", 172 "settings.app.form.enableMenuBar": "Show Franz in Menu Bar",
163 "settings.app.form.hideDockIcon": "Hide Franz icon in Dock", 173 "settings.app.form.hideDockIcon": "Hide Franz icon in Dock",
164 "settings.app.form.runInBackground": "Keep Franz in background when closing the window", 174 "settings.app.form.runInBackground": "Keep Franz in background when closing the window",
165 "settings.app.form.language": "Language", 175 "settings.app.form.language": "Language",
166 "settings.app.form.enableSpellchecking": "Enable spell checking", 176 "settings.app.form.enableSpellchecking": "Enable spell checking",
177 "settings.app.form.spellcheckerLanguage": "Spell checking language",
167 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", 178 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
168 "settings.app.form.showDisabledServices": "Display disabled services tabs", 179 "settings.app.form.showDisabledServices": "Display disabled services tabs",
169 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 180 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
@@ -247,5 +258,9 @@
247 "validation.required": "{field} is required", 258 "validation.required": "{field} is required",
248 "validation.email": "{field} is not valid", 259 "validation.email": "{field} is not valid",
249 "validation.url": "{field} is not a valid URL", 260 "validation.url": "{field} is not a valid URL",
250 "validation.minLength": "{field} should be at least {length} characters long" 261 "validation.minLength": "{field} should be at least {length} characters long",
262 "feature.delayApp.headline": "Please purchase a Franz Supporter License to skip waiting",
263 "feature.delayApp.action": "Get a Franz Supporter License",
264 "feature.delayApp.text": "Franz will continue in {seconds} seconds.",
265 "premiumFeature.button.upgradeAccount": "Upgrade account"
251} 266}
diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json
index 75047a613..a5984dd1c 100644
--- a/src/i18n/locales/es.json
+++ b/src/i18n/locales/es.json
@@ -1,8 +1,11 @@
1{ 1{
2 "global.api.unhealthy" : "No se puede conectar a los servicios en línea de Franz", 2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "global.notConnectedToTheInternet" : "No está conectado a Internet.", 3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
5 "global.api.unhealthy" : "No es posible conectarse a los servicios en línea de Franz.",
6 "global.notConnectedToTheInternet" : "No estás conectado a Internet",
4 "import.headline" : "Importa tus servicios de Franz 4", 7 "import.headline" : "Importa tus servicios de Franz 4",
5 "import.notSupportedHeadline" : "Servicios no soportados aún en Franz 5", 8 "import.notSupportedHeadline" : "Servicios no admitidos aún en Franz 5",
6 "import.skip.label" : "Quiero agregar servicios manualmente", 9 "import.skip.label" : "Quiero agregar servicios manualmente",
7 "import.submit.label" : "Importar servicios", 10 "import.submit.label" : "Importar servicios",
8 "infobar.buttonChangelog" : "¿Qué hay de nuevo?", 11 "infobar.buttonChangelog" : "¿Qué hay de nuevo?",
@@ -14,7 +17,7 @@
14 "invite.email.label" : "Dirección de correo electrónico", 17 "invite.email.label" : "Dirección de correo electrónico",
15 "invite.headline.friends" : "Invita a 3 de tus amigos o compañeros", 18 "invite.headline.friends" : "Invita a 3 de tus amigos o compañeros",
16 "invite.name.label" : "Nombre", 19 "invite.name.label" : "Nombre",
17 "invite.skip.label" : "Quiero hacer esto después", 20 "invite.skip.label" : "Lo haré más tarde",
18 "invite.submit.label" : "Enviar invitaciones", 21 "invite.submit.label" : "Enviar invitaciones",
19 "invite.successInfo" : "Invitaciones enviadas correctamente", 22 "invite.successInfo" : "Invitaciones enviadas correctamente",
20 "login.email.label" : "Dirección de correo electrónico", 23 "login.email.label" : "Dirección de correo electrónico",
@@ -25,7 +28,7 @@
25 "login.password.label" : "Contraseña", 28 "login.password.label" : "Contraseña",
26 "login.serverLogout" : "Tu sesión ha expirado, por favor inicia la sesión de nuevo.", 29 "login.serverLogout" : "Tu sesión ha expirado, por favor inicia la sesión de nuevo.",
27 "login.submit.label" : "Iniciar sesión", 30 "login.submit.label" : "Iniciar sesión",
28 "login.tokenExpired" : "Tu sesión expiró, por favor inicia sesión otra vez.", 31 "login.tokenExpired" : "Tu sesión ha expirado, por favor inicia sesión de nuevo.",
29 "menu.app.about" : "Sobre Franz", 32 "menu.app.about" : "Sobre Franz",
30 "menu.app.hide" : "Ocultar", 33 "menu.app.hide" : "Ocultar",
31 "menu.app.hideOthers" : "Ocultar otros", 34 "menu.app.hideOthers" : "Ocultar otros",
@@ -51,12 +54,12 @@
51 "menu.help.changelog" : "Registro de cambios", 54 "menu.help.changelog" : "Registro de cambios",
52 "menu.help.learnMore" : "Conocer más", 55 "menu.help.learnMore" : "Conocer más",
53 "menu.help.privacy" : "Declaración de privacidad", 56 "menu.help.privacy" : "Declaración de privacidad",
54 "menu.help.support" : "Soporte", 57 "menu.help.support" : "Ayuda técnica",
55 "menu.help.tos" : "Términos del Servicio", 58 "menu.help.tos" : "Términos del Servicio",
56 "menu.services" : "Servicios", 59 "menu.services" : "Servicios",
57 "menu.services.addNewService" : "Añadir Nuevo Servicio...", 60 "menu.services.addNewService" : "Añadir Nuevo Servicio...",
58 "menu.view" : "Mostrar", 61 "menu.view" : "Mostrar",
59 "menu.view.enterFullScreen" : "Entrar a Pantalla Completa", 62 "menu.view.enterFullScreen" : "Pasar a pantalla completa",
60 "menu.view.exitFullScreen" : "Salir de Pantalla Completa", 63 "menu.view.exitFullScreen" : "Salir de Pantalla Completa",
61 "menu.view.reloadFranz" : "Recargar Franz", 64 "menu.view.reloadFranz" : "Recargar Franz",
62 "menu.view.reloadService" : "Recargar Servicio", 65 "menu.view.reloadService" : "Recargar Servicio",
@@ -71,11 +74,12 @@
71 "menu.window.minimize" : "Minimizar", 74 "menu.window.minimize" : "Minimizar",
72 "password.email.label" : "Dirección de correo electrónico", 75 "password.email.label" : "Dirección de correo electrónico",
73 "password.headline" : "Restablecer contraseña", 76 "password.headline" : "Restablecer contraseña",
74 "password.link.login" : "Iniciar sesión en tu cuenta", 77 "password.link.login" : "Inicia sesión en tu cuenta",
75 "password.link.signup" : "Crear una cuenta gratuita", 78 "password.link.signup" : "Crear una cuenta gratuita",
76 "password.noUser" : "No se encontró un usuario con esa dirección de correo electrónico", 79 "password.noUser" : "No se encontró un usuario con esa dirección de correo electrónico",
77 "password.submit.label" : "Enviar", 80 "password.submit.label" : "Enviar",
78 "password.successInfo" : "Por favor revisa tu correo electrónico", 81 "password.successInfo" : "Por favor revisa tu correo electrónico",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "Apoya a Franz", 83 "pricing.headline" : "Apoya a Franz",
80 "pricing.link.skipPayment" : "No quiero apoyar el desarrollo de Franz.", 84 "pricing.link.skipPayment" : "No quiero apoyar el desarrollo de Franz.",
81 "pricing.submit.label" : "Quiero apoyar el desarrollo de Franz", 85 "pricing.submit.label" : "Quiero apoyar el desarrollo de Franz",
@@ -116,8 +120,9 @@
116 "settings.app.form.autoLaunchInBackground" : "Abrir en segundo plano", 120 "settings.app.form.autoLaunchInBackground" : "Abrir en segundo plano",
117 "settings.app.form.autoLaunchOnStart" : "Iniciar Franz al iniciar", 121 "settings.app.form.autoLaunchOnStart" : "Iniciar Franz al iniciar",
118 "settings.app.form.beta" : "Incluir versiones beta", 122 "settings.app.form.beta" : "Incluir versiones beta",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", 123 "settings.app.form.darkMode" : "Join the Dark Side",
120 "settings.app.form.enableMenuBar" : "mostrar a franz en La barra de menús", 124 "settings.app.form.enableGPUAcceleration" : "Habilitar aceleración de GPU",
125 "settings.app.form.enableMenuBar" : "Mostrar a Franz en la barra de menús",
121 "settings.app.form.enableSpellchecking" : "Activar corrección ortográfica", 126 "settings.app.form.enableSpellchecking" : "Activar corrección ortográfica",
122 "settings.app.form.enableSystemTray" : "Mostrar Franz en la bandeja del sistema", 127 "settings.app.form.enableSystemTray" : "Mostrar Franz en la bandeja del sistema",
123 "settings.app.form.hideDockIcon" : "Ocultar Icono de Franz en barra de herramientas", 128 "settings.app.form.hideDockIcon" : "Ocultar Icono de Franz en barra de herramientas",
@@ -126,6 +131,7 @@
126 "settings.app.form.runInBackground" : "Mantener Franz en segundo plano al cerrar la ventana", 131 "settings.app.form.runInBackground" : "Mantener Franz en segundo plano al cerrar la ventana",
127 "settings.app.form.showDisabledServices" : "Mostrar pestañas de servicios desactivados", 132 "settings.app.form.showDisabledServices" : "Mostrar pestañas de servicios desactivados",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "Mostrar la insignia de mensajes sin leer cuando las notificaciones están desactivadas", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "Mostrar la insignia de mensajes sin leer cuando las notificaciones están desactivadas",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "Configuración", 135 "settings.app.headline" : "Configuración",
130 "settings.app.headlineAdvanced" : "Avanzado", 136 "settings.app.headlineAdvanced" : "Avanzado",
131 "settings.app.headlineAppearance" : "Apariencia", 137 "settings.app.headlineAppearance" : "Apariencia",
@@ -134,7 +140,7 @@
134 "settings.app.headlineUpdates" : "Actualizaciones", 140 "settings.app.headlineUpdates" : "Actualizaciones",
135 "settings.app.restartRequired" : "Los cambios requieren reiniciar", 141 "settings.app.restartRequired" : "Los cambios requieren reiniciar",
136 "settings.app.subheadlineCache" : "Caché", 142 "settings.app.subheadlineCache" : "Caché",
137 "settings.app.translationHelp" : "Ayúdenos a traducir Franz a tu idioma.", 143 "settings.app.translationHelp" : "Ayúdanos a traducir Franz a tu idioma.",
138 "settings.app.updateStatusAvailable" : "Actualización disponible, descargando...", 144 "settings.app.updateStatusAvailable" : "Actualización disponible, descargando...",
139 "settings.app.updateStatusSearching" : "Buscando actualizaciones", 145 "settings.app.updateStatusSearching" : "Buscando actualizaciones",
140 "settings.app.updateStatusUpToDate" : "Estás utilizando la última versión de Franz", 146 "settings.app.updateStatusUpToDate" : "Estás utilizando la última versión de Franz",
@@ -144,18 +150,18 @@
144 "settings.navigation.inviteFriends" : "Invita a tus amigos", 150 "settings.navigation.inviteFriends" : "Invita a tus amigos",
145 "settings.navigation.logout" : "Cerrar sesión", 151 "settings.navigation.logout" : "Cerrar sesión",
146 "settings.navigation.settings" : "Configuración", 152 "settings.navigation.settings" : "Configuración",
147 "settings.navigation.yourServices" : "Sus servicios", 153 "settings.navigation.yourServices" : "Tus servicios",
148 "settings.recipes.all" : "Todos los servicios", 154 "settings.recipes.all" : "Todos los servicios",
149 "settings.recipes.dev" : "Desarrollo", 155 "settings.recipes.dev" : "Desarrollo",
150 "settings.recipes.headline" : "Servicios disponibles", 156 "settings.recipes.headline" : "Servicios disponibles",
151 "settings.recipes.missingService" : "¿Falta algún servicio?", 157 "settings.recipes.missingService" : "¿Echas de menos algún servicio?",
152 "settings.recipes.mostPopular" : "Más populares", 158 "settings.recipes.mostPopular" : "Más populares",
153 "settings.recipes.nothingFound" : "Lo siento, pero no hay ningún servicio coincidente con tus términos de búsqueda.", 159 "settings.recipes.nothingFound" : "Lo siento, pero no hay ningún servicio coincidente con tus términos de búsqueda.",
154 "settings.recipes.servicesSuccessfulAddedInfo" : "Servicio añadido exitosamente", 160 "settings.recipes.servicesSuccessfulAddedInfo" : "Servicio añadido con éxito",
155 "settings.searchService" : "Buscar servicio", 161 "settings.searchService" : "Buscar servicio",
156 "settings.service.error.goBack" : "Volver a los servicios", 162 "settings.service.error.goBack" : "Volver a los servicios",
157 "settings.service.error.headline" : "Error", 163 "settings.service.error.headline" : "Error",
158 "settings.service.error.message" : "No se pudo cargar el servicio", 164 "settings.service.error.message" : "No se pudo cargar el servicio.",
159 "settings.service.form.addServiceHeadline" : "Añadir {name}", 165 "settings.service.form.addServiceHeadline" : "Añadir {name}",
160 "settings.service.form.availableServices" : "Servicios disponibles", 166 "settings.service.form.availableServices" : "Servicios disponibles",
161 "settings.service.form.customUrl" : "Servidor personalizado", 167 "settings.service.form.customUrl" : "Servidor personalizado",
@@ -165,7 +171,8 @@
165 "settings.service.form.deleteButton" : "Eliminar servicio", 171 "settings.service.form.deleteButton" : "Eliminar servicio",
166 "settings.service.form.editServiceHeadline" : "Editar {name}", 172 "settings.service.form.editServiceHeadline" : "Editar {name}",
167 "settings.service.form.enableAudio" : "Habilitar audio", 173 "settings.service.form.enableAudio" : "Habilitar audio",
168 "settings.service.form.enableBadge" : "Mostrar insignia de mensajes no leídos", 174 "settings.service.form.enableBadge" : "Mostrar señal de mensajes no leídos",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "Activar notificaciones", 176 "settings.service.form.enableNotification" : "Activar notificaciones",
170 "settings.service.form.enableService" : "Activar servicio", 177 "settings.service.form.enableService" : "Activar servicio",
171 "settings.service.form.headlineBadges" : "Insignias de mensaje no leídos", 178 "settings.service.form.headlineBadges" : "Insignias de mensaje no leídos",
@@ -175,9 +182,15 @@
175 "settings.service.form.iconDelete" : "Borrar", 182 "settings.service.form.iconDelete" : "Borrar",
176 "settings.service.form.iconUpload" : "Arrastra tu imagen, o haz clic aquí", 183 "settings.service.form.iconUpload" : "Arrastra tu imagen, o haz clic aquí",
177 "settings.service.form.indirectMessageInfo" : "Serás notificado de todos los mensajes del canal, no sólo @username, @channel, @here, ...", 184 "settings.service.form.indirectMessageInfo" : "Serás notificado de todos los mensajes del canal, no sólo @username, @channel, @here, ...",
178 "settings.service.form.indirectMessages" : "Mostrar insignia de notificación para todos los mensajes nuevos", 185 "settings.service.form.indirectMessages" : "Mostrar señal de notificación para todos los mensajes nuevos",
179 "settings.service.form.isMutedInfo" : "Cuando estén desactivados, todos los sonidos de notificación y la reproducción de audio serán silenciados", 186 "settings.service.form.isMutedInfo" : "Cuando estén desactivados, todos los sonidos de notificación y la reproducción de audio serán silenciados",
180 "settings.service.form.name" : "Nombre", 187 "settings.service.form.name" : "Nombre",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "Guardar servicio", 194 "settings.service.form.saveButton" : "Guardar servicio",
182 "settings.service.form.tabHosted" : "Alojado", 195 "settings.service.form.tabHosted" : "Alojado",
183 "settings.service.form.tabOnPremise" : "Auto alojado â­ï¸", 196 "settings.service.form.tabOnPremise" : "Auto alojado â­ï¸",
@@ -192,10 +205,10 @@
192 "settings.services.tooltip.isMuted" : "Todos los sonidos están silenciados", 205 "settings.services.tooltip.isMuted" : "Todos los sonidos están silenciados",
193 "settings.services.tooltip.notificationsDisabled" : "Las notificaciones están desactivadas", 206 "settings.services.tooltip.notificationsDisabled" : "Las notificaciones están desactivadas",
194 "settings.services.updatedInfo" : "Tus cambios han sido guardados", 207 "settings.services.updatedInfo" : "Tus cambios han sido guardados",
195 "settings.user.form.accountType.company" : "Compañía", 208 "settings.user.form.accountType.company" : "Empresa",
196 "settings.user.form.accountType.individual" : "Individual", 209 "settings.user.form.accountType.individual" : "Individual",
197 "settings.user.form.accountType.label" : "Tipo de cuenta", 210 "settings.user.form.accountType.label" : "Tipo de cuenta",
198 "settings.user.form.accountType.non-profit" : "Sin fines de lucro", 211 "settings.user.form.accountType.non-profit" : "Sin ánimo de lucro",
199 "settings.user.form.currentPassword" : "Contraseña actual", 212 "settings.user.form.currentPassword" : "Contraseña actual",
200 "settings.user.form.email" : "Correo electrónico", 213 "settings.user.form.email" : "Correo electrónico",
201 "settings.user.form.firstname" : "Nombre", 214 "settings.user.form.firstname" : "Nombre",
@@ -211,7 +224,7 @@
211 "signup.firstname.label" : "Nombre", 224 "signup.firstname.label" : "Nombre",
212 "signup.headline" : "Registrarse", 225 "signup.headline" : "Registrarse",
213 "signup.lastname.label" : "Apellido", 226 "signup.lastname.label" : "Apellido",
214 "signup.legal.info" : "Al crear una cuenta en Franz usted acepta las", 227 "signup.legal.info" : "Al crear una cuenta en Franz usted acepta",
215 "signup.legal.privacy" : "Declaración de privacidad", 228 "signup.legal.privacy" : "Declaración de privacidad",
216 "signup.legal.terms" : "Términos de servicio", 229 "signup.legal.terms" : "Términos de servicio",
217 "signup.link.login" : "Ya tienes una cuenta, ¿Iniciar sesión?", 230 "signup.link.login" : "Ya tienes una cuenta, ¿Iniciar sesión?",
@@ -220,10 +233,12 @@
220 "subscription.euTaxInfo" : "Residentes de la UE: pueden aplicarse impuestos locales", 233 "subscription.euTaxInfo" : "Residentes de la UE: pueden aplicarse impuestos locales",
221 "subscription.features.ads" : "¡Sin publicidad, para siempre!", 234 "subscription.features.ads" : "¡Sin publicidad, para siempre!",
222 "subscription.features.comingSoon" : "próximamente", 235 "subscription.features.comingSoon" : "próximamente",
223 "subscription.features.customServices" : "Servicios privados para ti y tu equipo",
224 "subscription.features.encryptedSync" : "Sincronización de sesión encriptada", 236 "subscription.features.encryptedSync" : "Sincronización de sesión encriptada",
237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "Añade servicios locales\/autoalojados como HipChat", 238 "subscription.features.onpremise" : "Añade servicios locales\/autoalojados como HipChat",
226 "subscription.features.vpn" : "Soporte para Proxy y VPN", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "La Cuenta pagada de Colaborador Premium de Franz incluye", 242 "subscription.includedFeatures" : "La Cuenta pagada de Colaborador Premium de Franz incluye",
228 "subscription.paymentSessionError" : "No se pudo inicializar el formulario de pago", 243 "subscription.paymentSessionError" : "No se pudo inicializar el formulario de pago",
229 "subscription.submit.label" : "Quiero apoyar el desarrollo de Franz", 244 "subscription.submit.label" : "Quiero apoyar el desarrollo de Franz",
diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json
index e00a5671b..6964d27d2 100644
--- a/src/i18n/locales/fr.json
+++ b/src/i18n/locales/fr.json
@@ -1,4 +1,7 @@
1{ 1{
2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
2 "global.api.unhealthy" : "Impossible de se connecter aux services en ligne de Franz", 5 "global.api.unhealthy" : "Impossible de se connecter aux services en ligne de Franz",
3 "global.notConnectedToTheInternet" : "Vous n'êtes pas connecté à Internet.", 6 "global.notConnectedToTheInternet" : "Vous n'êtes pas connecté à Internet.",
4 "import.headline" : "Importez vos services depuis la version 4 de Franz.", 7 "import.headline" : "Importez vos services depuis la version 4 de Franz.",
@@ -11,20 +14,20 @@
11 "infobar.requiredRequestsFailed" : "Impossible d'accéder aux services et informations de l'utilisateur", 14 "infobar.requiredRequestsFailed" : "Impossible d'accéder aux services et informations de l'utilisateur",
12 "infobar.servicesUpdated" : "Vos services ont été mis à jour.", 15 "infobar.servicesUpdated" : "Vos services ont été mis à jour.",
13 "infobar.updateAvailable" : "Une nouvelle mise à jour pour Franz est disponible.", 16 "infobar.updateAvailable" : "Une nouvelle mise à jour pour Franz est disponible.",
14 "invite.email.label" : "Adresse e-mail", 17 "invite.email.label" : "Adresse Email",
15 "invite.headline.friends" : "Invitez 3 amis ou collègues", 18 "invite.headline.friends" : "Invitez 3 amis ou collègues",
16 "invite.name.label" : "Nom", 19 "invite.name.label" : "Nom",
17 "invite.skip.label" : "Je veux faire cela plus tard", 20 "invite.skip.label" : "Je veux faire cela plus tard",
18 "invite.submit.label" : "Envoyer des invitations", 21 "invite.submit.label" : "Envoyer des invitations",
19 "invite.successInfo" : "Invitations envoyées", 22 "invite.successInfo" : "Invitations envoyées avec succès",
20 "login.email.label" : "Adresse e-mail", 23 "login.email.label" : "Adresse email",
21 "login.headline" : "S'inscrire", 24 "login.headline" : "S'identifier",
22 "login.invalidCredentials" : "E-mail ou mot de passe invalide", 25 "login.invalidCredentials" : "Email ou mot de passe invalide",
23 "login.link.password" : "Réinitialiser le mot de passe", 26 "login.link.password" : "Réinitialiser le mot de passe",
24 "login.link.signup" : "Créer un compte gratuit", 27 "login.link.signup" : "Créer un compte gratuit",
25 "login.password.label" : "Mot de passe", 28 "login.password.label" : "Mot de passe",
26 "login.serverLogout" : "Votre session a expiré. Reconnectez-vous s'il vous plaît.", 29 "login.serverLogout" : "Votre session a expiré. Reconnectez-vous s'il vous plaît.",
27 "login.submit.label" : "Connexion", 30 "login.submit.label" : "Se connecter",
28 "login.tokenExpired" : "Votre session a expiré, veuillez vous reconnecter.", 31 "login.tokenExpired" : "Votre session a expiré, veuillez vous reconnecter.",
29 "menu.app.about" : "À propos de Franz", 32 "menu.app.about" : "À propos de Franz",
30 "menu.app.hide" : "Masquer", 33 "menu.app.hide" : "Masquer",
@@ -55,7 +58,7 @@
55 "menu.help.tos" : "Conditions d'utilisation", 58 "menu.help.tos" : "Conditions d'utilisation",
56 "menu.services" : "Services", 59 "menu.services" : "Services",
57 "menu.services.addNewService" : "Ajouter un nouveau service...", 60 "menu.services.addNewService" : "Ajouter un nouveau service...",
58 "menu.view" : "Affichage", 61 "menu.view" : "Aperçu",
59 "menu.view.enterFullScreen" : "Entrer en mode plein écran", 62 "menu.view.enterFullScreen" : "Entrer en mode plein écran",
60 "menu.view.exitFullScreen" : "Sortir du mode plein écran", 63 "menu.view.exitFullScreen" : "Sortir du mode plein écran",
61 "menu.view.reloadFranz" : "Actualiser Franz", 64 "menu.view.reloadFranz" : "Actualiser Franz",
@@ -76,6 +79,7 @@
76 "password.noUser" : "Aucun utilisateur n'a été trouvé avec cette adresse e-mail", 79 "password.noUser" : "Aucun utilisateur n'a été trouvé avec cette adresse e-mail",
77 "password.submit.label" : "Soumettre", 80 "password.submit.label" : "Soumettre",
78 "password.successInfo" : "Merci de consulter vos e-mails", 81 "password.successInfo" : "Merci de consulter vos e-mails",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "Soutenez Franz", 83 "pricing.headline" : "Soutenez Franz",
80 "pricing.link.skipPayment" : "Je ne veux pas soutenir le développement de Franz.", 84 "pricing.link.skipPayment" : "Je ne veux pas soutenir le développement de Franz.",
81 "pricing.submit.label" : "Je veux soutenir le développement de Franz", 85 "pricing.submit.label" : "Je veux soutenir le développement de Franz",
@@ -116,7 +120,8 @@
116 "settings.app.form.autoLaunchInBackground" : "Ouvrir en arrière-plan", 120 "settings.app.form.autoLaunchInBackground" : "Ouvrir en arrière-plan",
117 "settings.app.form.autoLaunchOnStart" : "Lancer Franz au démarrage", 121 "settings.app.form.autoLaunchOnStart" : "Lancer Franz au démarrage",
118 "settings.app.form.beta" : "Accepter les versions bêta", 122 "settings.app.form.beta" : "Accepter les versions bêta",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", 123 "settings.app.form.darkMode" : "Join the Dark Side",
124 "settings.app.form.enableGPUAcceleration" : "Activer l'accélération GPU",
120 "settings.app.form.enableMenuBar" : "Afficher Franz dans la barre des menus", 125 "settings.app.form.enableMenuBar" : "Afficher Franz dans la barre des menus",
121 "settings.app.form.enableSpellchecking" : "Activer la vérification orthographique", 126 "settings.app.form.enableSpellchecking" : "Activer la vérification orthographique",
122 "settings.app.form.enableSystemTray" : "Afficher Franz dans la barre d'état système", 127 "settings.app.form.enableSystemTray" : "Afficher Franz dans la barre d'état système",
@@ -126,6 +131,7 @@
126 "settings.app.form.runInBackground" : "Garder Franz ouvert en arrière-plan à la fermeture de la fenêtre", 131 "settings.app.form.runInBackground" : "Garder Franz ouvert en arrière-plan à la fermeture de la fenêtre",
127 "settings.app.form.showDisabledServices" : "Afficher les onglets des services désactivés", 132 "settings.app.form.showDisabledServices" : "Afficher les onglets des services désactivés",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "Afficher les badges de messages non lus quand les notifications sont désactivées.", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "Afficher les badges de messages non lus quand les notifications sont désactivées.",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "Paramètres", 135 "settings.app.headline" : "Paramètres",
130 "settings.app.headlineAdvanced" : "Paramètres avancés", 136 "settings.app.headlineAdvanced" : "Paramètres avancés",
131 "settings.app.headlineAppearance" : "Apparence", 137 "settings.app.headlineAppearance" : "Apparence",
@@ -166,6 +172,7 @@
166 "settings.service.form.editServiceHeadline" : "Modifier {name}", 172 "settings.service.form.editServiceHeadline" : "Modifier {name}",
167 "settings.service.form.enableAudio" : "Activer l'audio", 173 "settings.service.form.enableAudio" : "Activer l'audio",
168 "settings.service.form.enableBadge" : "Afficher le badge des messages non lus", 174 "settings.service.form.enableBadge" : "Afficher le badge des messages non lus",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "Activer les notifications", 176 "settings.service.form.enableNotification" : "Activer les notifications",
170 "settings.service.form.enableService" : "Activer le service", 177 "settings.service.form.enableService" : "Activer le service",
171 "settings.service.form.headlineBadges" : "Badge des messages non lus", 178 "settings.service.form.headlineBadges" : "Badge des messages non lus",
@@ -178,6 +185,12 @@
178 "settings.service.form.indirectMessages" : "Afficher le badge des messages pour tous les nouveaux messages", 185 "settings.service.form.indirectMessages" : "Afficher le badge des messages pour tous les nouveaux messages",
179 "settings.service.form.isMutedInfo" : "Lorsque désactivé, tous les sons de notifications ainsi que l'audio sont coupés", 186 "settings.service.form.isMutedInfo" : "Lorsque désactivé, tous les sons de notifications ainsi que l'audio sont coupés",
180 "settings.service.form.name" : "Nom", 187 "settings.service.form.name" : "Nom",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "Enregistrer le service", 194 "settings.service.form.saveButton" : "Enregistrer le service",
182 "settings.service.form.tabHosted" : "Hébergé", 195 "settings.service.form.tabHosted" : "Hébergé",
183 "settings.service.form.tabOnPremise" : "Auto-hébergé â­ï¸", 196 "settings.service.form.tabOnPremise" : "Auto-hébergé â­ï¸",
@@ -220,10 +233,12 @@
220 "subscription.euTaxInfo" : "Résidents de l'UE : une taxe locale peut s'appliquer", 233 "subscription.euTaxInfo" : "Résidents de l'UE : une taxe locale peut s'appliquer",
221 "subscription.features.ads" : "Plus de pubs !", 234 "subscription.features.ads" : "Plus de pubs !",
222 "subscription.features.comingSoon" : "Bientôt disponible", 235 "subscription.features.comingSoon" : "Bientôt disponible",
223 "subscription.features.customServices" : "Services privés pour vous et votre équipe",
224 "subscription.features.encryptedSync" : "Synchronisation de session cryptée", 236 "subscription.features.encryptedSync" : "Synchronisation de session cryptée",
237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "Ajouter des services locaux\/hébergés comme HipChat", 238 "subscription.features.onpremise" : "Ajouter des services locaux\/hébergés comme HipChat",
226 "subscription.features.vpn" : "Support des Proxy et VPN", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "Le compte payant Supporter Premium Franz inclut", 242 "subscription.includedFeatures" : "Le compte payant Supporter Premium Franz inclut",
228 "subscription.paymentSessionError" : "Initialisation du paiement impossible", 243 "subscription.paymentSessionError" : "Initialisation du paiement impossible",
229 "subscription.submit.label" : "Je souhaite aider au développement de Franz", 244 "subscription.submit.label" : "Je souhaite aider au développement de Franz",
diff --git a/src/i18n/locales/ga.json b/src/i18n/locales/ga.json
index 1c0b537b2..3bb838ba3 100644
--- a/src/i18n/locales/ga.json
+++ b/src/i18n/locales/ga.json
@@ -1,4 +1,7 @@
1{ 1{
2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
2 "global.api.unhealthy" : "Ní féidir nascadh le seirbhísí Franz ar líne", 5 "global.api.unhealthy" : "Ní féidir nascadh le seirbhísí Franz ar líne",
3 "global.notConnectedToTheInternet" : "Níl tú nasctha leis an Idirlíon.", 6 "global.notConnectedToTheInternet" : "Níl tú nasctha leis an Idirlíon.",
4 "import.headline" : "Iompórtáil do sheirbhísí Franz 4", 7 "import.headline" : "Iompórtáil do sheirbhísí Franz 4",
@@ -76,6 +79,7 @@
76 "password.noUser" : "Níor aimsíodh úsáideoir leis an seoladh ríomhphoist seo", 79 "password.noUser" : "Níor aimsíodh úsáideoir leis an seoladh ríomhphoist seo",
77 "password.submit.label" : "Cuir isteach", 80 "password.submit.label" : "Cuir isteach",
78 "password.successInfo" : "Seiceáil do chuid ríomhphoist le do thoil", 81 "password.successInfo" : "Seiceáil do chuid ríomhphoist le do thoil",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "Tabhair tacaíocht do Franz", 83 "pricing.headline" : "Tabhair tacaíocht do Franz",
80 "pricing.link.skipPayment" : "Níor mhaith liom tacaíocht a thabhairt d'fhorbairt Franz.", 84 "pricing.link.skipPayment" : "Níor mhaith liom tacaíocht a thabhairt d'fhorbairt Franz.",
81 "pricing.submit.label" : "Ba mhaith liom tacaíocht a thabhairt d'fhorbairt Franz.", 85 "pricing.submit.label" : "Ba mhaith liom tacaíocht a thabhairt d'fhorbairt Franz.",
@@ -116,6 +120,7 @@
116 "settings.app.form.autoLaunchInBackground" : "Oscail sa chúlra", 120 "settings.app.form.autoLaunchInBackground" : "Oscail sa chúlra",
117 "settings.app.form.autoLaunchOnStart" : "Láinseáil Franz ón tús", 121 "settings.app.form.autoLaunchOnStart" : "Láinseáil Franz ón tús",
118 "settings.app.form.beta" : "Cuir leagain béite san áireamh", 122 "settings.app.form.beta" : "Cuir leagain béite san áireamh",
123 "settings.app.form.darkMode" : "Join the Dark Side",
119 "settings.app.form.enableGPUAcceleration" : "Cumasaigh luasghéarú APG", 124 "settings.app.form.enableGPUAcceleration" : "Cumasaigh luasghéarú APG",
120 "settings.app.form.enableMenuBar" : "Taispeáin Franz sa bharra roghchláir", 125 "settings.app.form.enableMenuBar" : "Taispeáin Franz sa bharra roghchláir",
121 "settings.app.form.enableSpellchecking" : "Cumasaigh seiceáil litrithe", 126 "settings.app.form.enableSpellchecking" : "Cumasaigh seiceáil litrithe",
@@ -126,6 +131,7 @@
126 "settings.app.form.runInBackground" : "Coimeád Franz sa chúlra nuair a dhúntar an fhuinneog", 131 "settings.app.form.runInBackground" : "Coimeád Franz sa chúlra nuair a dhúntar an fhuinneog",
127 "settings.app.form.showDisabledServices" : "Taispeáin tabanna do sheirbhísí dhíchumasaithe", 132 "settings.app.form.showDisabledServices" : "Taispeáin tabanna do sheirbhísí dhíchumasaithe",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "Taispeáin teachtaireachtaí neamhléite, nuair a dhíchumasaítear fógraí", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "Taispeáin teachtaireachtaí neamhléite, nuair a dhíchumasaítear fógraí",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "Socruithe", 135 "settings.app.headline" : "Socruithe",
130 "settings.app.headlineAdvanced" : "Casta", 136 "settings.app.headlineAdvanced" : "Casta",
131 "settings.app.headlineAppearance" : "Dealramh", 137 "settings.app.headlineAppearance" : "Dealramh",
@@ -166,6 +172,7 @@
166 "settings.service.form.editServiceHeadline" : "Cuir {name} in eagar", 172 "settings.service.form.editServiceHeadline" : "Cuir {name} in eagar",
167 "settings.service.form.enableAudio" : "Cumasaigh fuaim", 173 "settings.service.form.enableAudio" : "Cumasaigh fuaim",
168 "settings.service.form.enableBadge" : "Taispeáin comhartha do theachtaireachtaí neamhléite", 174 "settings.service.form.enableBadge" : "Taispeáin comhartha do theachtaireachtaí neamhléite",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "Cumasaigh fógraí", 176 "settings.service.form.enableNotification" : "Cumasaigh fógraí",
170 "settings.service.form.enableService" : "Cumasaigh seirbhís", 177 "settings.service.form.enableService" : "Cumasaigh seirbhís",
171 "settings.service.form.headlineBadges" : "Comhartha do theachtaireachtaí neamhléite", 178 "settings.service.form.headlineBadges" : "Comhartha do theachtaireachtaí neamhléite",
@@ -178,6 +185,12 @@
178 "settings.service.form.indirectMessages" : "Taispeáin comhartha theachtaireachta do gach teachtaireacht nua", 185 "settings.service.form.indirectMessages" : "Taispeáin comhartha theachtaireachta do gach teachtaireacht nua",
179 "settings.service.form.isMutedInfo" : "Tachtar gach fuaim fógraí agus athchasadh fuaime", 186 "settings.service.form.isMutedInfo" : "Tachtar gach fuaim fógraí agus athchasadh fuaime",
180 "settings.service.form.name" : "Ainm", 187 "settings.service.form.name" : "Ainm",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "Sábháil seirbhís", 194 "settings.service.form.saveButton" : "Sábháil seirbhís",
182 "settings.service.form.tabHosted" : "Óstáilte", 195 "settings.service.form.tabHosted" : "Óstáilte",
183 "settings.service.form.tabOnPremise" : "Féinóstáilte â­ï¸", 196 "settings.service.form.tabOnPremise" : "Féinóstáilte â­ï¸",
@@ -220,10 +233,12 @@
220 "subscription.euTaxInfo" : "Ãithritheoirí an tAÉ: is féidir cáin díolacháin áitiúla a chur i bhfeidhm", 233 "subscription.euTaxInfo" : "Ãithritheoirí an tAÉ: is féidir cáin díolacháin áitiúla a chur i bhfeidhm",
221 "subscription.features.ads" : "Fógraí ar bith, choíche!", 234 "subscription.features.ads" : "Fógraí ar bith, choíche!",
222 "subscription.features.comingSoon" : "ag teacht go luath", 235 "subscription.features.comingSoon" : "ag teacht go luath",
223 "subscription.features.customServices" : "Seirbhísí phríobháideach dhuitse agus do d'fhoireann",
224 "subscription.features.encryptedSync" : "Sionchronú seisiúin chriptithe", 236 "subscription.features.encryptedSync" : "Sionchronú seisiúin chriptithe",
237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "Cuir seirbhísí óstáilte ar nós HipChat leis", 238 "subscription.features.onpremise" : "Cuir seirbhísí óstáilte ar nós HipChat leis",
226 "subscription.features.vpn" : "Tacaíocht seachfhreastalaí ⊠LPF", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "Cuireann Cuntas Phŕeimhthacadóra Franz san áireamh", 242 "subscription.includedFeatures" : "Cuireann Cuntas Phŕeimhthacadóra Franz san áireamh",
228 "subscription.paymentSessionError" : "Ní féidir an bhfoirm íocaíochta a lódáil", 243 "subscription.paymentSessionError" : "Ní féidir an bhfoirm íocaíochta a lódáil",
229 "subscription.submit.label" : "Ba mhaith liom tacaíocht a thabhairt d'fhorbairt Franz", 244 "subscription.submit.label" : "Ba mhaith liom tacaíocht a thabhairt d'fhorbairt Franz",
diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json
index e227c4537..ae9f25695 100644
--- a/src/i18n/locales/hr.json
+++ b/src/i18n/locales/hr.json
@@ -1,4 +1,7 @@
1{ 1{
2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
2 "global.api.unhealthy" : "Nije se moguće povezati na Francove on-line servise. ", 5 "global.api.unhealthy" : "Nije se moguće povezati na Francove on-line servise. ",
3 "global.notConnectedToTheInternet" : "Sada ste povezani s internetom. ", 6 "global.notConnectedToTheInternet" : "Sada ste povezani s internetom. ",
4 "import.headline" : "Uvezite svoje Franc 4 servise. ", 7 "import.headline" : "Uvezite svoje Franc 4 servise. ",
@@ -26,7 +29,7 @@
26 "login.serverLogout" : "Vaša sesija je istekla, prijavite se ponovo.", 29 "login.serverLogout" : "Vaša sesija je istekla, prijavite se ponovo.",
27 "login.submit.label" : "Prijavite se", 30 "login.submit.label" : "Prijavite se",
28 "login.tokenExpired" : "Vaša sesija je istekla, prijavite se ponovo.", 31 "login.tokenExpired" : "Vaša sesija je istekla, prijavite se ponovo.",
29 "menu.app.about" : "About Franz", 32 "menu.app.about" : "O aplikaciji",
30 "menu.app.hide" : "Hide", 33 "menu.app.hide" : "Hide",
31 "menu.app.hideOthers" : "Hide Others", 34 "menu.app.hideOthers" : "Hide Others",
32 "menu.app.quit" : "Quit", 35 "menu.app.quit" : "Quit",
@@ -76,6 +79,7 @@
76 "password.noUser" : "Ne postoji ni jedan korisnik s tom e-mail adresom", 79 "password.noUser" : "Ne postoji ni jedan korisnik s tom e-mail adresom",
77 "password.submit.label" : "Pošalji", 80 "password.submit.label" : "Pošalji",
78 "password.successInfo" : "Molimo Vas da provjerite svoju e-mail adresu", 81 "password.successInfo" : "Molimo Vas da provjerite svoju e-mail adresu",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "Podržite Franz aplikaciju", 83 "pricing.headline" : "Podržite Franz aplikaciju",
80 "pricing.link.skipPayment" : "Ne želim da podržim razvoj Franz-a.", 84 "pricing.link.skipPayment" : "Ne želim da podržim razvoj Franz-a.",
81 "pricing.submit.label" : "Želim da podržim razvoj Franz-a.", 85 "pricing.submit.label" : "Želim da podržim razvoj Franz-a.",
@@ -116,16 +120,18 @@
116 "settings.app.form.autoLaunchInBackground" : "Otvori u pozadini", 120 "settings.app.form.autoLaunchInBackground" : "Otvori u pozadini",
117 "settings.app.form.autoLaunchOnStart" : "Pokreni Franz sa sistemom", 121 "settings.app.form.autoLaunchOnStart" : "Pokreni Franz sa sistemom",
118 "settings.app.form.beta" : "Obuhvati i beta verzije", 122 "settings.app.form.beta" : "Obuhvati i beta verzije",
123 "settings.app.form.darkMode" : "Join the Dark Side",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", 124 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
120 "settings.app.form.enableMenuBar" : "Prikaži Franz u traci izbornika", 125 "settings.app.form.enableMenuBar" : "Prikaži Franz u traci izbornika",
121 "settings.app.form.enableSpellchecking" : "Omogući provjeru pravopisa", 126 "settings.app.form.enableSpellchecking" : "Omogući provjeru pravopisa",
122 "settings.app.form.enableSystemTray" : "Prikaži aplikaciju u sustavskoj traci", 127 "settings.app.form.enableSystemTray" : "Prikaži aplikaciju u sustavskoj traci",
123 "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock", 128 "settings.app.form.hideDockIcon" : "Sakrij ikonu Franz u prostoru za obavijesti",
124 "settings.app.form.language" : "Jezik", 129 "settings.app.form.language" : "Jezik",
125 "settings.app.form.minimizeToSystemTray" : "Smanji Franca u sustavsku traku", 130 "settings.app.form.minimizeToSystemTray" : "Smanji Franca u sustavsku traku",
126 "settings.app.form.runInBackground" : "Neka se Franc održava u pozadini i ako je prozor zatvoren", 131 "settings.app.form.runInBackground" : "Neka se Franc održava u pozadini i ako je prozor zatvoren",
127 "settings.app.form.showDisabledServices" : "Prikaži ploÄe s onemogućenim servisima", 132 "settings.app.form.showDisabledServices" : "Prikaži ploÄe s onemogućenim servisima",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "Pokaži neproÄitane znaÄke poruka kad se obavjeÅ¡tenja onemoguće", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "Pokaži neproÄitane znaÄke poruka kad se obavjeÅ¡tenja onemoguće",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "Postavke", 135 "settings.app.headline" : "Postavke",
130 "settings.app.headlineAdvanced" : "Napredne alatke", 136 "settings.app.headlineAdvanced" : "Napredne alatke",
131 "settings.app.headlineAppearance" : "Izgled", 137 "settings.app.headlineAppearance" : "Izgled",
@@ -166,6 +172,7 @@
166 "settings.service.form.editServiceHeadline" : "Uredite {ime}", 172 "settings.service.form.editServiceHeadline" : "Uredite {ime}",
167 "settings.service.form.enableAudio" : "Omogućite zvuk", 173 "settings.service.form.enableAudio" : "Omogućite zvuk",
168 "settings.service.form.enableBadge" : "Show unread message badges", 174 "settings.service.form.enableBadge" : "Show unread message badges",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "Omogućite obavijesti", 176 "settings.service.form.enableNotification" : "Omogućite obavijesti",
170 "settings.service.form.enableService" : "Omogućite usluge", 177 "settings.service.form.enableService" : "Omogućite usluge",
171 "settings.service.form.headlineBadges" : "Unread message badges", 178 "settings.service.form.headlineBadges" : "Unread message badges",
@@ -178,6 +185,12 @@
178 "settings.service.form.indirectMessages" : "Prikaži znaÄku na svim novim porukuama", 185 "settings.service.form.indirectMessages" : "Prikaži znaÄku na svim novim porukuama",
179 "settings.service.form.isMutedInfo" : "Kada je onemogućeno, sve obavijesti, svi zvukovi i sva pozadinska podrÅ¡ka će biti neÄujna. ", 186 "settings.service.form.isMutedInfo" : "Kada je onemogućeno, sve obavijesti, svi zvukovi i sva pozadinska podrÅ¡ka će biti neÄujna. ",
180 "settings.service.form.name" : "Ime", 187 "settings.service.form.name" : "Ime",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "SaÄuvaj uslugu\/e", 194 "settings.service.form.saveButton" : "SaÄuvaj uslugu\/e",
182 "settings.service.form.tabHosted" : "Hostovano", 195 "settings.service.form.tabHosted" : "Hostovano",
183 "settings.service.form.tabOnPremise" : "Samo-hostovano â­ï¸", 196 "settings.service.form.tabOnPremise" : "Samo-hostovano â­ï¸",
@@ -220,10 +233,12 @@
220 "subscription.euTaxInfo" : "EU državljani, upozerenje: Moguće taksiranje ", 233 "subscription.euTaxInfo" : "EU državljani, upozerenje: Moguće taksiranje ",
221 "subscription.features.ads" : "Bez reklama, doživotno!", 234 "subscription.features.ads" : "Bez reklama, doživotno!",
222 "subscription.features.comingSoon" : "Dolazi uskoro", 235 "subscription.features.comingSoon" : "Dolazi uskoro",
223 "subscription.features.customServices" : "Privatni servisi za Vas i Vaš tim",
224 "subscription.features.encryptedSync" : "Kodirano usklađivanje sesija.", 236 "subscription.features.encryptedSync" : "Kodirano usklađivanje sesija.",
237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "Dodajte pretpostavljeni\/hostirani servis kao Å¡to ima usluga HipChat ", 238 "subscription.features.onpremise" : "Dodajte pretpostavljeni\/hostirani servis kao Å¡to ima usluga HipChat ",
226 "subscription.features.vpn" : "Podrška za Proxy i VPM ( VPN )", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "Plaćeni\/Premium raÄun ukljuÄuje sljedeće: ", 242 "subscription.includedFeatures" : "Plaćeni\/Premium raÄun ukljuÄuje sljedeće: ",
228 "subscription.paymentSessionError" : "Nemoguće inicijalizirati obrazac za uplatu", 243 "subscription.paymentSessionError" : "Nemoguće inicijalizirati obrazac za uplatu",
229 "subscription.submit.label" : "Želim da podržim razvoj Franca. ", 244 "subscription.submit.label" : "Želim da podržim razvoj Franca. ",
diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json
index 3571ad453..365dec9c6 100644
--- a/src/i18n/locales/hu.json
+++ b/src/i18n/locales/hu.json
@@ -1,4 +1,7 @@
1{ 1{
2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
2 "global.api.unhealthy" : "Nem lehet csatlakozni a Franz online szolgáltatáshoz", 5 "global.api.unhealthy" : "Nem lehet csatlakozni a Franz online szolgáltatáshoz",
3 "global.notConnectedToTheInternet" : "Nincs hálózati kapcsolat.", 6 "global.notConnectedToTheInternet" : "Nincs hálózati kapcsolat.",
4 "import.headline" : "Importáld szolgáltatásaidat a Franz 4-ből", 7 "import.headline" : "Importáld szolgáltatásaidat a Franz 4-ből",
@@ -16,7 +19,7 @@
16 "invite.name.label" : "Név", 19 "invite.name.label" : "Név",
17 "invite.skip.label" : "Későbbre halasztom", 20 "invite.skip.label" : "Későbbre halasztom",
18 "invite.submit.label" : "Meghívók küldése", 21 "invite.submit.label" : "Meghívók küldése",
19 "invite.successInfo" : "Invitations sent successfully", 22 "invite.successInfo" : "Meghívás sikeresen elküldve",
20 "login.email.label" : "Email cím", 23 "login.email.label" : "Email cím",
21 "login.headline" : "Bejelentkezés", 24 "login.headline" : "Bejelentkezés",
22 "login.invalidCredentials" : "Hibás email cím vagy jelszó", 25 "login.invalidCredentials" : "Hibás email cím vagy jelszó",
@@ -26,49 +29,49 @@
26 "login.serverLogout" : "A munkamenet lejárt, kérlek lépj be újra.", 29 "login.serverLogout" : "A munkamenet lejárt, kérlek lépj be újra.",
27 "login.submit.label" : "Bejelentkezés", 30 "login.submit.label" : "Bejelentkezés",
28 "login.tokenExpired" : "A munkamenet lejárt, kérlek lépj be újra.", 31 "login.tokenExpired" : "A munkamenet lejárt, kérlek lépj be újra.",
29 "menu.app.about" : "About Franz", 32 "menu.app.about" : "Névjegy",
30 "menu.app.hide" : "Hide", 33 "menu.app.hide" : "Elrejt",
31 "menu.app.hideOthers" : "Hide Others", 34 "menu.app.hideOthers" : "Többi elrejtése",
32 "menu.app.quit" : "Quit", 35 "menu.app.quit" : "Kilépés",
33 "menu.app.settings" : "Beállítások", 36 "menu.app.settings" : "Beállítások",
34 "menu.app.unhide" : "Unhide", 37 "menu.app.unhide" : "Megjelenít",
35 "menu.edit" : "Szerkesztés", 38 "menu.edit" : "Szerkesztés",
36 "menu.edit.copy" : "Copy", 39 "menu.edit.copy" : "Másolás",
37 "menu.edit.cut" : "Cut", 40 "menu.edit.cut" : "Kivágás",
38 "menu.edit.delete" : "Törlés", 41 "menu.edit.delete" : "Törlés",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols", 42 "menu.edit.emojiSymbols" : "Emoji és Szimbólumok",
40 "menu.edit.paste" : "Paste", 43 "menu.edit.paste" : "Beillesztés",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", 44 "menu.edit.pasteAndMatchStyle" : "Beillesztés ugyanazzal a megjelenéssel",
42 "menu.edit.redo" : "Redo", 45 "menu.edit.redo" : "Újra",
43 "menu.edit.selectAll" : "Select All", 46 "menu.edit.selectAll" : "Összes kijelölése",
44 "menu.edit.speech" : "Speech", 47 "menu.edit.speech" : "Beszéd",
45 "menu.edit.startDictation" : "Start Dictation", 48 "menu.edit.startDictation" : "Diktálás elkezdése",
46 "menu.edit.startSpeaking" : "Start Speaking", 49 "menu.edit.startSpeaking" : "Beszélgetés kezdeményezése",
47 "menu.edit.stopSpeaking" : "Stop Speaking", 50 "menu.edit.stopSpeaking" : "Beszéd vége",
48 "menu.edit.undo" : "Undo", 51 "menu.edit.undo" : "Visszavonás",
49 "menu.file" : "File", 52 "menu.file" : "fájl",
50 "menu.help" : "Help", 53 "menu.help" : "Súgó",
51 "menu.help.changelog" : "Changelog", 54 "menu.help.changelog" : "Változások listája",
52 "menu.help.learnMore" : "Learn More", 55 "menu.help.learnMore" : "Tudjon meg többet",
53 "menu.help.privacy" : "Adatvédelmi Nyilatkozatot", 56 "menu.help.privacy" : "Adatvédelmi Nyilatkozatot",
54 "menu.help.support" : "Support", 57 "menu.help.support" : "Támogatás",
55 "menu.help.tos" : "Terms of Service", 58 "menu.help.tos" : "Felhasználói feltételek",
56 "menu.services" : "Services", 59 "menu.services" : "Szolgáltatások",
57 "menu.services.addNewService" : "Add New Service...", 60 "menu.services.addNewService" : "Új kiszolgáló hozzáadása",
58 "menu.view" : "View", 61 "menu.view" : "Nézet",
59 "menu.view.enterFullScreen" : "Enter Full Screen", 62 "menu.view.enterFullScreen" : "Kilépés a teljes képernyős módból",
60 "menu.view.exitFullScreen" : "Exit Full Screen", 63 "menu.view.exitFullScreen" : "Kilépés a teljes képernyős módból",
61 "menu.view.reloadFranz" : "Reload Franz", 64 "menu.view.reloadFranz" : "Franz újrainditása",
62 "menu.view.reloadService" : "Reload Service", 65 "menu.view.reloadService" : "Kiszolgáló újraindítása",
63 "menu.view.resetZoom" : "Actual Size", 66 "menu.view.resetZoom" : "Tényleges méret",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools", 67 "menu.view.toggleDevTools" : "fejlesztői eszközök bekapcsolása",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen", 68 "menu.view.toggleFullScreen" : "Váltás Teljes képernyős módra",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", 69 "menu.view.toggleServiceDevTools" : "Kiszolgáló Fejlesztői Eszközök Bekapcsolása",
67 "menu.view.zoomIn" : "Zoom In", 70 "menu.view.zoomIn" : "Nagyítás",
68 "menu.view.zoomOut" : "Zoom Out", 71 "menu.view.zoomOut" : "Kicsinyítés",
69 "menu.window" : "Window", 72 "menu.window" : "Ablak",
70 "menu.window.close" : "Close", 73 "menu.window.close" : "Bezárás",
71 "menu.window.minimize" : "Minimize", 74 "menu.window.minimize" : "Tálcára",
72 "password.email.label" : "Email cím", 75 "password.email.label" : "Email cím",
73 "password.headline" : "Jelszó visszaállítása", 76 "password.headline" : "Jelszó visszaállítása",
74 "password.link.login" : "Jelentkezz be a fiókodba", 77 "password.link.login" : "Jelentkezz be a fiókodba",
@@ -76,6 +79,7 @@
76 "password.noUser" : "Nem található felhasználó a megadott email címmel", 79 "password.noUser" : "Nem található felhasználó a megadott email címmel",
77 "password.submit.label" : "Küldés", 80 "password.submit.label" : "Küldés",
78 "password.successInfo" : "Ellenőrizd az email fiókodat", 81 "password.successInfo" : "Ellenőrizd az email fiókodat",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "Támogasd a Franz-ot", 83 "pricing.headline" : "Támogasd a Franz-ot",
80 "pricing.link.skipPayment" : "Nem szeretném támogatni a Franz fejlesztését.", 84 "pricing.link.skipPayment" : "Nem szeretném támogatni a Franz fejlesztését.",
81 "pricing.submit.label" : "Támogatni szeretném a Franz fejlesztését.", 85 "pricing.submit.label" : "Támogatni szeretném a Franz fejlesztését.",
@@ -116,16 +120,18 @@
116 "settings.app.form.autoLaunchInBackground" : "Megnyitás háttérben", 120 "settings.app.form.autoLaunchInBackground" : "Megnyitás háttérben",
117 "settings.app.form.autoLaunchOnStart" : "Franz betöltése indításkor", 121 "settings.app.form.autoLaunchOnStart" : "Franz betöltése indításkor",
118 "settings.app.form.beta" : "Béta verziók keresése", 122 "settings.app.form.beta" : "Béta verziók keresése",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", 123 "settings.app.form.darkMode" : "Join the Dark Side",
120 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", 124 "settings.app.form.enableGPUAcceleration" : "hardveres gyorsítás engedélyezése",
125 "settings.app.form.enableMenuBar" : "Franz megjelenítése a menüsorban",
121 "settings.app.form.enableSpellchecking" : "Helyesírás-ellenőrzés engedélyezése", 126 "settings.app.form.enableSpellchecking" : "Helyesírás-ellenőrzés engedélyezése",
122 "settings.app.form.enableSystemTray" : "Franz mutatása a tálcán", 127 "settings.app.form.enableSystemTray" : "Franz mutatása a tálcán",
123 "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock", 128 "settings.app.form.hideDockIcon" : "Franz ikon elrejtése a Dock mögött",
124 "settings.app.form.language" : "Nyelv", 129 "settings.app.form.language" : "Nyelv",
125 "settings.app.form.minimizeToSystemTray" : "Franz kicsinyítése a tálcára", 130 "settings.app.form.minimizeToSystemTray" : "Franz kicsinyítése a tálcára",
126 "settings.app.form.runInBackground" : "Franz fusson a háttérben az ablak bezárásakor", 131 "settings.app.form.runInBackground" : "Franz fusson a háttérben az ablak bezárásakor",
127 "settings.app.form.showDisabledServices" : "Letiltott szolgáltatások megjelenítése", 132 "settings.app.form.showDisabledServices" : "Letiltott szolgáltatások megjelenítése",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "Mutass az 'olvasatlan üzenet' jelzést amikor az értesítések le vannak tiltva.", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "Mutass az 'olvasatlan üzenet' jelzést amikor az értesítések le vannak tiltva.",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "Beállítások", 135 "settings.app.headline" : "Beállítások",
130 "settings.app.headlineAdvanced" : "Haladó", 136 "settings.app.headlineAdvanced" : "Haladó",
131 "settings.app.headlineAppearance" : "Megjelenés", 137 "settings.app.headlineAppearance" : "Megjelenés",
@@ -138,10 +144,10 @@
138 "settings.app.updateStatusAvailable" : "Frissítés elérhető, letöltés folyamatban...", 144 "settings.app.updateStatusAvailable" : "Frissítés elérhető, letöltés folyamatban...",
139 "settings.app.updateStatusSearching" : "Frissítéseket keres", 145 "settings.app.updateStatusSearching" : "Frissítéseket keres",
140 "settings.app.updateStatusUpToDate" : "A Franz legfrissebb verzióját használod", 146 "settings.app.updateStatusUpToDate" : "A Franz legfrissebb verzióját használod",
141 "settings.invite.headline" : "Invite Friends", 147 "settings.invite.headline" : "Barát meghívása",
142 "settings.navigation.account" : "Fiók", 148 "settings.navigation.account" : "Fiók",
143 "settings.navigation.availableServices" : "Elérhető szolgáltatások", 149 "settings.navigation.availableServices" : "Elérhető szolgáltatások",
144 "settings.navigation.inviteFriends" : "Invite Friends", 150 "settings.navigation.inviteFriends" : "Barát meghívása",
145 "settings.navigation.logout" : "Kijelentkezés", 151 "settings.navigation.logout" : "Kijelentkezés",
146 "settings.navigation.settings" : "Beállítások", 152 "settings.navigation.settings" : "Beállítások",
147 "settings.navigation.yourServices" : "Szolgáltatásaid", 153 "settings.navigation.yourServices" : "Szolgáltatásaid",
@@ -166,6 +172,7 @@
166 "settings.service.form.editServiceHeadline" : "{name} szerkesztése", 172 "settings.service.form.editServiceHeadline" : "{name} szerkesztése",
167 "settings.service.form.enableAudio" : "Hang engedélyezése", 173 "settings.service.form.enableAudio" : "Hang engedélyezése",
168 "settings.service.form.enableBadge" : "Mutasd az olvasatlan jelzéseket", 174 "settings.service.form.enableBadge" : "Mutasd az olvasatlan jelzéseket",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "Értesítések engedélyezése", 176 "settings.service.form.enableNotification" : "Értesítések engedélyezése",
170 "settings.service.form.enableService" : "Szolgáltatás engedélyezése", 177 "settings.service.form.enableService" : "Szolgáltatás engedélyezése",
171 "settings.service.form.headlineBadges" : "Olvasatlan üzenet jelzések", 178 "settings.service.form.headlineBadges" : "Olvasatlan üzenet jelzések",
@@ -178,6 +185,12 @@
178 "settings.service.form.indirectMessages" : "Üzenet kitűző megjelenítése minden üzenethez", 185 "settings.service.form.indirectMessages" : "Üzenet kitűző megjelenítése minden üzenethez",
179 "settings.service.form.isMutedInfo" : "Ha kikapcsolod, minden értesítési és lejátszott hang némításra kerül.", 186 "settings.service.form.isMutedInfo" : "Ha kikapcsolod, minden értesítési és lejátszott hang némításra kerül.",
180 "settings.service.form.name" : "Név", 187 "settings.service.form.name" : "Név",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "Szolgáltatás mentése", 194 "settings.service.form.saveButton" : "Szolgáltatás mentése",
182 "settings.service.form.tabHosted" : "Ãœzemeltetett", 195 "settings.service.form.tabHosted" : "Ãœzemeltetett",
183 "settings.service.form.tabOnPremise" : "Egyénileg üzemeltetett", 196 "settings.service.form.tabOnPremise" : "Egyénileg üzemeltetett",
@@ -220,10 +233,12 @@
220 "subscription.euTaxInfo" : "EU állampolgárok: helyi vásárlás esetén adók kerülhetnek felszámolásra", 233 "subscription.euTaxInfo" : "EU állampolgárok: helyi vásárlás esetén adók kerülhetnek felszámolásra",
221 "subscription.features.ads" : "Hirdetésmentes, mindig!", 234 "subscription.features.ads" : "Hirdetésmentes, mindig!",
222 "subscription.features.comingSoon" : "Hamarosan!", 235 "subscription.features.comingSoon" : "Hamarosan!",
223 "subscription.features.customServices" : "Privát szolgáltatások neked és a csapatodnak",
224 "subscription.features.encryptedSync" : "Titkosított munkamenet szinkronizálás", 236 "subscription.features.encryptedSync" : "Titkosított munkamenet szinkronizálás",
237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "Helyi\/üzemeltetett szolgáltatások használata, pl. HipChat", 238 "subscription.features.onpremise" : "Helyi\/üzemeltetett szolgáltatások használata, pl. HipChat",
226 "subscription.features.vpn" : "Proxy & VPN támogatás", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "Az előfizetett Franz Prémium Támogató Fiók tartalmazza", 242 "subscription.includedFeatures" : "Az előfizetett Franz Prémium Támogató Fiók tartalmazza",
228 "subscription.paymentSessionError" : "Nem sikerült a fizetési felületet betölteni", 243 "subscription.paymentSessionError" : "Nem sikerült a fizetési felületet betölteni",
229 "subscription.submit.label" : "Szeretném támogatni a Franz fejlesztését", 244 "subscription.submit.label" : "Szeretném támogatni a Franz fejlesztését",
@@ -241,10 +256,10 @@
241 "tabs.item.enableNotification" : "Értesítések engedélyezése", 256 "tabs.item.enableNotification" : "Értesítések engedélyezése",
242 "tabs.item.enableService" : "Szolgáltatás engedélyezése", 257 "tabs.item.enableService" : "Szolgáltatás engedélyezése",
243 "tabs.item.reload" : "Újratöltés", 258 "tabs.item.reload" : "Újratöltés",
244 "validation.email" : "{field} is not valid", 259 "validation.email" : "{field} nem érvényes",
245 "validation.minLength" : "{field} should be at least {length} characters long", 260 "validation.minLength" : "{field} legalább {length} karakter hosszúnak kell lennie",
246 "validation.required" : "{field} is required", 261 "validation.required" : "{field} Kitöltése kötelező",
247 "validation.url" : "{field} is not a valid URL", 262 "validation.url" : "{field} nem érvényes URL",
248 "welcome.loginButton" : "Jelentkezz be a fiókodba", 263 "welcome.loginButton" : "Jelentkezz be a fiókodba",
249 "welcome.signupButton" : "Új fiók létrehozása", 264 "welcome.signupButton" : "Új fiók létrehozása",
250 "welcome.slogan" : "Üzenetküldés okosan" 265 "welcome.slogan" : "Üzenetküldés okosan"
diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json
index e6d671c1b..437c1304f 100644
--- a/src/i18n/locales/id.json
+++ b/src/i18n/locales/id.json
@@ -1,74 +1,77 @@
1{ 1{
2 "global.api.unhealthy" : "Tidak bisa tersambung ke layanan Franz", 2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "global.notConnectedToTheInternet" : "Anda tidak tersambung ke internet.", 3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
5 "global.api.unhealthy" : "Tidak dapat tersambung ke layanan Franz",
6 "global.notConnectedToTheInternet" : "Anda tidak mempunyai koneksi internet",
4 "import.headline" : "Impor layanan Franz 4 Anda", 7 "import.headline" : "Impor layanan Franz 4 Anda",
5 "import.notSupportedHeadline" : "Layanan belum didukung di Franz 5", 8 "import.notSupportedHeadline" : "Layanan belum didukung di Franz 5",
6 "import.skip.label" : "Saya ingin menambahkan layanan secara manual", 9 "import.skip.label" : "Saya ingin menambahkan layanan secara manual",
7 "import.submit.label" : "Impor layanan", 10 "import.submit.label" : "Impor layanan",
8 "infobar.buttonChangelog" : "Yang baru", 11 "infobar.buttonChangelog" : "Apa yang baru?",
9 "infobar.buttonInstallUpdate" : "Mulai ulang dan instal versi baru", 12 "infobar.buttonInstallUpdate" : "Mulai ulang & instal pembaruan",
10 "infobar.buttonReloadServices" : "Muat ulang layanan", 13 "infobar.buttonReloadServices" : "Muat ulang layanan",
11 "infobar.requiredRequestsFailed" : "Tidak bisa memuat layanan dan informasi pengguna", 14 "infobar.requiredRequestsFailed" : "Gagal memuat layanan dan informasi pengguna",
12 "infobar.servicesUpdated" : "Layanan Anda telah diperbarui", 15 "infobar.servicesUpdated" : "Layanan Anda telah diperbarui",
13 "infobar.updateAvailable" : "Versi baru Franz tersedia.", 16 "infobar.updateAvailable" : "Versi baru Franz tersedia.",
14 "invite.email.label" : "Alamat email", 17 "invite.email.label" : "Alamat email",
15 "invite.headline.friends" : "Undang 3 teman atau kolega Anda", 18 "invite.headline.friends" : "Undang 3 teman atau kolega Anda",
16 "invite.name.label" : "Nama", 19 "invite.name.label" : "Nama",
17 "invite.skip.label" : "Saya ingin melakukannya nanti saja", 20 "invite.skip.label" : "Nanti saja",
18 "invite.submit.label" : "Kirim undangan", 21 "invite.submit.label" : "Kirim undangan",
19 "invite.successInfo" : "Undangan berhasil dikirim", 22 "invite.successInfo" : "Undangan berhasil dikirim",
20 "login.email.label" : "Alamat email", 23 "login.email.label" : "Alamat email",
21 "login.headline" : "Masuk", 24 "login.headline" : "Masuk",
22 "login.invalidCredentials" : "Email atau sandi tidak valid", 25 "login.invalidCredentials" : "Email atau sandi salah",
23 "login.link.password" : "Setel ulang sandi", 26 "login.link.password" : "Setel ulang sandi",
24 "login.link.signup" : "Buat akun gratis", 27 "login.link.signup" : "Buat akun gratis",
25 "login.password.label" : "Sandi", 28 "login.password.label" : "Sandi",
26 "login.serverLogout" : "Sesi Anda telah berakhir, silakan masuk kembali.", 29 "login.serverLogout" : "Sesi Anda telah berakhir, silakan masuk kembali.",
27 "login.submit.label" : "Masuk", 30 "login.submit.label" : "Masuk",
28 "login.tokenExpired" : "Sesi Anda kedaluwarsa, silakan masuk kembali.", 31 "login.tokenExpired" : "Sesi Anda telah kedaluwarsa, silakan masuk kembali.",
29 "menu.app.about" : "About Franz", 32 "menu.app.about" : "Tentang Franz",
30 "menu.app.hide" : "Hide", 33 "menu.app.hide" : "Sembunyikan",
31 "menu.app.hideOthers" : "Hide Others", 34 "menu.app.hideOthers" : "Sembunyikan Lainnya",
32 "menu.app.quit" : "Quit", 35 "menu.app.quit" : "Keluar",
33 "menu.app.settings" : "Pengaturan", 36 "menu.app.settings" : "Pengaturan",
34 "menu.app.unhide" : "Unhide", 37 "menu.app.unhide" : "Perlihatkan",
35 "menu.edit" : "Edit", 38 "menu.edit" : "Edit",
36 "menu.edit.copy" : "Copy", 39 "menu.edit.copy" : "Salin",
37 "menu.edit.cut" : "Cut", 40 "menu.edit.cut" : "Potong",
38 "menu.edit.delete" : "Hapus", 41 "menu.edit.delete" : "Hapus",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols", 42 "menu.edit.emojiSymbols" : "Emoji & Simbol",
40 "menu.edit.paste" : "Paste", 43 "menu.edit.paste" : "Tempel",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", 44 "menu.edit.pasteAndMatchStyle" : "Tempel dan Cocokkan Gaya",
42 "menu.edit.redo" : "Redo", 45 "menu.edit.redo" : "Ulangi lagi",
43 "menu.edit.selectAll" : "Select All", 46 "menu.edit.selectAll" : "Pilih Semua",
44 "menu.edit.speech" : "Speech", 47 "menu.edit.speech" : "Bicara",
45 "menu.edit.startDictation" : "Start Dictation", 48 "menu.edit.startDictation" : "Mulai Dikte",
46 "menu.edit.startSpeaking" : "Start Speaking", 49 "menu.edit.startSpeaking" : "Mulai Berbicara",
47 "menu.edit.stopSpeaking" : "Stop Speaking", 50 "menu.edit.stopSpeaking" : "Berhenti Berbicara",
48 "menu.edit.undo" : "Undo", 51 "menu.edit.undo" : "Batalkan",
49 "menu.file" : "File", 52 "menu.file" : "Berkas",
50 "menu.help" : "Help", 53 "menu.help" : "Bantuan",
51 "menu.help.changelog" : "Changelog", 54 "menu.help.changelog" : "Log Perubahan",
52 "menu.help.learnMore" : "Learn More", 55 "menu.help.learnMore" : "Pelajari Lebih Lanjut",
53 "menu.help.privacy" : "Pernyataan Privasi", 56 "menu.help.privacy" : "Pernyataan Privasi",
54 "menu.help.support" : "Support", 57 "menu.help.support" : "Dukungan",
55 "menu.help.tos" : "Terms of Service", 58 "menu.help.tos" : "Ketentuan Layanan",
56 "menu.services" : "Services", 59 "menu.services" : "Layanan",
57 "menu.services.addNewService" : "Add New Service...", 60 "menu.services.addNewService" : "Tambahkan Layanan Baru...",
58 "menu.view" : "View", 61 "menu.view" : "Tampilan",
59 "menu.view.enterFullScreen" : "Enter Full Screen", 62 "menu.view.enterFullScreen" : "Masuk ke Mode Layar Penuh",
60 "menu.view.exitFullScreen" : "Exit Full Screen", 63 "menu.view.exitFullScreen" : "Keluar dari Layar Penuh",
61 "menu.view.reloadFranz" : "Reload Franz", 64 "menu.view.reloadFranz" : "Muat Ulang Franz",
62 "menu.view.reloadService" : "Reload Service", 65 "menu.view.reloadService" : "Muat ulang Layanan",
63 "menu.view.resetZoom" : "Actual Size", 66 "menu.view.resetZoom" : "Ukuran Sebenarnya",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools", 67 "menu.view.toggleDevTools" : "Aktif\/Nonaktifkan alat pengembang",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen", 68 "menu.view.toggleFullScreen" : "Aktif\/Nonaktifkan Layar Penuh",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", 69 "menu.view.toggleServiceDevTools" : "Aktif\/Nonaktifkan layanan alat pengembang",
67 "menu.view.zoomIn" : "Zoom In", 70 "menu.view.zoomIn" : "Perbesar",
68 "menu.view.zoomOut" : "Zoom Out", 71 "menu.view.zoomOut" : "Perkecil",
69 "menu.window" : "Window", 72 "menu.window" : "Jendela",
70 "menu.window.close" : "Close", 73 "menu.window.close" : "Tutup",
71 "menu.window.minimize" : "Minimize", 74 "menu.window.minimize" : "Minimalkan",
72 "password.email.label" : "Alamat email", 75 "password.email.label" : "Alamat email",
73 "password.headline" : "Setel ulang sandi", 76 "password.headline" : "Setel ulang sandi",
74 "password.link.login" : "Masuk ke akun Anda", 77 "password.link.login" : "Masuk ke akun Anda",
@@ -76,6 +79,7 @@
76 "password.noUser" : "Tidak ditemukan pengguna dengan email tersebut", 79 "password.noUser" : "Tidak ditemukan pengguna dengan email tersebut",
77 "password.submit.label" : "Kirim", 80 "password.submit.label" : "Kirim",
78 "password.successInfo" : "Periksa email Anda", 81 "password.successInfo" : "Periksa email Anda",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "Dukung Franz", 83 "pricing.headline" : "Dukung Franz",
80 "pricing.link.skipPayment" : "Saya tidak ingin mendukung pengembangan Franz.", 84 "pricing.link.skipPayment" : "Saya tidak ingin mendukung pengembangan Franz.",
81 "pricing.submit.label" : "Saya ingin mendukung pengembangan Franz", 85 "pricing.submit.label" : "Saya ingin mendukung pengembangan Franz",
@@ -86,7 +90,7 @@
86 "service.crashHandler.text" : "{name} menyebabkan kesalahan.", 90 "service.crashHandler.text" : "{name} menyebabkan kesalahan.",
87 "service.disabledHandler.action" : "Aktifkan {name}", 91 "service.disabledHandler.action" : "Aktifkan {name}",
88 "service.disabledHandler.headline" : "{name} dinonaktifkan", 92 "service.disabledHandler.headline" : "{name} dinonaktifkan",
89 "services.getStarted" : "Memulai", 93 "services.getStarted" : "Ayo mulai!",
90 "services.welcome" : "Selamat datang di Franz", 94 "services.welcome" : "Selamat datang di Franz",
91 "settings.account.account.editButton" : "Edit akun", 95 "settings.account.account.editButton" : "Edit akun",
92 "settings.account.accountType.basic" : "Akun Dasar", 96 "settings.account.accountType.basic" : "Akun Dasar",
@@ -107,7 +111,7 @@
107 "settings.account.manageSubscription.label" : "Kelola langganan Anda", 111 "settings.account.manageSubscription.label" : "Kelola langganan Anda",
108 "settings.account.successInfo" : "Perubahan Anda telah disimpan", 112 "settings.account.successInfo" : "Perubahan Anda telah disimpan",
109 "settings.account.tryReloadUserInfoRequest" : "Coba lagi", 113 "settings.account.tryReloadUserInfoRequest" : "Coba lagi",
110 "settings.account.userInfoRequestFailed" : "Tidak bisa memuat informasi pengguna", 114 "settings.account.userInfoRequestFailed" : "Gagal memuat informasi pengguna",
111 "settings.app.buttonClearAllCache" : "Bersihkan singgahan", 115 "settings.app.buttonClearAllCache" : "Bersihkan singgahan",
112 "settings.app.buttonInstallUpdate" : "Mulai ulang dan instal versi baru", 116 "settings.app.buttonInstallUpdate" : "Mulai ulang dan instal versi baru",
113 "settings.app.buttonSearchForUpdate" : "Periksa versi baru", 117 "settings.app.buttonSearchForUpdate" : "Periksa versi baru",
@@ -116,7 +120,8 @@
116 "settings.app.form.autoLaunchInBackground" : "Buka di latar belakang", 120 "settings.app.form.autoLaunchInBackground" : "Buka di latar belakang",
117 "settings.app.form.autoLaunchOnStart" : "Jalankan Franz saat komputer dimulai", 121 "settings.app.form.autoLaunchOnStart" : "Jalankan Franz saat komputer dimulai",
118 "settings.app.form.beta" : "Sertakan versi beta", 122 "settings.app.form.beta" : "Sertakan versi beta",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", 123 "settings.app.form.darkMode" : "Join the Dark Side",
124 "settings.app.form.enableGPUAcceleration" : "Aktifkan Akselerasi GPU",
120 "settings.app.form.enableMenuBar" : "Tampilkan Franz di Bilah Menu", 125 "settings.app.form.enableMenuBar" : "Tampilkan Franz di Bilah Menu",
121 "settings.app.form.enableSpellchecking" : "Aktifkan pemeriksaan ejaan", 126 "settings.app.form.enableSpellchecking" : "Aktifkan pemeriksaan ejaan",
122 "settings.app.form.enableSystemTray" : "Tampilkan Franz di baki sistem", 127 "settings.app.form.enableSystemTray" : "Tampilkan Franz di baki sistem",
@@ -126,6 +131,7 @@
126 "settings.app.form.runInBackground" : "Tetap jalankan Franz di latar belakang saat menutup jendela", 131 "settings.app.form.runInBackground" : "Tetap jalankan Franz di latar belakang saat menutup jendela",
127 "settings.app.form.showDisabledServices" : "Tampilkan tab layanan yang dinonaktifkan", 132 "settings.app.form.showDisabledServices" : "Tampilkan tab layanan yang dinonaktifkan",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "Tampilkan lencana pesan belum dibaca saat pemberitahuan dinonaktifkan", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "Tampilkan lencana pesan belum dibaca saat pemberitahuan dinonaktifkan",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "Pengaturan", 135 "settings.app.headline" : "Pengaturan",
130 "settings.app.headlineAdvanced" : "Tingkat Lanjut", 136 "settings.app.headlineAdvanced" : "Tingkat Lanjut",
131 "settings.app.headlineAppearance" : "Tampilan", 137 "settings.app.headlineAppearance" : "Tampilan",
@@ -149,7 +155,7 @@
149 "settings.recipes.dev" : "Pengembangan", 155 "settings.recipes.dev" : "Pengembangan",
150 "settings.recipes.headline" : "Layanan tersedia", 156 "settings.recipes.headline" : "Layanan tersedia",
151 "settings.recipes.missingService" : "Layanan tidak tersedia?", 157 "settings.recipes.missingService" : "Layanan tidak tersedia?",
152 "settings.recipes.mostPopular" : "Paling populer", 158 "settings.recipes.mostPopular" : "Terpopuler",
153 "settings.recipes.nothingFound" : "Maaf, tidak ada layanan yang cocok dengan pencarian Anda.", 159 "settings.recipes.nothingFound" : "Maaf, tidak ada layanan yang cocok dengan pencarian Anda.",
154 "settings.recipes.servicesSuccessfulAddedInfo" : "Layanan berhasil ditambahkan", 160 "settings.recipes.servicesSuccessfulAddedInfo" : "Layanan berhasil ditambahkan",
155 "settings.searchService" : "Cari layanan", 161 "settings.searchService" : "Cari layanan",
@@ -161,11 +167,12 @@
161 "settings.service.form.customUrl" : "Server khusus", 167 "settings.service.form.customUrl" : "Server khusus",
162 "settings.service.form.customUrlPremiumInfo" : "Untuk menambahkan layanan hosted yang dijalankan mandiri, Anda membutuhkan Franz Premium Supporter Account.", 168 "settings.service.form.customUrlPremiumInfo" : "Untuk menambahkan layanan hosted yang dijalankan mandiri, Anda membutuhkan Franz Premium Supporter Account.",
163 "settings.service.form.customUrlUpgradeAccount" : "Tingkatkan akun Anda", 169 "settings.service.form.customUrlUpgradeAccount" : "Tingkatkan akun Anda",
164 "settings.service.form.customUrlValidationError" : "Tidak bisa memvalidasi server {name} khusus.", 170 "settings.service.form.customUrlValidationError" : "Gagal memvalidasi server {nama} khusus.",
165 "settings.service.form.deleteButton" : "Hapus layanan", 171 "settings.service.form.deleteButton" : "Hapus layanan",
166 "settings.service.form.editServiceHeadline" : "Edit {name}", 172 "settings.service.form.editServiceHeadline" : "Edit {nama}",
167 "settings.service.form.enableAudio" : "Aktifkan audio", 173 "settings.service.form.enableAudio" : "Aktifkan audio",
168 "settings.service.form.enableBadge" : "Tampilkan lencana pesan belum dibaca", 174 "settings.service.form.enableBadge" : "Tampilkan lencana pesan belum dibaca",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "Aktifkan pemberitahuan", 176 "settings.service.form.enableNotification" : "Aktifkan pemberitahuan",
170 "settings.service.form.enableService" : "Aktifkan layanan", 177 "settings.service.form.enableService" : "Aktifkan layanan",
171 "settings.service.form.headlineBadges" : "Lencana pesan belum dibaca", 178 "settings.service.form.headlineBadges" : "Lencana pesan belum dibaca",
@@ -175,9 +182,15 @@
175 "settings.service.form.iconDelete" : "Hapus", 182 "settings.service.form.iconDelete" : "Hapus",
176 "settings.service.form.iconUpload" : "Lepaskan gambar atau klik di sini", 183 "settings.service.form.iconUpload" : "Lepaskan gambar atau klik di sini",
177 "settings.service.form.indirectMessageInfo" : "Anda akan diberi tahu tentang semua pesan dalam kanal, bukan hanya @username, @channel, @here, ...", 184 "settings.service.form.indirectMessageInfo" : "Anda akan diberi tahu tentang semua pesan dalam kanal, bukan hanya @username, @channel, @here, ...",
178 "settings.service.form.indirectMessages" : "Tampilkan lencana pesan untuk semua pesan", 185 "settings.service.form.indirectMessages" : "Tampilkan lencana pesan untuk semua pesan baru",
179 "settings.service.form.isMutedInfo" : "Saat dinonaktifkan, semua suara pemberitahuan dan pemutaran audio akan dibisukan", 186 "settings.service.form.isMutedInfo" : "Saat dinonaktifkan, semua suara pemberitahuan dan pemutaran audio akan dibisukan",
180 "settings.service.form.name" : "Nama", 187 "settings.service.form.name" : "Nama",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "Simpan layanan", 194 "settings.service.form.saveButton" : "Simpan layanan",
182 "settings.service.form.tabHosted" : "Hosted", 195 "settings.service.form.tabHosted" : "Hosted",
183 "settings.service.form.tabOnPremise" : "Hosted mandiri", 196 "settings.service.form.tabOnPremise" : "Hosted mandiri",
@@ -187,7 +200,7 @@
187 "settings.services.deletedInfo" : "Layanan telah dihapus", 200 "settings.services.deletedInfo" : "Layanan telah dihapus",
188 "settings.services.discoverServices" : "Temukan layanan", 201 "settings.services.discoverServices" : "Temukan layanan",
189 "settings.services.headline" : "Layanan Anda", 202 "settings.services.headline" : "Layanan Anda",
190 "settings.services.noServicesAdded" : "Anda belum menambahkan layanan.", 203 "settings.services.noServicesAdded" : "Anda belum menambahkan layanan apa pun.",
191 "settings.services.tooltip.isDisabled" : "Layanan dinonaktifkan", 204 "settings.services.tooltip.isDisabled" : "Layanan dinonaktifkan",
192 "settings.services.tooltip.isMuted" : "Semua suara dibisukan", 205 "settings.services.tooltip.isMuted" : "Semua suara dibisukan",
193 "settings.services.tooltip.notificationsDisabled" : "Pemberitahuan dinonaktifkan", 206 "settings.services.tooltip.notificationsDisabled" : "Pemberitahuan dinonaktifkan",
@@ -220,10 +233,12 @@
220 "subscription.euTaxInfo" : "Warga UE: pajak penjualan lokal mungkin berlaku", 233 "subscription.euTaxInfo" : "Warga UE: pajak penjualan lokal mungkin berlaku",
221 "subscription.features.ads" : "Tanpa iklan, selamanya!", 234 "subscription.features.ads" : "Tanpa iklan, selamanya!",
222 "subscription.features.comingSoon" : "segera hadir", 235 "subscription.features.comingSoon" : "segera hadir",
223 "subscription.features.customServices" : "Layanan pribadi untuk Anda dan tim Anda",
224 "subscription.features.encryptedSync" : "Sinkronisasi sesi terenkripsi", 236 "subscription.features.encryptedSync" : "Sinkronisasi sesi terenkripsi",
237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "Layanan add-on premise\/hosted seperti HipChat", 238 "subscription.features.onpremise" : "Layanan add-on premise\/hosted seperti HipChat",
226 "subscription.features.vpn" : "Dukungan proxy & VPN", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "Franz Premium Supporter Account berbayar menyertakan", 242 "subscription.includedFeatures" : "Franz Premium Supporter Account berbayar menyertakan",
228 "subscription.paymentSessionError" : "Tidak bisa menginisialisasi formulir pembayaran", 243 "subscription.paymentSessionError" : "Tidak bisa menginisialisasi formulir pembayaran",
229 "subscription.submit.label" : "Saya ingin mendukung pengembangan Franz", 244 "subscription.submit.label" : "Saya ingin mendukung pengembangan Franz",
@@ -236,15 +251,15 @@
236 "tabs.item.disableAudio" : "Nonaktifkan audio", 251 "tabs.item.disableAudio" : "Nonaktifkan audio",
237 "tabs.item.disableNotifications" : "Nonaktifkan pemberitahuan", 252 "tabs.item.disableNotifications" : "Nonaktifkan pemberitahuan",
238 "tabs.item.disableService" : "Nonaktifkan layanan", 253 "tabs.item.disableService" : "Nonaktifkan layanan",
239 "tabs.item.edit" : "Edit", 254 "tabs.item.edit" : "Sunting",
240 "tabs.item.enableAudio" : "Aktifkan audio", 255 "tabs.item.enableAudio" : "Aktifkan audio",
241 "tabs.item.enableNotification" : "Aktifkan pemberitahuan", 256 "tabs.item.enableNotification" : "Aktifkan pemberitahuan",
242 "tabs.item.enableService" : "Aktifkan layanan", 257 "tabs.item.enableService" : "Aktifkan layanan",
243 "tabs.item.reload" : "Muat Ulang", 258 "tabs.item.reload" : "Muat Ulang",
244 "validation.email" : "{field} is not valid", 259 "validation.email" : "{field} tidak benar",
245 "validation.minLength" : "{field} should be at least {length} characters long", 260 "validation.minLength" : "{field} setidaknya harus {length} karakter",
246 "validation.required" : "{field} is required", 261 "validation.required" : "{field} wajib diisi",
247 "validation.url" : "{field} is not a valid URL", 262 "validation.url" : "{field} bukan URL yang benar",
248 "welcome.loginButton" : "Masuk ke akun Anda", 263 "welcome.loginButton" : "Masuk ke akun Anda",
249 "welcome.signupButton" : "Buat akun gratis", 264 "welcome.signupButton" : "Buat akun gratis",
250 "welcome.slogan" : "Perpesanan yang bekerja untuk Anda" 265 "welcome.slogan" : "Perpesanan yang bekerja untuk Anda"
diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json
index 9d23a309b..958d1470d 100644
--- a/src/i18n/locales/it.json
+++ b/src/i18n/locales/it.json
@@ -1,14 +1,17 @@
1{ 1{
2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
2 "global.api.unhealthy" : "Impossibile connettersi ai servizi online di Franz", 5 "global.api.unhealthy" : "Impossibile connettersi ai servizi online di Franz",
3 "global.notConnectedToTheInternet" : "Non sei connesso a Internet.", 6 "global.notConnectedToTheInternet" : "Non sei connesso a Internet.",
4 "import.headline" : "Importa i servizi di Franz 4", 7 "import.headline" : "Importa i servizi di Franz 4",
5 "import.notSupportedHeadline" : "Servizi non ancora supportati in Franz 5", 8 "import.notSupportedHeadline" : "Servizi non ancora supportati in Franz 5",
6 "import.skip.label" : "Voglio aggiungere servizi manualmente", 9 "import.skip.label" : "Voglio aggiungere i servizi manualmente",
7 "import.submit.label" : "Importa servizi", 10 "import.submit.label" : "Importa servizi",
8 "infobar.buttonChangelog" : "Cosa c'è di nuovo?", 11 "infobar.buttonChangelog" : "Cosa c'è di nuovo?",
9 "infobar.buttonInstallUpdate" : "Riavvia e installa aggiornamento", 12 "infobar.buttonInstallUpdate" : "Riavvia e installa l'aggiornamento",
10 "infobar.buttonReloadServices" : "Ricarica servizi", 13 "infobar.buttonReloadServices" : "Ricarica servizi",
11 "infobar.requiredRequestsFailed" : "Impossibile caricare servizi e info utente", 14 "infobar.requiredRequestsFailed" : "Impossibile caricare i servizi e le informazioni dell'utente",
12 "infobar.servicesUpdated" : "I tuoi servizi sono stati aggiornati.", 15 "infobar.servicesUpdated" : "I tuoi servizi sono stati aggiornati.",
13 "infobar.updateAvailable" : "È disponibile un nuovo aggiornamento di Franz.", 16 "infobar.updateAvailable" : "È disponibile un nuovo aggiornamento di Franz.",
14 "invite.email.label" : "Indirizzo email", 17 "invite.email.label" : "Indirizzo email",
@@ -23,14 +26,14 @@
23 "login.link.password" : "Reimposta password", 26 "login.link.password" : "Reimposta password",
24 "login.link.signup" : "Crea un account gratuito", 27 "login.link.signup" : "Crea un account gratuito",
25 "login.password.label" : "Password", 28 "login.password.label" : "Password",
26 "login.serverLogout" : "La tua sessione è scaduta, accedi nuovamente.", 29 "login.serverLogout" : "La tua sessione è scaduta, per favore accedi di nuovo.",
27 "login.submit.label" : "Accedi", 30 "login.submit.label" : "Accedi",
28 "login.tokenExpired" : "La tua sessione è scaduta, accedi nuovamente.", 31 "login.tokenExpired" : "La tua sessione è scaduta, per favore accedi di nuovo.",
29 "menu.app.about" : "Info su Franz", 32 "menu.app.about" : "Info su Franz",
30 "menu.app.hide" : "Nascondi", 33 "menu.app.hide" : "Nascondi",
31 "menu.app.hideOthers" : "Nascondi Altri", 34 "menu.app.hideOthers" : "Nascondi Altri",
32 "menu.app.quit" : "Esci", 35 "menu.app.quit" : "Esci",
33 "menu.app.settings" : "Impostazioni", 36 "menu.app.settings" : "Settings",
34 "menu.app.unhide" : "Mostra", 37 "menu.app.unhide" : "Mostra",
35 "menu.edit" : "Modifica", 38 "menu.edit" : "Modifica",
36 "menu.edit.copy" : "Copia", 39 "menu.edit.copy" : "Copia",
@@ -50,20 +53,20 @@
50 "menu.help" : "Aiuto", 53 "menu.help" : "Aiuto",
51 "menu.help.changelog" : "Changelog", 54 "menu.help.changelog" : "Changelog",
52 "menu.help.learnMore" : "Maggiori Informazioni", 55 "menu.help.learnMore" : "Maggiori Informazioni",
53 "menu.help.privacy" : "Informativa sulla Privacy", 56 "menu.help.privacy" : "Dichiarazione della Privacy",
54 "menu.help.support" : "Supporto", 57 "menu.help.support" : "Supporto",
55 "menu.help.tos" : "Termini di Servizio", 58 "menu.help.tos" : "Termini di Servizio",
56 "menu.services" : "Servizi", 59 "menu.services" : "Servizi",
57 "menu.services.addNewService" : "Aggiungi Nuovo Servizio...", 60 "menu.services.addNewService" : "Aggiungi Nuovo Servizio...",
58 "menu.view" : "Visualizza", 61 "menu.view" : "Visualizza",
59 "menu.view.enterFullScreen" : "Visualizza a Tutto Schermo", 62 "menu.view.enterFullScreen" : "Visualizza a Schermo Intero",
60 "menu.view.exitFullScreen" : "Modalità Finestra", 63 "menu.view.exitFullScreen" : "Esci da Schermo Intero",
61 "menu.view.reloadFranz" : "Ricarica Franz", 64 "menu.view.reloadFranz" : "Ricarica Franz",
62 "menu.view.reloadService" : "Ricarica Servizio", 65 "menu.view.reloadService" : "Ricarica Servizio",
63 "menu.view.resetZoom" : "Dimensione Attuale", 66 "menu.view.resetZoom" : "Dimensione Attuale",
64 "menu.view.toggleDevTools" : "Attiva Strumenti Sviluppo", 67 "menu.view.toggleDevTools" : "Attiva\/Disattiva Strumenti Sviluppo",
65 "menu.view.toggleFullScreen" : "Passa a Schermo Intero", 68 "menu.view.toggleFullScreen" : "Attiva\/Disattiva Schermo Intero",
66 "menu.view.toggleServiceDevTools" : "Attiva Strumenti per Sviluppatori di Servizi", 69 "menu.view.toggleServiceDevTools" : "Attiva\/Disattiva Strumenti per Sviluppatori di Servizi",
67 "menu.view.zoomIn" : "Aumenta Zoom", 70 "menu.view.zoomIn" : "Aumenta Zoom",
68 "menu.view.zoomOut" : "Diminuisci Zoom", 71 "menu.view.zoomOut" : "Diminuisci Zoom",
69 "menu.window" : "Finestra", 72 "menu.window" : "Finestra",
@@ -75,11 +78,12 @@
75 "password.link.signup" : "Crea un account gratuito", 78 "password.link.signup" : "Crea un account gratuito",
76 "password.noUser" : "Non è stato trovato nessun utente con questo indirizzo e-mail", 79 "password.noUser" : "Non è stato trovato nessun utente con questo indirizzo e-mail",
77 "password.submit.label" : "Invia", 80 "password.submit.label" : "Invia",
78 "password.successInfo" : "Please check your email", 81 "password.successInfo" : "Per favore controlla la tua email",
79 "pricing.headline" : "Support Franz", 82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
80 "pricing.link.skipPayment" : "Non voglio supportare lo sviluppo di Franz.", 83 "pricing.headline" : "Supporta Franz",
84 "pricing.link.skipPayment" : "Non voglio supportare lo sviluppo di Franz",
81 "pricing.submit.label" : "Voglio supportare lo sviluppo di Franz", 85 "pricing.submit.label" : "Voglio supportare lo sviluppo di Franz",
82 "pricing.support.label" : "Select your support plan", 86 "pricing.support.label" : "Seleziona la modalità di supporto",
83 "service.crashHandler.action" : "Ricarica {name}", 87 "service.crashHandler.action" : "Ricarica {name}",
84 "service.crashHandler.autoReload" : "Tentativo di ripristino automatico di {name} in {seconds} secondi", 88 "service.crashHandler.autoReload" : "Tentativo di ripristino automatico di {name} in {seconds} secondi",
85 "service.crashHandler.headline" : "Oh no!", 89 "service.crashHandler.headline" : "Oh no!",
@@ -87,13 +91,13 @@
87 "service.disabledHandler.action" : "Attiva {name}", 91 "service.disabledHandler.action" : "Attiva {name}",
88 "service.disabledHandler.headline" : "{name} è disattivato", 92 "service.disabledHandler.headline" : "{name} è disattivato",
89 "services.getStarted" : "Iniziamo", 93 "services.getStarted" : "Iniziamo",
90 "services.welcome" : "Welcome to Franz", 94 "services.welcome" : "Benvenuto su Franz",
91 "settings.account.account.editButton" : "Modifica account", 95 "settings.account.account.editButton" : "Modifica account",
92 "settings.account.accountType.basic" : "Account Basic", 96 "settings.account.accountType.basic" : "Account Base",
93 "settings.account.accountType.premium" : "Premium Supporter Account", 97 "settings.account.accountType.premium" : "Account Supporto Premium ",
94 "settings.account.buttonSave" : "Aggiorna profilo", 98 "settings.account.buttonSave" : "Aggiorna profilo",
95 "settings.account.deleteAccount" : "Elimina account", 99 "settings.account.deleteAccount" : "Elimina account",
96 "settings.account.deleteEmailSent" : "Hai ricevuto un'email con un link per confermare l'eliminazione del tuo account. I dati del tuo account non potranno più essere ripristinati!", 100 "settings.account.deleteEmailSent" : "Hai ricevuto un'email con un link per confermare l'eliminazione del tuo account.I dati del tuo account non potranno più essere ripristinati!",
97 "settings.account.deleteInfo" : "Se non hai più bisogno dell'account Franz, puoi eliminare il tuo account e tutti i dati relativi qui.", 101 "settings.account.deleteInfo" : "Se non hai più bisogno dell'account Franz, puoi eliminare il tuo account e tutti i dati relativi qui.",
98 "settings.account.headline" : "Account", 102 "settings.account.headline" : "Account",
99 "settings.account.headlineAccount" : "Informazioni account", 103 "settings.account.headlineAccount" : "Informazioni account",
@@ -101,13 +105,13 @@
101 "settings.account.headlineInvoices" : "Fatture", 105 "settings.account.headlineInvoices" : "Fatture",
102 "settings.account.headlinePassword" : "Cambia password", 106 "settings.account.headlinePassword" : "Cambia password",
103 "settings.account.headlineProfile" : "Aggiorna profilo", 107 "settings.account.headlineProfile" : "Aggiorna profilo",
104 "settings.account.headlineSubscription" : "La tua iscrizione", 108 "settings.account.headlineSubscription" : "Il tuo abbonamento",
105 "settings.account.headlineUpgrade" : "Aggiorna il tuo account e supporta Franz", 109 "settings.account.headlineUpgrade" : "Aggiorna il tuo account e supporta Franz",
106 "settings.account.invoiceDownload" : "Scarica", 110 "settings.account.invoiceDownload" : "Scarica",
107 "settings.account.manageSubscription.label" : "Gestisci la tua iscrizione", 111 "settings.account.manageSubscription.label" : "Gestisci il tuo abbonamento",
108 "settings.account.successInfo" : "Le tue modifiche sono state salvate", 112 "settings.account.successInfo" : "Le tue modifiche sono state salvate",
109 "settings.account.tryReloadUserInfoRequest" : "Prova ancora", 113 "settings.account.tryReloadUserInfoRequest" : "Prova di nuovo",
110 "settings.account.userInfoRequestFailed" : "Impossibile caricare informazioni utente.", 114 "settings.account.userInfoRequestFailed" : "Impossibile caricare le informazioni dell'utente.",
111 "settings.app.buttonClearAllCache" : "Svuota la cache", 115 "settings.app.buttonClearAllCache" : "Svuota la cache",
112 "settings.app.buttonInstallUpdate" : "Riavvia e installa l'aggiornamento", 116 "settings.app.buttonInstallUpdate" : "Riavvia e installa l'aggiornamento",
113 "settings.app.buttonSearchForUpdate" : "Controlla aggiornamenti", 117 "settings.app.buttonSearchForUpdate" : "Controlla aggiornamenti",
@@ -116,16 +120,18 @@
116 "settings.app.form.autoLaunchInBackground" : "Apri in background", 120 "settings.app.form.autoLaunchInBackground" : "Apri in background",
117 "settings.app.form.autoLaunchOnStart" : "Esegui Franz all'avvio", 121 "settings.app.form.autoLaunchOnStart" : "Esegui Franz all'avvio",
118 "settings.app.form.beta" : "Includi versioni beta", 122 "settings.app.form.beta" : "Includi versioni beta",
123 "settings.app.form.darkMode" : "Join the Dark Side",
119 "settings.app.form.enableGPUAcceleration" : "Attiva Accelerazione GPU", 124 "settings.app.form.enableGPUAcceleration" : "Attiva Accelerazione GPU",
120 "settings.app.form.enableMenuBar" : "Mostra Franz nella Barra del Menu", 125 "settings.app.form.enableMenuBar" : "Mostra Franz nella Barra del Menu",
121 "settings.app.form.enableSpellchecking" : "Attiva controllo ortografico", 126 "settings.app.form.enableSpellchecking" : "Attiva controllo ortografico",
122 "settings.app.form.enableSystemTray" : "Mostra Franz nell'area di notifica", 127 "settings.app.form.enableSystemTray" : "Mostra Franz nell'area di notifica",
123 "settings.app.form.hideDockIcon" : "Nascondi icona Franz nella Dock", 128 "settings.app.form.hideDockIcon" : "Nascondi l'icona Franz nel Dock",
124 "settings.app.form.language" : "Lingua", 129 "settings.app.form.language" : "Lingua",
125 "settings.app.form.minimizeToSystemTray" : "Minimizza Franz nell'area di notifica", 130 "settings.app.form.minimizeToSystemTray" : "Minimizza Franz nell'area di notifica",
126 "settings.app.form.runInBackground" : "Mantieni Franz in esecuzione quando chiudi la finestra", 131 "settings.app.form.runInBackground" : "Mantieni Franz in esecuzione quando chiudi la finestra",
127 "settings.app.form.showDisabledServices" : "Mostra schede servizi disattivati", 132 "settings.app.form.showDisabledServices" : "Mostra schede servizi disattivati",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "Mostra l'etichetta dei messaggi non letti quanto le notifiche sono disattivate", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "Mostra l'etichetta dei messaggi non letti quando le notifiche sono disattivate",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "Impostazioni", 135 "settings.app.headline" : "Impostazioni",
130 "settings.app.headlineAdvanced" : "Avanzate", 136 "settings.app.headlineAdvanced" : "Avanzate",
131 "settings.app.headlineAppearance" : "Aspetto", 137 "settings.app.headlineAppearance" : "Aspetto",
@@ -136,7 +142,7 @@
136 "settings.app.subheadlineCache" : "Cache", 142 "settings.app.subheadlineCache" : "Cache",
137 "settings.app.translationHelp" : "Aiutaci a tradurre Franz nella tua lingua.", 143 "settings.app.translationHelp" : "Aiutaci a tradurre Franz nella tua lingua.",
138 "settings.app.updateStatusAvailable" : "Aggiornamento disponibile, download in corso...", 144 "settings.app.updateStatusAvailable" : "Aggiornamento disponibile, download in corso...",
139 "settings.app.updateStatusSearching" : "Ricerca aggiornamenti...", 145 "settings.app.updateStatusSearching" : "Ricerca aggiornamenti",
140 "settings.app.updateStatusUpToDate" : "Stai utilizzando l'ultima versione di Franz", 146 "settings.app.updateStatusUpToDate" : "Stai utilizzando l'ultima versione di Franz",
141 "settings.invite.headline" : "Invita Amici", 147 "settings.invite.headline" : "Invita Amici",
142 "settings.navigation.account" : "Account", 148 "settings.navigation.account" : "Account",
@@ -148,14 +154,14 @@
148 "settings.recipes.all" : "Tutti i servizi", 154 "settings.recipes.all" : "Tutti i servizi",
149 "settings.recipes.dev" : "Sviluppo", 155 "settings.recipes.dev" : "Sviluppo",
150 "settings.recipes.headline" : "Servizi disponibili", 156 "settings.recipes.headline" : "Servizi disponibili",
151 "settings.recipes.missingService" : "Richiedi un servizio", 157 "settings.recipes.missingService" : "Manca un servizio?",
152 "settings.recipes.mostPopular" : "Più popolari", 158 "settings.recipes.mostPopular" : "Più popolari",
153 "settings.recipes.nothingFound" : "Ci dispiace, ma nessun servizio corrisponde alla tua ricerca.", 159 "settings.recipes.nothingFound" : "Ci dispiace, ma nessun servizio corrisponde alla tua ricerca.",
154 "settings.recipes.servicesSuccessfulAddedInfo" : "Servizio aggiunto con successo", 160 "settings.recipes.servicesSuccessfulAddedInfo" : "Servizio aggiunto con successo",
155 "settings.searchService" : "Cerca servizio", 161 "settings.searchService" : "Cerca servizio",
156 "settings.service.error.goBack" : "Torna ai servizi", 162 "settings.service.error.goBack" : "Torna ai servizi",
157 "settings.service.error.headline" : "Errore", 163 "settings.service.error.headline" : "Errore",
158 "settings.service.error.message" : "Impossibile caricare il servizio.", 164 "settings.service.error.message" : "Impossibile caricare il contenuto del servizio.",
159 "settings.service.form.addServiceHeadline" : "Aggiungi {name}", 165 "settings.service.form.addServiceHeadline" : "Aggiungi {name}",
160 "settings.service.form.availableServices" : "Servizi disponibili", 166 "settings.service.form.availableServices" : "Servizi disponibili",
161 "settings.service.form.customUrl" : "Server personalizzato", 167 "settings.service.form.customUrl" : "Server personalizzato",
@@ -166,6 +172,7 @@
166 "settings.service.form.editServiceHeadline" : "Modifica {name}", 172 "settings.service.form.editServiceHeadline" : "Modifica {name}",
167 "settings.service.form.enableAudio" : "Attiva audio", 173 "settings.service.form.enableAudio" : "Attiva audio",
168 "settings.service.form.enableBadge" : "Mostra l'etichetta dei messaggi non letti", 174 "settings.service.form.enableBadge" : "Mostra l'etichetta dei messaggi non letti",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "Attiva le notifiche", 176 "settings.service.form.enableNotification" : "Attiva le notifiche",
170 "settings.service.form.enableService" : "Attiva il servizio", 177 "settings.service.form.enableService" : "Attiva il servizio",
171 "settings.service.form.headlineBadges" : "Etichetta dei messaggi non letti", 178 "settings.service.form.headlineBadges" : "Etichetta dei messaggi non letti",
@@ -175,9 +182,15 @@
175 "settings.service.form.iconDelete" : "Elimina", 182 "settings.service.form.iconDelete" : "Elimina",
176 "settings.service.form.iconUpload" : "Trascina la tua immagine o clicca qui", 183 "settings.service.form.iconUpload" : "Trascina la tua immagine o clicca qui",
177 "settings.service.form.indirectMessageInfo" : "Verranno notificati tutti i messaggi di un canale, non solo @username, @channel, @here, ...", 184 "settings.service.form.indirectMessageInfo" : "Verranno notificati tutti i messaggi di un canale, non solo @username, @channel, @here, ...",
178 "settings.service.form.indirectMessages" : "Mostra l'etichetta per tutti i messaggi", 185 "settings.service.form.indirectMessages" : "Mostra l'etichetta per tutti i nuovi messaggi",
179 "settings.service.form.isMutedInfo" : "Se disattivato, tutte le notifiche sonore e le riproduzioni audio saranno mute", 186 "settings.service.form.isMutedInfo" : "Se disattivato, tutte le notifiche sonore e le riproduzioni audio saranno mutate",
180 "settings.service.form.name" : "Nome", 187 "settings.service.form.name" : "Nome",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "Salva servizio", 194 "settings.service.form.saveButton" : "Salva servizio",
182 "settings.service.form.tabHosted" : "Hosted", 195 "settings.service.form.tabHosted" : "Hosted",
183 "settings.service.form.tabOnPremise" : "Self hosted â­ï¸", 196 "settings.service.form.tabOnPremise" : "Self hosted â­ï¸",
@@ -187,15 +200,15 @@
187 "settings.services.deletedInfo" : "Il servizio è stato eliminato", 200 "settings.services.deletedInfo" : "Il servizio è stato eliminato",
188 "settings.services.discoverServices" : "Scopri servizi", 201 "settings.services.discoverServices" : "Scopri servizi",
189 "settings.services.headline" : "I tuoi servizi", 202 "settings.services.headline" : "I tuoi servizi",
190 "settings.services.noServicesAdded" : "Non aggiunto nessun servizio.", 203 "settings.services.noServicesAdded" : "Non hai aggiunto ancora nessun servizio.",
191 "settings.services.tooltip.isDisabled" : "Il servizio è disattivato", 204 "settings.services.tooltip.isDisabled" : "Il servizio è disattivato",
192 "settings.services.tooltip.isMuted" : "Tutti i suoni sono stati disattivati", 205 "settings.services.tooltip.isMuted" : "Tutti i suoni sono disattivati",
193 "settings.services.tooltip.notificationsDisabled" : "Le notifiche sono state disattivate", 206 "settings.services.tooltip.notificationsDisabled" : "Le notifiche sono disattivate",
194 "settings.services.updatedInfo" : "Le modifiche sono state salvate", 207 "settings.services.updatedInfo" : "Le tue modifiche sono state salvate",
195 "settings.user.form.accountType.company" : "Società", 208 "settings.user.form.accountType.company" : "Società",
196 "settings.user.form.accountType.individual" : "Individuo", 209 "settings.user.form.accountType.individual" : "Individuale",
197 "settings.user.form.accountType.label" : "Tipo account", 210 "settings.user.form.accountType.label" : "Tipo di account",
198 "settings.user.form.accountType.non-profit" : "Non-Profit", 211 "settings.user.form.accountType.non-profit" : "No profit",
199 "settings.user.form.currentPassword" : "Password attuale", 212 "settings.user.form.currentPassword" : "Password attuale",
200 "settings.user.form.email" : "Email", 213 "settings.user.form.email" : "Email",
201 "settings.user.form.firstname" : "Nome", 214 "settings.user.form.firstname" : "Nome",
@@ -211,21 +224,23 @@
211 "signup.firstname.label" : "Nome", 224 "signup.firstname.label" : "Nome",
212 "signup.headline" : "Iscriviti", 225 "signup.headline" : "Iscriviti",
213 "signup.lastname.label" : "Cognome", 226 "signup.lastname.label" : "Cognome",
214 "signup.legal.info" : "Creando un account di Franz accetti", 227 "signup.legal.info" : "Creando un account di Franz accetti l' ",
215 "signup.legal.privacy" : "Informativa sulla Privacy", 228 "signup.legal.privacy" : "Informativa sulla Privacy",
216 "signup.legal.terms" : "Termini del Servizio", 229 "signup.legal.terms" : "Termini di Servizio",
217 "signup.link.login" : "Hai già un account, accedi?", 230 "signup.link.login" : "Hai già un account, vuoi accedere?",
218 "signup.password.label" : "Password", 231 "signup.password.label" : "Password",
219 "signup.submit.label" : "Crea un account", 232 "signup.submit.label" : "Crea un account",
220 "subscription.euTaxInfo" : "Per i residenti UE: possono essere applicate tasse locali", 233 "subscription.euTaxInfo" : "Per i residenti UE: possono essere applicate tasse locali",
221 "subscription.features.ads" : "Nessuna pubblicità, mai!", 234 "subscription.features.ads" : "Nessuna pubblicità, mai!",
222 "subscription.features.comingSoon" : "in arrivo", 235 "subscription.features.comingSoon" : "in arrivo",
223 "subscription.features.customServices" : "Servizi privati per te e il tuo gruppo",
224 "subscription.features.encryptedSync" : "Sincronizzazione sessione crittografata", 236 "subscription.features.encryptedSync" : "Sincronizzazione sessione crittografata",
225 "subscription.features.onpremise" : "Aggiungi servizi on-premise\/in casa come HipChat", 237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
226 "subscription.features.vpn" : "Supporto Proxy e VPN", 238 "subscription.features.onpremise" : "Aggiungi servizi on-premise\/hosted come HipChat",
239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "L'account a pagamento Franz Premium Supporter include", 242 "subscription.includedFeatures" : "L'account a pagamento Franz Premium Supporter include",
228 "subscription.paymentSessionError" : "Impossibile inizializzare il form del pagamento", 243 "subscription.paymentSessionError" : "Impossibile inizializzare il modulo per il pagamento",
229 "subscription.submit.label" : "Voglio supportare lo sviluppo di Franz", 244 "subscription.submit.label" : "Voglio supportare lo sviluppo di Franz",
230 "subscription.type.free" : "gratis", 245 "subscription.type.free" : "gratis",
231 "subscription.type.month" : "mese", 246 "subscription.type.month" : "mese",
@@ -240,12 +255,12 @@
240 "tabs.item.enableAudio" : "Attiva audio", 255 "tabs.item.enableAudio" : "Attiva audio",
241 "tabs.item.enableNotification" : "Attiva notifiche", 256 "tabs.item.enableNotification" : "Attiva notifiche",
242 "tabs.item.enableService" : "Attiva servizio", 257 "tabs.item.enableService" : "Attiva servizio",
243 "tabs.item.reload" : "Aggiorna", 258 "tabs.item.reload" : "Ricarica",
244 "validation.email" : "{field} non valido", 259 "validation.email" : "{field} non valido",
245 "validation.minLength" : "{field} dovrebbe contenere almeno {length} caratteri", 260 "validation.minLength" : "{field} dovrebbe contenere almeno {length} caratteri",
246 "validation.required" : "{field} è necessario", 261 "validation.required" : "{field} è necessario",
247 "validation.url" : "{field} non è un URL valido", 262 "validation.url" : "{field} non è un URL valido",
248 "welcome.loginButton" : "Accedi al tuo account", 263 "welcome.loginButton" : "Accedi al tuo account",
249 "welcome.signupButton" : "Crea un account gratuito", 264 "welcome.signupButton" : "Crea un account gratuito",
250 "welcome.slogan" : "Un sistema di messaggistica che funziona" 265 "welcome.slogan" : "Un sistema di messaggistica che va bene per te"
251} 266}
diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json
index a7af10aba..57b767ef1 100644
--- a/src/i18n/locales/ja.json
+++ b/src/i18n/locales/ja.json
@@ -1,11 +1,14 @@
1{ 1{
2 "global.api.unhealthy" : "Franzオンラインサービスã«æŽ¥ç¶šã§ãã¾ã›ã‚“。", 2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
5 "global.api.unhealthy" : "Franzã®ã‚ªãƒ³ãƒ©ã‚¤ãƒ³ã‚µãƒ¼ãƒ“スã«æŽ¥ç¶šã§ãã¾ã›ã‚“。",
3 "global.notConnectedToTheInternet" : "インターãƒãƒƒãƒˆã«æŽ¥ç¶šã•ã‚Œã¦ã„ã¾ã›ã‚“。", 6 "global.notConnectedToTheInternet" : "インターãƒãƒƒãƒˆã«æŽ¥ç¶šã•ã‚Œã¦ã„ã¾ã›ã‚“。",
4 "import.headline" : "Franz 4ã®ã‚µãƒ¼ãƒ“スをインãƒãƒ¼ãƒˆ", 7 "import.headline" : "Franz 4ã®ã‚µãƒ¼ãƒ“スをインãƒãƒ¼ãƒˆã—ã¦ä¸‹ã•ã„",
5 "import.notSupportedHeadline" : "Franz 5ã§ã¯ã“ã®ã‚µãƒ¼ãƒ“スã«ã¾ã å¯¾å¿œã—ã¦ã„ã¾ã›ã‚“", 8 "import.notSupportedHeadline" : "Franz 5ã§ã¯ã“ã®ã‚µãƒ¼ãƒ“スã«ã¾ã å¯¾å¿œã—ã¦ã„ã¾ã›ã‚“",
6 "import.skip.label" : "後ã§æ‰‹å‹•ã§ã‚µãƒ¼ãƒ“スを追加ã™ã‚‹", 9 "import.skip.label" : "手動ã§ã‚µãƒ¼ãƒ“スを追加ã™ã‚‹",
7 "import.submit.label" : "サービスをインãƒãƒ¼ãƒˆ", 10 "import.submit.label" : "サービスをインãƒãƒ¼ãƒˆã—ã¦ä¸‹ã•ã„",
8 "infobar.buttonChangelog" : "最新情報", 11 "infobar.buttonChangelog" : "最新ã®æƒ…å ±",
9 "infobar.buttonInstallUpdate" : "å†èµ·å‹•ã—ã¦æ›´æ–°ã‚’インストールã™ã‚‹", 12 "infobar.buttonInstallUpdate" : "å†èµ·å‹•ã—ã¦æ›´æ–°ã‚’インストールã™ã‚‹",
10 "infobar.buttonReloadServices" : "サービスã®å†èª­ã¿è¾¼ã¿", 13 "infobar.buttonReloadServices" : "サービスã®å†èª­ã¿è¾¼ã¿",
11 "infobar.requiredRequestsFailed" : "サービスã¨ãƒ¦ãƒ¼ã‚¶ãƒ¼æƒ…報を読ã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ", 14 "infobar.requiredRequestsFailed" : "サービスã¨ãƒ¦ãƒ¼ã‚¶ãƒ¼æƒ…報を読ã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ",
@@ -26,7 +29,7 @@
26 "login.serverLogout" : "セッションã®æœŸé™ãŒåˆ‡ã‚Œã¾ã—ãŸã€‚ログインã—ç›´ã—ã¦ä¸‹ã•ã„。", 29 "login.serverLogout" : "セッションã®æœŸé™ãŒåˆ‡ã‚Œã¾ã—ãŸã€‚ログインã—ç›´ã—ã¦ä¸‹ã•ã„。",
27 "login.submit.label" : "サインイン", 30 "login.submit.label" : "サインイン",
28 "login.tokenExpired" : "セッションã®æœŸé™ãŒåˆ‡ã‚Œã¾ã—ãŸã€‚ログインã—ç›´ã—ã¦ä¸‹ã•ã„。", 31 "login.tokenExpired" : "セッションã®æœŸé™ãŒåˆ‡ã‚Œã¾ã—ãŸã€‚ログインã—ç›´ã—ã¦ä¸‹ã•ã„。",
29 "menu.app.about" : "Franzã«ã¤ãã¦", 32 "menu.app.about" : "ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…å ±",
30 "menu.app.hide" : "éš ã™", 33 "menu.app.hide" : "éš ã™",
31 "menu.app.hideOthers" : "ä»–ã‚’éš ã™", 34 "menu.app.hideOthers" : "ä»–ã‚’éš ã™",
32 "menu.app.quit" : "終了", 35 "menu.app.quit" : "終了",
@@ -49,7 +52,7 @@
49 "menu.file" : "ファイル", 52 "menu.file" : "ファイル",
50 "menu.help" : "ヘルプ", 53 "menu.help" : "ヘルプ",
51 "menu.help.changelog" : "更新履歴", 54 "menu.help.changelog" : "更新履歴",
52 "menu.help.learnMore" : "詳細ã«ã¤ã„ã¦", 55 "menu.help.learnMore" : "Franzã«ã¤ã„ã¦",
53 "menu.help.privacy" : "プライãƒã‚·ãƒ¼ã«ã¤ã„ã¦", 56 "menu.help.privacy" : "プライãƒã‚·ãƒ¼ã«ã¤ã„ã¦",
54 "menu.help.support" : "サãƒãƒ¼ãƒˆ", 57 "menu.help.support" : "サãƒãƒ¼ãƒˆ",
55 "menu.help.tos" : "サービス利用è¦ç´„", 58 "menu.help.tos" : "サービス利用è¦ç´„",
@@ -76,6 +79,7 @@
76 "password.noUser" : "ã“ã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã¯ã¾ã ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã›ã‚“", 79 "password.noUser" : "ã“ã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã¯ã¾ã ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã›ã‚“",
77 "password.submit.label" : "é€ä¿¡", 80 "password.submit.label" : "é€ä¿¡",
78 "password.successInfo" : "メールを確èªã—ã¦ä¸‹ã•ã„", 81 "password.successInfo" : "メールを確èªã—ã¦ä¸‹ã•ã„",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "Franzを支æ´ã™ã‚‹", 83 "pricing.headline" : "Franzを支æ´ã™ã‚‹",
80 "pricing.link.skipPayment" : "Franzã®é–‹ç™ºã‚’支æ´ã—ãŸããªã„。", 84 "pricing.link.skipPayment" : "Franzã®é–‹ç™ºã‚’支æ´ã—ãŸããªã„。",
81 "pricing.submit.label" : "Franzã®é–‹ç™ºã‚’支æ´ã—ãŸã„。", 85 "pricing.submit.label" : "Franzã®é–‹ç™ºã‚’支æ´ã—ãŸã„。",
@@ -116,6 +120,7 @@
116 "settings.app.form.autoLaunchInBackground" : "ãƒãƒƒã‚¯ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã§é–‹ã", 120 "settings.app.form.autoLaunchInBackground" : "ãƒãƒƒã‚¯ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã§é–‹ã",
117 "settings.app.form.autoLaunchOnStart" : "システム起動時ã«Franzã‚’é–‹ã", 121 "settings.app.form.autoLaunchOnStart" : "システム起動時ã«Franzã‚’é–‹ã",
118 "settings.app.form.beta" : "Betaãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’å«ã‚ã‚‹", 122 "settings.app.form.beta" : "Betaãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’å«ã‚ã‚‹",
123 "settings.app.form.darkMode" : "Join the Dark Side",
119 "settings.app.form.enableGPUAcceleration" : "GPUアクセラレーションを有効ã«ã™ã‚‹", 124 "settings.app.form.enableGPUAcceleration" : "GPUアクセラレーションを有効ã«ã™ã‚‹",
120 "settings.app.form.enableMenuBar" : "メニューãƒãƒ¼ã«Franzを表示ã™ã‚‹", 125 "settings.app.form.enableMenuBar" : "メニューãƒãƒ¼ã«Franzを表示ã™ã‚‹",
121 "settings.app.form.enableSpellchecking" : "スペルãƒã‚§ãƒƒã‚¯ã‚’有効ã«ã™ã‚‹", 126 "settings.app.form.enableSpellchecking" : "スペルãƒã‚§ãƒƒã‚¯ã‚’有効ã«ã™ã‚‹",
@@ -126,6 +131,7 @@
126 "settings.app.form.runInBackground" : "ウインドウを閉ã˜ãŸéš›ã«Franzã‚’ãƒãƒƒã‚¯ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã§å®Ÿè¡Œã•ã›ã¦ãŠã", 131 "settings.app.form.runInBackground" : "ウインドウを閉ã˜ãŸéš›ã«Franzã‚’ãƒãƒƒã‚¯ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã§å®Ÿè¡Œã•ã›ã¦ãŠã",
127 "settings.app.form.showDisabledServices" : "無効化ã•ã‚ŒãŸã‚µãƒ¼ãƒ“スã®ã‚¿ãƒ–を表示ã™ã‚‹", 132 "settings.app.form.showDisabledServices" : "無効化ã•ã‚ŒãŸã‚µãƒ¼ãƒ“スã®ã‚¿ãƒ–を表示ã™ã‚‹",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "通知ã®ç„¡åŠ¹æ™‚ã«æœªèª­ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ä»¶æ•°ã‚’表示ã™ã‚‹", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "通知ã®ç„¡åŠ¹æ™‚ã«æœªèª­ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ä»¶æ•°ã‚’表示ã™ã‚‹",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "設定", 135 "settings.app.headline" : "設定",
130 "settings.app.headlineAdvanced" : "詳細", 136 "settings.app.headlineAdvanced" : "詳細",
131 "settings.app.headlineAppearance" : "表示スタイル", 137 "settings.app.headlineAppearance" : "表示スタイル",
@@ -166,6 +172,7 @@
166 "settings.service.form.editServiceHeadline" : "{name}を編集", 172 "settings.service.form.editServiceHeadline" : "{name}を編集",
167 "settings.service.form.enableAudio" : "オーディオを有効ã«ã™ã‚‹", 173 "settings.service.form.enableAudio" : "オーディオを有効ã«ã™ã‚‹",
168 "settings.service.form.enableBadge" : "未読件数ã®é€šçŸ¥ãƒãƒƒã‚¸ã‚’表示ã™ã‚‹", 174 "settings.service.form.enableBadge" : "未読件数ã®é€šçŸ¥ãƒãƒƒã‚¸ã‚’表示ã™ã‚‹",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "通知を有効ã«ã™ã‚‹", 176 "settings.service.form.enableNotification" : "通知を有効ã«ã™ã‚‹",
170 "settings.service.form.enableService" : "サービスを有効ã«ã™ã‚‹", 177 "settings.service.form.enableService" : "サービスを有効ã«ã™ã‚‹",
171 "settings.service.form.headlineBadges" : "未読件数ã®é€šçŸ¥ãƒãƒƒã‚¸", 178 "settings.service.form.headlineBadges" : "未読件数ã®é€šçŸ¥ãƒãƒƒã‚¸",
@@ -178,6 +185,12 @@
178 "settings.service.form.indirectMessages" : "ã™ã¹ã¦ã®æ–°è¦ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã«ã¤ã„ã¦ãƒãƒƒã‚¸ã‚’表示ã™ã‚‹", 185 "settings.service.form.indirectMessages" : "ã™ã¹ã¦ã®æ–°è¦ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã«ã¤ã„ã¦ãƒãƒƒã‚¸ã‚’表示ã™ã‚‹",
179 "settings.service.form.isMutedInfo" : "無効化ã•ã‚Œã¦ã„ã‚‹å ´åˆã€å…¨ã¦ã®é€šçŸ¥éŸ³ã‚„オーディオå†ç”Ÿã¯ç„¡éŸ³ã«ãªã‚Šã¾ã™", 186 "settings.service.form.isMutedInfo" : "無効化ã•ã‚Œã¦ã„ã‚‹å ´åˆã€å…¨ã¦ã®é€šçŸ¥éŸ³ã‚„オーディオå†ç”Ÿã¯ç„¡éŸ³ã«ãªã‚Šã¾ã™",
180 "settings.service.form.name" : "サービスå", 187 "settings.service.form.name" : "サービスå",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "サービスã®ä¿å­˜", 194 "settings.service.form.saveButton" : "サービスã®ä¿å­˜",
182 "settings.service.form.tabHosted" : "ホスト", 195 "settings.service.form.tabHosted" : "ホスト",
183 "settings.service.form.tabOnPremise" : "セルフホスト â­ï¸", 196 "settings.service.form.tabOnPremise" : "セルフホスト â­ï¸",
@@ -220,10 +233,12 @@
220 "subscription.euTaxInfo" : "EU在ä½è€… : 地域ã®æ¶ˆè²»ç¨ŽãŒé©ç”¨ã•ã‚Œã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™", 233 "subscription.euTaxInfo" : "EU在ä½è€… : 地域ã®æ¶ˆè²»ç¨ŽãŒé©ç”¨ã•ã‚Œã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™",
221 "subscription.features.ads" : "広告ã¯ä¸€åˆ‡ã‚ã‚Šã¾ã›ã‚“!", 234 "subscription.features.ads" : "広告ã¯ä¸€åˆ‡ã‚ã‚Šã¾ã›ã‚“!",
222 "subscription.features.comingSoon" : "ã¾ã‚‚ãªã登場", 235 "subscription.features.comingSoon" : "ã¾ã‚‚ãªã登場",
223 "subscription.features.customServices" : "ã‚ãªãŸã¨ã‚ãªãŸã®ãƒãƒ¼ãƒ ã®ãŸã‚ã®ãƒ—ライベートサービス",
224 "subscription.features.encryptedSync" : "æš—å·åŒ–ã•ã‚ŒãŸã‚»ãƒƒã‚·ãƒ§ãƒ³ã®åŒæœŸ", 236 "subscription.features.encryptedSync" : "æš—å·åŒ–ã•ã‚ŒãŸã‚»ãƒƒã‚·ãƒ§ãƒ³ã®åŒæœŸ",
237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "HipChatã®ã‚ˆã†ãªã‚ªãƒ³ãƒ—レミス\/ホスト型サービスã®è¿½åŠ ", 238 "subscription.features.onpremise" : "HipChatã®ã‚ˆã†ãªã‚ªãƒ³ãƒ—レミス\/ホスト型サービスã®è¿½åŠ ",
226 "subscription.features.vpn" : "プロキシサーãƒãƒ¼ã¨VPNã®ã‚µãƒãƒ¼ãƒˆ", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "Franz Premium Supporter有料アカウントã«ã¯ä»¥ä¸‹ãŒå«ã¾ã‚Œã¾ã™", 242 "subscription.includedFeatures" : "Franz Premium Supporter有料アカウントã«ã¯ä»¥ä¸‹ãŒå«ã¾ã‚Œã¾ã™",
228 "subscription.paymentSessionError" : "支払ã„フォームをåˆæœŸåŒ–出æ¥ã¾ã›ã‚“", 243 "subscription.paymentSessionError" : "支払ã„フォームをåˆæœŸåŒ–出æ¥ã¾ã›ã‚“",
229 "subscription.submit.label" : "Franzã®é–‹ç™ºã‚’支æ´ã—ãŸã„", 244 "subscription.submit.label" : "Franzã®é–‹ç™ºã‚’支æ´ã—ãŸã„",
diff --git a/src/i18n/locales/ka.json b/src/i18n/locales/ka.json
index 7679bc6fc..d521c838a 100644
--- a/src/i18n/locales/ka.json
+++ b/src/i18n/locales/ka.json
@@ -1,4 +1,7 @@
1{ 1{
2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
2 "global.api.unhealthy" : "Franz-ის áƒáƒœáƒšáƒáƒ˜áƒœ სერვისთáƒáƒœ დáƒáƒ™áƒáƒ•áƒ¨áƒ˜áƒ áƒ”ბრვერ მáƒáƒ®áƒ”რხდáƒ", 5 "global.api.unhealthy" : "Franz-ის áƒáƒœáƒšáƒáƒ˜áƒœ სერვისთáƒáƒœ დáƒáƒ™áƒáƒ•áƒ¨áƒ˜áƒ áƒ”ბრვერ მáƒáƒ®áƒ”რხდáƒ",
3 "global.notConnectedToTheInternet" : "თქვენ áƒáƒ  ხáƒáƒ áƒ— ინტერნეტთáƒáƒœ დáƒáƒ™áƒáƒ•áƒ¨áƒ˜áƒ áƒ”ბული.", 6 "global.notConnectedToTheInternet" : "თქვენ áƒáƒ  ხáƒáƒ áƒ— ინტერნეტთáƒáƒœ დáƒáƒ™áƒáƒ•áƒ¨áƒ˜áƒ áƒ”ბული.",
4 "import.headline" : "შემáƒáƒ˜áƒ¢áƒáƒœáƒ” Franz 4-ის სერვისები", 7 "import.headline" : "შემáƒáƒ˜áƒ¢áƒáƒœáƒ” Franz 4-ის სერვისები",
@@ -26,23 +29,23 @@
26 "login.serverLogout" : "თქვენს სესიáƒáƒ¡ ვáƒáƒ“რგáƒáƒ£áƒ•áƒ˜áƒ“áƒ, შედით áƒáƒœáƒ’áƒáƒ áƒ˜áƒ¨áƒ¨áƒ˜ ხელáƒáƒ®áƒšáƒ.", 29 "login.serverLogout" : "თქვენს სესიáƒáƒ¡ ვáƒáƒ“რგáƒáƒ£áƒ•áƒ˜áƒ“áƒ, შედით áƒáƒœáƒ’áƒáƒ áƒ˜áƒ¨áƒ¨áƒ˜ ხელáƒáƒ®áƒšáƒ.",
27 "login.submit.label" : "შესვლáƒ", 30 "login.submit.label" : "შესვლáƒ",
28 "login.tokenExpired" : "თქვენს სესიáƒáƒ¡ ვáƒáƒ“რგáƒáƒ£áƒ•áƒ˜áƒ“áƒ, შედით áƒáƒœáƒ’áƒáƒ áƒ˜áƒ¨áƒ¨áƒ˜ ხელáƒáƒ®áƒšáƒ.", 31 "login.tokenExpired" : "თქვენს სესიáƒáƒ¡ ვáƒáƒ“რგáƒáƒ£áƒ•áƒ˜áƒ“áƒ, შედით áƒáƒœáƒ’áƒáƒ áƒ˜áƒ¨áƒ¨áƒ˜ ხელáƒáƒ®áƒšáƒ.",
29 "menu.app.about" : "About Franz", 32 "menu.app.about" : "Franz-ის შესáƒáƒ®áƒ”ბ",
30 "menu.app.hide" : "Hide", 33 "menu.app.hide" : "Hide",
31 "menu.app.hideOthers" : "Hide Others", 34 "menu.app.hideOthers" : "სხვების დáƒáƒ›áƒáƒšáƒ•áƒ",
32 "menu.app.quit" : "Quit", 35 "menu.app.quit" : "გáƒáƒ›áƒáƒ¡áƒ•áƒšáƒ",
33 "menu.app.settings" : "პáƒáƒ áƒáƒ›áƒ”ტრები", 36 "menu.app.settings" : "პáƒáƒ áƒáƒ›áƒ”ტრები",
34 "menu.app.unhide" : "Unhide", 37 "menu.app.unhide" : "Unhide",
35 "menu.edit" : "რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ", 38 "menu.edit" : "რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ",
36 "menu.edit.copy" : "Copy", 39 "menu.edit.copy" : "კáƒáƒžáƒ˜áƒ áƒ”ბáƒ",
37 "menu.edit.cut" : "Cut", 40 "menu.edit.cut" : "áƒáƒ›áƒáƒ­áƒ áƒ",
38 "menu.edit.delete" : "Delete", 41 "menu.edit.delete" : "წáƒáƒ¨áƒšáƒ",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols", 42 "menu.edit.emojiSymbols" : "გრáƒáƒ¤áƒ˜áƒ™áƒ£áƒšáƒ˜ გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბები & სიმბáƒáƒšáƒáƒ”ბი",
40 "menu.edit.paste" : "Paste", 43 "menu.edit.paste" : "ჩáƒáƒ¡áƒ›áƒ",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", 44 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style",
42 "menu.edit.redo" : "Redo", 45 "menu.edit.redo" : "áƒáƒ¦áƒ“გენáƒ",
43 "menu.edit.selectAll" : "Select All", 46 "menu.edit.selectAll" : "ყველáƒáƒ¡ მáƒáƒœáƒ˜áƒ¨áƒ•áƒœáƒ",
44 "menu.edit.speech" : "Speech", 47 "menu.edit.speech" : "სáƒáƒ£áƒ‘რები",
45 "menu.edit.startDictation" : "Start Dictation", 48 "menu.edit.startDictation" : "პრáƒáƒ’რáƒáƒ›áƒ˜áƒ¡ დáƒáƒ¬áƒ§áƒ”ბáƒ",
46 "menu.edit.startSpeaking" : "Start Speaking", 49 "menu.edit.startSpeaking" : "Start Speaking",
47 "menu.edit.stopSpeaking" : "Stop Speaking", 50 "menu.edit.stopSpeaking" : "Stop Speaking",
48 "menu.edit.undo" : "Undo", 51 "menu.edit.undo" : "Undo",
@@ -76,6 +79,7 @@
76 "password.noUser" : "მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბელი მითითებული მეილით ვერ მáƒáƒ˜áƒ«áƒ”ბნáƒ", 79 "password.noUser" : "მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბელი მითითებული მეილით ვერ მáƒáƒ˜áƒ«áƒ”ბნáƒ",
77 "password.submit.label" : "დáƒáƒ“áƒáƒ¡áƒ¢áƒ£áƒ áƒ”ბáƒ", 80 "password.submit.label" : "დáƒáƒ“áƒáƒ¡áƒ¢áƒ£áƒ áƒ”ბáƒ",
78 "password.successInfo" : "გთხáƒáƒ•áƒ— შეáƒáƒ›áƒáƒ¬áƒ›áƒ”თ მეილი", 81 "password.successInfo" : "გთხáƒáƒ•áƒ— შეáƒáƒ›áƒáƒ¬áƒ›áƒ”თ მეილი",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "Franz-ის მხáƒáƒ áƒ“áƒáƒ­áƒ”რáƒ", 83 "pricing.headline" : "Franz-ის მხáƒáƒ áƒ“áƒáƒ­áƒ”რáƒ",
80 "pricing.link.skipPayment" : "áƒáƒ  მინდრხელი შევუწყრFranz-ის გáƒáƒœáƒ•áƒ˜áƒ—áƒáƒ áƒ”ბáƒáƒ¡.", 84 "pricing.link.skipPayment" : "áƒáƒ  მინდრხელი შევუწყრFranz-ის გáƒáƒœáƒ•áƒ˜áƒ—áƒáƒ áƒ”ბáƒáƒ¡.",
81 "pricing.submit.label" : "მინდრხელი შევუწყრFranz-ის გáƒáƒœáƒ•áƒ˜áƒ—áƒáƒ áƒ”ბáƒáƒ¡", 85 "pricing.submit.label" : "მინდრხელი შევუწყრFranz-ის გáƒáƒœáƒ•áƒ˜áƒ—áƒáƒ áƒ”ბáƒáƒ¡",
@@ -116,6 +120,7 @@
116 "settings.app.form.autoLaunchInBackground" : "გáƒáƒ®áƒ¡áƒ”ნით ფáƒáƒœáƒ–ე", 120 "settings.app.form.autoLaunchInBackground" : "გáƒáƒ®áƒ¡áƒ”ნით ფáƒáƒœáƒ–ე",
117 "settings.app.form.autoLaunchOnStart" : "გáƒáƒ”შვáƒáƒ¡ Franz სისტემის ჩáƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვისáƒáƒ¡", 121 "settings.app.form.autoLaunchOnStart" : "გáƒáƒ”შვáƒáƒ¡ Franz სისტემის ჩáƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვისáƒáƒ¡",
118 "settings.app.form.beta" : "ჩáƒáƒ áƒ—ეთ ბეტრვერსიები", 122 "settings.app.form.beta" : "ჩáƒáƒ áƒ—ეთ ბეტრვერსიები",
123 "settings.app.form.darkMode" : "Join the Dark Side",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", 124 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
120 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", 125 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar",
121 "settings.app.form.enableSpellchecking" : "Enable spell checking", 126 "settings.app.form.enableSpellchecking" : "Enable spell checking",
@@ -126,6 +131,7 @@
126 "settings.app.form.runInBackground" : "დáƒáƒ¢áƒáƒ•áƒ”თ Franz გáƒáƒ¨áƒ•áƒ”ბული რáƒáƒ“ესáƒáƒª ფáƒáƒœáƒ¯áƒáƒ áƒ დáƒáƒ˜áƒ®áƒ£áƒ áƒ”ბáƒ", 131 "settings.app.form.runInBackground" : "დáƒáƒ¢áƒáƒ•áƒ”თ Franz გáƒáƒ¨áƒ•áƒ”ბული რáƒáƒ“ესáƒáƒª ფáƒáƒœáƒ¯áƒáƒ áƒ დáƒáƒ˜áƒ®áƒ£áƒ áƒ”ბáƒ",
127 "settings.app.form.showDisabledServices" : "Display disabled services tabs", 132 "settings.app.form.showDisabledServices" : "Display disabled services tabs",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "Show unread message badge when notifications are disabled", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "Show unread message badge when notifications are disabled",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "პáƒáƒ áƒáƒ›áƒ”ტრები", 135 "settings.app.headline" : "პáƒáƒ áƒáƒ›áƒ”ტრები",
130 "settings.app.headlineAdvanced" : "Advanced", 136 "settings.app.headlineAdvanced" : "Advanced",
131 "settings.app.headlineAppearance" : "Appearance", 137 "settings.app.headlineAppearance" : "Appearance",
@@ -166,18 +172,25 @@
166 "settings.service.form.editServiceHeadline" : "შეáƒáƒ¡áƒ¬áƒáƒ áƒ” {name}", 172 "settings.service.form.editServiceHeadline" : "შეáƒáƒ¡áƒ¬áƒáƒ áƒ” {name}",
167 "settings.service.form.enableAudio" : "Enable audio", 173 "settings.service.form.enableAudio" : "Enable audio",
168 "settings.service.form.enableBadge" : "Show unread message badges", 174 "settings.service.form.enableBadge" : "Show unread message badges",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "შეტყáƒáƒ‘ინებების ჩáƒáƒ áƒ—ვáƒ", 176 "settings.service.form.enableNotification" : "შეტყáƒáƒ‘ინებების ჩáƒáƒ áƒ—ვáƒ",
170 "settings.service.form.enableService" : "სერვისის ჩáƒáƒ áƒ—ვáƒ", 177 "settings.service.form.enableService" : "სერვისის ჩáƒáƒ áƒ—ვáƒ",
171 "settings.service.form.headlineBadges" : "Unread message badges", 178 "settings.service.form.headlineBadges" : "Unread message badges",
172 "settings.service.form.headlineGeneral" : "მთáƒáƒ•áƒáƒ áƒ˜", 179 "settings.service.form.headlineGeneral" : "მთáƒáƒ•áƒáƒ áƒ˜",
173 "settings.service.form.headlineNotifications" : "Notifications", 180 "settings.service.form.headlineNotifications" : "Notifications",
174 "settings.service.form.icon" : "Custom icon", 181 "settings.service.form.icon" : "Custom icon",
175 "settings.service.form.iconDelete" : "Delete", 182 "settings.service.form.iconDelete" : "წáƒáƒ¨áƒšáƒ",
176 "settings.service.form.iconUpload" : "Drop your image, or click here", 183 "settings.service.form.iconUpload" : "Drop your image, or click here",
177 "settings.service.form.indirectMessageInfo" : "თქვენ მიიღებთ შეტყáƒáƒ‘ინებáƒáƒ¡ ყáƒáƒ•áƒ”ლი áƒáƒ®áƒáƒšáƒ˜ შეტყáƒáƒ‘ინებისáƒáƒ¡ áƒáƒ áƒ®áƒ–ე, áƒáƒ áƒáƒ›áƒáƒ áƒ¢áƒ @username, @channel, @here, ...", 184 "settings.service.form.indirectMessageInfo" : "თქვენ მიიღებთ შეტყáƒáƒ‘ინებáƒáƒ¡ ყáƒáƒ•áƒ”ლი áƒáƒ®áƒáƒšáƒ˜ შეტყáƒáƒ‘ინებისáƒáƒ¡ áƒáƒ áƒ®áƒ–ე, áƒáƒ áƒáƒ›áƒáƒ áƒ¢áƒ @username, @channel, @here, ...",
178 "settings.service.form.indirectMessages" : "áƒáƒ©áƒ•áƒ”ნე შეტყáƒáƒ‘ინებების ნიშáƒáƒœáƒ˜ ყáƒáƒ•áƒ”ლი áƒáƒ®áƒáƒšáƒ˜ შეტყáƒáƒ‘ინებისთვის", 185 "settings.service.form.indirectMessages" : "áƒáƒ©áƒ•áƒ”ნე შეტყáƒáƒ‘ინებების ნიშáƒáƒœáƒ˜ ყáƒáƒ•áƒ”ლი áƒáƒ®áƒáƒšáƒ˜ შეტყáƒáƒ‘ინებისთვის",
179 "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", 186 "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted",
180 "settings.service.form.name" : "სáƒáƒ®áƒ”ლი", 187 "settings.service.form.name" : "სáƒáƒ®áƒ”ლი",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "სერვისის შენáƒáƒ®áƒ•áƒ", 194 "settings.service.form.saveButton" : "სერვისის შენáƒáƒ®áƒ•áƒ",
182 "settings.service.form.tabHosted" : "დáƒáƒ°áƒáƒ¡áƒ¢áƒ˜áƒšáƒ˜", 195 "settings.service.form.tabHosted" : "დáƒáƒ°áƒáƒ¡áƒ¢áƒ˜áƒšáƒ˜",
183 "settings.service.form.tabOnPremise" : "თვით დáƒáƒ°áƒáƒ¡áƒ¢áƒ˜áƒšáƒ˜ â­ï¸", 196 "settings.service.form.tabOnPremise" : "თვით დáƒáƒ°áƒáƒ¡áƒ¢áƒ˜áƒšáƒ˜ â­ï¸",
@@ -220,10 +233,12 @@
220 "subscription.euTaxInfo" : "EU residents: local sales tax may apply", 233 "subscription.euTaxInfo" : "EU residents: local sales tax may apply",
221 "subscription.features.ads" : "áƒáƒ áƒáƒœáƒáƒ˜áƒ áƒ˜ რეკლáƒáƒ›áƒ”ბი, áƒáƒ áƒáƒ¡áƒ“რáƒáƒ¡!", 234 "subscription.features.ads" : "áƒáƒ áƒáƒœáƒáƒ˜áƒ áƒ˜ რეკლáƒáƒ›áƒ”ბი, áƒáƒ áƒáƒ¡áƒ“რáƒáƒ¡!",
222 "subscription.features.comingSoon" : "მáƒáƒšáƒ”", 235 "subscription.features.comingSoon" : "მáƒáƒšáƒ”",
223 "subscription.features.customServices" : "პირáƒáƒ“ი მáƒáƒ›áƒ¡áƒáƒ®áƒ£áƒ áƒ”ბრთქვენთვის დრთქვენი გუნდისთვის",
224 "subscription.features.encryptedSync" : "დáƒáƒ¨áƒ˜áƒ¤áƒ áƒ£áƒšáƒ˜ სესიის სინქრáƒáƒœáƒ˜áƒ–áƒáƒªáƒ˜áƒ", 236 "subscription.features.encryptedSync" : "დáƒáƒ¨áƒ˜áƒ¤áƒ áƒ£áƒšáƒ˜ სესიის სინქრáƒáƒœáƒ˜áƒ–áƒáƒªáƒ˜áƒ",
237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "on-premise\/hosted სერვისების დáƒáƒ›áƒáƒ¢áƒ”ბáƒ, რáƒáƒ’áƒáƒ áƒ˜áƒªáƒáƒ HipChat", 238 "subscription.features.onpremise" : "on-premise\/hosted სერვისების დáƒáƒ›áƒáƒ¢áƒ”ბáƒ, რáƒáƒ’áƒáƒ áƒ˜áƒªáƒáƒ HipChat",
226 "subscription.features.vpn" : "Proxy-სრდრVPN-ის მხáƒáƒ áƒ“áƒáƒ­áƒ”რáƒ", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "ფáƒáƒ¡áƒ˜áƒáƒœáƒ˜ Franz-ის პრემიუმ მხáƒáƒ áƒ›áƒ“áƒáƒ›áƒ­áƒ”რი áƒáƒœáƒ’áƒáƒ áƒ˜áƒ¨áƒ˜", 242 "subscription.includedFeatures" : "ფáƒáƒ¡áƒ˜áƒáƒœáƒ˜ Franz-ის პრემიუმ მხáƒáƒ áƒ›áƒ“áƒáƒ›áƒ­áƒ”რი áƒáƒœáƒ’áƒáƒ áƒ˜áƒ¨áƒ˜",
228 "subscription.paymentSessionError" : "გáƒáƒ“áƒáƒ®áƒ“ის ფáƒáƒ áƒ›áƒáƒ¢áƒ˜áƒ¡ ინიციáƒáƒšáƒ˜áƒ–áƒáƒªáƒ˜áƒ ვერ მáƒáƒ®áƒ”რხდáƒ", 243 "subscription.paymentSessionError" : "გáƒáƒ“áƒáƒ®áƒ“ის ფáƒáƒ áƒ›áƒáƒ¢áƒ˜áƒ¡ ინიციáƒáƒšáƒ˜áƒ–áƒáƒªáƒ˜áƒ ვერ მáƒáƒ®áƒ”რხდáƒ",
229 "subscription.submit.label" : "მინდრხელი შევუწყრFranz-ის გáƒáƒœáƒ•áƒ˜áƒ—áƒáƒ áƒ”ბáƒáƒ¡", 244 "subscription.submit.label" : "მინდრხელი შევუწყრFranz-ის გáƒáƒœáƒ•áƒ˜áƒ—áƒáƒ áƒ”ბáƒáƒ¡",
diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json
index 13dc7548e..5807f11f6 100644
--- a/src/i18n/locales/nl-BE.json
+++ b/src/i18n/locales/nl-BE.json
@@ -1,11 +1,14 @@
1{ 1{
2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
2 "global.api.unhealthy" : "Kan geen verbinding maken met de Franz services", 5 "global.api.unhealthy" : "Kan geen verbinding maken met de Franz services",
3 "global.notConnectedToTheInternet" : "Je hebt geen internet verbinding.", 6 "global.notConnectedToTheInternet" : "Je hebt geen internet verbinding.",
4 "import.headline" : "Importeer je Franz 4 services", 7 "import.headline" : "Importeer je Franz 4 services",
5 "import.notSupportedHeadline" : "De volgende services worden nog niet ondersteund in Franz 5", 8 "import.notSupportedHeadline" : "De volgende services worden nog niet ondersteund in Franz 5",
6 "import.skip.label" : "I want to add services manually", 9 "import.skip.label" : "Ik wens services manueel toe te voegen",
7 "import.submit.label" : "Importeer services", 10 "import.submit.label" : "Importeer services",
8 "infobar.buttonChangelog" : "What is new?", 11 "infobar.buttonChangelog" : "Wat is er nieuw?",
9 "infobar.buttonInstallUpdate" : "Start opnieuw op & installeer de update", 12 "infobar.buttonInstallUpdate" : "Start opnieuw op & installeer de update",
10 "infobar.buttonReloadServices" : "Herlaad de services", 13 "infobar.buttonReloadServices" : "Herlaad de services",
11 "infobar.requiredRequestsFailed" : "Kan de services en gebruikers informatie niet laden", 14 "infobar.requiredRequestsFailed" : "Kan de services en gebruikers informatie niet laden",
@@ -16,7 +19,7 @@
16 "invite.name.label" : "Naam", 19 "invite.name.label" : "Naam",
17 "invite.skip.label" : "Ik wil dit later doen", 20 "invite.skip.label" : "Ik wil dit later doen",
18 "invite.submit.label" : "Verzend uitnodigingen", 21 "invite.submit.label" : "Verzend uitnodigingen",
19 "invite.successInfo" : "Invitations sent successfully", 22 "invite.successInfo" : "Uitnodiging met succes verzonden",
20 "login.email.label" : "E-mailadres", 23 "login.email.label" : "E-mailadres",
21 "login.headline" : "Inloggen", 24 "login.headline" : "Inloggen",
22 "login.invalidCredentials" : "E-mailadres of wachtwoord ongeldig", 25 "login.invalidCredentials" : "E-mailadres of wachtwoord ongeldig",
@@ -26,49 +29,49 @@
26 "login.serverLogout" : "De sessie is verlopen, log opnieuw in alsjeblieft.", 29 "login.serverLogout" : "De sessie is verlopen, log opnieuw in alsjeblieft.",
27 "login.submit.label" : "Log in", 30 "login.submit.label" : "Log in",
28 "login.tokenExpired" : "De sessie is verlopen, log opnieuw in alsjeblieft.", 31 "login.tokenExpired" : "De sessie is verlopen, log opnieuw in alsjeblieft.",
29 "menu.app.about" : "About Franz", 32 "menu.app.about" : "Over Franz",
30 "menu.app.hide" : "Hide", 33 "menu.app.hide" : "Verbergen",
31 "menu.app.hideOthers" : "Hide Others", 34 "menu.app.hideOthers" : "Andere verbergen",
32 "menu.app.quit" : "Quit", 35 "menu.app.quit" : "Afsluiten",
33 "menu.app.settings" : "Instellingen", 36 "menu.app.settings" : "Instellingen",
34 "menu.app.unhide" : "Unhide", 37 "menu.app.unhide" : "Zichtbaar maken",
35 "menu.edit" : "Aanpassen", 38 "menu.edit" : "Aanpassen",
36 "menu.edit.copy" : "Copy", 39 "menu.edit.copy" : "Kopiëren",
37 "menu.edit.cut" : "Cut", 40 "menu.edit.cut" : "Knippen",
38 "menu.edit.delete" : "Delete", 41 "menu.edit.delete" : "Verwijderen",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols", 42 "menu.edit.emojiSymbols" : "Emoji & Symbolen",
40 "menu.edit.paste" : "Paste", 43 "menu.edit.paste" : "Plakken",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", 44 "menu.edit.pasteAndMatchStyle" : "Plakken en stijl overeen laten komen",
42 "menu.edit.redo" : "Redo", 45 "menu.edit.redo" : "Opnieuw uitvoeren",
43 "menu.edit.selectAll" : "Select All", 46 "menu.edit.selectAll" : "Selecteer alles",
44 "menu.edit.speech" : "Speech", 47 "menu.edit.speech" : "Spraakuitvoer",
45 "menu.edit.startDictation" : "Start Dictation", 48 "menu.edit.startDictation" : "Beginnen met dicteren",
46 "menu.edit.startSpeaking" : "Start Speaking", 49 "menu.edit.startSpeaking" : "Begin met spreken",
47 "menu.edit.stopSpeaking" : "Stop Speaking", 50 "menu.edit.stopSpeaking" : "Stoppen met spreken",
48 "menu.edit.undo" : "Undo", 51 "menu.edit.undo" : "Ongedaan maken",
49 "menu.file" : "File", 52 "menu.file" : "Bestand",
50 "menu.help" : "Help", 53 "menu.help" : "Help",
51 "menu.help.changelog" : "Changelog", 54 "menu.help.changelog" : "Logboek",
52 "menu.help.learnMore" : "Learn More", 55 "menu.help.learnMore" : "Meer weten",
53 "menu.help.privacy" : "Privacyverklaring", 56 "menu.help.privacy" : "Privacyverklaring",
54 "menu.help.support" : "Support", 57 "menu.help.support" : "Ondersteuning",
55 "menu.help.tos" : "Terms of Service", 58 "menu.help.tos" : "Servicevoorwaarden",
56 "menu.services" : "Services", 59 "menu.services" : "Diensten",
57 "menu.services.addNewService" : "Add New Service...", 60 "menu.services.addNewService" : "Nieuwe service toevoegen...",
58 "menu.view" : "View", 61 "menu.view" : "Beeld",
59 "menu.view.enterFullScreen" : "Enter Full Screen", 62 "menu.view.enterFullScreen" : "Volledig scherm openen",
60 "menu.view.exitFullScreen" : "Exit Full Screen", 63 "menu.view.exitFullScreen" : "Volledig scherm verlaten",
61 "menu.view.reloadFranz" : "Reload Franz", 64 "menu.view.reloadFranz" : "Franz Herladen",
62 "menu.view.reloadService" : "Reload Service", 65 "menu.view.reloadService" : "Service herladen",
63 "menu.view.resetZoom" : "Actual Size", 66 "menu.view.resetZoom" : "Werkelijke grootte",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools", 67 "menu.view.toggleDevTools" : "Toggle Developer Tools",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen", 68 "menu.view.toggleFullScreen" : "Volledig scherm aan\/uit",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", 69 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools",
67 "menu.view.zoomIn" : "Zoom In", 70 "menu.view.zoomIn" : "Inzoomen",
68 "menu.view.zoomOut" : "Zoom Out", 71 "menu.view.zoomOut" : "Uitzoomen",
69 "menu.window" : "Window", 72 "menu.window" : "Venster",
70 "menu.window.close" : "Close", 73 "menu.window.close" : "Sluiten",
71 "menu.window.minimize" : "Minimize", 74 "menu.window.minimize" : "Minimaliseren",
72 "password.email.label" : "E-mailadres", 75 "password.email.label" : "E-mailadres",
73 "password.headline" : "Wachtwoord resetten", 76 "password.headline" : "Wachtwoord resetten",
74 "password.link.login" : "Log in op je account", 77 "password.link.login" : "Log in op je account",
@@ -76,28 +79,29 @@
76 "password.noUser" : "Geen gebruiker bekend met dat e-mailadres", 79 "password.noUser" : "Geen gebruiker bekend met dat e-mailadres",
77 "password.submit.label" : "Doorgaan", 80 "password.submit.label" : "Doorgaan",
78 "password.successInfo" : "Controleer alsjeblieft je e-mail", 81 "password.successInfo" : "Controleer alsjeblieft je e-mail",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "Ondersteun Franz", 83 "pricing.headline" : "Ondersteun Franz",
80 "pricing.link.skipPayment" : "Ik wil de ontwikkeling van Franz niet ondersteunen.", 84 "pricing.link.skipPayment" : "Ik wil de ontwikkeling van Franz niet ondersteunen.",
81 "pricing.submit.label" : "Ik wil de ontwikkeling van Franz ondersteunen", 85 "pricing.submit.label" : "Ik wil de ontwikkeling van Franz ondersteunen",
82 "pricing.support.label" : "Selecteer je ondersteuningsplan", 86 "pricing.support.label" : "Selecteer je ondersteuningsplan",
83 "service.crashHandler.action" : "{naam} herladen", 87 "service.crashHandler.action" : "{naam} herladen",
84 "service.crashHandler.autoReload" : "Trying to automatically restore {name} in {seconds} seconds", 88 "service.crashHandler.autoReload" : "Automatisch herstellen {name} proberen in {seconds} seconden",
85 "service.crashHandler.headline" : "Oh no!", 89 "service.crashHandler.headline" : "Oh nee!",
86 "service.crashHandler.text" : "{name} has caused an error.", 90 "service.crashHandler.text" : "{name} heeft een probleem veroorzaakt.",
87 "service.disabledHandler.action" : "Enable {name}", 91 "service.disabledHandler.action" : "Activeer {name}",
88 "service.disabledHandler.headline" : "{name} is disabled", 92 "service.disabledHandler.headline" : "{name} is uitgeschakeld",
89 "services.getStarted" : "Beginnen", 93 "services.getStarted" : "Beginnen",
90 "services.welcome" : "Welkom bij Franz", 94 "services.welcome" : "Welkom bij Franz",
91 "settings.account.account.editButton" : "Bewerk account", 95 "settings.account.account.editButton" : "Bewerk account",
92 "settings.account.accountType.basic" : "Basis Account", 96 "settings.account.accountType.basic" : "Basis Account",
93 "settings.account.accountType.premium" : "Premium Supporter Account", 97 "settings.account.accountType.premium" : "Premium Supporter Account",
94 "settings.account.buttonSave" : "Profiel aanpassen", 98 "settings.account.buttonSave" : "Profiel aanpassen",
95 "settings.account.deleteAccount" : "Delete account", 99 "settings.account.deleteAccount" : "Account verwijderen",
96 "settings.account.deleteEmailSent" : "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", 100 "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!",
97 "settings.account.deleteInfo" : "If you don't need your Franz account any longer, you can delete your account and all related data here.", 101 "settings.account.deleteInfo" : "Indien u uw Franz account nietmeer nodig heeft, kan u hier uw account en de gerelateerde gegegevens verwijderen.",
98 "settings.account.headline" : "Account", 102 "settings.account.headline" : "Account",
99 "settings.account.headlineAccount" : "Account informatie", 103 "settings.account.headlineAccount" : "Account informatie",
100 "settings.account.headlineDangerZone" : "Danger Zone", 104 "settings.account.headlineDangerZone" : "Gevaren Zone",
101 "settings.account.headlineInvoices" : "Facturen", 105 "settings.account.headlineInvoices" : "Facturen",
102 "settings.account.headlinePassword" : "Wijzig wachtwoord", 106 "settings.account.headlinePassword" : "Wijzig wachtwoord",
103 "settings.account.headlineProfile" : "Profiel aanpassen", 107 "settings.account.headlineProfile" : "Profiel aanpassen",
@@ -108,17 +112,18 @@
108 "settings.account.successInfo" : "Je wijzigingen zijn opgeslagen", 112 "settings.account.successInfo" : "Je wijzigingen zijn opgeslagen",
109 "settings.account.tryReloadUserInfoRequest" : "Probeer opnieuw", 113 "settings.account.tryReloadUserInfoRequest" : "Probeer opnieuw",
110 "settings.account.userInfoRequestFailed" : "Kon gebruikerinformatie niet laden", 114 "settings.account.userInfoRequestFailed" : "Kon gebruikerinformatie niet laden",
111 "settings.app.buttonClearAllCache" : "Clear cache", 115 "settings.app.buttonClearAllCache" : "Cache wissen",
112 "settings.app.buttonInstallUpdate" : "Herstart & installeer update", 116 "settings.app.buttonInstallUpdate" : "Herstart & installeer update",
113 "settings.app.buttonSearchForUpdate" : "Controleer op updates", 117 "settings.app.buttonSearchForUpdate" : "Controleer op updates",
114 "settings.app.cacheInfo" : "Franz cache is currently using {size} of disk space.", 118 "settings.app.cacheInfo" : "Franz cache gebruikt momenteel {size} schijfruimte.",
115 "settings.app.currentVersion" : "Huidige versie:", 119 "settings.app.currentVersion" : "Huidige versie:",
116 "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond", 120 "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond",
117 "settings.app.form.autoLaunchOnStart" : "Lanceer Franz bij opstarten", 121 "settings.app.form.autoLaunchOnStart" : "Lanceer Franz bij opstarten",
118 "settings.app.form.beta" : "Inclusief bèta versies", 122 "settings.app.form.beta" : "Inclusief bèta versies",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", 123 "settings.app.form.darkMode" : "Join the Dark Side",
120 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", 124 "settings.app.form.enableGPUAcceleration" : "GPU Acceleratie Activeren",
121 "settings.app.form.enableSpellchecking" : "Enable spell checking", 125 "settings.app.form.enableMenuBar" : "Toon Franz in Menu Bar",
126 "settings.app.form.enableSpellchecking" : "Spellingcontrole inschakelen",
122 "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk", 127 "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk",
123 "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock", 128 "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock",
124 "settings.app.form.language" : "Taal", 129 "settings.app.form.language" : "Taal",
@@ -126,6 +131,7 @@
126 "settings.app.form.runInBackground" : "Houd Franz op de achtergrond wanneer het venster gesloten wordt", 131 "settings.app.form.runInBackground" : "Houd Franz op de achtergrond wanneer het venster gesloten wordt",
127 "settings.app.form.showDisabledServices" : "Display disabled services tabs", 132 "settings.app.form.showDisabledServices" : "Display disabled services tabs",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "Show unread message badge when notifications are disabled", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "Show unread message badge when notifications are disabled",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "Instellingen", 135 "settings.app.headline" : "Instellingen",
130 "settings.app.headlineAdvanced" : "Advanced", 136 "settings.app.headlineAdvanced" : "Advanced",
131 "settings.app.headlineAppearance" : "Appearance", 137 "settings.app.headlineAppearance" : "Appearance",
@@ -166,18 +172,25 @@
166 "settings.service.form.editServiceHeadline" : "{name} aanpassen", 172 "settings.service.form.editServiceHeadline" : "{name} aanpassen",
167 "settings.service.form.enableAudio" : "Enable audio", 173 "settings.service.form.enableAudio" : "Enable audio",
168 "settings.service.form.enableBadge" : "Show unread message badges", 174 "settings.service.form.enableBadge" : "Show unread message badges",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "Notificaties aanzetten", 176 "settings.service.form.enableNotification" : "Notificaties aanzetten",
170 "settings.service.form.enableService" : "Service aanzetten", 177 "settings.service.form.enableService" : "Service aanzetten",
171 "settings.service.form.headlineBadges" : "Unread message badges", 178 "settings.service.form.headlineBadges" : "Unread message badges",
172 "settings.service.form.headlineGeneral" : "Algemeen", 179 "settings.service.form.headlineGeneral" : "Algemeen",
173 "settings.service.form.headlineNotifications" : "Notifications", 180 "settings.service.form.headlineNotifications" : "Notifications",
174 "settings.service.form.icon" : "Custom icon", 181 "settings.service.form.icon" : "Custom icon",
175 "settings.service.form.iconDelete" : "Delete", 182 "settings.service.form.iconDelete" : "Verwijderen",
176 "settings.service.form.iconUpload" : "Drop your image, or click here", 183 "settings.service.form.iconUpload" : "Drop your image, or click here",
177 "settings.service.form.indirectMessageInfo" : "Je wordt verwittigd over alle nieuwe berichten in een kanaal, niet alleen @username, @channel, @here, ...", 184 "settings.service.form.indirectMessageInfo" : "Je wordt verwittigd over alle nieuwe berichten in een kanaal, niet alleen @username, @channel, @here, ...",
178 "settings.service.form.indirectMessages" : "Toon berichten-badge voor alle nieuwe berichten", 185 "settings.service.form.indirectMessages" : "Toon berichten-badge voor alle nieuwe berichten",
179 "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", 186 "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted",
180 "settings.service.form.name" : "Naam", 187 "settings.service.form.name" : "Naam",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "Service bewaren", 194 "settings.service.form.saveButton" : "Service bewaren",
182 "settings.service.form.tabHosted" : "Gehost", 195 "settings.service.form.tabHosted" : "Gehost",
183 "settings.service.form.tabOnPremise" : "Intern gehost â­ï¸", 196 "settings.service.form.tabOnPremise" : "Intern gehost â­ï¸",
@@ -220,10 +233,12 @@
220 "subscription.euTaxInfo" : "EU residents: local sales tax may apply", 233 "subscription.euTaxInfo" : "EU residents: local sales tax may apply",
221 "subscription.features.ads" : "Geen reclame, nooit!", 234 "subscription.features.ads" : "Geen reclame, nooit!",
222 "subscription.features.comingSoon" : "komt binnenkort", 235 "subscription.features.comingSoon" : "komt binnenkort",
223 "subscription.features.customServices" : "Persoonlijke services voor jou en je team",
224 "subscription.features.encryptedSync" : "Synchronisatie van geëncrypteerde sessies", 236 "subscription.features.encryptedSync" : "Synchronisatie van geëncrypteerde sessies",
237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "Intern gehoste services zoals HipChat", 238 "subscription.features.onpremise" : "Intern gehoste services zoals HipChat",
226 "subscription.features.vpn" : "Proxy & VPN ondersteuning", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "Een betalend account voor Franz omvat", 242 "subscription.includedFeatures" : "Een betalend account voor Franz omvat",
228 "subscription.paymentSessionError" : "Betalingsformulier kon niet geladen worden", 243 "subscription.paymentSessionError" : "Betalingsformulier kon niet geladen worden",
229 "subscription.submit.label" : "Ik wil de ontwikkeling van Franz steunen", 244 "subscription.submit.label" : "Ik wil de ontwikkeling van Franz steunen",
diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json
index 4ff3cdd80..a6db3d773 100644
--- a/src/i18n/locales/nl.json
+++ b/src/i18n/locales/nl.json
@@ -1,4 +1,7 @@
1{ 1{
2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
2 "global.api.unhealthy" : "Kan geen verbinding maken met de Franz-services", 5 "global.api.unhealthy" : "Kan geen verbinding maken met de Franz-services",
3 "global.notConnectedToTheInternet" : "U bent niet verbonden met het internet.", 6 "global.notConnectedToTheInternet" : "U bent niet verbonden met het internet.",
4 "import.headline" : "Importeer uw Franz 4-services", 7 "import.headline" : "Importeer uw Franz 4-services",
@@ -21,7 +24,7 @@
21 "login.headline" : "Inloggen", 24 "login.headline" : "Inloggen",
22 "login.invalidCredentials" : "E-mailadres of wachtwoord ongeldig", 25 "login.invalidCredentials" : "E-mailadres of wachtwoord ongeldig",
23 "login.link.password" : "Wachtwoord vergeten", 26 "login.link.password" : "Wachtwoord vergeten",
24 "login.link.signup" : "Maak een gratis account", 27 "login.link.signup" : "Maak een gratis account aan",
25 "login.password.label" : "Wachtwoord", 28 "login.password.label" : "Wachtwoord",
26 "login.serverLogout" : "De sessie is verlopen, log alsjeblieft opnieuw in.", 29 "login.serverLogout" : "De sessie is verlopen, log alsjeblieft opnieuw in.",
27 "login.submit.label" : "Inloggen", 30 "login.submit.label" : "Inloggen",
@@ -59,16 +62,16 @@
59 "menu.view.enterFullScreen" : "Gebruik volledig scherm", 62 "menu.view.enterFullScreen" : "Gebruik volledig scherm",
60 "menu.view.exitFullScreen" : "Volledig scherm verlaten", 63 "menu.view.exitFullScreen" : "Volledig scherm verlaten",
61 "menu.view.reloadFranz" : "Herlaad Franz", 64 "menu.view.reloadFranz" : "Herlaad Franz",
62 "menu.view.reloadService" : "Reload Service", 65 "menu.view.reloadService" : "Een service opnieuw laden",
63 "menu.view.resetZoom" : "Actual Size", 66 "menu.view.resetZoom" : "Werkelijke grootte",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools", 67 "menu.view.toggleDevTools" : "Ontwikkelaarstools aan\/uit",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen", 68 "menu.view.toggleFullScreen" : "Volledig scherm aan\/uit",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", 69 "menu.view.toggleServiceDevTools" : "Service ontwikkelaarstools aan\/uit",
67 "menu.view.zoomIn" : "Zoom In", 70 "menu.view.zoomIn" : "Inzoomen",
68 "menu.view.zoomOut" : "Zoom Out", 71 "menu.view.zoomOut" : "Uitzoomen",
69 "menu.window" : "Window", 72 "menu.window" : "Venster",
70 "menu.window.close" : "Close", 73 "menu.window.close" : "Sluiten",
71 "menu.window.minimize" : "Minimize", 74 "menu.window.minimize" : "Minimaliseren",
72 "password.email.label" : "E-mailadres", 75 "password.email.label" : "E-mailadres",
73 "password.headline" : "Wachtwoord vergeten", 76 "password.headline" : "Wachtwoord vergeten",
74 "password.link.login" : "Log in op je account", 77 "password.link.login" : "Log in op je account",
@@ -76,6 +79,7 @@
76 "password.noUser" : "Geen gebruiker bekend met dat e-mailadres", 79 "password.noUser" : "Geen gebruiker bekend met dat e-mailadres",
77 "password.submit.label" : "Verzenden", 80 "password.submit.label" : "Verzenden",
78 "password.successInfo" : "Controleer alsjeblieft je e-mail", 81 "password.successInfo" : "Controleer alsjeblieft je e-mail",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "Steun Franz", 83 "pricing.headline" : "Steun Franz",
80 "pricing.link.skipPayment" : "Ik wil de ontwikkeling van Franz niet ondersteunen.", 84 "pricing.link.skipPayment" : "Ik wil de ontwikkeling van Franz niet ondersteunen.",
81 "pricing.submit.label" : "Ik wil de ontwikkeling van Franz steunen", 85 "pricing.submit.label" : "Ik wil de ontwikkeling van Franz steunen",
@@ -116,7 +120,8 @@
116 "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond", 120 "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond",
117 "settings.app.form.autoLaunchOnStart" : "Open Franz bij opstarten", 121 "settings.app.form.autoLaunchOnStart" : "Open Franz bij opstarten",
118 "settings.app.form.beta" : "Inclusief bètaversies", 122 "settings.app.form.beta" : "Inclusief bètaversies",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", 123 "settings.app.form.darkMode" : "Join the Dark Side",
124 "settings.app.form.enableGPUAcceleration" : "Schakel videokaart acceleratie in ",
120 "settings.app.form.enableMenuBar" : "Toon Franz in menubalk", 125 "settings.app.form.enableMenuBar" : "Toon Franz in menubalk",
121 "settings.app.form.enableSpellchecking" : "Zet spellingcontrole aan", 126 "settings.app.form.enableSpellchecking" : "Zet spellingcontrole aan",
122 "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk", 127 "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk",
@@ -126,6 +131,7 @@
126 "settings.app.form.runInBackground" : "Houd Franz op de achtergrond wanneer het venster gesloten wordt", 131 "settings.app.form.runInBackground" : "Houd Franz op de achtergrond wanneer het venster gesloten wordt",
127 "settings.app.form.showDisabledServices" : "Toon uitgeschakelde services", 132 "settings.app.form.showDisabledServices" : "Toon uitgeschakelde services",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "Toon badge met ongelezen berichten wanneer meldingen zijn uitgeschakeld", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "Toon badge met ongelezen berichten wanneer meldingen zijn uitgeschakeld",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "Instellingen", 135 "settings.app.headline" : "Instellingen",
130 "settings.app.headlineAdvanced" : "Geavanceerd", 136 "settings.app.headlineAdvanced" : "Geavanceerd",
131 "settings.app.headlineAppearance" : "Weergave", 137 "settings.app.headlineAppearance" : "Weergave",
@@ -166,6 +172,7 @@
166 "settings.service.form.editServiceHeadline" : "Bewerk {name}", 172 "settings.service.form.editServiceHeadline" : "Bewerk {name}",
167 "settings.service.form.enableAudio" : "Audio inschakelen", 173 "settings.service.form.enableAudio" : "Audio inschakelen",
168 "settings.service.form.enableBadge" : "Toon badges met ongelezen berichten", 174 "settings.service.form.enableBadge" : "Toon badges met ongelezen berichten",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "Meldingen inschakelen", 176 "settings.service.form.enableNotification" : "Meldingen inschakelen",
170 "settings.service.form.enableService" : "Service inschakelen", 177 "settings.service.form.enableService" : "Service inschakelen",
171 "settings.service.form.headlineBadges" : "Ongelezen berichten badges", 178 "settings.service.form.headlineBadges" : "Ongelezen berichten badges",
@@ -178,6 +185,12 @@
178 "settings.service.form.indirectMessages" : "Toon berichtenbadge voor alle nieuwe berichten", 185 "settings.service.form.indirectMessages" : "Toon berichtenbadge voor alle nieuwe berichten",
179 "settings.service.form.isMutedInfo" : "Indien uitgeschakeld zullen alle meldinggeluiden en afgespeelde audio uitgeschakeld zijn", 186 "settings.service.form.isMutedInfo" : "Indien uitgeschakeld zullen alle meldinggeluiden en afgespeelde audio uitgeschakeld zijn",
180 "settings.service.form.name" : "Naam", 187 "settings.service.form.name" : "Naam",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "Service opslaan", 194 "settings.service.form.saveButton" : "Service opslaan",
182 "settings.service.form.tabHosted" : "Gehost", 195 "settings.service.form.tabHosted" : "Gehost",
183 "settings.service.form.tabOnPremise" : "Zelf-gehost â­ï¸", 196 "settings.service.form.tabOnPremise" : "Zelf-gehost â­ï¸",
@@ -220,10 +233,12 @@
220 "subscription.euTaxInfo" : "Bewoners binnen EU: lokale belasting kan van toepassing zijn", 233 "subscription.euTaxInfo" : "Bewoners binnen EU: lokale belasting kan van toepassing zijn",
221 "subscription.features.ads" : "Geen advertenties, nooit!", 234 "subscription.features.ads" : "Geen advertenties, nooit!",
222 "subscription.features.comingSoon" : "komt binnenkort", 235 "subscription.features.comingSoon" : "komt binnenkort",
223 "subscription.features.customServices" : "Privé-services voor jou en je team",
224 "subscription.features.encryptedSync" : "Beveiligde sessie synchronisatie", 236 "subscription.features.encryptedSync" : "Beveiligde sessie synchronisatie",
237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "Add on-geschikt\/gehoste services zoals HipChat", 238 "subscription.features.onpremise" : "Add on-geschikt\/gehoste services zoals HipChat",
226 "subscription.features.vpn" : "Proxy & VPN ondersteuning", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "Betaald Franz Premium Supporter Account bevat", 242 "subscription.includedFeatures" : "Betaald Franz Premium Supporter Account bevat",
228 "subscription.paymentSessionError" : "Kan betaalformulier niet initialiseren", 243 "subscription.paymentSessionError" : "Kan betaalformulier niet initialiseren",
229 "subscription.submit.label" : "Ik wil de ontwikkeling van Franz ondersteunen", 244 "subscription.submit.label" : "Ik wil de ontwikkeling van Franz ondersteunen",
@@ -236,15 +251,15 @@
236 "tabs.item.disableAudio" : "Schakel audio uit", 251 "tabs.item.disableAudio" : "Schakel audio uit",
237 "tabs.item.disableNotifications" : "Schakel meldingen uit", 252 "tabs.item.disableNotifications" : "Schakel meldingen uit",
238 "tabs.item.disableService" : "Schakel service uit", 253 "tabs.item.disableService" : "Schakel service uit",
239 "tabs.item.edit" : "Bewerk", 254 "tabs.item.edit" : "Bewerken",
240 "tabs.item.enableAudio" : "Audio inschakelen", 255 "tabs.item.enableAudio" : "Audio inschakelen",
241 "tabs.item.enableNotification" : "Meldingen inschakelen", 256 "tabs.item.enableNotification" : "Meldingen inschakelen",
242 "tabs.item.enableService" : "Service inschakelen", 257 "tabs.item.enableService" : "Service inschakelen",
243 "tabs.item.reload" : "Laad opnieuw", 258 "tabs.item.reload" : "Laad opnieuw",
244 "validation.email" : "{field} is not valid", 259 "validation.email" : "{field} is niet geldig",
245 "validation.minLength" : "{field} should be at least {length} characters long", 260 "validation.minLength" : "{field} moet minimaal {length} karakters lang zijn",
246 "validation.required" : "{field} is required", 261 "validation.required" : "{field} is vereist",
247 "validation.url" : "{field} is not a valid URL", 262 "validation.url" : "{field} is niet een geldige URL",
248 "welcome.loginButton" : "Log in op je account", 263 "welcome.loginButton" : "Log in op je account",
249 "welcome.signupButton" : "Maak een gratis account", 264 "welcome.signupButton" : "Maak een gratis account",
250 "welcome.slogan" : "Messaging die voor jou werkt" 265 "welcome.slogan" : "Messaging die voor jou werkt"
diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json
index 9fb72b9c9..60ced5933 100644
--- a/src/i18n/locales/pl.json
+++ b/src/i18n/locales/pl.json
@@ -1,4 +1,7 @@
1{ 1{
2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
2 "global.api.unhealthy" : "Nie można połączyć się z usługami Franz online", 5 "global.api.unhealthy" : "Nie można połączyć się z usługami Franz online",
3 "global.notConnectedToTheInternet" : "Nie masz połączenia z Internetem.", 6 "global.notConnectedToTheInternet" : "Nie masz połączenia z Internetem.",
4 "import.headline" : "Importuj usługi Franz 4", 7 "import.headline" : "Importuj usługi Franz 4",
@@ -28,20 +31,20 @@
28 "login.tokenExpired" : "Twoja sesja wygasła, zaloguj się ponownie.", 31 "login.tokenExpired" : "Twoja sesja wygasła, zaloguj się ponownie.",
29 "menu.app.about" : "O Franz", 32 "menu.app.about" : "O Franz",
30 "menu.app.hide" : "Ukryj", 33 "menu.app.hide" : "Ukryj",
31 "menu.app.hideOthers" : "Hide Others", 34 "menu.app.hideOthers" : "Ukryj pozostałe",
32 "menu.app.quit" : "Quit", 35 "menu.app.quit" : "Zakończ",
33 "menu.app.settings" : "Ustawienia", 36 "menu.app.settings" : "Ustawienia",
34 "menu.app.unhide" : "Pokaż", 37 "menu.app.unhide" : "Pokaż",
35 "menu.edit" : "Edytuj", 38 "menu.edit" : "Edytuj",
36 "menu.edit.copy" : "Skopiuj", 39 "menu.edit.copy" : "Skopiuj",
37 "menu.edit.cut" : "Wytnij", 40 "menu.edit.cut" : "Wytnij",
38 "menu.edit.delete" : "Usuń", 41 "menu.edit.delete" : "Usuń",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols", 42 "menu.edit.emojiSymbols" : "Emoji i symbole",
40 "menu.edit.paste" : "Wklej", 43 "menu.edit.paste" : "Wklej",
41 "menu.edit.pasteAndMatchStyle" : "Wklej i dopasuj styl", 44 "menu.edit.pasteAndMatchStyle" : "Wklej i dopasuj styl",
42 "menu.edit.redo" : "Ponów", 45 "menu.edit.redo" : "Ponów",
43 "menu.edit.selectAll" : "Zaznacz wszystko", 46 "menu.edit.selectAll" : "Zaznacz wszystko",
44 "menu.edit.speech" : "Speech", 47 "menu.edit.speech" : "Mowa",
45 "menu.edit.startDictation" : "Zacznij dyktować", 48 "menu.edit.startDictation" : "Zacznij dyktować",
46 "menu.edit.startSpeaking" : "Zacznij mówić", 49 "menu.edit.startSpeaking" : "Zacznij mówić",
47 "menu.edit.stopSpeaking" : "Przestań mówić", 50 "menu.edit.stopSpeaking" : "Przestań mówić",
@@ -52,7 +55,7 @@
52 "menu.help.learnMore" : "Dowiedz się więcej", 55 "menu.help.learnMore" : "Dowiedz się więcej",
53 "menu.help.privacy" : "Polityka prywatności", 56 "menu.help.privacy" : "Polityka prywatności",
54 "menu.help.support" : "Wsparcie", 57 "menu.help.support" : "Wsparcie",
55 "menu.help.tos" : "Terms of Service", 58 "menu.help.tos" : "Warunki świadczenia usług",
56 "menu.services" : "Usługi", 59 "menu.services" : "Usługi",
57 "menu.services.addNewService" : "Dodaj nową usługę...", 60 "menu.services.addNewService" : "Dodaj nową usługę...",
58 "menu.view" : "Widok", 61 "menu.view" : "Widok",
@@ -61,9 +64,9 @@
61 "menu.view.reloadFranz" : "Przeładuj Franz", 64 "menu.view.reloadFranz" : "Przeładuj Franz",
62 "menu.view.reloadService" : "Przeładuj usługę", 65 "menu.view.reloadService" : "Przeładuj usługę",
63 "menu.view.resetZoom" : "Domyślny rozmiar", 66 "menu.view.resetZoom" : "Domyślny rozmiar",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools", 67 "menu.view.toggleDevTools" : "Pokaż narzędzia developerskie",
65 "menu.view.toggleFullScreen" : "Przełącz tryb pełnoekranowy", 68 "menu.view.toggleFullScreen" : "Przełącz tryb pełnoekranowy",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", 69 "menu.view.toggleServiceDevTools" : "Włącz narzędzia developerskie serwisu",
67 "menu.view.zoomIn" : "Powiększ", 70 "menu.view.zoomIn" : "Powiększ",
68 "menu.view.zoomOut" : "Pomniejsz", 71 "menu.view.zoomOut" : "Pomniejsz",
69 "menu.window" : "Okno", 72 "menu.window" : "Okno",
@@ -76,6 +79,7 @@
76 "password.noUser" : "Nie znaleziono użytkownika z takim adresem email", 79 "password.noUser" : "Nie znaleziono użytkownika z takim adresem email",
77 "password.submit.label" : "Wyślij", 80 "password.submit.label" : "Wyślij",
78 "password.successInfo" : "Proszę sprawdzić swój email", 81 "password.successInfo" : "Proszę sprawdzić swój email",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "Wspieraj Franz", 83 "pricing.headline" : "Wspieraj Franz",
80 "pricing.link.skipPayment" : "Nie chcę wspierać rozwoju aplikacji Franz.", 84 "pricing.link.skipPayment" : "Nie chcę wspierać rozwoju aplikacji Franz.",
81 "pricing.submit.label" : "Chcę wspierać rozwój aplikacji Franz", 85 "pricing.submit.label" : "Chcę wspierać rozwój aplikacji Franz",
@@ -116,16 +120,18 @@
116 "settings.app.form.autoLaunchInBackground" : "Otwórz w tle", 120 "settings.app.form.autoLaunchInBackground" : "Otwórz w tle",
117 "settings.app.form.autoLaunchOnStart" : "Uruchom Franz na poczÄ…tku", 121 "settings.app.form.autoLaunchOnStart" : "Uruchom Franz na poczÄ…tku",
118 "settings.app.form.beta" : "Uwzględnij wersje beta", 122 "settings.app.form.beta" : "Uwzględnij wersje beta",
123 "settings.app.form.darkMode" : "Join the Dark Side",
119 "settings.app.form.enableGPUAcceleration" : "WÅ‚Ä…cz akceleracjÄ™ GPU", 124 "settings.app.form.enableGPUAcceleration" : "WÅ‚Ä…cz akceleracjÄ™ GPU",
120 "settings.app.form.enableMenuBar" : "Pokaż Franz na pasku menu", 125 "settings.app.form.enableMenuBar" : "Pokaż Franz na pasku menu",
121 "settings.app.form.enableSpellchecking" : "WÅ‚Ä…cz sprawdzanie pisowni", 126 "settings.app.form.enableSpellchecking" : "WÅ‚Ä…cz sprawdzanie pisowni",
122 "settings.app.form.enableSystemTray" : "Pokaż Franza w tacy systemowej", 127 "settings.app.form.enableSystemTray" : "Pokaż Franza w obszarze powiadomień",
123 "settings.app.form.hideDockIcon" : "Ukrywaj ikonÄ™ Franz w zasobniku systemowym", 128 "settings.app.form.hideDockIcon" : "Ukrywaj ikonÄ™ Franz w zasobniku systemowym",
124 "settings.app.form.language" : "Język", 129 "settings.app.form.language" : "Język",
125 "settings.app.form.minimizeToSystemTray" : "Zminimalizuj aplikacjÄ™ Franz", 130 "settings.app.form.minimizeToSystemTray" : "Zminimalizuj aplikacjÄ™ Franz",
126 "settings.app.form.runInBackground" : "Zachowaj aplikację Franz w tle po zamknięciu okna", 131 "settings.app.form.runInBackground" : "Zachowaj aplikację Franz w tle po zamknięciu okna",
127 "settings.app.form.showDisabledServices" : "Wyłącz wyświetlanie zakładek z usługami", 132 "settings.app.form.showDisabledServices" : "Wyłącz wyświetlanie zakładek z usługami",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "Pokaż licznik nieprzeczytanych wiadomości gdy powiadomienia są wyłączone", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "Pokaż licznik nieprzeczytanych wiadomości gdy powiadomienia są wyłączone",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "Ustawienia", 135 "settings.app.headline" : "Ustawienia",
130 "settings.app.headlineAdvanced" : "Zaawansowane", 136 "settings.app.headlineAdvanced" : "Zaawansowane",
131 "settings.app.headlineAppearance" : "WyglÄ…d", 137 "settings.app.headlineAppearance" : "WyglÄ…d",
@@ -166,6 +172,7 @@
166 "settings.service.form.editServiceHeadline" : "Edytuj {name}", 172 "settings.service.form.editServiceHeadline" : "Edytuj {name}",
167 "settings.service.form.enableAudio" : "Włącz dźwięk", 173 "settings.service.form.enableAudio" : "Włącz dźwięk",
168 "settings.service.form.enableBadge" : "Pokaż znacznik nieprzeczytanych wiadomości", 174 "settings.service.form.enableBadge" : "Pokaż znacznik nieprzeczytanych wiadomości",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "Aktywuj powiadomienia", 176 "settings.service.form.enableNotification" : "Aktywuj powiadomienia",
170 "settings.service.form.enableService" : "Aktywuj usługę", 177 "settings.service.form.enableService" : "Aktywuj usługę",
171 "settings.service.form.headlineBadges" : "Znaczniki nieprzeczytanych wiadomości", 178 "settings.service.form.headlineBadges" : "Znaczniki nieprzeczytanych wiadomości",
@@ -178,11 +185,17 @@
178 "settings.service.form.indirectMessages" : "Pokaż ikonę wiadomości dla wszystkich nowych wiadomości", 185 "settings.service.form.indirectMessages" : "Pokaż ikonę wiadomości dla wszystkich nowych wiadomości",
179 "settings.service.form.isMutedInfo" : "Kiedy nieaktywne, wszystkie dźwięki powiadomień są wyciszone", 186 "settings.service.form.isMutedInfo" : "Kiedy nieaktywne, wszystkie dźwięki powiadomień są wyciszone",
180 "settings.service.form.name" : "Nazwa", 187 "settings.service.form.name" : "Nazwa",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "Zapisz usługę", 194 "settings.service.form.saveButton" : "Zapisz usługę",
182 "settings.service.form.tabHosted" : "Hostowane", 195 "settings.service.form.tabHosted" : "Hostowane",
183 "settings.service.form.tabOnPremise" : "Hostowane lokalnie â­ï¸", 196 "settings.service.form.tabOnPremise" : "Hostowane lokalnie â­ï¸",
184 "settings.service.form.team" : "Zespół", 197 "settings.service.form.team" : "Zespół",
185 "settings.service.form.useHostedService" : "Use the hosted {name} service.", 198 "settings.service.form.useHostedService" : "Użyj hostowanej usługi {name}",
186 "settings.service.form.yourServices" : "Twoje usługi", 199 "settings.service.form.yourServices" : "Twoje usługi",
187 "settings.services.deletedInfo" : "Usługa została usunięta", 200 "settings.services.deletedInfo" : "Usługa została usunięta",
188 "settings.services.discoverServices" : "Przeglądaj usługi", 201 "settings.services.discoverServices" : "Przeglądaj usługi",
@@ -195,13 +208,13 @@
195 "settings.user.form.accountType.company" : "Firma", 208 "settings.user.form.accountType.company" : "Firma",
196 "settings.user.form.accountType.individual" : "Prywatne", 209 "settings.user.form.accountType.individual" : "Prywatne",
197 "settings.user.form.accountType.label" : "Typ konta", 210 "settings.user.form.accountType.label" : "Typ konta",
198 "settings.user.form.accountType.non-profit" : "Non-profit", 211 "settings.user.form.accountType.non-profit" : "Non-Profit",
199 "settings.user.form.currentPassword" : "Obecne hasło", 212 "settings.user.form.currentPassword" : "Obecne hasło",
200 "settings.user.form.email" : "Adres email", 213 "settings.user.form.email" : "Adres email",
201 "settings.user.form.firstname" : "ImiÄ™", 214 "settings.user.form.firstname" : "ImiÄ™",
202 "settings.user.form.lastname" : "Nazwisko", 215 "settings.user.form.lastname" : "Nazwisko",
203 "settings.user.form.newPassword" : "Nowe hasło", 216 "settings.user.form.newPassword" : "Nowe hasło",
204 "sidebar.addNewService" : "!!!Add new service", 217 "sidebar.addNewService" : "Dodaj kolejną usługę",
205 "sidebar.muteApp" : "Wyłącz powiadomienia i dźwięki", 218 "sidebar.muteApp" : "Wyłącz powiadomienia i dźwięki",
206 "sidebar.settings" : "Ustawienia", 219 "sidebar.settings" : "Ustawienia",
207 "sidebar.unmuteApp" : "Włącz powiadomienia i dźwięki", 220 "sidebar.unmuteApp" : "Włącz powiadomienia i dźwięki",
@@ -220,10 +233,12 @@
220 "subscription.euTaxInfo" : "Rezydenci UE: lokalne stawki VAT mogą zostać zaaplikowane", 233 "subscription.euTaxInfo" : "Rezydenci UE: lokalne stawki VAT mogą zostać zaaplikowane",
221 "subscription.features.ads" : "Brak reklam, na zawsze!", 234 "subscription.features.ads" : "Brak reklam, na zawsze!",
222 "subscription.features.comingSoon" : "wkrótce dostępne", 235 "subscription.features.comingSoon" : "wkrótce dostępne",
223 "subscription.features.customServices" : "Prywatne usługi dla Ciebie i Twojego zespołu",
224 "subscription.features.encryptedSync" : "Szyfrowana synchronizacja sesji", 236 "subscription.features.encryptedSync" : "Szyfrowana synchronizacja sesji",
237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "Dodawanie lokalnych\/hostowanych usług takich jak HipChat", 238 "subscription.features.onpremise" : "Dodawanie lokalnych\/hostowanych usług takich jak HipChat",
226 "subscription.features.vpn" : "Wsprarcie Proxy i VPN", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "PÅ‚atne konto Franz Premium obejmuje", 242 "subscription.includedFeatures" : "PÅ‚atne konto Franz Premium obejmuje",
228 "subscription.paymentSessionError" : "Nie można wczytać formularza płatności\"", 243 "subscription.paymentSessionError" : "Nie można wczytać formularza płatności\"",
229 "subscription.submit.label" : "Chcę wspierać rozwój aplikacji Franz", 244 "subscription.submit.label" : "Chcę wspierać rozwój aplikacji Franz",
@@ -241,10 +256,10 @@
241 "tabs.item.enableNotification" : "WÅ‚Ä…cz powiadomienia", 256 "tabs.item.enableNotification" : "WÅ‚Ä…cz powiadomienia",
242 "tabs.item.enableService" : "Aktywuj usługę", 257 "tabs.item.enableService" : "Aktywuj usługę",
243 "tabs.item.reload" : "Przeładuj", 258 "tabs.item.reload" : "Przeładuj",
244 "validation.email" : "{field} is not valid", 259 "validation.email" : "Pole {field} nie jest poprawne",
245 "validation.minLength" : "{field} should be at least {length} characters long", 260 "validation.minLength" : "Pole {field} powinno składać się z co najmniej {length} znaków",
246 "validation.required" : "{field} is required", 261 "validation.required" : "Pole {field} jest wymagane",
247 "validation.url" : "{field} is not a valid URL", 262 "validation.url" : "Pole {field} nie jest poprawnym ciÄ…giem URL.",
248 "welcome.loginButton" : "Zaloguj siÄ™ na swoje konto", 263 "welcome.loginButton" : "Zaloguj siÄ™ na swoje konto",
249 "welcome.signupButton" : "Stwórz darmowe konto", 264 "welcome.signupButton" : "Stwórz darmowe konto",
250 "welcome.slogan" : "Komunikator który działa" 265 "welcome.slogan" : "Komunikator który działa"
diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json
index ceb35ce30..70f6431df 100644
--- a/src/i18n/locales/pt-BR.json
+++ b/src/i18n/locales/pt-BR.json
@@ -1,23 +1,26 @@
1{ 1{
2 "global.api.unhealthy" : "Não foi possível conectar aos serviços do Franz", 2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "global.notConnectedToTheInternet" : "Você não está conectado à internet.", 3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "import.headline" : "Importe seus serviços do Franz 4", 4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
5 "import.notSupportedHeadline" : "Serviços ainda não suportados pelo Franz 5", 5 "global.api.unhealthy" : "Não foi possível conectar-se aos serviços on-line do Franz.",
6 "global.notConnectedToTheInternet" : "Você não está conectado à internet",
7 "import.headline" : "Importe seus serviços do Franz 4 ",
8 "import.notSupportedHeadline" : "Serviços ainda não suportados pelo Franz 5 ",
6 "import.skip.label" : "Quero adicionar serviços manualmente", 9 "import.skip.label" : "Quero adicionar serviços manualmente",
7 "import.submit.label" : "Importar serviços", 10 "import.submit.label" : "Importar serviços",
8 "infobar.buttonChangelog" : "O que há de novo?", 11 "infobar.buttonChangelog" : "O que há de novo?",
9 "infobar.buttonInstallUpdate" : "Reiniciar e instalar atualizações", 12 "infobar.buttonInstallUpdate" : "Reiniciar e instalar atualizações ",
10 "infobar.buttonReloadServices" : "Recarregar serviços", 13 "infobar.buttonReloadServices" : "Recarregar serviços",
11 "infobar.requiredRequestsFailed" : "Não foi possível carregar serviços e informações do usuário", 14 "infobar.requiredRequestsFailed" : "Não foi possível carregar os serviços e informações de usuário",
12 "infobar.servicesUpdated" : "Seus serviços foram atualizados.", 15 "infobar.servicesUpdated" : "Seus serviços foram atualizados.",
13 "infobar.updateAvailable" : "Uma nova atualização do Franz está disponível.", 16 "infobar.updateAvailable" : "Uma nova atualização do Franz está disponível.",
14 "invite.email.label" : "Endereço de e-mail ", 17 "invite.email.label" : "Endereço de E-mail",
15 "invite.headline.friends" : "Convide três de seus amigos ou colegas", 18 "invite.headline.friends" : "Convide 3 amigos ou colegas",
16 "invite.name.label" : "Nome", 19 "invite.name.label" : "Nome",
17 "invite.skip.label" : "Quero fazer isso depois", 20 "invite.skip.label" : "Quero fazer isso depois",
18 "invite.submit.label" : "Enviar convites", 21 "invite.submit.label" : "Enviar convites",
19 "invite.successInfo" : "Convites enviados com sucesso", 22 "invite.successInfo" : "Convites enviados com sucesso",
20 "login.email.label" : "Endereço de e-mail", 23 "login.email.label" : "E-mail",
21 "login.headline" : "Entrar", 24 "login.headline" : "Entrar",
22 "login.invalidCredentials" : "E-mail ou senha inválida", 25 "login.invalidCredentials" : "E-mail ou senha inválida",
23 "login.link.password" : "Trocar a senha", 26 "login.link.password" : "Trocar a senha",
@@ -28,58 +31,59 @@
28 "login.tokenExpired" : "Sua sessão expirou, faça o login novamente.", 31 "login.tokenExpired" : "Sua sessão expirou, faça o login novamente.",
29 "menu.app.about" : "Sobre Franz", 32 "menu.app.about" : "Sobre Franz",
30 "menu.app.hide" : "Ocultar", 33 "menu.app.hide" : "Ocultar",
31 "menu.app.hideOthers" : "Ocultar os demais", 34 "menu.app.hideOthers" : "Ocultar Outros",
32 "menu.app.quit" : "Sair", 35 "menu.app.quit" : "Sair",
33 "menu.app.settings" : "Ajustes", 36 "menu.app.settings" : "Configurações",
34 "menu.app.unhide" : "Exibir", 37 "menu.app.unhide" : "Reexibir",
35 "menu.edit" : "Editar", 38 "menu.edit" : "Editar",
36 "menu.edit.copy" : "Copiar", 39 "menu.edit.copy" : "Copiar",
37 "menu.edit.cut" : "Cortar", 40 "menu.edit.cut" : "Cortar",
38 "menu.edit.delete" : "Excluir", 41 "menu.edit.delete" : "Excluir",
39 "menu.edit.emojiSymbols" : "Emoji & Símbolos ", 42 "menu.edit.emojiSymbols" : "Emoji & Símbolos",
40 "menu.edit.paste" : "Colar", 43 "menu.edit.paste" : "Colar",
41 "menu.edit.pasteAndMatchStyle" : "Colar e corresponder ao estilo", 44 "menu.edit.pasteAndMatchStyle" : "Colar e Corresponder ao Estilo",
42 "menu.edit.redo" : "Refazer", 45 "menu.edit.redo" : "Refazer",
43 "menu.edit.selectAll" : "Selecionar tudo", 46 "menu.edit.selectAll" : "Selecionar Tudo",
44 "menu.edit.speech" : "Discurso", 47 "menu.edit.speech" : "Discurso",
45 "menu.edit.startDictation" : "iniciar digitação por voz", 48 "menu.edit.startDictation" : "Iniciar Digitação",
46 "menu.edit.startSpeaking" : "começar a falar", 49 "menu.edit.startSpeaking" : "Começar a Falar",
47 "menu.edit.stopSpeaking" : "Parar de falar", 50 "menu.edit.stopSpeaking" : "Parar de Falar",
48 "menu.edit.undo" : "Desfazer", 51 "menu.edit.undo" : "Desfazer",
49 "menu.file" : "Arquivo", 52 "menu.file" : "Arquivo",
50 "menu.help" : "Ajuda", 53 "menu.help" : "Ajuda",
51 "menu.help.changelog" : "Registro de alterações", 54 "menu.help.changelog" : "Registro de Alterações ",
52 "menu.help.learnMore" : "Saiba Mais", 55 "menu.help.learnMore" : "Saiba Mais ",
53 "menu.help.privacy" : "Declaração de privacidade", 56 "menu.help.privacy" : "Declaração de Privacidade ",
54 "menu.help.support" : "Suporte", 57 "menu.help.support" : "Suporte",
55 "menu.help.tos" : "Termos de Serviço", 58 "menu.help.tos" : "Termos de Serviço",
56 "menu.services" : "Serviços", 59 "menu.services" : "Serviços",
57 "menu.services.addNewService" : "Adicionar Novo Serviço", 60 "menu.services.addNewService" : "Adicionar Novo Serviço",
58 "menu.view" : "Visualizar", 61 "menu.view" : "Visualizar ",
59 "menu.view.enterFullScreen" : "Entrar na tela cheia", 62 "menu.view.enterFullScreen" : "Modo Tela Cheia",
60 "menu.view.exitFullScreen" : "Sair da tela cheia", 63 "menu.view.exitFullScreen" : "Sair da Tela Cheia",
61 "menu.view.reloadFranz" : "Recarregar Franz", 64 "menu.view.reloadFranz" : "Recarregar Franz",
62 "menu.view.reloadService" : "Reiniciar o serviço", 65 "menu.view.reloadService" : "Reiniciar o Serviço",
63 "menu.view.resetZoom" : "Tamanho real", 66 "menu.view.resetZoom" : "Tamanho real",
64 "menu.view.toggleDevTools" : "alternar ferramentas de desenvolvedor", 67 "menu.view.toggleDevTools" : "Ferramentas de Desenvolvedor",
65 "menu.view.toggleFullScreen" : "tela cheia", 68 "menu.view.toggleFullScreen" : "Modo Tela Cheia",
66 "menu.view.toggleServiceDevTools" : "habilitar ferramentas de serviços de desenvolvedor", 69 "menu.view.toggleServiceDevTools" : "Ferramentas de Serviços de Desenvolvedor",
67 "menu.view.zoomIn" : "Ampliar", 70 "menu.view.zoomIn" : "Ampliar",
68 "menu.view.zoomOut" : "reduzir", 71 "menu.view.zoomOut" : "Reduzir",
69 "menu.window" : "Janela", 72 "menu.window" : "Modo Janela",
70 "menu.window.close" : "Fechar", 73 "menu.window.close" : "Fechar",
71 "menu.window.minimize" : "Minimizar", 74 "menu.window.minimize" : "Minimizar",
72 "password.email.label" : "Endereço de e-mail", 75 "password.email.label" : "E-mail",
73 "password.headline" : "Trocar a senha", 76 "password.headline" : "Trocar senha",
74 "password.link.login" : "Fazer login na sua conta", 77 "password.link.login" : "Fazer login na sua conta",
75 "password.link.signup" : "Criar uma conta grátis", 78 "password.link.signup" : "Criar uma conta grátis",
76 "password.noUser" : "Nenhum usuário com este e-mail foi encontrado", 79 "password.noUser" : "Nenhum usuário com este e-mail foi encontrado",
77 "password.submit.label" : "Enviar", 80 "password.submit.label" : "Enviar",
78 "password.successInfo" : "Por favor, verifique o seu e-mail", 81 "password.successInfo" : "Por favor, verifique o seu e-mail",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "Apoie o Franz", 83 "pricing.headline" : "Apoie o Franz",
80 "pricing.link.skipPayment" : "Eu não quero apoiar o desenvolvimento do Franz.", 84 "pricing.link.skipPayment" : "Eu não quero apoiar o desenvolvimento do Franz.",
81 "pricing.submit.label" : "Eu quero apoiar o desenvolvimento do Franz", 85 "pricing.submit.label" : "Eu quero apoiar o desenvolvimento do Franz",
82 "pricing.support.label" : "Selecione uma opção de apoio", 86 "pricing.support.label" : "Selecione uma opção de plano",
83 "service.crashHandler.action" : "Recarregar {name}", 87 "service.crashHandler.action" : "Recarregar {name}",
84 "service.crashHandler.autoReload" : "Tentando reestabelecer {name} automaticamente em {seconds} segundos", 88 "service.crashHandler.autoReload" : "Tentando reestabelecer {name} automaticamente em {seconds} segundos",
85 "service.crashHandler.headline" : "Ah, não!", 89 "service.crashHandler.headline" : "Ah, não!",
@@ -97,7 +101,7 @@
97 "settings.account.deleteInfo" : "Se você não precisa mais de sua conta Franz, pode exclui-la juntamente com todos os dados relacionados, aqui.", 101 "settings.account.deleteInfo" : "Se você não precisa mais de sua conta Franz, pode exclui-la juntamente com todos os dados relacionados, aqui.",
98 "settings.account.headline" : "Conta", 102 "settings.account.headline" : "Conta",
99 "settings.account.headlineAccount" : "Informações de conta", 103 "settings.account.headlineAccount" : "Informações de conta",
100 "settings.account.headlineDangerZone" : "Zona de perigo", 104 "settings.account.headlineDangerZone" : "Zona de Perigo",
101 "settings.account.headlineInvoices" : "Recibos", 105 "settings.account.headlineInvoices" : "Recibos",
102 "settings.account.headlinePassword" : "Mudar senha", 106 "settings.account.headlinePassword" : "Mudar senha",
103 "settings.account.headlineProfile" : "Atualizar perfil", 107 "settings.account.headlineProfile" : "Atualizar perfil",
@@ -116,16 +120,18 @@
116 "settings.app.form.autoLaunchInBackground" : "Abrir em segundo plano", 120 "settings.app.form.autoLaunchInBackground" : "Abrir em segundo plano",
117 "settings.app.form.autoLaunchOnStart" : "Abrir o Franz ao iniciar o sistema", 121 "settings.app.form.autoLaunchOnStart" : "Abrir o Franz ao iniciar o sistema",
118 "settings.app.form.beta" : "Incluir versões beta", 122 "settings.app.form.beta" : "Incluir versões beta",
119 "settings.app.form.enableGPUAcceleration" : "Ativar Aceleração de GPU (Unidade de Processamento Gráfico)", 123 "settings.app.form.darkMode" : "Join the Dark Side",
124 "settings.app.form.enableGPUAcceleration" : "Ativar Aceleração de GPU",
120 "settings.app.form.enableMenuBar" : "Mostrar Franz na Barra de Menu", 125 "settings.app.form.enableMenuBar" : "Mostrar Franz na Barra de Menu",
121 "settings.app.form.enableSpellchecking" : "Ativar correção ortográfica", 126 "settings.app.form.enableSpellchecking" : "Ativar correção ortográfica",
122 "settings.app.form.enableSystemTray" : "Exibir o Franz na área de notificações", 127 "settings.app.form.enableSystemTray" : "Exibir o Franz na barra de sistema",
123 "settings.app.form.hideDockIcon" : "Ocultar ícone do Franz no Dock", 128 "settings.app.form.hideDockIcon" : "Ocultar ícone do Franz no Dock",
124 "settings.app.form.language" : "Idioma", 129 "settings.app.form.language" : "Idioma",
125 "settings.app.form.minimizeToSystemTray" : "Minimizar o Franz para a área de notificações", 130 "settings.app.form.minimizeToSystemTray" : "Minimizar o Franz para a área de sistema",
126 "settings.app.form.runInBackground" : "Manter o Franz no fundo quando fechar a janela", 131 "settings.app.form.runInBackground" : "Manter o Franz no fundo quando fechar a janela",
127 "settings.app.form.showDisabledServices" : "Mostrar abas de serviços desativados", 132 "settings.app.form.showDisabledServices" : "Mostrar abas de serviços desativados",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "Mostrar ícone de mensagem não lida quando as notificações estiverem desativadas", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "Mostrar ícone de mensagem não lida quando as notificações estiverem desativadas",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "Configurações", 135 "settings.app.headline" : "Configurações",
130 "settings.app.headlineAdvanced" : "Avançado", 136 "settings.app.headlineAdvanced" : "Avançado",
131 "settings.app.headlineAppearance" : "Aparência", 137 "settings.app.headlineAppearance" : "Aparência",
@@ -133,20 +139,20 @@
133 "settings.app.headlineLanguage" : "Idioma", 139 "settings.app.headlineLanguage" : "Idioma",
134 "settings.app.headlineUpdates" : "Atualizações", 140 "settings.app.headlineUpdates" : "Atualizações",
135 "settings.app.restartRequired" : "As atualizações exigem reiniciar o sistema", 141 "settings.app.restartRequired" : "As atualizações exigem reiniciar o sistema",
136 "settings.app.subheadlineCache" : "Cache", 142 "settings.app.subheadlineCache" : "Cachê",
137 "settings.app.translationHelp" : "Ajude-nos a traduzir o Franz para seu idioma.", 143 "settings.app.translationHelp" : "Ajude-nos a traduzir o Franz para seu idioma.",
138 "settings.app.updateStatusAvailable" : "Atualização disponível, baixando...", 144 "settings.app.updateStatusAvailable" : "Atualização disponível, baixando...",
139 "settings.app.updateStatusSearching" : "Buscando atualizações", 145 "settings.app.updateStatusSearching" : "Buscando atualizações",
140 "settings.app.updateStatusUpToDate" : "Você está usando a última versão do Franz", 146 "settings.app.updateStatusUpToDate" : "Você está usando a última versão do Franz",
141 "settings.invite.headline" : "Convidar amigos", 147 "settings.invite.headline" : "Convidar Amigos",
142 "settings.navigation.account" : "Conta", 148 "settings.navigation.account" : "Conta",
143 "settings.navigation.availableServices" : "Serviços disponíveis", 149 "settings.navigation.availableServices" : "Serviços disponíveis",
144 "settings.navigation.inviteFriends" : "Convidar amigos", 150 "settings.navigation.inviteFriends" : "Convidar Amigos",
145 "settings.navigation.logout" : "Sair", 151 "settings.navigation.logout" : "Sair",
146 "settings.navigation.settings" : "Ajustes", 152 "settings.navigation.settings" : "Ajustes",
147 "settings.navigation.yourServices" : "Seus serviços", 153 "settings.navigation.yourServices" : "Seus serviços",
148 "settings.recipes.all" : "Todos os serviços", 154 "settings.recipes.all" : "Todos os serviços",
149 "settings.recipes.dev" : "Desenvolvimento ", 155 "settings.recipes.dev" : "Desenvolvimento",
150 "settings.recipes.headline" : "Serviços disponíveis", 156 "settings.recipes.headline" : "Serviços disponíveis",
151 "settings.recipes.missingService" : "Sentiu falta de algum serviço?", 157 "settings.recipes.missingService" : "Sentiu falta de algum serviço?",
152 "settings.recipes.mostPopular" : "Mais populares", 158 "settings.recipes.mostPopular" : "Mais populares",
@@ -166,6 +172,7 @@
166 "settings.service.form.editServiceHeadline" : "Editar {name}", 172 "settings.service.form.editServiceHeadline" : "Editar {name}",
167 "settings.service.form.enableAudio" : "Ativar áudio", 173 "settings.service.form.enableAudio" : "Ativar áudio",
168 "settings.service.form.enableBadge" : "Mostrar aviso de mensagens não lidas", 174 "settings.service.form.enableBadge" : "Mostrar aviso de mensagens não lidas",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "Ativar notificações", 176 "settings.service.form.enableNotification" : "Ativar notificações",
170 "settings.service.form.enableService" : "Ativar serviço", 177 "settings.service.form.enableService" : "Ativar serviço",
171 "settings.service.form.headlineBadges" : "Mensagens não lidas", 178 "settings.service.form.headlineBadges" : "Mensagens não lidas",
@@ -178,7 +185,13 @@
178 "settings.service.form.indirectMessages" : "Mostrar avisos para todas as mensagens", 185 "settings.service.form.indirectMessages" : "Mostrar avisos para todas as mensagens",
179 "settings.service.form.isMutedInfo" : "Quando desativado, as notificações sonoras e áudios ficarão em silêncio", 186 "settings.service.form.isMutedInfo" : "Quando desativado, as notificações sonoras e áudios ficarão em silêncio",
180 "settings.service.form.name" : "Nome", 187 "settings.service.form.name" : "Nome",
181 "settings.service.form.saveButton" : "Gravar serviço", 188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
194 "settings.service.form.saveButton" : "Salvar serviço",
182 "settings.service.form.tabHosted" : "Hospedado", 195 "settings.service.form.tabHosted" : "Hospedado",
183 "settings.service.form.tabOnPremise" : "Auto-hospedado â­ï¸", 196 "settings.service.form.tabOnPremise" : "Auto-hospedado â­ï¸",
184 "settings.service.form.team" : "Equipe", 197 "settings.service.form.team" : "Equipe",
@@ -212,18 +225,20 @@
212 "signup.headline" : "Cadastrar-se", 225 "signup.headline" : "Cadastrar-se",
213 "signup.lastname.label" : "Sobrenome", 226 "signup.lastname.label" : "Sobrenome",
214 "signup.legal.info" : "Ao criar uma conta Franz, você aceita os ", 227 "signup.legal.info" : "Ao criar uma conta Franz, você aceita os ",
215 "signup.legal.privacy" : "Declaração de privacidade", 228 "signup.legal.privacy" : "Declaração de Privacidade",
216 "signup.legal.terms" : "Termos de serviço", 229 "signup.legal.terms" : "Termos de serviço",
217 "signup.link.login" : "Já tem uma conta?", 230 "signup.link.login" : "Já tem uma conta?",
218 "signup.password.label" : "Senha", 231 "signup.password.label" : "Senha",
219 "signup.submit.label" : "Criar uma conta", 232 "signup.submit.label" : "Criar uma conta",
220 "subscription.euTaxInfo" : "Residentes na União Europeia: taxas locais serão aplicadas", 233 "subscription.euTaxInfo" : "Residentes na União Europeia: taxas locais serão aplicadas",
221 "subscription.features.ads" : "Sem anúncios, sempre!", 234 "subscription.features.ads" : "Sem anúncios, pra sempre!",
222 "subscription.features.comingSoon" : "em breve", 235 "subscription.features.comingSoon" : "em breve",
223 "subscription.features.customServices" : "Serviços privados para você e sua equipe",
224 "subscription.features.encryptedSync" : "Sincronização encriptada das sessões", 236 "subscription.features.encryptedSync" : "Sincronização encriptada das sessões",
237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "Adicionar serviços locais\/hospedados como o HipChat", 238 "subscription.features.onpremise" : "Adicionar serviços locais\/hospedados como o HipChat",
226 "subscription.features.vpn" : "Suporte a proxy e VPN", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "A conta Apoiador Franz Premium inclui", 242 "subscription.includedFeatures" : "A conta Apoiador Franz Premium inclui",
228 "subscription.paymentSessionError" : "Não foi possível abrir o formulário de pagamento", 243 "subscription.paymentSessionError" : "Não foi possível abrir o formulário de pagamento",
229 "subscription.submit.label" : "Eu quero apoiar o desenvolvimento do Franz", 244 "subscription.submit.label" : "Eu quero apoiar o desenvolvimento do Franz",
@@ -242,7 +257,7 @@
242 "tabs.item.enableService" : "Ativar serviço", 257 "tabs.item.enableService" : "Ativar serviço",
243 "tabs.item.reload" : "Recarregar", 258 "tabs.item.reload" : "Recarregar",
244 "validation.email" : "inválido", 259 "validation.email" : "inválido",
245 "validation.minLength" : "{campo} deve ser pelo menos {comprimento} mais caracteres ", 260 "validation.minLength" : "{campo} deve ter pelo menos {comprimento} mais caracteres ",
246 "validation.required" : "{campo} obrigatório", 261 "validation.required" : "{campo} obrigatório",
247 "validation.url" : "{campo} essa URL não é válida", 262 "validation.url" : "{campo} essa URL não é válida",
248 "welcome.loginButton" : "Entrar na sua conta", 263 "welcome.loginButton" : "Entrar na sua conta",
diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json
index 44048e505..71978ed6b 100644
--- a/src/i18n/locales/pt.json
+++ b/src/i18n/locales/pt.json
@@ -1,32 +1,35 @@
1{ 1{
2 "global.api.unhealthy" : "Não foi possível conetar aos serviços do Franz", 2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "global.notConnectedToTheInternet" : "Não existe ligação à Internet.", 3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
5 "global.api.unhealthy" : "Não foi possível estabelecer ligação aos serviços do Franz",
6 "global.notConnectedToTheInternet" : "Não existe ligação à Internet",
4 "import.headline" : "Importe os seus serviços do Franz 4", 7 "import.headline" : "Importe os seus serviços do Franz 4",
5 "import.notSupportedHeadline" : "Serviços ainda não são suportados pelo Franz 5", 8 "import.notSupportedHeadline" : "Serviços ainda não suportados pelo Franz 5",
6 "import.skip.label" : "Quero adicionar serviços manualmente", 9 "import.skip.label" : "Pretendo adicionar serviços manualmente",
7 "import.submit.label" : "Importar serviços", 10 "import.submit.label" : "Importar serviços",
8 "infobar.buttonChangelog" : "Novidades?", 11 "infobar.buttonChangelog" : "O que há de novo?",
9 "infobar.buttonInstallUpdate" : "Reiniciar & Instalar Atualizações", 12 "infobar.buttonInstallUpdate" : "Reiniciar e instalar atualizações",
10 "infobar.buttonReloadServices" : "Recarregar serviços", 13 "infobar.buttonReloadServices" : "Recarregar serviços",
11 "infobar.requiredRequestsFailed" : "Não foi possivel carregar os serviços e informações do utilizador", 14 "infobar.requiredRequestsFailed" : "Não foi possível carregar os serviços e informações do utilizador",
12 "infobar.servicesUpdated" : "Os seus serviços foram atualizados.", 15 "infobar.servicesUpdated" : "Os seus serviços foram atualizados.",
13 "infobar.updateAvailable" : "Está disponível uma atualização", 16 "infobar.updateAvailable" : "Está disponível uma nova atualização para o Franz",
14 "invite.email.label" : "Endereço de e-mail", 17 "invite.email.label" : "Endereço de e-mail",
15 "invite.headline.friends" : "Convide 3 amigos ou colegas", 18 "invite.headline.friends" : "Convide 3 amigos ou colegas",
16 "invite.name.label" : "Nome", 19 "invite.name.label" : "Nome",
17 "invite.skip.label" : "Quero fazer isto mais tarde", 20 "invite.skip.label" : "Pretendo fazer isto mais tarde",
18 "invite.submit.label" : "Enviar convites", 21 "invite.submit.label" : "Enviar convites",
19 "invite.successInfo" : "Convites enviados com sucesso", 22 "invite.successInfo" : "Convites enviados com sucesso",
20 "login.email.label" : "Endereço de e-mail", 23 "login.email.label" : "Endereço de e-mail",
21 "login.headline" : "Registar", 24 "login.headline" : "Iniciar Sessão",
22 "login.invalidCredentials" : "O email ou a palavra-passe estão incorretos", 25 "login.invalidCredentials" : "O email ou a palavra-passe estão incorrectos",
23 "login.link.password" : "Repor a minha palavra-passe", 26 "login.link.password" : "Repor a minha palavra-passe",
24 "login.link.signup" : "Criar uma conta gratuita", 27 "login.link.signup" : "Criar uma conta gratuita",
25 "login.password.label" : "Palavra-passe", 28 "login.password.label" : "Palavra-passe",
26 "login.serverLogout" : "A sua sessão expirou, inicie sessão novamente.", 29 "login.serverLogout" : "A sua sessão expirou, inicie sessão novamente.",
27 "login.submit.label" : "Iniciar sessão", 30 "login.submit.label" : "Iniciar sessão",
28 "login.tokenExpired" : "A sua sessão expirou, inicie sessão novamente.", 31 "login.tokenExpired" : "A sua sessão expirou, inicie sessão novamente.",
29 "menu.app.about" : "Sobre Franz", 32 "menu.app.about" : "Sobre o Franz",
30 "menu.app.hide" : "Ocultar", 33 "menu.app.hide" : "Ocultar",
31 "menu.app.hideOthers" : "Ocultar Outros", 34 "menu.app.hideOthers" : "Ocultar Outros",
32 "menu.app.quit" : "Sair", 35 "menu.app.quit" : "Sair",
@@ -36,51 +39,52 @@
36 "menu.edit.copy" : "Copiar", 39 "menu.edit.copy" : "Copiar",
37 "menu.edit.cut" : "Cortar", 40 "menu.edit.cut" : "Cortar",
38 "menu.edit.delete" : "Apagar", 41 "menu.edit.delete" : "Apagar",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols", 42 "menu.edit.emojiSymbols" : "Emojis e Símbolos",
40 "menu.edit.paste" : "Paste", 43 "menu.edit.paste" : "Colar",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", 44 "menu.edit.pasteAndMatchStyle" : "Colar e Manter Estilo",
42 "menu.edit.redo" : "Redo", 45 "menu.edit.redo" : "Refazer",
43 "menu.edit.selectAll" : "Select All", 46 "menu.edit.selectAll" : "Selecionar Tudo",
44 "menu.edit.speech" : "Speech", 47 "menu.edit.speech" : "Voz",
45 "menu.edit.startDictation" : "Start Dictation", 48 "menu.edit.startDictation" : "Começar a ditar",
46 "menu.edit.startSpeaking" : "Start Speaking", 49 "menu.edit.startSpeaking" : "Comece a falar",
47 "menu.edit.stopSpeaking" : "Stop Speaking", 50 "menu.edit.stopSpeaking" : "Pare de Falar",
48 "menu.edit.undo" : "Undo", 51 "menu.edit.undo" : "Desfazer",
49 "menu.file" : "File", 52 "menu.file" : "Ficheiro",
50 "menu.help" : "Help", 53 "menu.help" : "Ajuda",
51 "menu.help.changelog" : "Changelog", 54 "menu.help.changelog" : "Registo de alterações",
52 "menu.help.learnMore" : "Learn More", 55 "menu.help.learnMore" : "Saber mais",
53 "menu.help.privacy" : "Declaração de privacidade", 56 "menu.help.privacy" : "Declaração de privacidade",
54 "menu.help.support" : "Support", 57 "menu.help.support" : "Suporte",
55 "menu.help.tos" : "Terms of Service", 58 "menu.help.tos" : "Termos do Serviço",
56 "menu.services" : "Services", 59 "menu.services" : "Serviços",
57 "menu.services.addNewService" : "Add New Service...", 60 "menu.services.addNewService" : "Adicionar Novo Serviço...",
58 "menu.view" : "View", 61 "menu.view" : "Ver",
59 "menu.view.enterFullScreen" : "Enter Full Screen", 62 "menu.view.enterFullScreen" : "Ativar Modo de Ecrã Completo",
60 "menu.view.exitFullScreen" : "Exit Full Screen", 63 "menu.view.exitFullScreen" : "Sair do Modo de Ecrã Completo",
61 "menu.view.reloadFranz" : "Reload Franz", 64 "menu.view.reloadFranz" : "Recarregar Franz",
62 "menu.view.reloadService" : "Reload Service", 65 "menu.view.reloadService" : "Recarregar serviço",
63 "menu.view.resetZoom" : "Actual Size", 66 "menu.view.resetZoom" : "Tamanho Real",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools", 67 "menu.view.toggleDevTools" : "Activar\/Desativar Ferramentas de Desenvolvimento",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen", 68 "menu.view.toggleFullScreen" : "Ativar\/Desativar Ecrã Completo",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", 69 "menu.view.toggleServiceDevTools" : "Ativar\/Desativar Ferramentas de Desenvolvimento de Serviços",
67 "menu.view.zoomIn" : "Zoom In", 70 "menu.view.zoomIn" : "Aumentar",
68 "menu.view.zoomOut" : "Zoom Out", 71 "menu.view.zoomOut" : "Reduzir",
69 "menu.window" : "Window", 72 "menu.window" : "Janela",
70 "menu.window.close" : "Close", 73 "menu.window.close" : "Fechar",
71 "menu.window.minimize" : "Minimize", 74 "menu.window.minimize" : "Minimizar",
72 "password.email.label" : "Endereço de e-mail", 75 "password.email.label" : "Endereço de e-mail",
73 "password.headline" : "Repor a minha palavra-passe", 76 "password.headline" : "Repor a minha palavra-passe",
74 "password.link.login" : "Iniciar sessão", 77 "password.link.login" : "Iniciar sessão",
75 "password.link.signup" : "Criar uma conta gratuita", 78 "password.link.signup" : "Criar uma conta gratuita",
76 "password.noUser" : "Não existe nenhuma conta associada a esse email", 79 "password.noUser" : "Não existe nenhuma conta associada a esse endereço de e-mail",
77 "password.submit.label" : "Submeter", 80 "password.submit.label" : "Submeter",
78 "password.successInfo" : "Por favor reveja o seu email", 81 "password.successInfo" : "Por favor verifique o seu endereço de e-mail",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "Apoie o Franz", 83 "pricing.headline" : "Apoie o Franz",
80 "pricing.link.skipPayment" : "Não pretendo ajudar no desenvolvimento do Franz", 84 "pricing.link.skipPayment" : "Não pretendo patrocinar o desenvolvimento do Franz",
81 "pricing.submit.label" : "Pretendo ajudar no desenvolvimento do Franz", 85 "pricing.submit.label" : "Pretendo patrocinar o desenvolvimento do Franz",
82 "pricing.support.label" : "Selecione o seu plano", 86 "pricing.support.label" : "Selecione o seu plano",
83 "service.crashHandler.action" : "Recarregar", 87 "service.crashHandler.action" : "Recarregar {name}",
84 "service.crashHandler.autoReload" : "A tentar restaurar automaticamente {name} em {seconds} segundos", 88 "service.crashHandler.autoReload" : "A tentar restaurar automaticamente {name} em {seconds} segundos",
85 "service.crashHandler.headline" : "Oh não!", 89 "service.crashHandler.headline" : "Oh não!",
86 "service.crashHandler.text" : "{name} causou um erro.", 90 "service.crashHandler.text" : "{name} causou um erro.",
@@ -94,7 +98,7 @@
94 "settings.account.buttonSave" : "Atualizar o perfil", 98 "settings.account.buttonSave" : "Atualizar o perfil",
95 "settings.account.deleteAccount" : "Apagar conta", 99 "settings.account.deleteAccount" : "Apagar conta",
96 "settings.account.deleteEmailSent" : "Recebeu um email com um endereço para confirmar a remoção da sua conta. A sua conta e dados não poderão ser restaurados!", 100 "settings.account.deleteEmailSent" : "Recebeu um email com um endereço para confirmar a remoção da sua conta. A sua conta e dados não poderão ser restaurados!",
97 "settings.account.deleteInfo" : "Se não necessita mais da sua conta Franz, pode apagar a sua conta e dados aqui.", 101 "settings.account.deleteInfo" : "Se já não necessita da sua conta Franz, pode apagar a sua conta e todos os dados aqui.",
98 "settings.account.headline" : "Conta", 102 "settings.account.headline" : "Conta",
99 "settings.account.headlineAccount" : "Informação da conta", 103 "settings.account.headlineAccount" : "Informação da conta",
100 "settings.account.headlineDangerZone" : "Zona de perigo", 104 "settings.account.headlineDangerZone" : "Zona de perigo",
@@ -105,38 +109,40 @@
105 "settings.account.headlineUpgrade" : "Atualize a sua conta e ajude o Franz", 109 "settings.account.headlineUpgrade" : "Atualize a sua conta e ajude o Franz",
106 "settings.account.invoiceDownload" : "Transferir", 110 "settings.account.invoiceDownload" : "Transferir",
107 "settings.account.manageSubscription.label" : "Gerir as minhas subscrições", 111 "settings.account.manageSubscription.label" : "Gerir as minhas subscrições",
108 "settings.account.successInfo" : "As suas mudanças foram efetuadas com sucesso", 112 "settings.account.successInfo" : "As suas alterações foram efetuadas com sucesso",
109 "settings.account.tryReloadUserInfoRequest" : "Tentar novamente", 113 "settings.account.tryReloadUserInfoRequest" : "Tentar novamente",
110 "settings.account.userInfoRequestFailed" : "Não é possível carregar a informação do utilizador", 114 "settings.account.userInfoRequestFailed" : "Não é possível carregar a informação do utilizador",
111 "settings.app.buttonClearAllCache" : "Limpar cache", 115 "settings.app.buttonClearAllCache" : "Limpar cache",
112 "settings.app.buttonInstallUpdate" : "Reiniciar & Instalar Atualizações", 116 "settings.app.buttonInstallUpdate" : "Reiniciar & instalar atualização",
113 "settings.app.buttonSearchForUpdate" : "Procurar por atualizações", 117 "settings.app.buttonSearchForUpdate" : "Procurar atualizações",
114 "settings.app.cacheInfo" : "A cache do Franz está a usar {size} do espaço em disco.", 118 "settings.app.cacheInfo" : "A cache do Franz está a usar {size} de espaço em disco.",
115 "settings.app.currentVersion" : "Versão atual", 119 "settings.app.currentVersion" : "Versão atual",
116 "settings.app.form.autoLaunchInBackground" : "Abrir em segundo plano", 120 "settings.app.form.autoLaunchInBackground" : "Abrir em segundo plano",
117 "settings.app.form.autoLaunchOnStart" : "Iniciar o Franz com o início de sessão", 121 "settings.app.form.autoLaunchOnStart" : "Iniciar o Franz após iniciar o computador",
118 "settings.app.form.beta" : "Incluir versões instáveis (beta)", 122 "settings.app.form.beta" : "Incluir versões instáveis (beta)",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", 123 "settings.app.form.darkMode" : "Join the Dark Side",
124 "settings.app.form.enableGPUAcceleration" : "Activar Aceleração de GPU",
120 "settings.app.form.enableMenuBar" : "Mostrar Franz na Barra de Menu", 125 "settings.app.form.enableMenuBar" : "Mostrar Franz na Barra de Menu",
121 "settings.app.form.enableSpellchecking" : "Ativar verificação ortográfica", 126 "settings.app.form.enableSpellchecking" : "Ativar verificação ortográfica",
122 "settings.app.form.enableSystemTray" : "Mostrar o Franz na barra do sistema", 127 "settings.app.form.enableSystemTray" : "Mostrar o Franz na barra do sistema",
123 "settings.app.form.hideDockIcon" : "Esconder ícone na Dock", 128 "settings.app.form.hideDockIcon" : "Esconder ícone na Dock",
124 "settings.app.form.language" : "Idioma:", 129 "settings.app.form.language" : "Idioma",
125 "settings.app.form.minimizeToSystemTray" : "Minimizar o Franz para a barra do sistema", 130 "settings.app.form.minimizeToSystemTray" : "Minimizar o Franz para a barra do sistema",
126 "settings.app.form.runInBackground" : "Manter o Franz em segundo plano ao fechar a janela", 131 "settings.app.form.runInBackground" : "Manter o Franz em segundo plano ao fechar a janela",
127 "settings.app.form.showDisabledServices" : "Apresentar separadores de serviços desativados", 132 "settings.app.form.showDisabledServices" : "Apresentar separadores de serviços desativados",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "Apresentar emblema com o número de mensagens não lidas quando as notificações estão desactivadas", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "Apresentar emblema com o número de mensagens não lidas quando as notificações estão desativadas",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "Definições", 135 "settings.app.headline" : "Definições",
130 "settings.app.headlineAdvanced" : "Avançado", 136 "settings.app.headlineAdvanced" : "Avançado",
131 "settings.app.headlineAppearance" : "Aparência", 137 "settings.app.headlineAppearance" : "Aparência",
132 "settings.app.headlineGeneral" : "Geral", 138 "settings.app.headlineGeneral" : "Geral",
133 "settings.app.headlineLanguage" : "Idioma:", 139 "settings.app.headlineLanguage" : "Idioma",
134 "settings.app.headlineUpdates" : "Atualizações", 140 "settings.app.headlineUpdates" : "Atualizações",
135 "settings.app.restartRequired" : "Alterações requerem reinício", 141 "settings.app.restartRequired" : "Alterações requerem reinício",
136 "settings.app.subheadlineCache" : "Cache", 142 "settings.app.subheadlineCache" : "Cache",
137 "settings.app.translationHelp" : "Ajude-nos a traduzir a Franz para a sua língua.", 143 "settings.app.translationHelp" : "Ajude-nos a traduzir a Franz para a sua língua.",
138 "settings.app.updateStatusAvailable" : "Atualização disponivel, a transferir...", 144 "settings.app.updateStatusAvailable" : "Atualização disponivel, a transferir...",
139 "settings.app.updateStatusSearching" : "Procurando por atualizações", 145 "settings.app.updateStatusSearching" : "A procurar atualizações",
140 "settings.app.updateStatusUpToDate" : "Está a usar a versão mais recente do Franz", 146 "settings.app.updateStatusUpToDate" : "Está a usar a versão mais recente do Franz",
141 "settings.invite.headline" : "Convide amigos", 147 "settings.invite.headline" : "Convide amigos",
142 "settings.navigation.account" : "Conta", 148 "settings.navigation.account" : "Conta",
@@ -148,9 +154,9 @@
148 "settings.recipes.all" : "Todos os serviços", 154 "settings.recipes.all" : "Todos os serviços",
149 "settings.recipes.dev" : "Desenvolvimento", 155 "settings.recipes.dev" : "Desenvolvimento",
150 "settings.recipes.headline" : "Serviços disponíveis", 156 "settings.recipes.headline" : "Serviços disponíveis",
151 "settings.recipes.missingService" : "A faltar um serviço?", 157 "settings.recipes.missingService" : "Falta um serviço?",
152 "settings.recipes.mostPopular" : "Os mais populares", 158 "settings.recipes.mostPopular" : "Os mais populares",
153 "settings.recipes.nothingFound" : "Lamentamos, mas não existe nenhum serviço corresponde ao pesquisado.", 159 "settings.recipes.nothingFound" : "Lamentamos, nenhum serviço corresponde ao pesquisado.",
154 "settings.recipes.servicesSuccessfulAddedInfo" : "Serviço adicionado", 160 "settings.recipes.servicesSuccessfulAddedInfo" : "Serviço adicionado",
155 "settings.searchService" : "Pesquisa de serviço", 161 "settings.searchService" : "Pesquisa de serviço",
156 "settings.service.error.goBack" : "Voltar aos serviços", 162 "settings.service.error.goBack" : "Voltar aos serviços",
@@ -159,25 +165,32 @@
159 "settings.service.form.addServiceHeadline" : "Adicionar {name}", 165 "settings.service.form.addServiceHeadline" : "Adicionar {name}",
160 "settings.service.form.availableServices" : "Serviços disponíveis", 166 "settings.service.form.availableServices" : "Serviços disponíveis",
161 "settings.service.form.customUrl" : "Servidor personalizado", 167 "settings.service.form.customUrl" : "Servidor personalizado",
162 "settings.service.form.customUrlPremiumInfo" : "Para adicionar serviços com domínio próprio, é necessário uma Conta Premium.", 168 "settings.service.form.customUrlPremiumInfo" : "Para adicionar serviços com domínio próprio, é necessário uma Conta Premium no Franz.",
163 "settings.service.form.customUrlUpgradeAccount" : "Atualizar a conta", 169 "settings.service.form.customUrlUpgradeAccount" : "Atualizar a conta",
164 "settings.service.form.customUrlValidationError" : "Não foi possível validar o servidor {nome}.", 170 "settings.service.form.customUrlValidationError" : "Não foi possível validar o servidor {nome}.",
165 "settings.service.form.deleteButton" : "Apagar serviço", 171 "settings.service.form.deleteButton" : "Apagar serviço",
166 "settings.service.form.editServiceHeadline" : "Editar {name}", 172 "settings.service.form.editServiceHeadline" : "Editar {name}",
167 "settings.service.form.enableAudio" : "Ativar áudio", 173 "settings.service.form.enableAudio" : "Ativar áudio",
168 "settings.service.form.enableBadge" : "Mostrar emblema de mensagens não vistas", 174 "settings.service.form.enableBadge" : "Mostrar emblemas de mensagens não lidas",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "Ativar notificações", 176 "settings.service.form.enableNotification" : "Ativar notificações",
170 "settings.service.form.enableService" : "Ativar serviço", 177 "settings.service.form.enableService" : "Ativar serviço",
171 "settings.service.form.headlineBadges" : "Emblema de mensagem não vista", 178 "settings.service.form.headlineBadges" : "Emblema de mensagem não lida",
172 "settings.service.form.headlineGeneral" : "Geral", 179 "settings.service.form.headlineGeneral" : "Geral",
173 "settings.service.form.headlineNotifications" : "Notificações", 180 "settings.service.form.headlineNotifications" : "Notificações",
174 "settings.service.form.icon" : "Personalizar ícone", 181 "settings.service.form.icon" : "Personalizar ícone",
175 "settings.service.form.iconDelete" : "Apagar", 182 "settings.service.form.iconDelete" : "Apagar",
176 "settings.service.form.iconUpload" : "Arraste a sua imagem, ou clique aqui", 183 "settings.service.form.iconUpload" : "Arraste a sua imagem, ou clique aqui",
177 "settings.service.form.indirectMessageInfo" : "Será notificado sobre todas as novas mensagens de um canal, não apenas @username, @channel, @here, ...", 184 "settings.service.form.indirectMessageInfo" : "Será notificado sobre todas as novas mensagens num canal, não apenas @username, @channel, @here, ...",
178 "settings.service.form.indirectMessages" : "Mostrar o emblema da mensagem para todas as novas mensagens", 185 "settings.service.form.indirectMessages" : "Mostrar o emblema da mensagem para todas as novas mensagens",
179 "settings.service.form.isMutedInfo" : "Quando desativado, todas as notificações de áudio serão silenciadas", 186 "settings.service.form.isMutedInfo" : "Quando desativado, todos sons e reproduções de áudio serão silenciados",
180 "settings.service.form.name" : "Nome", 187 "settings.service.form.name" : "Nome",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "Guardar serviço", 194 "settings.service.form.saveButton" : "Guardar serviço",
182 "settings.service.form.tabHosted" : "Com domínio", 195 "settings.service.form.tabHosted" : "Com domínio",
183 "settings.service.form.tabOnPremise" : "Com domínio próprio â­ï¸", 196 "settings.service.form.tabOnPremise" : "Com domínio próprio â­ï¸",
@@ -187,7 +200,7 @@
187 "settings.services.deletedInfo" : "O serviço foi apagado", 200 "settings.services.deletedInfo" : "O serviço foi apagado",
188 "settings.services.discoverServices" : "Descobrir serviços", 201 "settings.services.discoverServices" : "Descobrir serviços",
189 "settings.services.headline" : "Os seus serviços", 202 "settings.services.headline" : "Os seus serviços",
190 "settings.services.noServicesAdded" : "Ainda não adicionou nenhum serviço.", 203 "settings.services.noServicesAdded" : "Ainda não adicionou um serviço.",
191 "settings.services.tooltip.isDisabled" : "O serviço está desativado", 204 "settings.services.tooltip.isDisabled" : "O serviço está desativado",
192 "settings.services.tooltip.isMuted" : "Todos os sons estão silenciados", 205 "settings.services.tooltip.isMuted" : "Todos os sons estão silenciados",
193 "settings.services.tooltip.notificationsDisabled" : "As notificações estão desativadas", 206 "settings.services.tooltip.notificationsDisabled" : "As notificações estão desativadas",
@@ -206,28 +219,30 @@
206 "sidebar.settings" : "Definições", 219 "sidebar.settings" : "Definições",
207 "sidebar.unmuteApp" : "Ativar notificações e áudio", 220 "sidebar.unmuteApp" : "Ativar notificações e áudio",
208 "signup.company.label" : "Empresa", 221 "signup.company.label" : "Empresa",
209 "signup.email.label" : "Endereço de e-mail", 222 "signup.email.label" : "Endereço de email",
210 "signup.emailDuplicate" : "Já existe uma conta associada a este endereço", 223 "signup.emailDuplicate" : "Já existe uma conta associada a este endereço de email",
211 "signup.firstname.label" : "Primeiro Nome", 224 "signup.firstname.label" : "Primeiro Nome",
212 "signup.headline" : "Criar conta", 225 "signup.headline" : "Criar conta",
213 "signup.lastname.label" : "Último Nome", 226 "signup.lastname.label" : "Último Nome",
214 "signup.legal.info" : "Ao criar uma conta Franz, aceita", 227 "signup.legal.info" : "Ao criar uma conta Franz, aceita",
215 "signup.legal.privacy" : "Declaração de privacidade", 228 "signup.legal.privacy" : "Declaração de Privacidade",
216 "signup.legal.terms" : "Termos de Serviço", 229 "signup.legal.terms" : "Termos do Serviço",
217 "signup.link.login" : "Já tem conta, iniciar sessão?", 230 "signup.link.login" : "Já tem uma conta, iniciar sessão?",
218 "signup.password.label" : "Palavra-passe", 231 "signup.password.label" : "Palavra-passe",
219 "signup.submit.label" : "Criar uma conta", 232 "signup.submit.label" : "Criar uma conta",
220 "subscription.euTaxInfo" : "Residentes EU: Taxas locais podem ser aplicadas", 233 "subscription.euTaxInfo" : "Residentes EU: Taxas locais podem ser aplicadas",
221 "subscription.features.ads" : "Sem anúncios, para sempre!", 234 "subscription.features.ads" : "Sem anúncios, para sempre!",
222 "subscription.features.comingSoon" : "Em breve!", 235 "subscription.features.comingSoon" : "em breve",
223 "subscription.features.customServices" : "Serviços privados para si e para a sua equipa", 236 "subscription.features.encryptedSync" : "Sincronização encriptada de sessão",
224 "subscription.features.encryptedSync" : "Sincronização encriptada de serviços", 237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "Adicionar serviços 'on-premise'\/hosted como o HipChat", 238 "subscription.features.onpremise" : "Adicionar serviços 'on-premise'\/hosted como o HipChat",
226 "subscription.features.vpn" : "Suporte para proxy\/VPN", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "Ao subscrever uma Conta Premium, tem acesso a", 242 "subscription.includedFeatures" : "Ao subscrever uma Conta Premium, tem acesso a",
228 "subscription.paymentSessionError" : "Erro no serviço de pagamento", 243 "subscription.paymentSessionError" : "Erro no serviço de pagamento",
229 "subscription.submit.label" : "Pretendo ajudar o desenvolvimento do Franz", 244 "subscription.submit.label" : "Pretendo ajudar o desenvolvimento do Franz",
230 "subscription.type.free" : "Gratuito", 245 "subscription.type.free" : "gratuito",
231 "subscription.type.month" : "mês", 246 "subscription.type.month" : "mês",
232 "subscription.type.year" : "ano", 247 "subscription.type.year" : "ano",
233 "subscriptionPopup.buttonCancel" : "Cancelar", 248 "subscriptionPopup.buttonCancel" : "Cancelar",
@@ -241,11 +256,11 @@
241 "tabs.item.enableNotification" : "Ativar notificações", 256 "tabs.item.enableNotification" : "Ativar notificações",
242 "tabs.item.enableService" : "Ativar serviço", 257 "tabs.item.enableService" : "Ativar serviço",
243 "tabs.item.reload" : "Recarregar", 258 "tabs.item.reload" : "Recarregar",
244 "validation.email" : "{field} is not valid", 259 "validation.email" : "{field} não é válido",
245 "validation.minLength" : "{field} should be at least {length} characters long", 260 "validation.minLength" : "{field} deveria ter pelo menos {comprimento} caracteres",
246 "validation.required" : "{field} is required", 261 "validation.required" : "{field} é obrigatório",
247 "validation.url" : "{field} is not a valid URL", 262 "validation.url" : "{field} não é uma hiperligação válida",
248 "welcome.loginButton" : "Iniciar sessão", 263 "welcome.loginButton" : "Iniciar sessão",
249 "welcome.signupButton" : "Criar uma conta gratuita", 264 "welcome.signupButton" : "Criar uma conta gratuita",
250 "welcome.slogan" : "Messaging that works for you" 265 "welcome.slogan" : "Sistema de mensagens feito para si"
251} 266}
diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json
index ecebc46ee..78030dc15 100644
--- a/src/i18n/locales/ru.json
+++ b/src/i18n/locales/ru.json
@@ -1,25 +1,28 @@
1{ 1{
2 "global.api.unhealthy" : "Ðевозможно подключитьÑÑ Ðº ÑервиÑам Franz", 2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "global.notConnectedToTheInternet" : "Ðет Интернет-ÑоединениÑ", 3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "import.headline" : "Импортировать ÑервиÑÑ‹ из Franz 4", 4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
5 "import.notSupportedHeadline" : "СервиÑÑ‹ ещё не поддерживаютÑÑ Ð² Franz 5", 5 "global.api.unhealthy" : "Ðевозможно подключитьÑÑ Ðº онлайн-ÑервиÑам Franz",
6 "import.skip.label" : "Я хочу добавить ÑÐµÑ€Ð²Ð¸Ñ Ð²Ñ€ÑƒÑ‡Ð½ÑƒÑŽ", 6 "global.notConnectedToTheInternet" : "Ð’Ñ‹ не подключены к Ñети Интернет",
7 "import.headline" : "Импортировать ваши ÑервиÑÑ‹ из Franz 4",
8 "import.notSupportedHeadline" : "СервиÑÑ‹ пока ещё не поддерживаютÑÑ Ð² Franz 5",
9 "import.skip.label" : "Я хочу добавить ÑервиÑÑ‹ вручную",
7 "import.submit.label" : "Импортировать ÑервиÑÑ‹", 10 "import.submit.label" : "Импортировать ÑервиÑÑ‹",
8 "infobar.buttonChangelog" : "Что новенького?", 11 "infobar.buttonChangelog" : "Что новенького?",
9 "infobar.buttonInstallUpdate" : "ПерезапуÑтить и обновить", 12 "infobar.buttonInstallUpdate" : "ПерезапуÑтить и уÑтановить обновлениÑ",
10 "infobar.buttonReloadServices" : "Перезагрузить ÑервиÑÑ‹", 13 "infobar.buttonReloadServices" : "Перезагрузить ÑервиÑÑ‹",
11 "infobar.requiredRequestsFailed" : "Ðевозможно загрузить ÑервиÑÑ‹ и информацию пользователÑ", 14 "infobar.requiredRequestsFailed" : "Ðевозможно загрузить ÑервиÑÑ‹ и информацию пользователÑ",
12 "infobar.servicesUpdated" : "Ваши ÑервиÑÑ‹ были обновлены.", 15 "infobar.servicesUpdated" : "Ваши ÑервиÑÑ‹ были обновлены.",
13 "infobar.updateAvailable" : "ДоÑтупно обновление Franz.", 16 "infobar.updateAvailable" : "ДоÑтупно обновление Franz.",
14 "invite.email.label" : "Email адреÑ", 17 "invite.email.label" : "ÐÐ´Ñ€ÐµÑ Ñлектронной почты",
15 "invite.headline.friends" : "ПриглаÑите 3-Ñ… друзей или коллег", 18 "invite.headline.friends" : "ПриглаÑите 3-Ñ… друзей или коллег",
16 "invite.name.label" : "ИмÑ", 19 "invite.name.label" : "ИмÑ",
17 "invite.skip.label" : "Я Ñделаю Ñто позже", 20 "invite.skip.label" : "Я Ñделаю Ñто позже",
18 "invite.submit.label" : "Ð’Ñ‹Ñлать приглашениÑ", 21 "invite.submit.label" : "Ð’Ñ‹Ñлать приглашениÑ",
19 "invite.successInfo" : "ÐŸÑ€Ð¸Ð³Ð»Ð°ÑˆÐµÐ½Ð¸Ñ ÑƒÑпешно отправлены", 22 "invite.successInfo" : "ÐŸÑ€Ð¸Ð³Ð»Ð°ÑˆÐµÐ½Ð¸Ñ ÑƒÑпешно отправлены",
20 "login.email.label" : "Email", 23 "login.email.label" : "ÐÐ´Ñ€ÐµÑ Ñлектронной почты",
21 "login.headline" : "Вход", 24 "login.headline" : "Вход",
22 "login.invalidCredentials" : "Ðеправильный email или пароль", 25 "login.invalidCredentials" : "Ðеправильный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты или пароль",
23 "login.link.password" : "ВоÑÑтановить пароль", 26 "login.link.password" : "ВоÑÑтановить пароль",
24 "login.link.signup" : "Создать беÑплатный аккаунт", 27 "login.link.signup" : "Создать беÑплатный аккаунт",
25 "login.password.label" : "Пароль", 28 "login.password.label" : "Пароль",
@@ -32,19 +35,19 @@
32 "menu.app.quit" : "Выйти", 35 "menu.app.quit" : "Выйти",
33 "menu.app.settings" : "ÐаÑтройки", 36 "menu.app.settings" : "ÐаÑтройки",
34 "menu.app.unhide" : "Показать", 37 "menu.app.unhide" : "Показать",
35 "menu.edit" : "Редактировать", 38 "menu.edit" : "Правка",
36 "menu.edit.copy" : "Копировать", 39 "menu.edit.copy" : "Копировать",
37 "menu.edit.cut" : "Вырезать", 40 "menu.edit.cut" : "Вырезать",
38 "menu.edit.delete" : "Удалить", 41 "menu.edit.delete" : "Удалить",
39 "menu.edit.emojiSymbols" : "Эмодзи и Ñимволы", 42 "menu.edit.emojiSymbols" : "Эмодзи и Ñимволы",
40 "menu.edit.paste" : "Ð’Ñтавить", 43 "menu.edit.paste" : "Ð’Ñтавить",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", 44 "menu.edit.pasteAndMatchStyle" : "Ð’Ñтавить Ñ Ñоблюдением ÑтилÑ",
42 "menu.edit.redo" : "Вернуть", 45 "menu.edit.redo" : "Вернуть",
43 "menu.edit.selectAll" : "Выделить вÑÑ‘", 46 "menu.edit.selectAll" : "Выделить вÑÑ‘",
44 "menu.edit.speech" : "Speech", 47 "menu.edit.speech" : "Речь",
45 "menu.edit.startDictation" : "Start Dictation", 48 "menu.edit.startDictation" : "Ðачать диктовать",
46 "menu.edit.startSpeaking" : "Start Speaking", 49 "menu.edit.startSpeaking" : "Ðачать говорить",
47 "menu.edit.stopSpeaking" : "Stop Speaking", 50 "menu.edit.stopSpeaking" : "Закончить говорить",
48 "menu.edit.undo" : "Отменить", 51 "menu.edit.undo" : "Отменить",
49 "menu.file" : "Файл", 52 "menu.file" : "Файл",
50 "menu.help" : "Справка", 53 "menu.help" : "Справка",
@@ -53,33 +56,34 @@
53 "menu.help.privacy" : "Политика конфиденциальноÑти", 56 "menu.help.privacy" : "Политика конфиденциальноÑти",
54 "menu.help.support" : "Поддержка", 57 "menu.help.support" : "Поддержка",
55 "menu.help.tos" : "УÑÐ»Ð¾Ð²Ð¸Ñ Ð¸ÑпользованиÑ", 58 "menu.help.tos" : "УÑÐ»Ð¾Ð²Ð¸Ñ Ð¸ÑпользованиÑ",
56 "menu.services" : "Services", 59 "menu.services" : "Службы",
57 "menu.services.addNewService" : "Добавить ÑервиÑ...", 60 "menu.services.addNewService" : "Добавить новый ÑервиÑ...",
58 "menu.view" : "Вид", 61 "menu.view" : "Вид",
59 "menu.view.enterFullScreen" : "Ðа веÑÑŒ Ñкран", 62 "menu.view.enterFullScreen" : "Ðа веÑÑŒ Ñкран",
60 "menu.view.exitFullScreen" : "В окне", 63 "menu.view.exitFullScreen" : "В окне",
61 "menu.view.reloadFranz" : "Перезагрузить Franz", 64 "menu.view.reloadFranz" : "Перезагрузить Franz",
62 "menu.view.reloadService" : "ПерезапуÑтить ÑервиÑ", 65 "menu.view.reloadService" : "ПерезапуÑтить ÑервиÑ",
63 "menu.view.resetZoom" : "ФактичеÑкий размер", 66 "menu.view.resetZoom" : "ФактичеÑкий размер",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools", 67 "menu.view.toggleDevTools" : "Показать инÑтрументы разработчика",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen", 68 "menu.view.toggleFullScreen" : "ПереключитьÑÑ Ð½Ð° полный Ñкран",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", 69 "menu.view.toggleServiceDevTools" : "Показать инÑтрументы разработчика ÑервиÑа",
67 "menu.view.zoomIn" : "Увеличить маÑштаб", 70 "menu.view.zoomIn" : "Увеличить маÑштаб",
68 "menu.view.zoomOut" : "Уменьшить маÑштаб", 71 "menu.view.zoomOut" : "Уменьшить маÑштаб",
69 "menu.window" : "Окно", 72 "menu.window" : "Окно",
70 "menu.window.close" : "Закрыть", 73 "menu.window.close" : "Закрыть",
71 "menu.window.minimize" : "Свернуть", 74 "menu.window.minimize" : "Свернуть",
72 "password.email.label" : "Email адреÑ", 75 "password.email.label" : "ÐÐ´Ñ€ÐµÑ Ñлектронной почты",
73 "password.headline" : "СброÑить пароль", 76 "password.headline" : "СброÑить пароль",
74 "password.link.login" : "Вход", 77 "password.link.login" : "Вход",
75 "password.link.signup" : "Создать учётную запиÑÑŒ пользователÑ", 78 "password.link.signup" : "Создать беÑплатную учётную запиÑÑŒ пользователÑ",
76 "password.noUser" : "Ðе найдено Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ Ñ‚Ð°ÐºÐ¸Ð¼ email", 79 "password.noUser" : "Ðе найдено Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ Ñ‚Ð°ÐºÐ¸Ð¼ адреÑом Ñлектронной почты",
77 "password.submit.label" : "ПринÑÑ‚ÑŒ", 80 "password.submit.label" : "ПринÑÑ‚ÑŒ",
78 "password.successInfo" : "Проверьте Вашу Ñлектронную почту", 81 "password.successInfo" : "Проверьте вашу Ñлектронную почту",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "Поддержать Franz", 83 "pricing.headline" : "Поддержать Franz",
80 "pricing.link.skipPayment" : "Я не хочу поддерживать разработку Franz.", 84 "pricing.link.skipPayment" : "Я не хочу поддерживать разработку Franz.",
81 "pricing.submit.label" : "Я хочу поддержать разработку Franz", 85 "pricing.submit.label" : "Я хочу поддержать разработку Franz",
82 "pricing.support.label" : "Выберите план поддержки", 86 "pricing.support.label" : "Выберите ваш план поддержки",
83 "service.crashHandler.action" : "Перезагрузить {name}", 87 "service.crashHandler.action" : "Перезагрузить {name}",
84 "service.crashHandler.autoReload" : "ПытаюÑÑŒ автоматичеÑки воÑÑтановить {name} в течение {seconds} Ñекунд", 88 "service.crashHandler.autoReload" : "ПытаюÑÑŒ автоматичеÑки воÑÑтановить {name} в течение {seconds} Ñекунд",
85 "service.crashHandler.headline" : "О, нет!", 89 "service.crashHandler.headline" : "О, нет!",
@@ -104,8 +108,8 @@
104 "settings.account.headlineSubscription" : "Ваша подпиÑка", 108 "settings.account.headlineSubscription" : "Ваша подпиÑка",
105 "settings.account.headlineUpgrade" : "Улучшить аккаунт и поддержать Franz", 109 "settings.account.headlineUpgrade" : "Улучшить аккаунт и поддержать Franz",
106 "settings.account.invoiceDownload" : "Скачать", 110 "settings.account.invoiceDownload" : "Скачать",
107 "settings.account.manageSubscription.label" : "Управление подпиÑкой", 111 "settings.account.manageSubscription.label" : "Управление вашей подпиÑкой",
108 "settings.account.successInfo" : "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñохранены", 112 "settings.account.successInfo" : "Ðаши Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±Ñ‹Ð»Ð¸ Ñохранены",
109 "settings.account.tryReloadUserInfoRequest" : "Попробовать Ñнова", 113 "settings.account.tryReloadUserInfoRequest" : "Попробовать Ñнова",
110 "settings.account.userInfoRequestFailed" : "Ðевозможно загрузить информацию пользователÑ", 114 "settings.account.userInfoRequestFailed" : "Ðевозможно загрузить информацию пользователÑ",
111 "settings.app.buttonClearAllCache" : "ОчиÑтить кÑш", 115 "settings.app.buttonClearAllCache" : "ОчиÑтить кÑш",
@@ -116,16 +120,18 @@
116 "settings.app.form.autoLaunchInBackground" : "Открывать в фоне", 120 "settings.app.form.autoLaunchInBackground" : "Открывать в фоне",
117 "settings.app.form.autoLaunchOnStart" : "ЗапуÑкать Franz при Ñтарте", 121 "settings.app.form.autoLaunchOnStart" : "ЗапуÑкать Franz при Ñтарте",
118 "settings.app.form.beta" : "Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð±ÐµÑ‚Ð° верÑии", 122 "settings.app.form.beta" : "Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð±ÐµÑ‚Ð° верÑии",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", 123 "settings.app.form.darkMode" : "Join the Dark Side",
120 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", 124 "settings.app.form.enableGPUAcceleration" : "Включить уÑкорение GPU",
125 "settings.app.form.enableMenuBar" : "Показывать Franz на панели меню",
121 "settings.app.form.enableSpellchecking" : "Включить проверку правопиÑаниÑ", 126 "settings.app.form.enableSpellchecking" : "Включить проверку правопиÑаниÑ",
122 "settings.app.form.enableSystemTray" : "Показывать Franz в ÑиÑтемном трее", 127 "settings.app.form.enableSystemTray" : "Показывать Franz в ÑиÑтемном трее",
123 "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock", 128 "settings.app.form.hideDockIcon" : "СпрÑтать иконку Franz на панели",
124 "settings.app.form.language" : "Язык", 129 "settings.app.form.language" : "Язык",
125 "settings.app.form.minimizeToSystemTray" : "Сворачивать Franz в ÑиÑтемный трей", 130 "settings.app.form.minimizeToSystemTray" : "Сворачивать Franz в ÑиÑтемный трей",
126 "settings.app.form.runInBackground" : "ОÑтавлÑÑ‚ÑŒ Franz в фоне при закрытии окна", 131 "settings.app.form.runInBackground" : "ОÑтавлÑÑ‚ÑŒ Franz в фоне при закрытии окна",
127 "settings.app.form.showDisabledServices" : "Показывать вкладки отключённых Ñлужб", 132 "settings.app.form.showDisabledServices" : "Показывать вкладки отключённых Ñлужб",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "Показывать значок непрочитанного ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ отключённых уведомлениÑÑ…", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "Показывать значок непрочитанного ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ отключённых уведомлениÑÑ…",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "ÐаÑтройки", 135 "settings.app.headline" : "ÐаÑтройки",
130 "settings.app.headlineAdvanced" : "Дополнительно", 136 "settings.app.headlineAdvanced" : "Дополнительно",
131 "settings.app.headlineAppearance" : "Внешний вид", 137 "settings.app.headlineAppearance" : "Внешний вид",
@@ -148,43 +154,50 @@
148 "settings.recipes.all" : "Ð’Ñе ÑервиÑÑ‹", 154 "settings.recipes.all" : "Ð’Ñе ÑервиÑÑ‹",
149 "settings.recipes.dev" : "Разработка", 155 "settings.recipes.dev" : "Разработка",
150 "settings.recipes.headline" : "ДоÑтупные ÑервиÑÑ‹", 156 "settings.recipes.headline" : "ДоÑтупные ÑервиÑÑ‹",
151 "settings.recipes.missingService" : "Ðе можете найти ÑлуÐбу?", 157 "settings.recipes.missingService" : "Ðе можете найти ÑеÑвиÑ?",
152 "settings.recipes.mostPopular" : "ПопулÑрные", 158 "settings.recipes.mostPopular" : "Самые популÑрные",
153 "settings.recipes.nothingFound" : "Ðичего не найдено по вашему запроÑу.", 159 "settings.recipes.nothingFound" : "Извините, но ничего не найдено по вашему поиÑковому запроÑу.",
154 "settings.recipes.servicesSuccessfulAddedInfo" : "Ð¡ÐµÑ€Ð²Ð¸Ñ ÑƒÑпешно добавлен", 160 "settings.recipes.servicesSuccessfulAddedInfo" : "Ð¡ÐµÑ€Ð²Ð¸Ñ ÑƒÑпешно добавлен",
155 "settings.searchService" : "Ðайти ÑервиÑ", 161 "settings.searchService" : "Ðайти ÑервиÑ",
156 "settings.service.error.goBack" : "ВернутьÑÑ Ðº ÑервиÑам", 162 "settings.service.error.goBack" : "ВернутьÑÑ Ðº ÑервиÑам",
157 "settings.service.error.headline" : "Ошибка", 163 "settings.service.error.headline" : "Ошибка",
158 "settings.service.error.message" : "Ðевозможно загрузить рецепт ÑервиÑа.", 164 "settings.service.error.message" : "Ðевозможно загрузить \"рецепт\" ÑервиÑа.",
159 "settings.service.form.addServiceHeadline" : "Добавление {name}", 165 "settings.service.form.addServiceHeadline" : "Добавление {name}",
160 "settings.service.form.availableServices" : "ДоÑтупные ÑервиÑÑ‹", 166 "settings.service.form.availableServices" : "ДоÑтупные ÑервиÑÑ‹",
161 "settings.service.form.customUrl" : "ÐдÑÐµÑ Ñервера", 167 "settings.service.form.customUrl" : "ПользовательÑкий Ñервер",
162 "settings.service.form.customUrlPremiumInfo" : "Ð”Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑервиÑа на Ñвоем хоÑтинге необходим аккаунт Franz Premium.", 168 "settings.service.form.customUrlPremiumInfo" : "Ð”Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑервиÑа на Ñвоем хоÑтинге необходим премиум аккаунт Franz.",
163 "settings.service.form.customUrlUpgradeAccount" : "Улучшить аккаунт", 169 "settings.service.form.customUrlUpgradeAccount" : "Улучшить ваш аккаунт",
164 "settings.service.form.customUrlValidationError" : "Ðевозможно проверить Ñервер {name}.", 170 "settings.service.form.customUrlValidationError" : "Ðевозможно проверить Ñервер {name}.",
165 "settings.service.form.deleteButton" : "Удалить ÑервиÑ", 171 "settings.service.form.deleteButton" : "Удалить ÑервиÑ",
166 "settings.service.form.editServiceHeadline" : "Редактирование {name}", 172 "settings.service.form.editServiceHeadline" : "Редактирование {name}",
167 "settings.service.form.enableAudio" : "Включить звук", 173 "settings.service.form.enableAudio" : "Включить звук",
168 "settings.service.form.enableBadge" : "Показывать иконку непрочитанных Ñообщений", 174 "settings.service.form.enableBadge" : "Показывать иконку непрочитанных Ñообщений",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "Включить уведомлениÑ", 176 "settings.service.form.enableNotification" : "Включить уведомлениÑ",
170 "settings.service.form.enableService" : "Включить ÑервиÑ", 177 "settings.service.form.enableService" : "Включить ÑервиÑ",
171 "settings.service.form.headlineBadges" : "Значки непрочитанных Ñообщений", 178 "settings.service.form.headlineBadges" : "Значки непрочитанных Ñообщений",
172 "settings.service.form.headlineGeneral" : "Общие", 179 "settings.service.form.headlineGeneral" : "Общие",
173 "settings.service.form.headlineNotifications" : "УведомлениÑ", 180 "settings.service.form.headlineNotifications" : "УведомлениÑ",
174 "settings.service.form.icon" : "ÐеÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð°Ñ Ð¸ÐºÐ¾Ð½ÐºÐ°", 181 "settings.service.form.icon" : "ПользовательÑÐºÐ°Ñ Ð¸ÐºÐ¾Ð½ÐºÐ°",
175 "settings.service.form.iconDelete" : "Удалить", 182 "settings.service.form.iconDelete" : "Удалить",
176 "settings.service.form.iconUpload" : "Перетащите картинку или кликните здеÑÑŒ", 183 "settings.service.form.iconUpload" : "Перетащите ваше изображение или кликните здеÑÑŒ",
177 "settings.service.form.indirectMessageInfo" : "Ð’Ñ‹ будете получать ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð²Ñех Ñообщений, не только Ð´Ð»Ñ @username, @channel, @here, ...", 184 "settings.service.form.indirectMessageInfo" : "Ð’Ñ‹ будете получать ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±Ð¾ вÑех новых Ñообщений на канале, не только Ð´Ð»Ñ @username, @channel, @here, ...",
178 "settings.service.form.indirectMessages" : "Показывать значок уведомлений Ð´Ð»Ñ Ð²Ñех новых Ñообщений", 185 "settings.service.form.indirectMessages" : "Показывать значок уведомлений Ð´Ð»Ñ Ð²Ñех новых Ñообщений",
179 "settings.service.form.isMutedInfo" : "Когда выключено, вÑе звуковые ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ отключены", 186 "settings.service.form.isMutedInfo" : "Когда выключено, вÑе звуковые ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ отключены",
180 "settings.service.form.name" : "Ðазвание", 187 "settings.service.form.name" : "Ðазвание",
181 "settings.service.form.saveButton" : "Сохранить", 188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
194 "settings.service.form.saveButton" : "Сохранить ÑервиÑ",
182 "settings.service.form.tabHosted" : "Размещено", 195 "settings.service.form.tabHosted" : "Размещено",
183 "settings.service.form.tabOnPremise" : "Свой хоÑтинг â­ï¸", 196 "settings.service.form.tabOnPremise" : "Свой хоÑтинг â­ï¸",
184 "settings.service.form.team" : "Команда", 197 "settings.service.form.team" : "Команда",
185 "settings.service.form.useHostedService" : "ИÑпользовать ÑобÑтвенный ÑÐµÑ€Ð²Ð¸Ñ {name}", 198 "settings.service.form.useHostedService" : "ИÑпользовать ÑобÑтвенный ÑÐµÑ€Ð²Ð¸Ñ {name}",
186 "settings.service.form.yourServices" : "Ваши ÑервиÑÑ‹", 199 "settings.service.form.yourServices" : "Ваши ÑервиÑÑ‹",
187 "settings.services.deletedInfo" : "Ð¡ÐµÑ€Ð²Ð¸Ñ ÑƒÐ´Ð°Ð»ÐµÐ½", 200 "settings.services.deletedInfo" : "Ð¡ÐµÑ€Ð²Ð¸Ñ Ð±Ñ‹Ð» удален",
188 "settings.services.discoverServices" : "Ðайти ÑервиÑÑ‹", 201 "settings.services.discoverServices" : "Ðайти ÑервиÑÑ‹",
189 "settings.services.headline" : "Ваши ÑервиÑÑ‹", 202 "settings.services.headline" : "Ваши ÑервиÑÑ‹",
190 "settings.services.noServicesAdded" : "Ð’Ñ‹ пока не добавили никаких ÑервиÑов.", 203 "settings.services.noServicesAdded" : "Ð’Ñ‹ пока не добавили никаких ÑервиÑов.",
@@ -197,7 +210,7 @@
197 "settings.user.form.accountType.label" : "Тип аккаунта", 210 "settings.user.form.accountType.label" : "Тип аккаунта",
198 "settings.user.form.accountType.non-profit" : "ÐекоммерчеÑкий", 211 "settings.user.form.accountType.non-profit" : "ÐекоммерчеÑкий",
199 "settings.user.form.currentPassword" : "Текущий пароль", 212 "settings.user.form.currentPassword" : "Текущий пароль",
200 "settings.user.form.email" : "Email", 213 "settings.user.form.email" : "ÐÐ´Ñ€ÐµÑ Ñлектронной почты",
201 "settings.user.form.firstname" : "ИмÑ", 214 "settings.user.form.firstname" : "ИмÑ",
202 "settings.user.form.lastname" : "ФамилиÑ", 215 "settings.user.form.lastname" : "ФамилиÑ",
203 "settings.user.form.newPassword" : "Ðовый пароль", 216 "settings.user.form.newPassword" : "Ðовый пароль",
@@ -206,8 +219,8 @@
206 "sidebar.settings" : "ÐаÑтройки", 219 "sidebar.settings" : "ÐаÑтройки",
207 "sidebar.unmuteApp" : "Включить ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¸ звук", 220 "sidebar.unmuteApp" : "Включить ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¸ звук",
208 "signup.company.label" : "ОрганизациÑ", 221 "signup.company.label" : "ОрганизациÑ",
209 "signup.email.label" : "Email адреÑ", 222 "signup.email.label" : "ÐÐ´Ñ€ÐµÑ Ñлектронной почты",
210 "signup.emailDuplicate" : "Пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ email уже ÑущеÑтвует", 223 "signup.emailDuplicate" : "Пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ адреÑом Ñлектронной почты уже ÑущеÑтвует",
211 "signup.firstname.label" : "ИмÑ", 224 "signup.firstname.label" : "ИмÑ",
212 "signup.headline" : "РегиÑтрациÑ", 225 "signup.headline" : "РегиÑтрациÑ",
213 "signup.lastname.label" : "ФамилиÑ", 226 "signup.lastname.label" : "ФамилиÑ",
@@ -220,11 +233,13 @@
220 "subscription.euTaxInfo" : "Резидентам ЕвроСоюза: могут применÑÑ‚ÑŒÑÑ Ð¼ÐµÑтные налоги", 233 "subscription.euTaxInfo" : "Резидентам ЕвроСоюза: могут применÑÑ‚ÑŒÑÑ Ð¼ÐµÑтные налоги",
221 "subscription.features.ads" : "Без рекламы, навÑегда!", 234 "subscription.features.ads" : "Без рекламы, навÑегда!",
222 "subscription.features.comingSoon" : "Ñкоро", 235 "subscription.features.comingSoon" : "Ñкоро",
223 "subscription.features.customServices" : "ÐаÑтраиваемые ÑервиÑÑ‹ Ð´Ð»Ñ Ð²Ð°Ñ Ð¸ вашей команды", 236 "subscription.features.encryptedSync" : "Зашифрованные ÑеÑÑии Ñинхронизации",
224 "subscription.features.encryptedSync" : "Шифрование ÑеÑÑий Ñинхронизации", 237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "Добавление облачных Ñлужб или Ñлужб на Ñвоём хоÑтинге типа HipChat", 238 "subscription.features.onpremise" : "Добавление облачных Ñлужб или Ñлужб на Ñвоём хоÑтинге типа HipChat",
226 "subscription.features.vpn" : "Поддержку прокÑи и VPN", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
227 "subscription.includedFeatures" : "Платный аккаунт Franz Premium включает", 240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
242 "subscription.includedFeatures" : "Платный премиум аккаунт Franz включает",
228 "subscription.paymentSessionError" : "Ðевозможно загрузить форму оплаты", 243 "subscription.paymentSessionError" : "Ðевозможно загрузить форму оплаты",
229 "subscription.submit.label" : "Я хочу поддержать разработку Franz", 244 "subscription.submit.label" : "Я хочу поддержать разработку Franz",
230 "subscription.type.free" : "беÑплатно", 245 "subscription.type.free" : "беÑплатно",
@@ -241,11 +256,11 @@
241 "tabs.item.enableNotification" : "Включить уведомлениÑ", 256 "tabs.item.enableNotification" : "Включить уведомлениÑ",
242 "tabs.item.enableService" : "Включить Ñлужбу", 257 "tabs.item.enableService" : "Включить Ñлужбу",
243 "tabs.item.reload" : "Перезагрузить", 258 "tabs.item.reload" : "Перезагрузить",
244 "validation.email" : "{field} is not valid", 259 "validation.email" : "{field} недейÑтвительно",
245 "validation.minLength" : "{field} should be at least {length} characters long", 260 "validation.minLength" : "{field} должно быть не менее {length} Ñимволов",
246 "validation.required" : "{field} is required", 261 "validation.required" : "{field} обÑзательно",
247 "validation.url" : "{field} is not a valid URL", 262 "validation.url" : "{field} ÑвлÑетÑÑ Ð½ÐµÐ´ÐµÐ¹Ñтвительной ÑÑылкой",
248 "welcome.loginButton" : "Вход", 263 "welcome.loginButton" : "Вход",
249 "welcome.signupButton" : "Создать аккаунт", 264 "welcome.signupButton" : "Создать беÑплатный аккаунт",
250 "welcome.slogan" : "Общение, которое проÑто работает" 265 "welcome.slogan" : "Общение, которое работает Ð´Ð»Ñ Ð²Ð°Ñ"
251} 266}
diff --git a/src/i18n/locales/sk.json b/src/i18n/locales/sk.json
index c43e998a4..70e3e7f2d 100644
--- a/src/i18n/locales/sk.json
+++ b/src/i18n/locales/sk.json
@@ -1,233 +1,248 @@
1{ 1{
2 "global.api.unhealthy" : "Franz sa nemôže pripojit k online službám", 2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "global.notConnectedToTheInternet" : "Nie ste pripojený k internetu", 3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "import.headline" : "Importovať služby z Franz 4", 4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
5 "global.api.unhealthy" : "Nedá sa pripojiť k online službám Franz",
6 "global.notConnectedToTheInternet" : "Nie ste pripojení k internetu.",
7 "import.headline" : "Importovať vaše služby z Franz 4",
5 "import.notSupportedHeadline" : "Služby zatiaľ nie sú podporované vo verzii Franz 5", 8 "import.notSupportedHeadline" : "Služby zatiaľ nie sú podporované vo verzii Franz 5",
6 "import.skip.label" : "Chcem pridaÅ¥ službu ruÄne", 9 "import.skip.label" : "Chcem pridaÅ¥ služby ruÄne",
7 "import.submit.label" : "Importovať služby", 10 "import.submit.label" : "Importovať služby",
8 "infobar.buttonChangelog" : "Čo je nové:", 11 "infobar.buttonChangelog" : "Čo je nového?",
9 "infobar.buttonInstallUpdate" : "Reštartovať a inštalovať aktualizáciu", 12 "infobar.buttonInstallUpdate" : "Reštartovať a nainštalovať aktualizáciu",
10 "infobar.buttonReloadServices" : "Obnoviť služby", 13 "infobar.buttonReloadServices" : "Obnoviť služby",
11 "infobar.requiredRequestsFailed" : "Nie je možné naÄítaÅ¥ služby a informácie o užívateľovi", 14 "infobar.requiredRequestsFailed" : "Nie je možné naÄítaÅ¥ služby a informácie o používateľovi",
12 "infobar.servicesUpdated" : "Vaše služby boli aktualizované.", 15 "infobar.servicesUpdated" : "Vaše služby boli aktualizované.",
13 "infobar.updateAvailable" : "Nová aktualizácia Franz je k dispozícii.", 16 "infobar.updateAvailable" : "Je k dispozícii nová aktualizácia Franz.",
14 "invite.email.label" : "E-mailová adresa", 17 "invite.email.label" : "E-mailová adresa",
15 "invite.headline.friends" : "Pozvite 3 priateľov alebo kolegov", 18 "invite.headline.friends" : "Pozvite troch vašich priateľov alebo kolegov",
16 "invite.name.label" : "Meno", 19 "invite.name.label" : "Meno",
17 "invite.skip.label" : "Spravím to neskôr", 20 "invite.skip.label" : "Chcem to urobiť neskôr",
18 "invite.submit.label" : "Poslať pozvánky", 21 "invite.submit.label" : "Poslať pozvánky",
19 "invite.successInfo" : "Pozvánky boli úspešne odoslané", 22 "invite.successInfo" : "Pozvánky boli úspešne odoslané",
20 "login.email.label" : "Emailová adresa", 23 "login.email.label" : "E-mailová adresa",
21 "login.headline" : "Prihlásiť sa", 24 "login.headline" : "Prihlásiť sa",
22 "login.invalidCredentials" : "E-mail alebo heslo nesúhlasí", 25 "login.invalidCredentials" : "E-mail alebo heslo nesúhlasia",
23 "login.link.password" : "Obnoviť heslo", 26 "login.link.password" : "Obnoviť heslo",
24 "login.link.signup" : "VytvoriÅ¥ užívateľský úÄet zdarma", 27 "login.link.signup" : "VytvoriÅ¥ používateľský úÄet zdarma",
25 "login.password.label" : "Heslo", 28 "login.password.label" : "Heslo",
26 "login.serverLogout" : "Relácia vypršala, prihláste sa prosím znova.", 29 "login.serverLogout" : "Vaša relácia vypršala, prihláste sa prosím znovu.",
27 "login.submit.label" : "Prihlásiť sa", 30 "login.submit.label" : "Prihlásiť sa",
28 "login.tokenExpired" : "Relácia vypršala, prosím prihláste sa znova.", 31 "login.tokenExpired" : "Vaša relácia vypršala, prihláste sa prosím znovu.",
29 "menu.app.about" : "About Franz", 32 "menu.app.about" : "O aplikácii",
30 "menu.app.hide" : "Hide", 33 "menu.app.hide" : "Skryť",
31 "menu.app.hideOthers" : "Hide Others", 34 "menu.app.hideOthers" : "Skryť ostatné",
32 "menu.app.quit" : "Quit", 35 "menu.app.quit" : "UkonÄiÅ¥",
33 "menu.app.settings" : "Nastavenia", 36 "menu.app.settings" : "Nastavenia",
34 "menu.app.unhide" : "Unhide", 37 "menu.app.unhide" : "Odkryť",
35 "menu.edit" : "Upraviť", 38 "menu.edit" : "Upraviť",
36 "menu.edit.copy" : "Copy", 39 "menu.edit.copy" : "Kopírovať",
37 "menu.edit.cut" : "Cut", 40 "menu.edit.cut" : "Vystrihnúť",
38 "menu.edit.delete" : "Zmazať", 41 "menu.edit.delete" : "Zmazať",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols", 42 "menu.edit.emojiSymbols" : "Emoji a symboly",
40 "menu.edit.paste" : "Paste", 43 "menu.edit.paste" : "Vložiť",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", 44 "menu.edit.pasteAndMatchStyle" : "Vložiť s prevzatím jestvujúceho štýlu",
42 "menu.edit.redo" : "Redo", 45 "menu.edit.redo" : "Znovu",
43 "menu.edit.selectAll" : "Select All", 46 "menu.edit.selectAll" : "Vybrať všetko",
44 "menu.edit.speech" : "Speech", 47 "menu.edit.speech" : "Rozprávanie",
45 "menu.edit.startDictation" : "Start Dictation", 48 "menu.edit.startDictation" : "ZaÄaÅ¥ diktovanie",
46 "menu.edit.startSpeaking" : "Start Speaking", 49 "menu.edit.startSpeaking" : "ZaÄaÅ¥ rozprávanie",
47 "menu.edit.stopSpeaking" : "Stop Speaking", 50 "menu.edit.stopSpeaking" : "Zastaviť rozprávanie",
48 "menu.edit.undo" : "Undo", 51 "menu.edit.undo" : "Späť",
49 "menu.file" : "File", 52 "menu.file" : "Súbor",
50 "menu.help" : "Help", 53 "menu.help" : "Pomocník",
51 "menu.help.changelog" : "Changelog", 54 "menu.help.changelog" : "Záznam zmien",
52 "menu.help.learnMore" : "Learn More", 55 "menu.help.learnMore" : "Zistiť viac",
53 "menu.help.privacy" : "Vyhlásenie o ochrane súkromia", 56 "menu.help.privacy" : "Vyhlásenie o ochrane súkromia",
54 "menu.help.support" : "Support", 57 "menu.help.support" : "Podpora",
55 "menu.help.tos" : "Terms of Service", 58 "menu.help.tos" : "Podmienky použitia",
56 "menu.services" : "Services", 59 "menu.services" : "Služby",
57 "menu.services.addNewService" : "Add New Service...", 60 "menu.services.addNewService" : "Pridať novú službu...",
58 "menu.view" : "View", 61 "menu.view" : "Zobraziť",
59 "menu.view.enterFullScreen" : "Enter Full Screen", 62 "menu.view.enterFullScreen" : "Na celú obrazovku",
60 "menu.view.exitFullScreen" : "Exit Full Screen", 63 "menu.view.exitFullScreen" : "UkonÄiÅ¥ režim na celú obrazovku",
61 "menu.view.reloadFranz" : "Reload Franz", 64 "menu.view.reloadFranz" : "Obnoviť Franz",
62 "menu.view.reloadService" : "Reload Service", 65 "menu.view.reloadService" : "Obnoviť službu",
63 "menu.view.resetZoom" : "Actual Size", 66 "menu.view.resetZoom" : "Pôvodná veľkosť",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools", 67 "menu.view.toggleDevTools" : "Prepnúť vývojárske nástroje",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen", 68 "menu.view.toggleFullScreen" : "Prepnúť na celú obrazovku",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", 69 "menu.view.toggleServiceDevTools" : "Prepnúť vývojárske nástroje služby",
67 "menu.view.zoomIn" : "Zoom In", 70 "menu.view.zoomIn" : "Priblížiť",
68 "menu.view.zoomOut" : "Zoom Out", 71 "menu.view.zoomOut" : "Oddialiť",
69 "menu.window" : "Window", 72 "menu.window" : "Okno",
70 "menu.window.close" : "Close", 73 "menu.window.close" : "Zatvoriť",
71 "menu.window.minimize" : "Minimize", 74 "menu.window.minimize" : "Minimalizovať",
72 "password.email.label" : "Emailová adresa", 75 "password.email.label" : "E-mailová adresa",
73 "password.headline" : "Vynulovať heslo", 76 "password.headline" : "Obnoviť heslo",
74 "password.link.login" : "Prihlásenie do vaÅ¡eho úÄtu", 77 "password.link.login" : "PrihlásiÅ¥ sa do vášho úÄtu",
75 "password.link.signup" : "VytvoriÅ¥ užívateľský úÄet zdarma", 78 "password.link.signup" : "VytvoriÅ¥ používateľský úÄet zdarma",
76 "password.noUser" : "Užívateľ s touto emailovou adresou nebol nájdený", 79 "password.noUser" : "Používateľ s touto e-mailovou adresou nebol nájdený",
77 "password.submit.label" : "Odoslať", 80 "password.submit.label" : "Odoslať",
78 "password.successInfo" : "Prosím, zkontrolujte svoj e-mail", 81 "password.successInfo" : "Skontrolujte prosím váš e-mail",
79 "pricing.headline" : "Podporte Franz", 82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
83 "pricing.headline" : "Podporiť Franz",
80 "pricing.link.skipPayment" : "Nechcem podporiť vývoj aplikácie Franz.", 84 "pricing.link.skipPayment" : "Nechcem podporiť vývoj aplikácie Franz.",
81 "pricing.submit.label" : "Chcem podporiť vývoj aplikácie Franz", 85 "pricing.submit.label" : "Chcem podporiť vývoj aplikácie Franz",
82 "pricing.support.label" : "Vyberte váš plán podpory", 86 "pricing.support.label" : "Vyberte si váš plán podpory",
83 "service.crashHandler.action" : "NaÄítaÅ¥ znovu {name}", 87 "service.crashHandler.action" : "Znovu naÄítaÅ¥ {name}",
84 "service.crashHandler.autoReload" : "Pokus o automatické obnovenie {name} za {seconds} sekúnd", 88 "service.crashHandler.autoReload" : "Najbližší pokus o automatické obnovenie {name} o {seconds} sekúnd",
85 "service.crashHandler.headline" : "Ale nie!", 89 "service.crashHandler.headline" : "Ale nie!",
86 "service.crashHandler.text" : "{name} spôsobil chybu.", 90 "service.crashHandler.text" : "{name} spôsobil chybu.",
87 "service.disabledHandler.action" : "Zapnúť {name}", 91 "service.disabledHandler.action" : "Zapnúť {name}",
88 "service.disabledHandler.headline" : "{name} je vypnutý", 92 "service.disabledHandler.headline" : "{name} je vypnuté",
89 "services.getStarted" : "ZaÄíname", 93 "services.getStarted" : "ZaÄíname",
90 "services.welcome" : "Víta vás Franz", 94 "services.welcome" : "Vítajte v aplikácii Franz",
91 "settings.account.account.editButton" : "UpraviÅ¥ úÄet", 95 "settings.account.account.editButton" : "UpraviÅ¥ úÄet",
92 "settings.account.accountType.basic" : "Základný úÄet", 96 "settings.account.accountType.basic" : "Základný úÄet",
93 "settings.account.accountType.premium" : "Prémiový úÄet podporovateľa", 97 "settings.account.accountType.premium" : "Prémiový úÄet podporovateľa",
94 "settings.account.buttonSave" : "Aktualizovať profil", 98 "settings.account.buttonSave" : "Aktualizovať profil",
95 "settings.account.deleteAccount" : "OdstrániÅ¥ úÄet", 99 "settings.account.deleteAccount" : "OdstrániÅ¥ úÄet",
96 "settings.account.deleteEmailSent" : "Na váš mail bol odoslaný email s odkazom pre potvrdenie zmazanie úÄtu. Váš úÄet a dáta potom nepôjde obnoviÅ¥!", 100 "settings.account.deleteEmailSent" : "Bol vám odoslaný e-mail s odkazom pre potvrdenie odstránenia vášho úÄtu. Váš úÄet a údaje sa nebudú daÅ¥ obnoviÅ¥!",
97 "settings.account.deleteInfo" : "Ak už nepotrebujete váš Franz úÄet, môžete tu váš úÄet, a vÅ¡etky dáta v ňom, zmazaÅ¥.", 101 "settings.account.deleteInfo" : "Ak už nepotrebujete váš Franz úÄet, tu ho môžete zmazaÅ¥ spolu so vÅ¡etkými prislúchajúcimi údajmi.",
98 "settings.account.headline" : "ÚÄet", 102 "settings.account.headline" : "ÚÄet",
99 "settings.account.headlineAccount" : "Informácie o úÄte", 103 "settings.account.headlineAccount" : "Informácie o úÄte",
100 "settings.account.headlineDangerZone" : "NebezpeÄná zóna", 104 "settings.account.headlineDangerZone" : "NebezpeÄná zóna",
101 "settings.account.headlineInvoices" : "Faktúry", 105 "settings.account.headlineInvoices" : "Faktúry",
102 "settings.account.headlinePassword" : "Zmeniť heslo", 106 "settings.account.headlinePassword" : "Zmeniť heslo",
103 "settings.account.headlineProfile" : "Aktualizovať profil", 107 "settings.account.headlineProfile" : "Aktualizovať profil",
104 "settings.account.headlineSubscription" : "Vaše predplatné", 108 "settings.account.headlineSubscription" : "Vaše odoberanie",
105 "settings.account.headlineUpgrade" : "Inovujte svoj úÄet a podporte Franz", 109 "settings.account.headlineUpgrade" : "Povýšte svoj úÄet a podporte Franz",
106 "settings.account.invoiceDownload" : "Stiahnuť", 110 "settings.account.invoiceDownload" : "Prevziať",
107 "settings.account.manageSubscription.label" : "Spravovať vaše predplatné", 111 "settings.account.manageSubscription.label" : "Spravovať vaše odoberanie",
108 "settings.account.successInfo" : "Vaše zmeny boli uložené", 112 "settings.account.successInfo" : "Vaše zmeny boli uložené",
109 "settings.account.tryReloadUserInfoRequest" : "Skúsiť znova", 113 "settings.account.tryReloadUserInfoRequest" : "Skúsiť znova",
110 "settings.account.userInfoRequestFailed" : "Nebolo možné získaÅ¥ informácie o užívateľovi", 114 "settings.account.userInfoRequestFailed" : "Nebolo možné naÄítaÅ¥ informácie o používateľovi",
111 "settings.app.buttonClearAllCache" : "VyÄistiÅ¥ vyrovnávaciu pamäť", 115 "settings.app.buttonClearAllCache" : "VyÄistiÅ¥ vyrovnávaciu pamäť",
112 "settings.app.buttonInstallUpdate" : "Reštart a inštalácia aktualizácií", 116 "settings.app.buttonInstallUpdate" : "Reštartovať a nainštalovať aktualizáciu",
113 "settings.app.buttonSearchForUpdate" : "Skontrolovať aktualizácie", 117 "settings.app.buttonSearchForUpdate" : "Skontrolovať aktualizácie",
114 "settings.app.cacheInfo" : "Franz momentálne používa {size} miesta na disku.", 118 "settings.app.cacheInfo" : "Vyrovnávacia pamäť Franz momentálne používa {size} miesta na disku.",
115 "settings.app.currentVersion" : "Aktuálna verzia:", 119 "settings.app.currentVersion" : "SúÄasná verzia:",
116 "settings.app.form.autoLaunchInBackground" : "Otvoriť na pozadí", 120 "settings.app.form.autoLaunchInBackground" : "Otvoriť na pozadí",
117 "settings.app.form.autoLaunchOnStart" : "Spustiť Franz pri štarte", 121 "settings.app.form.autoLaunchOnStart" : "Spustiť Franz pri štarte",
118 "settings.app.form.beta" : "Vrátane beta verzií", 122 "settings.app.form.beta" : "Vrátane beta verzií",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", 123 "settings.app.form.darkMode" : "Join the Dark Side",
120 "settings.app.form.enableMenuBar" : "Zobraz Franz v Menu bare", 124 "settings.app.form.enableGPUAcceleration" : "Zapnúť GPU zrýchlenie",
121 "settings.app.form.enableSpellchecking" : "Povoliť zvýraznenie preklepov", 125 "settings.app.form.enableMenuBar" : "Zobraziť Franz v ponuke menu",
126 "settings.app.form.enableSpellchecking" : "Zapnúť kontrolu pravopisu",
122 "settings.app.form.enableSystemTray" : "Zobrazovať Franz v systémovej lište", 127 "settings.app.form.enableSystemTray" : "Zobrazovať Franz v systémovej lište",
123 "settings.app.form.hideDockIcon" : "Schovaj ikonu Franz v doku", 128 "settings.app.form.hideDockIcon" : "Skryť ikonu Franz v doku",
124 "settings.app.form.language" : "Jazyk", 129 "settings.app.form.language" : "Jazyk",
125 "settings.app.form.minimizeToSystemTray" : "Minimalizovať Franz do systémovej lišty", 130 "settings.app.form.minimizeToSystemTray" : "Minimalizovať Franz do systémovej lišty",
126 "settings.app.form.runInBackground" : "Ponechať Franz spustený v pozadí pri zatvorení okna", 131 "settings.app.form.runInBackground" : "Po zatvorení okna ponechať Franz spustený na pozadí",
127 "settings.app.form.showDisabledServices" : "Zobraziť záložky vypnutých služieb", 132 "settings.app.form.showDisabledServices" : "Zobraziť záložky vypnutých služieb",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "ZobraziÅ¥ odznak pre nepreÄítané správy keÄ sú upozornenia vypnutá", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "ZobraziÅ¥ symbol pre nepreÄítané správy, keÄ sú vypnuté upozornenia",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "Nastavenia", 135 "settings.app.headline" : "Nastavenia",
130 "settings.app.headlineAdvanced" : "Rozšírené", 136 "settings.app.headlineAdvanced" : "PokroÄilé",
131 "settings.app.headlineAppearance" : "Vzhľad", 137 "settings.app.headlineAppearance" : "Vzhľad",
132 "settings.app.headlineGeneral" : "Všeobecné", 138 "settings.app.headlineGeneral" : "Všeobecné",
133 "settings.app.headlineLanguage" : "Jazyk", 139 "settings.app.headlineLanguage" : "Jazyk",
134 "settings.app.headlineUpdates" : "Aktualizácie", 140 "settings.app.headlineUpdates" : "Aktualizácie",
135 "settings.app.restartRequired" : "Zmeny vyžadujú restart", 141 "settings.app.restartRequired" : "Zmeny vyžadujú reštart",
136 "settings.app.subheadlineCache" : "Vyrovnávacia pamäť", 142 "settings.app.subheadlineCache" : "Vyrovnávacia pamäť",
137 "settings.app.translationHelp" : "Pomôžte nám preložiť Franz do svojho jazyka.", 143 "settings.app.translationHelp" : "Pomôžte nám preložiť Franz do svojho jazyka.",
138 "settings.app.updateStatusAvailable" : "Dostupná aktualizácia, sťahujem...", 144 "settings.app.updateStatusAvailable" : "Je dostupná aktualizácia, sťahuje sa...",
139 "settings.app.updateStatusSearching" : "Vyhľadávam aktualizácie", 145 "settings.app.updateStatusSearching" : "Vyhľadáva aktualizácie",
140 "settings.app.updateStatusUpToDate" : "Používate najnovšiu verziu Franz", 146 "settings.app.updateStatusUpToDate" : "Používate najnovšiu verziu Franz",
141 "settings.invite.headline" : "Pozvi priateľov", 147 "settings.invite.headline" : "Pozvať priateľov",
142 "settings.navigation.account" : "ÚÄet", 148 "settings.navigation.account" : "ÚÄet",
143 "settings.navigation.availableServices" : "Dostupné služby", 149 "settings.navigation.availableServices" : "Dostupné služby",
144 "settings.navigation.inviteFriends" : "Pozvi priateľov", 150 "settings.navigation.inviteFriends" : "Pozvať priateľov",
145 "settings.navigation.logout" : "Odhlásiť sa", 151 "settings.navigation.logout" : "Odhlásiť sa",
146 "settings.navigation.settings" : "Nastavenia", 152 "settings.navigation.settings" : "Nastavenia",
147 "settings.navigation.yourServices" : "Vaše služby", 153 "settings.navigation.yourServices" : "Vaše služby",
148 "settings.recipes.all" : "Všetky služby", 154 "settings.recipes.all" : "Všetky služby",
149 "settings.recipes.dev" : "Vývoj", 155 "settings.recipes.dev" : "Vývoj",
150 "settings.recipes.headline" : "Dostupné služby", 156 "settings.recipes.headline" : "Dostupné služby",
151 "settings.recipes.missingService" : "Chýbajúce služba?", 157 "settings.recipes.missingService" : "Chýba vám služba?",
152 "settings.recipes.mostPopular" : "Najpopulárnejšie", 158 "settings.recipes.mostPopular" : "Najpopulárnejšie",
153 "settings.recipes.nothingFound" : "Je nám ľúto, ale žiadna služba nezodpovedala vášmu hľadanému výrazu.", 159 "settings.recipes.nothingFound" : "Ľutujeme, ale žiadna služba nezodpovedá vami hľadanému výrazu.",
154 "settings.recipes.servicesSuccessfulAddedInfo" : "Služba úspešne pridaná", 160 "settings.recipes.servicesSuccessfulAddedInfo" : "Služba bola úspešne pridaná",
155 "settings.searchService" : "Vyhľadať službu", 161 "settings.searchService" : "Vyhľadať službu",
156 "settings.service.error.goBack" : "Späť na služby", 162 "settings.service.error.goBack" : "Späť na služby",
157 "settings.service.error.headline" : "Chyba", 163 "settings.service.error.headline" : "Chyba",
158 "settings.service.error.message" : "Nepodarilo sa naÄítaÅ¥ službu.", 164 "settings.service.error.message" : "Nepodarilo sa naÄítaÅ¥ službu.",
159 "settings.service.form.addServiceHeadline" : "Pridať {názov}", 165 "settings.service.form.addServiceHeadline" : "Pridať {name}",
160 "settings.service.form.availableServices" : "Dostupné služby", 166 "settings.service.form.availableServices" : "Dostupné služby",
161 "settings.service.form.customUrl" : "Vlastný server", 167 "settings.service.form.customUrl" : "Vlastný server",
162 "settings.service.form.customUrlPremiumInfo" : "Ak chcete pridaÅ¥ vlastné hostované služby, potrebujete úÄet Franz Premium Supporter.", 168 "settings.service.form.customUrlPremiumInfo" : "Ak chcete pridaÅ¥ vlastné hostované služby, potrebujete úÄet Franz Premium Supporter.",
163 "settings.service.form.customUrlUpgradeAccount" : "Inovujte váš úÄet", 169 "settings.service.form.customUrlUpgradeAccount" : "Povýšte váš úÄet",
164 "settings.service.form.customUrlValidationError" : "Nebolo možné overiť vlastný server: {name}.", 170 "settings.service.form.customUrlValidationError" : "Nebolo možné overiť vlastný server: {name}.",
165 "settings.service.form.deleteButton" : "Odstrániť službu", 171 "settings.service.form.deleteButton" : "Odstrániť službu",
166 "settings.service.form.editServiceHeadline" : "Upraviť {meno}", 172 "settings.service.form.editServiceHeadline" : "Upraviť {name}",
167 "settings.service.form.enableAudio" : "Zapnúť zvuk", 173 "settings.service.form.enableAudio" : "Zapnúť zvuk",
168 "settings.service.form.enableBadge" : "UkázaÅ¥ odznaky nepreÄítaných správ", 174 "settings.service.form.enableBadge" : "ZobraziÅ¥ symboly nepreÄítaných správ",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "Povoliť oznámenia", 176 "settings.service.form.enableNotification" : "Povoliť oznámenia",
170 "settings.service.form.enableService" : "Povoliť službu", 177 "settings.service.form.enableService" : "Povoliť službu",
171 "settings.service.form.headlineBadges" : "Odznaky nepreÄítaných správ", 178 "settings.service.form.headlineBadges" : "Symboly nepreÄítaných správ",
172 "settings.service.form.headlineGeneral" : "Všeobecné", 179 "settings.service.form.headlineGeneral" : "Všeobecné",
173 "settings.service.form.headlineNotifications" : "Upozornenia", 180 "settings.service.form.headlineNotifications" : "Oznámenia",
174 "settings.service.form.icon" : "Vlastná ikona", 181 "settings.service.form.icon" : "Vlastná ikona",
175 "settings.service.form.iconDelete" : "Zmazať", 182 "settings.service.form.iconDelete" : "Zmazať",
176 "settings.service.form.iconUpload" : "Presuňte váš obrázok, alebo kliknite sem", 183 "settings.service.form.iconUpload" : "Presuňte váš obrázok, alebo kliknite sem",
177 "settings.service.form.indirectMessageInfo" : "Budete dostávať upozornenia na všetky nové správy v kanáli, nielen na @meno, @kanál, @kde, ...", 184 "settings.service.form.indirectMessageInfo" : "Budete dostávať upozornenia na všetky nové správy v kanáli, nielen na @username, @channel, @here, ......",
178 "settings.service.form.indirectMessages" : "Zobraziť znak správy pre všetky nové správy", 185 "settings.service.form.indirectMessages" : "Zobraziť symbol správy pre všetky nové správy",
179 "settings.service.form.isMutedInfo" : "Ak je vypnuté, všetky zvuky notifikácií a iného audia budú stíšené", 186 "settings.service.form.isMutedInfo" : "Ak je vypnuté, všetky zvuky oznámení a iné prehrávania budú stíšené",
180 "settings.service.form.name" : "Meno", 187 "settings.service.form.name" : "Meno",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "Uložiť službu", 194 "settings.service.form.saveButton" : "Uložiť službu",
182 "settings.service.form.tabHosted" : "Hostovaný", 195 "settings.service.form.tabHosted" : "Hostované",
183 "settings.service.form.tabOnPremise" : "Vlastné hosÅ¥ovanie â­ï¸", 196 "settings.service.form.tabOnPremise" : "Vlastné hostovanie â­ï¸",
184 "settings.service.form.team" : "Tím", 197 "settings.service.form.team" : "Tím",
185 "settings.service.form.useHostedService" : "Použite hostovanú {name} službu.", 198 "settings.service.form.useHostedService" : "Použiť hostovanú {name} službu.",
186 "settings.service.form.yourServices" : "Vaše služby", 199 "settings.service.form.yourServices" : "Vaše služby",
187 "settings.services.deletedInfo" : "Služba bola odstránená", 200 "settings.services.deletedInfo" : "Služba bola odstránená",
188 "settings.services.discoverServices" : "Preskúmajte služby", 201 "settings.services.discoverServices" : "Preskúmať služby",
189 "settings.services.headline" : "Vaše služby", 202 "settings.services.headline" : "Vaše služby",
190 "settings.services.noServicesAdded" : "Nepridali ste ešte žiadne služby", 203 "settings.services.noServicesAdded" : "Doposiaľ ste nepridali žiadne služby.",
191 "settings.services.tooltip.isDisabled" : "Služba je vypnutá", 204 "settings.services.tooltip.isDisabled" : "Služba je vypnutá",
192 "settings.services.tooltip.isMuted" : "Všetky zvuky sú stíšené", 205 "settings.services.tooltip.isMuted" : "Všetky zvuky sú stíšené",
193 "settings.services.tooltip.notificationsDisabled" : "Oznámenia sú vypnuté", 206 "settings.services.tooltip.notificationsDisabled" : "Oznámenia sú vypnuté",
194 "settings.services.updatedInfo" : "Vaše zmeny boli uložené", 207 "settings.services.updatedInfo" : "Vaše zmeny boli uložené",
195 "settings.user.form.accountType.company" : "SpoloÄnosÅ¥", 208 "settings.user.form.accountType.company" : "SpoloÄnosÅ¥",
196 "settings.user.form.accountType.individual" : "Jednotlivec", 209 "settings.user.form.accountType.individual" : "Osoba",
197 "settings.user.form.accountType.label" : "Typ úÄtu", 210 "settings.user.form.accountType.label" : "Typ úÄtu",
198 "settings.user.form.accountType.non-profit" : "Nezisková organizácia", 211 "settings.user.form.accountType.non-profit" : "Nezisková organizácia",
199 "settings.user.form.currentPassword" : "SúÄasné heslo", 212 "settings.user.form.currentPassword" : "SúÄasné heslo",
200 "settings.user.form.email" : "Email", 213 "settings.user.form.email" : "E-mail",
201 "settings.user.form.firstname" : "Krstné meno", 214 "settings.user.form.firstname" : "Krstné meno",
202 "settings.user.form.lastname" : "Priezvisko", 215 "settings.user.form.lastname" : "Priezvisko",
203 "settings.user.form.newPassword" : "Nové heslo", 216 "settings.user.form.newPassword" : "Nové heslo",
204 "sidebar.addNewService" : "Pridať novú službu", 217 "sidebar.addNewService" : "Pridať novú službu",
205 "sidebar.muteApp" : "Vypnúť upozornenia a zvuky", 218 "sidebar.muteApp" : "Vypnúť upozornenia a zvuky",
206 "sidebar.settings" : "Nastavenia", 219 "sidebar.settings" : "Nastavenia",
207 "sidebar.unmuteApp" : "Zapnúť upozornenia a zvuky", 220 "sidebar.unmuteApp" : "Povoliť oznámenia a zvuky",
208 "signup.company.label" : "SpoloÄnosÅ¥", 221 "signup.company.label" : "SpoloÄnosÅ¥",
209 "signup.email.label" : "Emailová adresa", 222 "signup.email.label" : "E-mailová adresa",
210 "signup.emailDuplicate" : "Kontakt s touto emailovou adresou už existuje", 223 "signup.emailDuplicate" : "Používateľ s touto e-mailovou adresou už jestvuje",
211 "signup.firstname.label" : "Krstné meno", 224 "signup.firstname.label" : "Krstné meno",
212 "signup.headline" : "Prihlásiť sa", 225 "signup.headline" : "Prihlásiť sa",
213 "signup.lastname.label" : "Priezvisko", 226 "signup.lastname.label" : "Priezvisko",
214 "signup.legal.info" : "Vytvorením úÄtu Franz akceptujete", 227 "signup.legal.info" : "Vytvorením úÄtu Franz súhlasíte s",
215 "signup.legal.privacy" : "Vyhlásenie o ochrane súkromia", 228 "signup.legal.privacy" : "Vyhlásenie o ochrane súkromia",
216 "signup.legal.terms" : "Podmienky služby", 229 "signup.legal.terms" : "Podmienky služby",
217 "signup.link.login" : "Už máte úÄet, prihlásiÅ¥ sa?", 230 "signup.link.login" : "Už máte úÄet, chcete sa prihlásiÅ¥?",
218 "signup.password.label" : "Heslo", 231 "signup.password.label" : "Heslo",
219 "signup.submit.label" : "VytvoriÅ¥ úÄet", 232 "signup.submit.label" : "VytvoriÅ¥ úÄet",
220 "subscription.euTaxInfo" : "Pro obyvatelé EÚ: môžu byť aplikované miestne dane", 233 "subscription.euTaxInfo" : "Pre obyvateľov EÚ: môže byť aplikovaná miestna daň",
221 "subscription.features.ads" : "Žiadne reklamy, nikdy!", 234 "subscription.features.ads" : "Žiadne reklamy, nikdy!",
222 "subscription.features.comingSoon" : "už Äoskoro", 235 "subscription.features.comingSoon" : "už Äoskoro",
223 "subscription.features.customServices" : "Privátne ​​služby pre vás a váš tím",
224 "subscription.features.encryptedSync" : "Šifrovaná synchronizácia relácie", 236 "subscription.features.encryptedSync" : "Šifrovaná synchronizácia relácie",
225 "subscription.features.onpremise" : "Pridať vlastné\/hostované služby, ako je HipChat", 237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
226 "subscription.features.vpn" : "Proxy & VPN podpora", 238 "subscription.features.onpremise" : "Pridať lokálne hostované služby, ako napr. HipChat",
239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "Platený úÄet Premium Supporter Franz zahŕňa", 242 "subscription.includedFeatures" : "Platený úÄet Premium Supporter Franz zahŕňa",
228 "subscription.paymentSessionError" : "Nepodarilo sa inicializovať platbu od", 243 "subscription.paymentSessionError" : "Nepodarilo sa inicializovať platbu od",
229 "subscription.submit.label" : "Chcem podporiť vývoj programu Franz", 244 "subscription.submit.label" : "Chcem podporiť vývoj aplikácie Franz",
230 "subscription.type.free" : "Zdarma", 245 "subscription.type.free" : "zdarma",
231 "subscription.type.month" : "mesiac", 246 "subscription.type.month" : "mesiac",
232 "subscription.type.year" : "rok", 247 "subscription.type.year" : "rok",
233 "subscriptionPopup.buttonCancel" : "Zrušiť", 248 "subscriptionPopup.buttonCancel" : "Zrušiť",
@@ -241,11 +256,11 @@
241 "tabs.item.enableNotification" : "Povoliť oznámenia", 256 "tabs.item.enableNotification" : "Povoliť oznámenia",
242 "tabs.item.enableService" : "Povoliť službu", 257 "tabs.item.enableService" : "Povoliť službu",
243 "tabs.item.reload" : "Obnoviť", 258 "tabs.item.reload" : "Obnoviť",
244 "validation.email" : "{field} is not valid", 259 "validation.email" : "{field} je neplatný",
245 "validation.minLength" : "{field} should be at least {length} characters long", 260 "validation.minLength" : "{field} by malo byť dlhé aspoň {length} znakov",
246 "validation.required" : "{field} is required", 261 "validation.required" : "{field} je povinné",
247 "validation.url" : "{field} is not a valid URL", 262 "validation.url" : "{field} nie je platné URL",
248 "welcome.loginButton" : "Prihláste sa k vášmu úÄtu", 263 "welcome.loginButton" : "PrihlásiÅ¥ sa do vášho úÄtu",
249 "welcome.signupButton" : "VytvoriÅ¥ užívateľský úÄet zdarma", 264 "welcome.signupButton" : "VytvoriÅ¥ úÄet zdarma",
250 "welcome.slogan" : "Správy, ktoré pracujú pre vás" 265 "welcome.slogan" : "Správy, ktoré pracujú pre vás"
251} 266}
diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json
index 1f31bc834..dd4c74277 100644
--- a/src/i18n/locales/sr.json
+++ b/src/i18n/locales/sr.json
@@ -1,9 +1,12 @@
1{ 1{
2 "global.api.unhealthy" : "Nije moguće pristupiti Francovim on-line servisima. ", 2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
5 "global.api.unhealthy" : "Nije moguće pristupiti Franz-ovim on-line servisima. ",
3 "global.notConnectedToTheInternet" : "Niste povezani sa serverom.", 6 "global.notConnectedToTheInternet" : "Niste povezani sa serverom.",
4 "import.headline" : "Uvezite svoje Franc4 servise", 7 "import.headline" : "Uvezite svoje Franz 4 servise",
5 "import.notSupportedHeadline" : "Servis trenutno nije podržan u Franc5", 8 "import.notSupportedHeadline" : "Servis trenutno nije podržan u Franz 5",
6 "import.skip.label" : "I want to add services manually", 9 "import.skip.label" : "Желим да додам уÑлуге ручно",
7 "import.submit.label" : "Uvezi servise", 10 "import.submit.label" : "Uvezi servise",
8 "infobar.buttonChangelog" : "Å ta je novo? ", 11 "infobar.buttonChangelog" : "Å ta je novo? ",
9 "infobar.buttonInstallUpdate" : "Ponovo pokreni i instaliraj ažuriranje ", 12 "infobar.buttonInstallUpdate" : "Ponovo pokreni i instaliraj ažuriranje ",
@@ -16,7 +19,7 @@
16 "invite.name.label" : "Ime", 19 "invite.name.label" : "Ime",
17 "invite.skip.label" : "Želim da ovo uradim kasnije", 20 "invite.skip.label" : "Želim da ovo uradim kasnije",
18 "invite.submit.label" : "Pošalji pozivnice", 21 "invite.submit.label" : "Pošalji pozivnice",
19 "invite.successInfo" : "Invitations sent successfully", 22 "invite.successInfo" : "Poziv je uspešno poslat.",
20 "login.email.label" : "Vaša e-adresa:", 23 "login.email.label" : "Vaša e-adresa:",
21 "login.headline" : "Prijavite se", 24 "login.headline" : "Prijavite se",
22 "login.invalidCredentials" : "E-mail ili lozinka nisu toÄni", 25 "login.invalidCredentials" : "E-mail ili lozinka nisu toÄni",
@@ -26,49 +29,49 @@
26 "login.serverLogout" : "Vaša sesija je istekla, prijavite se ponovo.", 29 "login.serverLogout" : "Vaša sesija je istekla, prijavite se ponovo.",
27 "login.submit.label" : "Prijavite se", 30 "login.submit.label" : "Prijavite se",
28 "login.tokenExpired" : "Vaša sesija je istekla, prijavite se ponovo.", 31 "login.tokenExpired" : "Vaša sesija je istekla, prijavite se ponovo.",
29 "menu.app.about" : "About Franz", 32 "menu.app.about" : "O Francu",
30 "menu.app.hide" : "Hide", 33 "menu.app.hide" : "Sakrij",
31 "menu.app.hideOthers" : "Hide Others", 34 "menu.app.hideOthers" : "Sakrij ostale",
32 "menu.app.quit" : "Quit", 35 "menu.app.quit" : "Izađi",
33 "menu.app.settings" : "Postavke", 36 "menu.app.settings" : "Postavke",
34 "menu.app.unhide" : "Unhide", 37 "menu.app.unhide" : "Otkrij",
35 "menu.edit" : "Uredi", 38 "menu.edit" : "Uredi",
36 "menu.edit.copy" : "Copy", 39 "menu.edit.copy" : "Kopiraj",
37 "menu.edit.cut" : "Cut", 40 "menu.edit.cut" : "Iseci",
38 "menu.edit.delete" : "Delete", 41 "menu.edit.delete" : "Obriši",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols", 42 "menu.edit.emojiSymbols" : "Smajliji i simboli",
40 "menu.edit.paste" : "Paste", 43 "menu.edit.paste" : "Nalepi",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", 44 "menu.edit.pasteAndMatchStyle" : "Ðалепи не мењајући Ñтил",
42 "menu.edit.redo" : "Redo", 45 "menu.edit.redo" : "Понови",
43 "menu.edit.selectAll" : "Select All", 46 "menu.edit.selectAll" : "Изабери Ñве",
44 "menu.edit.speech" : "Speech", 47 "menu.edit.speech" : "Говор",
45 "menu.edit.startDictation" : "Start Dictation", 48 "menu.edit.startDictation" : "Започни диктирање",
46 "menu.edit.startSpeaking" : "Start Speaking", 49 "menu.edit.startSpeaking" : "Започни изговор",
47 "menu.edit.stopSpeaking" : "Stop Speaking", 50 "menu.edit.stopSpeaking" : "ЗауÑтави изговор",
48 "menu.edit.undo" : "Undo", 51 "menu.edit.undo" : "Поништи",
49 "menu.file" : "File", 52 "menu.file" : "Датотека",
50 "menu.help" : "Help", 53 "menu.help" : "Помоћ",
51 "menu.help.changelog" : "Changelog", 54 "menu.help.changelog" : "Дневник измена",
52 "menu.help.learnMore" : "Learn More", 55 "menu.help.learnMore" : "Сазнајте више",
53 "menu.help.privacy" : "Izjava o privatnosti", 56 "menu.help.privacy" : "Izjava o privatnosti",
54 "menu.help.support" : "Support", 57 "menu.help.support" : "Подршка",
55 "menu.help.tos" : "Terms of Service", 58 "menu.help.tos" : "УÑлови коришћења уÑлуге",
56 "menu.services" : "Services", 59 "menu.services" : "Usluge",
57 "menu.services.addNewService" : "Add New Service...", 60 "menu.services.addNewService" : "Додај нову уÑлугу",
58 "menu.view" : "View", 61 "menu.view" : "Преглед",
59 "menu.view.enterFullScreen" : "Enter Full Screen", 62 "menu.view.enterFullScreen" : "Отвори у целом екрану",
60 "menu.view.exitFullScreen" : "Exit Full Screen", 63 "menu.view.exitFullScreen" : "ÐапуÑти цео екран",
61 "menu.view.reloadFranz" : "Reload Franz", 64 "menu.view.reloadFranz" : "Поново учитај Франз",
62 "menu.view.reloadService" : "Reload Service", 65 "menu.view.reloadService" : "Поново учирај уÑлугу",
63 "menu.view.resetZoom" : "Actual Size", 66 "menu.view.resetZoom" : "Стварна величина",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools", 67 "menu.view.toggleDevTools" : "Промени алатке за развој",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen", 68 "menu.view.toggleFullScreen" : "Преко целог екрана",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", 69 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools",
67 "menu.view.zoomIn" : "Zoom In", 70 "menu.view.zoomIn" : "Увећај приказ",
68 "menu.view.zoomOut" : "Zoom Out", 71 "menu.view.zoomOut" : "Умањи приказ",
69 "menu.window" : "Window", 72 "menu.window" : "У прозору",
70 "menu.window.close" : "Close", 73 "menu.window.close" : "Затвори",
71 "menu.window.minimize" : "Minimize", 74 "menu.window.minimize" : "Умањи",
72 "password.email.label" : "Vaša e-adresa", 75 "password.email.label" : "Vaša e-adresa",
73 "password.headline" : "Stvorite novu zaporku", 76 "password.headline" : "Stvorite novu zaporku",
74 "password.link.login" : "Prijavite se na VaÅ¡ raÄun", 77 "password.link.login" : "Prijavite se na VaÅ¡ raÄun",
@@ -76,6 +79,7 @@
76 "password.noUser" : "Ne postoji ni jedan korisnik s tom e-mail adresom", 79 "password.noUser" : "Ne postoji ni jedan korisnik s tom e-mail adresom",
77 "password.submit.label" : "Pošalji", 80 "password.submit.label" : "Pošalji",
78 "password.successInfo" : "Molimo Vas da provjerite vašu e-mail adresu", 81 "password.successInfo" : "Molimo Vas da provjerite vašu e-mail adresu",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "Podržite Franz", 83 "pricing.headline" : "Podržite Franz",
80 "pricing.link.skipPayment" : "Ne želim da podržim razvoj Franz-a.", 84 "pricing.link.skipPayment" : "Ne želim da podržim razvoj Franz-a.",
81 "pricing.submit.label" : "Želim da podržim razvoj Franz-a.", 85 "pricing.submit.label" : "Želim da podržim razvoj Franz-a.",
@@ -92,12 +96,12 @@
92 "settings.account.accountType.basic" : "Osnovni raÄun", 96 "settings.account.accountType.basic" : "Osnovni raÄun",
93 "settings.account.accountType.premium" : "Premium raÄun", 97 "settings.account.accountType.premium" : "Premium raÄun",
94 "settings.account.buttonSave" : "Ažuriraj profil", 98 "settings.account.buttonSave" : "Ažuriraj profil",
95 "settings.account.deleteAccount" : "Delete account", 99 "settings.account.deleteAccount" : "Обриши налог",
96 "settings.account.deleteEmailSent" : "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", 100 "settings.account.deleteEmailSent" : "Добили Ñте имејл Ñа линком путем којег потврђујете бриÑање Ñвог налога. Ваш налог и подаци не могу бити повраћени!",
97 "settings.account.deleteInfo" : "If you don't need your Franz account any longer, you can delete your account and all related data here.", 101 "settings.account.deleteInfo" : "Уколико Вам више није потребан Франз налог, овде можете обриÑати Ñвој налог и Ñве податке везане за иÑти.",
98 "settings.account.headline" : "KorisniÄki nalog", 102 "settings.account.headline" : "KorisniÄki nalog",
99 "settings.account.headlineAccount" : "Podaci o nalogu", 103 "settings.account.headlineAccount" : "Podaci o nalogu",
100 "settings.account.headlineDangerZone" : "Danger Zone", 104 "settings.account.headlineDangerZone" : "Зона опреза",
101 "settings.account.headlineInvoices" : "Fakture", 105 "settings.account.headlineInvoices" : "Fakture",
102 "settings.account.headlinePassword" : "Promijenite lozinku", 106 "settings.account.headlinePassword" : "Promijenite lozinku",
103 "settings.account.headlineProfile" : "Ažurirajte profil", 107 "settings.account.headlineProfile" : "Ažurirajte profil",
@@ -108,40 +112,42 @@
108 "settings.account.successInfo" : "Vaše promjene su spremljene", 112 "settings.account.successInfo" : "Vaše promjene su spremljene",
109 "settings.account.tryReloadUserInfoRequest" : "Pokušajte ponovno", 113 "settings.account.tryReloadUserInfoRequest" : "Pokušajte ponovno",
110 "settings.account.userInfoRequestFailed" : "Nije moguće uÄitati informacije o korisniku", 114 "settings.account.userInfoRequestFailed" : "Nije moguće uÄitati informacije o korisniku",
111 "settings.app.buttonClearAllCache" : "Clear cache", 115 "settings.app.buttonClearAllCache" : "ОчиÑти кеш",
112 "settings.app.buttonInstallUpdate" : "Ponovo pokreni i instaliraj ažuriranje", 116 "settings.app.buttonInstallUpdate" : "Ponovo pokreni i instaliraj ažuriranje",
113 "settings.app.buttonSearchForUpdate" : "Potraži ažuriranja", 117 "settings.app.buttonSearchForUpdate" : "Potraži ažuriranja",
114 "settings.app.cacheInfo" : "Franz cache is currently using {size} of disk space.", 118 "settings.app.cacheInfo" : "Франз кеш тренутно кориÑти {величина} проÑтора на диÑку.",
115 "settings.app.currentVersion" : "Trenutna verzija:", 119 "settings.app.currentVersion" : "Trenutna verzija:",
116 "settings.app.form.autoLaunchInBackground" : "Otvori u pozadini", 120 "settings.app.form.autoLaunchInBackground" : "Otvori u pozadini",
117 "settings.app.form.autoLaunchOnStart" : "Pokreni Franz sa sistemom", 121 "settings.app.form.autoLaunchOnStart" : "Pokreni Franz sa sistemom",
118 "settings.app.form.beta" : "Obuhvati i beta verzije", 122 "settings.app.form.beta" : "Obuhvati i beta verzije",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", 123 "settings.app.form.darkMode" : "Join the Dark Side",
120 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", 124 "settings.app.form.enableGPUAcceleration" : "Омогући убрзање графичке јединице",
125 "settings.app.form.enableMenuBar" : "Покажи Франз у менију",
121 "settings.app.form.enableSpellchecking" : "Omogući provjeru pravopisa", 126 "settings.app.form.enableSpellchecking" : "Omogući provjeru pravopisa",
122 "settings.app.form.enableSystemTray" : "Prikaži aplikaciju u sustavskoj traci", 127 "settings.app.form.enableSystemTray" : "Prikaži aplikaciju u sustavskoj traci",
123 "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock", 128 "settings.app.form.hideDockIcon" : "Сакриј Франз иконицу у доку",
124 "settings.app.form.language" : "Jezik", 129 "settings.app.form.language" : "Jezik",
125 "settings.app.form.minimizeToSystemTray" : "Smanji Franca u sustavsku traku", 130 "settings.app.form.minimizeToSystemTray" : "Smanji Franca u sustavsku traku",
126 "settings.app.form.runInBackground" : "Neka se Franc održava u pozadini i ako je prozor zatvoren", 131 "settings.app.form.runInBackground" : "Neka se Franc održava u pozadini i ako je prozor zatvoren",
127 "settings.app.form.showDisabledServices" : "Prikaži ploÄe s onemogućenim servisima", 132 "settings.app.form.showDisabledServices" : "Prikaži ploÄe s onemogućenim servisima",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "Show unread message badge when notifications are disabled", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "Покажи беџ за непрочитане поруке када Ñу обавештења онемогућена",
129 "settings.app.headline" : "Postavke", 134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
135 "settings.app.headline" : "Подешавања",
130 "settings.app.headlineAdvanced" : "Napredne alatke", 136 "settings.app.headlineAdvanced" : "Napredne alatke",
131 "settings.app.headlineAppearance" : "Izgled", 137 "settings.app.headlineAppearance" : "Izgled",
132 "settings.app.headlineGeneral" : "Općenito", 138 "settings.app.headlineGeneral" : "Općenito",
133 "settings.app.headlineLanguage" : "Jezik", 139 "settings.app.headlineLanguage" : "Jezik",
134 "settings.app.headlineUpdates" : "Nadogradnje", 140 "settings.app.headlineUpdates" : "Nadogradnje",
135 "settings.app.restartRequired" : "Promjene postavki zahtijevaju ponovni pogon", 141 "settings.app.restartRequired" : "Promjene postavki zahtijevaju ponovni pogon",
136 "settings.app.subheadlineCache" : "Cache", 142 "settings.app.subheadlineCache" : "Кеш",
137 "settings.app.translationHelp" : "Pomozite nam prevesti aplikaciju na Vaš jezik. ", 143 "settings.app.translationHelp" : "Pomozite nam prevesti aplikaciju na Vaš jezik. ",
138 "settings.app.updateStatusAvailable" : "Nadogradnja dostupna, preuzimanje...", 144 "settings.app.updateStatusAvailable" : "Nadogradnja dostupna, preuzimanje...",
139 "settings.app.updateStatusSearching" : "Traže se ažuriranja", 145 "settings.app.updateStatusSearching" : "Traže se ažuriranja",
140 "settings.app.updateStatusUpToDate" : "Koristite najnoviju verziju Franca.", 146 "settings.app.updateStatusUpToDate" : "Koristite najnoviju verziju Franca.",
141 "settings.invite.headline" : "Invite Friends", 147 "settings.invite.headline" : "Позови пријатеље",
142 "settings.navigation.account" : "RaÄun", 148 "settings.navigation.account" : "RaÄun",
143 "settings.navigation.availableServices" : "Dostupne usluge", 149 "settings.navigation.availableServices" : "Dostupne usluge",
144 "settings.navigation.inviteFriends" : "Invite Friends", 150 "settings.navigation.inviteFriends" : "Позови пријатеље",
145 "settings.navigation.logout" : "Odjava", 151 "settings.navigation.logout" : "Odjava",
146 "settings.navigation.settings" : "Postavke", 152 "settings.navigation.settings" : "Postavke",
147 "settings.navigation.yourServices" : "Vaše usluge", 153 "settings.navigation.yourServices" : "Vaše usluge",
@@ -152,7 +158,7 @@
152 "settings.recipes.mostPopular" : "Najpopularniji", 158 "settings.recipes.mostPopular" : "Najpopularniji",
153 "settings.recipes.nothingFound" : "Žao nam je, ali ne postoje usluge koje se poklapaju s onima koje tražite", 159 "settings.recipes.nothingFound" : "Žao nam je, ali ne postoje usluge koje se poklapaju s onima koje tražite",
154 "settings.recipes.servicesSuccessfulAddedInfo" : "Usluga uspješno dodana", 160 "settings.recipes.servicesSuccessfulAddedInfo" : "Usluga uspješno dodana",
155 "settings.searchService" : "Search service", 161 "settings.searchService" : "Претражи уÑлуге",
156 "settings.service.error.goBack" : "Nazad do servisa", 162 "settings.service.error.goBack" : "Nazad do servisa",
157 "settings.service.error.headline" : "Greška ", 163 "settings.service.error.headline" : "Greška ",
158 "settings.service.error.message" : "Nemoguće uÄitati sadržaj usluge", 164 "settings.service.error.message" : "Nemoguće uÄitati sadržaj usluge",
@@ -165,24 +171,31 @@
165 "settings.service.form.deleteButton" : "Izbriši uslugu", 171 "settings.service.form.deleteButton" : "Izbriši uslugu",
166 "settings.service.form.editServiceHeadline" : "Uredite {ime}", 172 "settings.service.form.editServiceHeadline" : "Uredite {ime}",
167 "settings.service.form.enableAudio" : "Omogućite zvuk", 173 "settings.service.form.enableAudio" : "Omogućite zvuk",
168 "settings.service.form.enableBadge" : "Show unread message badges", 174 "settings.service.form.enableBadge" : "Покажи беџеве за непрочитане поруке",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "Omogućite obavijesti", 176 "settings.service.form.enableNotification" : "Omogućite obavijesti",
170 "settings.service.form.enableService" : "Omogućite usluge", 177 "settings.service.form.enableService" : "Omogućite usluge",
171 "settings.service.form.headlineBadges" : "Unread message badges", 178 "settings.service.form.headlineBadges" : "Беџеви за непрочитане поруке",
172 "settings.service.form.headlineGeneral" : "Općenito", 179 "settings.service.form.headlineGeneral" : "Опште",
173 "settings.service.form.headlineNotifications" : "Notifications", 180 "settings.service.form.headlineNotifications" : "Обавештења",
174 "settings.service.form.icon" : "Custom icon", 181 "settings.service.form.icon" : "ПоÑебна иконица",
175 "settings.service.form.iconDelete" : "Delete", 182 "settings.service.form.iconDelete" : "Обриши",
176 "settings.service.form.iconUpload" : "Drop your image, or click here", 183 "settings.service.form.iconUpload" : "Превуци Ñлику или кликни овде",
177 "settings.service.form.indirectMessageInfo" : "Vi ćete biti obavješteni o svim novim porukama na kanalu, ne samo o @imenima, kanalima, @ovdje, ...", 184 "settings.service.form.indirectMessageInfo" : "Vi ćete biti obavješteni o svim novim porukama na kanalu, ne samo o @imenima, kanalima, @ovdje, ...",
178 "settings.service.form.indirectMessages" : "Prikaži znaÄku na svim novim porukuama", 185 "settings.service.form.indirectMessages" : "Prikaži znaÄku na svim novim porukuama",
179 "settings.service.form.isMutedInfo" : "Kada je onemogućeno, sve obavijesti, svi zvukovi i sva pozadinska podrÅ¡ka će biti neÄujna.", 186 "settings.service.form.isMutedInfo" : "Kada je onemogućeno, sve obavijesti, svi zvukovi i sva pozadinska podrÅ¡ka će biti neÄujna.",
180 "settings.service.form.name" : "Ime", 187 "settings.service.form.name" : "Ime",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "SaÄuvaj uslugu\/e", 194 "settings.service.form.saveButton" : "SaÄuvaj uslugu\/e",
182 "settings.service.form.tabHosted" : "Hostovano", 195 "settings.service.form.tabHosted" : "Hostovano",
183 "settings.service.form.tabOnPremise" : "Samo-hostovano â­ï¸", 196 "settings.service.form.tabOnPremise" : "Samo-hostovano â­ï¸",
184 "settings.service.form.team" : "Tim", 197 "settings.service.form.team" : "Tim",
185 "settings.service.form.useHostedService" : "Use the hosted {name} service.", 198 "settings.service.form.useHostedService" : "КориÑти хоÑтовану {име} уÑлугу.",
186 "settings.service.form.yourServices" : "Vaše usluge", 199 "settings.service.form.yourServices" : "Vaše usluge",
187 "settings.services.deletedInfo" : "Usluga je onemogućena", 200 "settings.services.deletedInfo" : "Usluga je onemogućena",
188 "settings.services.discoverServices" : "Pronađite usluge", 201 "settings.services.discoverServices" : "Pronađite usluge",
@@ -202,9 +215,9 @@
202 "settings.user.form.lastname" : "Prezime", 215 "settings.user.form.lastname" : "Prezime",
203 "settings.user.form.newPassword" : "Nova lozinka", 216 "settings.user.form.newPassword" : "Nova lozinka",
204 "sidebar.addNewService" : "Dodajte novu uslugu", 217 "sidebar.addNewService" : "Dodajte novu uslugu",
205 "sidebar.muteApp" : "Disable notifications & audio", 218 "sidebar.muteApp" : "Онемогући обавештења и звукове",
206 "sidebar.settings" : "Postavke", 219 "sidebar.settings" : "Postavke",
207 "sidebar.unmuteApp" : "Enable notifications & audio", 220 "sidebar.unmuteApp" : "ИÑкључи обавештења и звукове",
208 "signup.company.label" : "Tvrtka", 221 "signup.company.label" : "Tvrtka",
209 "signup.email.label" : "Vaša e-adresa", 222 "signup.email.label" : "Vaša e-adresa",
210 "signup.emailDuplicate" : "Već postoji korisnik s tom e-mail adresom", 223 "signup.emailDuplicate" : "Već postoji korisnik s tom e-mail adresom",
@@ -212,7 +225,7 @@
212 "signup.headline" : "Prijava", 225 "signup.headline" : "Prijava",
213 "signup.lastname.label" : "Prezime", 226 "signup.lastname.label" : "Prezime",
214 "signup.legal.info" : "Prilikom stvaranja Franz raÄuna, slažete se sa sljedećim stavkama", 227 "signup.legal.info" : "Prilikom stvaranja Franz raÄuna, slažete se sa sljedećim stavkama",
215 "signup.legal.privacy" : "Izjava o privatnosti", 228 "signup.legal.privacy" : "Изјава о приватноÑти",
216 "signup.legal.terms" : "Uvjeti korištenja", 229 "signup.legal.terms" : "Uvjeti korištenja",
217 "signup.link.login" : "Imate raÄun? Prijavite se.", 230 "signup.link.login" : "Imate raÄun? Prijavite se.",
218 "signup.password.label" : "Lozinka", 231 "signup.password.label" : "Lozinka",
@@ -220,10 +233,12 @@
220 "subscription.euTaxInfo" : "EU državljani, upozerenje: Moguće taksiranje", 233 "subscription.euTaxInfo" : "EU državljani, upozerenje: Moguće taksiranje",
221 "subscription.features.ads" : "Bez reklama, doživotno!", 234 "subscription.features.ads" : "Bez reklama, doživotno!",
222 "subscription.features.comingSoon" : "Dolazi uskoro", 235 "subscription.features.comingSoon" : "Dolazi uskoro",
223 "subscription.features.customServices" : "Privatni servisi za Vas i Vaš tim",
224 "subscription.features.encryptedSync" : "Kodirano usklađivanje sesija.", 236 "subscription.features.encryptedSync" : "Kodirano usklađivanje sesija.",
237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "Dodajte pretpostavljeni\/hostirani servis kao Å¡to ima usluga HipChat", 238 "subscription.features.onpremise" : "Dodajte pretpostavljeni\/hostirani servis kao Å¡to ima usluga HipChat",
226 "subscription.features.vpn" : "Podrška za Proxy i VPM ( VPN )", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "Plaćeni\/Premium raÄun ukljuÄuje sljedeće:", 242 "subscription.includedFeatures" : "Plaćeni\/Premium raÄun ukljuÄuje sljedeće:",
228 "subscription.paymentSessionError" : "Nemoguće inicijalizirati obrazac za uplatu", 243 "subscription.paymentSessionError" : "Nemoguće inicijalizirati obrazac za uplatu",
229 "subscription.submit.label" : "Želim da podržim razvoj Franca.", 244 "subscription.submit.label" : "Želim da podržim razvoj Franca.",
@@ -236,15 +251,15 @@
236 "tabs.item.disableAudio" : "Onemogući zvuk", 251 "tabs.item.disableAudio" : "Onemogući zvuk",
237 "tabs.item.disableNotifications" : "Onemogući obavijesti", 252 "tabs.item.disableNotifications" : "Onemogući obavijesti",
238 "tabs.item.disableService" : "Onemogući servis", 253 "tabs.item.disableService" : "Onemogući servis",
239 "tabs.item.edit" : "Uredi", 254 "tabs.item.edit" : "Уреди",
240 "tabs.item.enableAudio" : "UkljuÄi zvuk", 255 "tabs.item.enableAudio" : "UkljuÄi zvuk",
241 "tabs.item.enableNotification" : "Omogući obavijesti", 256 "tabs.item.enableNotification" : "Omogući obavijesti",
242 "tabs.item.enableService" : "Omogući usluge", 257 "tabs.item.enableService" : "Omogući usluge",
243 "tabs.item.reload" : "Ponovno uÄitavanje", 258 "tabs.item.reload" : "Ponovno uÄitavanje",
244 "validation.email" : "{field} is not valid", 259 "validation.email" : "{поље} није валидно",
245 "validation.minLength" : "{field} should be at least {length} characters long", 260 "validation.minLength" : "{поље} треба да буде најмање {дужина} карактера дугачко",
246 "validation.required" : "{field} is required", 261 "validation.required" : "{поље} је неопходно",
247 "validation.url" : "{field} is not a valid URL", 262 "validation.url" : "{field} није валидан УРЛ",
248 "welcome.loginButton" : "Prijavite se na raÄun", 263 "welcome.loginButton" : "Prijavite se na raÄun",
249 "welcome.signupButton" : "Stvorite novi korisniÄki raÄun", 264 "welcome.signupButton" : "Stvorite novi korisniÄki raÄun",
250 "welcome.slogan" : "Poruke koje su stvorene za tebe" 265 "welcome.slogan" : "Poruke koje su stvorene za tebe"
diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json
index d03077d8d..130b51ddf 100644
--- a/src/i18n/locales/tr.json
+++ b/src/i18n/locales/tr.json
@@ -1,8 +1,11 @@
1{ 1{
2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
2 "global.api.unhealthy" : "Franz hizmetlerine ÅŸu anda eriÅŸilemiyor.", 5 "global.api.unhealthy" : "Franz hizmetlerine ÅŸu anda eriÅŸilemiyor.",
3 "global.notConnectedToTheInternet" : "İnternete bağlı değilsiniz.", 6 "global.notConnectedToTheInternet" : "İnternete bağlı değilsiniz.",
4 "import.headline" : "Franz 4 servislerinizi ekleyin.", 7 "import.headline" : "Franz 4 servislerinizi ekleyin.",
5 "import.notSupportedHeadline" : "Servisler henüz Franz 5'te desteklenmiyor.", 8 "import.notSupportedHeadline" : "Servisler henüz Franz 5'de desteklenmiyor.",
6 "import.skip.label" : "Servisleri kendim eklemek istiyorum", 9 "import.skip.label" : "Servisleri kendim eklemek istiyorum",
7 "import.submit.label" : "Servisleri içe aktar", 10 "import.submit.label" : "Servisleri içe aktar",
8 "infobar.buttonChangelog" : "Yeni ne var?", 11 "infobar.buttonChangelog" : "Yeni ne var?",
@@ -21,7 +24,7 @@
21 "login.headline" : "Oturum Aç", 24 "login.headline" : "Oturum Aç",
22 "login.invalidCredentials" : "Yanlış parola ya da e-posta adresi", 25 "login.invalidCredentials" : "Yanlış parola ya da e-posta adresi",
23 "login.link.password" : "Parola sıfırla", 26 "login.link.password" : "Parola sıfırla",
24 "login.link.signup" : "Kullanıcı hesabı oluştur", 27 "login.link.signup" : "Ücretsiz hesap oluştur",
25 "login.password.label" : "Parola", 28 "login.password.label" : "Parola",
26 "login.serverLogout" : "Oturum süreniz dolmuş, lütfen tekrar giriş yapın.", 29 "login.serverLogout" : "Oturum süreniz dolmuş, lütfen tekrar giriş yapın.",
27 "login.submit.label" : "Oturum Aç", 30 "login.submit.label" : "Oturum Aç",
@@ -76,6 +79,7 @@
76 "password.noUser" : "Bu e-posta adresinde bir kullanıcı bulunamadı", 79 "password.noUser" : "Bu e-posta adresinde bir kullanıcı bulunamadı",
77 "password.submit.label" : "Gönder", 80 "password.submit.label" : "Gönder",
78 "password.successInfo" : "E-postanızı kontrol ediniz", 81 "password.successInfo" : "E-postanızı kontrol ediniz",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "Franz'ı Destekle", 83 "pricing.headline" : "Franz'ı Destekle",
80 "pricing.link.skipPayment" : "Franz'ın gelişimini desteklemek istemiyorum.", 84 "pricing.link.skipPayment" : "Franz'ın gelişimini desteklemek istemiyorum.",
81 "pricing.submit.label" : "Franz'ın gelişimini desteklemek istiyorum", 85 "pricing.submit.label" : "Franz'ın gelişimini desteklemek istiyorum",
@@ -84,7 +88,7 @@
84 "service.crashHandler.autoReload" : "{name}'i {seconds} saniye içerisinde otomatik onarmayı deniyoruz", 88 "service.crashHandler.autoReload" : "{name}'i {seconds} saniye içerisinde otomatik onarmayı deniyoruz",
85 "service.crashHandler.headline" : "Aman Tanrım hayır!", 89 "service.crashHandler.headline" : "Aman Tanrım hayır!",
86 "service.crashHandler.text" : "{name} bir hataya neden oldu.", 90 "service.crashHandler.text" : "{name} bir hataya neden oldu.",
87 "service.disabledHandler.action" : "AktifleÅŸtir {name}", 91 "service.disabledHandler.action" : "{name} aktif",
88 "service.disabledHandler.headline" : "{name} devredışı", 92 "service.disabledHandler.headline" : "{name} devredışı",
89 "services.getStarted" : "Haydi başlayalım", 93 "services.getStarted" : "Haydi başlayalım",
90 "services.welcome" : "Franz'a HoÅŸgeldiniz", 94 "services.welcome" : "Franz'a HoÅŸgeldiniz",
@@ -116,7 +120,8 @@
116 "settings.app.form.autoLaunchInBackground" : "Arka planda aç", 120 "settings.app.form.autoLaunchInBackground" : "Arka planda aç",
117 "settings.app.form.autoLaunchOnStart" : "Franz'ı başlangıçta aç", 121 "settings.app.form.autoLaunchOnStart" : "Franz'ı başlangıçta aç",
118 "settings.app.form.beta" : "Beta versiyonları dahil et", 122 "settings.app.form.beta" : "Beta versiyonları dahil et",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", 123 "settings.app.form.darkMode" : "Join the Dark Side",
124 "settings.app.form.enableGPUAcceleration" : "Grafik İşlemci Ünitesi (GPU) Hızlandırıcısını Aktif et",
120 "settings.app.form.enableMenuBar" : "Menü çubuğunda Franz'ı göster", 125 "settings.app.form.enableMenuBar" : "Menü çubuğunda Franz'ı göster",
121 "settings.app.form.enableSpellchecking" : "Yazım denetimini etkinleştir", 126 "settings.app.form.enableSpellchecking" : "Yazım denetimini etkinleştir",
122 "settings.app.form.enableSystemTray" : "Franz'ı sistem tepsisinde göster", 127 "settings.app.form.enableSystemTray" : "Franz'ı sistem tepsisinde göster",
@@ -126,6 +131,7 @@
126 "settings.app.form.runInBackground" : "Pencereyi kapatırken Franz'ı arka planda tut", 131 "settings.app.form.runInBackground" : "Pencereyi kapatırken Franz'ı arka planda tut",
127 "settings.app.form.showDisabledServices" : "Devre dışı bırakılan servis sekmelerini göster", 132 "settings.app.form.showDisabledServices" : "Devre dışı bırakılan servis sekmelerini göster",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "Bildirimler kapalı iken okunmamış mesaj sayısını göster", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "Bildirimler kapalı iken okunmamış mesaj sayısını göster",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "Ayarlar", 135 "settings.app.headline" : "Ayarlar",
130 "settings.app.headlineAdvanced" : "GeliÅŸmiÅŸ", 136 "settings.app.headlineAdvanced" : "GeliÅŸmiÅŸ",
131 "settings.app.headlineAppearance" : "Görünüm", 137 "settings.app.headlineAppearance" : "Görünüm",
@@ -166,6 +172,7 @@
166 "settings.service.form.editServiceHeadline" : "{name} düzenle", 172 "settings.service.form.editServiceHeadline" : "{name} düzenle",
167 "settings.service.form.enableAudio" : "Sesi etkinleÅŸtirin", 173 "settings.service.form.enableAudio" : "Sesi etkinleÅŸtirin",
168 "settings.service.form.enableBadge" : "Okunmamış mesajları göster", 174 "settings.service.form.enableBadge" : "Okunmamış mesajları göster",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "Bildirimleri etkinleÅŸtir", 176 "settings.service.form.enableNotification" : "Bildirimleri etkinleÅŸtir",
170 "settings.service.form.enableService" : "Servisi etkinleÅŸtir", 177 "settings.service.form.enableService" : "Servisi etkinleÅŸtir",
171 "settings.service.form.headlineBadges" : "Okunmamış mesajlar", 178 "settings.service.form.headlineBadges" : "Okunmamış mesajlar",
@@ -178,6 +185,12 @@
178 "settings.service.form.indirectMessages" : "Mesaj rozetini tüm yeni mesajlar için göster", 185 "settings.service.form.indirectMessages" : "Mesaj rozetini tüm yeni mesajlar için göster",
179 "settings.service.form.isMutedInfo" : "Devre dışı bırakıldığında, tüm bildirim sesleri sessize alınır", 186 "settings.service.form.isMutedInfo" : "Devre dışı bırakıldığında, tüm bildirim sesleri sessize alınır",
180 "settings.service.form.name" : "Ä°sim", 187 "settings.service.form.name" : "Ä°sim",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "Servisi kaydet", 194 "settings.service.form.saveButton" : "Servisi kaydet",
182 "settings.service.form.tabHosted" : "Barındırılan", 195 "settings.service.form.tabHosted" : "Barındırılan",
183 "settings.service.form.tabOnPremise" : "Kendi barındırılan", 196 "settings.service.form.tabOnPremise" : "Kendi barındırılan",
@@ -220,10 +233,12 @@
220 "subscription.euTaxInfo" : "AB vatandaşları: yerel satış vergileri uygulanabilir", 233 "subscription.euTaxInfo" : "AB vatandaşları: yerel satış vergileri uygulanabilir",
221 "subscription.features.ads" : "Reklam yok, asla!", 234 "subscription.features.ads" : "Reklam yok, asla!",
222 "subscription.features.comingSoon" : "yakında geliyor", 235 "subscription.features.comingSoon" : "yakında geliyor",
223 "subscription.features.customServices" : "Sen ve takımın için gizli servis",
224 "subscription.features.encryptedSync" : "Åžifreli oturum senkronizasyonu", 236 "subscription.features.encryptedSync" : "Åžifreli oturum senkronizasyonu",
237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "HipChat gibi kurum içi\/barındırılan hizmetler ekle", 238 "subscription.features.onpremise" : "HipChat gibi kurum içi\/barındırılan hizmetler ekle",
226 "subscription.features.vpn" : "Proxy & VPN desteÄŸi", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "Ücretli Franz Premium Destekçi Hesabına dahil", 242 "subscription.includedFeatures" : "Ücretli Franz Premium Destekçi Hesabına dahil",
228 "subscription.paymentSessionError" : "Ödeme formu başlatılamadı", 243 "subscription.paymentSessionError" : "Ödeme formu başlatılamadı",
229 "subscription.submit.label" : "Franz'ın gelişimini desteklemek istiyorum", 244 "subscription.submit.label" : "Franz'ın gelişimini desteklemek istiyorum",
diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json
index 3f732b896..94c6f7e54 100644
--- a/src/i18n/locales/uk.json
+++ b/src/i18n/locales/uk.json
@@ -1,4 +1,7 @@
1{ 1{
2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
2 "global.api.unhealthy" : "Ðе можна підключитиÑÑŒ до онлайн ÑервіÑів Franz", 5 "global.api.unhealthy" : "Ðе можна підключитиÑÑŒ до онлайн ÑервіÑів Franz",
3 "global.notConnectedToTheInternet" : "Ви не підключені до Інтернету.", 6 "global.notConnectedToTheInternet" : "Ви не підключені до Інтернету.",
4 "import.headline" : "Імпортувати ваші ÑервіÑи з Franz 4", 7 "import.headline" : "Імпортувати ваші ÑервіÑи з Franz 4",
@@ -26,49 +29,49 @@
26 "login.serverLogout" : "Ваша ÑеÑÑ–Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡Ð¸Ð»Ð°ÑÑŒ, будь лаÑка, зайдіть знову.", 29 "login.serverLogout" : "Ваша ÑеÑÑ–Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡Ð¸Ð»Ð°ÑÑŒ, будь лаÑка, зайдіть знову.",
27 "login.submit.label" : "Увійти", 30 "login.submit.label" : "Увійти",
28 "login.tokenExpired" : "Ваша ÑеÑÑ–Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡Ð¸Ð»Ð°ÑÑŒ, будь лаÑка, зайдіть знову.", 31 "login.tokenExpired" : "Ваша ÑеÑÑ–Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡Ð¸Ð»Ð°ÑÑŒ, будь лаÑка, зайдіть знову.",
29 "menu.app.about" : "About Franz", 32 "menu.app.about" : "Про Franz",
30 "menu.app.hide" : "Hide", 33 "menu.app.hide" : "Приховати",
31 "menu.app.hideOthers" : "Hide Others", 34 "menu.app.hideOthers" : "Приховати інші",
32 "menu.app.quit" : "Quit", 35 "menu.app.quit" : "Вийти",
33 "menu.app.settings" : "ÐалаштуваннÑ", 36 "menu.app.settings" : "ÐалаштуваннÑ",
34 "menu.app.unhide" : "Unhide", 37 "menu.app.unhide" : "Показати",
35 "menu.edit" : "Редагувати", 38 "menu.edit" : "Редагувати",
36 "menu.edit.copy" : "Copy", 39 "menu.edit.copy" : "Копіювати",
37 "menu.edit.cut" : "Cut", 40 "menu.edit.cut" : "Вирізати",
38 "menu.edit.delete" : "Видалити", 41 "menu.edit.delete" : "Видалити",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols", 42 "menu.edit.emojiSymbols" : "Емодзі та Ñимволи",
40 "menu.edit.paste" : "Paste", 43 "menu.edit.paste" : "Ð’Ñтавити",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", 44 "menu.edit.pasteAndMatchStyle" : "Ð’Ñтавити з дотриманнÑм Ñтилю",
42 "menu.edit.redo" : "Redo", 45 "menu.edit.redo" : "Повернути",
43 "menu.edit.selectAll" : "Select All", 46 "menu.edit.selectAll" : "Виділити вÑе",
44 "menu.edit.speech" : "Speech", 47 "menu.edit.speech" : "Мова",
45 "menu.edit.startDictation" : "Start Dictation", 48 "menu.edit.startDictation" : "Почати диктувати",
46 "menu.edit.startSpeaking" : "Start Speaking", 49 "menu.edit.startSpeaking" : "Почати говорити",
47 "menu.edit.stopSpeaking" : "Stop Speaking", 50 "menu.edit.stopSpeaking" : "Закінчити говорити",
48 "menu.edit.undo" : "Undo", 51 "menu.edit.undo" : "Відмінити",
49 "menu.file" : "File", 52 "menu.file" : "Файл",
50 "menu.help" : "Help", 53 "menu.help" : "Довідка",
51 "menu.help.changelog" : "Changelog", 54 "menu.help.changelog" : "Журнал змін",
52 "menu.help.learnMore" : "Learn More", 55 "menu.help.learnMore" : "Докладніше",
53 "menu.help.privacy" : "ЗаÑва про конфіденційніÑÑ‚ÑŒ", 56 "menu.help.privacy" : "ЗаÑва про конфіденційніÑÑ‚ÑŒ",
54 "menu.help.support" : "Support", 57 "menu.help.support" : "Підтримка",
55 "menu.help.tos" : "Terms of Service", 58 "menu.help.tos" : "Умови викориÑтаннÑ",
56 "menu.services" : "Services", 59 "menu.services" : "Служби",
57 "menu.services.addNewService" : "Add New Service...", 60 "menu.services.addNewService" : "Додати ÑервіÑ",
58 "menu.view" : "View", 61 "menu.view" : "ВиглÑд",
59 "menu.view.enterFullScreen" : "Enter Full Screen", 62 "menu.view.enterFullScreen" : "Вікно на повний екран",
60 "menu.view.exitFullScreen" : "Exit Full Screen", 63 "menu.view.exitFullScreen" : "Вийти з повного екрану",
61 "menu.view.reloadFranz" : "Reload Franz", 64 "menu.view.reloadFranz" : "Перезавантажити Franz",
62 "menu.view.reloadService" : "Reload Service", 65 "menu.view.reloadService" : "Перезавантажити ÑервіÑ",
63 "menu.view.resetZoom" : "Actual Size", 66 "menu.view.resetZoom" : "Фактичний розмір",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools", 67 "menu.view.toggleDevTools" : "Переключити інÑтрумент розробника",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen", 68 "menu.view.toggleFullScreen" : "ПереключитиÑÑ Ð½Ð° повний екран",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", 69 "menu.view.toggleServiceDevTools" : "Переключити інÑтрументи розробника ÑервіÑу",
67 "menu.view.zoomIn" : "Zoom In", 70 "menu.view.zoomIn" : "Збільшити маÑштаб",
68 "menu.view.zoomOut" : "Zoom Out", 71 "menu.view.zoomOut" : "Зменьшити маÑштаб",
69 "menu.window" : "Window", 72 "menu.window" : "Вікно",
70 "menu.window.close" : "Close", 73 "menu.window.close" : "Закрити",
71 "menu.window.minimize" : "Minimize", 74 "menu.window.minimize" : "Згорнути",
72 "password.email.label" : "Email адреÑа", 75 "password.email.label" : "Email адреÑа",
73 "password.headline" : "Скинути пароль", 76 "password.headline" : "Скинути пароль",
74 "password.link.login" : "Увійти до вашого акаунту", 77 "password.link.login" : "Увійти до вашого акаунту",
@@ -76,6 +79,7 @@
76 "password.noUser" : "Ðе знайдено жодного кориÑтувача з цією email адреÑою", 79 "password.noUser" : "Ðе знайдено жодного кориÑтувача з цією email адреÑою",
77 "password.submit.label" : "Подати", 80 "password.submit.label" : "Подати",
78 "password.successInfo" : "Будь лаÑка, перевірте ваш email", 81 "password.successInfo" : "Будь лаÑка, перевірте ваш email",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "Підтримайте Franz", 83 "pricing.headline" : "Підтримайте Franz",
80 "pricing.link.skipPayment" : "Я не хочу підтримувати розробку Franz.", 84 "pricing.link.skipPayment" : "Я не хочу підтримувати розробку Franz.",
81 "pricing.submit.label" : "Я хочу підтримати розробку Franz", 85 "pricing.submit.label" : "Я хочу підтримати розробку Franz",
@@ -93,7 +97,7 @@
93 "settings.account.accountType.premium" : "Преміум Ðкаунт Прихильника", 97 "settings.account.accountType.premium" : "Преміум Ðкаунт Прихильника",
94 "settings.account.buttonSave" : "Оновити профіль", 98 "settings.account.buttonSave" : "Оновити профіль",
95 "settings.account.deleteAccount" : "Видалити обліковий запиÑ", 99 "settings.account.deleteAccount" : "Видалити обліковий запиÑ",
96 "settings.account.deleteEmailSent" : "Ви отримали електронного лиÑта з лінком, щоб підтвердити Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑу. Ваш обліковий Ð·Ð°Ð¿Ð¸Ñ Ñ– дані не можна буде відновити!", 100 "settings.account.deleteEmailSent" : "Ви отримали електронного лиÑта з поÑиланнÑм, щоб підтвердити Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑу. Ваш обліковий Ð·Ð°Ð¿Ð¸Ñ Ñ– дані не можна буде відновити!",
97 "settings.account.deleteInfo" : "Якщо Вам більше не потрібний обліковий Ð·Ð°Ð¿Ð¸Ñ Franz, Ви можете його видалити Ñ– вÑÑ– Ñуміжні дані.", 101 "settings.account.deleteInfo" : "Якщо Вам більше не потрібний обліковий Ð·Ð°Ð¿Ð¸Ñ Franz, Ви можете його видалити Ñ– вÑÑ– Ñуміжні дані.",
98 "settings.account.headline" : "Ðкаунт", 102 "settings.account.headline" : "Ðкаунт",
99 "settings.account.headlineAccount" : "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ акаунт", 103 "settings.account.headlineAccount" : "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ акаунт",
@@ -111,23 +115,25 @@
111 "settings.app.buttonClearAllCache" : "ОчиÑтити кеш", 115 "settings.app.buttonClearAllCache" : "ОчиÑтити кеш",
112 "settings.app.buttonInstallUpdate" : "Перезавантажити Ñ– вÑтановити оновленнÑ", 116 "settings.app.buttonInstallUpdate" : "Перезавантажити Ñ– вÑтановити оновленнÑ",
113 "settings.app.buttonSearchForUpdate" : "Перевірити наÑвніÑÑ‚ÑŒ оновлень", 117 "settings.app.buttonSearchForUpdate" : "Перевірити наÑвніÑÑ‚ÑŒ оновлень",
114 "settings.app.cacheInfo" : "Кеш, Ñкий викориÑтовує Franz, займає {розмір} диÑку.", 118 "settings.app.cacheInfo" : "Кеш, Ñкий викориÑтовує Franz, займає {size} диÑкового проÑтору.",
115 "settings.app.currentVersion" : "Поточна верÑÑ–Ñ:", 119 "settings.app.currentVersion" : "Поточна верÑÑ–Ñ:",
116 "settings.app.form.autoLaunchInBackground" : "Відкрити у фоновому режимі", 120 "settings.app.form.autoLaunchInBackground" : "Відкрити у фоновому режимі",
117 "settings.app.form.autoLaunchOnStart" : "ЗапуÑкати Franz на початку", 121 "settings.app.form.autoLaunchOnStart" : "ЗапуÑкати Franz на початку",
118 "settings.app.form.beta" : "Включити бета-верÑÑ–Ñ—", 122 "settings.app.form.beta" : "Включити бета-верÑÑ–Ñ—",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", 123 "settings.app.form.darkMode" : "Join the Dark Side",
124 "settings.app.form.enableGPUAcceleration" : "Ввімкнути приÑÐºÐ¾Ñ€ÐµÐ½Ð½Ñ GPU",
120 "settings.app.form.enableMenuBar" : "Відображати Franz в панелі головного меню", 125 "settings.app.form.enableMenuBar" : "Відображати Franz в панелі головного меню",
121 "settings.app.form.enableSpellchecking" : "Увімкнути перевірку орфографії", 126 "settings.app.form.enableSpellchecking" : "Увімкнути перевірку орфографії",
122 "settings.app.form.enableSystemTray" : "Показувати Franz у ÑиÑтемному лотку", 127 "settings.app.form.enableSystemTray" : "Показувати Franz у ÑиÑтемному лотку",
123 "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock", 128 "settings.app.form.hideDockIcon" : "Сховати значок Franz в Dock",
124 "settings.app.form.language" : "Мова", 129 "settings.app.form.language" : "Мова",
125 "settings.app.form.minimizeToSystemTray" : "Мінімізувати Franz до ÑиÑтемного лотка", 130 "settings.app.form.minimizeToSystemTray" : "Мінімізувати Franz до ÑиÑтемного лотка",
126 "settings.app.form.runInBackground" : "Тримати Franz в фоні при закритті вікна", 131 "settings.app.form.runInBackground" : "Тримати Franz в фоні при закритті вікна",
127 "settings.app.form.showDisabledServices" : "Показати вкладку вимкнених ÑервіÑів", 132 "settings.app.form.showDisabledServices" : "Показати вкладку вимкнених ÑервіÑів",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "Показувати значок непрочитаних повідомлень коли ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ñ–", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "Показувати значок непрочитаних повідомлень коли ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ñ–",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "ÐалаштуваннÑ", 135 "settings.app.headline" : "ÐалаштуваннÑ",
130 "settings.app.headlineAdvanced" : "Advanced", 136 "settings.app.headlineAdvanced" : "Додаткові налаштуваннÑ",
131 "settings.app.headlineAppearance" : "ВиглÑд", 137 "settings.app.headlineAppearance" : "ВиглÑд",
132 "settings.app.headlineGeneral" : "Загальні", 138 "settings.app.headlineGeneral" : "Загальні",
133 "settings.app.headlineLanguage" : "Мова", 139 "settings.app.headlineLanguage" : "Мова",
@@ -152,7 +158,7 @@
152 "settings.recipes.mostPopular" : "Ðайбільш популÑрні", 158 "settings.recipes.mostPopular" : "Ðайбільш популÑрні",
153 "settings.recipes.nothingFound" : "Вибачте, але жоден ÑÐµÑ€Ð²Ñ–Ñ Ð½Ðµ відповідає пошуковому терміну.", 159 "settings.recipes.nothingFound" : "Вибачте, але жоден ÑÐµÑ€Ð²Ñ–Ñ Ð½Ðµ відповідає пошуковому терміну.",
154 "settings.recipes.servicesSuccessfulAddedInfo" : "Ð¡ÐµÑ€Ð²Ñ–Ñ ÑƒÑпішно додано", 160 "settings.recipes.servicesSuccessfulAddedInfo" : "Ð¡ÐµÑ€Ð²Ñ–Ñ ÑƒÑпішно додано",
155 "settings.searchService" : "Search service", 161 "settings.searchService" : "Знайти ÑервіÑ",
156 "settings.service.error.goBack" : "ПовернутиÑÑŒ до ÑервіÑів", 162 "settings.service.error.goBack" : "ПовернутиÑÑŒ до ÑервіÑів",
157 "settings.service.error.headline" : "Помилка", 163 "settings.service.error.headline" : "Помилка",
158 "settings.service.error.message" : "Ðе вдалоÑÑŒ завантажити Ñерверний протокол.", 164 "settings.service.error.message" : "Ðе вдалоÑÑŒ завантажити Ñерверний протокол.",
@@ -165,10 +171,11 @@
165 "settings.service.form.deleteButton" : "Видалити ÑервіÑ", 171 "settings.service.form.deleteButton" : "Видалити ÑервіÑ",
166 "settings.service.form.editServiceHeadline" : "Редагувати {name}", 172 "settings.service.form.editServiceHeadline" : "Редагувати {name}",
167 "settings.service.form.enableAudio" : "Увімкнути звук", 173 "settings.service.form.enableAudio" : "Увімкнути звук",
168 "settings.service.form.enableBadge" : "Show unread message badges", 174 "settings.service.form.enableBadge" : "Показувати непрочитані повідомленнÑ",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "Увімкнути ÑповіщеннÑ", 176 "settings.service.form.enableNotification" : "Увімкнути ÑповіщеннÑ",
170 "settings.service.form.enableService" : "Увімкнути ÑервіÑ", 177 "settings.service.form.enableService" : "Увімкнути ÑервіÑ",
171 "settings.service.form.headlineBadges" : "Unread message badges", 178 "settings.service.form.headlineBadges" : "Значки непрочитаних повідомлень",
172 "settings.service.form.headlineGeneral" : "Загальні", 179 "settings.service.form.headlineGeneral" : "Загальні",
173 "settings.service.form.headlineNotifications" : "СповіщеннÑ", 180 "settings.service.form.headlineNotifications" : "СповіщеннÑ",
174 "settings.service.form.icon" : "Ð¡Ð²Ð¾Ñ Ñ–ÐºÐ¾Ð½ÐºÐ°", 181 "settings.service.form.icon" : "Ð¡Ð²Ð¾Ñ Ñ–ÐºÐ¾Ð½ÐºÐ°",
@@ -176,13 +183,19 @@
176 "settings.service.form.iconUpload" : "Скиньте Ñвоє Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ натиÑніть тут", 183 "settings.service.form.iconUpload" : "Скиньте Ñвоє Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ натиÑніть тут",
177 "settings.service.form.indirectMessageInfo" : "Ви отримаєте ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ вÑÑ– нові Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð² каналі, а не лише про @username, @channel, @here, ...", 184 "settings.service.form.indirectMessageInfo" : "Ви отримаєте ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ вÑÑ– нові Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð² каналі, а не лише про @username, @channel, @here, ...",
178 "settings.service.form.indirectMessages" : "Показувати значок Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²ÑÑ–Ñ… нових повідомлень", 185 "settings.service.form.indirectMessages" : "Показувати значок Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²ÑÑ–Ñ… нових повідомлень",
179 "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", 186 "settings.service.form.isMutedInfo" : "Коли вимкнено, вÑÑ– ÑÐ¿Ð¾Ð²Ð¸Ñ‰ÐµÐ½Ð½Ñ Ñ‚Ð° Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ–Ð³Ð½Ð¾Ñ€ÑƒÑŽÑ‚ÑŒÑÑ",
180 "settings.service.form.name" : "Ім'Ñ", 187 "settings.service.form.name" : "Ім'Ñ",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "Зберегти ÑервіÑ", 194 "settings.service.form.saveButton" : "Зберегти ÑервіÑ",
182 "settings.service.form.tabHosted" : "Розміщений", 195 "settings.service.form.tabHosted" : "Розміщений",
183 "settings.service.form.tabOnPremise" : "СамоÑтійно розміщений â­ï¸", 196 "settings.service.form.tabOnPremise" : "СамоÑтійно розміщений â­ï¸",
184 "settings.service.form.team" : "Команда", 197 "settings.service.form.team" : "Команда",
185 "settings.service.form.useHostedService" : "Use the hosted {name} service.", 198 "settings.service.form.useHostedService" : "Викоритати розміщений {name} ÑервіÑ.",
186 "settings.service.form.yourServices" : "Ваші ÑервіÑи", 199 "settings.service.form.yourServices" : "Ваші ÑервіÑи",
187 "settings.services.deletedInfo" : "Ð¡ÐµÑ€Ð²Ñ–Ñ Ð±ÑƒÐ»Ð¾ видалено", 200 "settings.services.deletedInfo" : "Ð¡ÐµÑ€Ð²Ñ–Ñ Ð±ÑƒÐ»Ð¾ видалено",
188 "settings.services.discoverServices" : "Відкрийте Ð´Ð»Ñ Ñебе ÑервіÑи", 201 "settings.services.discoverServices" : "Відкрийте Ð´Ð»Ñ Ñебе ÑервіÑи",
@@ -212,7 +225,7 @@
212 "signup.headline" : "Увійти", 225 "signup.headline" : "Увійти",
213 "signup.lastname.label" : "Прізвище", 226 "signup.lastname.label" : "Прізвище",
214 "signup.legal.info" : "СтвореннÑм акаунту Franz ви приймаєте", 227 "signup.legal.info" : "СтвореннÑм акаунту Franz ви приймаєте",
215 "signup.legal.privacy" : "ÐаÑва про конфіденційніÑÑ‚ÑŒ", 228 "signup.legal.privacy" : "Політика конфіденційноÑÑ‚Ñ",
216 "signup.legal.terms" : "Умови викориÑтаннÑ", 229 "signup.legal.terms" : "Умови викориÑтаннÑ",
217 "signup.link.login" : "У Ð²Ð°Ñ Ð²Ð¶Ðµ Ñ” обліковий запиÑ, увійти?", 230 "signup.link.login" : "У Ð²Ð°Ñ Ð²Ð¶Ðµ Ñ” обліковий запиÑ, увійти?",
218 "signup.password.label" : "Пароль", 231 "signup.password.label" : "Пароль",
@@ -220,10 +233,12 @@
220 "subscription.euTaxInfo" : "Ð”Ð»Ñ Ð¶Ð¸Ñ‚ÐµÐ»Ñ–Ð² ЄС: можуть заÑтоÑовуватиÑÑ Ð¿Ð¾Ð´Ð°Ñ‚ÐºÐ¸", 233 "subscription.euTaxInfo" : "Ð”Ð»Ñ Ð¶Ð¸Ñ‚ÐµÐ»Ñ–Ð² ЄС: можуть заÑтоÑовуватиÑÑ Ð¿Ð¾Ð´Ð°Ñ‚ÐºÐ¸",
221 "subscription.features.ads" : "Жодної реклами!", 234 "subscription.features.ads" : "Жодної реклами!",
222 "subscription.features.comingSoon" : "очікуйте незабаром", 235 "subscription.features.comingSoon" : "очікуйте незабаром",
223 "subscription.features.customServices" : "Приватні ÑервіÑи Ð´Ð»Ñ Ð²Ð°Ñ Ñ– вашої команди",
224 "subscription.features.encryptedSync" : "Шифрована ÑÐ¸Ð½Ñ…Ñ€Ð¾Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ ÑеанÑу", 236 "subscription.features.encryptedSync" : "Шифрована ÑÐ¸Ð½Ñ…Ñ€Ð¾Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ ÑеанÑу",
237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "Додайте on-premise \/ hosted ÑервіÑи, такі Ñк Hipchat", 238 "subscription.features.onpremise" : "Додайте on-premise \/ hosted ÑервіÑи, такі Ñк Hipchat",
226 "subscription.features.vpn" : "Підтримка прокÑÑ– та VPN", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "Платний Преміальний Ðкаунт Прихильника Franz включає", 242 "subscription.includedFeatures" : "Платний Преміальний Ðкаунт Прихильника Franz включає",
228 "subscription.paymentSessionError" : "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ форму платежу", 243 "subscription.paymentSessionError" : "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ форму платежу",
229 "subscription.submit.label" : "Я хочу підтримати розробку Franz", 244 "subscription.submit.label" : "Я хочу підтримати розробку Franz",
@@ -241,10 +256,10 @@
241 "tabs.item.enableNotification" : "Увімкнути ÑповіщеннÑ", 256 "tabs.item.enableNotification" : "Увімкнути ÑповіщеннÑ",
242 "tabs.item.enableService" : "Увімкнути Ñлужбу", 257 "tabs.item.enableService" : "Увімкнути Ñлужбу",
243 "tabs.item.reload" : "Перезавантажити", 258 "tabs.item.reload" : "Перезавантажити",
244 "validation.email" : "{field} is not valid", 259 "validation.email" : "{field} не валідне",
245 "validation.minLength" : "{field} should be at least {length} characters long", 260 "validation.minLength" : "КількіÑÑ‚ÑŒ Ñимволів в {field} повина бути не меньше {length} ",
246 "validation.required" : "{field} is required", 261 "validation.required" : "{field} обов'Ñзвоке",
247 "validation.url" : "{field} is not a valid URL", 262 "validation.url" : "{field} не валідний URL",
248 "welcome.loginButton" : "Увійдіть до Ñвого акаунту", 263 "welcome.loginButton" : "Увійдіть до Ñвого акаунту",
249 "welcome.signupButton" : "Створити безплатний акаунт", 264 "welcome.signupButton" : "Створити безплатний акаунт",
250 "welcome.slogan" : "Обмін повідомленнÑми, Ñкий працює Ð´Ð»Ñ Ð²Ð°Ñ" 265 "welcome.slogan" : "Обмін повідомленнÑми, Ñкий працює Ð´Ð»Ñ Ð²Ð°Ñ"
diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json
index 3bbcc8288..23bff247d 100644
--- a/src/i18n/locales/zh-TW.json
+++ b/src/i18n/locales/zh-TW.json
@@ -1,4 +1,7 @@
1{ 1{
2 "feature.delayApp.action" : "Get a Franz Supporter License",
3 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
4 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
2 "global.api.unhealthy" : "無法連線至Franz的伺æœå™¨ã€‚", 5 "global.api.unhealthy" : "無法連線至Franz的伺æœå™¨ã€‚",
3 "global.notConnectedToTheInternet" : "你沒有連上網路。", 6 "global.notConnectedToTheInternet" : "你沒有連上網路。",
4 "import.headline" : "匯入Franz 4çš„æœå‹™", 7 "import.headline" : "匯入Franz 4çš„æœå‹™",
@@ -43,32 +46,32 @@
43 "menu.edit.selectAll" : "é¸æ“‡æ‰€æœ‰", 46 "menu.edit.selectAll" : "é¸æ“‡æ‰€æœ‰",
44 "menu.edit.speech" : "朗讀", 47 "menu.edit.speech" : "朗讀",
45 "menu.edit.startDictation" : "開始è½å¯«", 48 "menu.edit.startDictation" : "開始è½å¯«",
46 "menu.edit.startSpeaking" : "Start Speaking", 49 "menu.edit.startSpeaking" : "開始語音",
47 "menu.edit.stopSpeaking" : "Stop Speaking", 50 "menu.edit.stopSpeaking" : "åœæ­¢èªžéŸ³",
48 "menu.edit.undo" : "Undo", 51 "menu.edit.undo" : "復原",
49 "menu.file" : "File", 52 "menu.file" : "檔案",
50 "menu.help" : "Help", 53 "menu.help" : "求助",
51 "menu.help.changelog" : "Changelog", 54 "menu.help.changelog" : "變更紀錄",
52 "menu.help.learnMore" : "Learn More", 55 "menu.help.learnMore" : "深入瞭解",
53 "menu.help.privacy" : "éš±ç§è²æ˜Ž", 56 "menu.help.privacy" : "éš±ç§è²æ˜Ž",
54 "menu.help.support" : "Support", 57 "menu.help.support" : "支æ´",
55 "menu.help.tos" : "Terms of Service", 58 "menu.help.tos" : "æœå‹™æ¢æ¬¾",
56 "menu.services" : "Services", 59 "menu.services" : "æœå‹™",
57 "menu.services.addNewService" : "Add New Service...", 60 "menu.services.addNewService" : "新增æœå‹™",
58 "menu.view" : "View", 61 "menu.view" : "檢視",
59 "menu.view.enterFullScreen" : "Enter Full Screen", 62 "menu.view.enterFullScreen" : "進入全螢幕模å¼",
60 "menu.view.exitFullScreen" : "Exit Full Screen", 63 "menu.view.exitFullScreen" : "離開全螢幕模å¼",
61 "menu.view.reloadFranz" : "Reload Franz", 64 "menu.view.reloadFranz" : "é‡æ–°è¼‰å…¥Franz",
62 "menu.view.reloadService" : "Reload Service", 65 "menu.view.reloadService" : "é‡æ–°è¼‰å…¥æœå‹™",
63 "menu.view.resetZoom" : "Actual Size", 66 "menu.view.resetZoom" : "實際大å°",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools", 67 "menu.view.toggleDevTools" : "切æ›é–‹ç™¼è€…工具",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen", 68 "menu.view.toggleFullScreen" : "切æ›å…¨èž¢å¹•",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", 69 "menu.view.toggleServiceDevTools" : "切æ›æœå‹™é–‹ç™¼è€…工具",
67 "menu.view.zoomIn" : "Zoom In", 70 "menu.view.zoomIn" : "放大",
68 "menu.view.zoomOut" : "Zoom Out", 71 "menu.view.zoomOut" : "縮å°",
69 "menu.window" : "Window", 72 "menu.window" : "視窗",
70 "menu.window.close" : "Close", 73 "menu.window.close" : "關閉",
71 "menu.window.minimize" : "Minimize", 74 "menu.window.minimize" : "最å°åŒ–",
72 "password.email.label" : "é›»å­éƒµä»¶åœ°å€", 75 "password.email.label" : "é›»å­éƒµä»¶åœ°å€",
73 "password.headline" : "é‡è¨­å¯†ç¢¼", 76 "password.headline" : "é‡è¨­å¯†ç¢¼",
74 "password.link.login" : "登入您的帳號", 77 "password.link.login" : "登入您的帳號",
@@ -76,6 +79,7 @@
76 "password.noUser" : "找ä¸åˆ°è©²é›»å­éƒµä»¶åœ°å€çš„用戶", 79 "password.noUser" : "找ä¸åˆ°è©²é›»å­éƒµä»¶åœ°å€çš„用戶",
77 "password.submit.label" : "é€å‡º", 80 "password.submit.label" : "é€å‡º",
78 "password.successInfo" : "請檢查您的電å­éƒµä»¶", 81 "password.successInfo" : "請檢查您的電å­éƒµä»¶",
82 "premiumFeature.button.upgradeAccount" : "Upgrade account",
79 "pricing.headline" : "支æŒFranz", 83 "pricing.headline" : "支æŒFranz",
80 "pricing.link.skipPayment" : "我ä¸æƒ³æ”¯æŒFranz的開發。", 84 "pricing.link.skipPayment" : "我ä¸æƒ³æ”¯æŒFranz的開發。",
81 "pricing.submit.label" : "我想支æŒFranz的開發。", 85 "pricing.submit.label" : "我想支æŒFranz的開發。",
@@ -111,21 +115,23 @@
111 "settings.app.buttonClearAllCache" : "清除快å–", 115 "settings.app.buttonClearAllCache" : "清除快å–",
112 "settings.app.buttonInstallUpdate" : "é‡æ–°å•Ÿå‹•ä¸¦å®‰è£æ›´æ–°", 116 "settings.app.buttonInstallUpdate" : "é‡æ–°å•Ÿå‹•ä¸¦å®‰è£æ›´æ–°",
113 "settings.app.buttonSearchForUpdate" : "檢查更新", 117 "settings.app.buttonSearchForUpdate" : "檢查更新",
114 "settings.app.cacheInfo" : "Franz cache is currently using {size} of disk space.", 118 "settings.app.cacheInfo" : "Franzå¿«å–ç›®å‰å ç”¨ç£ç¢Ÿç©ºé–“{大å°}。",
115 "settings.app.currentVersion" : "ç›®å‰çš„版本", 119 "settings.app.currentVersion" : "ç›®å‰çš„版本",
116 "settings.app.form.autoLaunchInBackground" : "在背景開啟", 120 "settings.app.form.autoLaunchInBackground" : "在背景開啟",
117 "settings.app.form.autoLaunchOnStart" : "開機時啟動Franz", 121 "settings.app.form.autoLaunchOnStart" : "開機時啟動Franz",
118 "settings.app.form.beta" : "包å«æ¸¬è©¦ç‰ˆ", 122 "settings.app.form.beta" : "包å«æ¸¬è©¦ç‰ˆ",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", 123 "settings.app.form.darkMode" : "Join the Dark Side",
120 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", 124 "settings.app.form.enableGPUAcceleration" : "啟用GPU加速",
125 "settings.app.form.enableMenuBar" : "顯示Franz在é¸å–®åˆ—",
121 "settings.app.form.enableSpellchecking" : "啟用拼字檢查", 126 "settings.app.form.enableSpellchecking" : "啟用拼字檢查",
122 "settings.app.form.enableSystemTray" : "顯示Franz在系統列", 127 "settings.app.form.enableSystemTray" : "顯示Franz在系統列",
123 "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock", 128 "settings.app.form.hideDockIcon" : "在工作列中隱è—Franz圖示",
124 "settings.app.form.language" : "語言", 129 "settings.app.form.language" : "語言",
125 "settings.app.form.minimizeToSystemTray" : "最å°åŒ–Franz到系統列", 130 "settings.app.form.minimizeToSystemTray" : "最å°åŒ–Franz到系統列",
126 "settings.app.form.runInBackground" : "當關閉視窗時ä¿æŒFranz在背景é‹ä½œ", 131 "settings.app.form.runInBackground" : "當關閉視窗時ä¿æŒFranz在背景é‹ä½œ",
127 "settings.app.form.showDisabledServices" : "顯示åœç”¨çš„æœå‹™æ¨™ç±¤", 132 "settings.app.form.showDisabledServices" : "顯示åœç”¨çš„æœå‹™æ¨™ç±¤",
128 "settings.app.form.showMessagesBadgesWhenMuted" : "當通知關閉時,標記未讀的訊æ¯", 133 "settings.app.form.showMessagesBadgesWhenMuted" : "當通知關閉時,標記未讀的訊æ¯",
134 "settings.app.form.spellcheckerLanguage" : "Spell checking language",
129 "settings.app.headline" : "設定", 135 "settings.app.headline" : "設定",
130 "settings.app.headlineAdvanced" : "進階", 136 "settings.app.headlineAdvanced" : "進階",
131 "settings.app.headlineAppearance" : "外觀", 137 "settings.app.headlineAppearance" : "外觀",
@@ -133,15 +139,15 @@
133 "settings.app.headlineLanguage" : "語言", 139 "settings.app.headlineLanguage" : "語言",
134 "settings.app.headlineUpdates" : "æ›´æ–°", 140 "settings.app.headlineUpdates" : "æ›´æ–°",
135 "settings.app.restartRequired" : "需è¦é‡å•Ÿä»¥æ›´è®Š", 141 "settings.app.restartRequired" : "需è¦é‡å•Ÿä»¥æ›´è®Š",
136 "settings.app.subheadlineCache" : "Cache", 142 "settings.app.subheadlineCache" : "å¿«å–",
137 "settings.app.translationHelp" : "幫助我們將Franz翻譯æˆæ‚¨çš„語言。", 143 "settings.app.translationHelp" : "幫助我們將Franz翻譯æˆæ‚¨çš„語言。",
138 "settings.app.updateStatusAvailable" : "有å¯ç”¨æ›´æ–°ï¼Œä¸‹è¼‰ä¸­...", 144 "settings.app.updateStatusAvailable" : "有å¯ç”¨æ›´æ–°ï¼Œä¸‹è¼‰ä¸­...",
139 "settings.app.updateStatusSearching" : "正在æœå°‹æ›´æ–°", 145 "settings.app.updateStatusSearching" : "正在æœå°‹æ›´æ–°",
140 "settings.app.updateStatusUpToDate" : "您正在使用最新版本的Franz", 146 "settings.app.updateStatusUpToDate" : "您正在使用最新版本的Franz",
141 "settings.invite.headline" : "Invite Friends", 147 "settings.invite.headline" : "邀請朋å‹",
142 "settings.navigation.account" : "帳號", 148 "settings.navigation.account" : "帳號",
143 "settings.navigation.availableServices" : "å¯ä½¿ç”¨çš„æœå‹™", 149 "settings.navigation.availableServices" : "å¯ä½¿ç”¨çš„æœå‹™",
144 "settings.navigation.inviteFriends" : "Invite Friends", 150 "settings.navigation.inviteFriends" : "邀請朋å‹",
145 "settings.navigation.logout" : "登出", 151 "settings.navigation.logout" : "登出",
146 "settings.navigation.settings" : "設定", 152 "settings.navigation.settings" : "設定",
147 "settings.navigation.yourServices" : "您的æœå‹™", 153 "settings.navigation.yourServices" : "您的æœå‹™",
@@ -152,7 +158,7 @@
152 "settings.recipes.mostPopular" : "最熱門", 158 "settings.recipes.mostPopular" : "最熱門",
153 "settings.recipes.nothingFound" : "很抱歉,沒有與您的æœå°‹å­—詞符åˆçš„æœå‹™", 159 "settings.recipes.nothingFound" : "很抱歉,沒有與您的æœå°‹å­—詞符åˆçš„æœå‹™",
154 "settings.recipes.servicesSuccessfulAddedInfo" : "æœå‹™å·²æˆåŠŸæ–°å¢žã€‚", 160 "settings.recipes.servicesSuccessfulAddedInfo" : "æœå‹™å·²æˆåŠŸæ–°å¢žã€‚",
155 "settings.searchService" : "Search service", 161 "settings.searchService" : "尋找æœå‹™",
156 "settings.service.error.goBack" : "返回æœå‹™", 162 "settings.service.error.goBack" : "返回æœå‹™",
157 "settings.service.error.headline" : "錯誤", 163 "settings.service.error.headline" : "錯誤",
158 "settings.service.error.message" : "無法載入æœå‹™å‘½ä»¤ã€‚", 164 "settings.service.error.message" : "無法載入æœå‹™å‘½ä»¤ã€‚",
@@ -165,24 +171,31 @@
165 "settings.service.form.deleteButton" : "刪除æœå‹™", 171 "settings.service.form.deleteButton" : "刪除æœå‹™",
166 "settings.service.form.editServiceHeadline" : "編輯{å稱}", 172 "settings.service.form.editServiceHeadline" : "編輯{å稱}",
167 "settings.service.form.enableAudio" : "啟用音訊", 173 "settings.service.form.enableAudio" : "啟用音訊",
168 "settings.service.form.enableBadge" : "Show unread message badges", 174 "settings.service.form.enableBadge" : "顯示未讀訊æ¯åœ–示",
175 "settings.service.form.enableDarkMode" : "Enable Dark Mode",
169 "settings.service.form.enableNotification" : "啟用通知", 176 "settings.service.form.enableNotification" : "啟用通知",
170 "settings.service.form.enableService" : "啟用æœå‹™", 177 "settings.service.form.enableService" : "啟用æœå‹™",
171 "settings.service.form.headlineBadges" : "Unread message badges", 178 "settings.service.form.headlineBadges" : "未讀訊æ¯åœ–示",
172 "settings.service.form.headlineGeneral" : "一般", 179 "settings.service.form.headlineGeneral" : "一般",
173 "settings.service.form.headlineNotifications" : "Notifications", 180 "settings.service.form.headlineNotifications" : "通知",
174 "settings.service.form.icon" : "Custom icon", 181 "settings.service.form.icon" : "自訂圖示",
175 "settings.service.form.iconDelete" : "刪除", 182 "settings.service.form.iconDelete" : "刪除",
176 "settings.service.form.iconUpload" : "Drop your image, or click here", 183 "settings.service.form.iconUpload" : "拖曳你的圖片,或按此上傳",
177 "settings.service.form.indirectMessageInfo" : "您將收到有關頻é“中所有新消æ¯çš„通知,而ä¸åƒ…僅是@username,@channel,@here,...", 184 "settings.service.form.indirectMessageInfo" : "您將收到有關頻é“中所有新消æ¯çš„通知,而ä¸åƒ…僅是@username,@channel,@here,...",
178 "settings.service.form.indirectMessages" : "顯示所有新消æ¯çš„消æ¯æ¨™èªŒ", 185 "settings.service.form.indirectMessages" : "顯示所有新消æ¯çš„消æ¯æ¨™èªŒ",
179 "settings.service.form.isMutedInfo" : "åœç”¨æ™‚,所有通知è²å’Œè²éŸ³æ’­æ”¾éƒ½å°‡éœéŸ³", 186 "settings.service.form.isMutedInfo" : "åœç”¨æ™‚,所有通知è²å’Œè²éŸ³æ’­æ”¾éƒ½å°‡éœéŸ³",
180 "settings.service.form.name" : "å稱", 187 "settings.service.form.name" : "å稱",
188 "settings.service.form.proxy.headline" : "Proxy Settings",
189 "settings.service.form.proxy.host" : "Proxy Host\/IP",
190 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
191 "settings.service.form.proxy.isEnabled" : "Use Proxy",
192 "settings.service.form.proxy.password" : "Password (optional)",
193 "settings.service.form.proxy.user" : "User (optional)",
181 "settings.service.form.saveButton" : "ä¿å­˜æœå‹™", 194 "settings.service.form.saveButton" : "ä¿å­˜æœå‹™",
182 "settings.service.form.tabHosted" : "託管", 195 "settings.service.form.tabHosted" : "託管",
183 "settings.service.form.tabOnPremise" : "自我託管â­ï¸", 196 "settings.service.form.tabOnPremise" : "自我託管â­ï¸",
184 "settings.service.form.team" : "團隊", 197 "settings.service.form.team" : "團隊",
185 "settings.service.form.useHostedService" : "Use the hosted {name} service.", 198 "settings.service.form.useHostedService" : "使用託管{name}æœå‹™",
186 "settings.service.form.yourServices" : "您的æœå‹™", 199 "settings.service.form.yourServices" : "您的æœå‹™",
187 "settings.services.deletedInfo" : "已刪除æœå‹™", 200 "settings.services.deletedInfo" : "已刪除æœå‹™",
188 "settings.services.discoverServices" : "發ç¾æœå‹™", 201 "settings.services.discoverServices" : "發ç¾æœå‹™",
@@ -220,10 +233,12 @@
220 "subscription.euTaxInfo" : "æ­ç›Ÿå±…民:å¯èƒ½æŽ¡ç”¨ç•¶åœ°éŠ·å”®ç¨…", 233 "subscription.euTaxInfo" : "æ­ç›Ÿå±…民:å¯èƒ½æŽ¡ç”¨ç•¶åœ°éŠ·å”®ç¨…",
221 "subscription.features.ads" : "無廣告,永é !", 234 "subscription.features.ads" : "無廣告,永é !",
222 "subscription.features.comingSoon" : "å³å°‡æŽ¨å‡º", 235 "subscription.features.comingSoon" : "å³å°‡æŽ¨å‡º",
223 "subscription.features.customServices" : "為您和您的團隊æä¾›ç§äººæœå‹™",
224 "subscription.features.encryptedSync" : "加密的會話åŒæ­¥", 236 "subscription.features.encryptedSync" : "加密的會話åŒæ­¥",
237 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license",
225 "subscription.features.onpremise" : "添加本地\/託管æœå‹™å¦‚HipChat", 238 "subscription.features.onpremise" : "添加本地\/託管æœå‹™å¦‚HipChat",
226 "subscription.features.vpn" : "代ç†å’ŒVPN支æŒ", 239 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
240 "subscription.features.proxy" : "Proxy support for services",
241 "subscription.features.spellchecker" : "Support for spellchecker",
227 "subscription.includedFeatures" : "包å«é«˜ç´šFranz付費帳戶", 242 "subscription.includedFeatures" : "包å«é«˜ç´šFranz付費帳戶",
228 "subscription.paymentSessionError" : "無法åˆå§‹åŒ–付款表單", 243 "subscription.paymentSessionError" : "無法åˆå§‹åŒ–付款表單",
229 "subscription.submit.label" : "我想支æŒFranz的開發", 244 "subscription.submit.label" : "我想支æŒFranz的開發",
@@ -241,10 +256,10 @@
241 "tabs.item.enableNotification" : "啟用通知", 256 "tabs.item.enableNotification" : "啟用通知",
242 "tabs.item.enableService" : "啟用æœå‹™", 257 "tabs.item.enableService" : "啟用æœå‹™",
243 "tabs.item.reload" : "é‡æ–°è¼‰å…¥", 258 "tabs.item.reload" : "é‡æ–°è¼‰å…¥",
244 "validation.email" : "{field} is not valid", 259 "validation.email" : "{field}無效",
245 "validation.minLength" : "{field} should be at least {length} characters long", 260 "validation.minLength" : "{field}長度至少應為{length}個字",
246 "validation.required" : "{field} is required", 261 "validation.required" : "{field}為必填",
247 "validation.url" : "{field} is not a valid URL", 262 "validation.url" : "{field}ä¸æ˜¯å€‹æœ‰æ•ˆçš„網å€",
248 "welcome.loginButton" : "登入您的帳戶", 263 "welcome.loginButton" : "登入您的帳戶",
249 "welcome.signupButton" : "建立å…費帳號", 264 "welcome.signupButton" : "建立å…費帳號",
250 "welcome.slogan" : "為你通信" 265 "welcome.slogan" : "為你通信"
diff --git a/src/index.js b/src/index.js
index 5ba901b89..663f81cc9 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,10 +1,16 @@
1import { app, BrowserWindow, shell } from 'electron'; 1import { app, BrowserWindow, shell, ipcMain } from 'electron';
2
2import fs from 'fs-extra'; 3import fs from 'fs-extra';
3import path from 'path'; 4import path from 'path';
4
5import windowStateKeeper from 'electron-window-state'; 5import windowStateKeeper from 'electron-window-state';
6 6
7import { isDevMode, isMac, isWindows, isLinux } from './environment'; 7import { isDevMode, isMac, isWindows, isLinux } from './environment';
8
9// DEV MODE: Save user data into FranzDev
10if (isDevMode) {
11 app.setPath('userData', path.join(app.getPath('appData'), 'FranzDev'));
12}
13/* eslint-disable import/first */
8import ipcApi from './electron/ipc-api'; 14import ipcApi from './electron/ipc-api';
9import Tray from './lib/Tray'; 15import Tray from './lib/Tray';
10import Settings from './electron/Settings'; 16import Settings from './electron/Settings';
@@ -12,7 +18,10 @@ import handleDeepLink from './electron/deepLinking';
12import { appId } from './package.json'; // eslint-disable-line import/no-unresolved 18import { appId } from './package.json'; // eslint-disable-line import/no-unresolved
13import './electron/exception'; 19import './electron/exception';
14 20
15const debug = require('debug')('App'); 21import { DEFAULT_APP_SETTINGS } from './config';
22/* eslint-enable import/first */
23
24const debug = require('debug')('Franz:App');
16 25
17// Keep a global reference of the window object, if you don't, the window will 26// Keep a global reference of the window object, if you don't, the window will
18// be closed automatically when the JavaScript object is garbage collected. 27// be closed automatically when the JavaScript object is garbage collected.
@@ -57,7 +66,8 @@ if (isLinux && ['Pantheon', 'Unity:Unity7'].indexOf(process.env.XDG_CURRENT_DESK
57} 66}
58 67
59// Initialize Settings 68// Initialize Settings
60const settings = new Settings(); 69const settings = new Settings('app', DEFAULT_APP_SETTINGS);
70const proxySettings = new Settings('proxy');
61 71
62// Disable GPU acceleration 72// Disable GPU acceleration
63if (!settings.get('enableGPUAcceleration')) { 73if (!settings.get('enableGPUAcceleration')) {
@@ -82,14 +92,21 @@ const createWindow = () => {
82 minHeight: 500, 92 minHeight: 500,
83 titleBarStyle: isMac ? 'hidden' : '', 93 titleBarStyle: isMac ? 'hidden' : '',
84 frame: isLinux, 94 frame: isLinux,
85 backgroundColor: '#3498db', 95 backgroundColor: !settings.get('darkMode') ? '#3498db' : '#1E1E1E',
86 }); 96 });
87 97
88 // Initialize System Tray 98 // Initialize System Tray
89 const trayIcon = new Tray(); 99 const trayIcon = new Tray();
90 100
91 // Initialize ipcApi 101 // Initialize ipcApi
92 ipcApi({ mainWindow, settings, trayIcon }); 102 ipcApi({
103 mainWindow,
104 settings: {
105 app: settings,
106 proxy: proxySettings,
107 },
108 trayIcon,
109 });
93 110
94 // Manage Window State 111 // Manage Window State
95 mainWindowState.manage(mainWindow); 112 mainWindowState.manage(mainWindow);
@@ -115,7 +132,7 @@ const createWindow = () => {
115 mainWindow.hide(); 132 mainWindow.hide();
116 } 133 }
117 134
118 if (isWindows && settings.get('minimizeToSystemTray')) { 135 if (isWindows) {
119 mainWindow.setSkipTaskbar(true); 136 mainWindow.setSkipTaskbar(true);
120 } 137 }
121 } else { 138 } else {
@@ -172,6 +189,24 @@ const createWindow = () => {
172// Some APIs can only be used after this event occurs. 189// Some APIs can only be used after this event occurs.
173app.on('ready', createWindow); 190app.on('ready', createWindow);
174 191
192// This is the worst possible implementation as the webview.webContents based callback doesn't work 🖕
193app.on('login', (event, webContents, request, authInfo, callback) => {
194 event.preventDefault();
195 debug('browser login event', authInfo);
196 if (authInfo.isProxy && authInfo.scheme === 'basic') {
197 webContents.send('get-service-id');
198
199 ipcMain.on('service-id', (e, id) => {
200 debug('Received service id', id);
201
202 const ps = proxySettings.get(id);
203 callback(ps.user, ps.password);
204 });
205 } else {
206 // TODO: implement basic auth
207 }
208});
209
175// Quit when all windows are closed. 210// Quit when all windows are closed.
176app.on('window-all-closed', () => { 211app.on('window-all-closed', () => {
177 // On OS X it is common for applications and their menu bar 212 // On OS X it is common for applications and their menu bar
diff --git a/src/lib/Menu.js b/src/lib/Menu.js
index e3f8a04fa..32ec1b207 100644
--- a/src/lib/Menu.js
+++ b/src/lib/Menu.js
@@ -285,7 +285,7 @@ const _templateFactory = intl => [
285 submenu: [ 285 submenu: [
286 { 286 {
287 label: intl.formatMessage(menuItems.learnMore), 287 label: intl.formatMessage(menuItems.learnMore),
288 click() { shell.openExternal('http://meetfranz.com'); }, 288 click() { shell.openExternal('https://meetfranz.com'); },
289 }, 289 },
290 { 290 {
291 label: intl.formatMessage(menuItems.changelog), 291 label: intl.formatMessage(menuItems.changelog),
@@ -296,7 +296,7 @@ const _templateFactory = intl => [
296 }, 296 },
297 { 297 {
298 label: intl.formatMessage(menuItems.support), 298 label: intl.formatMessage(menuItems.support),
299 click() { shell.openExternal('http://meetfranz.com/support'); }, 299 click() { shell.openExternal('https://meetfranz.com/support'); },
300 }, 300 },
301 { 301 {
302 type: 'separator', 302 type: 'separator',
@@ -485,7 +485,9 @@ export default class FranzMenu {
485 this.stores = stores; 485 this.stores = stores;
486 this.actions = actions; 486 this.actions = actions;
487 487
488 autorun(this._build.bind(this)); 488 setTimeout(() => {
489 autorun(this._build.bind(this));
490 }, 10);
489 } 491 }
490 492
491 rebuild() { 493 rebuild() {
@@ -497,7 +499,6 @@ export default class FranzMenu {
497 } 499 }
498 500
499 _build() { 501 _build() {
500 // console.log(window.franz);
501 const serviceTpl = Object.assign([], this.serviceTpl); // need to clone object so we don't modify computed (cached) object 502 const serviceTpl = Object.assign([], this.serviceTpl); // need to clone object so we don't modify computed (cached) object
502 503
503 if (window.franz === undefined) { 504 if (window.franz === undefined) {
@@ -521,6 +522,7 @@ export default class FranzMenu {
521 click: () => { 522 click: () => {
522 this.actions.service.openDevToolsForActiveService(); 523 this.actions.service.openDevToolsForActiveService();
523 }, 524 },
525 enabled: this.stores.user.isLoggedIn && this.stores.services.enabled.length > 0,
524 }); 526 });
525 527
526 tpl[1].submenu.unshift({ 528 tpl[1].submenu.unshift({
@@ -559,6 +561,7 @@ export default class FranzMenu {
559 click: () => { 561 click: () => {
560 this.actions.ui.openSettings({ path: 'app' }); 562 this.actions.ui.openSettings({ path: 'app' });
561 }, 563 },
564 enabled: this.stores.user.isLoggedIn,
562 }, 565 },
563 { 566 {
564 type: 'separator', 567 type: 'separator',
@@ -640,6 +643,7 @@ export default class FranzMenu {
640 click: () => { 643 click: () => {
641 this.actions.ui.openSettings({ path: 'app' }); 644 this.actions.ui.openSettings({ path: 'app' });
642 }, 645 },
646 enabled: this.stores.user.isLoggedIn,
643 }, 647 },
644 { 648 {
645 type: 'separator', 649 type: 'separator',
@@ -661,6 +665,7 @@ export default class FranzMenu {
661 click: () => { 665 click: () => {
662 this.actions.ui.openSettings({ path: 'recipes' }); 666 this.actions.ui.openSettings({ path: 'recipes' });
663 }, 667 },
668 enabled: this.stores.user.isLoggedIn,
664 }, { 669 }, {
665 type: 'separator', 670 type: 'separator',
666 }); 671 });
@@ -680,7 +685,7 @@ export default class FranzMenu {
680 if (this.stores.user.isLoggedIn) { 685 if (this.stores.user.isLoggedIn) {
681 return services.map((service, i) => ({ 686 return services.map((service, i) => ({
682 label: this._getServiceName(service), 687 label: this._getServiceName(service),
683 accelerator: i <= 9 ? `${cmdKey}+${i + 1}` : null, 688 accelerator: i < 9 ? `${cmdKey}+${i + 1}` : null,
684 type: 'radio', 689 type: 'radio',
685 checked: service.isActive, 690 checked: service.isActive,
686 click: () => { 691 click: () => {
diff --git a/src/lib/analytics.js b/src/lib/analytics.js
index 585cbcdba..8b9a44579 100644
--- a/src/lib/analytics.js
+++ b/src/lib/analytics.js
@@ -2,7 +2,7 @@ import { remote } from 'electron';
2import { GA_ID } from '../config'; 2import { GA_ID } from '../config';
3// import { isDevMode } from '../environment'; 3// import { isDevMode } from '../environment';
4 4
5const debug = require('debug')('Analytics'); 5const debug = require('debug')('Franz:Analytics');
6 6
7const { app } = remote; 7const { app } = remote;
8 8
diff --git a/src/models/News.js b/src/models/News.js
index a96e6550f..caf1d70e5 100644
--- a/src/models/News.js
+++ b/src/models/News.js
@@ -1,10 +1,10 @@
1// @flow 1// @flow
2 2
3export default class News { 3export default class News {
4 id: string = ''; 4 id = '';
5 message: string = ''; 5 message = '';
6 type: string = 'primary'; 6 type = 'primary';
7 sticky: bool = false; 7 sticky = false;
8 8
9 constructor(data) { 9 constructor(data) {
10 if (!data.id) { 10 if (!data.id) {
diff --git a/src/models/Plan.js b/src/models/Plan.js
index e77353824..c7b4a0962 100644
--- a/src/models/Plan.js
+++ b/src/models/Plan.js
@@ -1,11 +1,11 @@
1// @flow 1// @flow
2 2
3export default class Plan { 3export default class Plan {
4 month: { 4 month = {
5 id: '', 5 id: '',
6 price: 0, 6 price: 0,
7 } 7 }
8 year: { 8 year = {
9 id: '', 9 id: '',
10 price: 0, 10 price: 0,
11 } 11 }
diff --git a/src/models/Recipe.js b/src/models/Recipe.js
index 032a9aa19..43c44514c 100644
--- a/src/models/Recipe.js
+++ b/src/models/Recipe.js
@@ -1,5 +1,7 @@
1import emailParser from 'address-rfc2822'; 1import emailParser from 'address-rfc2822';
2import semver from 'semver'; 2import semver from 'semver';
3import fs from 'fs-extra';
4import path from 'path';
3 5
4export default class Recipe { 6export default class Recipe {
5 id = ''; 7 id = '';
@@ -73,4 +75,8 @@ export default class Recipe {
73 75
74 return []; 76 return [];
75 } 77 }
78
79 get hasDarkMode() {
80 return fs.pathExistsSync(path.join(this.path, 'darkmode.css'));
81 }
76} 82}
diff --git a/src/models/RecipePreview.js b/src/models/RecipePreview.js
index 525a5c4b5..7470d757a 100644
--- a/src/models/RecipePreview.js
+++ b/src/models/RecipePreview.js
@@ -1,10 +1,10 @@
1// @flow 1// @flow
2 2
3export default class RecipePreview { 3export default class RecipePreview {
4 id: string = ''; 4 id = '';
5 name: string = ''; 5 name = '';
6 icon: string = ''; // TODO: check if this isn't replaced by `icons` 6 icon = ''; // TODO: check if this isn't replaced by `icons`
7 featured: bool = false; 7 featured = false;
8 8
9 constructor(data) { 9 constructor(data) {
10 if (!data.id) { 10 if (!data.id) {
diff --git a/src/models/Service.js b/src/models/Service.js
index bafb3f564..41180dd76 100644
--- a/src/models/Service.js
+++ b/src/models/Service.js
@@ -7,7 +7,7 @@ export default class Service {
7 recipe = ''; 7 recipe = '';
8 webview = null; 8 webview = null;
9 timer = null; 9 timer = null;
10 events: {}; 10 events = {};
11 11
12 isAttached = false; 12 isAttached = false;
13 13
@@ -28,6 +28,7 @@ export default class Service {
28 @observable iconUrl = ''; 28 @observable iconUrl = '';
29 @observable hasCustomUploadedIcon = false; 29 @observable hasCustomUploadedIcon = false;
30 @observable hasCrashed = false; 30 @observable hasCrashed = false;
31 @observable isDarkModeEnabled = false;
31 32
32 constructor(data, recipe) { 33 constructor(data, recipe) {
33 if (!data) { 34 if (!data) {
@@ -64,8 +65,12 @@ export default class Service {
64 65
65 this.isMuted = data.isMuted !== undefined ? data.isMuted : this.isMuted; 66 this.isMuted = data.isMuted !== undefined ? data.isMuted : this.isMuted;
66 67
68 this.isDarkModeEnabled = data.isDarkModeEnabled !== undefined ? data.isDarkModeEnabled : this.isDarkModeEnabled;
69
67 this.hasCustomUploadedIcon = data.hasCustomIcon !== undefined ? data.hasCustomIcon : this.hasCustomUploadedIcon; 70 this.hasCustomUploadedIcon = data.hasCustomIcon !== undefined ? data.hasCustomIcon : this.hasCustomUploadedIcon;
68 71
72 this.proxy = data.proxy !== undefined ? data.proxy : this.proxy;
73
69 this.recipe = recipe; 74 this.recipe = recipe;
70 75
71 autorun(() => { 76 autorun(() => {
diff --git a/src/models/Settings.js b/src/models/Settings.js
deleted file mode 100644
index 0e4c59057..000000000
--- a/src/models/Settings.js
+++ /dev/null
@@ -1,33 +0,0 @@
1import { observable, extendObservable } from 'mobx';
2import { DEFAULT_APP_SETTINGS } from '../config';
3
4export default class Settings {
5 @observable app = DEFAULT_APP_SETTINGS
6
7 @observable service = {
8 activeService: '',
9 }
10
11 @observable group = {
12 collapsed: [],
13 disabled: [],
14 }
15
16 @observable stats = {
17 appStarts: 0,
18 }
19
20 @observable migration = {}
21
22 constructor({ app, service, group, stats, migration }) {
23 Object.assign(this.app, app);
24 Object.assign(this.service, service);
25 Object.assign(this.group, group);
26 Object.assign(this.stats, stats);
27 Object.assign(this.migration, migration);
28 }
29
30 update(data) {
31 extendObservable(this, data);
32 }
33}
diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js
index 38edff1b4..6f156a96d 100644
--- a/src/stores/AppStore.js
+++ b/src/stores/AppStore.js
@@ -12,12 +12,14 @@ import { CHECK_INTERVAL, DEFAULT_APP_SETTINGS } from '../config';
12import { isMac, isLinux, isWindows } from '../environment'; 12import { isMac, isLinux, isWindows } from '../environment';
13import locales from '../i18n/translations'; 13import locales from '../i18n/translations';
14import { gaEvent } from '../lib/analytics'; 14import { gaEvent } from '../lib/analytics';
15import { onVisibilityChange } from '../helpers/visibility-helper';
16import { getLocale } from '../helpers/i18n-helpers';
15 17
16import { getServiceIdsFromPartitions, removeServicePartitionDirectory } from '../helpers/service-helpers.js'; 18import { getServiceIdsFromPartitions, removeServicePartitionDirectory } from '../helpers/service-helpers.js';
17 19
18const debug = require('debug')('AppStore'); 20const debug = require('debug')('Franz:AppStore');
19 21
20const { app } = remote; 22const { app, systemPreferences } = remote;
21 23
22const mainWindow = remote.getCurrentWindow(); 24const mainWindow = remote.getCurrentWindow();
23 25
@@ -50,10 +52,16 @@ export default class AppStore extends Store {
50 52
51 @observable isSystemMuteOverridden = false; 53 @observable isSystemMuteOverridden = false;
52 54
55 @observable isSystemDarkModeEnabled = false;
56
53 @observable isClearingAllCache = false; 57 @observable isClearingAllCache = false;
54 58
55 @observable isFullScreen = mainWindow.isFullScreen(); 59 @observable isFullScreen = mainWindow.isFullScreen();
56 60
61 @observable isFocused = true;
62
63 dictionaries = [];
64
57 constructor(...args) { 65 constructor(...args) {
58 super(...args); 66 super(...args);
59 67
@@ -77,7 +85,7 @@ export default class AppStore extends Store {
77 ]); 85 ]);
78 } 86 }
79 87
80 setup() { 88 async setup() {
81 this._appStartsCounter(); 89 this._appStartsCounter();
82 // Focus the active service 90 // Focus the active service
83 window.addEventListener('focus', this.actions.service.focusActiveService); 91 window.addEventListener('focus', this.actions.service.focusActiveService);
@@ -159,6 +167,14 @@ export default class AppStore extends Store {
159 this.locale = this._getDefaultLocale(); 167 this.locale = this._getDefaultLocale();
160 168
161 this._healthCheck(); 169 this._healthCheck();
170
171 this.isSystemDarkModeEnabled = systemPreferences.isDarkMode();
172
173 onVisibilityChange((isVisible) => {
174 this.isFocused = isVisible;
175
176 debug('Window is visible/focused', isVisible);
177 });
162 } 178 }
163 179
164 @computed get cacheSize() { 180 @computed get cacheSize() {
@@ -304,31 +320,12 @@ export default class AppStore extends Store {
304 } 320 }
305 321
306 _getDefaultLocale() { 322 _getDefaultLocale() {
307 let locale = app.getLocale(); 323 return getLocale({
308 if (locales[locale] === undefined) { 324 locale: app.getLocale(),
309 let localeFuzzy; 325 locales,
310 Object.keys(locales).forEach((localStr) => { 326 defaultLocale,
311 if (locales && Object.hasOwnProperty.call(locales, localStr)) { 327 fallbackLocale: DEFAULT_APP_SETTINGS.fallbackLocale,
312 if (locale.substring(0, 2) === localStr.substring(0, 2)) { 328 });
313 localeFuzzy = localStr;
314 }
315 }
316 });
317
318 if (localeFuzzy !== undefined) {
319 locale = localeFuzzy;
320 }
321 }
322
323 if (locales[locale] === undefined) {
324 locale = defaultLocale;
325 }
326
327 if (!locale) {
328 locale = DEFAULT_APP_SETTINGS.fallbackLocale;
329 }
330
331 return locale;
332 } 329 }
333 330
334 _muteAppHandler() { 331 _muteAppHandler() {
diff --git a/src/stores/DictionaryStore.js b/src/stores/DictionaryStore.js
new file mode 100644
index 000000000..b9c5f2abf
--- /dev/null
+++ b/src/stores/DictionaryStore.js
@@ -0,0 +1,45 @@
1import { observable } from 'mobx';
2import { createDownloader } from 'hunspell-dict-downloader';
3
4import Store from './lib/Store';
5
6import { DICTIONARY_PATH } from '../config';
7
8const debug = require('debug')('Franz:DictionaryStore');
9
10export default class DictionaryStore extends Store {
11 @observable available = []
12 @observable installed = []
13
14 _dictDownloader = null
15
16 constructor(...args) {
17 super(...args);
18
19 this.registerReactions([
20 this._downloadDictForUserLocale.bind(this),
21 ]);
22 }
23
24 async setup() {
25 this._dictDownloader = await createDownloader(DICTIONARY_PATH);
26 debug('dicts', this._dictDownloader);
27
28 this.available = this._dictDownloader.availableDictionaries;
29 this.installed = this._dictDownloader.installedDictionaries;
30
31 if (!this.installed.includes('en-us')) {
32 this._dictDownloader.installDictionary('en-us');
33 }
34 }
35
36 _downloadDictForUserLocale() {
37 const spellcheckerLanguage = this.stores.settings.app.spellcheckerLanguage;
38
39 debug('trying to Downloading dict for', spellcheckerLanguage);
40 if (!this.installed.includes(spellcheckerLanguage) && this.available.includes(spellcheckerLanguage) && spellcheckerLanguage !== 'en-us') {
41 debug('Downloading dict for', spellcheckerLanguage);
42 this._dictDownloader.installDictionary(spellcheckerLanguage);
43 }
44 }
45}
diff --git a/src/stores/FeaturesStore.js b/src/stores/FeaturesStore.js
new file mode 100644
index 000000000..10c893d3f
--- /dev/null
+++ b/src/stores/FeaturesStore.js
@@ -0,0 +1,50 @@
1import { computed, observable } from 'mobx';
2
3import Store from './lib/Store';
4import CachedRequest from './lib/CachedRequest';
5
6import delayApp from '../features/delayApp';
7import spellchecker from '../features/spellchecker';
8import serviceProxy from '../features/serviceProxy';
9
10import { DEFAULT_FEATURES_CONFIG } from '../config';
11
12export default class FeaturesStore extends Store {
13 @observable defaultFeaturesRequest = new CachedRequest(this.api.features, 'default');
14 @observable featuresRequest = new CachedRequest(this.api.features, 'features');
15
16 async setup() {
17 this.registerReactions([
18 this._monitorLoginStatus.bind(this),
19 ]);
20
21 await this.featuresRequest._promise;
22 setTimeout(this._enableFeatures.bind(this), 1);
23 }
24
25 @computed get anonymousFeatures() {
26 return this.defaultFeaturesRequest.execute().result || DEFAULT_FEATURES_CONFIG;
27 }
28
29 @computed get features() {
30 if (this.stores.user.isLoggedIn) {
31 return this.featuresRequest.execute().result || DEFAULT_FEATURES_CONFIG;
32 }
33
34 return DEFAULT_FEATURES_CONFIG;
35 }
36
37 _monitorLoginStatus() {
38 if (this.stores.user.isLoggedIn) {
39 this.featuresRequest.invalidate({ immediately: true });
40 } else {
41 this.defaultFeaturesRequest.invalidate({ immediately: true });
42 }
43 }
44
45 _enableFeatures() {
46 delayApp(this.stores, this.actions);
47 spellchecker(this.stores, this.actions);
48 serviceProxy(this.stores, this.actions);
49 }
50}
diff --git a/src/stores/RecipesStore.js b/src/stores/RecipesStore.js
index a24308f6a..f2480bc8e 100644
--- a/src/stores/RecipesStore.js
+++ b/src/stores/RecipesStore.js
@@ -5,7 +5,7 @@ import CachedRequest from './lib/CachedRequest';
5import Request from './lib/Request'; 5import Request from './lib/Request';
6import { matchRoute } from '../helpers/routing-helpers'; 6import { matchRoute } from '../helpers/routing-helpers';
7 7
8const debug = require('debug')('RecipeStore'); 8const debug = require('debug')('Franz:RecipeStore');
9 9
10export default class RecipesStore extends Store { 10export default class RecipesStore extends Store {
11 @observable allRecipesRequest = new CachedRequest(this.api.recipes, 'all'); 11 @observable allRecipesRequest = new CachedRequest(this.api.recipes, 'all');
diff --git a/src/stores/RequestStore.js b/src/stores/RequestStore.js
index 595852583..bbfe6f6df 100644
--- a/src/stores/RequestStore.js
+++ b/src/stores/RequestStore.js
@@ -2,7 +2,7 @@ import { action, computed, observable } from 'mobx';
2 2
3import Store from './lib/Store'; 3import Store from './lib/Store';
4 4
5const debug = require('debug')('RequestsStore'); 5const debug = require('debug')('Franz:RequestsStore');
6 6
7export default class RequestStore extends Store { 7export default class RequestStore extends Store {
8 @observable userInfoRequest; 8 @observable userInfoRequest;
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js
index ccb85421a..99b091589 100644
--- a/src/stores/ServicesStore.js
+++ b/src/stores/ServicesStore.js
@@ -7,7 +7,7 @@ import CachedRequest from './lib/CachedRequest';
7import { matchRoute } from '../helpers/routing-helpers'; 7import { matchRoute } from '../helpers/routing-helpers';
8import { gaEvent } from '../lib/analytics'; 8import { gaEvent } from '../lib/analytics';
9 9
10const debug = require('debug')('ServiceStore'); 10const debug = require('debug')('Franz:ServiceStore');
11 11
12export default class ServicesStore extends Store { 12export default class ServicesStore extends Store {
13 @observable allServicesRequest = new CachedRequest(this.api.services, 'all'); 13 @observable allServicesRequest = new CachedRequest(this.api.services, 'all');
@@ -67,9 +67,14 @@ export default class ServicesStore extends Store {
67 } 67 }
68 68
69 setup() { 69 setup() {
70 // Single key reactions 70 // Single key reactions for the sake of your CPU
71 reaction( 71 reaction(
72 () => this.stores.settings.all.app.enableSpellchecking, 72 () => this.stores.settings.app.enableSpellchecking,
73 () => this._shareSettingsWithServiceProcess(),
74 );
75
76 reaction(
77 () => this.stores.settings.app.spellcheckerLanguage,
73 () => this._shareSettingsWithServiceProcess(), 78 () => this._shareSettingsWithServiceProcess(),
74 ); 79 );
75 } 80 }
@@ -93,7 +98,7 @@ export default class ServicesStore extends Store {
93 return this.stores.settings.all.app.showDisabledServices ? this.all : this.enabled; 98 return this.stores.settings.all.app.showDisabledServices ? this.all : this.enabled;
94 } 99 }
95 100
96 // This is just used to avoid unnecessary rerendering of resource-heavy webviews 101 // This is just used to avoid unnecessary rerendering of resource-heavy webviews
97 @computed get allDisplayedUnordered() { 102 @computed get allDisplayedUnordered() {
98 const services = this.allServicesRequest.execute().result || []; 103 const services = this.allServicesRequest.execute().result || [];
99 return this.stores.settings.all.app.showDisabledServices ? services : services.filter(service => service.isEnabled); 104 return this.stores.settings.all.app.showDisabledServices ? services : services.filter(service => service.isEnabled);
@@ -143,6 +148,7 @@ export default class ServicesStore extends Store {
143 // Actions 148 // Actions
144 @action async _createService({ recipeId, serviceData, redirect = true }) { 149 @action async _createService({ recipeId, serviceData, redirect = true }) {
145 const data = this._cleanUpTeamIdAndCustomUrl(recipeId, serviceData); 150 const data = this._cleanUpTeamIdAndCustomUrl(recipeId, serviceData);
151
146 const response = await this.createServiceRequest.execute(recipeId, data)._promise; 152 const response = await this.createServiceRequest.execute(recipeId, data)._promise;
147 153
148 this.allServicesRequest.patch((result) => { 154 this.allServicesRequest.patch((result) => {
@@ -150,6 +156,13 @@ export default class ServicesStore extends Store {
150 result.push(response.data); 156 result.push(response.data);
151 }); 157 });
152 158
159 this.actions.settings.update({
160 type: 'proxy',
161 data: {
162 [`${response.data.id}`]: data.proxy,
163 },
164 });
165
153 this.actionStatus = response.status || []; 166 this.actionStatus = response.status || [];
154 167
155 if (redirect) { 168 if (redirect) {
@@ -214,6 +227,21 @@ export default class ServicesStore extends Store {
214 await request._promise; 227 await request._promise;
215 this.actionStatus = request.result.status; 228 this.actionStatus = request.result.status;
216 229
230 if (service.isEnabled) {
231 this._sendIPCMessage({
232 serviceId,
233 channel: 'service-settings-update',
234 args: newData,
235 });
236 }
237
238 this.actions.settings.update({
239 type: 'proxy',
240 data: {
241 [`${serviceId}`]: data.proxy,
242 },
243 });
244
217 if (redirect) { 245 if (redirect) {
218 this.stores.router.push('/settings/services'); 246 this.stores.router.push('/settings/services');
219 gaEvent('Service', 'update', service.recipe.id); 247 gaEvent('Service', 'update', service.recipe.id);
@@ -411,6 +439,8 @@ export default class ServicesStore extends Store {
411 439
412 @action _reload({ serviceId }) { 440 @action _reload({ serviceId }) {
413 const service = this.one(serviceId); 441 const service = this.one(serviceId);
442 if (!service.isEnabled) return;
443
414 service.resetMessageCount(); 444 service.resetMessageCount();
415 445
416 service.webview.loadURL(service.url); 446 service.webview.loadURL(service.url);
@@ -567,9 +597,10 @@ export default class ServicesStore extends Store {
567 } 597 }
568 598
569 _shareSettingsWithServiceProcess() { 599 _shareSettingsWithServiceProcess() {
600 const settings = this.stores.settings.app;
570 this.actions.service.sendIPCMessageToAllServices({ 601 this.actions.service.sendIPCMessageToAllServices({
571 channel: 'settings-update', 602 channel: 'settings-update',
572 args: this.stores.settings.all.app, 603 args: settings,
573 }); 604 });
574 } 605 }
575 606
diff --git a/src/stores/SettingsStore.js b/src/stores/SettingsStore.js
index d8519c609..9ea14a911 100644
--- a/src/stores/SettingsStore.js
+++ b/src/stores/SettingsStore.js
@@ -1,54 +1,105 @@
1import { remote, ipcRenderer } from 'electron';
1import { action, computed, observable } from 'mobx'; 2import { action, computed, observable } from 'mobx';
2import localStorage from 'mobx-localstorage'; 3import localStorage from 'mobx-localstorage';
3 4
4import Store from './lib/Store'; 5import Store from './lib/Store';
5import SettingsModel from '../models/Settings';
6import Request from './lib/Request'; 6import Request from './lib/Request';
7import CachedRequest from './lib/CachedRequest'; 7import CachedRequest from './lib/CachedRequest';
8import { getLocale } from '../helpers/i18n-helpers';
8 9
9const debug = require('debug')('SettingsStore'); 10import { DEFAULT_APP_SETTINGS, FILE_SYSTEM_SETTINGS_TYPES } from '../config';
11import { SPELLCHECKER_LOCALES } from '../i18n/languages';
12
13const { systemPreferences } = remote;
14const debug = require('debug')('Franz:SettingsStore');
10 15
11export default class SettingsStore extends Store { 16export default class SettingsStore extends Store {
12 @observable appSettingsRequest = new CachedRequest(this.api.local, 'getAppSettings'); 17 @observable appSettingsRequest = new CachedRequest(this.api.local, 'getAppSettings');
13 @observable updateAppSettingsRequest = new Request(this.api.local, 'updateAppSettings'); 18 @observable updateAppSettingsRequest = new Request(this.api.local, 'updateAppSettings');
14 19
20 @observable fileSystemSettingsRequests = [];
21
22 fileSystemSettingsTypes = FILE_SYSTEM_SETTINGS_TYPES;
23 @observable _fileSystemSettingsCache = {
24 app: DEFAULT_APP_SETTINGS,
25 proxy: {},
26 };
27
15 constructor(...args) { 28 constructor(...args) {
16 super(...args); 29 super(...args);
17 30
18 // Register action handlers 31 // Register action handlers
19 this.actions.settings.update.listen(this._update.bind(this)); 32 this.actions.settings.update.listen(this._update.bind(this));
20 this.actions.settings.remove.listen(this._remove.bind(this)); 33 this.actions.settings.remove.listen(this._remove.bind(this));
34
35 this.fileSystemSettingsTypes.forEach((type) => {
36 this.fileSystemSettingsRequests[type] = new CachedRequest(this.api.local, 'getAppSettings');
37 });
38
39 ipcRenderer.on('appSettings', (event, resp) => {
40 debug('Get appSettings resolves', resp, resp.type, resp.data);
41
42 this._fileSystemSettingsCache[resp.type] = resp.data;
43 });
44
45 this.fileSystemSettingsTypes.forEach((type) => {
46 ipcRenderer.send('getAppSettings', type);
47 });
21 } 48 }
22 49
23 async setup() { 50 async setup() {
24 // We need to wait until `appSettingsRequest` has been executed once, otherwise we can't patch the result. If we don't wait we'd run into an issue with mobx not reacting to changes of previously not existing keys 51 // We need to wait until `appSettingsRequest` has been executed once, otherwise we can't patch the result. If we don't wait we'd run into an issue with mobx not reacting to changes of previously not existing keys
25 await this.appSettingsRequest._promise; 52 await this.appSettingsRequest._promise;
26 this._migrate(); 53 await this._migrate();
54 }
55
56 @computed get app() {
57 return this._fileSystemSettingsCache.app || DEFAULT_APP_SETTINGS;
58 }
59
60 @computed get proxy() {
61 return this._fileSystemSettingsCache.proxy || {};
62 }
63
64 @computed get service() {
65 return localStorage.getItem('service') || {
66 activeService: '',
67 };
68 }
69
70 @computed get stats() {
71 return localStorage.getItem('stats') || {
72 activeService: '',
73 };
74 }
75
76 @computed get migration() {
77 return localStorage.getItem('migration') || {};
27 } 78 }
28 79
29 @computed get all() { 80 @computed get all() {
30 return new SettingsModel({ 81 return {
31 app: this.appSettingsRequest.execute().result || {}, 82 app: this.app,
32 service: localStorage.getItem('service') || {}, 83 proxy: this.proxy,
33 group: localStorage.getItem('group') || {}, 84 service: this.service,
34 stats: localStorage.getItem('stats') || {}, 85 stats: this.stats,
35 migration: localStorage.getItem('migration') || {}, 86 migration: this.migration,
36 }); 87 };
37 } 88 }
38 89
39 @action async _update({ type, data }) { 90 @action async _update({ type, data }) {
40 const appSettings = this.all; 91 const appSettings = this.all;
41 if (type !== 'app') { 92 if (!this.fileSystemSettingsTypes.includes(type)) {
42 debug('Update settings', type, data, this.all); 93 debug('Update settings', type, data, this.all);
43 localStorage.setItem(type, Object.assign(appSettings[type], data)); 94 localStorage.setItem(type, Object.assign(appSettings[type], data));
44 } else { 95 } else {
45 debug('Update settings on file system', type, data); 96 debug('Update settings on file system', type, data);
46 this.updateAppSettingsRequest.execute(data); 97 ipcRenderer.send('updateAppSettings', {
47 98 type,
48 this.appSettingsRequest.patch((result) => { 99 data,
49 if (!result) return;
50 Object.assign(result, data);
51 }); 100 });
101
102 Object.assign(this._fileSystemSettingsCache[type], data);
52 } 103 }
53 } 104 }
54 105
@@ -67,8 +118,8 @@ export default class SettingsStore extends Store {
67 } 118 }
68 119
69 // Helper 120 // Helper
70 _migrate() { 121 async _migrate() {
71 const legacySettings = localStorage.getItem('app'); 122 const legacySettings = localStorage.getItem('app') || {};
72 123
73 if (!this.all.migration['5.0.0-beta.17-settings']) { 124 if (!this.all.migration['5.0.0-beta.17-settings']) {
74 this.actions.settings.update({ 125 this.actions.settings.update({
@@ -104,5 +155,34 @@ export default class SettingsStore extends Store {
104 155
105 debug('Migrated settings to split stores'); 156 debug('Migrated settings to split stores');
106 } 157 }
158
159 // Enable dark mode once
160 if (!this.all.migration['5.0.0-beta.19-settings']) {
161 const spellcheckerLanguage = getLocale({
162 locale: this.stores.settings.app.locale,
163 locales: SPELLCHECKER_LOCALES,
164 defaultLocale: DEFAULT_APP_SETTINGS.spellcheckerLanguage,
165 fallbackLocale: DEFAULT_APP_SETTINGS.spellcheckerLanguage,
166 });
167
168 this.actions.settings.update({
169 type: 'app',
170 data: {
171 darkMode: systemPreferences.isDarkMode(),
172 spellcheckerLanguage,
173 },
174 });
175
176 this.actions.settings.update({
177 type: 'migration',
178 data: {
179 '5.0.0-beta.19-settings': true,
180 },
181 });
182 }
183 }
184
185 _getFileBasedSettings(type) {
186 ipcRenderer.send('getAppSettings', type);
107 } 187 }
108} 188}
diff --git a/src/stores/UIStore.js b/src/stores/UIStore.js
index b391bdcae..d37ebe4c7 100644
--- a/src/stores/UIStore.js
+++ b/src/stores/UIStore.js
@@ -1,6 +1,8 @@
1import { action, observable, computed } from 'mobx'; 1import { action, observable, computed } from 'mobx';
2 2
3import Store from './lib/Store'; 3import Store from './lib/Store';
4import * as themeDefault from '../theme/default';
5import * as themeDark from '../theme/dark';
4 6
5export default class UIStore extends Store { 7export default class UIStore extends Store {
6 @observable showServicesUpdatedInfoBar = false; 8 @observable showServicesUpdatedInfoBar = false;
@@ -20,13 +22,21 @@ export default class UIStore extends Store {
20 return (settings.app.isAppMuted && settings.app.showMessageBadgeWhenMuted) || !settings.isAppMuted; 22 return (settings.app.isAppMuted && settings.app.showMessageBadgeWhenMuted) || !settings.isAppMuted;
21 } 23 }
22 24
25 @computed get theme() {
26 if (this.stores.settings.all.app.darkMode) {
27 return Object.assign({}, themeDefault, themeDark);
28 }
29
30 return themeDefault;
31 }
32
23 // Actions 33 // Actions
24 @action _openSettings({ path = '/settings' }) { 34 @action _openSettings({ path = '/settings' }) {
25 const settingsPath = path !== '/settings' ? `/settings/${path}` : path; 35 const settingsPath = path !== '/settings' ? `/settings/${path}` : path;
26 this.stores.router.push(settingsPath); 36 this.stores.router.push(settingsPath);
27 } 37 }
28 38
29 @action _closeSettings(): void { 39 @action _closeSettings() {
30 this.stores.router.push('/'); 40 this.stores.router.push('/');
31 } 41 }
32 42
diff --git a/src/stores/UserStore.js b/src/stores/UserStore.js
index 574616925..26ac2c60e 100644
--- a/src/stores/UserStore.js
+++ b/src/stores/UserStore.js
@@ -9,7 +9,7 @@ import Request from './lib/Request';
9import CachedRequest from './lib/CachedRequest'; 9import CachedRequest from './lib/CachedRequest';
10import { gaEvent } from '../lib/analytics'; 10import { gaEvent } from '../lib/analytics';
11 11
12const debug = require('debug')('UserStore'); 12const debug = require('debug')('Franz:UserStore');
13 13
14// TODO: split stores into UserStore and AuthStore 14// TODO: split stores into UserStore and AuthStore
15export default class UserStore extends Store { 15export default class UserStore extends Store {
@@ -122,13 +122,13 @@ export default class UserStore extends Store {
122 } 122 }
123 123
124 @computed get data() { 124 @computed get data() {
125 this.getUserInfoRequest.execute(); 125 if (!this.isLoggedIn) return {};
126 return this.getUserInfoRequest.result || {}; 126
127 return this.getUserInfoRequest.execute().result || {};
127 } 128 }
128 129
129 @computed get legacyServices() { 130 @computed get legacyServices() {
130 this.getLegacyServicesRequest.execute(); 131 return this.getLegacyServicesRequest.execute() || {};
131 return this.getLegacyServicesRequest.result || [];
132 } 132 }
133 133
134 // Actions 134 // Actions
diff --git a/src/stores/index.js b/src/stores/index.js
index 2d99e3952..f547d0a7a 100644
--- a/src/stores/index.js
+++ b/src/stores/index.js
@@ -1,5 +1,6 @@
1import AppStore from './AppStore'; 1import AppStore from './AppStore';
2import UserStore from './UserStore'; 2import UserStore from './UserStore';
3import FeaturesStore from './FeaturesStore';
3import SettingsStore from './SettingsStore'; 4import SettingsStore from './SettingsStore';
4import ServicesStore from './ServicesStore'; 5import ServicesStore from './ServicesStore';
5import RecipesStore from './RecipesStore'; 6import RecipesStore from './RecipesStore';
@@ -8,6 +9,7 @@ import UIStore from './UIStore';
8import PaymentStore from './PaymentStore'; 9import PaymentStore from './PaymentStore';
9import NewsStore from './NewsStore'; 10import NewsStore from './NewsStore';
10import RequestStore from './RequestStore'; 11import RequestStore from './RequestStore';
12import DictionaryStore from './DictionaryStore';
11import GlobalErrorStore from './GlobalErrorStore'; 13import GlobalErrorStore from './GlobalErrorStore';
12 14
13export default (api, actions, router) => { 15export default (api, actions, router) => {
@@ -16,6 +18,7 @@ export default (api, actions, router) => {
16 router, 18 router,
17 app: new AppStore(stores, api, actions), 19 app: new AppStore(stores, api, actions),
18 user: new UserStore(stores, api, actions), 20 user: new UserStore(stores, api, actions),
21 features: new FeaturesStore(stores, api, actions),
19 settings: new SettingsStore(stores, api, actions), 22 settings: new SettingsStore(stores, api, actions),
20 services: new ServicesStore(stores, api, actions), 23 services: new ServicesStore(stores, api, actions),
21 recipes: new RecipesStore(stores, api, actions), 24 recipes: new RecipesStore(stores, api, actions),
@@ -24,6 +27,7 @@ export default (api, actions, router) => {
24 payment: new PaymentStore(stores, api, actions), 27 payment: new PaymentStore(stores, api, actions),
25 news: new NewsStore(stores, api, actions), 28 news: new NewsStore(stores, api, actions),
26 requests: new RequestStore(stores, api, actions), 29 requests: new RequestStore(stores, api, actions),
30 dictionary: new DictionaryStore(stores, api, actions),
27 globalError: new GlobalErrorStore(stores, api, actions), 31 globalError: new GlobalErrorStore(stores, api, actions),
28 }); 32 });
29 // Initialize all stores 33 // Initialize all stores
diff --git a/src/styles/animations.scss b/src/styles/animations.scss
index 1e49af207..b121af7d2 100644
--- a/src/styles/animations.scss
+++ b/src/styles/animations.scss
@@ -1,49 +1,41 @@
1// FadeIn 1// FadeIn
2.fadeIn-appear { 2.fadeIn-appear { opacity: .01; }
3 opacity: 0.01;
4}
5 3
6.fadeIn-appear.fadeIn-appear-active { 4.fadeIn-appear.fadeIn-appear-active {
7 opacity: 1; 5 opacity: 1;
8 transition: opacity 0.5s ease-out; 6 transition: opacity .5s ease-out;
9} 7}
10 8
11.fadeIn-enter { 9.fadeIn-enter {
12 opacity: 0.01; 10 opacity: .01;
13 transition: opacity 0.5s ease-out; 11 transition: opacity .5s ease-out;
14} 12}
15 13
16.fadeIn-leave { 14.fadeIn-leave { opacity: 1; }
17 opacity: 1;
18}
19 15
20.fadeIn-leave.fadeIn-leave-active { 16.fadeIn-leave.fadeIn-leave-active {
21 opacity: 0.01; 17 opacity: .01;
22 transition: opacity 300ms ease-in; 18 transition: opacity 300ms ease-in;
23} 19}
24 20
25// FadeIn Fast 21// FadeIn Fast
26.fadeIn-fast-appear { 22.fadeIn-fast-appear { opacity: .01; }
27 opacity: 0.01;
28}
29 23
30.fadeIn-fast-appear.fadeIn-fast-appear-active { 24.fadeIn-fast-appear.fadeIn-fast-appear-active {
31 opacity: 1; 25 opacity: 1;
32 transition: opacity 0.25s ease-out; 26 transition: opacity .25s ease-out;
33} 27}
34 28
35.fadeIn-fast-enter { 29.fadeIn-fast-enter {
36 opacity: 0.01; 30 opacity: .01;
37 transition: opacity 0.25s ease-out; 31 transition: opacity .25s ease-out;
38} 32}
39 33
40.fadeIn-fast-leave { 34.fadeIn-fast-leave { opacity: 1; }
41 opacity: 1;
42}
43 35
44.fadeIn-fast-leave.fadeIn-fast-leave-active { 36.fadeIn-fast-leave.fadeIn-fast-leave-active {
45 opacity: 0.01; 37 opacity: .01;
46 transition: opacity 0.25s ease-in; 38 transition: opacity .25s ease-in;
47} 39}
48 40
49// Slide down 41// Slide down
@@ -54,37 +46,35 @@
54 46
55.slideDown-appear.slideDown-appear-active { 47.slideDown-appear.slideDown-appear-active {
56 max-height: 500px; 48 max-height: 500px;
57 transition: max-height 0.5s ease-out; 49 transition: max-height .5s ease-out;
58} 50}
59 51
60.slideDown-enter { 52.slideDown-enter {
61 max-height: 0; 53 max-height: 0;
62 transition: max-height 0.5s ease-out; 54 transition: max-height .5s ease-out;
63} 55}
64 56
65// Slide up 57// Slide up
66.slideUp-appear { 58.slideUp-appear {
67 transform: translateY(20px);
68 opacity: 0; 59 opacity: 0;
60 transform: translateY(20px);
69} 61}
70 62
71.slideUp-appear.slideUp-appear-active { 63.slideUp-appear.slideUp-appear-active {
72 transform: translateY(0px);
73 opacity: 1; 64 opacity: 1;
74 transition: all 0.3s ease-out; 65 transform: translateY(0px);
66 transition: all .3s ease-out;
75} 67}
76 68
77.slideUp-enter { 69.slideUp-enter {
78 transform: translateY(20px);
79 opacity: 0; 70 opacity: 0;
80 transition: all 0.3s ease-out; 71 transform: translateY(20px);
72 transition: all .3s ease-out;
81} 73}
82 74
83.slideUp-leave { 75.slideUp-leave { opacity: 1; }
84 opacity: 1;
85}
86 76
87.slideUp-leave.slideUp-leave-active { 77.slideUp-leave.slideUp-leave-active {
88 opacity: 0.01; 78 opacity: .01;
89 transition: opacity 300ms ease-in; 79 transition: opacity 300ms ease-in;
90} 80}
diff --git a/src/styles/auth.scss b/src/styles/auth.scss
index 9ad71867c..54e264dc6 100644
--- a/src/styles/auth.scss
+++ b/src/styles/auth.scss
@@ -1,144 +1,135 @@
1@import './config.scss'; 1@import './config.scss';
2 2
3.theme__dark .auth {
4 background: $dark-theme-gray-darkest;
5
6 .auth__container {
7 background: $dark-theme-gray-darker;
8 box-shadow: 0 0 50px rgba($dark-theme-black, .2);
9 }
10
11 .auth__logo.auth__logo--sm {
12 border: 4px solid $dark-theme-black;
13 box-shadow: 0 0 6px rgba($dark-theme-black, .5);
14 }
15
16 .auth__links {
17 background: $dark-theme-gray-dark;
18
19 a { color: $dark-theme-text-color; }
20 }
21
22 .legal {
23 color: $dark-theme-text-color;
24
25 a { color: $dark-theme-gray-lightest; }
26 }
27}
28
3.auth { 29.auth {
30 background: $theme-brand-primary;
4 display: flex; 31 display: flex;
5 justify-content: center; 32 justify-content: center;
6 background: $theme-brand-primary;
7 33
8 .auth__layout { 34 .auth__layout {
9 width: 100%; 35 width: 100%;
10 &>div>span {
11 width: 100%;
12 }
13 // display: flex;
14 // align-items: center;
15 // justify-content: center;
16 // flex-direction: column;
17
18 // @media only screen and (max-height : 700px) {
19 // margin: 100px 0;
20 // }
21 36
22 &>div { 37 & > div {
38 align-items: center;
23 display: flex; 39 display: flex;
24 justify-content: center; 40 justify-content: center;
25 align-items: center;
26 41
27 &>span { 42 & > span {
28 position: absolute; 43 position: absolute;
44 width: 100%;
29 } 45 }
30 } 46 }
31 } 47 }
32 48
33 .auth__container { 49 .auth__container {
34 position: relative;
35 width: 350px;
36 height: auto;
37 margin: 40px auto 0 auto;
38 background: #FFF; 50 background: #FFF;
39 // padding: 20px;
40 border-radius: $theme-border-radius; 51 border-radius: $theme-border-radius;
41 box-shadow: 0 0 50px rgba(black, 0.2); 52 box-shadow: 0 0 50px rgba(black, .2);
53 height: auto;
54 margin: 40px auto 0;
55 position: relative;
56 width: 350px;
42 57
43 &.auth__container--signup { 58 &.auth__container--signup { width: 450px; }
44 width: 450px;
45 // margin-left: auto;
46 // margin-right: auto;
47 }
48 } 59 }
49 60
50 .auth__logo { 61 .auth__logo {
62 border-radius: $theme-border-radius;
51 display: block; 63 display: block;
52 width: 150px;
53 height: auto; 64 height: auto;
54 margin: -105px auto 20px auto; 65 margin: -105px auto 20px auto;
55 border-radius: $theme-border-radius; 66 width: 150px;
56 67
57 &.auth__logo--sm { 68 &.auth__logo--sm {
58 border: 4px solid #FFF; 69 border: 4px solid #FFF;
59 box-shadow: 0 0 6px rgba(black, 0.5);
60 border-radius: 100%; 70 border-radius: 100%;
71 box-shadow: 0 0 6px rgba(black, .5);
61 } 72 }
62 } 73 }
63 74
64 .auth__form { 75 .auth__form {
65 padding: 20px; 76 padding: 20px;
66 77
67 h1 { 78 h1 { text-align: center; }
68 text-align: center;
69 }
70 } 79 }
71 80
72 .auth__button { 81 .auth__button {
73 width: 100%; 82 width: 100%;
74 83
75 &.auth__button--skip { 84 &.auth__button--skip { margin: 10px auto 0; }
76 margin: 10px auto 0;
77 }
78 } 85 }
79 86
80 .auth__links { 87 .auth__links {
81 padding: 20px;
82 background: $theme-gray-lighter; 88 background: $theme-gray-lighter;
83 border-bottom-left-radius: $theme-border-radius; 89 border-bottom-left-radius: $theme-border-radius;
84 border-bottom-right-radius: $theme-border-radius; 90 border-bottom-right-radius: $theme-border-radius;
91 padding: 20px;
85 92
86 a { 93 a {
87 display: block; 94 display: block;
88 text-align: center;
89 color: $theme-gray; 95 color: $theme-gray;
90 margin-bottom: 8px; 96 margin-bottom: 8px;
97 text-align: center;
91 98
92 &:last-of-type { 99 &:last-of-type { margin-bottom: 0; }
93 margin-bottom: 0;
94 }
95 } 100 }
96 } 101 }
97 102
98 .auth__adlk { 103 .auth__adlk {
104 bottom: 15px;
99 position: absolute; 105 position: absolute;
100 right: 25px; 106 right: 25px;
101 bottom: 15px;
102 107
103 img { 108 img { width: 65px; }
104 width: 65px;
105 }
106 } 109 }
107 110
108 .auth__letter { 111 .auth__letter { margin-bottom: 30px; }
109 margin-bottom: 30px; 112 .scroll-container { z-index: 10; }
110 } 113 .info-bar { position: absolute; }
111
112 .scroll-container {
113 z-index: 10;
114 }
115
116 .info-bar {
117 position: absolute;
118 }
119 114
120 &__scroll-container { 115 &__scroll-container {
121 overflow: scroll;
122 width: 100%;
123 max-height: 100vh; 116 max-height: 100vh;
124 padding: 80px 0; 117 padding: 80px 0;
118 overflow: scroll;
119 width: 100%;
125 } 120 }
126 121
127 .available-services { 122 .available-services { margin-bottom: 15px; }
128 margin-bottom: 15px;
129 }
130 123
131 .unavailable-services { 124 .unavailable-services {
132 margin: 15px 0; 125 margin: 15px 0;
133 126
134 p { 127 p { text-transform: capitalize; }
135 text-transform: capitalize;
136 }
137 } 128 }
138 129
139 .legal { 130 .legal {
140 text-align: center;
141 margin-top: 20px;
142 color: $theme-gray-light; 131 color: $theme-gray-light;
132 margin-top: 20px;
133 text-align: center;
143 } 134 }
144} 135}
diff --git a/src/styles/badge.scss b/src/styles/badge.scss
index d7dfaf783..f9fac039a 100644
--- a/src/styles/badge.scss
+++ b/src/styles/badge.scss
@@ -1,15 +1,34 @@
1@import './config.scss'; 1@import './config.scss';
2 2
3.theme__dark .badge {
4 background: $dark-theme-gray;
5 border-radius: $theme-border-radius-small;
6 color: $dark-theme-gray-lightest;
7
8 &.badge--primary,
9 &.badge--premium {
10 background: $theme-brand-primary;
11 color: $dark-theme-gray-smoke;
12 }
13}
14
15
3.badge { 16.badge {
4 font-size: 14px; 17 background: $theme-gray-lighter;
18 border-radius: $theme-border-radius;
5 display: inline-block; 19 display: inline-block;
20 font-size: 14px;
6 padding: 5px 10px; 21 padding: 5px 10px;
7 border-radius: $theme-border-radius;
8 background: $theme-gray-lighter;
9 22
10 &.badge--primary, 23 &.badge--primary,
11 &.badge--premium { 24 &.badge--premium {
12 background: $theme-brand-primary; 25 background: $theme-brand-primary;
13 color: #FFF; 26 color: #FFF;
14 } 27 }
28
29 &.badge--success {
30 background: $theme-brand-success;
31 color: #FFF;
32 }
33
15} 34}
diff --git a/src/styles/button.scss b/src/styles/button.scss
index 8d2adbbcc..a66345114 100644
--- a/src/styles/button.scss
+++ b/src/styles/button.scss
@@ -1,71 +1,94 @@
1@import './config.scss'; 1@import './config.scss';
2 2
3.theme__dark .franz-form__button {
4 background: $theme-brand-primary;
5 color: $dark-theme-text-color;
6
7 &:hover { background: darken($theme-brand-primary, 5%); }
8 &:active { background: lighten($theme-brand-primary, 5%); }
9
10 &.franz-form__button--secondary {
11 background: $dark-theme-gray-lighter;
12 color: $dark-theme-text-color;
13
14 &:hover { background: lighten($dark-theme-gray-lighter, 10%); }
15 &:active { background: lighten($dark-theme-gray-lighter, 20%); }
16 }
17
18 &.franz-form__button--danger {
19 background: $theme-brand-danger;
20
21 &:hover { background: darken($theme-brand-danger, 5%); }
22 &:active { background: lighten($theme-brand-danger, 5%); }
23 }
24
25 &.franz-form__button--warning {
26 background: $theme-brand-warning;
27
28 &:hover { background: darken($theme-brand-warning, 5%); }
29 &:active { background: lighten($theme-brand-warning, 5%); }
30 }
31
32 &.franz-form__button--inverted {
33 border: 2px solid $theme-brand-primary;
34 color: $theme-brand-primary;
35
36 &:hover {
37 background: darken($theme-brand-primary, 5%);
38 color: $dark-theme-text-color;
39 }
40 }
41
42 &:disabled { opacity: .5; }
43}
44
3.franz-form__button { 45.franz-form__button {
4 position: relative;
5 background: $theme-brand-primary; 46 background: $theme-brand-primary;
47 border-radius: 3px;
6 display: block; 48 display: block;
7 padding: 10px 20px;
8 color: #FFF; 49 color: #FFF;
9 border-radius: 3px; 50 padding: 10px 20px;
10 transition: background 0.5s; 51 position: relative;
52 transition: background .5s;
11 text-align: center; 53 text-align: center;
12 54
13 &:hover { 55 &:hover { background: darken($theme-brand-primary, 5%) }
14 background: darken($theme-brand-primary, 5%);
15 }
16 56
17 &:active { 57 &:active {
18 transition: none;
19 background: lighten($theme-brand-primary, 5%); 58 background: lighten($theme-brand-primary, 5%);
59 transition: none;
20 } 60 }
21 61
22 &:disabled { 62 &:disabled { opacity: .2; }
23 opacity: 0.2;
24 }
25 63
26 &.franz-form__button--secondary { 64 &.franz-form__button--secondary {
27 background: $theme-gray-lighter; 65 background: $theme-gray-lighter;
28 color: $theme-gray; 66 color: $theme-gray;
29 67
30 &:hover { 68 &:hover { background: darken($theme-gray-lighter, 5%); }
31 background: darken($theme-gray-lighter, 5%); 69 &:active { background: lighten($theme-gray-lighter, 5%); }
32 }
33
34 &:active {
35 background: lighten($theme-gray-lighter, 5%);
36 }
37 } 70 }
38 71
39 &.franz-form__button--danger { 72 &.franz-form__button--danger {
40 background: $theme-brand-danger; 73 background: $theme-brand-danger;
41 74
42 &:hover { 75 &:hover { background: darken($theme-brand-danger, 5%); }
43 background: darken($theme-brand-danger, 5%); 76 &:active { background: lighten($theme-brand-danger, 5%); }
44 }
45
46 &:active {
47 background: lighten($theme-brand-danger, 5%);
48 }
49 } 77 }
50 78
51 &.franz-form__button--warning { 79 &.franz-form__button--warning {
52 background: $theme-brand-warning; 80 background: $theme-brand-warning;
53 81
54 &:hover { 82 &:hover { background: darken($theme-brand-warning, 5%); }
55 background: darken($theme-brand-warning, 5%); 83 &:active { background: lighten($theme-brand-warning, 5%); }
56 }
57
58 &:active {
59 background: lighten($theme-brand-warning, 5%);
60 }
61 } 84 }
62 85
63 &.franz-form__button--inverted { 86 &.franz-form__button--inverted {
64 background: none; 87 background: none;
65 padding: 10px 20px;
66 border: 2px solid $theme-brand-primary; 88 border: 2px solid $theme-brand-primary;
67 color: $theme-brand-primary; 89 color: $theme-brand-primary;
68 transition: background 0.5s, color 0.5s; 90 padding: 10px 20px;
91 transition: background .5s, color .5s;
69 92
70 &:hover { 93 &:hover {
71 background: darken($theme-brand-primary, 5%); 94 background: darken($theme-brand-primary, 5%);
@@ -74,11 +97,11 @@
74 } 97 }
75 98
76 .loader { 99 .loader {
100 display: inline-block;
101 height: 12px;
102 margin-right: 5px;
77 position: relative; 103 position: relative;
78 width: 20px; 104 width: 20px;
79 height: 12px;
80 z-index: 9999; 105 z-index: 9999;
81 display: inline-block;
82 margin-right: 5px;
83 } 106 }
84} 107}
diff --git a/src/styles/colors.scss b/src/styles/colors.scss
index 5d8302c28..80c2fb633 100644
--- a/src/styles/colors.scss
+++ b/src/styles/colors.scss
@@ -1,22 +1,40 @@
1$theme-brand-primary: #3498db; 1@import "./type-helper";
2$theme-brand-success: #5cb85c;
3$theme-brand-info: #5bc0de;
4$theme-brand-warning: #FF9F00;
5$theme-brand-danger: #d9534f;
6 2
7$theme-gray-dark: #373a3c; 3$theme-brand-primary: convert-rgb-string-to-color($raw-theme-brand-primary);
8$theme-gray: #55595c; 4$theme-brand-success: convert-rgb-string-to-color($raw-theme-brand-success);
9$theme-gray-light: #818a91; 5$theme-brand-info: convert-rgb-string-to-color($raw-theme-brand-info);
10$theme-gray-lighter: #eceeef; 6$theme-brand-warning: convert-rgb-string-to-color($raw-theme-brand-warning);
11$theme-gray-lightest: #f7f7f9; 7$theme-brand-danger: convert-rgb-string-to-color($raw-theme-brand-danger);
12 8
13$theme-border-radius: 6px; 9$theme-gray-dark: convert-rgb-string-to-color($raw-theme-gray-dark);
14$theme-border-radius-small: 3px; 10$theme-gray: convert-rgb-string-to-color($raw-theme-gray);
11$theme-gray-light: convert-rgb-string-to-color($raw-theme-gray-light);
12$theme-gray-lighter: convert-rgb-string-to-color($raw-theme-gray-lighter);
13$theme-gray-lightest: convert-rgb-string-to-color($raw-theme-gray-lightest);
15 14
16$theme-sidebar-width: 68px; 15$theme-border-radius: to-number($raw-theme-border-radius);
16$theme-border-radius-small: to-number($raw-theme-border-radius-small);
17 17
18$theme-text-color: $theme-gray-dark; 18$theme-sidebar-width: to-number($raw-theme-sidebar-width);
19 19
20$theme-transition-time: 0.5s; 20$theme-text-color: convert-rgb-string-to-color($raw-theme-gray-dark);
21 21
22$theme-inset-shadow: inset 0 2px 5px rgba(0,0,0,0.03); 22$theme-transition-time: .5s;
23
24$theme-inset-shadow: inset 0 2px 5px rgba(0, 0, 0, .03);
25
26// Dark Theme
27$dark-theme-black: convert-rgb-string-to-color($raw-dark-theme-black);
28
29$dark-theme-gray-darkest: convert-rgb-string-to-color($raw-dark-theme-gray-darkest);
30$dark-theme-gray-darker: convert-rgb-string-to-color($raw-dark-theme-gray-darker);
31$dark-theme-gray-dark: convert-rgb-string-to-color($raw-dark-theme-gray-dark);
32
33$dark-theme-gray: convert-rgb-string-to-color($raw-dark-theme-gray);
34
35$dark-theme-gray-light: convert-rgb-string-to-color($raw-dark-theme-gray-light);
36$dark-theme-gray-lighter: convert-rgb-string-to-color($raw-dark-theme-gray-lighter);
37$dark-theme-gray-lightest: convert-rgb-string-to-color($raw-dark-theme-gray-lightest);
38
39$dark-theme-gray-smoke: convert-rgb-string-to-color($raw-dark-theme-gray-smoke);
40$dark-theme-text-color: convert-rgb-string-to-color($raw-dark-theme-text-color);
diff --git a/src/styles/content-tabs.scss b/src/styles/content-tabs.scss
index 47dfea2c4..ca3820fb4 100644
--- a/src/styles/content-tabs.scss
+++ b/src/styles/content-tabs.scss
@@ -2,53 +2,43 @@
2 2
3.content-tabs { 3.content-tabs {
4 .content-tabs__tabs { 4 .content-tabs__tabs {
5 display: flex;
6 border-top-left-radius: $theme-border-radius-small; 5 border-top-left-radius: $theme-border-radius-small;
7 border-top-right-radius: $theme-border-radius-small; 6 border-top-right-radius: $theme-border-radius-small;
7 display: flex;
8 overflow: hidden; 8 overflow: hidden;
9 9
10 .content-tabs__item { 10 .content-tabs__item {
11 padding: 10px;
12 flex: 1;
13 // border: 1px solid $theme-gray-lightest;
14 color: $theme-gray-dark;
15 background: linear-gradient($theme-gray-lightest 80%, darken($theme-gray-lightest, 3%)); 11 background: linear-gradient($theme-gray-lightest 80%, darken($theme-gray-lightest, 3%));
16 border-right: 1px solid $theme-gray-lighter; 12 border-right: 1px solid $theme-gray-lighter;
13 color: $theme-gray-dark;
14 flex: 1;
15 padding: 10px;
17 transition: background $theme-transition-time; 16 transition: background $theme-transition-time;
18 17
19 &:last-of-type { 18 &:last-of-type { border-right: 0; }
20 border-right: 0;
21 }
22 19
23 &.is-active { 20 &.is-active {
24 background: $theme-brand-primary; 21 background: $theme-brand-primary;
25 color: #FFF;
26 box-shadow: none; 22 box-shadow: none;
23 color: #FFF;
27 } 24 }
28 } 25 }
29 } 26 }
30 27
31 .content-tabs__content { 28 .content-tabs__content {
32 padding: 20px 20px; 29 background: $theme-gray-lightest;
33 border-bottom-left-radius: $theme-border-radius-small; 30 border-bottom-left-radius: $theme-border-radius-small;
34 border-bottom-right-radius: $theme-border-radius-small; 31 border-bottom-right-radius: $theme-border-radius-small;
35 background: $theme-gray-lightest; 32 padding: 20px 20px;
36 33
37 .content-tabs__item { 34 .content-tabs__item {
38 top: 0;
39 display: none; 35 display: none;
36 top: 0;
40 37
41 &.is-active { 38 &.is-active { display: block; }
42 display: block;
43 }
44 }
45
46 .franz-form__input-wrapper {
47 background: #FFF;
48 } 39 }
49 40
50 .franz-form__field:last-of-type { 41 .franz-form__input-wrapper { background: #FFF; }
51 margin-bottom: 0; 42 .franz-form__field:last-of-type { margin-bottom: 0; }
52 }
53 } 43 }
54} 44}
diff --git a/src/styles/image-upload.scss b/src/styles/image-upload.scss
index 06176a7af..31300c227 100644
--- a/src/styles/image-upload.scss
+++ b/src/styles/image-upload.scss
@@ -1,74 +1,89 @@
1.theme__dark {
2 .image-upload {
3 background: $dark-theme-gray-darker;
4 border: 1px solid $dark-theme-gray-light;
5 color: $dark-theme-gray-lighter;
6
7 &__action {
8 &-background { background: rgba($dark-theme-black, .7); }
9
10 button {
11 color: $dark-theme-gray-lightest;
12
13 .mdi { color: $dark-theme-gray-lightest; }
14 }
15 }
16 }
17
18 .image-upload-wrapper .mdi { color: $dark-theme-gray-light; }
19}
20
1.image-upload { 21.image-upload {
2 position: absolute; 22 background: $theme-gray-lightest;
3 width: 140px;
4 height: 140px;
5 border: 1px solid $theme-gray-lighter; 23 border: 1px solid $theme-gray-lighter;
6 border-radius: $theme-border-radius-small; 24 border-radius: $theme-border-radius-small;
7 background: $theme-gray-lightest; 25 height: 140px;
8 overflow: hidden;
9 margin-top: 5px; 26 margin-top: 5px;
27 overflow: hidden;
28 position: relative;
29 width: 140px;
10 30
11 &__preview, 31 &__preview,
12 &__action { 32 &__action {
13 position: absolute;
14 top: 0;
15 left: 0; 33 left: 0;
34 position: absolute;
16 right: 0; 35 right: 0;
36 top: 0;
17 } 37 }
18 38
19 &__preview { 39 &__preview {
20 z-index: 1;
21 background-size: cover;
22 background-size: 100%;
23 background-repeat: no-repeat;
24 background-position: center center; 40 background-position: center center;
41 background-repeat: no-repeat;
42 background-size: cover;
25 border-radius: 3px; 43 border-radius: 3px;
44 z-index: 1;
26 } 45 }
27 46
28 &__action { 47 &__action {
29 position: relative;
30 z-index: 10;
31 opacity: 0;
32 transition: opacity 0.5s;
33 display: flex; 48 display: flex;
34 justify-content: center; 49 justify-content: center;
50 opacity: 0;
51 position: relative;
52 transition: opacity .5s;
53 z-index: 10;
35 54
36 &-background { 55 &-background {
37 position: absolute; 56 background: rgba($theme-gray, .7);
38 top: 0; 57 bottom: 0;
39 left: 0; 58 left: 0;
59 position: absolute;
40 right: 0; 60 right: 0;
41 bottom: 0; 61 top: 0;
42 background: rgba($theme-gray, 0.7);
43 z-index: 10; 62 z-index: 10;
44 } 63 }
45 64
46 button { 65 button {
66 color: #FFF;
47 position: relative; 67 position: relative;
48 z-index: 100; 68 z-index: 100;
49 color: #FFF;
50 69
51 .mdi { 70 .mdi { color: #FFF; }
52 color: #FFF;
53 }
54 } 71 }
55 } 72 }
56 73
57 &__dropzone { 74 &__dropzone {
58 text-align: center; 75 align-items: center;
59 border-radius: 5px; 76 border-radius: 5px;
60 padding: 10px;
61 display: flex; 77 display: flex;
62 align-items: center;
63 justify-content: center;
64 flex-direction: column; 78 flex-direction: column;
79 justify-content: center;
80 padding: 10px;
81 text-align: center;
65 } 82 }
66 83
67 &__dropzone, 84 &__dropzone,
68 button { 85 button {
69 .mdi { 86 .mdi { margin-bottom: 5px; }
70 margin-bottom: 5px;
71 }
72 87
73 p { 88 p {
74 font-size: 10px; 89 font-size: 10px;
@@ -76,16 +91,10 @@
76 } 91 }
77 } 92 }
78 93
79 &:hover { 94 &:hover .image-upload__action { opacity: 1; }
80 .image-upload__action {
81 opacity: 1;
82 }
83 }
84} 95}
85 96
86.image-upload-wrapper { 97.image-upload-wrapper .mdi {
87 .mdi { 98 color: $theme-gray-light;
88 font-size: 40px; 99 font-size: 40px;
89 color: $theme-gray-light; 100}
90 }
91} \ No newline at end of file
diff --git a/src/styles/info-bar.scss b/src/styles/info-bar.scss
index b6d1e84e2..fb4917358 100644
--- a/src/styles/info-bar.scss
+++ b/src/styles/info-bar.scss
@@ -1,83 +1,68 @@
1@import './config.scss'; 1@import './config.scss';
2 2
3.info-bar { 3.info-bar {
4 width: 100%; 4 align-items: center;
5 height: 50px;
6 background: $theme-brand-primary; 5 background: $theme-brand-primary;
6 box-shadow: 0 0 8px rgba(black, .2);
7 display: flex; 7 display: flex;
8 align-items: center; 8 height: 50px;
9 justify-content: center; 9 justify-content: center;
10 padding: 0 20px; 10 padding: 0 20px;
11 position: relative; 11 position: relative;
12 // bottom: 0; 12 width: 100%;
13 z-index: 100; 13 z-index: 100;
14 box-shadow: 0 0 8px rgba(black, 0.2);
15 14
16 .info-bar__content { 15 .info-bar__content {
17 height: auto; 16 height: auto;
18 17
19 .mdi { 18 .mdi { margin-right: 5px; }
20 margin-right: 5px;
21 }
22 } 19 }
23 20
24 .info-bar__close { 21 .info-bar__close {
22 color: #FFF;
25 position: absolute; 23 position: absolute;
26 right: 10px; 24 right: 10px;
27 color: #FFF;
28 } 25 }
29 26
30 .info-bar__cta { 27 .info-bar__cta {
31 color: #FFF;
32 padding: 3px 8px;
33 border-radius: $theme-border-radius-small;
34 border-color: #FFF; 28 border-color: #FFF;
35 border-width: 2px; 29 border-radius: $theme-border-radius-small;
36 border-style: solid; 30 border-style: solid;
31 border-width: 2px;
32 color: #FFF;
37 margin-left: 15px; 33 margin-left: 15px;
34 padding: 3px 8px;
38 35
39 .loader { 36 .loader {
37 display: inline-block;
38 height: 12px;
39 margin-right: 5px;
40 position: relative; 40 position: relative;
41 width: 20px; 41 width: 20px;
42 height: 12px;
43 z-index: 9999; 42 z-index: 9999;
44 display: inline-block;
45 margin-right: 5px;
46 } 43 }
47 } 44 }
48 45
49 a { 46 &.info-bar--bottom { order: 10; }
50 // text-decoration: underline;
51 }
52
53 &.info-bar--bottom {
54 order: 10;
55 }
56 47
57 &.info-bar--primary { 48 &.info-bar--primary {
58 background: $theme-brand-primary; 49 background: $theme-brand-primary;
59 color: #FFF; 50 color: #FFF;
60 51
61 a { 52 a { color: #FFF; }
62 color: #FFF;
63 }
64 } 53 }
65 54
66 &.info-bar--warning { 55 &.info-bar--warning {
67 background: $theme-brand-warning; 56 background: $theme-brand-warning;
68 color: #FFF; 57 color: #FFF;
69 58
70 a { 59 a { color: #FFF; }
71 color: #FFF;
72 }
73 } 60 }
74 61
75 &.info-bar--danger { 62 &.info-bar--danger {
76 background: $theme-brand-danger; 63 background: $theme-brand-danger;
77 color: #FFF; 64 color: #FFF;
78 65
79 a { 66 a { color: #FFF; }
80 color: #FFF;
81 }
82 } 67 }
83} 68}
diff --git a/src/styles/infobox.scss b/src/styles/infobox.scss
index 7ab094058..e287e5be7 100644
--- a/src/styles/infobox.scss
+++ b/src/styles/infobox.scss
@@ -1,20 +1,16 @@
1@import './config.scss'; 1@import './config.scss';
2 2
3.infobox { 3.infobox {
4 height: auto; 4 align-items: center;
5 padding: 15px 20px;
6 margin-bottom: 30px;
7 border-radius: $theme-border-radius-small; 5 border-radius: $theme-border-radius-small;
8 display: flex; 6 display: flex;
9 align-items: center; 7 height: auto;
8 margin-bottom: 30px;
9 padding: 15px 20px;
10 10
11 a { 11 a { color: #FFF; }
12 color: #FFF;
13 }
14 12
15 .infobox__content { 13 .infobox__content { flex: 1; }
16 flex: 1;
17 }
18 14
19 &.infobox--success { 15 &.infobox--success {
20 background: $theme-brand-success; 16 background: $theme-brand-success;
@@ -36,26 +32,24 @@
36 color: #FFF; 32 color: #FFF;
37 } 33 }
38 34
39 .mdi { 35 .mdi { margin-right: 10px; }
40 margin-right: 10px;
41 }
42 36
43 .infobox__cta { 37 .infobox__cta {
44 color: #FFF;
45 padding: 3px 8px;
46 border-radius: $theme-border-radius-small;
47 border-color: #FFF; 38 border-color: #FFF;
48 border-width: 2px; 39 border-radius: $theme-border-radius-small;
49 border-style: solid; 40 border-style: solid;
41 border-width: 2px;
42 color: #FFF;
50 margin-left: 15px; 43 margin-left: 15px;
44 padding: 3px 8px;
51 45
52 .loader { 46 .loader {
47 display: inline-block;
48 height: 12px;
49 margin-right: 5px;
53 position: relative; 50 position: relative;
54 width: 20px; 51 width: 20px;
55 height: 12px;
56 z-index: 9999; 52 z-index: 9999;
57 display: inline-block;
58 margin-right: 5px;
59 } 53 }
60 } 54 }
61 55
diff --git a/src/styles/input.scss b/src/styles/input.scss
index 7042f56e8..687bcac64 100644
--- a/src/styles/input.scss
+++ b/src/styles/input.scss
@@ -1,6 +1,34 @@
1@import './config.scss'; 1@import './config.scss';
2@import './mixins.scss'; 2@import './mixins.scss';
3 3
4.theme__dark .franz-form {
5 .franz-form__label { color: $dark-theme-text-color; }
6
7 .franz-form__input-wrapper {
8 background: $dark-theme-gray-dark;
9 border: 1px solid $dark-theme-gray-light;
10 }
11
12 .franz-form__input {
13 color: $dark-theme-gray-lightest;
14
15 &::placeholder { color: $dark-theme-gray-lighter; }
16 }
17
18 .franz-form__input-prefix,
19 .franz-form__input-suffix {
20 background: $dark-theme-gray;
21 color: $dark-theme-gray-lighter;
22 }
23
24 .franz-form__input-modifier {
25 border-left: 1px solid $dark-theme-gray-light;
26 color: $dark-theme-gray-lighter;
27 }
28
29 .franz-form__password-score { background: $dark-theme-gray-dark; }
30}
31
4.franz-form { 32.franz-form {
5 .franz-form__field { 33 .franz-form__field {
6 display: flex; 34 display: flex;
@@ -9,19 +37,12 @@
9 margin-bottom: 20px; 37 margin-bottom: 20px;
10 38
11 &.has-error { 39 &.has-error {
12 .franz-form__input-wrapper { 40 .franz-form__input-wrapper,
13 border-color: $theme-brand-danger; 41 .franz-form__input-modifier { border-color: $theme-brand-danger; }
14 }
15
16 .franz-form__input-modifier {
17 border-color: $theme-brand-danger;
18 }
19 } 42 }
20 } 43 }
21 44
22 .franz-form__label { 45 .franz-form__label { @include formLabel(); }
23 @include formLabel();
24 }
25 46
26 .franz-form__error { 47 .franz-form__error {
27 color: $theme-brand-danger; 48 color: $theme-brand-danger;
@@ -30,74 +51,60 @@
30 } 51 }
31 52
32 .franz-form__input-wrapper { 53 .franz-form__input-wrapper {
33 display: flex;
34 width: 100%;
35 order: 1;
36 border-radius: $theme-border-radius-small;
37 background: $theme-gray-lightest; 54 background: $theme-gray-lightest;
38 border: 1px solid $theme-gray-lighter; 55 border: 1px solid $theme-gray-lighter;
56 border-radius: $theme-border-radius-small;
57 display: flex;
39 flex-wrap: wrap; 58 flex-wrap: wrap;
59 order: 1;
60 width: 100%;
40 } 61 }
41 62
42 .franz-form__input { 63 .franz-form__input {
43 flex: 1;
44 border: 0;
45 background: none; 64 background: none;
46 width: 100%; 65 border: 0;
47 padding: 8px;
48 // font-size: 18px;
49 color: $theme-gray; 66 color: $theme-gray;
67 flex: 1;
68 padding: 8px;
69 width: 100%;
50 70
51 &::placeholder { 71 &::placeholder { color: lighten($theme-gray-light, 10%); }
52 color: lighten($theme-gray-light, 10%);
53 }
54 } 72 }
55 73
56 .franz-form__input-prefix, 74 .franz-form__input-prefix,
57 .franz-form__input-suffix { 75 .franz-form__input-suffix {
58 padding: 0 10px;
59 background: $theme-gray-lighter; 76 background: $theme-gray-lighter;
60 color: $theme-gray-light; 77 color: $theme-gray-light;
61 line-height: 35px; 78 line-height: 35px;
79 padding: 0 10px;
62 } 80 }
63 81
64 .franz-form__input-modifier { 82 .franz-form__input-modifier {
65 padding: 0 20px;
66 border-left: 1px solid $theme-gray-lighter; 83 border-left: 1px solid $theme-gray-lighter;
67 color: $theme-gray-light; 84 color: $theme-gray-light;
68 font-size: 20px; 85 font-size: 20px;
86 padding: 0 20px;
69 } 87 }
70 88
71 .franz-form__password-score { 89 .franz-form__password-score {
72 background: $theme-gray-lighter; 90 background: $theme-gray-lighter;
73 height: 5px;
74 flex-basis: 100%;
75 border-bottom-left-radius: 3px; 91 border-bottom-left-radius: 3px;
76 border-bottom-right-radius: 3px; 92 border-bottom-right-radius: 3px;
93 flex-basis: 100%;
94 height: 5px;
77 95
78 meter { 96 meter {
79 width: 100%;
80 height: 100%;
81 display: block;
82 border-bottom-left-radius: 3px; 97 border-bottom-left-radius: 3px;
83 border-bottom-right-radius: 3px; 98 border-bottom-right-radius: 3px;
99 display: block;
100 height: 100%;
84 overflow: hidden; 101 overflow: hidden;
102 width: 100%;
85 103
86 &::-webkit-meter-bar { 104 &::-webkit-meter-bar { background: none; }
87 background: none; 105 &::-webkit-meter-even-less-good-value { background: $theme-brand-danger; }
88 } 106 &::-webkit-meter-suboptimum-value { background: $theme-brand-warning; }
89 107 &::-webkit-meter-optimum-value { background: $theme-brand-success; }
90 &::-webkit-meter-even-less-good-value {
91 background: $theme-brand-danger;
92 }
93
94 &::-webkit-meter-suboptimum-value {
95 background: $theme-brand-warning;
96 }
97
98 &::-webkit-meter-optimum-value {
99 background: $theme-brand-success;
100 }
101 } 108 }
102 } 109 }
103} 110}
diff --git a/src/styles/invite.scss b/src/styles/invite.scss
index bfb1a4b6b..594224f62 100644
--- a/src/styles/invite.scss
+++ b/src/styles/invite.scss
@@ -1,15 +1,8 @@
1.invite__form { 1.invite__form {
2 /* play with values to see different layouts */
3 // display: flex;
4 align-items: center; 2 align-items: center;
5 align-self: center; 3 align-self: center;
6 justify-content: center; 4 justify-content: center;
7} 5}
8 6
9.invite__embed { 7.invite__embed { text-align: center; }
10 text-align: center; 8.invite__embed--button { width: 100%; }
11}
12
13.invite__embed--button {
14 width: 100%;
15} \ No newline at end of file
diff --git a/src/styles/layout.scss b/src/styles/layout.scss
index 964a9fcea..ebf468cf0 100644
--- a/src/styles/layout.scss
+++ b/src/styles/layout.scss
@@ -1,16 +1,36 @@
1@import './config.scss'; 1@import './config.scss';
2 2
3html { 3html { overflow: hidden; }
4 overflow: hidden; 4
5.theme__dark .app {
6 .sidebar {
7 background: $dark-theme-gray-darker;
8 box-shadow: 0 0 5px 0 $dark-theme-black;
9 color: $theme-text-color;
10
11 .sidebar__add-service {
12 color: $dark-theme-gray-lighter;
13 background: $dark-theme-gray;
14 }
15
16 .sidebar__button {
17 color: $dark-theme-gray-lighter;
18 font-size: 22px;
19
20 &:hover,
21 &:active { color: $dark-theme-gray-smoke; }
22 &.is-muted { color: $dark-theme-gray; }
23 }
24 }
25
26 .app-loader .app-loader__title { color: $dark-theme-gray-lightest; }
5} 27}
6 28
7.app { 29.app {
8 display: flex; 30 display: flex;
9 flex-direction: column; 31 flex-direction: column;
10 32
11 .app__content { 33 .app__content { display: flex; }
12 display: flex;
13 }
14 34
15 .app__service { 35 .app__service {
16 display: flex; 36 display: flex;
@@ -19,134 +39,100 @@ html {
19 } 39 }
20} 40}
21 41
22.electron-app-title-bar { 42.electron-app-title-bar { z-index: 99999999; }
23 z-index: 99999999;
24}
25 43
26.window-draggable { 44.window-draggable {
27 position: absolute;
28 width: 100%;
29 top: 0px;
30 left: 0px;
31 height: 35px; 45 height: 35px;
46 left: 0;
32 pointer-events: none; 47 pointer-events: none;
33 -webkit-app-region: drag; 48 position: absolute;
49 top: 0;
50 width: 100%;
34 z-index: 9999; 51 z-index: 9999;
52 -webkit-app-region: drag;
35} 53}
36 54
37.darwin { 55.darwin .sidebar { padding-top: 23px; }
38 .sidebar {
39 padding-top: 23px;
40 }
41}
42 56
43.sidebar { 57.sidebar {
44 display: flex;
45 flex-direction: column;
46 align-items: center; 58 align-items: center;
47 width: $theme-sidebar-width;
48 background: $theme-gray-lightest; 59 background: $theme-gray-lightest;
49 box-shadow: 1px 0 10px rgba(0,0,0,0.08); 60 box-shadow: 1px 0 10px rgba(0, 0, 0, .08);
50 z-index: 200;
51 text-align: center;
52 color: $theme-text-color; 61 color: $theme-text-color;
62 display: flex;
63 flex-direction: column;
53 padding-bottom: 10px; 64 padding-bottom: 10px;
65 text-align: center;
66 width: $theme-sidebar-width;
67 z-index: 200;
54 68
55 .sidebar__add-service { 69 .sidebar__add-service {
56 width: 32px; 70 color: $theme-gray-light;
57 height: 32px;
58 background: $theme-gray-lighter; 71 background: $theme-gray-lighter;
59 border-radius: $theme-border-radius-small; 72 border-radius: $theme-border-radius-small;
73 height: 32px;
60 margin: 10px auto; 74 margin: 10px auto;
61 color: $theme-gray-light; 75 width: 32px;
62 } 76 }
63 77
64 .sidebar__button { 78 .sidebar__button {
65 width: $theme-sidebar-width; 79 color: $theme-gray-light;
66 padding: 7px 0;
67 font-size: 24px; 80 font-size: 24px;
81 padding: 7px 0;
68 position: relative; 82 position: relative;
69 color: $theme-gray-light; 83 width: $theme-sidebar-width;
70
71 &:hover {
72 color: darken($theme-gray-light, 10%);
73 }
74
75 &:active {
76 color: lighten($theme-gray-light, 10%);
77 }
78
79 &.is-muted {
80 color: $theme-brand-primary;
81 }
82 84
83 &--new-service { 85 &:hover,
84 padding-bottom: 6px; 86 &:active { color: lighten($theme-gray-light, 10%); }
85 } 87 &.is-muted { color: $theme-brand-primary; }
88 &--new-service { padding-bottom: 6px; }
86 } 89 }
87 90
88 & > div { 91 & > div {
89 display: flex; 92 display: flex;
90 overflow-y: scroll; 93 overflow-y: scroll;
91 94
92 &::-webkit-scrollbar { 95 &::-webkit-scrollbar { display: none; }
93 display: none;
94 }
95 } 96 }
96} 97}
97 98
98.grid { 99.grid .grid__row {
99 .grid__row { 100 display: flex;
100 display: flex; 101 flex-direction: row;
101 flex-direction: row;
102
103 &>* {
104 margin-right: 20px;
105 }
106 102
107 & :last-child { 103 & > * { margin-right: 20px; }
108 margin-right: 0; 104 & :last-child { margin-right: 0; }
109 }
110 }
111} 105}
112 106
113.app-loader { 107.app-loader {
108 align-items: center;
114 display: flex; 109 display: flex;
115 justify-content: center; 110 justify-content: center;
116 align-items: center;
117 111
118 .app-loader__title { 112 .app-loader__title {
119 color: #FFF; 113 color: #FFF;
120 font-size: 40px; 114 font-size: 40px;
121 } 115 }
122 116
123 &>span { 117 & > span { height: auto; }
124 height: auto;
125 }
126}
127
128.dev-warning {
129 display: none;
130} 118}
131 119
132.isDevMode { 120.dev-warning { display: none; }
133 .dev-warning { 121
134 display: block; 122.isDevMode .dev-warning {
135 position: fixed; 123 border-radius: 3px;
136 background: $theme-brand-warning; 124 background: $theme-brand-warning;
137 width: auto; 125 color: #FFF;
138 height: auto; 126 display: block;
139 top: 5px; 127 font-size: 10px;
140 right: 5px; 128 height: auto;
141 padding: 4px; 129 padding: 4px;
142 font-size: 10px; 130 position: fixed;
143 color: #FFF; 131 right: 5px;
144 z-index: 999999999; 132 top: 5px;
145 border-radius: 3px; 133 transition: opacity .5s ease;
146 transition: opacity 0.5s ease; 134 width: auto;
147 135 z-index: 999999999;
148 &:hover { 136
149 opacity: 0; 137 &:hover { opacity: 0; }
150 }
151 }
152} 138}
diff --git a/src/styles/mixins.scss b/src/styles/mixins.scss
index c9b1bc988..06efb475a 100644
--- a/src/styles/mixins.scss
+++ b/src/styles/mixins.scss
@@ -1,9 +1,9 @@
1@import './config.scss'; 1@import './config.scss';
2 2
3@mixin formLabel { 3@mixin formLabel {
4 width: 100%;
5 color: $theme-gray-light; 4 color: $theme-gray-light;
6 display: block; 5 display: block;
7 margin-bottom: 5px; 6 margin-bottom: 5px;
8 order: 0; 7 order: 0;
8 width: 100%;
9} 9}
diff --git a/src/styles/radio.scss b/src/styles/radio.scss
index 644478cd6..87d401215 100644
--- a/src/styles/radio.scss
+++ b/src/styles/radio.scss
@@ -1,34 +1,39 @@
1@import './config.scss'; 1@import './config.scss';
2 2
3.franz-form { 3.theme__dark .franz-form .franz-form__radio {
4 .franz-form__radio-wrapper { 4 border: 1px solid $dark-theme-gray-lighter;
5 display: flex; 5 color: $dark-theme-gray-lightest;
6
7 &.is-selected {
8 background: $dark-theme-gray-lighter;
9 border: 1px solid $dark-theme-gray-lighter;
10 color: $dark-theme-gray-smoke;
6 } 11 }
12}
13
14
15.franz-form {
16 .franz-form__radio-wrapper { display: flex; }
7 17
8 .franz-form__radio { 18 .franz-form__radio {
9 // background: $theme-gray-lightest;
10 border: 2px solid $theme-gray-lighter; 19 border: 2px solid $theme-gray-lighter;
20 border-radius: $theme-border-radius-small;
21 box-shadow: $theme-inset-shadow;
11 color: $theme-gray; 22 color: $theme-gray;
12 padding: 11px; 23 flex: 1;
13 margin-right: 20px; 24 margin-right: 20px;
25 padding: 11px;
14 text-align: center; 26 text-align: center;
15 border-radius: $theme-border-radius-small;
16 flex: 1;
17 box-shadow: $theme-inset-shadow;
18 transition: background $theme-transition-time; 27 transition: background $theme-transition-time;
19 28
20 &:last-of-type { 29 &:last-of-type { margin-right: 0; }
21 margin-right: 0;
22 }
23 30
24 &.is-selected { 31 &.is-selected {
25 border: 2px solid $theme-brand-primary;
26 background: #FFF; 32 background: #FFF;
33 border: 2px solid $theme-brand-primary;
27 color: $theme-brand-primary; 34 color: $theme-brand-primary;
28 } 35 }
29 36
30 input { 37 input { display: none; }
31 display: none;
32 }
33 } 38 }
34} 39}
diff --git a/src/styles/recipes.scss b/src/styles/recipes.scss
index 1b519a5e5..84222e1fe 100644
--- a/src/styles/recipes.scss
+++ b/src/styles/recipes.scss
@@ -1,16 +1,22 @@
1@import './config.scss'; 1@import './config.scss';
2 2
3.theme__dark .recipe-teaser {
4 background-color: $dark-theme-gray-dark;
5
6 &:hover { background-color: $dark-theme-gray; }
7}
8
3.recipes { 9.recipes {
4 .recipes__list { 10 .recipes__list {
11 align-content: flex-start;
5 display: flex; 12 display: flex;
6 flex-flow: row wrap; 13 flex-flow: row wrap;
7 align-content: flex-start;
8 min-height: 70%;
9 height: auto; 14 height: auto;
15 min-height: 70%;
10 16
11 &.recipes__list--disabled { 17 &.recipes__list--disabled {
12 opacity: 0.3;
13 filter: grayscale(100%); 18 filter: grayscale(100%);
19 opacity: .3;
14 pointer-events: none; 20 pointer-events: none;
15 } 21 }
16 } 22 }
@@ -19,58 +25,48 @@
19 height: auto; 25 height: auto;
20 margin-bottom: 35px; 26 margin-bottom: 35px;
21 27
22 .badge { 28 .badge { margin-right: 10px; }
23 margin-right: 10px;
24 }
25 29
26 &.recipes__navigation--disabled { 30 &.recipes__navigation--disabled {
27 opacity: 0.3;
28 filter: grayscale(100%); 31 filter: grayscale(100%);
32 opacity: .3;
29 pointer-events: none; 33 pointer-events: none;
30 } 34 }
31 } 35 }
32 36
33 &__service-request { 37 &__service-request { float: right; }
34 float: right;
35 }
36} 38}
37 39
38.recipe-teaser { 40.recipe-teaser {
39 position: relative; 41 background-color: $theme-gray-lightest;
40 width: calc(25% - 20px); 42 border-radius: $theme-border-radius;
41 height: 120px; 43 height: 120px;
42 margin: 0 20px 20px 0; 44 margin: 0 20px 20px 0;
43 border-radius: $theme-border-radius;
44 background-color: $theme-gray-lightest;
45 transition: background $theme-transition-time;
46 overflow: hidden; 45 overflow: hidden;
46 position: relative;
47 transition: background $theme-transition-time;
48 width: calc(25% - 20px);
47 49
48 &:hover { 50 &:hover { background-color: $theme-gray-lighter; }
49 background-color: $theme-gray-lighter;
50 }
51 51
52 .recipe-teaser__icon { 52 .recipe-teaser__icon {
53 width: 50px;
54 margin-bottom: 10px; 53 margin-bottom: 10px;
54 width: 50px;
55 } 55 }
56 56
57 .recipe-teaser__label { 57 .recipe-teaser__label { display: block; }
58 display: block;
59 }
60 58
61 h2 { 59 h2 { z-index: 10; }
62 z-index: 10;
63 }
64 60
65 &__dev-badge { 61 &__dev-badge {
66 position: absolute;
67 top: 5px;
68 right: -13px;
69 width: 50px;
70 background: $theme-brand-warning; 62 background: $theme-brand-warning;
63 box-shadow: 0 0 4px rgba(black, .2);
71 color: #FFF; 64 color: #FFF;
72 font-size: 10px; 65 font-size: 10px;
66 position: absolute;
67 right: -13px;
68 top: 5px;
73 transform: rotateZ(45deg); 69 transform: rotateZ(45deg);
74 box-shadow: 0 0 4px rgba(black, 0.2); 70 width: 50px;
75 } 71 }
76} 72}
diff --git a/src/styles/reset.scss b/src/styles/reset.scss
index 21763f44f..80328dcef 100644
--- a/src/styles/reset.scss
+++ b/src/styles/reset.scss
@@ -16,63 +16,62 @@ article, aside, canvas, details, embed,
16figure, figcaption, footer, header, hgroup, 16figure, figcaption, footer, header, hgroup,
17menu, nav, output, ruby, section, summary, 17menu, nav, output, ruby, section, summary,
18time, mark, audio, video { 18time, mark, audio, video {
19 margin: 0;
20 padding: 0;
21 border: 0; 19 border: 0;
22 font-size: 100%;
23 font: inherit; 20 font: inherit;
21 font-size: 100%;
22 margin: 0;
23 padding: 0;
24} 24}
25/* HTML5 display-role reset for older browsers */ 25
26article, aside, details, figcaption, figure, 26article, aside, details, figcaption, figure,
27footer, header, hgroup, menu, nav, section { 27footer, header, hgroup, menu, nav, section { display: block; }
28 display: block; 28
29} 29ol,
30body { 30ul { list-style: none; }
31 line-height: 1; 31
32} 32blockquote,
33ol, ul { 33q {
34 list-style: none;
35}
36blockquote, q {
37 quotes: none; 34 quotes: none;
35
36 &::before,
37 &::after {
38 content: '';
39 content: none;
40 }
38} 41}
39blockquote:before, blockquote:after, q:before, q:after { 42
40 content: '';
41 content: none;
42}
43table { 43table {
44 border-collapse: collapse; 44 border-collapse: collapse;
45 border-spacing: 0; 45 border-spacing: 0;
46} 46}
47 47
48/* Buttons should not have any special style applied by default */
49button { 48button {
50 background: none; 49 background: none;
51 border: none; 50 border: none;
52 padding: 0; 51 padding: 0;
53}
54 52
55button:focus { 53 &:focus { outline: 0; }
56 outline: 0; 54 .theme__dark & { color: $dark-theme-gray-smoke; }
57} 55}
58 56
59html { 57html {
60 /* base for rem / 1rem = 10px */
61 font-size: 62.5%; 58 font-size: 62.5%;
62 font-family: 'Open Sans'; 59 font-family: 'Open Sans';
63} 60}
64 61
65body { 62body {
66 /* default font size = 14px */
67 font-size: 1.4rem;
68 color: $theme-gray-dark; 63 color: $theme-gray-dark;
64 font-size: 1.4rem;
65 line-height: 1;
66
67 .theme__dark { color: $dark-theme-gray-smoke; }
69} 68}
70 69
71* { 70* {
72 -webkit-font-smoothing: antialiased;
73 box-sizing: border-box; 71 box-sizing: border-box;
74 font-size: 1.4rem;
75 font-family: 'Open Sans'; 72 font-family: 'Open Sans';
73 font-size: 1.4rem;
74 -webkit-font-smoothing: antialiased;
76 -webkit-user-select: none; 75 -webkit-user-select: none;
77} 76}
78 77
@@ -82,14 +81,6 @@ html, body, div {
82 box-sizing: border-box; 81 box-sizing: border-box;
83} 82}
84 83
85*:focus { 84*:focus { outline: none; }
86 outline: none; 85img { pointer-events: none; }
87} 86a { cursor: default; }
88
89img {
90 pointer-events: none;
91}
92
93a {
94 cursor: default;
95}
diff --git a/src/styles/searchInput.scss b/src/styles/searchInput.scss
index 633a31e09..32b9da065 100644
--- a/src/styles/searchInput.scss
+++ b/src/styles/searchInput.scss
@@ -1,20 +1,32 @@
1@import './config.scss';
2@import './mixins.scss';
3
4.theme__dark .search-input {
5 @extend %headline__dark;
6 background: $dark-theme-gray-dark;
7 border: 1px solid $dark-theme-gray-light;
8 border-radius: $theme-border-radius;
9 color: $dark-theme-gray-lightest;
10
11 input { color: $dark-theme-gray-lightest; }
12}
13
1.search-input { 14.search-input {
2 width: 100%; 15 @extend %headline;
3 height: auto;
4 display: flex;
5 align-items: center; 16 align-items: center;
6 padding: 0 10px;
7 border-radius: 30px;
8 background: $theme-gray-lightest; 17 background: $theme-gray-lightest;
9 padding: 5px 10px; 18 border-radius: 30px;
10 @extend %headline;
11 color: $theme-gray-light; 19 color: $theme-gray-light;
20 display: flex;
21 height: auto;
22 padding: 5px 10px;
23 width: 100%;
12 24
13 input { 25 input {
14 padding-left: 10px;
15 background: none; 26 background: none;
16 border: 0; 27 border: 0;
17 flex: 1;
18 color: $theme-gray-light; 28 color: $theme-gray-light;
29 flex: 1;
30 padding-left: 10px;
19 } 31 }
20} 32}
diff --git a/src/styles/select.scss b/src/styles/select.scss
index 965b4321a..ed0fc0fc2 100644
--- a/src/styles/select.scss
+++ b/src/styles/select.scss
@@ -3,17 +3,21 @@
3 3
4$toggle: "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnMiIKICAgdmlld0JveD0iMCAwIDM1Ljk3MDk4MyAyMy4wOTE1MTgiCiAgIGhlaWdodD0iNi41MTY5Mzk2bW0iCiAgIHdpZHRoPSIxMC4xNTE4MTFtbSI+CiAgPGRlZnMKICAgICBpZD0iZGVmczQiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNyI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAyLjAxNDUxLC00MDcuMTIyMjUpIgogICAgIGlkPSJsYXllcjEiPgogICAgPHRleHQKICAgICAgIGlkPSJ0ZXh0MzMzNiIKICAgICAgIHk9IjYyOS41MDUwNyIKICAgICAgIHg9IjI5MS40Mjg1NiIKICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zaXplOjQwcHg7bGluZS1oZWlnaHQ6MTI1JTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIj48dHNwYW4KICAgICAgICAgeT0iNjI5LjUwNTA3IgogICAgICAgICB4PSIyOTEuNDI4NTYiCiAgICAgICAgIGlkPSJ0c3BhbjMzMzgiPjwvdHNwYW4+PC90ZXh0PgogICAgPGcKICAgICAgIGlkPSJ0ZXh0MzM0MCIKICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZTo0MHB4O2xpbmUtaGVpZ2h0OjEyNSU7Zm9udC1mYW1pbHk6Rm9udEF3ZXNvbWU7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpGb250QXdlc29tZTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIj4KICAgICAgPHBhdGgKICAgICAgICAgaWQ9InBhdGgzMzQ1IgogICAgICAgICBzdHlsZT0iZmlsbDojMzMzMzMzO2ZpbGwtb3BhY2l0eToxIgogICAgICAgICBkPSJtIDIzNy41NjY5Niw0MTMuMjU1MDcgYyAwLjU1ODA0LC0wLjU1ODA0IDAuNTU4MDQsLTEuNDczMjIgMCwtMi4wMzEyNSBsIC0zLjcwNTM1LC0zLjY4MzA0IGMgLTAuNTU4MDQsLTAuNTU4MDQgLTEuNDUwOSwtMC41NTgwNCAtMi4wMDg5MywwIEwgMjIwLDQxOS4zOTM0NiAyMDguMTQ3MzIsNDA3LjU0MDc4IGMgLTAuNTU4MDMsLTAuNTU4MDQgLTEuNDUwODksLTAuNTU4MDQgLTIuMDA4OTMsMCBsIC0zLjcwNTM1LDMuNjgzMDQgYyAtMC41NTgwNCwwLjU1ODAzIC0wLjU1ODA0LDEuNDczMjEgMCwyLjAzMTI1IGwgMTYuNTYyNSwxNi41NDAxNyBjIDAuNTU4MDMsMC41NTgwNCAxLjQ1MDg5LDAuNTU4MDQgMi4wMDg5MiwwIGwgMTYuNTYyNSwtMTYuNTQwMTcgeiIgLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo="; 4$toggle: "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnMiIKICAgdmlld0JveD0iMCAwIDM1Ljk3MDk4MyAyMy4wOTE1MTgiCiAgIGhlaWdodD0iNi41MTY5Mzk2bW0iCiAgIHdpZHRoPSIxMC4xNTE4MTFtbSI+CiAgPGRlZnMKICAgICBpZD0iZGVmczQiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNyI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjAyLjAxNDUxLC00MDcuMTIyMjUpIgogICAgIGlkPSJsYXllcjEiPgogICAgPHRleHQKICAgICAgIGlkPSJ0ZXh0MzMzNiIKICAgICAgIHk9IjYyOS41MDUwNyIKICAgICAgIHg9IjI5MS40Mjg1NiIKICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zaXplOjQwcHg7bGluZS1oZWlnaHQ6MTI1JTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2xldHRlci1zcGFjaW5nOjBweDt3b3JkLXNwYWNpbmc6MHB4O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MXB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICB4bWw6c3BhY2U9InByZXNlcnZlIj48dHNwYW4KICAgICAgICAgeT0iNjI5LjUwNTA3IgogICAgICAgICB4PSIyOTEuNDI4NTYiCiAgICAgICAgIGlkPSJ0c3BhbjMzMzgiPjwvdHNwYW4+PC90ZXh0PgogICAgPGcKICAgICAgIGlkPSJ0ZXh0MzM0MCIKICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZTo0MHB4O2xpbmUtaGVpZ2h0OjEyNSU7Zm9udC1mYW1pbHk6Rm9udEF3ZXNvbWU7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpGb250QXdlc29tZTtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjFweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIj4KICAgICAgPHBhdGgKICAgICAgICAgaWQ9InBhdGgzMzQ1IgogICAgICAgICBzdHlsZT0iZmlsbDojMzMzMzMzO2ZpbGwtb3BhY2l0eToxIgogICAgICAgICBkPSJtIDIzNy41NjY5Niw0MTMuMjU1MDcgYyAwLjU1ODA0LC0wLjU1ODA0IDAuNTU4MDQsLTEuNDczMjIgMCwtMi4wMzEyNSBsIC0zLjcwNTM1LC0zLjY4MzA0IGMgLTAuNTU4MDQsLTAuNTU4MDQgLTEuNDUwOSwtMC41NTgwNCAtMi4wMDg5MywwIEwgMjIwLDQxOS4zOTM0NiAyMDguMTQ3MzIsNDA3LjU0MDc4IGMgLTAuNTU4MDMsLTAuNTU4MDQgLTEuNDUwODksLTAuNTU4MDQgLTIuMDA4OTMsMCBsIC0zLjcwNTM1LDMuNjgzMDQgYyAtMC41NTgwNCwwLjU1ODAzIC0wLjU1ODA0LDEuNDczMjEgMCwyLjAzMTI1IGwgMTYuNTYyNSwxNi41NDAxNyBjIDAuNTU4MDMsMC41NTgwNCAxLjQ1MDg5LDAuNTU4MDQgMi4wMDg5MiwwIGwgMTYuNTYyNSwtMTYuNTQwMTcgeiIgLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=";
5 5
6.franz-form { 6.theme__dark .franz-form .franz-form__select {
7 .franz-form__select { 7 background-color: $dark-theme-gray-dark;
8 -webkit-appearance: none; 8 border: 1px solid $dark-theme-gray-light;
9 min-width: 200px; 9 color: $dark-theme-gray-lightest;
10 padding: 10px; 10}
11 background-color: $theme-gray-lightest; 11
12 background-position: right center; 12.franz-form .franz-form__select {
13 background-repeat: no-repeat; 13 background-color: $theme-gray-lightest;
14 background-size: 1ex; 14 background-image: url(data:image/svg+xml;base64,#{$toggle});
15 background-origin: content-box; 15 background-origin: content-box;
16 background-image: url(data:image/svg+xml;base64,#{$toggle}); 16 background-position: right center;
17 border: 1px solid $theme-gray-lighter; 17 background-repeat: no-repeat;
18 } 18 background-size: 1ex;
19 border: 1px solid $theme-gray-lighter;
20 min-width: 200px;
21 padding: 10px;
22 -webkit-appearance: none;
19} 23}
diff --git a/src/styles/service-table.scss b/src/styles/service-table.scss
index 66d5ac941..f2090685b 100644
--- a/src/styles/service-table.scss
+++ b/src/styles/service-table.scss
@@ -1,62 +1,63 @@
1@import './config.scss'; 1@import './config.scss';
2 2
3.theme__dark .service-table {
4 .service-table__icon.has-custom-icon { border: 1px solid $dark-theme-gray-dark; }
5 .service-table__column-info .mdi { color: $dark-theme-gray-lightest; }
6
7 .service-table__row {
8 border-bottom: 1px solid $dark-theme-gray-darker;
9
10 &:hover { background: $dark-theme-gray-darker; }
11 &.service-table__row--disabled { color: $dark-theme-gray; }
12 }
13}
14
3.service-table { 15.service-table {
4 width: 100%; 16 width: 100%;
5 17
6 .service-table__toggle { 18 .service-table__toggle {
7 width: 60px; 19 width: 60px;
8 20
9 .franz-form__field { 21 .franz-form__field { margin-bottom: 0; }
10 margin-bottom: 0;
11 }
12 } 22 }
13 23
14 .service-table__icon { 24 .service-table__icon {
15 width: 35px; 25 width: 35px;
16 26
17 &.has-custom-icon { 27 &.has-custom-icon {
18 border-radius: $theme-border-radius;
19 border: 1px solid $theme-gray-lighter; 28 border: 1px solid $theme-gray-lighter;
29 border-radius: $theme-border-radius;
20 width: 37px; 30 width: 37px;
21 } 31 }
22 } 32 }
23 33
24 .service-table__column-icon { 34 .service-table__column-icon,
25 width: 40px; 35 .service-table__column-action { width: 40px }
26 }
27
28 .service-table__column-action {
29 width: 40px
30 }
31 36
32 .service-table__column-info { 37 .service-table__column-info {
33 width: 40px; 38 width: 40px;
34 39
35 .mdi { 40 .mdi {
41 color: $theme-gray-light;
36 display: block; 42 display: block;
37 font-size: 18px; 43 font-size: 18px;
38 color: $theme-gray-light;
39 } 44 }
40 } 45 }
41 46
42 .service-table__row { 47 .service-table__row {
43 border-bottom: 1px solid $theme-gray-lightest; 48 border-bottom: 1px solid $theme-gray-lightest;
44 49
45 &:hover { 50 &:hover { background: $theme-gray-lightest; }
46 background: $theme-gray-lightest;
47 }
48 51
49 &.service-table__row--disabled { 52 &.service-table__row--disabled {
50 color: $theme-gray-light; 53 color: $theme-gray-light;
51 54
52 .service-table__column-icon { 55 .service-table__column-icon {
53 filter: grayscale(100%); 56 filter: grayscale(100%);
54 opacity: 0.5; 57 opacity: .5;
55 } 58 }
56 } 59 }
57 } 60 }
58 61
59 td { 62 td { padding: 10px; }
60 padding: 10px;
61 }
62} 63}
diff --git a/src/styles/services.scss b/src/styles/services.scss
index 9f6cfc772..0e559501c 100644
--- a/src/styles/services.scss
+++ b/src/styles/services.scss
@@ -1,30 +1,46 @@
1@import './config.scss'; 1@import './config.scss';
2 2
3.theme__dark .services {
4 background: $dark-theme-gray-darkest;
5
6 .services__webview-wrapper { background: $dark-theme-gray-darkest; }
7
8 .services__webview,
9 .services__info-layer {
10 webview { background: $dark-theme-gray-darkest; }
11 }
12
13 .services__no-service,
14 .services__info-layer {
15 background: $dark-theme-gray-darkest;
16
17 h1 { color: $dark-theme-gray-lightest; }
18 }
19}
20
3.services { 21.services {
22 background: #FFF;
4 flex: 1; 23 flex: 1;
5 height: 100%; 24 height: 100%;
6 position: relative;
7 overflow: hidden;
8 background: #FFF;
9 order: 5; 25 order: 5;
26 overflow: hidden;
27 position: relative;
10 28
11 .services__webview-wrapper { 29 .services__webview-wrapper { background: $theme-gray-lighter; }
12 background: $theme-gray-lighter;
13 }
14 30
15 .services__webview, 31 .services__webview,
16 .services__info-layer { 32 .services__info-layer {
33 left: 0;
17 position: absolute; 34 position: absolute;
18 width: 100%;
19 top: 0; 35 top: 0;
20 left: 0; 36 width: 100%;
21 z-index: 0; 37 z-index: 0;
22 38
23 webview { 39 webview {
24 display: inline-flex;
25 width: 0px;
26 height: 0px;
27 background: $theme-gray-lighter; 40 background: $theme-gray-lighter;
41 display: inline-flex;
42 height: 0;
43 width: 0;
28 } 44 }
29 45
30 &.is-active { 46 &.is-active {
@@ -32,36 +48,30 @@
32 48
33 webview { 49 webview {
34 flex: 0 1; 50 flex: 0 1;
35 width: 100%;
36 height: 100%; 51 height: 100%;
52 width: 100%;
37 } 53 }
38 } 54 }
39 55
40 &--force-repaint { 56 &--force-repaint webview { z-index: 5; }
41 webview {
42 z-index: 5;
43 }
44 }
45 } 57 }
46 58
47 .services__no-service, 59 .services__no-service,
48 .services__info-layer { 60 .services__info-layer {
61 align-items: center;
62 background: $theme-gray-lighter;
49 display: flex; 63 display: flex;
50 flex-direction: column; 64 flex-direction: column;
51 justify-content: center; 65 justify-content: center;
52 align-items: center;
53 text-align: center; 66 text-align: center;
54 background: $theme-gray-lighter;
55 67
56 h1 { 68 h1 {
57 margin: 25px 0 40px;
58 color: $theme-gray-dark; 69 color: $theme-gray-dark;
70 margin: 25px 0 40px;
59 } 71 }
60 72
61 a.button, 73 a.button,
62 button { 74 button { margin: 40px 0 20px; }
63 margin: 40px 0 20px;
64 }
65 } 75 }
66 76
67 .services__info-layer { 77 .services__info-layer {
diff --git a/src/styles/settings.scss b/src/styles/settings.scss
index 2182c9b5f..f94ca114d 100644
--- a/src/styles/settings.scss
+++ b/src/styles/settings.scss
@@ -1,130 +1,215 @@
1@import './config.scss'; 1@import './config.scss';
2 2
3%headline { 3%headline {
4 color: $theme-gray-light;
4 font-size: 20px; 5 font-size: 20px;
5 font-weight: 400; 6 font-weight: 400;
6 letter-spacing: -1px; 7 letter-spacing: -1px;
7 color: $theme-gray-light;
8 8
9 a { 9 a { color: $theme-gray-light; }
10 color: $theme-gray-light; 10}
11
12%headline__dark {
13 color: $dark-theme-gray-lightest;
14
15 a { color: $dark-theme-gray-lightest; }
16}
17
18.theme__dark {
19 .settings-wrapper { background: rgba($dark-theme-black, .8); }
20
21 .settings {
22 background: $dark-theme-gray-darkest;
23 box-shadow: 0 20px 50px rgba($dark-theme-black, .5);
24
25 .settings__header {
26 background: $dark-theme-gray-darker;
27
28 h1,
29 .settings__header-item { @extend %headline__dark; }
30
31 .separator { border-right: 1px solid $dark-theme-gray-dark; }
32 .mdi { color: $dark-theme-gray-lightest; }
33 }
34
35 .settings__body::-webkit-scrollbar-thumb { background: $dark-theme-gray; }
36
37 .settings__close {
38 background: $dark-theme-gray-darker;
39 border-left: none;
40 color: $dark-theme-gray-lightest;
41
42 &:hover { background: darken($dark-theme-gray-darker, 5%); }
43 }
44
45 &__settings-group h3 { color: $dark-theme-gray-lightest; }
46
47 .settings__message {
48 border-top: 1px solid $theme-gray-lighter;
49 color: $dark-theme-gray-lightest;
50
51 .mdi { color: $dark-theme-gray-lightest; }
52 }
53
54 .settings__help { color: $dark-theme-gray-lightest; }
55
56 .settings__controls {
57 background: $dark-theme-gray-darker;
58
59 .franz-form__button.franz-form__button--secondary { background: $theme-gray-light; }
60 }
61
62 .account {
63 .account__box { background: $dark-theme-gray-darker; }
64
65 .invoices {
66 td { border-bottom: 1px solid $dark-theme-gray-darker; }
67 .invoices__action button { color: $theme-brand-primary; }
68 }
69 }
70
71 .premium-info {
72 background: $dark-theme-gray-darker;
73 border: 2px solid $theme-brand-primary;
74 }
75 .legal { color: $theme-gray-light; }
76 }
77
78 .settings-navigation {
79 background: $dark-theme-gray-darker;
80 border-right: 1px solid $dark-theme-gray-dark;
81
82 .settings-navigation__link {
83 color: $dark-theme-gray-lightest;
84
85 .badge {
86 background: $dark-theme-gray-lighter;
87 color: $dark-theme-gray-smoke;
88 }
89
90 &:hover {
91 background: darken($dark-theme-gray-darker, 5%);
92
93 .badge {
94 background: $dark-theme-gray-lighter;
95 color: $dark-theme-gray-smoke;
96 }
97 }
98
99 &.is-active {
100 background: $dark-theme-gray;
101 color: $dark-theme-gray-smoke;
102
103 .badge {
104 background: $dark-theme-gray-lighter;
105 color: $dark-theme-gray-smoke;
106 }
107 }
108 }
109
110 .settings-navigation__action-badge { background: $theme-brand-danger; }
11 } 111 }
12} 112}
13 113
14.settings-wrapper { 114.settings-wrapper {
15 background: rgba(black, 0.5); 115 align-items: center;
16 position: absolute; 116 background: rgba(black, .5);
17 width: 100%; 117 display: flex;
18 height: 100%; 118 height: 100%;
19 top: 0;
20 left: 0; 119 left: 0;
21 z-index: 9998;
22 display: flex;
23 justify-content: center; 120 justify-content: center;
24 align-items: center;
25 padding: 25px; 121 padding: 25px;
122 position: absolute;
123 top: 0;
124 width: 100%;
125 z-index: 9998;
26 126
27 .settings-wrapper__action { 127 .settings-wrapper__action {
28 position: absolute;
29 width: 100%;
30 height: 100%; 128 height: 100%;
31 top: 0;
32 left: 0; 129 left: 0;
130 position: absolute;
131 top: 0;
132 width: 100%;
33 } 133 }
34} 134}
35 135
36.settings { 136.settings {
37 position: relative; 137 background: #FFF;
138 border-radius: $theme-border-radius;
139 box-shadow: 0 20px 50px rgba(black, .5);
38 display: flex; 140 display: flex;
39 height: 100%; 141 height: 100%;
40 width: 100%; 142 max-height: 720px;
41 max-width: 900px; 143 max-width: 900px;
42 min-height: 400px; 144 min-height: 400px;
43 max-height: 720px;
44 z-index: 9999;
45 background: #FFF;
46 border-radius: $theme-border-radius;
47 box-shadow: 0 20px 50px rgba(black, 0.5);
48 overflow: hidden; 145 overflow: hidden;
49 // margin-top: -10%; 146 position: relative;
147 width: 100%;
148 z-index: 9999;
50 149
51 .settings__main { 150 .settings__main {
52 flex: 1;
53 display: flex; 151 display: flex;
152 flex: 1;
54 flex-direction: column; 153 flex-direction: column;
55 height: auto; 154 height: auto;
56 } 155 }
57 156
58 .settings__header { 157 .settings__header {
59 display: flex;
60 align-items: center; 158 align-items: center;
61 width: calc(100% - 60px); 159 background: $theme-gray-lighter;
160 display: flex;
62 height: 50px; 161 height: 50px;
63 padding: 0 40px; 162 padding: 0 40px;
64 background: $theme-gray-lighter; 163 width: calc(100% - 60px);
65 164
66 h1 { 165 h1 {
67 @extend %headline; 166 @extend %headline;
68 margin: 0; 167 margin: 0;
69 } 168 }
70 169
71 .settings__header-item { 170 .settings__header-item { @extend %headline; }
72 @extend %headline;
73 }
74 171
75 .separator { 172 .separator {
173 border-right: 1px solid darken($theme-gray-lighter, 10%);
76 height: 100%; 174 height: 100%;
77 margin: 0 15px; 175 margin: 0 15px;
78 border-right: 1px solid darken($theme-gray-lighter, 10%);
79 transform: skew(15deg) rotate(2deg); 176 transform: skew(15deg) rotate(2deg);
80 } 177 }
81 178
82 .mdi { 179 .mdi { color: $theme-gray-light; }
83 color: $theme-gray-light;
84 }
85 } 180 }
86 181
87 .settings__body { 182 .settings__body {
88 flex: 1; 183 flex: 1;
89 padding: 25px 15px 15px 25px;
90 margin: 15px; 184 margin: 15px;
91 overflow-y: scroll; 185 overflow-y: scroll;
186 padding: 25px 15px 15px 25px;
92 187
93 &::-webkit-scrollbar { 188 &::-webkit-scrollbar { width: 8px; }
94 width: 8px;
95 }
96 189
97 /* Track */ 190 /* Track */
98 &::-webkit-scrollbar-track { 191 &::-webkit-scrollbar-track {
99 -webkit-border-radius: 10px;
100 border-radius: 10px;
101 background: none; 192 background: none;
193 border-radius: 10px;
194 -webkit-border-radius: 10px;
102 } 195 }
103 196
104 /* Handle */ 197 /* Handle */
105 &::-webkit-scrollbar-thumb { 198 &::-webkit-scrollbar-thumb {
106 -webkit-border-radius: 10px;
107 border-radius: 10px;
108 background: $theme-gray-lighter; 199 background: $theme-gray-lighter;
200 border-radius: 10px;
201 -webkit-border-radius: 10px;
109 } 202 }
110 203
111 &::-webkit-scrollbar-thumb:window-inactive { 204 &::-webkit-scrollbar-thumb:window-inactive { background: none; }
112 background: none; 205 .service-flex-grid { display: flex; }
113 } 206 .service-name { flex: 1px; }
114
115 .service-flex-grid {
116 display: flex;
117 }
118
119 .service-name {
120 flex: 1px;
121 }
122 207
123 .service-icon { 208 .service-icon {
124 width: 140px;
125 float: right; 209 float: right;
126 margin-top: 30px;
127 margin-left: 40px; 210 margin-left: 40px;
211 margin-top: 30px;
212 width: 140px;
128 213
129 label { 214 label {
130 font-weight: bold; 215 font-weight: bold;
@@ -134,51 +219,50 @@
134 } 219 }
135 220
136 .settings__close { 221 .settings__close {
137 position: absolute;
138 right: 0;
139 background: $theme-gray-lighter; 222 background: $theme-gray-lighter;
140 height: 50px;
141 padding: 0 20px;
142 font-size: 20px;
143 border-left: 1px solid darken($theme-gray-lighter, 5%); 223 border-left: 1px solid darken($theme-gray-lighter, 5%);
144 color: $theme-gray-light; 224 color: $theme-gray-light;
225 font-size: 20px;
226 height: 50px;
227 padding: 0 20px;
228 position: absolute;
229 right: 0;
145 transition: background $theme-transition-time; 230 transition: background $theme-transition-time;
146 231
147 &:hover { 232 &:hover { background: darken($theme-gray-lighter, 5%); }
148 background: darken($theme-gray-lighter, 5%);
149 }
150 } 233 }
151 234
152 .search-input { 235 .search-input { margin-bottom: 30px; }
153 margin-bottom: 30px;
154 }
155 236
156 &__options { 237 &__options {
157 margin-top: 20px;
158 flex: 1; 238 flex: 1;
239 margin-top: 20px;
159 } 240 }
160 241
161 &__settings-group { 242 &__settings-group {
162 margin-top: 10px; 243 margin-top: 10px;
163 244
164 h3 { 245 h3 {
246 color: $theme-gray-light;
165 font-weight: bold; 247 font-weight: bold;
248 letter-spacing: -.1px;
166 margin: 25px 0 15px; 249 margin: 25px 0 15px;
167 color: $theme-gray-light;
168 letter-spacing: -0.1px;
169 250
170 &:first-of-type { 251 &:first-of-type { margin-top: 0; }
171 margin-top: 0; 252
253 .badge {
254 font-weight: normal;
255 margin-left: 10px;
172 } 256 }
173 } 257 }
174 } 258 }
175 259
176 .settings__message { 260 .settings__message {
261 border-top: 1px solid $theme-gray-lighter;
262 color: $theme-gray-light;
177 display: flex; 263 display: flex;
178 margin-top: 40px; 264 margin-top: 40px;
179 padding-top: 15px; 265 padding-top: 15px;
180 border-top: 1px solid $theme-gray-lighter;
181 color: $theme-gray-light;
182 266
183 .mdi { 267 .mdi {
184 color: $theme-gray-light; 268 color: $theme-gray-light;
@@ -188,69 +272,53 @@
188 } 272 }
189 273
190 .settings__help { 274 .settings__help {
191 margin: -10px 0 20px 55px;;
192 font-size: 12px;
193 color: $theme-gray-light; 275 color: $theme-gray-light;
276 font-size: 12px;
277 margin: -10px 0 20px 55px;;
194 } 278 }
195 279
196 .settings__controls { 280 .settings__controls {
281 background: $theme-gray-lighter;
197 display: flex; 282 display: flex;
283 height: auto;
198 justify-content: space-between; 284 justify-content: space-between;
199 padding: 10px 20px; 285 padding: 10px 20px;
200 height: auto;
201 background: $theme-gray-lighter;
202 286
203 .franz-form__button { 287 .franz-form__button {
204 &[type='submit'] { 288 &[type='submit'] { margin-left: auto; }
205 margin-left: auto; 289 &.franz-form__button--secondary { background: $theme-gray-light; }
206 }
207
208 &.franz-form__button--secondary {
209 background: $theme-gray-light;
210 }
211 } 290 }
212 } 291 }
213 292
214 .settings__delete-button { 293 .settings__delete-button { right: 0; }
215 right: 0;
216 }
217 294
218 .settings__empty-state { 295 .settings__empty-state {
219 width: 100%; 296 align-items: center;
297 align-self: center;
220 height: auto; 298 height: auto;
221 min-height: 70%; 299 min-height: 70%;
222 text-align: center; 300 text-align: center;
223 align-self: center; 301 width: 100%;
224 // margin-top: -20px;
225 align-items: center;
226 302
227 a.button { 303 a.button { margin-top: 40px; }
228 margin-top: 40px;
229 }
230 } 304 }
231 305
232 .account { 306 .account {
233 height: auto; 307 height: auto;
234 // padding: 20px;
235 308
236 .account__box { 309 .account__box {
310 align-items: center;
237 background: $theme-gray-lightest; 311 background: $theme-gray-lightest;
238 border-radius: $theme-border-radius; 312 border-radius: $theme-border-radius;
239 padding: 20px;
240 margin-bottom: 40px; 313 margin-bottom: 40px;
241 align-items: center; 314 padding: 20px;
242
243 &.account__box--flex {
244 display: flex;
245 }
246 315
247 &.account__box--last { 316 &.account__box--flex { display: flex; }
248 margin-bottom: 0; 317 &.account__box--last { margin-bottom: 0; }
249 }
250 318
251 .auth__button { 319 .auth__button {
252 width: 100%;
253 margin-top: 10px; 320 margin-top: 10px;
321 width: 100%;
254 } 322 }
255 } 323 }
256 324
@@ -258,57 +326,40 @@
258 margin-right: 20px; 326 margin-right: 20px;
259 position: relative; 327 position: relative;
260 328
261 .emoji img { 329 .emoji img { width: 30px; }
262 width: 30px;
263 }
264 } 330 }
265 331
266 .account__avatar-premium { 332 .account__avatar-premium {
333 font-size: 26px;
267 position: absolute; 334 position: absolute;
268 top: 2px;
269 right: 2px; 335 right: 2px;
270 font-size: 26px; 336 top: 2px;
271 } 337 }
272 338
273 .account__info { 339 .account__info {
274 flex: 1; 340 flex: 1;
275 341
276 h2 { 342 h2 { margin-bottom: 5px; }
277 margin-bottom: 5px; 343 .badge { margin-top: 5px; }
278 }
279
280 .badge {
281 margin-top: 5px;
282 }
283 } 344 }
284 345
285 .account__subscription { 346 .account__subscription {
286 display: flex;
287 align-items: center; 347 align-items: center;
348 display: flex;
288 349
289 .badge { 350 .badge { margin-left: 10px; }
290 margin-left: 10px;
291 }
292 }
293
294 .account__subscription-button {
295 margin-left: auto;
296 }
297
298 .franz-form__button {
299 white-space: nowrap;
300 } 351 }
301 352
302 div { 353 .account__subscription-button { margin-left: auto; }
303 height: auto; 354 .franz-form__button { white-space: nowrap; }
304 } 355 div { height: auto; }
305 356
306 .invoices { 357 .invoices {
307 width: 100%; 358 width: 100%;
308 359
309 td { 360 td {
310 padding: 15px 0;
311 border-bottom: 1px solid $theme-gray-lighter; 361 border-bottom: 1px solid $theme-gray-lighter;
362 padding: 15px 0;
312 } 363 }
313 364
314 tr:last-of-type td { 365 tr:last-of-type td {
@@ -319,9 +370,7 @@
319 .invoices__action { 370 .invoices__action {
320 text-align: right; 371 text-align: right;
321 372
322 button { 373 button { color: $theme-brand-primary; }
323 color: $theme-brand-primary;
324 }
325 } 374 }
326 } 375 }
327 } 376 }
@@ -331,15 +380,13 @@
331 font-size: 40px; 380 font-size: 40px;
332 margin-bottom: 20px; 381 margin-bottom: 20px;
333 382
334 img { 383 img { width: 40px; }
335 width: 40px;
336 }
337 } 384 }
338 385
339 .premium-info { 386 .premium-info {
340 background: lighten($theme-brand-primary, 40%); 387 background: lighten($theme-brand-primary, 40%);
341 padding: 20px;
342 border-radius: $theme-border-radius; 388 border-radius: $theme-border-radius;
389 padding: 20px;
343 } 390 }
344 391
345 .content-tabs .premium-info { 392 .content-tabs .premium-info {
@@ -348,35 +395,33 @@
348 } 395 }
349 396
350 .legal { 397 .legal {
351 text-align: center;
352 margin-top: 20px;
353 color: $theme-gray-light; 398 color: $theme-gray-light;
399 margin-top: 20px;
400 text-align: center;
354 } 401 }
355} 402}
356 403
357.settings-navigation { 404.settings-navigation {
358 width: 200px;
359 height: auto;
360 background: $theme-gray-lightest;
361 display: flex; 405 display: flex;
406 background: $theme-gray-lightest;
362 flex-direction: column; 407 flex-direction: column;
408 height: auto;
409 width: 200px;
363 410
364 .settings-navigation__link { 411 .settings-navigation__link {
365 display: flex;
366 align-items: center; 412 align-items: center;
367 height: 50px;
368 flex-shrink: 0;
369 text-decoration: none;
370 color: $theme-text-color; 413 color: $theme-text-color;
414 display: flex;
415 flex-shrink: 0;
416 height: 50px;
371 padding: 0 20px; 417 padding: 0 20px;
418 text-decoration: none;
372 transition: background $theme-transition-time, color $theme-transition-time; 419 transition: background $theme-transition-time, color $theme-transition-time;
373 420
374 &:hover { 421 &:hover {
375 background: darken($theme-gray-lightest, 5%); 422 background: darken($theme-gray-lightest, 5%);
376 423
377 .badge { 424 .badge { background: #FFF; }
378 background: #FFF;
379 }
380 } 425 }
381 426
382 &.is-active { 427 &.is-active {
@@ -390,22 +435,20 @@
390 } 435 }
391 } 436 }
392 437
393 .settings-navigation__expander { 438 .settings-navigation__expander { flex: 1; }
394 flex: 1;
395 }
396 439
397 .badge { 440 .badge {
398 transition: background $theme-transition-time, color $theme-transition-time;
399 display: initial; 441 display: initial;
400 margin-left: 5px; 442 margin-left: 5px;
443 transition: background $theme-transition-time, color $theme-transition-time;
401 } 444 }
402 445
403 .settings-navigation__action-badge { 446 .settings-navigation__action-badge {
404 display: inline-block;
405 width: 7px;
406 height: 7px;
407 background: $theme-brand-danger; 447 background: $theme-brand-danger;
408 border-radius: 100%; 448 border-radius: 100%;
449 display: inline-block;
450 height: 7px;
409 margin-left: 5px; 451 margin-left: 5px;
452 width: 7px;
410 } 453 }
411} 454}
diff --git a/src/styles/status-bar-target-url.scss b/src/styles/status-bar-target-url.scss
index bc7438be9..36f69df28 100644
--- a/src/styles/status-bar-target-url.scss
+++ b/src/styles/status-bar-target-url.scss
@@ -1,14 +1,14 @@
1@import './config.scss'; 1@import './config.scss';
2 2
3.status-bar-target-url { 3.status-bar-target-url {
4 height: auto;
5 background: $theme-gray-lighter; 4 background: $theme-gray-lighter;
6 padding: 4px; 5 border-top-left-radius: 5px;
7 position: absolute;
8 box-shadow: 0 0 8px rgba(black, 0.2);
9 font-size: 12px;
10 color: $theme-gray-dark;
11 bottom: 0; 6 bottom: 0;
7 box-shadow: 0 0 8px rgba(black, .2);
8 color: $theme-gray-dark;
9 font-size: 12px;
10 height: auto;
12 right: 0; 11 right: 0;
13 border-top-left-radius: 5px; 12 padding: 4px;
13 position: absolute;
14} 14}
diff --git a/src/styles/subscription-popup.scss b/src/styles/subscription-popup.scss
index b6f232fcb..fb4795d6c 100644
--- a/src/styles/subscription-popup.scss
+++ b/src/styles/subscription-popup.scss
@@ -1,20 +1,15 @@
1.subscription-popup { 1.subscription-popup {
2 height: 100%; 2 height: 100%;
3 3
4 &__content { 4 &__content { height: calc(100% - 60px); }
5 height: calc(100% - 60px); 5 &__webview { height: 100%; }
6 }
7
8 &__webview {
9 height: 100%;
10 }
11 6
12 &__toolbar { 7 &__toolbar {
13 height: 60px;
14 background: $theme-gray-lightest; 8 background: $theme-gray-lightest;
9 border-top: 1px solid $theme-gray-lighter;
15 display: flex; 10 display: flex;
11 height: 60px;
16 justify-content: space-between; 12 justify-content: space-between;
17 padding: 10px; 13 padding: 10px;
18 border-top: 1px solid $theme-gray-lighter;
19 } 14 }
20} 15}
diff --git a/src/styles/subscription.scss b/src/styles/subscription.scss
index 8bfb68d23..70fb41cde 100644
--- a/src/styles/subscription.scss
+++ b/src/styles/subscription.scss
@@ -3,63 +3,47 @@
3 margin: 10px 0; 3 margin: 10px 0;
4 4
5 li { 5 li {
6 height: 30px;
7 align-items: center; 6 align-items: center;
8 display: flex; 7 display: flex;
8 height: 30px;
9 9
10 &:before { 10 &:before {
11 content: "ðŸ‘"; 11 content: "ðŸ‘";
12 margin-right: 10px; 12 margin-right: 10px;
13 } 13 }
14 14
15 .badge { 15 .badge { margin-left: 10px; }
16 margin-left: 10px;
17 }
18 } 16 }
19 } 17 }
20 18
21 .subscription__premium-info { 19 .subscription__premium-info { margin: 15px 0 25px; }
22 margin: 15px 0 25px;
23 }
24} 20}
25 21
26.paymentTiers { 22.paymentTiers .franz-form__radio-wrapper {
27 .franz-form__radio-wrapper { 23 flex-flow: wrap;
28 flex-flow: wrap;
29 24
30 .franz-form__radio { 25 .franz-form__radio {
31 width: 32%; 26 flex: initial;
32 flex: initial; 27 margin-right: 2%;
33 margin-right: 2%; 28 width: 32%;
34 29
35 &:nth-child(3) { 30 &:nth-child(3) { margin-right: 0; }
36 margin-right: 0;
37 }
38 31
39 &:nth-child(4) { 32 &:nth-child(4) {
40 margin-right: 0; 33 margin-right: 0;
41 margin-top: 2%; 34 margin-top: 2%;
42 width: 100%; 35 width: 100%;
43 }
44 } 36 }
45 } 37 }
46} 38}
47 39
48.settings { 40.settings .paymentTiers .franz-form__radio-wrapper .franz-form__radio {
49 .paymentTiers { 41 width: 49%;
50 .franz-form__radio-wrapper {
51 .franz-form__radio {
52 width: 49%;
53 42
54 &:nth-child(2) { 43 &:nth-child(2) { margin-right: 0; }
55 margin-right: 0;
56 }
57 44
58 &:nth-child(3) { 45 &:nth-child(3) {
59 margin-top: 2%; 46 margin-top: 2%;
60 width: 100%; 47 width: 100%;
61 }
62 }
63 }
64 } 48 }
65} 49}
diff --git a/src/styles/tabs.scss b/src/styles/tabs.scss
index ac48aabd6..cbd833f04 100644
--- a/src/styles/tabs.scss
+++ b/src/styles/tabs.scss
@@ -1,104 +1,88 @@
1@import './config.scss'; 1@import './config.scss';
2 2
3.theme__dark .tab-item {
4 &.is-active {
5 background: $dark-theme-gray;
6
7 .tab-item__icon { margin-left: -4px; }
8 }
9
10 &.is-disabled .tab-item__icon { filter: grayscale(100%) opacity(.2); }
11 .tab-item__icon { width: 34px; }
12}
13
3.tabs { 14.tabs {
4 display: flex; 15 display: flex;
5 // flex: 1;
6 flex-direction: column; 16 flex-direction: column;
7 flex-shrink: 1; 17 flex-shrink: 1;
8 // align-items: center;
9 // height: auto;
10 18
11 .placeholder { 19 .placeholder {
12 width: 100%;
13 height: 40px; 20 height: 40px;
21 width: 100%;
14 } 22 }
15} 23}
16 24
17.tab-item { 25.tab-item {
18 display: flex;
19 justify-content: center;
20 align-items: center; 26 align-items: center;
21 position: relative; 27 display: flex;
22 width: $theme-sidebar-width;
23 height: 65px; 28 height: 65px;
29 justify-content: center;
24 min-height: 50px; 30 min-height: 50px;
31 position: relative;
25 transition: background $theme-transition-time; 32 transition: background $theme-transition-time;
33 width: $theme-sidebar-width;
26 34
27 &.is-active { 35 &.is-active {
28 border-left: 4px solid $theme-brand-primary;
29 background: lighten($theme-brand-primary, 35%); 36 background: lighten($theme-brand-primary, 35%);
37 border-left: 4px solid $theme-brand-primary;
30 38
31 .tab-item__icon { 39 .tab-item__icon { margin-left: -4px; }
32 margin-left: -4px;
33 }
34 }
35
36 &.is-disabled {
37 .tab-item__icon {
38 filter: grayscale(100%) opacity(0.2);
39 }
40 }
41
42 &.has-custom-icon {
43 .tab-item__icon {
44 border-radius: $theme-border-radius;
45 // border: 1px solid $theme-gray-lighter;
46 // width: 32px;
47 }
48 } 40 }
49 41
50 &:active { 42 &.is-disabled .tab-item__icon { filter: grayscale(100%) opacity(0.2); }
51 .tab-item__icon { 43 &.has-custom-icon .tab-item__icon { border-radius: $theme-border-radius; }
52 opacity: 0.7; 44 &:active .tab-item__icon { opacity: .7; }
53 }
54 }
55 45
56 .tab-item__icon { 46 .tab-item__icon {
57 width: 30px;
58 height: auto; 47 height: auto;
48 width: 30px;
59 } 49 }
60 50
61 .tab-item__message-count { 51 .tab-item__message-count {
62 min-width: 17px; 52 align-items: center;
63 min-height: 17px;
64 background: $theme-brand-danger; 53 background: $theme-brand-danger;
65 color: #FFF;
66 border-radius: 20px; 54 border-radius: 20px;
67 padding: 0px 5px;
68 font-size: 11px;
69 position: absolute;
70 right: 8px;
71 bottom: 8px; 55 bottom: 8px;
56 color: #FFF;
72 display: flex; 57 display: flex;
58 font-size: 11px;
73 justify-content: center; 59 justify-content: center;
74 align-items: center; 60 min-height: 17px;
61 min-width: 17px;
62 padding: 0px 5px;
63 position: absolute;
64 right: 8px;
75 65
76 &.is-indirect { 66 &.is-indirect { padding-top: 0; }
77 padding-top: 0px;
78 }
79 } 67 }
80 68
81 .tab-item__info-badge { 69 .tab-item__info-badge {
82 width: 17px; 70 align-items: center;
83 height: 17px;
84 background: $theme-gray-light; 71 background: $theme-gray-light;
85 color: $theme-gray-lighter; 72 bottom: 8px;
86 border-radius: 20px; 73 border-radius: 20px;
87 padding: 0px 5px; 74 color: $theme-gray-lighter;
75 display: flex;
88 font-size: 11px; 76 font-size: 11px;
77 height: 17px;
78 justify-content: center;
79 padding: 0px 5px;
89 position: absolute; 80 position: absolute;
90 right: 8px; 81 right: 8px;
91 bottom: 8px; 82 width: 17px;
92 display: flex;
93 justify-content: center;
94 align-items: center;
95 83
96 &.is-indirect { 84 &.is-indirect { padding-top: 0; }
97 padding-top: 0px;
98 }
99 } 85 }
100 86
101 &.is-reordering { 87 &.is-reordering { z-index: 99999; }
102 z-index: 99999;
103 }
104} 88}
diff --git a/src/styles/title-bar.scss b/src/styles/title-bar.scss
index 5316f35b3..885eb94c4 100644
--- a/src/styles/title-bar.scss
+++ b/src/styles/title-bar.scss
@@ -1,49 +1,80 @@
1#electron-app-title-bar { 1@import './config.scss';
2 background: $theme-gray-lightest;
3 border-bottom: 0;
4 box-shadow: 0px 0 8px rgba(#000, 0.1);
5
6 span {
7 line-height: normal;
8 }
9 2
10 div { 3.theme__dark #electron-app-title-bar {
11 height: auto; 4 background: $dark-theme-gray-darker;
12 }
13 5
14 .toolbar-dropdown { 6 .toolbar-dropdown {
15 &.open { 7 &.open > .toolbar-button > button {
16 box-shadow: 0px 0 8px rgba(#000, 0.1); 8 background: $dark-theme-gray-light;
9 color: $dark-theme-gray-lightest;
17 } 10 }
18 11
19 &:not(.open) { 12 &:not(.open) {
20 .menu-item .menu-label { 13 .menu-item .menu-label { opacity: 1; }
21 opacity: 1; 14 > .toolbar-button > button:hover {
15 background: $dark-theme-gray-darkest;
22 } 16 }
17 }
18 }
23 19
24 &>.toolbar-button > button:hover { 20 #app-menu-bar #foldout-container .foldout {
25 background: $theme-brand-primary; 21 color: $dark-theme-gray-lightest;
22
23 .menu-pane {
24 background: $dark-theme-gray-light;
25
26 .menu-item {
27 .accelerator {
28 color: lighten($dark-theme-gray-light, 20%);
29 }
30 }
31
32 hr {
33 border-color: $dark-theme-gray-lighter;
26 } 34 }
27 } 35 }
28 } 36 }
29 37
38 .list .ReactVirtualized__Grid {
39 background: $dark-theme-gray-light;
40 }
41}
42
43#electron-app-title-bar {
44 background: $theme-gray-lightest;
45 border-bottom: 0;
46 box-shadow: 0 0 8px rgba(black, .1);
47
48 span { line-height: normal; }
49
50 div { height: auto; }
51
52 .toolbar-dropdown {
53 &.open { box-shadow: 0 0 8px rgba(black, 0.1); }
54
55 &:not(.open) {
56 .menu-item .menu-label { opacity: 1; }
57 > .toolbar-button > button:hover { background: $theme-brand-primary; }
58 }
59 }
60
30 .list-item { 61 .list-item {
31 .menu-item { 62 .menu-item {
32 margin: 4px;
33 border-radius: $theme-border-radius-small; 63 border-radius: $theme-border-radius-small;
64 margin: 4px;
34 } 65 }
35 &.selected, &.selected:focus { 66
67 &.selected,
68 &.selected:focus {
36 background: none; 69 background: none;
37 70
38 .menu-item { 71 .menu-item { background: $theme-brand-primary; }
39 background: $theme-brand-primary;
40 }
41 } 72 }
42 } 73 }
43 74
44 .menu-pane { 75 .menu-pane {
45 box-shadow: 0px 0 10px rgba(#000, 0.5);
46 border-bottom-left-radius: $theme-border-radius-small; 76 border-bottom-left-radius: $theme-border-radius-small;
47 border-bottom-right-radius: $theme-border-radius-small; 77 border-bottom-right-radius: $theme-border-radius-small;
78 box-shadow: 0 0 10px rgba(black, .5);
48 } 79 }
49} 80}
diff --git a/src/styles/toggle.scss b/src/styles/toggle.scss
index 5b47e6495..0ce0c3379 100644
--- a/src/styles/toggle.scss
+++ b/src/styles/toggle.scss
@@ -4,44 +4,46 @@ $toggle-size: 14px;
4$toggle-width: 40px; 4$toggle-width: 40px;
5$toggle-button-size: 22px; 5$toggle-button-size: 22px;
6 6
7.franz-form { 7.theme__dark .franz-form .franz-form__toggle-wrapper .franz-form__toggle {
8 .franz-form__toggle-wrapper { 8 background: $dark-theme-gray;
9 display: flex; 9 border-radius: $toggle-size / 2;
10 flex-direction: row;
11 10
12 .franz-form__label { 11 .franz-form__toggle-button {
13 margin-left: 20px; 12 background: $dark-theme-gray-lighter;
13 box-shadow: 0 1px 4px rgba($dark-theme-black, .3);
14 }
15}
16
17.franz-form .franz-form__toggle-wrapper {
18 display: flex;
19 flex-direction: row;
20
21 .franz-form__label { margin-left: 20px; }
22
23 .franz-form__toggle {
24 background: $theme-gray-lighter;
25 border-radius: $theme-border-radius;
26 height: $toggle-size;
27 position: relative;
28 width: $toggle-width;
29
30 .franz-form__toggle-button {
31 background: $theme-gray-light;
32 border-radius: 100%;
33 box-shadow: 0 1px 4px rgba(0, 0, 0, .3);
34 height: $toggle-size - 2;
35 left: 1px;
36 top: 1px;
37 position: absolute;
38 transition: all .5s;
39 width: $toggle-size - 2;
14 } 40 }
15 41
16 .franz-form__toggle { 42 &.is-active .franz-form__toggle-button {
17 width: $toggle-width; 43 background: $theme-brand-primary;
18 height: $toggle-size; 44 left: $toggle-width - $toggle-size - 3;;
19 position: relative;
20 background: $theme-gray-lighter;
21 border-radius: $theme-border-radius;
22
23 .franz-form__toggle-button {
24 position: absolute;
25 left: 0;
26 top: -($toggle-button-size - $toggle-size) / 2;
27 width: $toggle-button-size;
28 height: $toggle-button-size;
29 background: $theme-gray-light;
30 border-radius: 100%;
31 transition: all 0.5s;
32 box-shadow: 0 1px 4px rgba(0,0,0,0.3);
33 }
34
35 &.is-active {
36 .franz-form__toggle-button {
37 left: $toggle-width - $toggle-button-size;
38 background: $theme-brand-primary;
39 }
40 }
41
42 input {
43 display: none;
44 }
45 } 45 }
46
47 input { display: none; }
46 } 48 }
47} 49}
diff --git a/src/styles/tooltip.scss b/src/styles/tooltip.scss
index 1194e7fbb..5700e994c 100644
--- a/src/styles/tooltip.scss
+++ b/src/styles/tooltip.scss
@@ -1,4 +1,4 @@
1.__react_component_tooltip { 1.__react_component_tooltip {
2 padding: 10px !important;
3 height: auto; 2 height: auto;
3 padding: 10px !important;
4} 4}
diff --git a/src/styles/type-helper.scss b/src/styles/type-helper.scss
new file mode 100644
index 000000000..b1da394b5
--- /dev/null
+++ b/src/styles/type-helper.scss
@@ -0,0 +1,100 @@
1@function str-split($string, $separator) {
2 // empty array/list
3 $split-arr: ();
4 // first index of separator in string
5 $index : str-index($string, $separator);
6 // loop through string
7 @while $index != null {
8 // get the substring from the first character to the separator
9 $item: str-slice($string, 1, $index - 1);
10 // push item to array
11 $split-arr: append($split-arr, $item);
12 // remove item and separator from string
13 $string: str-slice($string, $index + 1);
14 // find new index of separator
15 $index : str-index($string, $separator);
16 }
17 // add the remaining string to list (the last item)
18 $split-arr: append($split-arr, $string);
19
20 @return $split-arr;
21}
22
23// ----
24// Sass (v3.4.13)
25// Compass (v1.0.3)
26// ----
27
28/// String to number converter
29/// @author Hugo Giraudel
30/// @access private
31
32
33/// Casts a string into a number
34///
35/// @param {String | Number} $value - Value to be parsed
36///
37/// @return {Number}
38
39@function to-number($value) {
40 @if type-of($value) == 'number' {
41 @return $value;
42 } @else if type-of($value) != 'string' {
43 $_: log('Value for `to-number` should be a number or a string.');
44 }
45
46 $result: 0;
47 $digits: 0;
48 $minus: str-slice($value, 1, 1) == '-';
49 $numbers: ('0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9);
50
51 @for $i from if($minus, 2, 1) through str-length($value) {
52 $character: str-slice($value, $i, $i);
53
54 @if not (index(map-keys($numbers), $character) or $character == '.') {
55 @return to-length(if($minus, -$result, $result), str-slice($value, $i))
56 }
57
58 @if $character == '.' {
59 $digits: 1;
60 } @else if $digits == 0 {
61 $result: $result * 10 + map-get($numbers, $character);
62 } @else {
63 $digits: $digits * 10;
64 $result: $result + map-get($numbers, $character) / $digits;
65 }
66 }
67
68 @return if($minus, -$result, $result);;
69}
70
71
72/// Add `$unit` to `$value`
73///
74/// @param {Number} $value - Value to add unit to
75/// @param {String} $unit - String representation of the unit
76///
77/// @return {Number} - `$value` expressed in `$unit`
78@function to-length($value, $unit) {
79 $units: ('px': 1px, 'cm': 1cm, 'mm': 1mm, '%': 1%, 'ch': 1ch, 'pc': 1pc, 'in': 1in, 'em': 1em, 'rem': 1rem, 'pt': 1pt, 'ex': 1ex, 'vw': 1vw, 'vh': 1vh, 'vmin': 1vmin, 'vmax': 1vmax);
80
81 @if not index(map-keys($units), $unit) {
82 $_: log('Invalid unit `#{$unit}`.');
83 }
84
85 @return $value * map-get($units, $unit);
86}
87
88
89
90/// converts injectes rgb strings to sass colors
91@function convert-rgb-string-to-color($string) {
92 $values: str-split($string, ',');
93 $colorList: ();
94 @each $value in $values {
95 $colorList: append($colorList, to-number($value));
96 }
97
98 $rgbaColor: rgb(nth($colorList, 1), nth($colorList, 2), nth($colorList, 3));
99 @return $rgbaColor;
100} \ No newline at end of file
diff --git a/src/styles/type.scss b/src/styles/type.scss
index cacbec482..135d32da0 100644
--- a/src/styles/type.scss
+++ b/src/styles/type.scss
@@ -1,6 +1,12 @@
1@import './config.scss'; 1@import './config.scss';
2@import './mixins.scss'; 2@import './mixins.scss';
3 3
4.theme__dark {
5 a { color: $dark-theme-gray-smoke; }
6 .label { color: $dark-theme-gray-lightest; }
7 .footnote { color: $dark-theme-gray-lightest; }
8}
9
4h1 { 10h1 {
5 font-size: 30px; 11 font-size: 30px;
6 font-weight: 300; 12 font-weight: 300;
@@ -15,38 +21,32 @@ h2 {
15 margin-bottom: 25px; 21 margin-bottom: 25px;
16 margin-top: 55px; 22 margin-top: 55px;
17 23
18 &:first-of-type { 24 &:first-of-type { margin-top: 0; }
19 margin-top: 0;
20 }
21} 25}
22 26
23p { 27p {
24 margin-bottom: 10px; 28 margin-bottom: 10px;
25 line-height: 1.7rem; 29 line-height: 1.7rem;
26 30
27 &:last-of-type { 31 &:last-of-type { margin-bottom: 0; }
28 margin-bottom: 0;
29 }
30} 32}
31 33
32strong { 34strong { font-weight: bold; }
33 font-weight: bold;
34}
35 35
36a { 36a {
37 text-decoration: none;
38 color: $theme-text-color; 37 color: $theme-text-color;
38 text-decoration: none;
39 39
40 &.button { 40 &.button {
41 position: relative;
42 background: none; 41 background: none;
43 display: inline-block;
44 padding: 10px 20px;
45 border: 2px solid $theme-brand-primary; 42 border: 2px solid $theme-brand-primary;
46 color: $theme-brand-primary;
47 border-radius: 3px; 43 border-radius: 3px;
48 transition: background 0.5s, color 0.5s; 44 color: $theme-brand-primary;
45 display: inline-block;
46 padding: 10px 20px;
47 position: relative;
49 text-align: center; 48 text-align: center;
49 transition: background .5s, color .5s;
50 50
51 &:hover { 51 &:hover {
52 background: darken($theme-brand-primary, 5%); 52 background: darken($theme-brand-primary, 5%);
@@ -54,25 +54,19 @@ a {
54 } 54 }
55 } 55 }
56 56
57 &.link { 57 &.link { color: $theme-brand-primary; }
58 color: $theme-brand-primary;
59 }
60} 58}
61 59
62.error-message, .error-message:last-of-type { 60.error-message, .error-message:last-of-type {
63 margin: 10px 0;
64 color: $theme-brand-danger; 61 color: $theme-brand-danger;
62 margin: 10px 0;
65} 63}
66 64
67.center { 65.center { text-align: center; }
68 text-align: center;
69}
70 66
71.label { 67.label { @include formLabel(); }
72 @include formLabel();
73}
74 68
75.footnote { 69.footnote {
76 font-size: 12px;
77 color: $theme-gray-light; 70 color: $theme-gray-light;
78} \ No newline at end of file 71 font-size: 12px;
72}
diff --git a/src/styles/util.scss b/src/styles/util.scss
index 3faad8db3..cc93f79ab 100644
--- a/src/styles/util.scss
+++ b/src/styles/util.scss
@@ -1,16 +1,16 @@
1.scroll-container { 1.scroll-container {
2 height: 100%;
3 flex: 1; 2 flex: 1;
4 overflow-y: scroll; 3 height: 100%;
5 overflow-x: hidden; 4 overflow-x: hidden;
5 overflow-y: scroll;
6} 6}
7 7
8.loader { 8.loader {
9 position: relative;
10 z-index: 9999;
11 display: block; 9 display: block;
12 width: 100%;
13 height: 40px; 10 height: 40px;
11 position: relative;
12 width: 100%;
13 z-index: 9999;
14} 14}
15 15
16.align-middle { 16.align-middle {
diff --git a/src/styles/welcome.scss b/src/styles/welcome.scss
index a12069ba4..b3d6515b1 100644
--- a/src/styles/welcome.scss
+++ b/src/styles/welcome.scss
@@ -1,92 +1,84 @@
1.auth { 1.auth .welcome {
2 .welcome { 2 &__content {
3 3 align-items: center;
4 &__content { 4 color: #FFF;
5 display: flex; 5 display: flex;
6 align-items: center; 6 justify-content: center;
7 justify-content: center; 7 }
8 color: #FFF;
9 }
10
11 &__logo {
12 width: 100px;
13 }
14 8
15 &__text { 9 &__logo { width: 100px; }
16 margin-left: 40px;
17 padding-left: 40px;
18 border-left: 1px solid #FFF;
19 10
20 h1 { 11 &__text {
21 font-size: 60px; 12 border-left: 1px solid #FFF;
22 letter-spacing: -0.4rem; 13 margin-left: 40px;
23 margin-bottom: 5px; 14 padding-left: 40px;
24 }
25 15
26 h2 { 16 h1 {
27 margin-left: 2px; 17 font-size: 60px;
28 margin-bottom: 0; 18 letter-spacing: -.4rem;
29 } 19 margin-bottom: 5px;
30 } 20 }
31 21
32 &__services { 22 h2 {
33 width: 100%; 23 margin-bottom: 0;
34 max-width: 800px; 24 margin-left: 2px;
35 height: 100%;
36 max-height: 600px;
37 margin-left: -450px;
38 } 25 }
26 }
39 27
40 &__buttons { 28 &__services {
41 display: block; 29 height: 100%;
42 margin-top: 100px; 30 margin-left: -450px;
43 text-align: center; 31 max-height: 600px;
32 max-width: 800px;
33 width: 100%;
34 }
44 35
45 .button:first-of-type { 36 &__buttons {
46 margin-right: 25px; 37 display: block;
47 } 38 margin-top: 100px;
48 } 39 text-align: center;
49 40
50 .button { 41 .button:first-of-type { margin-right: 25px; }
51 border-color: #FFF; 42 }
52 color: #FFF;
53 43
54 &:hover { 44 .button {
55 background: #FFF; 45 border-color: #FFF;
56 color: $theme-brand-primary; 46 color: #FFF;
57 }
58 47
59 &__inverted { 48 &:hover {
60 background: #FFF; 49 background: #FFF;
61 color: $theme-brand-primary; 50 color: $theme-brand-primary;
62 }
63 &__inverted:hover {
64 background: none;
65 color: #FFF;
66 }
67 } 51 }
68 52
69 &__featured-services { 53 &__inverted {
70 text-align: center;
71 width: 480px;
72 margin: 80px auto 0 auto;
73 display: flex;
74 align-items: center;
75 flex-wrap: wrap;
76 background: #FFF; 54 background: #FFF;
77 border-radius: 6px; 55 color: $theme-brand-primary;
78 padding: 20px 20px 5px;
79 } 56 }
80 57
81 &__featured-service { 58 &__inverted:hover {
82 width: 35px; 59 background: none;
83 height: 35px; 60 color: #FFF;
84 margin: 0 10px 15px;
85 transition: 0.5s filter, 0.5s opacity;
86
87 img {
88 width: 35px;
89 }
90 } 61 }
91 } 62 }
63
64 &__featured-services {
65 align-items: center;
66 background: #FFF;
67 border-radius: 6px;
68 display: flex;
69 flex-wrap: wrap;
70 margin: 80px auto 0 auto;
71 padding: 20px 20px 5px;
72 text-align: center;
73 width: 480px;
74 }
75
76 &__featured-service {
77 margin: 0 10px 15px;
78 height: 35px;
79 transition: .5s filter, .5s opacity;
80 width: 35px;
81
82 img { width: 35px; }
83 }
92} 84}
diff --git a/src/theme/dark/index.js b/src/theme/dark/index.js
new file mode 100644
index 000000000..496a51119
--- /dev/null
+++ b/src/theme/dark/index.js
@@ -0,0 +1,6 @@
1import * as legacyStyles from '../default/legacy';
2
3export const colorBackground = legacyStyles.darkThemeGrayDarkest;
4export const colorBackgroundSubscriptionContainer = legacyStyles.themeBrandInfo;
5
6export const colorHeadline = legacyStyles.darkThemeTextColor;
diff --git a/src/theme/default/index.js b/src/theme/default/index.js
new file mode 100644
index 000000000..8766fb609
--- /dev/null
+++ b/src/theme/default/index.js
@@ -0,0 +1,21 @@
1import * as legacyStyles from './legacy';
2
3export const brandPrimary = '#3498db';
4export const brandSuccess = '#5cb85c';
5export const brandInfo = '#5bc0de';
6export const brandWarning = '#FF9F00';
7export const brandDanger = '#d9534f';
8
9export const borderRadius = legacyStyles.themeBorderRadius;
10export const borderRadiusSmall = legacyStyles.themeBorderRadiusSmall;
11
12export const colorBackground = legacyStyles.themeGrayLighter;
13export const colorHeadline = legacyStyles.themeGrayDark;
14
15// Subscription Container Component
16export const colorSubscriptionContainerBackground = 'none';
17export const colorSubscriptionContainerBorder = [1, 'solid', brandPrimary];
18export const colorSubscriptionContainerTitle = brandPrimary;
19export const colorSubscriptionContainerActionButtonBackground = brandPrimary;
20export const colorSubscriptionContainerActionButtonColor = '#FFF';
21
diff --git a/src/theme/default/legacy.js b/src/theme/default/legacy.js
new file mode 100644
index 000000000..b676dc1d9
--- /dev/null
+++ b/src/theme/default/legacy.js
@@ -0,0 +1,39 @@
1/* legacy config, injected into sass */
2export const themeBrandPrimary = '#3498db';
3export const themeBrandSuccess = '#5cb85c';
4export const themeBrandInfo = '#5bc0de';
5export const themeBrandWarning = '#FF9F00';
6export const themeBrandDanger = '#d9534f';
7
8export const themeGrayDark = '#373a3c';
9export const themeGray = '#55595c';
10export const themeGrayLight = '#818a91';
11export const themeGrayLighter = '#eceeef';
12export const themeGrayLightest = '#f7f7f9';
13
14export const themeBorderRadius = '6px';
15export const themeBorderRadiusSmall = '3px';
16
17export const themeSidebarWidth = '68px';
18
19export const themeTextColor = themeGrayDark;
20
21export const themeTransitionTime = '.5s';
22
23export const themeInsetShadow = 'inset 0 2px 5px rgba(0, 0, 0, .03)';
24
25
26export const darkThemeBlack = '#1A1A1A';
27
28export const darkThemeGrayDarkest = '#1E1E1E';
29export const darkThemeGrayDarker = '#2D2F31';
30export const darkThemeGrayDark = '#383A3B';
31
32export const darkThemeGray = '#47494B';
33
34export const darkThemeGrayLight = '#515355';
35export const darkThemeGrayLighter = '#8a8b8b';
36export const darkThemeGrayLightest = '#FFFFFF';
37
38export const darkThemeGraySmoke = '#CED0D1';
39export const darkThemeTextColor = '#FFFFFF';
diff --git a/src/webview/contextMenu.js b/src/webview/contextMenu.js
new file mode 100644
index 000000000..195306fda
--- /dev/null
+++ b/src/webview/contextMenu.js
@@ -0,0 +1,178 @@
1// This is heavily based on https://github.com/sindresorhus/electron-context-menu
2// ⤠@sindresorhus
3
4import { clipboard, remote, ipcRenderer, shell } from 'electron';
5
6import { isDevMode } from '../environment';
7
8const debug = require('debug')('Franz:contextMenu');
9
10const { Menu } = remote;
11
12// const win = remote.getCurrentWindow();
13const webContents = remote.getCurrentWebContents();
14
15function delUnusedElements(menuTpl) {
16 let notDeletedPrevEl;
17 return menuTpl.filter(el => el.visible !== false).filter((el, i, array) => {
18 const toDelete = el.type === 'separator' && (!notDeletedPrevEl || i === array.length - 1 || array[i + 1].type === 'separator');
19 notDeletedPrevEl = toDelete ? notDeletedPrevEl : el;
20 return !toDelete;
21 });
22}
23
24const buildMenuTpl = (props, suggestions) => {
25 const { editFlags } = props;
26 const hasText = props.selectionText.trim().length > 0;
27 const can = type => editFlags[`can${type}`] && hasText;
28
29 console.log(props);
30
31 let menuTpl = [
32 {
33 type: 'separator',
34 }, {
35 id: 'cut',
36 role: can('Cut') ? 'cut' : '',
37 enabled: can('Cut'),
38 visible: !!props.selectionText.trim(),
39 }, {
40 id: 'copy',
41 label: 'Copy',
42 role: can('Copy') ? 'copy' : '',
43 enabled: can('Copy'),
44 visible: props.isEditable || hasText,
45 }, {
46 id: 'paste',
47 label: 'Paste',
48 role: editFlags.canPaste ? 'paste' : '',
49 enabled: editFlags.canPaste,
50 visible: props.isEditable,
51 }, {
52 type: 'separator',
53 },
54 ];
55
56 if (props.linkURL && props.mediaType === 'none') {
57 menuTpl = [{
58 type: 'separator',
59 }, {
60 id: 'openLink',
61 label: 'Open Link in Browser',
62 click() {
63 shell.openExternal(props.linkURL);
64 },
65 }, {
66 id: 'copyLink',
67 label: 'Copy Link',
68 click() {
69 clipboard.write({
70 bookmark: props.linkText,
71 text: props.linkURL,
72 });
73 },
74 }, {
75 type: 'separator',
76 }];
77 }
78
79 if (props.mediaType === 'image') {
80 menuTpl.push({
81 type: 'separator',
82 }, {
83 id: 'openImage',
84 label: 'Open Image in Browser',
85 click() {
86 shell.openExternal(props.srcURL);
87 },
88 }, {
89 id: 'copyImageAddress',
90 label: 'Copy Image Address',
91 click() {
92 clipboard.write({
93 bookmark: props.srcURL,
94 text: props.srcURL,
95 });
96 },
97 }, {
98 type: 'separator',
99 });
100 }
101
102 if (props.mediaType === 'image') {
103 menuTpl.push({
104 id: 'saveImageAs',
105 label: 'Save Image As…',
106 async click() {
107 if (props.srcURL.startsWith('blob:')) {
108 const url = new window.URL(props.srcURL.substr(5));
109 const fileName = url.pathname.substr(1);
110 const resp = await window.fetch(props.srcURL);
111 const blob = await resp.blob();
112 const reader = new window.FileReader();
113 reader.readAsDataURL(blob);
114 reader.onloadend = () => {
115 const base64data = reader.result;
116
117 ipcRenderer.send('download-file', {
118 content: base64data,
119 fileOptions: {
120 name: fileName,
121 mime: blob.type,
122 },
123 });
124 };
125 debug('binary string', blob);
126 } else {
127 ipcRenderer.send('download-file', { url: props.srcURL });
128 }
129 },
130 }, {
131 type: 'separator',
132 });
133 }
134
135 console.log('suggestions', suggestions.length, suggestions);
136 if (suggestions.length > 0) {
137 suggestions.reverse().map(suggestion => menuTpl.unshift({
138 id: `suggestion-${suggestion}`,
139 label: suggestion,
140 click() {
141 webContents.replaceMisspelling(suggestion);
142 },
143 }));
144 }
145
146 if (isDevMode) {
147 menuTpl.push({
148 type: 'separator',
149 }, {
150 id: 'inspect',
151 label: 'Inspect Element',
152 click() {
153 webContents.inspectElement(props.x, props.y);
154 },
155 }, {
156 type: 'separator',
157 });
158 }
159
160 return delUnusedElements(menuTpl);
161};
162
163export default function contextMenu(spellcheckProvider) {
164 webContents.on('context-menu', (e, props) => {
165 e.preventDefault();
166
167 let suggestions = [];
168 if (spellcheckProvider && props.misspelledWord) {
169 suggestions = spellcheckProvider.getSuggestion(props.misspelledWord);
170
171 debug('Suggestions', suggestions);
172 }
173
174 const menu = Menu.buildFromTemplate(buildMenuTpl(props, suggestions.slice(0, 5)));
175
176 menu.popup(remote.getCurrentWindow());
177 });
178}
diff --git a/src/webview/darkmode.js b/src/webview/darkmode.js
new file mode 100644
index 000000000..9830ef33c
--- /dev/null
+++ b/src/webview/darkmode.js
@@ -0,0 +1,28 @@
1import path from 'path';
2import fs from 'fs-extra';
3
4const ID = 'franz-theme-dark-mode';
5
6export function injectDarkModeStyle(recipePath) {
7 const darkModeStyle = path.join(recipePath, 'darkmode.css');
8 if (fs.pathExistsSync(darkModeStyle)) {
9 const data = fs.readFileSync(darkModeStyle);
10 const styles = document.createElement('style');
11 styles.id = ID;
12 styles.innerHTML = data.toString();
13
14 document.querySelector('head').appendChild(styles);
15 }
16}
17
18export function removeDarkModeStyle() {
19 const style = document.querySelector(`#${ID}`);
20
21 if (style) {
22 style.remove();
23 }
24}
25
26export function isDarkModeStyleInjected() {
27 return !!document.querySelector(`#${ID}`);
28}
diff --git a/src/webview/plugin.js b/src/webview/plugin.js
index c6530fef6..72530733d 100644
--- a/src/webview/plugin.js
+++ b/src/webview/plugin.js
@@ -1,14 +1,17 @@
1import { ipcRenderer } from 'electron'; 1import { ipcRenderer } from 'electron';
2import { ContextMenuListener, ContextMenuBuilder } from 'electron-spellchecker';
3import path from 'path'; 2import path from 'path';
4 3
5import { isDevMode } from '../environment';
6import RecipeWebview from './lib/RecipeWebview'; 4import RecipeWebview from './lib/RecipeWebview';
7 5
8import Spellchecker from './spellchecker'; 6import spellchecker, { switchDict, disable as disableSpellchecker } from './spellchecker';
7import { injectDarkModeStyle, isDarkModeStyleInjected, removeDarkModeStyle } from './darkmode';
8import contextMenu from './contextMenu';
9import './notifications'; 9import './notifications';
10 10
11const debug = require('debug')('Plugin'); 11const debug = require('debug')('Franz:Plugin');
12
13window.franzSettings = {};
14let serviceData;
12 15
13ipcRenderer.on('initializeRecipe', (e, data) => { 16ipcRenderer.on('initializeRecipe', (e, data) => {
14 const modulePath = path.join(data.recipe.path, 'webview.js'); 17 const modulePath = path.join(data.recipe.path, 'webview.js');
@@ -17,27 +20,58 @@ ipcRenderer.on('initializeRecipe', (e, data) => {
17 try { 20 try {
18 // eslint-disable-next-line 21 // eslint-disable-next-line
19 require(modulePath)(new RecipeWebview(), data); 22 require(modulePath)(new RecipeWebview(), data);
20 debug('Initialize Recipe'); 23 debug('Initialize Recipe', data);
24
25 serviceData = data;
26
27 if (data.isDarkModeEnabled) {
28 injectDarkModeStyle(data.recipe.path);
29 debug('Add dark theme styles');
30 }
21 } catch (err) { 31 } catch (err) {
22 debug('Recipe initialization failed', err); 32 debug('Recipe initialization failed', err);
23 } 33 }
24}); 34});
25 35
26const spellchecker = new Spellchecker(); 36// Needs to run asap to intialize dictionaries
27spellchecker.initialize(); 37(async () => {
38 const spellcheckingProvider = await spellchecker();
39 contextMenu(spellcheckingProvider);
40})();
28 41
29const contextMenuBuilder = new ContextMenuBuilder(spellchecker.handler, null, isDevMode); 42ipcRenderer.on('settings-update', async (e, data) => {
43 debug('Settings update received', data);
30 44
31new ContextMenuListener((info) => { // eslint-disable-line 45 if (data.enableSpellchecking) {
32 contextMenuBuilder.showPopupMenu(info); 46 switchDict(data.spellcheckerLanguage);
47 } else {
48 disableSpellchecker();
49 }
50
51 window.franzSettings = data;
33}); 52});
34 53
35ipcRenderer.on('settings-update', (e, data) => { 54ipcRenderer.on('service-settings-update', (e, data) => {
36 spellchecker.toggleSpellchecker(data.enableSpellchecking); 55 debug('Service settings update received', data);
37 debug('Settings update received', data); 56
57 if (data.isDarkModeEnabled && !isDarkModeStyleInjected()) {
58 injectDarkModeStyle(serviceData.recipe.path);
59
60 debug('Enable service dark mode');
61 } else if (!data.isDarkModeEnabled && isDarkModeStyleInjected()) {
62 removeDarkModeStyle();
63
64 debug('Disable service dark mode');
65 }
66});
67
68// Needed for current implementation of electrons 'login' event 🤦â€
69ipcRenderer.on('get-service-id', (event) => {
70 debug('Asking for service id', event);
71
72 event.sender.send('service-id', serviceData.id);
38}); 73});
39 74
40// initSpellche
41 75
42document.addEventListener('DOMContentLoaded', () => { 76document.addEventListener('DOMContentLoaded', () => {
43 ipcRenderer.sendToHost('hello'); 77 ipcRenderer.sendToHost('hello');
@@ -47,7 +81,7 @@ document.addEventListener('DOMContentLoaded', () => {
47const originalWindowOpen = window.open; 81const originalWindowOpen = window.open;
48 82
49window.open = (url, frameName, features) => { 83window.open = (url, frameName, features) => {
50 // We need to differentiate if the link should be opened in a popup or in the systems default browser 84 // We need to differentiate if the link should be opened in a popup or in the systems default browser
51 if (!frameName && !features) { 85 if (!frameName && !features) {
52 return ipcRenderer.sendToHost('new-window', url); 86 return ipcRenderer.sendToHost('new-window', url);
53 } 87 }
diff --git a/src/webview/spellchecker.js b/src/webview/spellchecker.js
index a504a4039..b0192b7ef 100644
--- a/src/webview/spellchecker.js
+++ b/src/webview/spellchecker.js
@@ -1,63 +1,92 @@
1import { SpellCheckHandler } from 'electron-spellchecker'; 1import { webFrame } from 'electron';
2import fs from 'fs';
3import path from 'path';
4import { SpellCheckerProvider } from 'electron-hunspell';
2 5
3import { isMac } from '../environment'; 6import { DICTIONARY_PATH } from '../config';
4 7
5export default class Spellchecker { 8const debug = require('debug')('Franz:spellchecker');
6 isInitialized = false;
7 handler = null;
8 initRetries = 0;
9 DOMCheckInterval = null;
10 9
11 get inputs() { 10let provider;
12 return document.querySelectorAll('input[type="text"], [contenteditable="true"], textarea'); 11let currentDict;
13 } 12let _isEnabled = false;
14 13
15 initialize() { 14async function loadDictionaries() {
16 this.handler = new SpellCheckHandler(); 15 const rawList = fs.readdirSync(DICTIONARY_PATH);
17 16
18 if (!isMac) { 17 const dicts = rawList.filter(item => !item.startsWith('.') && fs.lstatSync(path.join(DICTIONARY_PATH, item)).isDirectory());
19 this.attach(); 18
20 } else { 19 debug('Found dictionaries', dicts);
21 this.isInitialized = true; 20
22 } 21 for (let i = 0; i < dicts.length; i += 1) {
22 const fileLocation = `${DICTIONARY_PATH}/${dicts[i]}/${dicts[i]}`;
23 debug('Trying to load', fileLocation);
24 // eslint-disable-next-line
25 await provider.loadDictionary(dicts[i], `${fileLocation}.dic`, `${fileLocation}.aff`);
23 } 26 }
27}
28
29export async function switchDict(locale) {
30 try {
31 debug('Trying to load dictionary', locale);
24 32
25 attach() { 33 if (!provider.availableDictionaries.includes(locale)) {
26 let initFailed = false; 34 console.warn('Dict not available', locale);
27 35
28 if (this.initRetries > 3) {
29 console.error('Could not initialize spellchecker');
30 return; 36 return;
31 } 37 }
32 38
33 try { 39 if (!provider) {
34 this.handler.attachToInput(); 40 console.warn('SpellcheckProvider not initialized');
35 this.handler.switchLanguage(navigator.language); 41
36 } catch (err) { 42 return;
37 initFailed = true;
38 this.initRetries = +1;
39 setTimeout(() => { this.attach(); console.warn('Spellchecker init failed, trying again in 5s'); }, 5000);
40 } 43 }
41 44
42 if (!initFailed) { 45 if (locale === currentDict) {
43 this.isInitialized = true; 46 console.warn('Dictionary is already used', currentDict);
47
48 return;
44 } 49 }
45 }
46 50
47 toggleSpellchecker(enable = false) { 51 provider.switchDictionary(locale);
48 this.inputs.forEach((input) => {
49 input.setAttribute('spellcheck', enable);
50 });
51 52
52 this.intervalHandler(enable); 53 debug('Switched dictionary to', locale);
54
55 currentDict = locale;
56 _isEnabled = true;
57 } catch (err) {
58 console.error(err);
53 } 59 }
60}
54 61
55 intervalHandler(enable) { 62export default async function initialize(languageCode = 'en-us') {
56 clearInterval(this.DOMCheckInterval); 63 try {
64 provider = new SpellCheckerProvider();
65 const locale = languageCode.toLowerCase();
57 66
58 if (enable) { 67 debug('Init spellchecker');
59 this.DOMCheckInterval = setInterval(() => this.toggleSpellchecker(enable), 30000); 68 await provider.initialize();
60 } 69 await loadDictionaries();
70
71 debug('Available spellchecker dictionaries', provider.availableDictionaries);
72
73 switchDict(locale);
74
75 return provider;
76 } catch (err) {
77 console.error(err);
78 return false;
61 } 79 }
62} 80}
63 81
82export function isEnabled() {
83 return _isEnabled;
84}
85
86export function disable() {
87 if (isEnabled()) {
88 webFrame.setSpellCheckProvider(currentDict, true, { spellCheck: () => true });
89 _isEnabled = false;
90 currentDict = null;
91 }
92}
diff --git a/yarn.lock b/yarn.lock
deleted file mode 100644
index 49ddfc31a..000000000
--- a/yarn.lock
+++ /dev/null
@@ -1,6570 +0,0 @@
1# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2# yarn lockfile v1
3
4
5"7zip-bin-linux@^1.1.0":
6 version "1.1.0"
7 resolved "https://registry.yarnpkg.com/7zip-bin-linux/-/7zip-bin-linux-1.1.0.tgz#2ca309fd6a2102e18bd81e3a5d91b39db9adab71"
8
9"7zip-bin-mac@^1.0.1":
10 version "1.0.1"
11 resolved "https://registry.yarnpkg.com/7zip-bin-mac/-/7zip-bin-mac-1.0.1.tgz#3e68778bbf0926adc68159427074505d47555c02"
12
13"7zip-bin-win@^2.1.0":
14 version "2.1.0"
15 resolved "https://registry.yarnpkg.com/7zip-bin-win/-/7zip-bin-win-2.1.0.tgz#ce632da797ec282c5d2a8d07b60e8df7ca7f164d"
16
17"7zip-bin@^2.1.0":
18 version "2.2.3"
19 resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-2.2.3.tgz#a249cad6c22f8289495741f5d9ea22368af1e078"
20 optionalDependencies:
21 "7zip-bin-linux" "^1.1.0"
22 "7zip-bin-mac" "^1.0.1"
23 "7zip-bin-win" "^2.1.0"
24
25"@meetfranz/electron-notification-state@^1.0.0":
26 version "1.0.0"
27 resolved "https://registry.yarnpkg.com/@meetfranz/electron-notification-state/-/electron-notification-state-1.0.0.tgz#75e9d774bdaf15991eacd92cde8469b348259d8c"
28 dependencies:
29 macos-notification-state "^1.1.0"
30 windows-notification-state "^1.3.0"
31 windows-quiet-hours "^1.2.2"
32
33"@paulcbetts/cld@^2.4.6":
34 version "2.4.6"
35 resolved "https://registry.yarnpkg.com/@paulcbetts/cld/-/cld-2.4.6.tgz#a992f6bc43cab212ac2c4488a671cf302f8b62e7"
36 dependencies:
37 glob "^5.0.10"
38 nan "^2.0.5"
39 rimraf "^2.4.0"
40 underscore "^1.6.0"
41
42"@paulcbetts/spellchecker@^4.0.6":
43 version "4.0.6"
44 resolved "https://registry.yarnpkg.com/@paulcbetts/spellchecker/-/spellchecker-4.0.6.tgz#79ef1f9c19c5a3156921ccaa9ffdc3efbbee47e3"
45 dependencies:
46 nan "^2.0.0"
47
48"@types/node@^8.0.24":
49 version "8.9.5"
50 resolved "http://registry.npmjs.org/@types/node/-/node-8.9.5.tgz#162b864bc70be077e6db212b322754917929e976"
51
52abbrev@1:
53 version "1.1.0"
54 resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f"
55
56accepts@1.3.3:
57 version "1.3.3"
58 resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca"
59 dependencies:
60 mime-types "~2.1.11"
61 negotiator "0.6.1"
62
63accepts@~1.0.7:
64 version "1.0.7"
65 resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.0.7.tgz#5b501fb4f0704309964ccdb048172541208dab1a"
66 dependencies:
67 mime-types "~1.0.0"
68 negotiator "0.4.7"
69
70acorn-jsx@^3.0.0:
71 version "3.0.1"
72 resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
73 dependencies:
74 acorn "^3.0.4"
75
76acorn@^3.0.4:
77 version "3.3.0"
78 resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
79
80acorn@^5.1.1:
81 version "5.1.2"
82 resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.2.tgz#911cb53e036807cf0fa778dc5d370fbd864246d7"
83
84address-rfc2822@^2.0.1:
85 version "2.0.1"
86 resolved "https://registry.yarnpkg.com/address-rfc2822/-/address-rfc2822-2.0.1.tgz#1a1bdb942b5e20e2c1ba5d5f396d5824ff7ae6ea"
87 dependencies:
88 email-addresses "^3.0.0"
89
90after@0.8.2:
91 version "0.8.2"
92 resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
93
94ajv-keywords@^1.0.0:
95 version "1.5.1"
96 resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
97
98ajv-keywords@^2.1.0:
99 version "2.1.0"
100 resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.0.tgz#a296e17f7bfae7c1ce4f7e0de53d29cb32162df0"
101
102ajv@^4.7.0, ajv@^4.9.1:
103 version "4.11.8"
104 resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
105 dependencies:
106 co "^4.6.0"
107 json-stable-stringify "^1.0.1"
108
109ajv@^5.2.0, ajv@^5.2.1:
110 version "5.2.2"
111 resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.2.tgz#47c68d69e86f5d953103b0074a9430dc63da5e39"
112 dependencies:
113 co "^4.6.0"
114 fast-deep-equal "^1.0.0"
115 json-schema-traverse "^0.3.0"
116 json-stable-stringify "^1.0.1"
117
118amdefine@>=0.0.4:
119 version "1.0.1"
120 resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
121
122ansi-align@^2.0.0:
123 version "2.0.0"
124 resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f"
125 dependencies:
126 string-width "^2.0.0"
127
128ansi-escapes@^3.0.0:
129 version "3.0.0"
130 resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92"
131
132ansi-regex@^1.0.0, ansi-regex@^1.1.1:
133 version "1.1.1"
134 resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-1.1.1.tgz#41c847194646375e6a1a5d10c3ca054ef9fc980d"
135
136ansi-regex@^2.0.0:
137 version "2.1.1"
138 resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
139
140ansi-regex@^3.0.0:
141 version "3.0.0"
142 resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
143
144ansi-styles@^2.2.1:
145 version "2.2.1"
146 resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
147
148ansi-styles@^3.1.0:
149 version "3.2.0"
150 resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
151 dependencies:
152 color-convert "^1.9.0"
153
154anymatch@^1.3.0:
155 version "1.3.2"
156 resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a"
157 dependencies:
158 micromatch "^2.1.5"
159 normalize-path "^2.0.0"
160
161applescript@^1.0.0:
162 version "1.0.0"
163 resolved "https://registry.yarnpkg.com/applescript/-/applescript-1.0.0.tgz#bb87af568cad034a4e48c4bdaf6067a3a2701317"
164
165aproba@^1.0.3:
166 version "1.1.2"
167 resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1"
168
169archy@^1.0.0:
170 version "1.0.0"
171 resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
172
173are-we-there-yet@~1.1.2:
174 version "1.1.4"
175 resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d"
176 dependencies:
177 delegates "^1.0.0"
178 readable-stream "^2.0.6"
179
180argparse@^1.0.7:
181 version "1.0.9"
182 resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
183 dependencies:
184 sprintf-js "~1.0.2"
185
186arr-diff@^2.0.0:
187 version "2.0.0"
188 resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
189 dependencies:
190 arr-flatten "^1.0.1"
191
192arr-filter@^1.1.1:
193 version "1.1.2"
194 resolved "https://registry.yarnpkg.com/arr-filter/-/arr-filter-1.1.2.tgz#43fdddd091e8ef11aa4c45d9cdc18e2dff1711ee"
195 dependencies:
196 make-iterator "^1.0.0"
197
198arr-flatten@^1.0.1:
199 version "1.1.0"
200 resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
201
202arr-map@^2.0.0, arr-map@^2.0.2:
203 version "2.0.2"
204 resolved "https://registry.yarnpkg.com/arr-map/-/arr-map-2.0.2.tgz#3a77345ffc1cf35e2a91825601f9e58f2e24cac4"
205 dependencies:
206 make-iterator "^1.0.0"
207
208array-differ@^1.0.0:
209 version "1.0.0"
210 resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031"
211
212array-each@^1.0.0, array-each@^1.0.1:
213 version "1.0.1"
214 resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f"
215
216array-find-index@^1.0.1:
217 version "1.0.2"
218 resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
219
220array-initial@^1.0.0:
221 version "1.0.1"
222 resolved "https://registry.yarnpkg.com/array-initial/-/array-initial-1.0.1.tgz#86122222a29c1ed42347f6334111afa40f8b20ec"
223 dependencies:
224 array-slice "^1.0.0"
225 is-number "^3.0.0"
226
227array-last@^1.1.1:
228 version "1.2.0"
229 resolved "https://registry.yarnpkg.com/array-last/-/array-last-1.2.0.tgz#0884a67ec2ac2a08133fc00f66779cfedb010986"
230 dependencies:
231 is-number "^3.0.0"
232
233array-slice@^1.0.0:
234 version "1.0.0"
235 resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.0.0.tgz#e73034f00dcc1f40876008fd20feae77bd4b7c2f"
236
237array-union@^1.0.1:
238 version "1.0.2"
239 resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
240 dependencies:
241 array-uniq "^1.0.1"
242
243array-uniq@^1.0.1, array-uniq@^1.0.2:
244 version "1.0.3"
245 resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
246
247array-unique@^0.2.1:
248 version "0.2.1"
249 resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
250
251array.prototype.find@^2.0.1:
252 version "2.0.4"
253 resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.0.4.tgz#556a5c5362c08648323ddaeb9de9d14bc1864c90"
254 dependencies:
255 define-properties "^1.1.2"
256 es-abstract "^1.7.0"
257
258arraybuffer.slice@0.0.6:
259 version "0.0.6"
260 resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca"
261
262arrify@^1.0.0:
263 version "1.0.1"
264 resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
265
266asap@~2.0.3:
267 version "2.0.6"
268 resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
269
270asar-integrity@0.1.1:
271 version "0.1.1"
272 resolved "https://registry.yarnpkg.com/asar-integrity/-/asar-integrity-0.1.1.tgz#1a709dd78443707fc260f7ce363d9569983caf76"
273 dependencies:
274 bluebird-lst "^1.0.2"
275 fs-extra-p "^4.3.0"
276
277asar@^0.13.0:
278 version "0.13.0"
279 resolved "https://registry.yarnpkg.com/asar/-/asar-0.13.0.tgz#df33dd9d01bff842464d0d9f095740d4a62afb14"
280 dependencies:
281 chromium-pickle-js "^0.2.0"
282 commander "^2.9.0"
283 cuint "^0.2.1"
284 glob "^6.0.4"
285 minimatch "^3.0.3"
286 mkdirp "^0.5.0"
287 mksnapshot "^0.3.0"
288 tmp "0.0.28"
289
290asn1@~0.2.3:
291 version "0.2.3"
292 resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
293
294assert-plus@1.0.0, assert-plus@^1.0.0:
295 version "1.0.0"
296 resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
297
298assert-plus@^0.2.0:
299 version "0.2.0"
300 resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
301
302async-done@^1.2.0, async-done@^1.2.2:
303 version "1.2.3"
304 resolved "https://registry.yarnpkg.com/async-done/-/async-done-1.2.3.tgz#6c7abc7d61ca27fe6f1f2ba3206ea9ae60a43983"
305 dependencies:
306 end-of-stream "^1.1.0"
307 once "^1.3.2"
308 process-nextick-args "^1.0.7"
309 stream-exhaust "^1.0.1"
310
311async-each@^1.0.0:
312 version "1.0.1"
313 resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
314
315async-foreach@^0.1.3:
316 version "0.1.3"
317 resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542"
318
319async-settle@^1.0.0:
320 version "1.0.0"
321 resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-1.0.0.tgz#1d0a914bb02575bec8a8f3a74e5080f72b2c0c6b"
322 dependencies:
323 async-done "^1.2.2"
324
325async@^0.9.0:
326 version "0.9.2"
327 resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
328
329async@~0.1.22:
330 version "0.1.22"
331 resolved "https://registry.yarnpkg.com/async/-/async-0.1.22.tgz#0fc1aaa088a0e3ef0ebe2d8831bab0dcf8845061"
332
333asynckit@^0.4.0:
334 version "0.4.0"
335 resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
336
337attr-accept@^1.0.3:
338 version "1.1.0"
339 resolved "https://registry.yarnpkg.com/attr-accept/-/attr-accept-1.1.0.tgz#b5cd35227f163935a8f1de10ed3eba16941f6be6"
340
341"auto-launch@https://github.com/meetfranz/node-auto-launch.git":
342 version "5.0.1"
343 resolved "https://github.com/meetfranz/node-auto-launch.git#b90a0470467eb84435e6554ae9db1e2c6db79e61"
344 dependencies:
345 applescript "^1.0.0"
346 mkdirp "^0.5.1"
347 path-is-absolute "^1.0.0"
348 untildify "^3.0.2"
349 winreg "1.2.2"
350
351aws-sign2@~0.6.0:
352 version "0.6.0"
353 resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
354
355aws4@^1.2.1:
356 version "1.6.0"
357 resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
358
359babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
360 version "6.26.0"
361 resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
362 dependencies:
363 chalk "^1.1.3"
364 esutils "^2.0.2"
365 js-tokens "^3.0.2"
366
367babel-core@^6.0.2, babel-core@^6.26.0:
368 version "6.26.0"
369 resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8"
370 dependencies:
371 babel-code-frame "^6.26.0"
372 babel-generator "^6.26.0"
373 babel-helpers "^6.24.1"
374 babel-messages "^6.23.0"
375 babel-register "^6.26.0"
376 babel-runtime "^6.26.0"
377 babel-template "^6.26.0"
378 babel-traverse "^6.26.0"
379 babel-types "^6.26.0"
380 babylon "^6.18.0"
381 convert-source-map "^1.5.0"
382 debug "^2.6.8"
383 json5 "^0.5.1"
384 lodash "^4.17.4"
385 minimatch "^3.0.4"
386 path-is-absolute "^1.0.1"
387 private "^0.1.7"
388 slash "^1.0.0"
389 source-map "^0.5.6"
390
391babel-eslint@^7.1.1:
392 version "7.2.3"
393 resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827"
394 dependencies:
395 babel-code-frame "^6.22.0"
396 babel-traverse "^6.23.1"
397 babel-types "^6.23.0"
398 babylon "^6.17.0"
399
400babel-generator@^6.26.0:
401 version "6.26.0"
402 resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5"
403 dependencies:
404 babel-messages "^6.23.0"
405 babel-runtime "^6.26.0"
406 babel-types "^6.26.0"
407 detect-indent "^4.0.0"
408 jsesc "^1.3.0"
409 lodash "^4.17.4"
410 source-map "^0.5.6"
411 trim-right "^1.0.1"
412
413babel-helper-bindify-decorators@^6.24.1:
414 version "6.24.1"
415 resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330"
416 dependencies:
417 babel-runtime "^6.22.0"
418 babel-traverse "^6.24.1"
419 babel-types "^6.24.1"
420
421babel-helper-builder-binary-assignment-operator-visitor@^6.24.1:
422 version "6.24.1"
423 resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664"
424 dependencies:
425 babel-helper-explode-assignable-expression "^6.24.1"
426 babel-runtime "^6.22.0"
427 babel-types "^6.24.1"
428
429babel-helper-builder-react-jsx@^6.24.1:
430 version "6.26.0"
431 resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0"
432 dependencies:
433 babel-runtime "^6.26.0"
434 babel-types "^6.26.0"
435 esutils "^2.0.2"
436
437babel-helper-call-delegate@^6.24.1:
438 version "6.24.1"
439 resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d"
440 dependencies:
441 babel-helper-hoist-variables "^6.24.1"
442 babel-runtime "^6.22.0"
443 babel-traverse "^6.24.1"
444 babel-types "^6.24.1"
445
446babel-helper-define-map@^6.24.1:
447 version "6.26.0"
448 resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f"
449 dependencies:
450 babel-helper-function-name "^6.24.1"
451 babel-runtime "^6.26.0"
452 babel-types "^6.26.0"
453 lodash "^4.17.4"
454
455babel-helper-explode-assignable-expression@^6.24.1:
456 version "6.24.1"
457 resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa"
458 dependencies:
459 babel-runtime "^6.22.0"
460 babel-traverse "^6.24.1"
461 babel-types "^6.24.1"
462
463babel-helper-explode-class@^6.24.1:
464 version "6.24.1"
465 resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb"
466 dependencies:
467 babel-helper-bindify-decorators "^6.24.1"
468 babel-runtime "^6.22.0"
469 babel-traverse "^6.24.1"
470 babel-types "^6.24.1"
471
472babel-helper-function-name@^6.24.1:
473 version "6.24.1"
474 resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9"
475 dependencies:
476 babel-helper-get-function-arity "^6.24.1"
477 babel-runtime "^6.22.0"
478 babel-template "^6.24.1"
479 babel-traverse "^6.24.1"
480 babel-types "^6.24.1"
481
482babel-helper-get-function-arity@^6.24.1:
483 version "6.24.1"
484 resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d"
485 dependencies:
486 babel-runtime "^6.22.0"
487 babel-types "^6.24.1"
488
489babel-helper-hoist-variables@^6.24.1:
490 version "6.24.1"
491 resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76"
492 dependencies:
493 babel-runtime "^6.22.0"
494 babel-types "^6.24.1"
495
496babel-helper-optimise-call-expression@^6.24.1:
497 version "6.24.1"
498 resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257"
499 dependencies:
500 babel-runtime "^6.22.0"
501 babel-types "^6.24.1"
502
503babel-helper-regex@^6.24.1:
504 version "6.26.0"
505 resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72"
506 dependencies:
507 babel-runtime "^6.26.0"
508 babel-types "^6.26.0"
509 lodash "^4.17.4"
510
511babel-helper-remap-async-to-generator@^6.24.1:
512 version "6.24.1"
513 resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b"
514 dependencies:
515 babel-helper-function-name "^6.24.1"
516 babel-runtime "^6.22.0"
517 babel-template "^6.24.1"
518 babel-traverse "^6.24.1"
519 babel-types "^6.24.1"
520
521babel-helper-replace-supers@^6.24.1:
522 version "6.24.1"
523 resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a"
524 dependencies:
525 babel-helper-optimise-call-expression "^6.24.1"
526 babel-messages "^6.23.0"
527 babel-runtime "^6.22.0"
528 babel-template "^6.24.1"
529 babel-traverse "^6.24.1"
530 babel-types "^6.24.1"
531
532babel-helpers@^6.24.1:
533 version "6.24.1"
534 resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
535 dependencies:
536 babel-runtime "^6.22.0"
537 babel-template "^6.24.1"
538
539babel-messages@^6.23.0:
540 version "6.23.0"
541 resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
542 dependencies:
543 babel-runtime "^6.22.0"
544
545babel-plugin-check-es2015-constants@^6.22.0:
546 version "6.22.0"
547 resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a"
548 dependencies:
549 babel-runtime "^6.22.0"
550
551babel-plugin-syntax-async-functions@^6.8.0:
552 version "6.13.0"
553 resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95"
554
555babel-plugin-syntax-async-generators@^6.5.0:
556 version "6.13.0"
557 resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a"
558
559babel-plugin-syntax-class-constructor-call@^6.18.0:
560 version "6.18.0"
561 resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416"
562
563babel-plugin-syntax-class-properties@^6.8.0:
564 version "6.13.0"
565 resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de"
566
567babel-plugin-syntax-decorators@^6.1.18, babel-plugin-syntax-decorators@^6.13.0:
568 version "6.13.0"
569 resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b"
570
571babel-plugin-syntax-do-expressions@^6.8.0:
572 version "6.13.0"
573 resolved "https://registry.yarnpkg.com/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz#5747756139aa26d390d09410b03744ba07e4796d"
574
575babel-plugin-syntax-dynamic-import@^6.18.0:
576 version "6.18.0"
577 resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da"
578
579babel-plugin-syntax-exponentiation-operator@^6.8.0:
580 version "6.13.0"
581 resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de"
582
583babel-plugin-syntax-export-extensions@^6.8.0:
584 version "6.13.0"
585 resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721"
586
587babel-plugin-syntax-flow@^6.18.0:
588 version "6.18.0"
589 resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d"
590
591babel-plugin-syntax-function-bind@^6.8.0:
592 version "6.13.0"
593 resolved "https://registry.yarnpkg.com/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz#48c495f177bdf31a981e732f55adc0bdd2601f46"
594
595babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0:
596 version "6.18.0"
597 resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
598
599babel-plugin-syntax-object-rest-spread@^6.8.0:
600 version "6.13.0"
601 resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
602
603babel-plugin-syntax-trailing-function-commas@^6.22.0:
604 version "6.22.0"
605 resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3"
606
607babel-plugin-transform-async-generator-functions@^6.24.1:
608 version "6.24.1"
609 resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db"
610 dependencies:
611 babel-helper-remap-async-to-generator "^6.24.1"
612 babel-plugin-syntax-async-generators "^6.5.0"
613 babel-runtime "^6.22.0"
614
615babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async-to-generator@^6.24.1:
616 version "6.24.1"
617 resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761"
618 dependencies:
619 babel-helper-remap-async-to-generator "^6.24.1"
620 babel-plugin-syntax-async-functions "^6.8.0"
621 babel-runtime "^6.22.0"
622
623babel-plugin-transform-class-constructor-call@^6.24.1:
624 version "6.24.1"
625 resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9"
626 dependencies:
627 babel-plugin-syntax-class-constructor-call "^6.18.0"
628 babel-runtime "^6.22.0"
629 babel-template "^6.24.1"
630
631babel-plugin-transform-class-properties@^6.19.0, babel-plugin-transform-class-properties@^6.24.1:
632 version "6.24.1"
633 resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac"
634 dependencies:
635 babel-helper-function-name "^6.24.1"
636 babel-plugin-syntax-class-properties "^6.8.0"
637 babel-runtime "^6.22.0"
638 babel-template "^6.24.1"
639
640babel-plugin-transform-decorators-legacy@^1.3.4:
641 version "1.3.4"
642 resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators-legacy/-/babel-plugin-transform-decorators-legacy-1.3.4.tgz#741b58f6c5bce9e6027e0882d9c994f04f366925"
643 dependencies:
644 babel-plugin-syntax-decorators "^6.1.18"
645 babel-runtime "^6.2.0"
646 babel-template "^6.3.0"
647
648babel-plugin-transform-decorators@^6.24.1:
649 version "6.24.1"
650 resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d"
651 dependencies:
652 babel-helper-explode-class "^6.24.1"
653 babel-plugin-syntax-decorators "^6.13.0"
654 babel-runtime "^6.22.0"
655 babel-template "^6.24.1"
656 babel-types "^6.24.1"
657
658babel-plugin-transform-do-expressions@^6.22.0:
659 version "6.22.0"
660 resolved "https://registry.yarnpkg.com/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz#28ccaf92812d949c2cd1281f690c8fdc468ae9bb"
661 dependencies:
662 babel-plugin-syntax-do-expressions "^6.8.0"
663 babel-runtime "^6.22.0"
664
665babel-plugin-transform-es2015-arrow-functions@^6.22.0:
666 version "6.22.0"
667 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221"
668 dependencies:
669 babel-runtime "^6.22.0"
670
671babel-plugin-transform-es2015-block-scoped-functions@^6.22.0:
672 version "6.22.0"
673 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141"
674 dependencies:
675 babel-runtime "^6.22.0"
676
677babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.24.1:
678 version "6.26.0"
679 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f"
680 dependencies:
681 babel-runtime "^6.26.0"
682 babel-template "^6.26.0"
683 babel-traverse "^6.26.0"
684 babel-types "^6.26.0"
685 lodash "^4.17.4"
686
687babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.24.1:
688 version "6.24.1"
689 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db"
690 dependencies:
691 babel-helper-define-map "^6.24.1"
692 babel-helper-function-name "^6.24.1"
693 babel-helper-optimise-call-expression "^6.24.1"
694 babel-helper-replace-supers "^6.24.1"
695 babel-messages "^6.23.0"
696 babel-runtime "^6.22.0"
697 babel-template "^6.24.1"
698 babel-traverse "^6.24.1"
699 babel-types "^6.24.1"
700
701babel-plugin-transform-es2015-computed-properties@^6.22.0, babel-plugin-transform-es2015-computed-properties@^6.24.1:
702 version "6.24.1"
703 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3"
704 dependencies:
705 babel-runtime "^6.22.0"
706 babel-template "^6.24.1"
707
708babel-plugin-transform-es2015-destructuring@^6.22.0, babel-plugin-transform-es2015-destructuring@^6.23.0:
709 version "6.23.0"
710 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d"
711 dependencies:
712 babel-runtime "^6.22.0"
713
714babel-plugin-transform-es2015-duplicate-keys@^6.22.0, babel-plugin-transform-es2015-duplicate-keys@^6.24.1:
715 version "6.24.1"
716 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e"
717 dependencies:
718 babel-runtime "^6.22.0"
719 babel-types "^6.24.1"
720
721babel-plugin-transform-es2015-for-of@^6.22.0, babel-plugin-transform-es2015-for-of@^6.23.0:
722 version "6.23.0"
723 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691"
724 dependencies:
725 babel-runtime "^6.22.0"
726
727babel-plugin-transform-es2015-function-name@^6.22.0, babel-plugin-transform-es2015-function-name@^6.24.1:
728 version "6.24.1"
729 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b"
730 dependencies:
731 babel-helper-function-name "^6.24.1"
732 babel-runtime "^6.22.0"
733 babel-types "^6.24.1"
734
735babel-plugin-transform-es2015-literals@^6.22.0:
736 version "6.22.0"
737 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e"
738 dependencies:
739 babel-runtime "^6.22.0"
740
741babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1:
742 version "6.24.1"
743 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154"
744 dependencies:
745 babel-plugin-transform-es2015-modules-commonjs "^6.24.1"
746 babel-runtime "^6.22.0"
747 babel-template "^6.24.1"
748
749babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1:
750 version "6.26.0"
751 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a"
752 dependencies:
753 babel-plugin-transform-strict-mode "^6.24.1"
754 babel-runtime "^6.26.0"
755 babel-template "^6.26.0"
756 babel-types "^6.26.0"
757
758babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-es2015-modules-systemjs@^6.24.1:
759 version "6.24.1"
760 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23"
761 dependencies:
762 babel-helper-hoist-variables "^6.24.1"
763 babel-runtime "^6.22.0"
764 babel-template "^6.24.1"
765
766babel-plugin-transform-es2015-modules-umd@^6.23.0, babel-plugin-transform-es2015-modules-umd@^6.24.1:
767 version "6.24.1"
768 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468"
769 dependencies:
770 babel-plugin-transform-es2015-modules-amd "^6.24.1"
771 babel-runtime "^6.22.0"
772 babel-template "^6.24.1"
773
774babel-plugin-transform-es2015-object-super@^6.22.0, babel-plugin-transform-es2015-object-super@^6.24.1:
775 version "6.24.1"
776 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d"
777 dependencies:
778 babel-helper-replace-supers "^6.24.1"
779 babel-runtime "^6.22.0"
780
781babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015-parameters@^6.24.1:
782 version "6.24.1"
783 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b"
784 dependencies:
785 babel-helper-call-delegate "^6.24.1"
786 babel-helper-get-function-arity "^6.24.1"
787 babel-runtime "^6.22.0"
788 babel-template "^6.24.1"
789 babel-traverse "^6.24.1"
790 babel-types "^6.24.1"
791
792babel-plugin-transform-es2015-shorthand-properties@^6.22.0, babel-plugin-transform-es2015-shorthand-properties@^6.24.1:
793 version "6.24.1"
794 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0"
795 dependencies:
796 babel-runtime "^6.22.0"
797 babel-types "^6.24.1"
798
799babel-plugin-transform-es2015-spread@^6.22.0:
800 version "6.22.0"
801 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1"
802 dependencies:
803 babel-runtime "^6.22.0"
804
805babel-plugin-transform-es2015-sticky-regex@^6.22.0, babel-plugin-transform-es2015-sticky-regex@^6.24.1:
806 version "6.24.1"
807 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc"
808 dependencies:
809 babel-helper-regex "^6.24.1"
810 babel-runtime "^6.22.0"
811 babel-types "^6.24.1"
812
813babel-plugin-transform-es2015-template-literals@^6.22.0:
814 version "6.22.0"
815 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d"
816 dependencies:
817 babel-runtime "^6.22.0"
818
819babel-plugin-transform-es2015-typeof-symbol@^6.22.0, babel-plugin-transform-es2015-typeof-symbol@^6.23.0:
820 version "6.23.0"
821 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372"
822 dependencies:
823 babel-runtime "^6.22.0"
824
825babel-plugin-transform-es2015-unicode-regex@^6.22.0, babel-plugin-transform-es2015-unicode-regex@^6.24.1:
826 version "6.24.1"
827 resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9"
828 dependencies:
829 babel-helper-regex "^6.24.1"
830 babel-runtime "^6.22.0"
831 regexpu-core "^2.0.0"
832
833babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.24.1:
834 version "6.24.1"
835 resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e"
836 dependencies:
837 babel-helper-builder-binary-assignment-operator-visitor "^6.24.1"
838 babel-plugin-syntax-exponentiation-operator "^6.8.0"
839 babel-runtime "^6.22.0"
840
841babel-plugin-transform-export-extensions@^6.22.0:
842 version "6.22.0"
843 resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653"
844 dependencies:
845 babel-plugin-syntax-export-extensions "^6.8.0"
846 babel-runtime "^6.22.0"
847
848babel-plugin-transform-flow-strip-types@^6.22.0:
849 version "6.22.0"
850 resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf"
851 dependencies:
852 babel-plugin-syntax-flow "^6.18.0"
853 babel-runtime "^6.22.0"
854
855babel-plugin-transform-function-bind@^6.22.0:
856 version "6.22.0"
857 resolved "https://registry.yarnpkg.com/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz#c6fb8e96ac296a310b8cf8ea401462407ddf6a97"
858 dependencies:
859 babel-plugin-syntax-function-bind "^6.8.0"
860 babel-runtime "^6.22.0"
861
862babel-plugin-transform-object-rest-spread@^6.22.0:
863 version "6.26.0"
864 resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06"
865 dependencies:
866 babel-plugin-syntax-object-rest-spread "^6.8.0"
867 babel-runtime "^6.26.0"
868
869babel-plugin-transform-react-display-name@^6.23.0:
870 version "6.25.0"
871 resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1"
872 dependencies:
873 babel-runtime "^6.22.0"
874
875babel-plugin-transform-react-jsx-self@^6.22.0:
876 version "6.22.0"
877 resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e"
878 dependencies:
879 babel-plugin-syntax-jsx "^6.8.0"
880 babel-runtime "^6.22.0"
881
882babel-plugin-transform-react-jsx-source@^6.22.0:
883 version "6.22.0"
884 resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6"
885 dependencies:
886 babel-plugin-syntax-jsx "^6.8.0"
887 babel-runtime "^6.22.0"
888
889babel-plugin-transform-react-jsx@^6.24.1:
890 version "6.24.1"
891 resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3"
892 dependencies:
893 babel-helper-builder-react-jsx "^6.24.1"
894 babel-plugin-syntax-jsx "^6.8.0"
895 babel-runtime "^6.22.0"
896
897babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.24.1:
898 version "6.26.0"
899 resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f"
900 dependencies:
901 regenerator-transform "^0.10.0"
902
903babel-plugin-transform-strict-mode@^6.24.1:
904 version "6.24.1"
905 resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758"
906 dependencies:
907 babel-runtime "^6.22.0"
908 babel-types "^6.24.1"
909
910babel-polyfill@^6.23.0:
911 version "6.26.0"
912 resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153"
913 dependencies:
914 babel-runtime "^6.26.0"
915 core-js "^2.5.0"
916 regenerator-runtime "^0.10.5"
917
918babel-preset-env@^1.5.2:
919 version "1.6.0"
920 resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.0.tgz#2de1c782a780a0a5d605d199c957596da43c44e4"
921 dependencies:
922 babel-plugin-check-es2015-constants "^6.22.0"
923 babel-plugin-syntax-trailing-function-commas "^6.22.0"
924 babel-plugin-transform-async-to-generator "^6.22.0"
925 babel-plugin-transform-es2015-arrow-functions "^6.22.0"
926 babel-plugin-transform-es2015-block-scoped-functions "^6.22.0"
927 babel-plugin-transform-es2015-block-scoping "^6.23.0"
928 babel-plugin-transform-es2015-classes "^6.23.0"
929 babel-plugin-transform-es2015-computed-properties "^6.22.0"
930 babel-plugin-transform-es2015-destructuring "^6.23.0"
931 babel-plugin-transform-es2015-duplicate-keys "^6.22.0"
932 babel-plugin-transform-es2015-for-of "^6.23.0"
933 babel-plugin-transform-es2015-function-name "^6.22.0"
934 babel-plugin-transform-es2015-literals "^6.22.0"
935 babel-plugin-transform-es2015-modules-amd "^6.22.0"
936 babel-plugin-transform-es2015-modules-commonjs "^6.23.0"
937 babel-plugin-transform-es2015-modules-systemjs "^6.23.0"
938 babel-plugin-transform-es2015-modules-umd "^6.23.0"
939 babel-plugin-transform-es2015-object-super "^6.22.0"
940 babel-plugin-transform-es2015-parameters "^6.23.0"
941 babel-plugin-transform-es2015-shorthand-properties "^6.22.0"
942 babel-plugin-transform-es2015-spread "^6.22.0"
943 babel-plugin-transform-es2015-sticky-regex "^6.22.0"
944 babel-plugin-transform-es2015-template-literals "^6.22.0"
945 babel-plugin-transform-es2015-typeof-symbol "^6.23.0"
946 babel-plugin-transform-es2015-unicode-regex "^6.22.0"
947 babel-plugin-transform-exponentiation-operator "^6.22.0"
948 babel-plugin-transform-regenerator "^6.22.0"
949 browserslist "^2.1.2"
950 invariant "^2.2.2"
951 semver "^5.3.0"
952
953babel-preset-es2015@^6.22.0:
954 version "6.24.1"
955 resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939"
956 dependencies:
957 babel-plugin-check-es2015-constants "^6.22.0"
958 babel-plugin-transform-es2015-arrow-functions "^6.22.0"
959 babel-plugin-transform-es2015-block-scoped-functions "^6.22.0"
960 babel-plugin-transform-es2015-block-scoping "^6.24.1"
961 babel-plugin-transform-es2015-classes "^6.24.1"
962 babel-plugin-transform-es2015-computed-properties "^6.24.1"
963 babel-plugin-transform-es2015-destructuring "^6.22.0"
964 babel-plugin-transform-es2015-duplicate-keys "^6.24.1"
965 babel-plugin-transform-es2015-for-of "^6.22.0"
966 babel-plugin-transform-es2015-function-name "^6.24.1"
967 babel-plugin-transform-es2015-literals "^6.22.0"
968 babel-plugin-transform-es2015-modules-amd "^6.24.1"
969 babel-plugin-transform-es2015-modules-commonjs "^6.24.1"
970 babel-plugin-transform-es2015-modules-systemjs "^6.24.1"
971 babel-plugin-transform-es2015-modules-umd "^6.24.1"
972 babel-plugin-transform-es2015-object-super "^6.24.1"
973 babel-plugin-transform-es2015-parameters "^6.24.1"
974 babel-plugin-transform-es2015-shorthand-properties "^6.24.1"
975 babel-plugin-transform-es2015-spread "^6.22.0"
976 babel-plugin-transform-es2015-sticky-regex "^6.24.1"
977 babel-plugin-transform-es2015-template-literals "^6.22.0"
978 babel-plugin-transform-es2015-typeof-symbol "^6.22.0"
979 babel-plugin-transform-es2015-unicode-regex "^6.24.1"
980 babel-plugin-transform-regenerator "^6.24.1"
981
982babel-preset-es2016@^6.16.0:
983 version "6.24.1"
984 resolved "https://registry.yarnpkg.com/babel-preset-es2016/-/babel-preset-es2016-6.24.1.tgz#f900bf93e2ebc0d276df9b8ab59724ebfd959f8b"
985 dependencies:
986 babel-plugin-transform-exponentiation-operator "^6.24.1"
987
988babel-preset-es2017@^6.16.0:
989 version "6.24.1"
990 resolved "https://registry.yarnpkg.com/babel-preset-es2017/-/babel-preset-es2017-6.24.1.tgz#597beadfb9f7f208bcfd8a12e9b2b29b8b2f14d1"
991 dependencies:
992 babel-plugin-syntax-trailing-function-commas "^6.22.0"
993 babel-plugin-transform-async-to-generator "^6.24.1"
994
995babel-preset-flow@^6.23.0:
996 version "6.23.0"
997 resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d"
998 dependencies:
999 babel-plugin-transform-flow-strip-types "^6.22.0"
1000
1001babel-preset-react@^6.23.0:
1002 version "6.24.1"
1003 resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380"
1004 dependencies:
1005 babel-plugin-syntax-jsx "^6.3.13"
1006 babel-plugin-transform-react-display-name "^6.23.0"
1007 babel-plugin-transform-react-jsx "^6.24.1"
1008 babel-plugin-transform-react-jsx-self "^6.22.0"
1009 babel-plugin-transform-react-jsx-source "^6.22.0"
1010 babel-preset-flow "^6.23.0"
1011
1012babel-preset-stage-0@^6.22.0:
1013 version "6.24.1"
1014 resolved "https://registry.yarnpkg.com/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz#5642d15042f91384d7e5af8bc88b1db95b039e6a"
1015 dependencies:
1016 babel-plugin-transform-do-expressions "^6.22.0"
1017 babel-plugin-transform-function-bind "^6.22.0"
1018 babel-preset-stage-1 "^6.24.1"
1019
1020babel-preset-stage-1@^6.22.0, babel-preset-stage-1@^6.24.1:
1021 version "6.24.1"
1022 resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0"
1023 dependencies:
1024 babel-plugin-transform-class-constructor-call "^6.24.1"
1025 babel-plugin-transform-export-extensions "^6.22.0"
1026 babel-preset-stage-2 "^6.24.1"
1027
1028babel-preset-stage-2@^6.24.1:
1029 version "6.24.1"
1030 resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1"
1031 dependencies:
1032 babel-plugin-syntax-dynamic-import "^6.18.0"
1033 babel-plugin-transform-class-properties "^6.24.1"
1034 babel-plugin-transform-decorators "^6.24.1"
1035 babel-preset-stage-3 "^6.24.1"
1036
1037babel-preset-stage-3@^6.24.1:
1038 version "6.24.1"
1039 resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395"
1040 dependencies:
1041 babel-plugin-syntax-trailing-function-commas "^6.22.0"
1042 babel-plugin-transform-async-generator-functions "^6.24.1"
1043 babel-plugin-transform-async-to-generator "^6.24.1"
1044 babel-plugin-transform-exponentiation-operator "^6.24.1"
1045 babel-plugin-transform-object-rest-spread "^6.22.0"
1046
1047babel-register@^6.26.0:
1048 version "6.26.0"
1049 resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
1050 dependencies:
1051 babel-core "^6.26.0"
1052 babel-runtime "^6.26.0"
1053 core-js "^2.5.0"
1054 home-or-tmp "^2.0.0"
1055 lodash "^4.17.4"
1056 mkdirp "^0.5.1"
1057 source-map-support "^0.4.15"
1058
1059babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.2.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0:
1060 version "6.26.0"
1061 resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
1062 dependencies:
1063 core-js "^2.4.0"
1064 regenerator-runtime "^0.11.0"
1065
1066babel-template@^6.24.1, babel-template@^6.26.0, babel-template@^6.3.0:
1067 version "6.26.0"
1068 resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
1069 dependencies:
1070 babel-runtime "^6.26.0"
1071 babel-traverse "^6.26.0"
1072 babel-types "^6.26.0"
1073 babylon "^6.18.0"
1074 lodash "^4.17.4"
1075
1076babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0:
1077 version "6.26.0"
1078 resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
1079 dependencies:
1080 babel-code-frame "^6.26.0"
1081 babel-messages "^6.23.0"
1082 babel-runtime "^6.26.0"
1083 babel-types "^6.26.0"
1084 babylon "^6.18.0"
1085 debug "^2.6.8"
1086 globals "^9.18.0"
1087 invariant "^2.2.2"
1088 lodash "^4.17.4"
1089
1090babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0:
1091 version "6.26.0"
1092 resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
1093 dependencies:
1094 babel-runtime "^6.26.0"
1095 esutils "^2.0.2"
1096 lodash "^4.17.4"
1097 to-fast-properties "^1.0.3"
1098
1099babylon@^6.17.0, babylon@^6.18.0:
1100 version "6.18.0"
1101 resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
1102
1103bach@^1.0.0:
1104 version "1.2.0"
1105 resolved "https://registry.yarnpkg.com/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880"
1106 dependencies:
1107 arr-filter "^1.1.1"
1108 arr-flatten "^1.0.1"
1109 arr-map "^2.0.0"
1110 array-each "^1.0.0"
1111 array-initial "^1.0.0"
1112 array-last "^1.1.1"
1113 async-done "^1.2.2"
1114 async-settle "^1.0.0"
1115 now-and-later "^2.0.0"
1116
1117backo2@1.0.2:
1118 version "1.0.2"
1119 resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
1120
1121balanced-match@^1.0.0:
1122 version "1.0.0"
1123 resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
1124
1125base64-arraybuffer@0.1.5:
1126 version "0.1.5"
1127 resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
1128
1129base64-js@1.2.0:
1130 version "1.2.0"
1131 resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1"
1132
1133base64id@1.0.0:
1134 version "1.0.0"
1135 resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6"
1136
1137base64url@2.0.0, base64url@^2.0.0:
1138 version "2.0.0"
1139 resolved "https://registry.yarnpkg.com/base64url/-/base64url-2.0.0.tgz#eac16e03ea1438eff9423d69baa36262ed1f70bb"
1140
1141batch@0.5.1:
1142 version "0.5.1"
1143 resolved "https://registry.yarnpkg.com/batch/-/batch-0.5.1.tgz#36a4bab594c050fd7b507bca0db30c2d92af4ff2"
1144
1145bcp47@^1.1.2:
1146 version "1.1.2"
1147 resolved "https://registry.yarnpkg.com/bcp47/-/bcp47-1.1.2.tgz#354be3307ffd08433a78f5e1e2095845f89fc7fe"
1148
1149bcrypt-pbkdf@^1.0.0:
1150 version "1.0.1"
1151 resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
1152 dependencies:
1153 tweetnacl "^0.14.3"
1154
1155beeper@^1.0.0:
1156 version "1.1.1"
1157 resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809"
1158
1159better-assert@~1.0.0:
1160 version "1.0.2"
1161 resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522"
1162 dependencies:
1163 callsite "1.0.0"
1164
1165big.js@^3.1.3:
1166 version "3.2.0"
1167 resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
1168
1169binary-extensions@^1.0.0:
1170 version "1.10.0"
1171 resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.10.0.tgz#9aeb9a6c5e88638aad171e167f5900abe24835d0"
1172
1173binary@^0.3.0:
1174 version "0.3.0"
1175 resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79"
1176 dependencies:
1177 buffers "~0.1.1"
1178 chainsaw "~0.1.0"
1179
1180bindings@^1.2.1, bindings@^1.3.0:
1181 version "1.3.0"
1182 resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7"
1183
1184bl@~0.9.4:
1185 version "0.9.5"
1186 resolved "https://registry.yarnpkg.com/bl/-/bl-0.9.5.tgz#c06b797af085ea00bc527afc8efcf11de2232054"
1187 dependencies:
1188 readable-stream "~1.0.26"
1189
1190blob@0.0.4:
1191 version "0.0.4"
1192 resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921"
1193
1194block-stream@*:
1195 version "0.0.9"
1196 resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
1197 dependencies:
1198 inherits "~2.0.0"
1199
1200bluebird-lst@^1.0.2, bluebird-lst@^1.0.3:
1201 version "1.0.3"
1202 resolved "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.3.tgz#cc56c18660eff0a0b86e2c33d1659618f7005158"
1203 dependencies:
1204 bluebird "^3.5.0"
1205
1206bluebird@^3.1.1, bluebird@^3.4.7, bluebird@^3.5.0:
1207 version "3.5.0"
1208 resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c"
1209
1210boom@2.x.x:
1211 version "2.10.1"
1212 resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
1213 dependencies:
1214 hoek "2.x.x"
1215
1216boxen@^1.0.0:
1217 version "1.2.1"
1218 resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.2.1.tgz#0f11e7fe344edb9397977fc13ede7f64d956481d"
1219 dependencies:
1220 ansi-align "^2.0.0"
1221 camelcase "^4.0.0"
1222 chalk "^2.0.1"
1223 cli-boxes "^1.0.0"
1224 string-width "^2.0.0"
1225 term-size "^1.2.0"
1226 widest-line "^1.0.0"
1227
1228brace-expansion@^1.0.0, brace-expansion@^1.1.7:
1229 version "1.1.8"
1230 resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
1231 dependencies:
1232 balanced-match "^1.0.0"
1233 concat-map "0.0.1"
1234
1235braces@^1.8.2:
1236 version "1.8.5"
1237 resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
1238 dependencies:
1239 expand-range "^1.8.1"
1240 preserve "^0.2.0"
1241 repeat-element "^1.1.2"
1242
1243browserslist@^2.1.2:
1244 version "2.4.0"
1245 resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.4.0.tgz#693ee93d01e66468a6348da5498e011f578f87f8"
1246 dependencies:
1247 caniuse-lite "^1.0.30000718"
1248 electron-to-chromium "^1.3.18"
1249
1250buffer-equal-constant-time@1.0.1:
1251 version "1.0.1"
1252 resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
1253
1254buffers@~0.1.1:
1255 version "0.1.1"
1256 resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb"
1257
1258builtin-modules@^1.0.0, builtin-modules@^1.1.1:
1259 version "1.1.1"
1260 resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
1261
1262caller-path@^0.1.0:
1263 version "0.1.0"
1264 resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
1265 dependencies:
1266 callsites "^0.2.0"
1267
1268callsite@1.0.0:
1269 version "1.0.0"
1270 resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
1271
1272callsites@^0.2.0:
1273 version "0.2.0"
1274 resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
1275
1276camelcase-keys@^2.0.0:
1277 version "2.1.0"
1278 resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
1279 dependencies:
1280 camelcase "^2.0.0"
1281 map-obj "^1.0.0"
1282
1283camelcase@^2.0.0, camelcase@^2.0.1:
1284 version "2.1.1"
1285 resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
1286
1287camelcase@^3.0.0:
1288 version "3.0.0"
1289 resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
1290
1291camelcase@^4.0.0, camelcase@^4.1.0:
1292 version "4.1.0"
1293 resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
1294
1295caniuse-lite@^1.0.30000718:
1296 version "1.0.30000722"
1297 resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000722.tgz#8cbfe07440478e3a16ab0d3b182feef1901eab55"
1298
1299capture-stack-trace@^1.0.0:
1300 version "1.0.0"
1301 resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d"
1302
1303caseless@~0.11.0:
1304 version "0.11.0"
1305 resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
1306
1307caseless@~0.12.0:
1308 version "0.12.0"
1309 resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
1310
1311chain-function@^1.0.0:
1312 version "1.0.0"
1313 resolved "https://registry.yarnpkg.com/chain-function/-/chain-function-1.0.0.tgz#0d4ab37e7e18ead0bdc47b920764118ce58733dc"
1314
1315chainsaw@~0.1.0:
1316 version "0.1.0"
1317 resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98"
1318 dependencies:
1319 traverse ">=0.3.0 <0.4"
1320
1321chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
1322 version "1.1.3"
1323 resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
1324 dependencies:
1325 ansi-styles "^2.2.1"
1326 escape-string-regexp "^1.0.2"
1327 has-ansi "^2.0.0"
1328 strip-ansi "^3.0.0"
1329 supports-color "^2.0.0"
1330
1331chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0:
1332 version "2.1.0"
1333 resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e"
1334 dependencies:
1335 ansi-styles "^3.1.0"
1336 escape-string-regexp "^1.0.5"
1337 supports-color "^4.0.0"
1338
1339chokidar@^1.4.3:
1340 version "1.7.0"
1341 resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
1342 dependencies:
1343 anymatch "^1.3.0"
1344 async-each "^1.0.0"
1345 glob-parent "^2.0.0"
1346 inherits "^2.0.1"
1347 is-binary-path "^1.0.0"
1348 is-glob "^2.0.0"
1349 path-is-absolute "^1.0.0"
1350 readdirp "^2.0.0"
1351 optionalDependencies:
1352 fsevents "^1.0.0"
1353
1354chownr@^1.0.1:
1355 version "1.0.1"
1356 resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
1357
1358chromium-pickle-js@^0.2.0:
1359 version "0.2.0"
1360 resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205"
1361
1362ci-info@^1.0.0:
1363 version "1.0.0"
1364 resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534"
1365
1366circular-json@^0.3.1:
1367 version "0.3.3"
1368 resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
1369
1370classnames@^2.2.0, classnames@^2.2.3, classnames@^2.2.5:
1371 version "2.2.5"
1372 resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d"
1373
1374cli-boxes@^1.0.0:
1375 version "1.0.0"
1376 resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143"
1377
1378cli-cursor@^2.1.0:
1379 version "2.1.0"
1380 resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
1381 dependencies:
1382 restore-cursor "^2.0.0"
1383
1384cli-spinners@^1.0.0:
1385 version "1.0.0"
1386 resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.0.0.tgz#ef987ed3d48391ac3dab9180b406a742180d6e6a"
1387
1388cli-width@^1.0.1:
1389 version "1.1.1"
1390 resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-1.1.1.tgz#a4d293ef67ebb7b88d4a4d42c0ccf00c4d1e366d"
1391
1392cli-width@^2.0.0:
1393 version "2.2.0"
1394 resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
1395
1396cliui@^3.0.3, cliui@^3.2.0:
1397 version "3.2.0"
1398 resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
1399 dependencies:
1400 string-width "^1.0.1"
1401 strip-ansi "^3.0.1"
1402 wrap-ansi "^2.0.0"
1403
1404clone-stats@^0.0.1:
1405 version "0.0.1"
1406 resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1"
1407
1408clone@^0.2.0:
1409 version "0.2.0"
1410 resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f"
1411
1412clone@^1.0.0:
1413 version "1.0.2"
1414 resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149"
1415
1416co@^4.6.0:
1417 version "4.6.0"
1418 resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
1419
1420code-point-at@^1.0.0:
1421 version "1.1.0"
1422 resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
1423
1424collection-map@^1.0.0:
1425 version "1.0.0"
1426 resolved "https://registry.yarnpkg.com/collection-map/-/collection-map-1.0.0.tgz#aea0f06f8d26c780c2b75494385544b2255af18c"
1427 dependencies:
1428 arr-map "^2.0.2"
1429 for-own "^1.0.0"
1430 make-iterator "^1.0.0"
1431
1432color-convert@^1.9.0:
1433 version "1.9.0"
1434 resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a"
1435 dependencies:
1436 color-name "^1.1.1"
1437
1438color-convert@~0.5.0:
1439 version "0.5.3"
1440 resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd"
1441
1442color-name@^1.1.1:
1443 version "1.1.3"
1444 resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
1445
1446colors@^1.1.2:
1447 version "1.1.2"
1448 resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
1449
1450combined-stream@^1.0.5, combined-stream@~1.0.5:
1451 version "1.0.5"
1452 resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
1453 dependencies:
1454 delayed-stream "~1.0.0"
1455
1456commander@^2.8.1, commander@^2.9.0:
1457 version "2.11.0"
1458 resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
1459
1460commondir@^1.0.1:
1461 version "1.0.1"
1462 resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
1463
1464compare-version@^0.1.2:
1465 version "0.1.2"
1466 resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080"
1467
1468component-bind@1.0.0:
1469 version "1.0.0"
1470 resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
1471
1472component-emitter@1.1.2:
1473 version "1.1.2"
1474 resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3"
1475
1476component-emitter@1.2.1:
1477 version "1.2.1"
1478 resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
1479
1480component-inherit@0.0.3:
1481 version "0.0.3"
1482 resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143"
1483
1484concat-map@0.0.1:
1485 version "0.0.1"
1486 resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
1487
1488concat-stream@1.6.0, concat-stream@^1.6.0:
1489 version "1.6.0"
1490 resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
1491 dependencies:
1492 inherits "^2.0.3"
1493 readable-stream "^2.2.2"
1494 typedarray "^0.0.6"
1495
1496configstore@^3.0.0:
1497 version "3.1.1"
1498 resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90"
1499 dependencies:
1500 dot-prop "^4.1.0"
1501 graceful-fs "^4.1.2"
1502 make-dir "^1.0.0"
1503 unique-string "^1.0.0"
1504 write-file-atomic "^2.0.0"
1505 xdg-basedir "^3.0.0"
1506
1507connect-inject@~0.3.2:
1508 version "0.3.2"
1509 resolved "https://registry.yarnpkg.com/connect-inject/-/connect-inject-0.3.2.tgz#d96b516a5b6bb24c2191e622b5e82cdd62844ba3"
1510
1511connect@~3.1.1:
1512 version "3.1.1"
1513 resolved "https://registry.yarnpkg.com/connect/-/connect-3.1.1.tgz#a73e2449c3efc2dfd1661865977a09184d120196"
1514 dependencies:
1515 debug "1.0.4"
1516 finalhandler "0.1.0"
1517 parseurl "~1.3.0"
1518 utils-merge "1.0.0"
1519
1520console-control-strings@^1.0.0, console-control-strings@~1.1.0:
1521 version "1.1.0"
1522 resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
1523
1524contains-path@^0.1.0:
1525 version "0.1.0"
1526 resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
1527
1528conventional-commit-types@^2.0.0:
1529 version "2.2.0"
1530 resolved "https://registry.yarnpkg.com/conventional-commit-types/-/conventional-commit-types-2.2.0.tgz#5db95739d6c212acbe7b6f656a11b940baa68946"
1531
1532convert-source-map@^1.1.1, convert-source-map@^1.5.0:
1533 version "1.5.0"
1534 resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5"
1535
1536cookie@0.3.1:
1537 version "0.3.1"
1538 resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
1539
1540copy-props@^1.4.1:
1541 version "1.6.0"
1542 resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-1.6.0.tgz#f0324bbee99771101e7b3ada112f313c393db8ed"
1543 dependencies:
1544 each-props "^1.2.1"
1545 is-plain-object "^2.0.1"
1546
1547core-js@^1.0.0:
1548 version "1.2.7"
1549 resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
1550
1551core-js@^2.4.0, core-js@^2.5.0:
1552 version "2.5.1"
1553 resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b"
1554
1555core-util-is@1.0.2, core-util-is@~1.0.0:
1556 version "1.0.2"
1557 resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
1558
1559create-error-class@^3.0.0:
1560 version "3.0.2"
1561 resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
1562 dependencies:
1563 capture-stack-trace "^1.0.0"
1564
1565create-react-class@^15.5.1, create-react-class@^15.5.2, create-react-class@^15.6.0:
1566 version "15.6.0"
1567 resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.0.tgz#ab448497c26566e1e29413e883207d57cfe7bed4"
1568 dependencies:
1569 fbjs "^0.8.9"
1570 loose-envify "^1.3.1"
1571 object-assign "^4.1.1"
1572
1573cross-env@^5.0.5:
1574 version "5.0.5"
1575 resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.0.5.tgz#4383d364d9660873dd185b398af3bfef5efffef3"
1576 dependencies:
1577 cross-spawn "^5.1.0"
1578 is-windows "^1.0.0"
1579
1580cross-spawn@^3.0.0:
1581 version "3.0.1"
1582 resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982"
1583 dependencies:
1584 lru-cache "^4.0.1"
1585 which "^1.2.9"
1586
1587cross-spawn@^5.0.1, cross-spawn@^5.1.0:
1588 version "5.1.0"
1589 resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
1590 dependencies:
1591 lru-cache "^4.0.1"
1592 shebang-command "^1.2.0"
1593 which "^1.2.9"
1594
1595cryptiles@2.x.x:
1596 version "2.0.5"
1597 resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
1598 dependencies:
1599 boom "2.x.x"
1600
1601crypto-random-string@^1.0.0:
1602 version "1.0.0"
1603 resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e"
1604
1605cuint@^0.2.1, cuint@^0.2.2:
1606 version "0.2.2"
1607 resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b"
1608
1609currently-unhandled@^0.4.1:
1610 version "0.4.1"
1611 resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
1612 dependencies:
1613 array-find-index "^1.0.1"
1614
1615cz-conventional-changelog@^2.0.0:
1616 version "2.0.0"
1617 resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-2.0.0.tgz#55a979afdfe95e7024879d2a0f5924630170b533"
1618 dependencies:
1619 conventional-commit-types "^2.0.0"
1620 lodash.map "^4.5.1"
1621 longest "^1.0.1"
1622 pad-right "^0.2.2"
1623 right-pad "^1.0.1"
1624 word-wrap "^1.0.3"
1625
1626d@1:
1627 version "1.0.0"
1628 resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
1629 dependencies:
1630 es5-ext "^0.10.9"
1631
1632damerau-levenshtein@^1.0.0:
1633 version "1.0.4"
1634 resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514"
1635
1636dashdash@^1.12.0:
1637 version "1.14.1"
1638 resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
1639 dependencies:
1640 assert-plus "^1.0.0"
1641
1642dateformat@^2.0.0:
1643 version "2.0.0"
1644 resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17"
1645
1646debug-electron@^0.0.4:
1647 version "0.0.4"
1648 resolved "https://registry.yarnpkg.com/debug-electron/-/debug-electron-0.0.4.tgz#9b035349ac8107b4e43da200d2339c4fd5b169e7"
1649 dependencies:
1650 debug "^2.4.1"
1651
1652debug@1.0.4:
1653 version "1.0.4"
1654 resolved "https://registry.yarnpkg.com/debug/-/debug-1.0.4.tgz#5b9c256bd54b6ec02283176fa8a0ede6d154cbf8"
1655 dependencies:
1656 ms "0.6.2"
1657
1658debug@2.2.0:
1659 version "2.2.0"
1660 resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
1661 dependencies:
1662 ms "0.7.1"
1663
1664debug@2.3.3:
1665 version "2.3.3"
1666 resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c"
1667 dependencies:
1668 ms "0.7.2"
1669
1670debug@^2.1.3, debug@^2.2.0, debug@^2.5.1, debug@^2.6.1, debug@^2.6.3, debug@^2.6.6, debug@^2.6.8:
1671 version "2.6.8"
1672 resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
1673 dependencies:
1674 ms "2.0.0"
1675
1676debug@^2.4.1:
1677 version "2.6.9"
1678 resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
1679 dependencies:
1680 ms "2.0.0"
1681
1682debug@^3.0.1:
1683 version "3.0.1"
1684 resolved "https://registry.yarnpkg.com/debug/-/debug-3.0.1.tgz#0564c612b521dc92d9f2988f0549e34f9c98db64"
1685 dependencies:
1686 ms "2.0.0"
1687
1688decamelize@^1.1.1, decamelize@^1.1.2:
1689 version "1.2.0"
1690 resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
1691
1692decompress-zip@0.3.0:
1693 version "0.3.0"
1694 resolved "https://registry.yarnpkg.com/decompress-zip/-/decompress-zip-0.3.0.tgz#ae3bcb7e34c65879adfe77e19c30f86602b4bdb0"
1695 dependencies:
1696 binary "^0.3.0"
1697 graceful-fs "^4.1.3"
1698 mkpath "^0.1.0"
1699 nopt "^3.0.1"
1700 q "^1.1.2"
1701 readable-stream "^1.1.8"
1702 touch "0.0.3"
1703
1704deep-equal@^1.0.1:
1705 version "1.0.1"
1706 resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
1707
1708deep-extend@~0.4.0:
1709 version "0.4.2"
1710 resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
1711
1712deep-is@~0.1.3:
1713 version "0.1.3"
1714 resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
1715
1716default-resolution@^2.0.0:
1717 version "2.0.0"
1718 resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684"
1719
1720define-properties@^1.1.2:
1721 version "1.1.2"
1722 resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
1723 dependencies:
1724 foreach "^2.0.5"
1725 object-keys "^1.0.8"
1726
1727del@^2.0.2, del@^2.2.2:
1728 version "2.2.2"
1729 resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
1730 dependencies:
1731 globby "^5.0.0"
1732 is-path-cwd "^1.0.0"
1733 is-path-in-cwd "^1.0.0"
1734 object-assign "^4.0.1"
1735 pify "^2.0.0"
1736 pinkie-promise "^2.0.0"
1737 rimraf "^2.2.8"
1738
1739delayed-stream@~1.0.0:
1740 version "1.0.0"
1741 resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
1742
1743delegates@^1.0.0:
1744 version "1.0.0"
1745 resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
1746
1747depd@0.4.4:
1748 version "0.4.4"
1749 resolved "https://registry.yarnpkg.com/depd/-/depd-0.4.4.tgz#07091fae75f97828d89b4a02a2d4778f0e7c0662"
1750
1751destroy@1.0.3:
1752 version "1.0.3"
1753 resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.3.tgz#b433b4724e71fd8551d9885174851c5fc377e2c9"
1754
1755detect-file@^0.1.0:
1756 version "0.1.0"
1757 resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63"
1758 dependencies:
1759 fs-exists-sync "^0.1.0"
1760
1761detect-indent@^4.0.0:
1762 version "4.0.0"
1763 resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
1764 dependencies:
1765 repeating "^2.0.0"
1766
1767doctrine@1.5.0, doctrine@^1.2.2:
1768 version "1.5.0"
1769 resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
1770 dependencies:
1771 esutils "^2.0.2"
1772 isarray "^1.0.0"
1773
1774doctrine@^2.0.0:
1775 version "2.0.0"
1776 resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63"
1777 dependencies:
1778 esutils "^2.0.2"
1779 isarray "^1.0.0"
1780
1781"dom-helpers@^2.4.0 || ^3.0.0":
1782 version "3.3.1"
1783 resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.3.1.tgz#fc1a4e15ffdf60ddde03a480a9c0fece821dd4a6"
1784
1785dom-helpers@^3.2.0:
1786 version "3.2.1"
1787 resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.2.1.tgz#3203e07fed217bd1f424b019735582fc37b2825a"
1788
1789dot-prop@^4.1.0:
1790 version "4.2.0"
1791 resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
1792 dependencies:
1793 is-obj "^1.0.0"
1794
1795dotenv@^4.0.0:
1796 version "4.0.0"
1797 resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d"
1798
1799du@^0.1.0:
1800 version "0.1.0"
1801 resolved "https://registry.yarnpkg.com/du/-/du-0.1.0.tgz#f26e340a09c7bc5b6fd69af6dbadea60fa8c6f4d"
1802 dependencies:
1803 async "~0.1.22"
1804
1805duplexer2@0.0.2, duplexer2@~0.0.2:
1806 version "0.0.2"
1807 resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db"
1808 dependencies:
1809 readable-stream "~1.1.9"
1810
1811duplexer3@^0.1.4:
1812 version "0.1.4"
1813 resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
1814
1815duplexify@^3.2.0:
1816 version "3.5.1"
1817 resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.1.tgz#4e1516be68838bc90a49994f0b39a6e5960befcd"
1818 dependencies:
1819 end-of-stream "^1.0.0"
1820 inherits "^2.0.1"
1821 readable-stream "^2.0.0"
1822 stream-shift "^1.0.0"
1823
1824each-props@^1.2.1:
1825 version "1.3.1"
1826 resolved "https://registry.yarnpkg.com/each-props/-/each-props-1.3.1.tgz#fc138f51e3a2774286d4858e02d6e7de462de158"
1827 dependencies:
1828 is-plain-object "^2.0.1"
1829 object.defaults "^1.1.0"
1830
1831ecc-jsbn@~0.1.1:
1832 version "0.1.1"
1833 resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
1834 dependencies:
1835 jsbn "~0.1.0"
1836
1837ecdsa-sig-formatter@1.0.9:
1838 version "1.0.9"
1839 resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz#4bc926274ec3b5abb5016e7e1d60921ac262b2a1"
1840 dependencies:
1841 base64url "^2.0.0"
1842 safe-buffer "^5.0.1"
1843
1844editor@^1.0.0:
1845 version "1.0.0"
1846 resolved "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz#60c7f87bd62bcc6a894fa8ccd6afb7823a24f742"
1847
1848ee-first@1.0.5:
1849 version "1.0.5"
1850 resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.0.5.tgz#8c9b212898d8cd9f1a9436650ce7be202c9e9ff0"
1851
1852electron-builder-http@19.15.0, electron-builder-http@~19.15.0:
1853 version "19.15.0"
1854 resolved "https://registry.yarnpkg.com/electron-builder-http/-/electron-builder-http-19.15.0.tgz#d34cc28cf9db9ad28494283be8116e83a2e78f4c"
1855 dependencies:
1856 bluebird-lst "^1.0.2"
1857 debug "^2.6.8"
1858 fs-extra-p "^4.3.0"
1859
1860electron-builder-http@~19.27.5:
1861 version "19.27.5"
1862 resolved "https://registry.yarnpkg.com/electron-builder-http/-/electron-builder-http-19.27.5.tgz#800865df2e618ffab9e5b3b895c15b4ce7fd7f17"
1863 dependencies:
1864 bluebird-lst "^1.0.3"
1865 debug "^3.0.1"
1866 fs-extra-p "^4.4.0"
1867
1868electron-builder-util@19.15.0, electron-builder-util@~19.15.0:
1869 version "19.15.0"
1870 resolved "https://registry.yarnpkg.com/electron-builder-util/-/electron-builder-util-19.15.0.tgz#3df92f43b13d1aa3fc4823a05cca96619892bff2"
1871 dependencies:
1872 "7zip-bin" "^2.1.0"
1873 bluebird-lst "^1.0.2"
1874 chalk "^2.0.1"
1875 debug "^2.6.8"
1876 electron-builder-http "~19.15.0"
1877 fcopy-pre-bundled "0.3.4"
1878 fs-extra-p "^4.3.0"
1879 ini "^1.3.4"
1880 is-ci "^1.0.10"
1881 node-emoji "^1.6.1"
1882 source-map-support "^0.4.15"
1883 stat-mode "^0.2.2"
1884 tunnel-agent "^0.6.0"
1885
1886electron-builder@19.15.1:
1887 version "19.15.1"
1888 resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-19.15.1.tgz#da5d61fbae512edbc5b0251f6d9cb7774830eede"
1889 dependencies:
1890 "7zip-bin" "^2.1.0"
1891 ajv "^5.2.1"
1892 ajv-keywords "^2.1.0"
1893 asar-integrity "0.1.1"
1894 bluebird-lst "^1.0.2"
1895 chalk "^2.0.1"
1896 chromium-pickle-js "^0.2.0"
1897 cuint "^0.2.2"
1898 debug "^2.6.8"
1899 electron-builder-http "19.15.0"
1900 electron-builder-util "19.15.0"
1901 electron-download-tf "4.3.1"
1902 electron-osx-sign "0.4.6"
1903 electron-publish "19.15.0"
1904 fs-extra-p "^4.3.0"
1905 hosted-git-info "^2.5.0"
1906 is-ci "^1.0.10"
1907 isbinaryfile "^3.0.2"
1908 js-yaml "^3.9.0"
1909 json5 "^0.5.1"
1910 minimatch "^3.0.4"
1911 normalize-package-data "^2.4.0"
1912 parse-color "^1.0.0"
1913 plist "^2.1.0"
1914 sanitize-filename "^1.6.1"
1915 semver "^5.3.0"
1916 update-notifier "^2.2.0"
1917 uuid-1345 "^0.99.6"
1918 yargs "^8.0.2"
1919
1920electron-download-tf@4.3.1:
1921 version "4.3.1"
1922 resolved "https://registry.yarnpkg.com/electron-download-tf/-/electron-download-tf-4.3.1.tgz#7930f24a08e3669eaad38a5f7f288a10461caf72"
1923 dependencies:
1924 debug "^2.6.6"
1925 env-paths "^1.0.0"
1926 fs-extra "^3.0.1"
1927 minimist "^1.2.0"
1928 nugget "^2.0.1"
1929 path-exists "^3.0.0"
1930 rc "^1.2.1"
1931 semver "^5.3.0"
1932 sumchecker "^2.0.2"
1933
1934electron-download@^3.0.1:
1935 version "3.3.0"
1936 resolved "https://registry.yarnpkg.com/electron-download/-/electron-download-3.3.0.tgz#2cfd54d6966c019c4d49ad65fbe65cc9cdef68c8"
1937 dependencies:
1938 debug "^2.2.0"
1939 fs-extra "^0.30.0"
1940 home-path "^1.0.1"
1941 minimist "^1.2.0"
1942 nugget "^2.0.0"
1943 path-exists "^2.1.0"
1944 rc "^1.1.2"
1945 semver "^5.3.0"
1946 sumchecker "^1.2.0"
1947
1948electron-download@^4.0.0:
1949 version "4.1.0"
1950 resolved "https://registry.yarnpkg.com/electron-download/-/electron-download-4.1.0.tgz#bf932c746f2f87ffcc09d1dd472f2ff6b9187845"
1951 dependencies:
1952 debug "^2.2.0"
1953 env-paths "^1.0.0"
1954 fs-extra "^2.0.0"
1955 minimist "^1.2.0"
1956 nugget "^2.0.0"
1957 path-exists "^3.0.0"
1958 rc "^1.1.2"
1959 semver "^5.3.0"
1960 sumchecker "^2.0.1"
1961
1962electron-fetch@^1.1.0:
1963 version "1.1.0"
1964 resolved "https://registry.yarnpkg.com/electron-fetch/-/electron-fetch-1.1.0.tgz#74b0ea547fe149620d38596a84fb104d34218e31"
1965 dependencies:
1966 encoding "^0.1.12"
1967
1968electron-is-dev@^0.3.0:
1969 version "0.3.0"
1970 resolved "https://registry.yarnpkg.com/electron-is-dev/-/electron-is-dev-0.3.0.tgz#14e6fda5c68e9e4ecbeff9ccf037cbd7c05c5afe"
1971
1972electron-osx-sign@0.4.6, electron-osx-sign@^0.4.1:
1973 version "0.4.6"
1974 resolved "https://registry.yarnpkg.com/electron-osx-sign/-/electron-osx-sign-0.4.6.tgz#2398e2d7cab5c1d8c3eeabb1cd490376528ec39a"
1975 dependencies:
1976 bluebird "^3.4.7"
1977 compare-version "^0.1.2"
1978 debug "^2.6.1"
1979 isbinaryfile "^3.0.2"
1980 minimist "^1.2.0"
1981 plist "^2.0.1"
1982 tempfile "^1.1.1"
1983
1984electron-packager@^8.7.0:
1985 version "8.7.2"
1986 resolved "https://registry.yarnpkg.com/electron-packager/-/electron-packager-8.7.2.tgz#457d3bf24bc9607c06ad4b1eb6daa4accadc2108"
1987 dependencies:
1988 asar "^0.13.0"
1989 debug "^2.2.0"
1990 electron-download "^4.0.0"
1991 electron-osx-sign "^0.4.1"
1992 extract-zip "^1.0.3"
1993 fs-extra "^3.0.0"
1994 get-package-info "^1.0.0"
1995 minimist "^1.1.1"
1996 plist "^2.0.0"
1997 rcedit "^0.9.0"
1998 resolve "^1.1.6"
1999 run-series "^1.1.1"
2000 sanitize-filename "^1.6.0"
2001 semver "^5.3.0"
2002
2003electron-publish@19.15.0:
2004 version "19.15.0"
2005 resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-19.15.0.tgz#8bed54b827a161c325cb8739957c68fa2ca1092a"
2006 dependencies:
2007 bluebird-lst "^1.0.2"
2008 chalk "^2.0.1"
2009 electron-builder-http "~19.15.0"
2010 electron-builder-util "~19.15.0"
2011 fs-extra-p "^4.3.0"
2012 mime "^1.3.6"
2013
2014electron-react-titlebar@^0.7.1:
2015 version "0.7.1"
2016 resolved "https://registry.yarnpkg.com/electron-react-titlebar/-/electron-react-titlebar-0.7.1.tgz#d56517d01ef0e935caa994e9b577dfd63a56c66c"
2017 dependencies:
2018 lodash "^4.17.4"
2019 react-virtualized "^9.7.6"
2020
2021electron-rebuild@^1.6.0:
2022 version "1.6.0"
2023 resolved "https://registry.yarnpkg.com/electron-rebuild/-/electron-rebuild-1.6.0.tgz#e8d26f4d8e9fe5388df35864b3658e5cfd4dcb7e"
2024 dependencies:
2025 colors "^1.1.2"
2026 debug "^2.6.3"
2027 fs-extra "^3.0.1"
2028 node-abi "^2.0.0"
2029 node-gyp "^3.6.0"
2030 ora "^1.2.0"
2031 rimraf "^2.6.1"
2032 spawn-rx "^2.0.10"
2033 yargs "^7.0.2"
2034
2035electron-remote@^1.1.1:
2036 version "1.2.0"
2037 resolved "https://registry.yarnpkg.com/electron-remote/-/electron-remote-1.2.0.tgz#0f00c1d3803ce7651117f6fb6f274d26781ef9bd"
2038 dependencies:
2039 debug "^2.5.1"
2040 hashids "^1.1.1"
2041 lodash.get "^4.4.2"
2042 pify "^2.3.0"
2043 rxjs "^5.0.0-beta.12"
2044 xmlhttprequest "^1.8.0"
2045
2046electron-spellchecker@^1.1.2:
2047 version "1.1.2"
2048 resolved "https://registry.yarnpkg.com/electron-spellchecker/-/electron-spellchecker-1.1.2.tgz#5fbe1e65d246b77e6e7433ee2387d9d26010f7a8"
2049 dependencies:
2050 "@paulcbetts/cld" "^2.4.6"
2051 "@paulcbetts/spellchecker" "^4.0.6"
2052 bcp47 "^1.1.2"
2053 debug "^2.6.3"
2054 electron-remote "^1.1.1"
2055 keyboard-layout "^2.0.7"
2056 lru-cache "^4.0.2"
2057 mkdirp "^0.5.1"
2058 pify "^2.3.0"
2059 rxjs "^5.0.1"
2060 rxjs-serial-subscription "^0.1.1"
2061 spawn-rx "^2.0.7"
2062
2063electron-to-chromium@^1.3.18:
2064 version "1.3.20"
2065 resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.20.tgz#2eedd5ccbae7ddc557f68ad1fce9c172e915e4e5"
2066
2067electron-updater@^2.4.3:
2068 version "2.8.9"
2069 resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-2.8.9.tgz#e2525dcbd7c27ff173bdfd2e87056d67310e2555"
2070 dependencies:
2071 bluebird-lst "^1.0.3"
2072 debug "^3.0.1"
2073 electron-builder-http "~19.27.5"
2074 electron-is-dev "^0.3.0"
2075 fs-extra-p "^4.4.0"
2076 js-yaml "^3.9.1"
2077 lazy-val "^1.0.2"
2078 lodash.isequal "^4.5.0"
2079 semver "^5.4.1"
2080 source-map-support "^0.4.16"
2081 uuid-1345 "^0.99.6"
2082 xelement "^1.0.16"
2083
2084electron-window-state@^4.1.0:
2085 version "4.1.1"
2086 resolved "https://registry.yarnpkg.com/electron-window-state/-/electron-window-state-4.1.1.tgz#6b34fdc31b38514dfec8b7c8f7b5d4addb67632d"
2087 dependencies:
2088 deep-equal "^1.0.1"
2089 jsonfile "^2.2.3"
2090 mkdirp "^0.5.1"
2091
2092electron@1.8.4:
2093 version "1.8.4"
2094 resolved "https://registry.yarnpkg.com/electron/-/electron-1.8.4.tgz#cca8d0e6889f238f55b414ad224f03e03b226a38"
2095 dependencies:
2096 "@types/node" "^8.0.24"
2097 electron-download "^3.0.1"
2098 extract-zip "^1.0.3"
2099
2100email-addresses@^3.0.0:
2101 version "3.0.1"
2102 resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-3.0.1.tgz#c1fc20c189e7f96d4012d375db5feaccdd24391c"
2103
2104emojis-list@^2.0.0:
2105 version "2.1.0"
2106 resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
2107
2108encoding@^0.1.11, encoding@^0.1.12:
2109 version "0.1.12"
2110 resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
2111 dependencies:
2112 iconv-lite "~0.4.13"
2113
2114end-of-stream@^1.0.0, end-of-stream@^1.1.0:
2115 version "1.4.0"
2116 resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206"
2117 dependencies:
2118 once "^1.4.0"
2119
2120engine.io-client@~1.8.4:
2121 version "1.8.4"
2122 resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.4.tgz#9fe85dee25853ca6babe25bd2ad68710863e91c2"
2123 dependencies:
2124 component-emitter "1.2.1"
2125 component-inherit "0.0.3"
2126 debug "2.3.3"
2127 engine.io-parser "1.3.2"
2128 has-cors "1.1.0"
2129 indexof "0.0.1"
2130 parsejson "0.0.3"
2131 parseqs "0.0.5"
2132 parseuri "0.0.5"
2133 ws "1.1.2"
2134 xmlhttprequest-ssl "1.5.3"
2135 yeast "0.1.2"
2136
2137engine.io-parser@1.3.2:
2138 version "1.3.2"
2139 resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a"
2140 dependencies:
2141 after "0.8.2"
2142 arraybuffer.slice "0.0.6"
2143 base64-arraybuffer "0.1.5"
2144 blob "0.0.4"
2145 has-binary "0.1.7"
2146 wtf-8 "1.0.0"
2147
2148engine.io@~1.8.4:
2149 version "1.8.4"
2150 resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.4.tgz#77bce12b80e5d60429337fec3b0daf691ebc9003"
2151 dependencies:
2152 accepts "1.3.3"
2153 base64id "1.0.0"
2154 cookie "0.3.1"
2155 debug "2.3.3"
2156 engine.io-parser "1.3.2"
2157 ws "1.1.4"
2158
2159env-paths@^1.0.0:
2160 version "1.0.0"
2161 resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0"
2162
2163error-ex@^1.2.0:
2164 version "1.3.1"
2165 resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
2166 dependencies:
2167 is-arrayish "^0.2.1"
2168
2169es-abstract@^1.7.0:
2170 version "1.8.1"
2171 resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.1.tgz#fd85a3bdfa67786ce7be7e1584678e119cd70c04"
2172 dependencies:
2173 es-to-primitive "^1.1.1"
2174 function-bind "^1.1.1"
2175 has "^1.0.1"
2176 is-callable "^1.1.3"
2177 is-regex "^1.0.4"
2178
2179es-to-primitive@^1.1.1:
2180 version "1.1.1"
2181 resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
2182 dependencies:
2183 is-callable "^1.1.1"
2184 is-date-object "^1.0.1"
2185 is-symbol "^1.0.1"
2186
2187es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14:
2188 version "0.10.30"
2189 resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.30.tgz#7141a16836697dbabfaaaeee41495ce29f52c939"
2190 dependencies:
2191 es6-iterator "2"
2192 es6-symbol "~3.1"
2193
2194es6-iterator@2, es6-iterator@^2.0.1:
2195 version "2.0.1"
2196 resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512"
2197 dependencies:
2198 d "1"
2199 es5-ext "^0.10.14"
2200 es6-symbol "^3.1"
2201
2202es6-promise@^4.0.5:
2203 version "4.1.1"
2204 resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.1.tgz#8811e90915d9a0dba36274f0b242dbda78f9c92a"
2205
2206es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1:
2207 version "3.1.1"
2208 resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
2209 dependencies:
2210 d "1"
2211 es5-ext "~0.10.14"
2212
2213es6-weak-map@^2.0.1:
2214 version "2.0.2"
2215 resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f"
2216 dependencies:
2217 d "1"
2218 es5-ext "^0.10.14"
2219 es6-iterator "^2.0.1"
2220 es6-symbol "^3.1.1"
2221
2222escape-html@1.0.1:
2223 version "1.0.1"
2224 resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.1.tgz#181a286ead397a39a92857cfb1d43052e356bff0"
2225
2226escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
2227 version "1.0.5"
2228 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
2229
2230eslint-config-airbnb-base@^11.1.0:
2231 version "11.3.2"
2232 resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.3.2.tgz#8703b11abe3c88ac7ec2b745b7fdf52e00ae680a"
2233 dependencies:
2234 eslint-restricted-globals "^0.1.1"
2235
2236eslint-config-airbnb@^14.1.0:
2237 version "14.1.0"
2238 resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-14.1.0.tgz#355d290040bbf8e00bf8b4b19f4b70cbe7c2317f"
2239 dependencies:
2240 eslint-config-airbnb-base "^11.1.0"
2241
2242eslint-import-resolver-node@^0.3.1:
2243 version "0.3.1"
2244 resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz#4422574cde66a9a7b099938ee4d508a199e0e3cc"
2245 dependencies:
2246 debug "^2.6.8"
2247 resolve "^1.2.0"
2248
2249eslint-loader@^1.9.0:
2250 version "1.9.0"
2251 resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-1.9.0.tgz#7e1be9feddca328d3dcfaef1ad49d5beffe83a13"
2252 dependencies:
2253 loader-fs-cache "^1.0.0"
2254 loader-utils "^1.0.2"
2255 object-assign "^4.0.1"
2256 object-hash "^1.1.4"
2257 rimraf "^2.6.1"
2258
2259eslint-module-utils@^2.1.1:
2260 version "2.1.1"
2261 resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz#abaec824177613b8a95b299639e1b6facf473449"
2262 dependencies:
2263 debug "^2.6.8"
2264 pkg-dir "^1.0.0"
2265
2266eslint-plugin-import@^2.2.0:
2267 version "2.7.0"
2268 resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.7.0.tgz#21de33380b9efb55f5ef6d2e210ec0e07e7fa69f"
2269 dependencies:
2270 builtin-modules "^1.1.1"
2271 contains-path "^0.1.0"
2272 debug "^2.6.8"
2273 doctrine "1.5.0"
2274 eslint-import-resolver-node "^0.3.1"
2275 eslint-module-utils "^2.1.1"
2276 has "^1.0.1"
2277 lodash.cond "^4.3.0"
2278 minimatch "^3.0.3"
2279 read-pkg-up "^2.0.0"
2280
2281eslint-plugin-jsx-a11y@^3.0.0:
2282 version "3.0.2"
2283 resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-3.0.2.tgz#9f0eabcafde3d2a2600d96a66adb90d099e841fe"
2284 dependencies:
2285 damerau-levenshtein "^1.0.0"
2286 jsx-ast-utils "^1.0.0"
2287 object-assign "^4.0.1"
2288
2289eslint-plugin-react@^6.10.0:
2290 version "6.10.3"
2291 resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz#c5435beb06774e12c7db2f6abaddcbf900cd3f78"
2292 dependencies:
2293 array.prototype.find "^2.0.1"
2294 doctrine "^1.2.2"
2295 has "^1.0.1"
2296 jsx-ast-utils "^1.3.4"
2297 object.assign "^4.0.4"
2298
2299eslint-restricted-globals@^0.1.1:
2300 version "0.1.1"
2301 resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7"
2302
2303eslint-scope@^3.7.1:
2304 version "3.7.1"
2305 resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
2306 dependencies:
2307 esrecurse "^4.1.0"
2308 estraverse "^4.1.1"
2309
2310eslint@^4.7.1:
2311 version "4.7.1"
2312 resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.7.1.tgz#849804136953ebe366782f9f8611e2cbd1b54681"
2313 dependencies:
2314 ajv "^5.2.0"
2315 babel-code-frame "^6.22.0"
2316 chalk "^2.1.0"
2317 concat-stream "^1.6.0"
2318 cross-spawn "^5.1.0"
2319 debug "^3.0.1"
2320 doctrine "^2.0.0"
2321 eslint-scope "^3.7.1"
2322 espree "^3.5.1"
2323 esquery "^1.0.0"
2324 estraverse "^4.2.0"
2325 esutils "^2.0.2"
2326 file-entry-cache "^2.0.0"
2327 functional-red-black-tree "^1.0.1"
2328 glob "^7.1.2"
2329 globals "^9.17.0"
2330 ignore "^3.3.3"
2331 imurmurhash "^0.1.4"
2332 inquirer "^3.0.6"
2333 is-resolvable "^1.0.0"
2334 js-yaml "^3.9.1"
2335 json-stable-stringify "^1.0.1"
2336 levn "^0.3.0"
2337 lodash "^4.17.4"
2338 minimatch "^3.0.2"
2339 mkdirp "^0.5.1"
2340 natural-compare "^1.4.0"
2341 optionator "^0.8.2"
2342 path-is-inside "^1.0.2"
2343 pluralize "^7.0.0"
2344 progress "^2.0.0"
2345 require-uncached "^1.0.3"
2346 semver "^5.3.0"
2347 strip-ansi "^4.0.0"
2348 strip-json-comments "~2.0.1"
2349 table "^4.0.1"
2350 text-table "~0.2.0"
2351
2352espree@^3.5.1:
2353 version "3.5.1"
2354 resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.1.tgz#0c988b8ab46db53100a1954ae4ba995ddd27d87e"
2355 dependencies:
2356 acorn "^5.1.1"
2357 acorn-jsx "^3.0.0"
2358
2359esprima@^4.0.0:
2360 version "4.0.0"
2361 resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
2362
2363esquery@^1.0.0:
2364 version "1.0.0"
2365 resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa"
2366 dependencies:
2367 estraverse "^4.0.0"
2368
2369esrecurse@^4.1.0:
2370 version "4.2.0"
2371 resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163"
2372 dependencies:
2373 estraverse "^4.1.0"
2374 object-assign "^4.0.1"
2375
2376estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
2377 version "4.2.0"
2378 resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
2379
2380esutils@^2.0.2:
2381 version "2.0.2"
2382 resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
2383
2384event-kit@^2.0.0:
2385 version "2.3.0"
2386 resolved "https://registry.yarnpkg.com/event-kit/-/event-kit-2.3.0.tgz#459ba0646d4b7dbca5d9bf2b3c4e2d0103e85e15"
2387
2388execa@^0.7.0:
2389 version "0.7.0"
2390 resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
2391 dependencies:
2392 cross-spawn "^5.0.1"
2393 get-stream "^3.0.0"
2394 is-stream "^1.1.0"
2395 npm-run-path "^2.0.0"
2396 p-finally "^1.0.0"
2397 signal-exit "^3.0.0"
2398 strip-eof "^1.0.0"
2399
2400expand-brackets@^0.1.4:
2401 version "0.1.5"
2402 resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
2403 dependencies:
2404 is-posix-bracket "^0.1.0"
2405
2406expand-range@^1.8.1:
2407 version "1.8.2"
2408 resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
2409 dependencies:
2410 fill-range "^2.1.0"
2411
2412expand-tilde@^1.2.2:
2413 version "1.2.2"
2414 resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449"
2415 dependencies:
2416 os-homedir "^1.0.1"
2417
2418expand-tilde@^2.0.2:
2419 version "2.0.2"
2420 resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502"
2421 dependencies:
2422 homedir-polyfill "^1.0.1"
2423
2424extend-shallow@^2.0.1:
2425 version "2.0.1"
2426 resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
2427 dependencies:
2428 is-extendable "^0.1.0"
2429
2430extend@^3.0.0, extend@~3.0.0:
2431 version "3.0.1"
2432 resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
2433
2434external-editor@^2.0.4:
2435 version "2.0.5"
2436 resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.5.tgz#52c249a3981b9ba187c7cacf5beb50bf1d91a6bc"
2437 dependencies:
2438 iconv-lite "^0.4.17"
2439 jschardet "^1.4.2"
2440 tmp "^0.0.33"
2441
2442extglob@^0.3.1:
2443 version "0.3.2"
2444 resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
2445 dependencies:
2446 is-extglob "^1.0.0"
2447
2448extract-zip@^1.0.3:
2449 version "1.6.5"
2450 resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.5.tgz#99a06735b6ea20ea9b705d779acffcc87cff0440"
2451 dependencies:
2452 concat-stream "1.6.0"
2453 debug "2.2.0"
2454 mkdirp "0.5.0"
2455 yauzl "2.4.1"
2456
2457extsprintf@1.3.0, extsprintf@^1.2.0:
2458 version "1.3.0"
2459 resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
2460
2461fancy-log@^1.1.0:
2462 version "1.3.0"
2463 resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.0.tgz#45be17d02bb9917d60ccffd4995c999e6c8c9948"
2464 dependencies:
2465 chalk "^1.1.1"
2466 time-stamp "^1.0.0"
2467
2468fast-deep-equal@^1.0.0:
2469 version "1.0.0"
2470 resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
2471
2472fast-levenshtein@~2.0.4:
2473 version "2.0.6"
2474 resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
2475
2476fbjs@^0.8.16:
2477 version "0.8.16"
2478 resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db"
2479 dependencies:
2480 core-js "^1.0.0"
2481 isomorphic-fetch "^2.1.1"
2482 loose-envify "^1.0.0"
2483 object-assign "^4.1.0"
2484 promise "^7.1.1"
2485 setimmediate "^1.0.5"
2486 ua-parser-js "^0.7.9"
2487
2488fbjs@^0.8.9:
2489 version "0.8.14"
2490 resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c"
2491 dependencies:
2492 core-js "^1.0.0"
2493 isomorphic-fetch "^2.1.1"
2494 loose-envify "^1.0.0"
2495 object-assign "^4.1.0"
2496 promise "^7.1.1"
2497 setimmediate "^1.0.5"
2498 ua-parser-js "^0.7.9"
2499
2500fcopy-pre-bundled@0.3.4:
2501 version "0.3.4"
2502 resolved "https://registry.yarnpkg.com/fcopy-pre-bundled/-/fcopy-pre-bundled-0.3.4.tgz#7ff1a1c339e877baa86b0856bebb33621cd5620b"
2503
2504fd-slicer@~1.0.1:
2505 version "1.0.1"
2506 resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
2507 dependencies:
2508 pend "~1.2.0"
2509
2510figures@^1.3.5:
2511 version "1.7.0"
2512 resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
2513 dependencies:
2514 escape-string-regexp "^1.0.5"
2515 object-assign "^4.1.0"
2516
2517figures@^2.0.0:
2518 version "2.0.0"
2519 resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
2520 dependencies:
2521 escape-string-regexp "^1.0.5"
2522
2523file-entry-cache@^2.0.0:
2524 version "2.0.0"
2525 resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
2526 dependencies:
2527 flat-cache "^1.2.1"
2528 object-assign "^4.0.1"
2529
2530filename-regex@^2.0.0:
2531 version "2.0.1"
2532 resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
2533
2534fill-range@^2.1.0:
2535 version "2.2.3"
2536 resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
2537 dependencies:
2538 is-number "^2.1.0"
2539 isobject "^2.0.0"
2540 randomatic "^1.1.3"
2541 repeat-element "^1.1.2"
2542 repeat-string "^1.5.2"
2543
2544finalhandler@0.1.0:
2545 version "0.1.0"
2546 resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.1.0.tgz#da05bbc4f5f4a30c84ce1d91f3c154007c4e9daa"
2547 dependencies:
2548 debug "1.0.4"
2549 escape-html "1.0.1"
2550
2551find-cache-dir@^0.1.1:
2552 version "0.1.1"
2553 resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
2554 dependencies:
2555 commondir "^1.0.1"
2556 mkdirp "^0.5.1"
2557 pkg-dir "^1.0.0"
2558
2559find-index@^0.1.1:
2560 version "0.1.1"
2561 resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4"
2562
2563find-up@^1.0.0:
2564 version "1.1.2"
2565 resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
2566 dependencies:
2567 path-exists "^2.0.0"
2568 pinkie-promise "^2.0.0"
2569
2570find-up@^2.0.0:
2571 version "2.1.0"
2572 resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
2573 dependencies:
2574 locate-path "^2.0.0"
2575
2576findup-sync@^0.4.2:
2577 version "0.4.3"
2578 resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12"
2579 dependencies:
2580 detect-file "^0.1.0"
2581 is-glob "^2.0.1"
2582 micromatch "^2.3.7"
2583 resolve-dir "^0.1.0"
2584
2585findup-sync@~0.3.0:
2586 version "0.3.0"
2587 resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.3.0.tgz#37930aa5d816b777c03445e1966cc6790a4c0b16"
2588 dependencies:
2589 glob "~5.0.0"
2590
2591fined@^1.0.1:
2592 version "1.1.0"
2593 resolved "https://registry.yarnpkg.com/fined/-/fined-1.1.0.tgz#b37dc844b76a2f5e7081e884f7c0ae344f153476"
2594 dependencies:
2595 expand-tilde "^2.0.2"
2596 is-plain-object "^2.0.3"
2597 object.defaults "^1.1.0"
2598 object.pick "^1.2.0"
2599 parse-filepath "^1.0.1"
2600
2601first-chunk-stream@^1.0.0:
2602 version "1.0.0"
2603 resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e"
2604
2605flagged-respawn@^0.3.2:
2606 version "0.3.2"
2607 resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-0.3.2.tgz#ff191eddcd7088a675b2610fffc976be9b8074b5"
2608
2609flat-cache@^1.2.1:
2610 version "1.2.2"
2611 resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96"
2612 dependencies:
2613 circular-json "^0.3.1"
2614 del "^2.0.2"
2615 graceful-fs "^4.1.2"
2616 write "^0.2.1"
2617
2618for-in@^1.0.1:
2619 version "1.0.2"
2620 resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
2621
2622for-own@^0.1.4:
2623 version "0.1.5"
2624 resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
2625 dependencies:
2626 for-in "^1.0.1"
2627
2628for-own@^1.0.0:
2629 version "1.0.0"
2630 resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b"
2631 dependencies:
2632 for-in "^1.0.1"
2633
2634foreach@^2.0.5:
2635 version "2.0.5"
2636 resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
2637
2638forever-agent@~0.6.1:
2639 version "0.6.1"
2640 resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
2641
2642form-data@~2.1.1:
2643 version "2.1.4"
2644 resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
2645 dependencies:
2646 asynckit "^0.4.0"
2647 combined-stream "^1.0.5"
2648 mime-types "^2.1.12"
2649
2650fresh@0.2.2:
2651 version "0.2.2"
2652 resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.2.2.tgz#9731dcf5678c7faeb44fb903c4f72df55187fa77"
2653
2654fs-exists-sync@^0.1.0:
2655 version "0.1.0"
2656 resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
2657
2658fs-extra-p@^4.3.0, fs-extra-p@^4.4.0:
2659 version "4.4.0"
2660 resolved "https://registry.yarnpkg.com/fs-extra-p/-/fs-extra-p-4.4.0.tgz#729c601c4f4c701328921adc7cfe9b236f100660"
2661 dependencies:
2662 bluebird-lst "^1.0.2"
2663 fs-extra "^4.0.0"
2664
2665fs-extra@0.26.7:
2666 version "0.26.7"
2667 resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.26.7.tgz#9ae1fdd94897798edab76d0918cf42d0c3184fa9"
2668 dependencies:
2669 graceful-fs "^4.1.2"
2670 jsonfile "^2.1.0"
2671 klaw "^1.0.0"
2672 path-is-absolute "^1.0.0"
2673 rimraf "^2.2.8"
2674
2675fs-extra@^0.30.0:
2676 version "0.30.0"
2677 resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0"
2678 dependencies:
2679 graceful-fs "^4.1.2"
2680 jsonfile "^2.1.0"
2681 klaw "^1.0.0"
2682 path-is-absolute "^1.0.0"
2683 rimraf "^2.2.8"
2684
2685fs-extra@^2.0.0:
2686 version "2.1.2"
2687 resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.1.2.tgz#046c70163cef9aad46b0e4a7fa467fb22d71de35"
2688 dependencies:
2689 graceful-fs "^4.1.2"
2690 jsonfile "^2.1.0"
2691
2692fs-extra@^3.0.0, fs-extra@^3.0.1:
2693 version "3.0.1"
2694 resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291"
2695 dependencies:
2696 graceful-fs "^4.1.2"
2697 jsonfile "^3.0.0"
2698 universalify "^0.1.0"
2699
2700fs-extra@^4.0.0:
2701 version "4.0.1"
2702 resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.1.tgz#7fc0c6c8957f983f57f306a24e5b9ddd8d0dd880"
2703 dependencies:
2704 graceful-fs "^4.1.2"
2705 jsonfile "^3.0.0"
2706 universalify "^0.1.0"
2707
2708fs.realpath@^1.0.0:
2709 version "1.0.0"
2710 resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
2711
2712fsevents@^1.0.0:
2713 version "1.1.2"
2714 resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4"
2715 dependencies:
2716 nan "^2.3.0"
2717 node-pre-gyp "^0.6.36"
2718
2719fstream-ignore@^1.0.5:
2720 version "1.0.5"
2721 resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105"
2722 dependencies:
2723 fstream "^1.0.0"
2724 inherits "2"
2725 minimatch "^3.0.0"
2726
2727fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
2728 version "1.0.11"
2729 resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
2730 dependencies:
2731 graceful-fs "^4.1.2"
2732 inherits "~2.0.0"
2733 mkdirp ">=0.5 0"
2734 rimraf "2"
2735
2736function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1:
2737 version "1.1.1"
2738 resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
2739
2740functional-red-black-tree@^1.0.1:
2741 version "1.0.1"
2742 resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
2743
2744gauge@~2.7.3:
2745 version "2.7.4"
2746 resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
2747 dependencies:
2748 aproba "^1.0.3"
2749 console-control-strings "^1.0.0"
2750 has-unicode "^2.0.0"
2751 object-assign "^4.1.0"
2752 signal-exit "^3.0.0"
2753 string-width "^1.0.1"
2754 strip-ansi "^3.0.1"
2755 wide-align "^1.1.0"
2756
2757gaze@^0.5.1:
2758 version "0.5.2"
2759 resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f"
2760 dependencies:
2761 globule "~0.1.0"
2762
2763gaze@^1.0.0:
2764 version "1.1.2"
2765 resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105"
2766 dependencies:
2767 globule "^1.0.0"
2768
2769generate-function@^2.0.0:
2770 version "2.0.0"
2771 resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
2772
2773generate-object-property@^1.1.0:
2774 version "1.2.0"
2775 resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
2776 dependencies:
2777 is-property "^1.0.0"
2778
2779get-caller-file@^1.0.1:
2780 version "1.0.2"
2781 resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
2782
2783get-package-info@^1.0.0:
2784 version "1.0.0"
2785 resolved "https://registry.yarnpkg.com/get-package-info/-/get-package-info-1.0.0.tgz#6432796563e28113cd9474dbbd00052985a4999c"
2786 dependencies:
2787 bluebird "^3.1.1"
2788 debug "^2.2.0"
2789 lodash.get "^4.0.0"
2790 read-pkg-up "^2.0.0"
2791
2792get-stdin@^4.0.1:
2793 version "4.0.1"
2794 resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
2795
2796get-stream@^3.0.0:
2797 version "3.0.0"
2798 resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
2799
2800getpass@^0.1.1:
2801 version "0.1.7"
2802 resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
2803 dependencies:
2804 assert-plus "^1.0.0"
2805
2806ghauth@^2.0.0:
2807 version "2.0.1"
2808 resolved "https://registry.yarnpkg.com/ghauth/-/ghauth-2.0.1.tgz#79b7d68b0bcf8e7d0852a23b147539dfd314acf6"
2809 dependencies:
2810 bl "~0.9.4"
2811 hyperquest "~1.2.0"
2812 mkdirp "~0.5.0"
2813 read "~1.0.5"
2814 xtend "~4.0.0"
2815
2816github-url-to-object@^1.4.2:
2817 version "1.6.0"
2818 resolved "https://registry.yarnpkg.com/github-url-to-object/-/github-url-to-object-1.6.0.tgz#891ef7fbbfaba8fed71510acdb1b4e9346a970dc"
2819 dependencies:
2820 is-url "^1.1.0"
2821
2822glob-base@^0.3.0:
2823 version "0.3.0"
2824 resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
2825 dependencies:
2826 glob-parent "^2.0.0"
2827 is-glob "^2.0.0"
2828
2829glob-parent@^2.0.0:
2830 version "2.0.0"
2831 resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
2832 dependencies:
2833 is-glob "^2.0.0"
2834
2835glob-parent@^3.0.0:
2836 version "3.1.0"
2837 resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
2838 dependencies:
2839 is-glob "^3.1.0"
2840 path-dirname "^1.0.0"
2841
2842glob-stream@^4.0.1:
2843 version "4.1.1"
2844 resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-4.1.1.tgz#b842df10d688c7eb6bcfcebd846f3852296b3200"
2845 dependencies:
2846 glob "^4.3.1"
2847 glob2base "^0.0.12"
2848 minimatch "^2.0.1"
2849 ordered-read-streams "^0.1.0"
2850 through2 "^0.6.1"
2851 unique-stream "^2.0.2"
2852
2853glob-stream@^5.3.2:
2854 version "5.3.5"
2855 resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22"
2856 dependencies:
2857 extend "^3.0.0"
2858 glob "^5.0.3"
2859 glob-parent "^3.0.0"
2860 micromatch "^2.3.7"
2861 ordered-read-streams "^0.3.0"
2862 through2 "^0.6.0"
2863 to-absolute-glob "^0.1.1"
2864 unique-stream "^2.0.2"
2865
2866glob-watcher@^0.0.8:
2867 version "0.0.8"
2868 resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.8.tgz#68aeb661e7e2ce8d3634381b2ec415f00c6bc2a4"
2869 dependencies:
2870 gaze "^0.5.1"
2871
2872glob-watcher@^3.0.0:
2873 version "3.2.0"
2874 resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-3.2.0.tgz#ffc1a2d3d07783b672f5e21799a4d0b3fed92daf"
2875 dependencies:
2876 async-done "^1.2.0"
2877 chokidar "^1.4.3"
2878 lodash.debounce "^4.0.6"
2879 object.defaults "^1.0.0"
2880
2881glob2base@^0.0.12:
2882 version "0.0.12"
2883 resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56"
2884 dependencies:
2885 find-index "^0.1.1"
2886
2887glob@^4.3.1:
2888 version "4.5.3"
2889 resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f"
2890 dependencies:
2891 inflight "^1.0.4"
2892 inherits "2"
2893 minimatch "^2.0.1"
2894 once "^1.3.0"
2895
2896glob@^5.0.10, glob@^5.0.3, glob@~5.0.0:
2897 version "5.0.15"
2898 resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
2899 dependencies:
2900 inflight "^1.0.4"
2901 inherits "2"
2902 minimatch "2 || 3"
2903 once "^1.3.0"
2904 path-is-absolute "^1.0.0"
2905
2906glob@^6.0.4:
2907 version "6.0.4"
2908 resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
2909 dependencies:
2910 inflight "^1.0.4"
2911 inherits "2"
2912 minimatch "2 || 3"
2913 once "^1.3.0"
2914 path-is-absolute "^1.0.0"
2915
2916glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@~7.1.1:
2917 version "7.1.2"
2918 resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
2919 dependencies:
2920 fs.realpath "^1.0.0"
2921 inflight "^1.0.4"
2922 inherits "2"
2923 minimatch "^3.0.4"
2924 once "^1.3.0"
2925 path-is-absolute "^1.0.0"
2926
2927glob@~3.1.21:
2928 version "3.1.21"
2929 resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd"
2930 dependencies:
2931 graceful-fs "~1.2.0"
2932 inherits "1"
2933 minimatch "~0.2.11"
2934
2935global-modules@^0.2.3:
2936 version "0.2.3"
2937 resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d"
2938 dependencies:
2939 global-prefix "^0.1.4"
2940 is-windows "^0.2.0"
2941
2942global-prefix@^0.1.4:
2943 version "0.1.5"
2944 resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f"
2945 dependencies:
2946 homedir-polyfill "^1.0.0"
2947 ini "^1.3.4"
2948 is-windows "^0.2.0"
2949 which "^1.2.12"
2950
2951globals@^9.17.0, globals@^9.18.0:
2952 version "9.18.0"
2953 resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
2954
2955globby@^5.0.0:
2956 version "5.0.0"
2957 resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
2958 dependencies:
2959 array-union "^1.0.1"
2960 arrify "^1.0.0"
2961 glob "^7.0.3"
2962 object-assign "^4.0.1"
2963 pify "^2.0.0"
2964 pinkie-promise "^2.0.0"
2965
2966globule@^1.0.0:
2967 version "1.2.0"
2968 resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09"
2969 dependencies:
2970 glob "~7.1.1"
2971 lodash "~4.17.4"
2972 minimatch "~3.0.2"
2973
2974globule@~0.1.0:
2975 version "0.1.0"
2976 resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5"
2977 dependencies:
2978 glob "~3.1.21"
2979 lodash "~1.0.1"
2980 minimatch "~0.2.11"
2981
2982glogg@^1.0.0:
2983 version "1.0.0"
2984 resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5"
2985 dependencies:
2986 sparkles "^1.0.0"
2987
2988got@^6.7.1:
2989 version "6.7.1"
2990 resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0"
2991 dependencies:
2992 create-error-class "^3.0.0"
2993 duplexer3 "^0.1.4"
2994 get-stream "^3.0.0"
2995 is-redirect "^1.0.0"
2996 is-retry-allowed "^1.0.0"
2997 is-stream "^1.0.0"
2998 lowercase-keys "^1.0.0"
2999 safe-buffer "^5.0.1"
3000 timed-out "^4.0.0"
3001 unzip-response "^2.0.1"
3002 url-parse-lax "^1.0.0"
3003
3004graceful-fs@^3.0.0:
3005 version "3.0.11"
3006 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818"
3007 dependencies:
3008 natives "^1.1.0"
3009
3010graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
3011 version "4.1.11"
3012 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
3013
3014graceful-fs@~1.2.0:
3015 version "1.2.3"
3016 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364"
3017
3018gulp-babel@^6.1.2:
3019 version "6.1.2"
3020 resolved "https://registry.yarnpkg.com/gulp-babel/-/gulp-babel-6.1.2.tgz#7c0176e4ba3f244c60588a0c4b320a45d1adefce"
3021 dependencies:
3022 babel-core "^6.0.2"
3023 gulp-util "^3.0.0"
3024 object-assign "^4.0.1"
3025 replace-ext "0.0.1"
3026 through2 "^2.0.0"
3027 vinyl-sourcemaps-apply "^0.2.0"
3028
3029gulp-cli@1.2.2:
3030 version "1.2.2"
3031 resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-1.2.2.tgz#7392def6316c6e7939a4f296f3f540151ae3a275"
3032 dependencies:
3033 archy "^1.0.0"
3034 chalk "^1.1.0"
3035 fancy-log "^1.1.0"
3036 gulplog "^1.0.0"
3037 interpret "^1.0.0"
3038 liftoff "^2.1.0"
3039 lodash.isfunction "^3.0.8"
3040 lodash.isplainobject "^4.0.4"
3041 lodash.isstring "^4.0.1"
3042 lodash.sortby "^4.5.0"
3043 matchdep "^1.0.0"
3044 mute-stdout "^1.0.0"
3045 pretty-hrtime "^1.0.0"
3046 semver-greatest-satisfied-range "^1.0.0"
3047 tildify "^1.0.0"
3048 v8flags "^2.0.9"
3049 wreck "^6.3.0"
3050 yargs "^3.28.0"
3051
3052gulp-cli@^1.0.0:
3053 version "1.4.0"
3054 resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-1.4.0.tgz#6f5bbe2cd0bdb4849d12cf9e1246a5861f8b4f88"
3055 dependencies:
3056 archy "^1.0.0"
3057 chalk "^1.1.0"
3058 copy-props "^1.4.1"
3059 fancy-log "^1.1.0"
3060 gulplog "^1.0.0"
3061 interpret "^1.0.0"
3062 liftoff "^2.3.0"
3063 lodash.isfunction "^3.0.8"
3064 lodash.isplainobject "^4.0.4"
3065 lodash.sortby "^4.5.0"
3066 matchdep "^1.0.0"
3067 mute-stdout "^1.0.0"
3068 pretty-hrtime "^1.0.0"
3069 semver-greatest-satisfied-range "^1.0.0"
3070 tildify "^1.0.0"
3071 v8flags "^2.0.9"
3072 wreck "^6.3.0"
3073 yargs "^3.28.0"
3074
3075gulp-github-release@^1.2.1:
3076 version "1.2.1"
3077 resolved "https://registry.yarnpkg.com/gulp-github-release/-/gulp-github-release-1.2.1.tgz#e08217880fdd41d8a3a230d217f50d8ff21f47cf"
3078 dependencies:
3079 gulp-util "^3.0.7"
3080 publish-release "^1.3.2"
3081 through2 "^2.0.1"
3082
3083gulp-sass-variables@^1.1.1:
3084 version "1.1.1"
3085 resolved "https://registry.yarnpkg.com/gulp-sass-variables/-/gulp-sass-variables-1.1.1.tgz#95921590f8a1b84a687ebcb3ecbc30a74bcef44d"
3086 dependencies:
3087 gulp-util "^3.0.7"
3088 through2 "^2.0.1"
3089
3090gulp-sass@^3.1.0:
3091 version "3.1.0"
3092 resolved "https://registry.yarnpkg.com/gulp-sass/-/gulp-sass-3.1.0.tgz#53dc4b68a1f5ddfe4424ab4c247655269a8b74b7"
3093 dependencies:
3094 gulp-util "^3.0"
3095 lodash.clonedeep "^4.3.2"
3096 node-sass "^4.2.0"
3097 through2 "^2.0.0"
3098 vinyl-sourcemaps-apply "^0.2.0"
3099
3100gulp-server-livereload@^1.9.2:
3101 version "1.9.2"
3102 resolved "https://registry.yarnpkg.com/gulp-server-livereload/-/gulp-server-livereload-1.9.2.tgz#3db227f3463cfe4f29bf65a013baa162e2a740c6"
3103 dependencies:
3104 commander "^2.8.1"
3105 connect "~3.1.1"
3106 connect-inject "~0.3.2"
3107 glogg "^1.0.0"
3108 gulp-util "^3.0.7"
3109 gulplog "^1.0.0"
3110 lodash "^4.0.0"
3111 node-watch "^0.3.4"
3112 node.extend "~1.0.10"
3113 open "~0.0.5"
3114 proxy-middleware "~0.15.0"
3115 serve-index "~1.1.4"
3116 serve-static "~1.5.2"
3117 socket.io "^1.4.4"
3118 through2 "~0.5.1"
3119 vinyl-fs "^1.0.0"
3120
3121gulp-sourcemaps@1.6.0:
3122 version "1.6.0"
3123 resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz#b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c"
3124 dependencies:
3125 convert-source-map "^1.1.1"
3126 graceful-fs "^4.1.2"
3127 strip-bom "^2.0.0"
3128 through2 "^2.0.0"
3129 vinyl "^1.0.0"
3130
3131gulp-util@^3.0, gulp-util@^3.0.0, gulp-util@^3.0.7:
3132 version "3.0.8"
3133 resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f"
3134 dependencies:
3135 array-differ "^1.0.0"
3136 array-uniq "^1.0.2"
3137 beeper "^1.0.0"
3138 chalk "^1.0.0"
3139 dateformat "^2.0.0"
3140 fancy-log "^1.1.0"
3141 gulplog "^1.0.0"
3142 has-gulplog "^0.1.0"
3143 lodash._reescape "^3.0.0"
3144 lodash._reevaluate "^3.0.0"
3145 lodash._reinterpolate "^3.0.0"
3146 lodash.template "^3.0.0"
3147 minimist "^1.1.0"
3148 multipipe "^0.1.2"
3149 object-assign "^3.0.0"
3150 replace-ext "0.0.1"
3151 through2 "^2.0.0"
3152 vinyl "^0.5.0"
3153
3154gulp@gulpjs/gulp#4.0:
3155 version "4.0.0-alpha.2"
3156 resolved "https://codeload.github.com/gulpjs/gulp/tar.gz/6d71a658c61edb3090221579d8f97dbe086ba2ed"
3157 dependencies:
3158 glob-watcher "^3.0.0"
3159 gulp-cli "^1.0.0"
3160 undertaker "^1.0.0"
3161 vinyl-fs "^2.0.0"
3162
3163gulplog@^1.0.0:
3164 version "1.0.0"
3165 resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5"
3166 dependencies:
3167 glogg "^1.0.0"
3168
3169har-schema@^1.0.5:
3170 version "1.0.5"
3171 resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
3172
3173har-validator@~2.0.6:
3174 version "2.0.6"
3175 resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
3176 dependencies:
3177 chalk "^1.1.1"
3178 commander "^2.9.0"
3179 is-my-json-valid "^2.12.4"
3180 pinkie-promise "^2.0.0"
3181
3182har-validator@~4.2.1:
3183 version "4.2.1"
3184 resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
3185 dependencies:
3186 ajv "^4.9.1"
3187 har-schema "^1.0.5"
3188
3189has-ansi@^2.0.0:
3190 version "2.0.0"
3191 resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
3192 dependencies:
3193 ansi-regex "^2.0.0"
3194
3195has-binary@0.1.7:
3196 version "0.1.7"
3197 resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c"
3198 dependencies:
3199 isarray "0.0.1"
3200
3201has-cors@1.1.0:
3202 version "1.1.0"
3203 resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39"
3204
3205has-flag@^2.0.0:
3206 version "2.0.0"
3207 resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
3208
3209has-gulplog@^0.1.0:
3210 version "0.1.0"
3211 resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce"
3212 dependencies:
3213 sparkles "^1.0.0"
3214
3215has-unicode@^2.0.0:
3216 version "2.0.1"
3217 resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
3218
3219has@^1.0.1:
3220 version "1.0.1"
3221 resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
3222 dependencies:
3223 function-bind "^1.0.2"
3224
3225hashids@^1.1.1:
3226 version "1.1.1"
3227 resolved "https://registry.yarnpkg.com/hashids/-/hashids-1.1.1.tgz#3c36fcc5b3ba1a96a8fa67a632eb7877c41c6d3e"
3228
3229hawk@~3.1.3:
3230 version "3.1.3"
3231 resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
3232 dependencies:
3233 boom "2.x.x"
3234 cryptiles "2.x.x"
3235 hoek "2.x.x"
3236 sntp "1.x.x"
3237
3238history@^3.0.0:
3239 version "3.3.0"
3240 resolved "https://registry.yarnpkg.com/history/-/history-3.3.0.tgz#fcedcce8f12975371545d735461033579a6dae9c"
3241 dependencies:
3242 invariant "^2.2.1"
3243 loose-envify "^1.2.0"
3244 query-string "^4.2.2"
3245 warning "^3.0.0"
3246
3247hoek@2.x.x:
3248 version "2.16.3"
3249 resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
3250
3251hoist-non-react-statics@^1.2.0:
3252 version "1.2.0"
3253 resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb"
3254
3255home-or-tmp@^2.0.0:
3256 version "2.0.0"
3257 resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
3258 dependencies:
3259 os-homedir "^1.0.0"
3260 os-tmpdir "^1.0.1"
3261
3262home-path@^1.0.1:
3263 version "1.0.5"
3264 resolved "https://registry.yarnpkg.com/home-path/-/home-path-1.0.5.tgz#788b29815b12d53bacf575648476e6f9041d133f"
3265
3266homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1:
3267 version "1.0.1"
3268 resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc"
3269 dependencies:
3270 parse-passwd "^1.0.0"
3271
3272hosted-git-info@^2.1.4, hosted-git-info@^2.5.0:
3273 version "2.5.0"
3274 resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
3275
3276http-signature@~1.1.0:
3277 version "1.1.1"
3278 resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
3279 dependencies:
3280 assert-plus "^0.2.0"
3281 jsprim "^1.2.2"
3282 sshpk "^1.7.0"
3283
3284hyperquest@~1.2.0:
3285 version "1.2.0"
3286 resolved "https://registry.yarnpkg.com/hyperquest/-/hyperquest-1.2.0.tgz#39e1fef66888dc7ce0dec6c0dd814f6fc8944ad5"
3287 dependencies:
3288 duplexer2 "~0.0.2"
3289 through2 "~0.6.3"
3290
3291iconv-lite@^0.4.17, iconv-lite@~0.4.13:
3292 version "0.4.18"
3293 resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2"
3294
3295ignore@^3.3.3:
3296 version "3.3.5"
3297 resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.5.tgz#c4e715455f6073a8d7e5dae72d2fc9d71663dba6"
3298
3299import-lazy@^2.1.0:
3300 version "2.1.0"
3301 resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
3302
3303imurmurhash@^0.1.4:
3304 version "0.1.4"
3305 resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
3306
3307in-publish@^2.0.0:
3308 version "2.0.0"
3309 resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51"
3310
3311indent-string@^2.1.0:
3312 version "2.1.0"
3313 resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
3314 dependencies:
3315 repeating "^2.0.0"
3316
3317indexof@0.0.1:
3318 version "0.0.1"
3319 resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
3320
3321inflight@^1.0.4:
3322 version "1.0.6"
3323 resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
3324 dependencies:
3325 once "^1.3.0"
3326 wrappy "1"
3327
3328inherits@1:
3329 version "1.0.2"
3330 resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b"
3331
3332inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
3333 version "2.0.3"
3334 resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
3335
3336ini@^1.3.4, ini@~1.3.0:
3337 version "1.3.4"
3338 resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
3339
3340inquirer@^0.8.2:
3341 version "0.8.5"
3342 resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.8.5.tgz#dbd740cf6ca3b731296a63ce6f6d961851f336df"
3343 dependencies:
3344 ansi-regex "^1.1.1"
3345 chalk "^1.0.0"
3346 cli-width "^1.0.1"
3347 figures "^1.3.5"
3348 lodash "^3.3.1"
3349 readline2 "^0.1.1"
3350 rx "^2.4.3"
3351 through "^2.3.6"
3352
3353inquirer@^3.0.6:
3354 version "3.3.0"
3355 resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
3356 dependencies:
3357 ansi-escapes "^3.0.0"
3358 chalk "^2.0.0"
3359 cli-cursor "^2.1.0"
3360 cli-width "^2.0.0"
3361 external-editor "^2.0.4"
3362 figures "^2.0.0"
3363 lodash "^4.3.0"
3364 mute-stream "0.0.7"
3365 run-async "^2.2.0"
3366 rx-lite "^4.0.8"
3367 rx-lite-aggregates "^4.0.8"
3368 string-width "^2.1.0"
3369 strip-ansi "^4.0.0"
3370 through "^2.3.6"
3371
3372interpret@^1.0.0:
3373 version "1.0.3"
3374 resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90"
3375
3376intl-format-cache@^2.0.5:
3377 version "2.0.5"
3378 resolved "https://registry.yarnpkg.com/intl-format-cache/-/intl-format-cache-2.0.5.tgz#b484cefcb9353f374f25de389a3ceea1af18d7c9"
3379
3380intl-messageformat-parser@1.2.0:
3381 version "1.2.0"
3382 resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-1.2.0.tgz#5906b7f953ab7470e0dc8549097b648b991892ff"
3383
3384intl-messageformat@1.3.0, intl-messageformat@^1.3.0:
3385 version "1.3.0"
3386 resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-1.3.0.tgz#f7d926aded7a3ab19b2dc601efd54e99a4bd4eae"
3387 dependencies:
3388 intl-messageformat-parser "1.2.0"
3389
3390intl-relativeformat@^1.3.0:
3391 version "1.3.0"
3392 resolved "https://registry.yarnpkg.com/intl-relativeformat/-/intl-relativeformat-1.3.0.tgz#893dc7076fccd380cf091a2300c380fa57ace45b"
3393 dependencies:
3394 intl-messageformat "1.3.0"
3395
3396invariant@^2.1.1, invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2:
3397 version "2.2.2"
3398 resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
3399 dependencies:
3400 loose-envify "^1.0.0"
3401
3402invert-kv@^1.0.0:
3403 version "1.0.0"
3404 resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
3405
3406is-absolute@^0.2.3:
3407 version "0.2.6"
3408 resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb"
3409 dependencies:
3410 is-relative "^0.2.1"
3411 is-windows "^0.2.0"
3412
3413is-arrayish@^0.2.1:
3414 version "0.2.1"
3415 resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
3416
3417is-binary-path@^1.0.0:
3418 version "1.0.1"
3419 resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
3420 dependencies:
3421 binary-extensions "^1.0.0"
3422
3423is-buffer@^1.1.5:
3424 version "1.1.5"
3425 resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
3426
3427is-builtin-module@^1.0.0:
3428 version "1.0.0"
3429 resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
3430 dependencies:
3431 builtin-modules "^1.0.0"
3432
3433is-callable@^1.1.1, is-callable@^1.1.3:
3434 version "1.1.3"
3435 resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"
3436
3437is-ci@^1.0.10:
3438 version "1.0.10"
3439 resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e"
3440 dependencies:
3441 ci-info "^1.0.0"
3442
3443is-date-object@^1.0.1:
3444 version "1.0.1"
3445 resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
3446
3447is-dotfile@^1.0.0:
3448 version "1.0.3"
3449 resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
3450
3451is-equal-shallow@^0.1.3:
3452 version "0.1.3"
3453 resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
3454 dependencies:
3455 is-primitive "^2.0.0"
3456
3457is-extendable@^0.1.0, is-extendable@^0.1.1:
3458 version "0.1.1"
3459 resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
3460
3461is-extglob@^1.0.0:
3462 version "1.0.0"
3463 resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
3464
3465is-extglob@^2.1.0:
3466 version "2.1.1"
3467 resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
3468
3469is-finite@^1.0.0:
3470 version "1.0.2"
3471 resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
3472 dependencies:
3473 number-is-nan "^1.0.0"
3474
3475is-fullwidth-code-point@^1.0.0:
3476 version "1.0.0"
3477 resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
3478 dependencies:
3479 number-is-nan "^1.0.0"
3480
3481is-fullwidth-code-point@^2.0.0:
3482 version "2.0.0"
3483 resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
3484
3485is-glob@^2.0.0, is-glob@^2.0.1:
3486 version "2.0.1"
3487 resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
3488 dependencies:
3489 is-extglob "^1.0.0"
3490
3491is-glob@^3.1.0:
3492 version "3.1.0"
3493 resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
3494 dependencies:
3495 is-extglob "^2.1.0"
3496
3497is-my-json-valid@^2.12.4:
3498 version "2.17.1"
3499 resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz#3da98914a70a22f0a8563ef1511a246c6fc55471"
3500 dependencies:
3501 generate-function "^2.0.0"
3502 generate-object-property "^1.1.0"
3503 jsonpointer "^4.0.0"
3504 xtend "^4.0.0"
3505
3506is-npm@^1.0.0:
3507 version "1.0.0"
3508 resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4"
3509
3510is-number@^2.1.0:
3511 version "2.1.0"
3512 resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
3513 dependencies:
3514 kind-of "^3.0.2"
3515
3516is-number@^3.0.0:
3517 version "3.0.0"
3518 resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
3519 dependencies:
3520 kind-of "^3.0.2"
3521
3522is-obj@^1.0.0:
3523 version "1.0.1"
3524 resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
3525
3526is-path-cwd@^1.0.0:
3527 version "1.0.0"
3528 resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
3529
3530is-path-in-cwd@^1.0.0:
3531 version "1.0.0"
3532 resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc"
3533 dependencies:
3534 is-path-inside "^1.0.0"
3535
3536is-path-inside@^1.0.0:
3537 version "1.0.0"
3538 resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f"
3539 dependencies:
3540 path-is-inside "^1.0.1"
3541
3542is-plain-obj@^1.0.0:
3543 version "1.1.0"
3544 resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
3545
3546is-plain-object@^2.0.1, is-plain-object@^2.0.3:
3547 version "2.0.4"
3548 resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
3549 dependencies:
3550 isobject "^3.0.1"
3551
3552is-posix-bracket@^0.1.0:
3553 version "0.1.1"
3554 resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
3555
3556is-primitive@^2.0.0:
3557 version "2.0.0"
3558 resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
3559
3560is-promise@^2.1.0:
3561 version "2.1.0"
3562 resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
3563
3564is-property@^1.0.0:
3565 version "1.0.2"
3566 resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
3567
3568is-redirect@^1.0.0:
3569 version "1.0.0"
3570 resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
3571
3572is-regex@^1.0.4:
3573 version "1.0.4"
3574 resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
3575 dependencies:
3576 has "^1.0.1"
3577
3578is-relative@^0.2.1:
3579 version "0.2.1"
3580 resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.2.1.tgz#d27f4c7d516d175fb610db84bbeef23c3bc97aa5"
3581 dependencies:
3582 is-unc-path "^0.1.1"
3583
3584is-resolvable@^1.0.0:
3585 version "1.0.0"
3586 resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62"
3587 dependencies:
3588 tryit "^1.0.1"
3589
3590is-retry-allowed@^1.0.0:
3591 version "1.1.0"
3592 resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
3593
3594is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0:
3595 version "1.1.0"
3596 resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
3597
3598is-symbol@^1.0.1:
3599 version "1.0.1"
3600 resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
3601
3602is-typedarray@~1.0.0:
3603 version "1.0.0"
3604 resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
3605
3606is-unc-path@^0.1.1:
3607 version "0.1.2"
3608 resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-0.1.2.tgz#6ab053a72573c10250ff416a3814c35178af39b9"
3609 dependencies:
3610 unc-path-regex "^0.1.0"
3611
3612is-url@^1.1.0:
3613 version "1.2.2"
3614 resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.2.tgz#498905a593bf47cc2d9e7f738372bbf7696c7f26"
3615
3616is-utf8@^0.2.0:
3617 version "0.2.1"
3618 resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
3619
3620is-valid-glob@^0.3.0:
3621 version "0.3.0"
3622 resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe"
3623
3624is-windows@^0.2.0:
3625 version "0.2.0"
3626 resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c"
3627
3628is-windows@^1.0.0:
3629 version "1.0.1"
3630 resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.1.tgz#310db70f742d259a16a369202b51af84233310d9"
3631
3632is@~0.3.0:
3633 version "0.3.0"
3634 resolved "https://registry.yarnpkg.com/is/-/is-0.3.0.tgz#a8f71dfc8a6e28371627f26c929098c6f4d5d5d7"
3635
3636isarray@0.0.1:
3637 version "0.0.1"
3638 resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
3639
3640isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
3641 version "1.0.0"
3642 resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
3643
3644isbinaryfile@^3.0.2:
3645 version "3.0.2"
3646 resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621"
3647
3648isemail@1.x.x:
3649 version "1.2.0"
3650 resolved "https://registry.yarnpkg.com/isemail/-/isemail-1.2.0.tgz#be03df8cc3e29de4d2c5df6501263f1fa4595e9a"
3651
3652isexe@^2.0.0:
3653 version "2.0.0"
3654 resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
3655
3656isobject@^2.0.0:
3657 version "2.1.0"
3658 resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
3659 dependencies:
3660 isarray "1.0.0"
3661
3662isobject@^3.0.0, isobject@^3.0.1:
3663 version "3.0.1"
3664 resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
3665
3666isomorphic-fetch@^2.1.1:
3667 version "2.2.1"
3668 resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
3669 dependencies:
3670 node-fetch "^1.0.1"
3671 whatwg-fetch ">=0.10.0"
3672
3673isstream@~0.1.2:
3674 version "0.1.2"
3675 resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
3676
3677joi@^6.10.1:
3678 version "6.10.1"
3679 resolved "https://registry.yarnpkg.com/joi/-/joi-6.10.1.tgz#4d50c318079122000fe5f16af1ff8e1917b77e06"
3680 dependencies:
3681 hoek "2.x.x"
3682 isemail "1.x.x"
3683 moment "2.x.x"
3684 topo "1.x.x"
3685
3686js-base64@^2.1.8:
3687 version "2.1.9"
3688 resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce"
3689
3690js-tokens@^3.0.0, js-tokens@^3.0.2:
3691 version "3.0.2"
3692 resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
3693
3694js-yaml@^3.9.0, js-yaml@^3.9.1:
3695 version "3.9.1"
3696 resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.9.1.tgz#08775cebdfdd359209f0d2acd383c8f86a6904a0"
3697 dependencies:
3698 argparse "^1.0.7"
3699 esprima "^4.0.0"
3700
3701jsbn@~0.1.0:
3702 version "0.1.1"
3703 resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
3704
3705jschardet@^1.4.2:
3706 version "1.5.1"
3707 resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.5.1.tgz#c519f629f86b3a5bedba58a88d311309eec097f9"
3708
3709jsesc@^1.3.0:
3710 version "1.3.0"
3711 resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
3712
3713jsesc@~0.5.0:
3714 version "0.5.0"
3715 resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
3716
3717jshashes@^1.0.6:
3718 version "1.0.7"
3719 resolved "https://registry.yarnpkg.com/jshashes/-/jshashes-1.0.7.tgz#bed8c97a0e9632fd0513916f55f76dd5486be59f"
3720
3721json-schema-traverse@^0.3.0:
3722 version "0.3.1"
3723 resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
3724
3725json-schema@0.2.3:
3726 version "0.2.3"
3727 resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
3728
3729json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1:
3730 version "1.0.1"
3731 resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
3732 dependencies:
3733 jsonify "~0.0.0"
3734
3735json-stringify-safe@~5.0.1:
3736 version "5.0.1"
3737 resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
3738
3739json3@3.3.2:
3740 version "3.3.2"
3741 resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
3742
3743json5@^0.5.0, json5@^0.5.1:
3744 version "0.5.1"
3745 resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
3746
3747jsonfile@^2.1.0, jsonfile@^2.2.3:
3748 version "2.4.0"
3749 resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
3750 optionalDependencies:
3751 graceful-fs "^4.1.6"
3752
3753jsonfile@^3.0.0:
3754 version "3.0.1"
3755 resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66"
3756 optionalDependencies:
3757 graceful-fs "^4.1.6"
3758
3759jsonify@~0.0.0:
3760 version "0.0.0"
3761 resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
3762
3763jsonpointer@^4.0.0:
3764 version "4.0.1"
3765 resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
3766
3767jsonwebtoken@^7.4.1:
3768 version "7.4.3"
3769 resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-7.4.3.tgz#77f5021de058b605a1783fa1283e99812e645638"
3770 dependencies:
3771 joi "^6.10.1"
3772 jws "^3.1.4"
3773 lodash.once "^4.0.0"
3774 ms "^2.0.0"
3775 xtend "^4.0.1"
3776
3777jsprim@^1.2.2:
3778 version "1.4.1"
3779 resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
3780 dependencies:
3781 assert-plus "1.0.0"
3782 extsprintf "1.3.0"
3783 json-schema "0.2.3"
3784 verror "1.10.0"
3785
3786jsx-ast-utils@^1.0.0, jsx-ast-utils@^1.3.4:
3787 version "1.4.1"
3788 resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1"
3789
3790jwa@^1.1.4:
3791 version "1.1.5"
3792 resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.1.5.tgz#a0552ce0220742cd52e153774a32905c30e756e5"
3793 dependencies:
3794 base64url "2.0.0"
3795 buffer-equal-constant-time "1.0.1"
3796 ecdsa-sig-formatter "1.0.9"
3797 safe-buffer "^5.0.1"
3798
3799jws@^3.1.4:
3800 version "3.1.4"
3801 resolved "https://registry.yarnpkg.com/jws/-/jws-3.1.4.tgz#f9e8b9338e8a847277d6444b1464f61880e050a2"
3802 dependencies:
3803 base64url "^2.0.0"
3804 jwa "^1.1.4"
3805 safe-buffer "^5.0.1"
3806
3807keyboard-layout@^2.0.7:
3808 version "2.0.13"
3809 resolved "https://registry.yarnpkg.com/keyboard-layout/-/keyboard-layout-2.0.13.tgz#5b4f5c25835e5d221a7b9da897663100d897487d"
3810 dependencies:
3811 event-kit "^2.0.0"
3812 nan "^2.0.0"
3813
3814keymaster@^1.6.2:
3815 version "1.6.2"
3816 resolved "https://registry.yarnpkg.com/keymaster/-/keymaster-1.6.2.tgz#e1ae54d0ea9488f9f60b66b668f02e9a1946c6eb"
3817
3818kind-of@^3.0.2, kind-of@^3.1.0:
3819 version "3.2.2"
3820 resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
3821 dependencies:
3822 is-buffer "^1.1.5"
3823
3824kind-of@^4.0.0:
3825 version "4.0.0"
3826 resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
3827 dependencies:
3828 is-buffer "^1.1.5"
3829
3830klaw@^1.0.0:
3831 version "1.3.1"
3832 resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
3833 optionalDependencies:
3834 graceful-fs "^4.1.9"
3835
3836last-run@^1.1.0:
3837 version "1.1.1"
3838 resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b"
3839 dependencies:
3840 default-resolution "^2.0.0"
3841 es6-weak-map "^2.0.1"
3842
3843latest-version@^3.0.0:
3844 version "3.1.0"
3845 resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15"
3846 dependencies:
3847 package-json "^4.0.0"
3848
3849lazy-val@^1.0.2:
3850 version "1.0.2"
3851 resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.2.tgz#d9b07fb1fce54cbc99b3c611de431b83249369b6"
3852
3853lazystream@^1.0.0:
3854 version "1.0.0"
3855 resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4"
3856 dependencies:
3857 readable-stream "^2.0.5"
3858
3859lcid@^1.0.0:
3860 version "1.0.0"
3861 resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
3862 dependencies:
3863 invert-kv "^1.0.0"
3864
3865levn@^0.3.0, levn@~0.3.0:
3866 version "0.3.0"
3867 resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
3868 dependencies:
3869 prelude-ls "~1.1.2"
3870 type-check "~0.3.2"
3871
3872liftoff@^2.1.0, liftoff@^2.3.0:
3873 version "2.3.0"
3874 resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.3.0.tgz#a98f2ff67183d8ba7cfaca10548bd7ff0550b385"
3875 dependencies:
3876 extend "^3.0.0"
3877 findup-sync "^0.4.2"
3878 fined "^1.0.1"
3879 flagged-respawn "^0.3.2"
3880 lodash.isplainobject "^4.0.4"
3881 lodash.isstring "^4.0.1"
3882 lodash.mapvalues "^4.4.0"
3883 rechoir "^0.6.2"
3884 resolve "^1.1.7"
3885
3886load-json-file@^1.0.0:
3887 version "1.1.0"
3888 resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
3889 dependencies:
3890 graceful-fs "^4.1.2"
3891 parse-json "^2.2.0"
3892 pify "^2.0.0"
3893 pinkie-promise "^2.0.0"
3894 strip-bom "^2.0.0"
3895
3896load-json-file@^2.0.0:
3897 version "2.0.0"
3898 resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
3899 dependencies:
3900 graceful-fs "^4.1.2"
3901 parse-json "^2.2.0"
3902 pify "^2.0.0"
3903 strip-bom "^3.0.0"
3904
3905loader-fs-cache@^1.0.0:
3906 version "1.0.1"
3907 resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz#56e0bf08bd9708b26a765b68509840c8dec9fdbc"
3908 dependencies:
3909 find-cache-dir "^0.1.1"
3910 mkdirp "0.5.1"
3911
3912loader-utils@^1.0.2:
3913 version "1.1.0"
3914 resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd"
3915 dependencies:
3916 big.js "^3.1.3"
3917 emojis-list "^2.0.0"
3918 json5 "^0.5.0"
3919
3920locate-path@^2.0.0:
3921 version "2.0.0"
3922 resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
3923 dependencies:
3924 p-locate "^2.0.0"
3925 path-exists "^3.0.0"
3926
3927lodash._basecopy@^3.0.0:
3928 version "3.0.1"
3929 resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
3930
3931lodash._basetostring@^3.0.0:
3932 version "3.0.1"
3933 resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5"
3934
3935lodash._basevalues@^3.0.0:
3936 version "3.0.0"
3937 resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7"
3938
3939lodash._getnative@^3.0.0:
3940 version "3.9.1"
3941 resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
3942
3943lodash._isiterateecall@^3.0.0:
3944 version "3.0.9"
3945 resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
3946
3947lodash._reescape@^3.0.0:
3948 version "3.0.0"
3949 resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a"
3950
3951lodash._reevaluate@^3.0.0:
3952 version "3.0.0"
3953 resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed"
3954
3955lodash._reinterpolate@^3.0.0:
3956 version "3.0.0"
3957 resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
3958
3959lodash._root@^3.0.0:
3960 version "3.0.1"
3961 resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692"
3962
3963lodash.assign@^4.2.0:
3964 version "4.2.0"
3965 resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
3966
3967lodash.camelcase@^4.3.0:
3968 version "4.3.0"
3969 resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
3970
3971lodash.clonedeep@^4.3.2:
3972 version "4.5.0"
3973 resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
3974
3975lodash.cond@^4.3.0:
3976 version "4.5.2"
3977 resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5"
3978
3979lodash.debounce@^4.0.6:
3980 version "4.0.8"
3981 resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
3982
3983lodash.escape@^3.0.0:
3984 version "3.2.0"
3985 resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698"
3986 dependencies:
3987 lodash._root "^3.0.0"
3988
3989lodash.get@^4.0.0, lodash.get@^4.4.2:
3990 version "4.4.2"
3991 resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
3992
3993lodash.isarguments@^3.0.0:
3994 version "3.1.0"
3995 resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
3996
3997lodash.isarray@^3.0.0:
3998 version "3.0.4"
3999 resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
4000
4001lodash.isequal@^4.0.0, lodash.isequal@^4.5.0:
4002 version "4.5.0"
4003 resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
4004
4005lodash.isfunction@^3.0.8:
4006 version "3.0.8"
4007 resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.8.tgz#4db709fc81bc4a8fd7127a458a5346c5cdce2c6b"
4008
4009lodash.isplainobject@^4.0.4:
4010 version "4.0.6"
4011 resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
4012
4013lodash.isstring@^4.0.1:
4014 version "4.0.1"
4015 resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
4016
4017lodash.keys@^3.0.0:
4018 version "3.1.2"
4019 resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
4020 dependencies:
4021 lodash._getnative "^3.0.0"
4022 lodash.isarguments "^3.0.0"
4023 lodash.isarray "^3.0.0"
4024
4025lodash.map@^4.5.1:
4026 version "4.6.0"
4027 resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3"
4028
4029lodash.mapvalues@^4.4.0:
4030 version "4.6.0"
4031 resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c"
4032
4033lodash.mergewith@^4.6.0:
4034 version "4.6.0"
4035 resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55"
4036
4037lodash.once@^4.0.0:
4038 version "4.1.1"
4039 resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
4040
4041lodash.restparam@^3.0.0:
4042 version "3.6.1"
4043 resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
4044
4045lodash.sortby@^4.5.0:
4046 version "4.7.0"
4047 resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
4048
4049lodash.template@^3.0.0:
4050 version "3.6.2"
4051 resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f"
4052 dependencies:
4053 lodash._basecopy "^3.0.0"
4054 lodash._basetostring "^3.0.0"
4055 lodash._basevalues "^3.0.0"
4056 lodash._isiterateecall "^3.0.0"
4057 lodash._reinterpolate "^3.0.0"
4058 lodash.escape "^3.0.0"
4059 lodash.keys "^3.0.0"
4060 lodash.restparam "^3.0.0"
4061 lodash.templatesettings "^3.0.0"
4062
4063lodash.templatesettings@^3.0.0:
4064 version "3.1.1"
4065 resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5"
4066 dependencies:
4067 lodash._reinterpolate "^3.0.0"
4068 lodash.escape "^3.0.0"
4069
4070lodash.toarray@^4.4.0:
4071 version "4.4.0"
4072 resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561"
4073
4074lodash@^3.3.1, lodash@^3.6.0:
4075 version "3.10.1"
4076 resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
4077
4078lodash@^4.0.0, lodash@^4.12.0, lodash@^4.16.2, lodash@^4.17.4, lodash@^4.3.0, lodash@~4.17.4:
4079 version "4.17.4"
4080 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
4081
4082lodash@~1.0.1:
4083 version "1.0.2"
4084 resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551"
4085
4086log-symbols@^1.0.2:
4087 version "1.0.2"
4088 resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
4089 dependencies:
4090 chalk "^1.0.0"
4091
4092longest@^1.0.1:
4093 version "1.0.1"
4094 resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
4095
4096loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.0, loose-envify@^1.3.1:
4097 version "1.3.1"
4098 resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
4099 dependencies:
4100 js-tokens "^3.0.0"
4101
4102loud-rejection@^1.0.0:
4103 version "1.6.0"
4104 resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
4105 dependencies:
4106 currently-unhandled "^0.4.1"
4107 signal-exit "^3.0.0"
4108
4109lowercase-keys@^1.0.0:
4110 version "1.0.0"
4111 resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306"
4112
4113lru-cache@2:
4114 version "2.7.3"
4115 resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952"
4116
4117lru-cache@^4.0.1, lru-cache@^4.0.2:
4118 version "4.1.1"
4119 resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55"
4120 dependencies:
4121 pseudomap "^1.0.2"
4122 yallist "^2.1.2"
4123
4124macaddress@^0.2.7:
4125 version "0.2.8"
4126 resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12"
4127
4128macos-notification-state@^1.1.0:
4129 version "1.1.0"
4130 resolved "https://registry.yarnpkg.com/macos-notification-state/-/macos-notification-state-1.1.0.tgz#ee59671e05c1ec388c0b09101ef611c85b4b4e0e"
4131 dependencies:
4132 bindings "^1.2.1"
4133 nan "^2.4.0"
4134
4135make-dir@^1.0.0:
4136 version "1.0.0"
4137 resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978"
4138 dependencies:
4139 pify "^2.3.0"
4140
4141make-iterator@^1.0.0:
4142 version "1.0.0"
4143 resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.0.tgz#57bef5dc85d23923ba23767324d8e8f8f3d9694b"
4144 dependencies:
4145 kind-of "^3.1.0"
4146
4147map-cache@^0.2.0:
4148 version "0.2.2"
4149 resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
4150
4151map-obj@^1.0.0, map-obj@^1.0.1:
4152 version "1.0.1"
4153 resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
4154
4155matchdep@^1.0.0:
4156 version "1.0.1"
4157 resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-1.0.1.tgz#a57a33804491fbae208aba8f68380437abc2dca5"
4158 dependencies:
4159 findup-sync "~0.3.0"
4160 micromatch "^2.3.7"
4161 resolve "~1.1.6"
4162 stack-trace "0.0.9"
4163
4164mdi@^1.9.33:
4165 version "1.9.33"
4166 resolved "https://registry.yarnpkg.com/mdi/-/mdi-1.9.33.tgz#3caf6d95fc6b800633630bd62ba0cf1fbde6b2e2"
4167
4168mem@^1.1.0:
4169 version "1.1.0"
4170 resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
4171 dependencies:
4172 mimic-fn "^1.0.0"
4173
4174meow@^3.1.0, meow@^3.7.0:
4175 version "3.7.0"
4176 resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
4177 dependencies:
4178 camelcase-keys "^2.0.0"
4179 decamelize "^1.1.2"
4180 loud-rejection "^1.0.0"
4181 map-obj "^1.0.1"
4182 minimist "^1.1.3"
4183 normalize-package-data "^2.3.4"
4184 object-assign "^4.0.1"
4185 read-pkg-up "^1.0.1"
4186 redent "^1.0.0"
4187 trim-newlines "^1.0.0"
4188
4189merge-stream@^0.1.7:
4190 version "0.1.8"
4191 resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-0.1.8.tgz#48a07b3b4a121d74a3edbfdcdb4b08adbf0240b1"
4192 dependencies:
4193 through2 "^0.6.1"
4194
4195merge-stream@^1.0.0:
4196 version "1.0.1"
4197 resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1"
4198 dependencies:
4199 readable-stream "^2.0.1"
4200
4201micromatch@^2.1.5, micromatch@^2.3.7:
4202 version "2.3.11"
4203 resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
4204 dependencies:
4205 arr-diff "^2.0.0"
4206 array-unique "^0.2.1"
4207 braces "^1.8.2"
4208 expand-brackets "^0.1.4"
4209 extglob "^0.3.1"
4210 filename-regex "^2.0.0"
4211 is-extglob "^1.0.0"
4212 is-glob "^2.0.1"
4213 kind-of "^3.0.2"
4214 normalize-path "^2.0.1"
4215 object.omit "^2.0.0"
4216 parse-glob "^3.0.4"
4217 regex-cache "^0.4.2"
4218
4219mime-db@~1.30.0:
4220 version "1.30.0"
4221 resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
4222
4223mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.7:
4224 version "2.1.17"
4225 resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
4226 dependencies:
4227 mime-db "~1.30.0"
4228
4229mime-types@~1.0.0:
4230 version "1.0.2"
4231 resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-1.0.2.tgz#995ae1392ab8affcbfcb2641dd054e943c0d5dce"
4232
4233mime@1.2.11:
4234 version "1.2.11"
4235 resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10"
4236
4237mime@^1.3.4, mime@^1.3.6:
4238 version "1.4.0"
4239 resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.0.tgz#69e9e0db51d44f2a3b56e48b7817d7d137f1a343"
4240
4241mimic-fn@^1.0.0:
4242 version "1.1.0"
4243 resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
4244
4245"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2:
4246 version "3.0.4"
4247 resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
4248 dependencies:
4249 brace-expansion "^1.1.7"
4250
4251minimatch@^2.0.1:
4252 version "2.0.10"
4253 resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7"
4254 dependencies:
4255 brace-expansion "^1.0.0"
4256
4257minimatch@~0.2.11:
4258 version "0.2.14"
4259 resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a"
4260 dependencies:
4261 lru-cache "2"
4262 sigmund "~1.0.0"
4263
4264minimist@0.0.8:
4265 version "0.0.8"
4266 resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
4267
4268minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0:
4269 version "1.2.0"
4270 resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
4271
4272minipass@^2.2.1:
4273 version "2.2.1"
4274 resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.2.1.tgz#5ada97538b1027b4cf7213432428578cb564011f"
4275 dependencies:
4276 yallist "^3.0.0"
4277
4278minizlib@^1.0.4:
4279 version "1.0.4"
4280 resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.0.4.tgz#8ebb51dd8bbe40b0126b5633dbb36b284a2f523c"
4281 dependencies:
4282 minipass "^2.2.1"
4283
4284mkdirp@0.5.0:
4285 version "0.5.0"
4286 resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12"
4287 dependencies:
4288 minimist "0.0.8"
4289
4290mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0:
4291 version "0.5.1"
4292 resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
4293 dependencies:
4294 minimist "0.0.8"
4295
4296mkpath@^0.1.0:
4297 version "0.1.0"
4298 resolved "https://registry.yarnpkg.com/mkpath/-/mkpath-0.1.0.tgz#7554a6f8d871834cc97b5462b122c4c124d6de91"
4299
4300mksnapshot@^0.3.0:
4301 version "0.3.1"
4302 resolved "https://registry.yarnpkg.com/mksnapshot/-/mksnapshot-0.3.1.tgz#2501c05657436d742ce958a4ff92c77e40dd37e6"
4303 dependencies:
4304 decompress-zip "0.3.0"
4305 fs-extra "0.26.7"
4306 request "^2.79.0"
4307
4308mobx-localstorage@^0.1.7:
4309 version "0.1.7"
4310 resolved "https://registry.yarnpkg.com/mobx-localstorage/-/mobx-localstorage-0.1.7.tgz#c0c64366769f390ca4a333f41912eae00cd4a9de"
4311
4312mobx-react-form@^1.32.2:
4313 version "1.32.2"
4314 resolved "https://registry.yarnpkg.com/mobx-react-form/-/mobx-react-form-1.32.2.tgz#5610dd0e4fab006acf2daf1becbedecad182a5a0"
4315 dependencies:
4316 lodash "^4.16.2"
4317
4318mobx-react-router@^3.1.2:
4319 version "3.1.2"
4320 resolved "https://registry.yarnpkg.com/mobx-react-router/-/mobx-react-router-3.1.2.tgz#83328b108393017148d86fea17f611de2d2aacdc"
4321
4322mobx-react@^4.1.0:
4323 version "4.2.2"
4324 resolved "https://registry.yarnpkg.com/mobx-react/-/mobx-react-4.2.2.tgz#db9cc3cafefbd830d0584c1149af5aae67829201"
4325 dependencies:
4326 hoist-non-react-statics "^1.2.0"
4327
4328mobx@^3.1.0:
4329 version "3.2.2"
4330 resolved "https://registry.yarnpkg.com/mobx/-/mobx-3.2.2.tgz#aa671459bededfd9880c948889a3f62bce09279c"
4331
4332moment@2.x.x, moment@^2.17.1:
4333 version "2.18.1"
4334 resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f"
4335
4336ms@0.6.2:
4337 version "0.6.2"
4338 resolved "https://registry.yarnpkg.com/ms/-/ms-0.6.2.tgz#d89c2124c6fdc1353d65a8b77bf1aac4b193708c"
4339
4340ms@0.7.1:
4341 version "0.7.1"
4342 resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
4343
4344ms@0.7.2:
4345 version "0.7.2"
4346 resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765"
4347
4348ms@2.0.0, ms@^2.0.0:
4349 version "2.0.0"
4350 resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
4351
4352multipipe@^0.1.2:
4353 version "0.1.2"
4354 resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b"
4355 dependencies:
4356 duplexer2 "0.0.2"
4357
4358mute-stdout@^1.0.0:
4359 version "1.0.0"
4360 resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-1.0.0.tgz#5b32ea07eb43c9ded6130434cf926f46b2a7fd4d"
4361
4362mute-stream@0.0.4:
4363 version "0.0.4"
4364 resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.4.tgz#a9219960a6d5d5d046597aee51252c6655f7177e"
4365
4366mute-stream@0.0.7, mute-stream@~0.0.4:
4367 version "0.0.7"
4368 resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
4369
4370nan@^2.0.0, nan@^2.0.5, nan@^2.3.0, nan@^2.3.2, nan@^2.4.0, nan@^2.7.0:
4371 version "2.7.0"
4372 resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46"
4373
4374natives@^1.1.0:
4375 version "1.1.0"
4376 resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.0.tgz#e9ff841418a6b2ec7a495e939984f78f163e6e31"
4377
4378natural-compare@^1.4.0:
4379 version "1.4.0"
4380 resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
4381
4382negotiator@0.4.7:
4383 version "0.4.7"
4384 resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.4.7.tgz#a4160f7177ec806738631d0d3052325da42abdc8"
4385
4386negotiator@0.6.1:
4387 version "0.6.1"
4388 resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
4389
4390node-abi@^2.0.0:
4391 version "2.1.1"
4392 resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.1.1.tgz#c9cda256ec8aa99bcab2f6446db38af143338b2a"
4393
4394node-emoji@^1.6.1:
4395 version "1.8.1"
4396 resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.8.1.tgz#6eec6bfb07421e2148c75c6bba72421f8530a826"
4397 dependencies:
4398 lodash.toarray "^4.4.0"
4399
4400node-fetch@^1.0.1:
4401 version "1.7.2"
4402 resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7"
4403 dependencies:
4404 encoding "^0.1.11"
4405 is-stream "^1.0.1"
4406
4407node-gyp@^3.3.1, node-gyp@^3.6.0:
4408 version "3.6.2"
4409 resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60"
4410 dependencies:
4411 fstream "^1.0.0"
4412 glob "^7.0.3"
4413 graceful-fs "^4.1.2"
4414 minimatch "^3.0.2"
4415 mkdirp "^0.5.0"
4416 nopt "2 || 3"
4417 npmlog "0 || 1 || 2 || 3 || 4"
4418 osenv "0"
4419 request "2"
4420 rimraf "2"
4421 semver "~5.3.0"
4422 tar "^2.0.0"
4423 which "1"
4424
4425node-pre-gyp@^0.6.36:
4426 version "0.6.36"
4427 resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786"
4428 dependencies:
4429 mkdirp "^0.5.1"
4430 nopt "^4.0.1"
4431 npmlog "^4.0.2"
4432 rc "^1.1.7"
4433 request "^2.81.0"
4434 rimraf "^2.6.1"
4435 semver "^5.3.0"
4436 tar "^2.2.1"
4437 tar-pack "^3.4.0"
4438
4439node-sass@^4.2.0:
4440 version "4.5.3"
4441 resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.5.3.tgz#d09c9d1179641239d1b97ffc6231fdcec53e1568"
4442 dependencies:
4443 async-foreach "^0.1.3"
4444 chalk "^1.1.1"
4445 cross-spawn "^3.0.0"
4446 gaze "^1.0.0"
4447 get-stdin "^4.0.1"
4448 glob "^7.0.3"
4449 in-publish "^2.0.0"
4450 lodash.assign "^4.2.0"
4451 lodash.clonedeep "^4.3.2"
4452 lodash.mergewith "^4.6.0"
4453 meow "^3.7.0"
4454 mkdirp "^0.5.1"
4455 nan "^2.3.2"
4456 node-gyp "^3.3.1"
4457 npmlog "^4.0.0"
4458 request "^2.79.0"
4459 sass-graph "^2.1.1"
4460 stdout-stream "^1.4.0"
4461
4462node-sass@^4.7.2:
4463 version "4.7.2"
4464 resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.7.2.tgz#9366778ba1469eb01438a9e8592f4262bcb6794e"
4465 dependencies:
4466 async-foreach "^0.1.3"
4467 chalk "^1.1.1"
4468 cross-spawn "^3.0.0"
4469 gaze "^1.0.0"
4470 get-stdin "^4.0.1"
4471 glob "^7.0.3"
4472 in-publish "^2.0.0"
4473 lodash.assign "^4.2.0"
4474 lodash.clonedeep "^4.3.2"
4475 lodash.mergewith "^4.6.0"
4476 meow "^3.7.0"
4477 mkdirp "^0.5.1"
4478 nan "^2.3.2"
4479 node-gyp "^3.3.1"
4480 npmlog "^4.0.0"
4481 request "~2.79.0"
4482 sass-graph "^2.2.4"
4483 stdout-stream "^1.4.0"
4484 "true-case-path" "^1.0.2"
4485
4486node-watch@^0.3.4:
4487 version "0.3.5"
4488 resolved "https://registry.yarnpkg.com/node-watch/-/node-watch-0.3.5.tgz#a07f253a4f538de9d4ca522dd7f1996eeec0d97e"
4489
4490node.extend@~1.0.10:
4491 version "1.0.10"
4492 resolved "https://registry.yarnpkg.com/node.extend/-/node.extend-1.0.10.tgz#3269bddf81c54535f408abc784c32b0d2bd55f6f"
4493 dependencies:
4494 is "~0.3.0"
4495
4496"nopt@2 || 3", nopt@^3.0.1:
4497 version "3.0.6"
4498 resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
4499 dependencies:
4500 abbrev "1"
4501
4502nopt@^4.0.1:
4503 version "4.0.1"
4504 resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
4505 dependencies:
4506 abbrev "1"
4507 osenv "^0.1.4"
4508
4509nopt@~1.0.10:
4510 version "1.0.10"
4511 resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
4512 dependencies:
4513 abbrev "1"
4514
4515normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.4.0:
4516 version "2.4.0"
4517 resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
4518 dependencies:
4519 hosted-git-info "^2.1.4"
4520 is-builtin-module "^1.0.0"
4521 semver "2 || 3 || 4 || 5"
4522 validate-npm-package-license "^3.0.1"
4523
4524normalize-path@^2.0.0, normalize-path@^2.0.1:
4525 version "2.1.1"
4526 resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
4527 dependencies:
4528 remove-trailing-separator "^1.0.1"
4529
4530normalize-url@^1.9.1:
4531 version "1.9.1"
4532 resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c"
4533 dependencies:
4534 object-assign "^4.0.1"
4535 prepend-http "^1.0.0"
4536 query-string "^4.1.0"
4537 sort-keys "^1.0.0"
4538
4539now-and-later@^2.0.0:
4540 version "2.0.0"
4541 resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.0.tgz#bc61cbb456d79cb32207ce47ca05136ff2e7d6ee"
4542 dependencies:
4543 once "^1.3.2"
4544
4545npm-run-path@^2.0.0:
4546 version "2.0.2"
4547 resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
4548 dependencies:
4549 path-key "^2.0.0"
4550
4551"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2:
4552 version "4.1.2"
4553 resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
4554 dependencies:
4555 are-we-there-yet "~1.1.2"
4556 console-control-strings "~1.1.0"
4557 gauge "~2.7.3"
4558 set-blocking "~2.0.0"
4559
4560nugget@^2.0.0, nugget@^2.0.1:
4561 version "2.0.1"
4562 resolved "https://registry.yarnpkg.com/nugget/-/nugget-2.0.1.tgz#201095a487e1ad36081b3432fa3cada4f8d071b0"
4563 dependencies:
4564 debug "^2.1.3"
4565 minimist "^1.1.0"
4566 pretty-bytes "^1.0.2"
4567 progress-stream "^1.1.0"
4568 request "^2.45.0"
4569 single-line-log "^1.1.2"
4570 throttleit "0.0.2"
4571
4572number-is-nan@^1.0.0:
4573 version "1.0.1"
4574 resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
4575
4576oauth-sign@~0.8.1:
4577 version "0.8.2"
4578 resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
4579
4580object-assign@4.1.0:
4581 version "4.1.0"
4582 resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0"
4583
4584object-assign@^2.0.0:
4585 version "2.1.1"
4586 resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa"
4587
4588object-assign@^3.0.0:
4589 version "3.0.0"
4590 resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2"
4591
4592object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
4593 version "4.1.1"
4594 resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
4595
4596object-component@0.0.3:
4597 version "0.0.3"
4598 resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291"
4599
4600object-hash@^1.1.4:
4601 version "1.1.8"
4602 resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.1.8.tgz#28a659cf987d96a4dabe7860289f3b5326c4a03c"
4603
4604object-keys@^1.0.10, object-keys@^1.0.8:
4605 version "1.0.11"
4606 resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
4607
4608object-keys@~0.4.0:
4609 version "0.4.0"
4610 resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336"
4611
4612object.assign@^4.0.4:
4613 version "4.0.4"
4614 resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc"
4615 dependencies:
4616 define-properties "^1.1.2"
4617 function-bind "^1.1.0"
4618 object-keys "^1.0.10"
4619
4620object.defaults@^1.0.0, object.defaults@^1.1.0:
4621 version "1.1.0"
4622 resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf"
4623 dependencies:
4624 array-each "^1.0.1"
4625 array-slice "^1.0.0"
4626 for-own "^1.0.0"
4627 isobject "^3.0.0"
4628
4629object.omit@^2.0.0:
4630 version "2.0.1"
4631 resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
4632 dependencies:
4633 for-own "^0.1.4"
4634 is-extendable "^0.1.1"
4635
4636object.pick@^1.2.0:
4637 version "1.3.0"
4638 resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
4639 dependencies:
4640 isobject "^3.0.1"
4641
4642object.reduce@^1.0.0:
4643 version "1.0.1"
4644 resolved "https://registry.yarnpkg.com/object.reduce/-/object.reduce-1.0.1.tgz#6fe348f2ac7fa0f95ca621226599096825bb03ad"
4645 dependencies:
4646 for-own "^1.0.0"
4647 make-iterator "^1.0.0"
4648
4649on-finished@2.1.0:
4650 version "2.1.0"
4651 resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.1.0.tgz#0c539f09291e8ffadde0c8a25850fb2cedc7022d"
4652 dependencies:
4653 ee-first "1.0.5"
4654
4655once@^1.3.0, once@^1.3.2, once@^1.3.3, once@^1.4.0:
4656 version "1.4.0"
4657 resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
4658 dependencies:
4659 wrappy "1"
4660
4661onetime@^2.0.0:
4662 version "2.0.1"
4663 resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
4664 dependencies:
4665 mimic-fn "^1.0.0"
4666
4667open@~0.0.5:
4668 version "0.0.5"
4669 resolved "https://registry.yarnpkg.com/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc"
4670
4671optionator@^0.8.2:
4672 version "0.8.2"
4673 resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
4674 dependencies:
4675 deep-is "~0.1.3"
4676 fast-levenshtein "~2.0.4"
4677 levn "~0.3.0"
4678 prelude-ls "~1.1.2"
4679 type-check "~0.3.2"
4680 wordwrap "~1.0.0"
4681
4682options@>=0.0.5:
4683 version "0.0.6"
4684 resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f"
4685
4686ora@^1.2.0:
4687 version "1.3.0"
4688 resolved "https://registry.yarnpkg.com/ora/-/ora-1.3.0.tgz#80078dd2b92a934af66a3ad72a5b910694ede51a"
4689 dependencies:
4690 chalk "^1.1.1"
4691 cli-cursor "^2.1.0"
4692 cli-spinners "^1.0.0"
4693 log-symbols "^1.0.2"
4694
4695ordered-read-streams@^0.1.0:
4696 version "0.1.0"
4697 resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126"
4698
4699ordered-read-streams@^0.3.0:
4700 version "0.3.0"
4701 resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b"
4702 dependencies:
4703 is-stream "^1.0.1"
4704 readable-stream "^2.0.1"
4705
4706os-homedir@^1.0.0, os-homedir@^1.0.1:
4707 version "1.0.2"
4708 resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
4709
4710os-locale@^1.4.0:
4711 version "1.4.0"
4712 resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
4713 dependencies:
4714 lcid "^1.0.0"
4715
4716os-locale@^2.0.0:
4717 version "2.1.0"
4718 resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
4719 dependencies:
4720 execa "^0.7.0"
4721 lcid "^1.0.0"
4722 mem "^1.1.0"
4723
4724os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2:
4725 version "1.0.2"
4726 resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
4727
4728osenv@0, osenv@^0.1.4:
4729 version "0.1.4"
4730 resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644"
4731 dependencies:
4732 os-homedir "^1.0.0"
4733 os-tmpdir "^1.0.0"
4734
4735p-finally@^1.0.0:
4736 version "1.0.0"
4737 resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
4738
4739p-limit@^1.1.0:
4740 version "1.1.0"
4741 resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc"
4742
4743p-locate@^2.0.0:
4744 version "2.0.0"
4745 resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
4746 dependencies:
4747 p-limit "^1.1.0"
4748
4749package-json@^4.0.0:
4750 version "4.0.1"
4751 resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed"
4752 dependencies:
4753 got "^6.7.1"
4754 registry-auth-token "^3.0.1"
4755 registry-url "^3.0.3"
4756 semver "^5.1.0"
4757
4758pad-right@^0.2.2:
4759 version "0.2.2"
4760 resolved "https://registry.yarnpkg.com/pad-right/-/pad-right-0.2.2.tgz#6fbc924045d244f2a2a244503060d3bfc6009774"
4761 dependencies:
4762 repeat-string "^1.5.2"
4763
4764parse-color@^1.0.0:
4765 version "1.0.0"
4766 resolved "https://registry.yarnpkg.com/parse-color/-/parse-color-1.0.0.tgz#7b748b95a83f03f16a94f535e52d7f3d94658619"
4767 dependencies:
4768 color-convert "~0.5.0"
4769
4770parse-filepath@^1.0.1:
4771 version "1.0.1"
4772 resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.1.tgz#159d6155d43904d16c10ef698911da1e91969b73"
4773 dependencies:
4774 is-absolute "^0.2.3"
4775 map-cache "^0.2.0"
4776 path-root "^0.1.1"
4777
4778parse-glob@^3.0.4:
4779 version "3.0.4"
4780 resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
4781 dependencies:
4782 glob-base "^0.3.0"
4783 is-dotfile "^1.0.0"
4784 is-extglob "^1.0.0"
4785 is-glob "^2.0.0"
4786
4787parse-json@^2.2.0:
4788 version "2.2.0"
4789 resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
4790 dependencies:
4791 error-ex "^1.2.0"
4792
4793parse-passwd@^1.0.0:
4794 version "1.0.0"
4795 resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
4796
4797parsejson@0.0.3:
4798 version "0.0.3"
4799 resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab"
4800 dependencies:
4801 better-assert "~1.0.0"
4802
4803parseqs@0.0.5:
4804 version "0.0.5"
4805 resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d"
4806 dependencies:
4807 better-assert "~1.0.0"
4808
4809parseuri@0.0.5:
4810 version "0.0.5"
4811 resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a"
4812 dependencies:
4813 better-assert "~1.0.0"
4814
4815parseurl@~1.3.0:
4816 version "1.3.1"
4817 resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56"
4818
4819path-dirname@^1.0.0:
4820 version "1.0.2"
4821 resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
4822
4823path-exists@^2.0.0, path-exists@^2.1.0:
4824 version "2.1.0"
4825 resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
4826 dependencies:
4827 pinkie-promise "^2.0.0"
4828
4829path-exists@^3.0.0:
4830 version "3.0.0"
4831 resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
4832
4833path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
4834 version "1.0.1"
4835 resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
4836
4837path-is-inside@^1.0.1, path-is-inside@^1.0.2:
4838 version "1.0.2"
4839 resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
4840
4841path-key@^2.0.0:
4842 version "2.0.1"
4843 resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
4844
4845path-parse@^1.0.5:
4846 version "1.0.5"
4847 resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
4848
4849path-root-regex@^0.1.0:
4850 version "0.1.2"
4851 resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d"
4852
4853path-root@^0.1.1:
4854 version "0.1.1"
4855 resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7"
4856 dependencies:
4857 path-root-regex "^0.1.0"
4858
4859path-type@^1.0.0:
4860 version "1.1.0"
4861 resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
4862 dependencies:
4863 graceful-fs "^4.1.2"
4864 pify "^2.0.0"
4865 pinkie-promise "^2.0.0"
4866
4867path-type@^2.0.0:
4868 version "2.0.0"
4869 resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
4870 dependencies:
4871 pify "^2.0.0"
4872
4873pend@~1.2.0:
4874 version "1.2.0"
4875 resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
4876
4877performance-now@^0.2.0:
4878 version "0.2.0"
4879 resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
4880
4881performance-now@^2.1.0:
4882 version "2.1.0"
4883 resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
4884
4885pify@^2.0.0, pify@^2.3.0:
4886 version "2.3.0"
4887 resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
4888
4889pinkie-promise@^2.0.0:
4890 version "2.0.1"
4891 resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
4892 dependencies:
4893 pinkie "^2.0.0"
4894
4895pinkie@^2.0.0:
4896 version "2.0.4"
4897 resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
4898
4899pkg-dir@^1.0.0:
4900 version "1.0.0"
4901 resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
4902 dependencies:
4903 find-up "^1.0.0"
4904
4905pkginfo@^0.3.0:
4906 version "0.3.1"
4907 resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21"
4908
4909plist@^2.0.0, plist@^2.0.1, plist@^2.1.0:
4910 version "2.1.0"
4911 resolved "https://registry.yarnpkg.com/plist/-/plist-2.1.0.tgz#57ccdb7a0821df21831217a3cad54e3e146a1025"
4912 dependencies:
4913 base64-js "1.2.0"
4914 xmlbuilder "8.2.2"
4915 xmldom "0.1.x"
4916
4917pluralize@^7.0.0:
4918 version "7.0.0"
4919 resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
4920
4921prelude-ls@~1.1.2:
4922 version "1.1.2"
4923 resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
4924
4925prepend-http@^1.0.0, prepend-http@^1.0.1:
4926 version "1.0.4"
4927 resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
4928
4929preserve@^0.2.0:
4930 version "0.2.0"
4931 resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
4932
4933pretty-bytes@^1.0.2, pretty-bytes@^1.0.4:
4934 version "1.0.4"
4935 resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84"
4936 dependencies:
4937 get-stdin "^4.0.1"
4938 meow "^3.1.0"
4939
4940pretty-bytes@^4.0.2:
4941 version "4.0.2"
4942 resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9"
4943
4944pretty-hrtime@^1.0.0:
4945 version "1.0.3"
4946 resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
4947
4948private@^0.1.6, private@^0.1.7:
4949 version "0.1.7"
4950 resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1"
4951
4952process-nextick-args@^1.0.7, process-nextick-args@~1.0.6:
4953 version "1.0.7"
4954 resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
4955
4956progress-stream@^1.0.1, progress-stream@^1.1.0:
4957 version "1.2.0"
4958 resolved "https://registry.yarnpkg.com/progress-stream/-/progress-stream-1.2.0.tgz#2cd3cfea33ba3a89c9c121ec3347abe9ab125f77"
4959 dependencies:
4960 speedometer "~0.1.2"
4961 through2 "~0.2.3"
4962
4963progress@^2.0.0:
4964 version "2.0.0"
4965 resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
4966
4967promise@^7.1.1:
4968 version "7.3.1"
4969 resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
4970 dependencies:
4971 asap "~2.0.3"
4972
4973prop-types-extended@^0.2.1:
4974 version "0.2.1"
4975 resolved "https://registry.yarnpkg.com/prop-types-extended/-/prop-types-extended-0.2.1.tgz#ce23f3dbc48ccdc76cfa1a4c7e3f7ed9a5dd8259"
4976 dependencies:
4977 invariant "^2.2.0"
4978
4979prop-types@^15.5.10, prop-types@^15.5.6, prop-types@^15.5.7, prop-types@^15.5.8:
4980 version "15.5.10"
4981 resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
4982 dependencies:
4983 fbjs "^0.8.9"
4984 loose-envify "^1.3.1"
4985
4986prop-types@^15.6.0:
4987 version "15.6.0"
4988 resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856"
4989 dependencies:
4990 fbjs "^0.8.16"
4991 loose-envify "^1.3.1"
4992 object-assign "^4.1.1"
4993
4994proxy-middleware@~0.15.0:
4995 version "0.15.0"
4996 resolved "https://registry.yarnpkg.com/proxy-middleware/-/proxy-middleware-0.15.0.tgz#a3fdf1befb730f951965872ac2f6074c61477a56"
4997
4998pseudomap@^1.0.2:
4999 version "1.0.2"
5000 resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
5001
5002publish-release@^1.3.2:
5003 version "1.3.3"
5004 resolved "https://registry.yarnpkg.com/publish-release/-/publish-release-1.3.3.tgz#6cd11df835e14c13b0e08a35d3fb992b918bec3c"
5005 dependencies:
5006 async "^0.9.0"
5007 ghauth "^2.0.0"
5008 github-url-to-object "^1.4.2"
5009 inquirer "^0.8.2"
5010 lodash "^3.6.0"
5011 mime "^1.3.4"
5012 minimist "^1.1.1"
5013 pkginfo "^0.3.0"
5014 pretty-bytes "^1.0.4"
5015 progress-stream "^1.0.1"
5016 request "^2.54.0"
5017 single-line-log "^0.4.1"
5018 string-editor "^0.1.0"
5019
5020punycode@^1.4.1:
5021 version "1.4.1"
5022 resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
5023
5024q@^1.1.2:
5025 version "1.5.0"
5026 resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1"
5027
5028qs@~6.3.0:
5029 version "6.3.2"
5030 resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c"
5031
5032qs@~6.4.0:
5033 version "6.4.0"
5034 resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
5035
5036query-string@^4.1.0, query-string@^4.2.2:
5037 version "4.3.4"
5038 resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb"
5039 dependencies:
5040 object-assign "^4.1.0"
5041 strict-uri-encode "^1.0.0"
5042
5043raf@^3.1.0:
5044 version "3.3.2"
5045 resolved "https://registry.yarnpkg.com/raf/-/raf-3.3.2.tgz#0c13be0b5b49b46f76d6669248d527cf2b02fe27"
5046 dependencies:
5047 performance-now "^2.1.0"
5048
5049randomatic@^1.1.3:
5050 version "1.1.7"
5051 resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c"
5052 dependencies:
5053 is-number "^3.0.0"
5054 kind-of "^4.0.0"
5055
5056range-parser@~1.0.0:
5057 version "1.0.3"
5058 resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.0.3.tgz#6872823535c692e2c2a0103826afd82c2e0ff175"
5059
5060rc@^1.0.1, rc@^1.1.2, rc@^1.1.6, rc@^1.1.7, rc@^1.2.1:
5061 version "1.2.1"
5062 resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95"
5063 dependencies:
5064 deep-extend "~0.4.0"
5065 ini "~1.3.0"
5066 minimist "^1.2.0"
5067 strip-json-comments "~2.0.1"
5068
5069rcedit@^0.9.0:
5070 version "0.9.0"
5071 resolved "https://registry.yarnpkg.com/rcedit/-/rcedit-0.9.0.tgz#3910df57345399e2b0325f4a519007f89e55ef1c"
5072
5073react-addons-css-transition-group@^15.4.2:
5074 version "15.6.0"
5075 resolved "https://registry.yarnpkg.com/react-addons-css-transition-group/-/react-addons-css-transition-group-15.6.0.tgz#69887cf6e4874d25cd66e22a699e29f0d648aba0"
5076 dependencies:
5077 react-transition-group "^1.2.0"
5078
5079react-dom@^15.4.1:
5080 version "15.6.1"
5081 resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.1.tgz#2cb0ed4191038e53c209eb3a79a23e2a4cf99470"
5082 dependencies:
5083 fbjs "^0.8.9"
5084 loose-envify "^1.1.0"
5085 object-assign "^4.1.0"
5086 prop-types "^15.5.10"
5087
5088react-dropzone@^4.2.1:
5089 version "4.2.1"
5090 resolved "https://registry.yarnpkg.com/react-dropzone/-/react-dropzone-4.2.1.tgz#695e80bd0b065f1181e69f2d0f6d1d5cc72664c9"
5091 dependencies:
5092 attr-accept "^1.0.3"
5093 prop-types "^15.5.7"
5094
5095react-electron-web-view@^2.0.1:
5096 version "2.0.1"
5097 resolved "https://registry.yarnpkg.com/react-electron-web-view/-/react-electron-web-view-2.0.1.tgz#984b7bbbeb77e35bcca921dc50120fc8f2b0f27d"
5098 dependencies:
5099 lodash.camelcase "^4.3.0"
5100
5101react-intl@^2.3.0:
5102 version "2.3.0"
5103 resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-2.3.0.tgz#e1df6af5667fdf01cbe4aab20e137251e2ae5142"
5104 dependencies:
5105 intl-format-cache "^2.0.5"
5106 intl-messageformat "^1.3.0"
5107 intl-relativeformat "^1.3.0"
5108 invariant "^2.1.1"
5109
5110react-loader@^2.4.0:
5111 version "2.4.2"
5112 resolved "https://registry.yarnpkg.com/react-loader/-/react-loader-2.4.2.tgz#14e2b9139fc5693da5cdbdc928032d5b1aeb94c2"
5113 dependencies:
5114 create-react-class "^15.5.2"
5115 prop-types "^15.5.8"
5116 spin.js "2.x"
5117
5118react-motion@^0.4.8:
5119 version "0.4.8"
5120 resolved "https://registry.yarnpkg.com/react-motion/-/react-motion-0.4.8.tgz#23bb2dd27c2d8e00d229e45572d105efcf40a35e"
5121 dependencies:
5122 create-react-class "^15.5.2"
5123 performance-now "^0.2.0"
5124 prop-types "^15.5.8"
5125 raf "^3.1.0"
5126
5127react-router-transition@^0.1.1:
5128 version "0.1.1"
5129 resolved "https://registry.yarnpkg.com/react-router-transition/-/react-router-transition-0.1.1.tgz#6cc2cb747cb27e4d5632c82ca750b4312ccd3bd6"
5130 dependencies:
5131 prop-types "^15.5.8"
5132 react-motion "^0.4.8"
5133
5134react-router@^3.0.2:
5135 version "3.0.5"
5136 resolved "https://registry.yarnpkg.com/react-router/-/react-router-3.0.5.tgz#c3b7873758045a8bbc9562aef4ff4bc8cce7c136"
5137 dependencies:
5138 create-react-class "^15.5.1"
5139 history "^3.0.0"
5140 hoist-non-react-statics "^1.2.0"
5141 invariant "^2.2.1"
5142 loose-envify "^1.2.0"
5143 prop-types "^15.5.6"
5144 warning "^3.0.0"
5145
5146react-sortable-hoc@^0.6.7:
5147 version "0.6.7"
5148 resolved "https://registry.yarnpkg.com/react-sortable-hoc/-/react-sortable-hoc-0.6.7.tgz#e30d247bc36dd5a605430c331ac9cb50a5fa72a6"
5149 dependencies:
5150 babel-runtime "^6.11.6"
5151 invariant "^2.2.1"
5152 lodash "^4.12.0"
5153 prop-types "^15.5.7"
5154
5155react-tooltip@^3.2.7:
5156 version "3.3.0"
5157 resolved "https://registry.yarnpkg.com/react-tooltip/-/react-tooltip-3.3.0.tgz#51c08ae0221075e2c43d83cd47fc78466612df7d"
5158 dependencies:
5159 classnames "^2.2.0"
5160 prop-types "^15.5.8"
5161
5162react-transition-group@^1.2.0:
5163 version "1.2.0"
5164 resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-1.2.0.tgz#b51fc921b0c3835a7ef7c571c79fc82c73e9204f"
5165 dependencies:
5166 chain-function "^1.0.0"
5167 dom-helpers "^3.2.0"
5168 loose-envify "^1.3.1"
5169 prop-types "^15.5.6"
5170 warning "^3.0.0"
5171
5172react-virtualized@^9.7.6:
5173 version "9.18.5"
5174 resolved "https://registry.yarnpkg.com/react-virtualized/-/react-virtualized-9.18.5.tgz#42dd390ebaa7ea809bfcaf775d39872641679b89"
5175 dependencies:
5176 babel-runtime "^6.26.0"
5177 classnames "^2.2.3"
5178 dom-helpers "^2.4.0 || ^3.0.0"
5179 loose-envify "^1.3.0"
5180 prop-types "^15.6.0"
5181
5182react@^15.4.1:
5183 version "15.6.1"
5184 resolved "https://registry.yarnpkg.com/react/-/react-15.6.1.tgz#baa8434ec6780bde997cdc380b79cd33b96393df"
5185 dependencies:
5186 create-react-class "^15.6.0"
5187 fbjs "^0.8.9"
5188 loose-envify "^1.1.0"
5189 object-assign "^4.1.0"
5190 prop-types "^15.5.10"
5191
5192read-pkg-up@^1.0.1:
5193 version "1.0.1"
5194 resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
5195 dependencies:
5196 find-up "^1.0.0"
5197 read-pkg "^1.0.0"
5198
5199read-pkg-up@^2.0.0:
5200 version "2.0.0"
5201 resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
5202 dependencies:
5203 find-up "^2.0.0"
5204 read-pkg "^2.0.0"
5205
5206read-pkg@^1.0.0:
5207 version "1.1.0"
5208 resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
5209 dependencies:
5210 load-json-file "^1.0.0"
5211 normalize-package-data "^2.3.2"
5212 path-type "^1.0.0"
5213
5214read-pkg@^2.0.0:
5215 version "2.0.0"
5216 resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
5217 dependencies:
5218 load-json-file "^2.0.0"
5219 normalize-package-data "^2.3.2"
5220 path-type "^2.0.0"
5221
5222read@~1.0.5:
5223 version "1.0.7"
5224 resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4"
5225 dependencies:
5226 mute-stream "~0.0.4"
5227
5228"readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.17, readable-stream@~1.0.26:
5229 version "1.0.34"
5230 resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
5231 dependencies:
5232 core-util-is "~1.0.0"
5233 inherits "~2.0.1"
5234 isarray "0.0.1"
5235 string_decoder "~0.10.x"
5236
5237readable-stream@^1.1.8, readable-stream@~1.1.9:
5238 version "1.1.14"
5239 resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
5240 dependencies:
5241 core-util-is "~1.0.0"
5242 inherits "~2.0.1"
5243 isarray "0.0.1"
5244 string_decoder "~0.10.x"
5245
5246readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2:
5247 version "2.3.3"
5248 resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
5249 dependencies:
5250 core-util-is "~1.0.0"
5251 inherits "~2.0.3"
5252 isarray "~1.0.0"
5253 process-nextick-args "~1.0.6"
5254 safe-buffer "~5.1.1"
5255 string_decoder "~1.0.3"
5256 util-deprecate "~1.0.1"
5257
5258readdirp@^2.0.0:
5259 version "2.1.0"
5260 resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78"
5261 dependencies:
5262 graceful-fs "^4.1.2"
5263 minimatch "^3.0.2"
5264 readable-stream "^2.0.2"
5265 set-immediate-shim "^1.0.1"
5266
5267readline2@^0.1.1:
5268 version "0.1.1"
5269 resolved "https://registry.yarnpkg.com/readline2/-/readline2-0.1.1.tgz#99443ba6e83b830ef3051bfd7dc241a82728d568"
5270 dependencies:
5271 mute-stream "0.0.4"
5272 strip-ansi "^2.0.1"
5273
5274rechoir@^0.6.2:
5275 version "0.6.2"
5276 resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
5277 dependencies:
5278 resolve "^1.1.6"
5279
5280redent@^1.0.0:
5281 version "1.0.0"
5282 resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
5283 dependencies:
5284 indent-string "^2.1.0"
5285 strip-indent "^1.0.1"
5286
5287regenerate@^1.2.1:
5288 version "1.3.2"
5289 resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260"
5290
5291regenerator-runtime@^0.10.5:
5292 version "0.10.5"
5293 resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
5294
5295regenerator-runtime@^0.11.0:
5296 version "0.11.0"
5297 resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1"
5298
5299regenerator-transform@^0.10.0:
5300 version "0.10.1"
5301 resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd"
5302 dependencies:
5303 babel-runtime "^6.18.0"
5304 babel-types "^6.19.0"
5305 private "^0.1.6"
5306
5307regex-cache@^0.4.2:
5308 version "0.4.4"
5309 resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
5310 dependencies:
5311 is-equal-shallow "^0.1.3"
5312
5313regexpu-core@^2.0.0:
5314 version "2.0.0"
5315 resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240"
5316 dependencies:
5317 regenerate "^1.2.1"
5318 regjsgen "^0.2.0"
5319 regjsparser "^0.1.4"
5320
5321registry-auth-token@^3.0.1:
5322 version "3.3.1"
5323 resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.1.tgz#fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006"
5324 dependencies:
5325 rc "^1.1.6"
5326 safe-buffer "^5.0.1"
5327
5328registry-url@^3.0.3:
5329 version "3.1.0"
5330 resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942"
5331 dependencies:
5332 rc "^1.0.1"
5333
5334regjsgen@^0.2.0:
5335 version "0.2.0"
5336 resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
5337
5338regjsparser@^0.1.4:
5339 version "0.1.5"
5340 resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"
5341 dependencies:
5342 jsesc "~0.5.0"
5343
5344remove-trailing-separator@^1.0.1:
5345 version "1.1.0"
5346 resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
5347
5348repeat-element@^1.1.2:
5349 version "1.1.2"
5350 resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
5351
5352repeat-string@^1.5.2:
5353 version "1.6.1"
5354 resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
5355
5356repeating@^2.0.0:
5357 version "2.0.1"
5358 resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
5359 dependencies:
5360 is-finite "^1.0.0"
5361
5362replace-ext@0.0.1:
5363 version "0.0.1"
5364 resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924"
5365
5366request@2, request@^2.45.0, request@^2.54.0, request@^2.79.0, request@^2.81.0:
5367 version "2.81.0"
5368 resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
5369 dependencies:
5370 aws-sign2 "~0.6.0"
5371 aws4 "^1.2.1"
5372 caseless "~0.12.0"
5373 combined-stream "~1.0.5"
5374 extend "~3.0.0"
5375 forever-agent "~0.6.1"
5376 form-data "~2.1.1"
5377 har-validator "~4.2.1"
5378 hawk "~3.1.3"
5379 http-signature "~1.1.0"
5380 is-typedarray "~1.0.0"
5381 isstream "~0.1.2"
5382 json-stringify-safe "~5.0.1"
5383 mime-types "~2.1.7"
5384 oauth-sign "~0.8.1"
5385 performance-now "^0.2.0"
5386 qs "~6.4.0"
5387 safe-buffer "^5.0.1"
5388 stringstream "~0.0.4"
5389 tough-cookie "~2.3.0"
5390 tunnel-agent "^0.6.0"
5391 uuid "^3.0.0"
5392
5393request@~2.79.0:
5394 version "2.79.0"
5395 resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de"
5396 dependencies:
5397 aws-sign2 "~0.6.0"
5398 aws4 "^1.2.1"
5399 caseless "~0.11.0"
5400 combined-stream "~1.0.5"
5401 extend "~3.0.0"
5402 forever-agent "~0.6.1"
5403 form-data "~2.1.1"
5404 har-validator "~2.0.6"
5405 hawk "~3.1.3"
5406 http-signature "~1.1.0"
5407 is-typedarray "~1.0.0"
5408 isstream "~0.1.2"
5409 json-stringify-safe "~5.0.1"
5410 mime-types "~2.1.7"
5411 oauth-sign "~0.8.1"
5412 qs "~6.3.0"
5413 stringstream "~0.0.4"
5414 tough-cookie "~2.3.0"
5415 tunnel-agent "~0.4.1"
5416 uuid "^3.0.0"
5417
5418require-directory@^2.1.1:
5419 version "2.1.1"
5420 resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
5421
5422require-main-filename@^1.0.1:
5423 version "1.0.1"
5424 resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
5425
5426require-uncached@^1.0.3:
5427 version "1.0.3"
5428 resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
5429 dependencies:
5430 caller-path "^0.1.0"
5431 resolve-from "^1.0.0"
5432
5433resolve-dir@^0.1.0:
5434 version "0.1.1"
5435 resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e"
5436 dependencies:
5437 expand-tilde "^1.2.2"
5438 global-modules "^0.2.3"
5439
5440resolve-from@^1.0.0:
5441 version "1.0.1"
5442 resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
5443
5444resolve@^1.1.6, resolve@^1.1.7, resolve@^1.2.0:
5445 version "1.4.0"
5446 resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86"
5447 dependencies:
5448 path-parse "^1.0.5"
5449
5450resolve@~1.1.6:
5451 version "1.1.7"
5452 resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
5453
5454restore-cursor@^2.0.0:
5455 version "2.0.0"
5456 resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
5457 dependencies:
5458 onetime "^2.0.0"
5459 signal-exit "^3.0.2"
5460
5461right-pad@^1.0.1:
5462 version "1.0.1"
5463 resolved "https://registry.yarnpkg.com/right-pad/-/right-pad-1.0.1.tgz#8ca08c2cbb5b55e74dafa96bf7fd1a27d568c8d0"
5464
5465rimraf@2, rimraf@^2.2.8, rimraf@^2.4.0, rimraf@^2.5.1, rimraf@^2.6.1:
5466 version "2.6.1"
5467 resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
5468 dependencies:
5469 glob "^7.0.5"
5470
5471route-parser@^0.0.5:
5472 version "0.0.5"
5473 resolved "https://registry.yarnpkg.com/route-parser/-/route-parser-0.0.5.tgz#7d1d09d335e49094031ea16991a4a79b01bbe1f4"
5474
5475run-async@^2.2.0:
5476 version "2.3.0"
5477 resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
5478 dependencies:
5479 is-promise "^2.1.0"
5480
5481run-series@^1.1.1:
5482 version "1.1.4"
5483 resolved "https://registry.yarnpkg.com/run-series/-/run-series-1.1.4.tgz#89a73ddc5e75c9ef8ab6320c0a1600d6a41179b9"
5484
5485rx-lite-aggregates@^4.0.8:
5486 version "4.0.8"
5487 resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
5488 dependencies:
5489 rx-lite "*"
5490
5491rx-lite@*, rx-lite@^4.0.8:
5492 version "4.0.8"
5493 resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
5494
5495rx@^2.4.3:
5496 version "2.5.3"
5497 resolved "https://registry.yarnpkg.com/rx/-/rx-2.5.3.tgz#21adc7d80f02002af50dae97fd9dbf248755f566"
5498
5499rxjs-serial-subscription@^0.1.1:
5500 version "0.1.1"
5501 resolved "https://registry.yarnpkg.com/rxjs-serial-subscription/-/rxjs-serial-subscription-0.1.1.tgz#a42b1db0bf1094b09231191e2778ca3fcf9ed147"
5502 dependencies:
5503 rxjs "^5.0.0-beta.12"
5504
5505rxjs@^5.0.0-beta.12, rxjs@^5.0.1, rxjs@^5.1.1:
5506 version "5.4.3"
5507 resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.4.3.tgz#0758cddee6033d68e0fd53676f0f3596ce3d483f"
5508 dependencies:
5509 symbol-observable "^1.0.1"
5510
5511safe-buffer@^5.0.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
5512 version "5.1.1"
5513 resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
5514
5515sanitize-filename@^1.6.0, sanitize-filename@^1.6.1:
5516 version "1.6.1"
5517 resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.1.tgz#612da1c96473fa02dccda92dcd5b4ab164a6772a"
5518 dependencies:
5519 truncate-utf8-bytes "^1.0.0"
5520
5521sass-graph@^2.1.1, sass-graph@^2.2.4:
5522 version "2.2.4"
5523 resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49"
5524 dependencies:
5525 glob "^7.0.0"
5526 lodash "^4.0.0"
5527 scss-tokenizer "^0.2.3"
5528 yargs "^7.0.0"
5529
5530sax@^1.2.1:
5531 version "1.2.4"
5532 resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
5533
5534scss-tokenizer@^0.2.3:
5535 version "0.2.3"
5536 resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1"
5537 dependencies:
5538 js-base64 "^2.1.8"
5539 source-map "^0.4.2"
5540
5541semver-diff@^2.0.0:
5542 version "2.1.0"
5543 resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"
5544 dependencies:
5545 semver "^5.0.3"
5546
5547semver-greatest-satisfied-range@^1.0.0:
5548 version "1.1.0"
5549 resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b"
5550 dependencies:
5551 sver-compat "^1.5.0"
5552
5553"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1:
5554 version "5.4.1"
5555 resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
5556
5557semver@~5.3.0:
5558 version "5.3.0"
5559 resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
5560
5561send@0.8.5:
5562 version "0.8.5"
5563 resolved "https://registry.yarnpkg.com/send/-/send-0.8.5.tgz#37f708216e6f50c175e74c69fec53484e2fd82c7"
5564 dependencies:
5565 debug "1.0.4"
5566 depd "0.4.4"
5567 destroy "1.0.3"
5568 escape-html "1.0.1"
5569 fresh "0.2.2"
5570 mime "1.2.11"
5571 ms "0.6.2"
5572 on-finished "2.1.0"
5573 range-parser "~1.0.0"
5574
5575serve-index@~1.1.4:
5576 version "1.1.6"
5577 resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.1.6.tgz#b758318fe781628383f66ac80dd447712ea7781f"
5578 dependencies:
5579 accepts "~1.0.7"
5580 batch "0.5.1"
5581 parseurl "~1.3.0"
5582
5583serve-static@~1.5.2:
5584 version "1.5.4"
5585 resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.5.4.tgz#819fb37ae46bd02dd520b77fcf7fd8f5112f9782"
5586 dependencies:
5587 escape-html "1.0.1"
5588 parseurl "~1.3.0"
5589 send "0.8.5"
5590 utils-merge "1.0.0"
5591
5592set-blocking@^2.0.0, set-blocking@~2.0.0:
5593 version "2.0.0"
5594 resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
5595
5596set-immediate-shim@^1.0.1:
5597 version "1.0.1"
5598 resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
5599
5600setimmediate@^1.0.5:
5601 version "1.0.5"
5602 resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
5603
5604shebang-command@^1.2.0:
5605 version "1.2.0"
5606 resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
5607 dependencies:
5608 shebang-regex "^1.0.0"
5609
5610shebang-regex@^1.0.0:
5611 version "1.0.0"
5612 resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
5613
5614sigmund@~1.0.0:
5615 version "1.0.1"
5616 resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
5617
5618signal-exit@^3.0.0, signal-exit@^3.0.2:
5619 version "3.0.2"
5620 resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
5621
5622single-line-log@^0.4.1:
5623 version "0.4.1"
5624 resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-0.4.1.tgz#87a55649f749d783ec0dcd804e8140d9873c7cee"
5625
5626single-line-log@^1.1.2:
5627 version "1.1.2"
5628 resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364"
5629 dependencies:
5630 string-width "^1.0.1"
5631
5632slash@^1.0.0:
5633 version "1.0.0"
5634 resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
5635
5636slice-ansi@0.0.4:
5637 version "0.0.4"
5638 resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
5639
5640smoothscroll-polyfill@^0.3.4:
5641 version "0.3.6"
5642 resolved "https://registry.yarnpkg.com/smoothscroll-polyfill/-/smoothscroll-polyfill-0.3.6.tgz#492be845195157cdc2fc529a95d89e7a71509172"
5643
5644sntp@1.x.x:
5645 version "1.0.9"
5646 resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
5647 dependencies:
5648 hoek "2.x.x"
5649
5650socket.io-adapter@0.5.0:
5651 version "0.5.0"
5652 resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b"
5653 dependencies:
5654 debug "2.3.3"
5655 socket.io-parser "2.3.1"
5656
5657socket.io-client@1.7.4:
5658 version "1.7.4"
5659 resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.4.tgz#ec9f820356ed99ef6d357f0756d648717bdd4281"
5660 dependencies:
5661 backo2 "1.0.2"
5662 component-bind "1.0.0"
5663 component-emitter "1.2.1"
5664 debug "2.3.3"
5665 engine.io-client "~1.8.4"
5666 has-binary "0.1.7"
5667 indexof "0.0.1"
5668 object-component "0.0.3"
5669 parseuri "0.0.5"
5670 socket.io-parser "2.3.1"
5671 to-array "0.1.4"
5672
5673socket.io-parser@2.3.1:
5674 version "2.3.1"
5675 resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0"
5676 dependencies:
5677 component-emitter "1.1.2"
5678 debug "2.2.0"
5679 isarray "0.0.1"
5680 json3 "3.3.2"
5681
5682socket.io@^1.4.4:
5683 version "1.7.4"
5684 resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.4.tgz#2f7ecedc3391bf2d5c73e291fe233e6e34d4dd00"
5685 dependencies:
5686 debug "2.3.3"
5687 engine.io "~1.8.4"
5688 has-binary "0.1.7"
5689 object-assign "4.1.0"
5690 socket.io-adapter "0.5.0"
5691 socket.io-client "1.7.4"
5692 socket.io-parser "2.3.1"
5693
5694sort-keys@^1.0.0:
5695 version "1.1.2"
5696 resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
5697 dependencies:
5698 is-plain-obj "^1.0.0"
5699
5700source-map-support@^0.4.15, source-map-support@^0.4.16:
5701 version "0.4.17"
5702 resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.17.tgz#6f2150553e6375375d0ccb3180502b78c18ba430"
5703 dependencies:
5704 source-map "^0.5.6"
5705
5706source-map@^0.4.2:
5707 version "0.4.4"
5708 resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
5709 dependencies:
5710 amdefine ">=0.0.4"
5711
5712source-map@^0.5.1, source-map@^0.5.6:
5713 version "0.5.7"
5714 resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
5715
5716sparkles@^1.0.0:
5717 version "1.0.0"
5718 resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3"
5719
5720spawn-rx@^2.0.10, spawn-rx@^2.0.7:
5721 version "2.0.11"
5722 resolved "https://registry.yarnpkg.com/spawn-rx/-/spawn-rx-2.0.11.tgz#65451ad65662801daea75549832a782de0048dbf"
5723 dependencies:
5724 debug "^2.5.1"
5725 lodash.assign "^4.2.0"
5726 rxjs "^5.1.1"
5727
5728spdx-correct@~1.0.0:
5729 version "1.0.2"
5730 resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
5731 dependencies:
5732 spdx-license-ids "^1.0.2"
5733
5734spdx-expression-parse@~1.0.0:
5735 version "1.0.4"
5736 resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
5737
5738spdx-license-ids@^1.0.2:
5739 version "1.2.2"
5740 resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
5741
5742speedometer@~0.1.2:
5743 version "0.1.4"
5744 resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d"
5745
5746spin.js@2.x:
5747 version "2.3.2"
5748 resolved "https://registry.yarnpkg.com/spin.js/-/spin.js-2.3.2.tgz#6caa56d520673450fd5cfbc6971e6d0772c37a1a"
5749
5750sprintf-js@~1.0.2:
5751 version "1.0.3"
5752 resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
5753
5754sshpk@^1.7.0:
5755 version "1.13.1"
5756 resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
5757 dependencies:
5758 asn1 "~0.2.3"
5759 assert-plus "^1.0.0"
5760 dashdash "^1.12.0"
5761 getpass "^0.1.1"
5762 optionalDependencies:
5763 bcrypt-pbkdf "^1.0.0"
5764 ecc-jsbn "~0.1.1"
5765 jsbn "~0.1.0"
5766 tweetnacl "~0.14.0"
5767
5768stack-trace@0.0.9:
5769 version "0.0.9"
5770 resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.9.tgz#a8f6eaeca90674c333e7c43953f275b451510695"
5771
5772stat-mode@^0.2.2:
5773 version "0.2.2"
5774 resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502"
5775
5776stdout-stream@^1.4.0:
5777 version "1.4.0"
5778 resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b"
5779 dependencies:
5780 readable-stream "^2.0.1"
5781
5782stream-exhaust@^1.0.1:
5783 version "1.0.2"
5784 resolved "https://registry.yarnpkg.com/stream-exhaust/-/stream-exhaust-1.0.2.tgz#acdac8da59ef2bc1e17a2c0ccf6c320d120e555d"
5785
5786stream-shift@^1.0.0:
5787 version "1.0.0"
5788 resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
5789
5790strict-uri-encode@^1.0.0:
5791 version "1.1.0"
5792 resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
5793
5794string-editor@^0.1.0:
5795 version "0.1.2"
5796 resolved "https://registry.yarnpkg.com/string-editor/-/string-editor-0.1.2.tgz#f5ff1b5ac4aed7ac6c2fb8de236d1551b20f61d0"
5797 dependencies:
5798 editor "^1.0.0"
5799
5800string-width@^1.0.1, string-width@^1.0.2:
5801 version "1.0.2"
5802 resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
5803 dependencies:
5804 code-point-at "^1.0.0"
5805 is-fullwidth-code-point "^1.0.0"
5806 strip-ansi "^3.0.0"
5807
5808string-width@^2.0.0, string-width@^2.1.0:
5809 version "2.1.1"
5810 resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
5811 dependencies:
5812 is-fullwidth-code-point "^2.0.0"
5813 strip-ansi "^4.0.0"
5814
5815string_decoder@~0.10.x:
5816 version "0.10.31"
5817 resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
5818
5819string_decoder@~1.0.3:
5820 version "1.0.3"
5821 resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
5822 dependencies:
5823 safe-buffer "~5.1.0"
5824
5825stringstream@~0.0.4:
5826 version "0.0.5"
5827 resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
5828
5829strip-ansi@^2.0.1:
5830 version "2.0.1"
5831 resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-2.0.1.tgz#df62c1aa94ed2f114e1d0f21fd1d50482b79a60e"
5832 dependencies:
5833 ansi-regex "^1.0.0"
5834
5835strip-ansi@^3.0.0, strip-ansi@^3.0.1:
5836 version "3.0.1"
5837 resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
5838 dependencies:
5839 ansi-regex "^2.0.0"
5840
5841strip-ansi@^4.0.0:
5842 version "4.0.0"
5843 resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
5844 dependencies:
5845 ansi-regex "^3.0.0"
5846
5847strip-bom-stream@^1.0.0:
5848 version "1.0.0"
5849 resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee"
5850 dependencies:
5851 first-chunk-stream "^1.0.0"
5852 strip-bom "^2.0.0"
5853
5854strip-bom@^1.0.0:
5855 version "1.0.0"
5856 resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794"
5857 dependencies:
5858 first-chunk-stream "^1.0.0"
5859 is-utf8 "^0.2.0"
5860
5861strip-bom@^2.0.0:
5862 version "2.0.0"
5863 resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
5864 dependencies:
5865 is-utf8 "^0.2.0"
5866
5867strip-bom@^3.0.0:
5868 version "3.0.0"
5869 resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
5870
5871strip-eof@^1.0.0:
5872 version "1.0.0"
5873 resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
5874
5875strip-indent@^1.0.1:
5876 version "1.0.1"
5877 resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
5878 dependencies:
5879 get-stdin "^4.0.1"
5880
5881strip-json-comments@~2.0.1:
5882 version "2.0.1"
5883 resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
5884
5885sumchecker@^1.2.0:
5886 version "1.3.1"
5887 resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-1.3.1.tgz#79bb3b4456dd04f18ebdbc0d703a1d1daec5105d"
5888 dependencies:
5889 debug "^2.2.0"
5890 es6-promise "^4.0.5"
5891
5892sumchecker@^2.0.1, sumchecker@^2.0.2:
5893 version "2.0.2"
5894 resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-2.0.2.tgz#0f42c10e5d05da5d42eea3e56c3399a37d6c5b3e"
5895 dependencies:
5896 debug "^2.2.0"
5897
5898supports-color@^2.0.0:
5899 version "2.0.0"
5900 resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
5901
5902supports-color@^4.0.0:
5903 version "4.4.0"
5904 resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e"
5905 dependencies:
5906 has-flag "^2.0.0"
5907
5908sver-compat@^1.5.0:
5909 version "1.5.0"
5910 resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8"
5911 dependencies:
5912 es6-iterator "^2.0.1"
5913 es6-symbol "^3.1.1"
5914
5915symbol-observable@^1.0.1:
5916 version "1.0.4"
5917 resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
5918
5919table@^4.0.1:
5920 version "4.0.1"
5921 resolved "https://registry.yarnpkg.com/table/-/table-4.0.1.tgz#a8116c133fac2c61f4a420ab6cdf5c4d61f0e435"
5922 dependencies:
5923 ajv "^4.7.0"
5924 ajv-keywords "^1.0.0"
5925 chalk "^1.1.1"
5926 lodash "^4.0.0"
5927 slice-ansi "0.0.4"
5928 string-width "^2.0.0"
5929
5930tar-pack@^3.4.0:
5931 version "3.4.0"
5932 resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984"
5933 dependencies:
5934 debug "^2.2.0"
5935 fstream "^1.0.10"
5936 fstream-ignore "^1.0.5"
5937 once "^1.3.3"
5938 readable-stream "^2.1.4"
5939 rimraf "^2.5.1"
5940 tar "^2.2.1"
5941 uid-number "^0.0.6"
5942
5943tar@^2.0.0, tar@^2.2.1:
5944 version "2.2.1"
5945 resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
5946 dependencies:
5947 block-stream "*"
5948 fstream "^1.0.2"
5949 inherits "2"
5950
5951tar@^4.0.2:
5952 version "4.0.2"
5953 resolved "https://registry.yarnpkg.com/tar/-/tar-4.0.2.tgz#e8e22bf3eec330e5c616d415a698395e294e8fad"
5954 dependencies:
5955 chownr "^1.0.1"
5956 minipass "^2.2.1"
5957 minizlib "^1.0.4"
5958 mkdirp "^0.5.0"
5959 yallist "^3.0.2"
5960
5961tempfile@^1.1.1:
5962 version "1.1.1"
5963 resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-1.1.1.tgz#5bcc4eaecc4ab2c707d8bc11d99ccc9a2cb287f2"
5964 dependencies:
5965 os-tmpdir "^1.0.0"
5966 uuid "^2.0.1"
5967
5968term-size@^1.2.0:
5969 version "1.2.0"
5970 resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69"
5971 dependencies:
5972 execa "^0.7.0"
5973
5974text-table@~0.2.0:
5975 version "0.2.0"
5976 resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
5977
5978throttleit@0.0.2:
5979 version "0.0.2"
5980 resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf"
5981
5982through2-filter@^2.0.0:
5983 version "2.0.0"
5984 resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec"
5985 dependencies:
5986 through2 "~2.0.0"
5987 xtend "~4.0.0"
5988
5989through2@^0.6.0, through2@^0.6.1, through2@~0.6.3:
5990 version "0.6.5"
5991 resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48"
5992 dependencies:
5993 readable-stream ">=1.0.33-1 <1.1.0-0"
5994 xtend ">=4.0.0 <4.1.0-0"
5995
5996through2@^2.0.0, through2@^2.0.1, through2@~2.0.0:
5997 version "2.0.3"
5998 resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
5999 dependencies:
6000 readable-stream "^2.1.5"
6001 xtend "~4.0.1"
6002
6003through2@~0.2.3:
6004 version "0.2.3"
6005 resolved "https://registry.yarnpkg.com/through2/-/through2-0.2.3.tgz#eb3284da4ea311b6cc8ace3653748a52abf25a3f"
6006 dependencies:
6007 readable-stream "~1.1.9"
6008 xtend "~2.1.1"
6009
6010through2@~0.5.1:
6011 version "0.5.1"
6012 resolved "https://registry.yarnpkg.com/through2/-/through2-0.5.1.tgz#dfdd012eb9c700e2323fd334f38ac622ab372da7"
6013 dependencies:
6014 readable-stream "~1.0.17"
6015 xtend "~3.0.0"
6016
6017through@^2.3.6:
6018 version "2.3.8"
6019 resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
6020
6021tildify@^1.0.0:
6022 version "1.2.0"
6023 resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a"
6024 dependencies:
6025 os-homedir "^1.0.0"
6026
6027time-stamp@^1.0.0:
6028 version "1.1.0"
6029 resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3"
6030
6031timed-out@^4.0.0:
6032 version "4.0.1"
6033 resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
6034
6035tmp@0.0.28:
6036 version "0.0.28"
6037 resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120"
6038 dependencies:
6039 os-tmpdir "~1.0.1"
6040
6041tmp@^0.0.33:
6042 version "0.0.33"
6043 resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
6044 dependencies:
6045 os-tmpdir "~1.0.2"
6046
6047to-absolute-glob@^0.1.1:
6048 version "0.1.1"
6049 resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f"
6050 dependencies:
6051 extend-shallow "^2.0.1"
6052
6053to-array@0.1.4:
6054 version "0.1.4"
6055 resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"
6056
6057to-fast-properties@^1.0.3:
6058 version "1.0.3"
6059 resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
6060
6061topo@1.x.x:
6062 version "1.1.0"
6063 resolved "https://registry.yarnpkg.com/topo/-/topo-1.1.0.tgz#e9d751615d1bb87dc865db182fa1ca0a5ef536d5"
6064 dependencies:
6065 hoek "2.x.x"
6066
6067touch@0.0.3:
6068 version "0.0.3"
6069 resolved "https://registry.yarnpkg.com/touch/-/touch-0.0.3.tgz#51aef3d449571d4f287a5d87c9c8b49181a0db1d"
6070 dependencies:
6071 nopt "~1.0.10"
6072
6073tough-cookie@~2.3.0:
6074 version "2.3.2"
6075 resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a"
6076 dependencies:
6077 punycode "^1.4.1"
6078
6079"traverse@>=0.3.0 <0.4":
6080 version "0.3.9"
6081 resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9"
6082
6083trim-newlines@^1.0.0:
6084 version "1.0.0"
6085 resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
6086
6087trim-right@^1.0.1:
6088 version "1.0.1"
6089 resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
6090
6091"true-case-path@^1.0.2":
6092 version "1.0.2"
6093 resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.2.tgz#7ec91130924766c7f573be3020c34f8fdfd00d62"
6094 dependencies:
6095 glob "^6.0.4"
6096
6097truncate-utf8-bytes@^1.0.0:
6098 version "1.0.2"
6099 resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b"
6100 dependencies:
6101 utf8-byte-length "^1.0.1"
6102
6103tryit@^1.0.1:
6104 version "1.0.3"
6105 resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
6106
6107tunnel-agent@^0.6.0:
6108 version "0.6.0"
6109 resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
6110 dependencies:
6111 safe-buffer "^5.0.1"
6112
6113tunnel-agent@~0.4.1:
6114 version "0.4.3"
6115 resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
6116
6117tweetnacl@^0.14.3, tweetnacl@~0.14.0:
6118 version "0.14.5"
6119 resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
6120
6121type-check@~0.3.2:
6122 version "0.3.2"
6123 resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
6124 dependencies:
6125 prelude-ls "~1.1.2"
6126
6127typedarray@^0.0.6:
6128 version "0.0.6"
6129 resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
6130
6131ua-parser-js@^0.7.9:
6132 version "0.7.14"
6133 resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca"
6134
6135uid-number@^0.0.6:
6136 version "0.0.6"
6137 resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
6138
6139ultron@1.0.x:
6140 version "1.0.2"
6141 resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa"
6142
6143unc-path-regex@^0.1.0:
6144 version "0.1.2"
6145 resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
6146
6147underscore@^1.6.0:
6148 version "1.8.3"
6149 resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"
6150
6151undertaker-registry@^1.0.0:
6152 version "1.0.0"
6153 resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.0.tgz#2da716c765999d8c94b9f9ed2c006df4923b052b"
6154
6155undertaker@^1.0.0:
6156 version "1.2.0"
6157 resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.2.0.tgz#339da4646252d082dc378e708067299750e11b49"
6158 dependencies:
6159 arr-flatten "^1.0.1"
6160 arr-map "^2.0.0"
6161 bach "^1.0.0"
6162 collection-map "^1.0.0"
6163 es6-weak-map "^2.0.1"
6164 last-run "^1.1.0"
6165 object.defaults "^1.0.0"
6166 object.reduce "^1.0.0"
6167 undertaker-registry "^1.0.0"
6168
6169unique-stream@^2.0.2:
6170 version "2.2.1"
6171 resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369"
6172 dependencies:
6173 json-stable-stringify "^1.0.0"
6174 through2-filter "^2.0.0"
6175
6176unique-string@^1.0.0:
6177 version "1.0.0"
6178 resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a"
6179 dependencies:
6180 crypto-random-string "^1.0.0"
6181
6182universalify@^0.1.0:
6183 version "0.1.1"
6184 resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7"
6185
6186untildify@^3.0.2:
6187 version "3.0.2"
6188 resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.2.tgz#7f1f302055b3fea0f3e81dc78eb36766cb65e3f1"
6189
6190unzip-response@^2.0.1:
6191 version "2.0.1"
6192 resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
6193
6194update-notifier@^2.2.0:
6195 version "2.2.0"
6196 resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.2.0.tgz#1b5837cf90c0736d88627732b661c138f86de72f"
6197 dependencies:
6198 boxen "^1.0.0"
6199 chalk "^1.0.0"
6200 configstore "^3.0.0"
6201 import-lazy "^2.1.0"
6202 is-npm "^1.0.0"
6203 latest-version "^3.0.0"
6204 semver-diff "^2.0.0"
6205 xdg-basedir "^3.0.0"
6206
6207url-parse-lax@^1.0.0:
6208 version "1.0.0"
6209 resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73"
6210 dependencies:
6211 prepend-http "^1.0.1"
6212
6213user-home@^1.1.1:
6214 version "1.1.1"
6215 resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190"
6216
6217utf8-byte-length@^1.0.1:
6218 version "1.0.4"
6219 resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61"
6220
6221util-deprecate@~1.0.1:
6222 version "1.0.2"
6223 resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
6224
6225utils-merge@1.0.0:
6226 version "1.0.0"
6227 resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8"
6228
6229uuid-1345@^0.99.6:
6230 version "0.99.6"
6231 resolved "https://registry.yarnpkg.com/uuid-1345/-/uuid-1345-0.99.6.tgz#b1270ae015a7721c7adec6c46ec169c6098aed40"
6232 dependencies:
6233 macaddress "^0.2.7"
6234
6235uuid@^2.0.1:
6236 version "2.0.3"
6237 resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a"
6238
6239uuid@^3.0.0, uuid@^3.0.1:
6240 version "3.1.0"
6241 resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
6242
6243v8flags@^2.0.9:
6244 version "2.1.1"
6245 resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4"
6246 dependencies:
6247 user-home "^1.1.1"
6248
6249vali-date@^1.0.0:
6250 version "1.0.0"
6251 resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6"
6252
6253validate-npm-package-license@^3.0.1:
6254 version "3.0.1"
6255 resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
6256 dependencies:
6257 spdx-correct "~1.0.0"
6258 spdx-expression-parse "~1.0.0"
6259
6260verror@1.10.0:
6261 version "1.10.0"
6262 resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
6263 dependencies:
6264 assert-plus "^1.0.0"
6265 core-util-is "1.0.2"
6266 extsprintf "^1.2.0"
6267
6268vinyl-fs@^1.0.0:
6269 version "1.0.0"
6270 resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-1.0.0.tgz#d15752e68c2dad74364e7e853473735354692edf"
6271 dependencies:
6272 duplexify "^3.2.0"
6273 glob-stream "^4.0.1"
6274 glob-watcher "^0.0.8"
6275 graceful-fs "^3.0.0"
6276 merge-stream "^0.1.7"
6277 mkdirp "^0.5.0"
6278 object-assign "^2.0.0"
6279 strip-bom "^1.0.0"
6280 through2 "^0.6.1"
6281 vinyl "^0.4.0"
6282
6283vinyl-fs@^2.0.0:
6284 version "2.4.4"
6285 resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.4.tgz#be6ff3270cb55dfd7d3063640de81f25d7532239"
6286 dependencies:
6287 duplexify "^3.2.0"
6288 glob-stream "^5.3.2"
6289 graceful-fs "^4.0.0"
6290 gulp-sourcemaps "1.6.0"
6291 is-valid-glob "^0.3.0"
6292 lazystream "^1.0.0"
6293 lodash.isequal "^4.0.0"
6294 merge-stream "^1.0.0"
6295 mkdirp "^0.5.0"
6296 object-assign "^4.0.0"
6297 readable-stream "^2.0.4"
6298 strip-bom "^2.0.0"
6299 strip-bom-stream "^1.0.0"
6300 through2 "^2.0.0"
6301 through2-filter "^2.0.0"
6302 vali-date "^1.0.0"
6303 vinyl "^1.0.0"
6304
6305vinyl-sourcemaps-apply@^0.2.0:
6306 version "0.2.1"
6307 resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705"
6308 dependencies:
6309 source-map "^0.5.1"
6310
6311vinyl@^0.4.0:
6312 version "0.4.6"
6313 resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847"
6314 dependencies:
6315 clone "^0.2.0"
6316 clone-stats "^0.0.1"
6317
6318vinyl@^0.5.0:
6319 version "0.5.3"
6320 resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde"
6321 dependencies:
6322 clone "^1.0.0"
6323 clone-stats "^0.0.1"
6324 replace-ext "0.0.1"
6325
6326vinyl@^1.0.0:
6327 version "1.2.0"
6328 resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884"
6329 dependencies:
6330 clone "^1.0.0"
6331 clone-stats "^0.0.1"
6332 replace-ext "0.0.1"
6333
6334warning@^3.0.0:
6335 version "3.0.0"
6336 resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c"
6337 dependencies:
6338 loose-envify "^1.0.0"
6339
6340whatwg-fetch@>=0.10.0:
6341 version "2.0.3"
6342 resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
6343
6344which-module@^1.0.0:
6345 version "1.0.0"
6346 resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
6347
6348which-module@^2.0.0:
6349 version "2.0.0"
6350 resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
6351
6352which@1, which@^1.2.12, which@^1.2.9:
6353 version "1.3.0"
6354 resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
6355 dependencies:
6356 isexe "^2.0.0"
6357
6358wide-align@^1.1.0:
6359 version "1.1.2"
6360 resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
6361 dependencies:
6362 string-width "^1.0.2"
6363
6364widest-line@^1.0.0:
6365 version "1.0.0"
6366 resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c"
6367 dependencies:
6368 string-width "^1.0.1"
6369
6370window-size@^0.1.4:
6371 version "0.1.4"
6372 resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876"
6373
6374windows-notification-state@^1.3.0:
6375 version "1.3.0"
6376 resolved "https://registry.yarnpkg.com/windows-notification-state/-/windows-notification-state-1.3.0.tgz#9f727782ecac8d920a408f1026be6f8e08fd902e"
6377 dependencies:
6378 bindings "^1.2.1"
6379 nan "^2.4.0"
6380
6381windows-quiet-hours@^1.2.2:
6382 version "1.2.4"
6383 resolved "https://registry.yarnpkg.com/windows-quiet-hours/-/windows-quiet-hours-1.2.4.tgz#7ae57b13fe9423f2635ac0ed5791f674401a7c7a"
6384 dependencies:
6385 bindings "^1.3.0"
6386 nan "^2.7.0"
6387
6388winreg@1.2.2:
6389 version "1.2.2"
6390 resolved "https://registry.yarnpkg.com/winreg/-/winreg-1.2.2.tgz#8509afa3b71c5bbd110a6d7c6247ec67736c598f"
6391
6392word-wrap@^1.0.3:
6393 version "1.2.3"
6394 resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
6395
6396wordwrap@~1.0.0:
6397 version "1.0.0"
6398 resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
6399
6400wrap-ansi@^2.0.0:
6401 version "2.1.0"
6402 resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
6403 dependencies:
6404 string-width "^1.0.1"
6405 strip-ansi "^3.0.1"
6406
6407wrappy@1:
6408 version "1.0.2"
6409 resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
6410
6411wreck@^6.3.0:
6412 version "6.3.0"
6413 resolved "https://registry.yarnpkg.com/wreck/-/wreck-6.3.0.tgz#a1369769f07bbb62d6a378336a7871fc773c740b"
6414 dependencies:
6415 boom "2.x.x"
6416 hoek "2.x.x"
6417
6418write-file-atomic@^2.0.0:
6419 version "2.3.0"
6420 resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab"
6421 dependencies:
6422 graceful-fs "^4.1.11"
6423 imurmurhash "^0.1.4"
6424 signal-exit "^3.0.2"
6425
6426write@^0.2.1:
6427 version "0.2.1"
6428 resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
6429 dependencies:
6430 mkdirp "^0.5.1"
6431
6432ws@1.1.2:
6433 version "1.1.2"
6434 resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f"
6435 dependencies:
6436 options ">=0.0.5"
6437 ultron "1.0.x"
6438
6439ws@1.1.4:
6440 version "1.1.4"
6441 resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.4.tgz#57f40d036832e5f5055662a397c4de76ed66bf61"
6442 dependencies:
6443 options ">=0.0.5"
6444 ultron "1.0.x"
6445
6446wtf-8@1.0.0:
6447 version "1.0.0"
6448 resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a"
6449
6450xdg-basedir@^3.0.0:
6451 version "3.0.0"
6452 resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4"
6453
6454xelement@^1.0.16:
6455 version "1.0.16"
6456 resolved "https://registry.yarnpkg.com/xelement/-/xelement-1.0.16.tgz#900bb46c20fc2dffadff778a9d2dc36699d0ff7e"
6457 dependencies:
6458 sax "^1.2.1"
6459
6460xmlbuilder@8.2.2:
6461 version "8.2.2"
6462 resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773"
6463
6464xmldom@0.1.x:
6465 version "0.1.27"
6466 resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9"
6467
6468xmlhttprequest-ssl@1.5.3:
6469 version "1.5.3"
6470 resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d"
6471
6472xmlhttprequest@^1.8.0:
6473 version "1.8.0"
6474 resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc"
6475
6476"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1:
6477 version "4.0.1"
6478 resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
6479
6480xtend@~2.1.1:
6481 version "2.1.2"
6482 resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b"
6483 dependencies:
6484 object-keys "~0.4.0"
6485
6486xtend@~3.0.0:
6487 version "3.0.0"
6488 resolved "https://registry.yarnpkg.com/xtend/-/xtend-3.0.0.tgz#5cce7407baf642cba7becda568111c493f59665a"
6489
6490y18n@^3.2.0, y18n@^3.2.1:
6491 version "3.2.1"
6492 resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
6493
6494yallist@^2.1.2:
6495 version "2.1.2"
6496 resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
6497
6498yallist@^3.0.0, yallist@^3.0.2:
6499 version "3.0.2"
6500 resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"
6501
6502yargs-parser@^5.0.0:
6503 version "5.0.0"
6504 resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
6505 dependencies:
6506 camelcase "^3.0.0"
6507
6508yargs-parser@^7.0.0:
6509 version "7.0.0"
6510 resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"
6511 dependencies:
6512 camelcase "^4.1.0"
6513
6514yargs@^3.28.0:
6515 version "3.32.0"
6516 resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995"
6517 dependencies:
6518 camelcase "^2.0.1"
6519 cliui "^3.0.3"
6520 decamelize "^1.1.1"
6521 os-locale "^1.4.0"
6522 string-width "^1.0.1"
6523 window-size "^0.1.4"
6524 y18n "^3.2.0"
6525
6526yargs@^7.0.0, yargs@^7.0.2:
6527 version "7.1.0"
6528 resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"
6529 dependencies:
6530 camelcase "^3.0.0"
6531 cliui "^3.2.0"
6532 decamelize "^1.1.1"
6533 get-caller-file "^1.0.1"
6534 os-locale "^1.4.0"
6535 read-pkg-up "^1.0.1"
6536 require-directory "^2.1.1"
6537 require-main-filename "^1.0.1"
6538 set-blocking "^2.0.0"
6539 string-width "^1.0.2"
6540 which-module "^1.0.0"
6541 y18n "^3.2.1"
6542 yargs-parser "^5.0.0"
6543
6544yargs@^8.0.2:
6545 version "8.0.2"
6546 resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"
6547 dependencies:
6548 camelcase "^4.1.0"
6549 cliui "^3.2.0"
6550 decamelize "^1.1.1"
6551 get-caller-file "^1.0.1"
6552 os-locale "^2.0.0"
6553 read-pkg-up "^2.0.0"
6554 require-directory "^2.1.1"
6555 require-main-filename "^1.0.1"
6556 set-blocking "^2.0.0"
6557 string-width "^2.0.0"
6558 which-module "^2.0.0"
6559 y18n "^3.2.1"
6560 yargs-parser "^7.0.0"
6561
6562yauzl@2.4.1:
6563 version "2.4.1"
6564 resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"
6565 dependencies:
6566 fd-slicer "~1.0.1"
6567
6568yeast@0.1.2:
6569 version "0.1.2"
6570 resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"