aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.babelrc19
-rw-r--r--.eslintignore1
-rw-r--r--.github/stale.yml25
-rw-r--r--.gitignore1
-rw-r--r--.npmrc1
-rw-r--r--.nvmrc1
-rw-r--r--.travis.yml26
-rw-r--r--.vscode/launch.json50
-rw-r--r--CHANGELOG.md72
-rw-r--r--CONTRIBUTING.md2
-rw-r--r--README.md28
-rw-r--r--appveyor.yml16
-rw-r--r--electron-builder.yml6
-rw-r--r--gulpfile.babel.js9
-rw-r--r--misty.yml6
-rw-r--r--package-lock.json12102
-rw-r--r--package.json73
-rw-r--r--src/I18n.js12
-rw-r--r--src/actions/settings.js4
-rw-r--r--src/api/FeaturesApi.js4
-rw-r--r--src/api/LocalApi.js8
-rw-r--r--src/api/server/LocalApi.js27
-rw-r--r--src/api/server/ServerApi.js68
-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.js131
-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.js18
-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.js3
-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.js7
-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.js10
-rw-r--r--src/components/settings/user/EditUserForm.js3
-rw-r--r--src/components/subscription/SubscriptionForm.js3
-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.js3
-rw-r--r--src/components/ui/Link.js4
-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.js3
-rw-r--r--src/config.js17
-rw-r--r--src/containers/auth/AuthLayoutContainer.js19
-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.js13
-rw-r--r--src/containers/settings/AccountScreen.js3
-rw-r--r--src/containers/settings/EditServiceScreen.js14
-rw-r--r--src/containers/settings/EditSettingsScreen.js65
-rw-r--r--src/containers/settings/EditUserScreen.js3
-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.js3
-rw-r--r--src/containers/subscription/SubscriptionPopupScreen.js3
-rw-r--r--src/electron/Settings.js45
-rw-r--r--src/electron/ipc-api/settings.js6
-rw-r--r--src/environment.js12
-rw-r--r--src/helpers/validation-helpers.js35
-rw-r--r--src/i18n/locales/ca.json48
-rw-r--r--src/i18n/locales/cs.json48
-rw-r--r--src/i18n/locales/de.json54
-rw-r--r--src/i18n/locales/el.json48
-rw-r--r--src/i18n/locales/en-US.json52
-rw-r--r--src/i18n/locales/es.json60
-rw-r--r--src/i18n/locales/fr.json98
-rw-r--r--src/i18n/locales/ga.json50
-rw-r--r--src/i18n/locales/hr.json70
-rw-r--r--src/i18n/locales/hu.json48
-rw-r--r--src/i18n/locales/id.json48
-rw-r--r--src/i18n/locales/it.json66
-rw-r--r--src/i18n/locales/ja.json48
-rw-r--r--src/i18n/locales/ka.json48
-rw-r--r--src/i18n/locales/nl-BE.json48
-rw-r--r--src/i18n/locales/nl.json50
-rw-r--r--src/i18n/locales/pl.json80
-rw-r--r--src/i18n/locales/pt-BR.json60
-rw-r--r--src/i18n/locales/pt.json216
-rw-r--r--src/i18n/locales/ru.json62
-rw-r--r--src/i18n/locales/sk.json48
-rw-r--r--src/i18n/locales/sr.json48
-rw-r--r--src/i18n/locales/tr.json58
-rw-r--r--src/i18n/locales/uk.json74
-rw-r--r--src/i18n/locales/zh-TW.json52
-rw-r--r--src/index.html13
-rw-r--r--src/index.js35
-rw-r--r--src/lib/Menu.js598
-rw-r--r--src/lib/analytics.js6
-rw-r--r--src/models/News.js8
-rw-r--r--src/models/Plan.js4
-rw-r--r--src/models/Recipe.js14
-rw-r--r--src/models/RecipePreview.js8
-rw-r--r--src/models/Service.js5
-rw-r--r--src/models/Settings.js34
-rw-r--r--src/models/User.js19
-rw-r--r--src/stores/AppStore.js72
-rw-r--r--src/stores/FeaturesStore.js6
-rw-r--r--src/stores/RecipesStore.js8
-rw-r--r--src/stores/RequestStore.js4
-rw-r--r--src/stores/ServicesStore.js58
-rw-r--r--src/stores/SettingsStore.js121
-rw-r--r--src/stores/UIStore.js4
-rw-r--r--src/stores/UserStore.js24
-rw-r--r--src/styles/animations.scss54
-rw-r--r--src/styles/auth.scss121
-rw-r--r--src/styles/badge.scss19
-rw-r--r--src/styles/button.scss97
-rw-r--r--src/styles/colors.scss48
-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.scss160
-rw-r--r--src/styles/main.scss2
-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.scss354
-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.scss80
-rw-r--r--src/styles/toggle.scss72
-rw-r--r--src/styles/tooltip.scss2
-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/webview/darkmode.js28
-rw-r--r--src/webview/plugin.js38
-rw-r--r--yarn.lock6517
167 files changed, 16095 insertions, 8340 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/.github/stale.yml b/.github/stale.yml
new file mode 100644
index 000000000..59a443d96
--- /dev/null
+++ b/.github/stale.yml
@@ -0,0 +1,25 @@
1# Configuration for probot-stale - https://github.com/probot/stale
2
3# Number of days of inactivity before an Issue or Pull Request becomes stale
4daysUntilStale: 365 # 1 year
5
6# Number of days of inactivity before an Issue or Pull Request with the stale label is closed.
7# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
8daysUntilClose: -1 # Close the issue almost immediately. See: https://github.com/probot/stale/issues/131
9
10# Issues with these labels will never be considered stale
11exemptLabels:
12 - blocker
13 - security
14
15# Label to use when marking an issue as stale
16staleLabel: "[Status] Stale"
17
18# Comment to post when marking an issue as stale. Set to `false` to disable
19markComment: >
20 This issue has been automatically marked as stale because it has not had
21 recent activity. It will be closed if no further activity occurs. Thank you
22 for your contributions.
23
24# Comment to post when closing a stale issue. Set to `false` to disable
25closeComment: false
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
new file mode 100644
index 000000000..714ea4c61
--- /dev/null
+++ b/.nvmrc
@@ -0,0 +1 @@
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/.vscode/launch.json b/.vscode/launch.json
index a8300f84f..17d506895 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -9,7 +9,8 @@
9 "program": "${workspaceFolder}/build/index.js", 9 "program": "${workspaceFolder}/build/index.js",
10 "protocol": "inspector", 10 "protocol": "inspector",
11 "env": { 11 "env": {
12 "NODE_ENV": "development" 12 "NODE_ENV": "development",
13 "DEBUG": "*,-engine.io*,-socket.io*"
13 } 14 }
14 }, 15 },
15 { 16 {
@@ -18,9 +19,10 @@
18 "name": "Franz – Live API", 19 "name": "Franz – Live API",
19 "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron", 20 "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
20 "program": "${workspaceFolder}/build/index.js", 21 "program": "${workspaceFolder}/build/index.js",
21 "protocol": "inspector", 22 "protocol": "inspector",
22 "env": { 23 "env": {
23 "LIVE_API": "1" 24 "LIVE_API": "1",
25 "DEBUG": "*,-engine.io*,-socket.io*"
24 } 26 }
25 }, 27 },
26 { 28 {
@@ -31,7 +33,47 @@
31 "program": "${workspaceFolder}/build/index.js", 33 "program": "${workspaceFolder}/build/index.js",
32 "protocol": "inspector", 34 "protocol": "inspector",
33 "env": { 35 "env": {
34 "LOCAL_API": "1" 36 "LOCAL_API": "1",
37 "DEBUG": "*,-engine.io*,-socket.io*"
38 }
39 },
40 {
41 "type": "node",
42 "request": "launch",
43 "name": "(Win Sim) Franz - Test API",
44 "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
45 "program": "${workspaceFolder}/build/index.js",
46 "protocol": "inspector",
47 "env": {
48 "NODE_ENV": "development",
49 "OS_PLATFORM": "win32",
50 "DEBUG": "*,-engine.io*,-socket.io*"
51 }
52 },
53 {
54 "type": "node",
55 "request": "launch",
56 "name": "(Win Sim) Franz – Live API",
57 "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
58 "program": "${workspaceFolder}/build/index.js",
59 "protocol": "inspector",
60 "env": {
61 "LIVE_API": "1",
62 "OS_PLATFORM": "win32",
63 "DEBUG": "*,-engine.io*,-socket.io*"
64 }
65 },
66 {
67 "type": "node",
68 "request": "launch",
69 "name": "(Win Sim) Franz – Local API",
70 "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
71 "program": "${workspaceFolder}/build/index.js",
72 "protocol": "inspector",
73 "env": {
74 "LOCAL_API": "1",
75 "OS_PLATFORM": "win32",
76 "DEBUG": "*,-engine.io*,-socket.io*"
35 } 77 }
36 } 78 }
37 ] 79 ]
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2dd42eec2..38cba0829 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,75 @@
1<a name="5.0.0-beta.18"></a>
2# [5.0.0-beta.18](https://github.com/meetfranz/franz/compare/v5.0.0-beta.16...v5.0.0-beta.18) (2018-04-03)
3
4### General
5* **Translations:** Improved translations. **[A million thanks to the amazing community. 🎉](http://i18n.meetfranz.com/)**
6
7### Features
8
9* **App:** Add option to enable/disable hardware acceleration ([f720d30](https://github.com/meetfranz/franz/commit/f720d30))
10
11### Bug Fixes
12
13* **Windows:** Fix shortcuts for closing, minimizing, quitting and toggling fullscreen ([f720d30](https://github.com/meetfranz/franz/commit/f720d30))
14* **Windows:** Hide title bar when in fullscreen ([655a6ed](https://github.com/meetfranz/franz/commit/655a6ed))
15
16
17<a name="5.0.0-beta.17"></a>
18# [5.0.0-beta.17](https://github.com/meetfranz/franz/compare/v5.0.0-beta.16...v5.0.0-beta.17) (2018-03-20)
19
20### General
21
22* **App:** Various performance improvements
23* **Translations:** Improved translations. **[A million thanks to the amazing community. 🎉](http://i18n.meetfranz.com/)**
24
25
26### Features
27
28* **Windows:** Replace window frame with custom menu bar ([9af5fd0](https://github.com/meetfranz/franz/commit/9af5fd0))
29* **Electron:** Update electron to 1.8.4 ([b9c6616](https://github.com/meetfranz/franz/commit/b9c6616))
30* **Mac:** Add dock bounce when new update is available ([47885bb](https://github.com/meetfranz/franz/commit/47885bb))
31* **Services:** Improve performance when reordering services ([82e832c](https://github.com/meetfranz/franz/commit/82e832c))
32* **Translations:** Add option to translate error messages and system menus ([82e832c](https://github.com/meetfranz/franz/commit/82e832c))
33
34### Bug Fixes
35
36* **App:** Fix app reload when coming back from sleep ([dd9f447](https://github.com/meetfranz/franz/commit/dd9f447))
37* **App:** Fix issue with app not showing services when recipe has invalid version (e.g. mailbox.org) ([dd9f447](https://github.com/meetfranz/franz/commit/dd9f447))
38* **Linux:** Fix missing/flickering ubuntu tray icon ([592f00a](https://github.com/meetfranz/franz/commit/592f00a))
39* **Service Tabs:** Remove "delete service" context menu when not in development mode ([3a5c3f0](https://github.com/meetfranz/franz/commit/3a5c3f0))
40* **Windows:** Improve app window handling ([dd9f447](https://github.com/meetfranz/franz/commit/dd9f447))
41
42
43<a name="5.0.0-beta.16"></a>
44# [5.0.0-beta.16](https://github.com/meetfranz/franz/compare/v5.0.0-beta.15...v5.0.0-beta.16) (2018-02-23)
45
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))
48* **Translations:** Improved translations. **[A million thanks to the amazing community. 🎉](https://i18n.meetfranz.com/)**
49
50### Features
51* **App:** Invite Friends in Settings ([ab33c44](https://github.com/meetfranz/franz/commit/ab33c44))
52
53### Bug Fixes
54
55* **App:** Fix memory leak in recipe polling loop ([c99848f](https://github.com/meetfranz/franz/commit/c99848f))
56* **App:** Fix validation for side-by-side teamId & customURL ([bd51150](https://github.com/meetfranz/franz/commit/bd51150))
57* **App:** Reload Franz instead of all services one by one on sleep resume ([4e5f7af](https://github.com/meetfranz/franz/commit/4e5f7af))
58* **App:** Fix toggle buttons shown during import ([1220e2c](https://github.com/meetfranz/franz/commit/1220e2c))
59fix(App): Bugfix Fix memory leak in recipe polling loop
60* **App:** Fix invite screen [object Object] values ([81c4e99](https://github.com/meetfranz/franz/commit/81c4e99))
61* **App:** Fix Franz-wide form validation ([7618f51](https://github.com/meetfranz/franz/commit/7618f51))
62* **App:** Fix service tooltips not initialized properly ([8765b8f](https://github.com/meetfranz/franz/commit/8765b8f))
63* **Linux:** Invert tray icon color & add border for bright UI's ([0de9c60](https://github.com/meetfranz/franz/commit/0de9c60))
64
65
66
1<a name="5.0.0-beta.15"></a> 67<a name="5.0.0-beta.15"></a>
2# [5.0.0-beta.15](https://github.com/meetfranz/franz/compare/v5.0.0-beta.14...v5.0.0-beta.15) (2018-01-10) 68# [5.0.0-beta.15](https://github.com/meetfranz/franz/compare/v5.0.0-beta.14...v5.0.0-beta.15) (2018-01-10)
3 69
70### General
71
72* **Translations:** Improved translations. **[A million thanks to the amazing community. 🎉](http://i18n.meetfranz.com/)**
4 73
5### Features 74### Features
6 75
@@ -13,7 +82,6 @@
13* **Services:** Improve handling of external links ([e2d6edf](https://github.com/meetfranz/franz/commit/e2d6edf)) 82* **Services:** Improve handling of external links ([e2d6edf](https://github.com/meetfranz/franz/commit/e2d6edf))
14* **Services:** Improve user experience of service search ([7e784c6](https://github.com/meetfranz/franz/commit/7e784c6)) 83* **Services:** Improve user experience of service search ([7e784c6](https://github.com/meetfranz/franz/commit/7e784c6))
15* **Account:** Enable a user to delete their own account ([1f3df73](https://github.com/meetfranz/franz/commit/1f3df73)) 84* **Account:** Enable a user to delete their own account ([1f3df73](https://github.com/meetfranz/franz/commit/1f3df73))
16* **Translations:** Improved translations. **[A million thanks to the amazing community. 🎉](http://i18n.meetfranz.com/)**
17 85
18 86
19 87
@@ -48,7 +116,7 @@
48* **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))
49* **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))
50* **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))
51* **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/)**
52 120
53 121
54### 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 099100284..ff371b737 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
@@ -20,34 +20,23 @@ Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many mor
20#### Install Linux OS dependencies 20#### Install Linux OS dependencies
21[Guide: Linux distribution specific dependencies](docs/linux.md) 21[Guide: Linux distribution specific dependencies](docs/linux.md)
22 22
23#### Install yarn
24##### MacOS
25```bash
26$ brew install yarn
27```
28##### Windows
29[Download installer](https://yarnpkg.com/latest.msi)
30
31##### Linux
32[Install Yarn on Linux](https://yarnpkg.com/lang/en/docs/install/)
33
34#### Fix native modules to match current electron node version 23#### Fix native modules to match current electron node version
35```bash 24```bash
36$ yarn run rebuild 25$ npm run rebuild
37``` 26```
38 27
39### Run Franz Development App 28### Run Franz Development App
40Run these two commands __simultaneously__ in different console tabs. 29Run these two commands __simultaneously__ in different console tabs.
41 30
42```bash 31```bash
43$ yarn run dev 32$ npm run dev
44$ yarn start 33$ npm run start
45``` 34```
46Be aware that the development database will be reset regularly. 35Be aware that the development database will be reset regularly.
47 36
48## Packaging 37## Packaging
49```bash 38```bash
50$ yarn build 39$ npm run build
51``` 40```
52 41
53## How can I support the project? 42## How can I support the project?
@@ -60,12 +49,5 @@ Join the Franz community on [Slack](http://slack.franz.im) and get in touch with
60You can find all the Information at the [Plugins repository](https://github.com/meetfranz/plugins). 49You can find all the Information at the [Plugins repository](https://github.com/meetfranz/plugins).
61For questions feel free to ask in the [community Slack](http://slack.franz.im) 50For questions feel free to ask in the [community Slack](http://slack.franz.im)
62 51
63## Next steps
64- [ ] Create acceptance tests
65- [ ] Create Linux build
66- [ ] 5.0 stable release
67- [ ] Developer Documentation
68- [ ] Add translations
69
70## License 52## License
71Franz 5 is open-source licensed under the Apache-2.0 License. 53Franz 5 is open-source licensed under the Apache-2.0 License.
diff --git a/appveyor.yml b/appveyor.yml
index d9296b1f6..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 --x64 --ia32 25 - npm run build
24 26
25notifications: 27notifications:
26 - provider: Slack 28 - provider: Slack
diff --git a/electron-builder.yml b/electron-builder.yml
index 96bd63cc2..3e72da4ce 100644
--- a/electron-builder.yml
+++ b/electron-builder.yml
@@ -18,7 +18,11 @@ dmg:
18 18
19win: 19win:
20 icon: ./build-helpers/images/icon.ico 20 icon: ./build-helpers/images/icon.ico
21 target: nsis 21 target:
22 target: nsis
23 arch:
24 - x64
25 - ia32
22 26
23linux: 27linux:
24 icon: ./build-helpers/images/icons 28 icon: ./build-helpers/images/icons
diff --git a/gulpfile.babel.js b/gulpfile.babel.js
index 95b026f66..ad8adda2e 100644
--- a/gulpfile.babel.js
+++ b/gulpfile.babel.js
@@ -3,10 +3,10 @@ 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';
10 10
11import config from './package.json'; 11import config from './package.json';
12 12
@@ -49,7 +49,12 @@ function _shell(cmd, cb) {
49 }); 49 });
50} 50}
51 51
52const clean = () => del([paths.tmp, paths.dest]); 52const clean = (done) => {
53 removeSync(paths.tmp);
54 removeSync(paths.dest);
55
56 done();
57};
53export { clean }; 58export { clean };
54 59
55export function mvSrc() { 60export function mvSrc() {
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..1dcd57e01
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,12102 @@
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 "abbrev": {
1111 "version": "1.1.1",
1112 "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
1113 "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
1114 "dev": true
1115 },
1116 "accepts": {
1117 "version": "1.0.7",
1118 "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.0.7.tgz",
1119 "integrity": "sha1-W1AftPBwQwmWTM2wSBclQSCNqxo=",
1120 "dev": true,
1121 "requires": {
1122 "mime-types": "~1.0.0",
1123 "negotiator": "0.4.7"
1124 },
1125 "dependencies": {
1126 "mime-types": {
1127 "version": "1.0.2",
1128 "resolved": "http://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz",
1129 "integrity": "sha1-mVrhOSq4r/y/yyZB3QVOlDwNXc4=",
1130 "dev": true
1131 }
1132 }
1133 },
1134 "acorn": {
1135 "version": "5.7.3",
1136 "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
1137 "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
1138 "dev": true
1139 },
1140 "acorn-jsx": {
1141 "version": "3.0.1",
1142 "resolved": "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
1143 "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
1144 "dev": true,
1145 "requires": {
1146 "acorn": "^3.0.4"
1147 },
1148 "dependencies": {
1149 "acorn": {
1150 "version": "3.3.0",
1151 "resolved": "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
1152 "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
1153 "dev": true
1154 }
1155 }
1156 },
1157 "address-rfc2822": {
1158 "version": "2.0.4",
1159 "resolved": "https://registry.npmjs.org/address-rfc2822/-/address-rfc2822-2.0.4.tgz",
1160 "integrity": "sha1-Lb07jWwt4elXwahUncAS1Au8NDE=",
1161 "requires": {
1162 "email-addresses": "^3.0.0"
1163 }
1164 },
1165 "after": {
1166 "version": "0.8.2",
1167 "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
1168 "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
1169 "dev": true
1170 },
1171 "ajv": {
1172 "version": "5.5.2",
1173 "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
1174 "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
1175 "dev": true,
1176 "requires": {
1177 "co": "^4.6.0",
1178 "fast-deep-equal": "^1.0.0",
1179 "fast-json-stable-stringify": "^2.0.0",
1180 "json-schema-traverse": "^0.3.0"
1181 }
1182 },
1183 "ajv-keywords": {
1184 "version": "2.1.1",
1185 "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
1186 "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
1187 "dev": true
1188 },
1189 "amdefine": {
1190 "version": "1.0.1",
1191 "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
1192 "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
1193 "dev": true
1194 },
1195 "ansi-align": {
1196 "version": "2.0.0",
1197 "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
1198 "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
1199 "dev": true,
1200 "requires": {
1201 "string-width": "^2.0.0"
1202 },
1203 "dependencies": {
1204 "ansi-regex": {
1205 "version": "3.0.0",
1206 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
1207 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
1208 "dev": true
1209 },
1210 "is-fullwidth-code-point": {
1211 "version": "2.0.0",
1212 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
1213 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
1214 "dev": true
1215 },
1216 "string-width": {
1217 "version": "2.1.1",
1218 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
1219 "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
1220 "dev": true,
1221 "requires": {
1222 "is-fullwidth-code-point": "^2.0.0",
1223 "strip-ansi": "^4.0.0"
1224 }
1225 },
1226 "strip-ansi": {
1227 "version": "4.0.0",
1228 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
1229 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
1230 "dev": true,
1231 "requires": {
1232 "ansi-regex": "^3.0.0"
1233 }
1234 }
1235 }
1236 },
1237 "ansi-colors": {
1238 "version": "1.1.0",
1239 "resolved": "http://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz",
1240 "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==",
1241 "dev": true,
1242 "requires": {
1243 "ansi-wrap": "^0.1.0"
1244 }
1245 },
1246 "ansi-escapes": {
1247 "version": "3.1.0",
1248 "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
1249 "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==",
1250 "dev": true
1251 },
1252 "ansi-gray": {
1253 "version": "0.1.1",
1254 "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz",
1255 "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=",
1256 "requires": {
1257 "ansi-wrap": "0.1.0"
1258 }
1259 },
1260 "ansi-regex": {
1261 "version": "2.1.1",
1262 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
1263 "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
1264 },
1265 "ansi-styles": {
1266 "version": "2.2.1",
1267 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
1268 "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
1269 },
1270 "ansi-wrap": {
1271 "version": "0.1.0",
1272 "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
1273 "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768="
1274 },
1275 "anymatch": {
1276 "version": "2.0.0",
1277 "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
1278 "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
1279 "dev": true,
1280 "requires": {
1281 "micromatch": "^3.1.4",
1282 "normalize-path": "^2.1.1"
1283 }
1284 },
1285 "app-builder-bin": {
1286 "version": "2.5.1",
1287 "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-2.5.1.tgz",
1288 "integrity": "sha512-Hm+eyyfQCs5N5avLAw3w9Cf1S5TX/t6ecAfHusbzCDh/rLKLKYso2vwDWH4OQZ8uWLnuJwaAUDf3PstRcn0H+A==",
1289 "dev": true
1290 },
1291 "app-builder-lib": {
1292 "version": "20.36.2",
1293 "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-20.36.2.tgz",
1294 "integrity": "sha512-5FxLnWI13t0LLmh2QjmPx3KW/xhj67su7UxdCzQgULsUmYurdPx8yAOb9YxoX+RpR08inqt+H3GBOJlqSSrVgg==",
1295 "dev": true,
1296 "requires": {
1297 "7zip-bin": "~4.1.0",
1298 "app-builder-bin": "2.5.1",
1299 "async-exit-hook": "^2.0.1",
1300 "bluebird-lst": "^1.0.6",
1301 "builder-util": "9.3.0",
1302 "builder-util-runtime": "8.0.2",
1303 "chromium-pickle-js": "^0.2.0",
1304 "debug": "^4.1.0",
1305 "ejs": "^2.6.1",
1306 "electron-osx-sign": "0.4.11",
1307 "electron-publish": "20.36.0",
1308 "fs-extra-p": "^7.0.0",
1309 "hosted-git-info": "^2.7.1",
1310 "is-ci": "^1.2.1",
1311 "isbinaryfile": "^3.0.3",
1312 "js-yaml": "^3.12.0",
1313 "lazy-val": "^1.0.3",
1314 "minimatch": "^3.0.4",
1315 "normalize-package-data": "^2.4.0",
1316 "plist": "^3.0.1",
1317 "read-config-file": "3.2.0",
1318 "sanitize-filename": "^1.6.1",
1319 "semver": "^5.6.0",
1320 "temp-file": "^3.2.0"
1321 },
1322 "dependencies": {
1323 "debug": {
1324 "version": "4.1.0",
1325 "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz",
1326 "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==",
1327 "dev": true,
1328 "requires": {
1329 "ms": "^2.1.1"
1330 }
1331 },
1332 "ms": {
1333 "version": "2.1.1",
1334 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
1335 "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
1336 "dev": true
1337 }
1338 }
1339 },
1340 "append-buffer": {
1341 "version": "1.0.2",
1342 "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz",
1343 "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=",
1344 "dev": true,
1345 "requires": {
1346 "buffer-equal": "^1.0.0"
1347 }
1348 },
1349 "applescript": {
1350 "version": "1.0.0",
1351 "resolved": "https://registry.npmjs.org/applescript/-/applescript-1.0.0.tgz",
1352 "integrity": "sha1-u4evVoytA0pOSMS9r2Bno6JwExc="
1353 },
1354 "aproba": {
1355 "version": "1.2.0",
1356 "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
1357 "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
1358 "dev": true
1359 },
1360 "archy": {
1361 "version": "1.0.0",
1362 "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
1363 "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA="
1364 },
1365 "are-we-there-yet": {
1366 "version": "1.1.5",
1367 "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
1368 "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
1369 "dev": true,
1370 "requires": {
1371 "delegates": "^1.0.0",
1372 "readable-stream": "^2.0.6"
1373 }
1374 },
1375 "argparse": {
1376 "version": "1.0.10",
1377 "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
1378 "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
1379 "requires": {
1380 "sprintf-js": "~1.0.2"
1381 }
1382 },
1383 "arr-diff": {
1384 "version": "4.0.0",
1385 "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
1386 "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
1387 },
1388 "arr-filter": {
1389 "version": "1.1.2",
1390 "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz",
1391 "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=",
1392 "dev": true,
1393 "requires": {
1394 "make-iterator": "^1.0.0"
1395 }
1396 },
1397 "arr-flatten": {
1398 "version": "1.1.0",
1399 "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
1400 "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
1401 },
1402 "arr-map": {
1403 "version": "2.0.2",
1404 "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz",
1405 "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=",
1406 "dev": true,
1407 "requires": {
1408 "make-iterator": "^1.0.0"
1409 }
1410 },
1411 "arr-union": {
1412 "version": "3.1.0",
1413 "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
1414 "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
1415 },
1416 "array-differ": {
1417 "version": "1.0.0",
1418 "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
1419 "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
1420 "dev": true
1421 },
1422 "array-each": {
1423 "version": "1.0.1",
1424 "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
1425 "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8="
1426 },
1427 "array-find-index": {
1428 "version": "1.0.2",
1429 "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
1430 "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
1431 "dev": true
1432 },
1433 "array-initial": {
1434 "version": "1.1.0",
1435 "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz",
1436 "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=",
1437 "dev": true,
1438 "requires": {
1439 "array-slice": "^1.0.0",
1440 "is-number": "^4.0.0"
1441 },
1442 "dependencies": {
1443 "is-number": {
1444 "version": "4.0.0",
1445 "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
1446 "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
1447 "dev": true
1448 }
1449 }
1450 },
1451 "array-last": {
1452 "version": "1.3.0",
1453 "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz",
1454 "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==",
1455 "dev": true,
1456 "requires": {
1457 "is-number": "^4.0.0"
1458 },
1459 "dependencies": {
1460 "is-number": {
1461 "version": "4.0.0",
1462 "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
1463 "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
1464 "dev": true
1465 }
1466 }
1467 },
1468 "array-slice": {
1469 "version": "1.1.0",
1470 "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
1471 "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w=="
1472 },
1473 "array-sort": {
1474 "version": "1.0.0",
1475 "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz",
1476 "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==",
1477 "dev": true,
1478 "requires": {
1479 "default-compare": "^1.0.0",
1480 "get-value": "^2.0.6",
1481 "kind-of": "^5.0.2"
1482 },
1483 "dependencies": {
1484 "kind-of": {
1485 "version": "5.1.0",
1486 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
1487 "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
1488 "dev": true
1489 }
1490 }
1491 },
1492 "array-union": {
1493 "version": "1.0.2",
1494 "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
1495 "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
1496 "dev": true,
1497 "requires": {
1498 "array-uniq": "^1.0.1"
1499 }
1500 },
1501 "array-uniq": {
1502 "version": "1.0.3",
1503 "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
1504 "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
1505 "dev": true
1506 },
1507 "array-unique": {
1508 "version": "0.3.2",
1509 "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
1510 "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
1511 },
1512 "array.prototype.find": {
1513 "version": "2.0.4",
1514 "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.0.4.tgz",
1515 "integrity": "sha1-VWpcU2LAhkgyPdrrnenRS8GGTJA=",
1516 "dev": true,
1517 "requires": {
1518 "define-properties": "^1.1.2",
1519 "es-abstract": "^1.7.0"
1520 }
1521 },
1522 "arraybuffer.slice": {
1523 "version": "0.0.6",
1524 "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz",
1525 "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=",
1526 "dev": true
1527 },
1528 "arrify": {
1529 "version": "1.0.1",
1530 "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
1531 "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
1532 "dev": true
1533 },
1534 "asap": {
1535 "version": "2.0.6",
1536 "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
1537 "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
1538 },
1539 "asn1": {
1540 "version": "0.2.4",
1541 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
1542 "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
1543 "dev": true,
1544 "requires": {
1545 "safer-buffer": "~2.1.0"
1546 }
1547 },
1548 "assert-plus": {
1549 "version": "1.0.0",
1550 "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
1551 "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
1552 "dev": true
1553 },
1554 "assign-symbols": {
1555 "version": "1.0.0",
1556 "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
1557 "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
1558 },
1559 "async": {
1560 "version": "0.1.22",
1561 "resolved": "http://registry.npmjs.org/async/-/async-0.1.22.tgz",
1562 "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE="
1563 },
1564 "async-done": {
1565 "version": "1.3.1",
1566 "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.1.tgz",
1567 "integrity": "sha512-R1BaUeJ4PMoLNJuk+0tLJgjmEqVsdN118+Z8O+alhnQDQgy0kmD5Mqi0DNEmMx2LM0Ed5yekKu+ZXYvIHceicg==",
1568 "dev": true,
1569 "requires": {
1570 "end-of-stream": "^1.1.0",
1571 "once": "^1.3.2",
1572 "process-nextick-args": "^1.0.7",
1573 "stream-exhaust": "^1.0.1"
1574 }
1575 },
1576 "async-each": {
1577 "version": "1.0.1",
1578 "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
1579 "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
1580 "dev": true
1581 },
1582 "async-exit-hook": {
1583 "version": "2.0.1",
1584 "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz",
1585 "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==",
1586 "dev": true
1587 },
1588 "async-foreach": {
1589 "version": "0.1.3",
1590 "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
1591 "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
1592 "dev": true
1593 },
1594 "async-settle": {
1595 "version": "1.0.0",
1596 "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz",
1597 "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=",
1598 "dev": true,
1599 "requires": {
1600 "async-done": "^1.2.2"
1601 }
1602 },
1603 "asynckit": {
1604 "version": "0.4.0",
1605 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
1606 "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
1607 "dev": true
1608 },
1609 "atob": {
1610 "version": "2.1.2",
1611 "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
1612 "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
1613 },
1614 "attr-accept": {
1615 "version": "1.1.3",
1616 "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-1.1.3.tgz",
1617 "integrity": "sha512-iT40nudw8zmCweivz6j58g+RT33I4KbaIvRUhjNmDwO2WmsQUxFEZZYZ5w3vXe5x5MX9D7mfvA/XaLOZYFR9EQ==",
1618 "requires": {
1619 "core-js": "^2.5.0"
1620 }
1621 },
1622 "auto-launch": {
1623 "version": "git+https://github.com/meetfranz/node-auto-launch.git#b90a0470467eb84435e6554ae9db1e2c6db79e61",
1624 "from": "git+https://github.com/meetfranz/node-auto-launch.git",
1625 "requires": {
1626 "applescript": "^1.0.0",
1627 "mkdirp": "^0.5.1",
1628 "path-is-absolute": "^1.0.0",
1629 "untildify": "^3.0.2",
1630 "winreg": "1.2.2"
1631 }
1632 },
1633 "aws-sign2": {
1634 "version": "0.7.0",
1635 "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
1636 "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
1637 "dev": true
1638 },
1639 "aws4": {
1640 "version": "1.8.0",
1641 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
1642 "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
1643 "dev": true
1644 },
1645 "babel-code-frame": {
1646 "version": "6.26.0",
1647 "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
1648 "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
1649 "dev": true,
1650 "requires": {
1651 "chalk": "^1.1.3",
1652 "esutils": "^2.0.2",
1653 "js-tokens": "^3.0.2"
1654 },
1655 "dependencies": {
1656 "js-tokens": {
1657 "version": "3.0.2",
1658 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
1659 "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
1660 "dev": true
1661 }
1662 }
1663 },
1664 "babel-eslint": {
1665 "version": "10.0.1",
1666 "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.1.tgz",
1667 "integrity": "sha512-z7OT1iNV+TjOwHNLLyJk+HN+YVWX+CLE6fPD2SymJZOZQBs+QIexFjhm4keGTm8MW9xr4EC9Q0PbaLB24V5GoQ==",
1668 "dev": true,
1669 "requires": {
1670 "@babel/code-frame": "^7.0.0",
1671 "@babel/parser": "^7.0.0",
1672 "@babel/traverse": "^7.0.0",
1673 "@babel/types": "^7.0.0",
1674 "eslint-scope": "3.7.1",
1675 "eslint-visitor-keys": "^1.0.0"
1676 },
1677 "dependencies": {
1678 "eslint-scope": {
1679 "version": "3.7.1",
1680 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
1681 "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
1682 "dev": true,
1683 "requires": {
1684 "esrecurse": "^4.1.0",
1685 "estraverse": "^4.1.1"
1686 }
1687 }
1688 }
1689 },
1690 "babel-runtime": {
1691 "version": "6.26.0",
1692 "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
1693 "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
1694 "requires": {
1695 "core-js": "^2.4.0",
1696 "regenerator-runtime": "^0.11.0"
1697 },
1698 "dependencies": {
1699 "regenerator-runtime": {
1700 "version": "0.11.1",
1701 "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
1702 "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
1703 }
1704 }
1705 },
1706 "bach": {
1707 "version": "1.2.0",
1708 "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz",
1709 "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=",
1710 "dev": true,
1711 "requires": {
1712 "arr-filter": "^1.1.1",
1713 "arr-flatten": "^1.0.1",
1714 "arr-map": "^2.0.0",
1715 "array-each": "^1.0.0",
1716 "array-initial": "^1.0.0",
1717 "array-last": "^1.1.1",
1718 "async-done": "^1.2.2",
1719 "async-settle": "^1.0.0",
1720 "now-and-later": "^2.0.0"
1721 }
1722 },
1723 "backo2": {
1724 "version": "1.0.2",
1725 "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
1726 "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
1727 "dev": true
1728 },
1729 "balanced-match": {
1730 "version": "1.0.0",
1731 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
1732 "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
1733 },
1734 "base": {
1735 "version": "0.11.2",
1736 "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
1737 "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
1738 "requires": {
1739 "cache-base": "^1.0.1",
1740 "class-utils": "^0.3.5",
1741 "component-emitter": "^1.2.1",
1742 "define-property": "^1.0.0",
1743 "isobject": "^3.0.1",
1744 "mixin-deep": "^1.2.0",
1745 "pascalcase": "^0.1.1"
1746 },
1747 "dependencies": {
1748 "define-property": {
1749 "version": "1.0.0",
1750 "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
1751 "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
1752 "requires": {
1753 "is-descriptor": "^1.0.0"
1754 }
1755 },
1756 "is-accessor-descriptor": {
1757 "version": "1.0.0",
1758 "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
1759 "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
1760 "requires": {
1761 "kind-of": "^6.0.0"
1762 }
1763 },
1764 "is-data-descriptor": {
1765 "version": "1.0.0",
1766 "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
1767 "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
1768 "requires": {
1769 "kind-of": "^6.0.0"
1770 }
1771 },
1772 "is-descriptor": {
1773 "version": "1.0.2",
1774 "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
1775 "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
1776 "requires": {
1777 "is-accessor-descriptor": "^1.0.0",
1778 "is-data-descriptor": "^1.0.0",
1779 "kind-of": "^6.0.2"
1780 }
1781 }
1782 }
1783 },
1784 "base64-arraybuffer": {
1785 "version": "0.1.5",
1786 "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
1787 "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=",
1788 "dev": true
1789 },
1790 "base64-js": {
1791 "version": "1.3.0",
1792 "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
1793 "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==",
1794 "dev": true
1795 },
1796 "base64id": {
1797 "version": "1.0.0",
1798 "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
1799 "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=",
1800 "dev": true
1801 },
1802 "batch": {
1803 "version": "0.5.1",
1804 "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.1.tgz",
1805 "integrity": "sha1-NqS6tZTAUP17UHvKDbMMLZKvT/I=",
1806 "dev": true
1807 },
1808 "bcp47": {
1809 "version": "1.1.2",
1810 "resolved": "https://registry.npmjs.org/bcp47/-/bcp47-1.1.2.tgz",
1811 "integrity": "sha1-NUvjMH/9CEM6ePXh4glYRfifx/4="
1812 },
1813 "bcrypt-pbkdf": {
1814 "version": "1.0.2",
1815 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
1816 "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
1817 "dev": true,
1818 "requires": {
1819 "tweetnacl": "^0.14.3"
1820 }
1821 },
1822 "beeper": {
1823 "version": "1.1.1",
1824 "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
1825 "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=",
1826 "dev": true
1827 },
1828 "better-assert": {
1829 "version": "1.0.2",
1830 "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
1831 "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
1832 "dev": true,
1833 "requires": {
1834 "callsite": "1.0.0"
1835 }
1836 },
1837 "big.js": {
1838 "version": "3.2.0",
1839 "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
1840 "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
1841 "dev": true
1842 },
1843 "binary-extensions": {
1844 "version": "1.12.0",
1845 "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz",
1846 "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==",
1847 "dev": true
1848 },
1849 "bindings": {
1850 "version": "1.3.0",
1851 "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz",
1852 "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw=="
1853 },
1854 "blob": {
1855 "version": "0.0.4",
1856 "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz",
1857 "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=",
1858 "dev": true
1859 },
1860 "block-stream": {
1861 "version": "0.0.9",
1862 "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
1863 "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
1864 "dev": true,
1865 "requires": {
1866 "inherits": "~2.0.0"
1867 }
1868 },
1869 "bluebird": {
1870 "version": "3.5.3",
1871 "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz",
1872 "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw=="
1873 },
1874 "bluebird-lst": {
1875 "version": "1.0.6",
1876 "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.6.tgz",
1877 "integrity": "sha512-CBWFoPuUPpcvMUxfyr8DKdI5d4kjxFl1h39+VbKxP3KJWJHEsLtuT4pPLkjpxCGU6Ask21tvbnftWXdqIxYldQ==",
1878 "requires": {
1879 "bluebird": "^3.5.2"
1880 }
1881 },
1882 "boom": {
1883 "version": "2.10.1",
1884 "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
1885 "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
1886 "requires": {
1887 "hoek": "2.x.x"
1888 }
1889 },
1890 "boxen": {
1891 "version": "1.3.0",
1892 "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz",
1893 "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==",
1894 "dev": true,
1895 "requires": {
1896 "ansi-align": "^2.0.0",
1897 "camelcase": "^4.0.0",
1898 "chalk": "^2.0.1",
1899 "cli-boxes": "^1.0.0",
1900 "string-width": "^2.0.0",
1901 "term-size": "^1.2.0",
1902 "widest-line": "^2.0.0"
1903 },
1904 "dependencies": {
1905 "ansi-regex": {
1906 "version": "3.0.0",
1907 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
1908 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
1909 "dev": true
1910 },
1911 "ansi-styles": {
1912 "version": "3.2.1",
1913 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1914 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1915 "dev": true,
1916 "requires": {
1917 "color-convert": "^1.9.0"
1918 }
1919 },
1920 "camelcase": {
1921 "version": "4.1.0",
1922 "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
1923 "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
1924 "dev": true
1925 },
1926 "chalk": {
1927 "version": "2.4.1",
1928 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
1929 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
1930 "dev": true,
1931 "requires": {
1932 "ansi-styles": "^3.2.1",
1933 "escape-string-regexp": "^1.0.5",
1934 "supports-color": "^5.3.0"
1935 }
1936 },
1937 "is-fullwidth-code-point": {
1938 "version": "2.0.0",
1939 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
1940 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
1941 "dev": true
1942 },
1943 "string-width": {
1944 "version": "2.1.1",
1945 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
1946 "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
1947 "dev": true,
1948 "requires": {
1949 "is-fullwidth-code-point": "^2.0.0",
1950 "strip-ansi": "^4.0.0"
1951 }
1952 },
1953 "strip-ansi": {
1954 "version": "4.0.0",
1955 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
1956 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
1957 "dev": true,
1958 "requires": {
1959 "ansi-regex": "^3.0.0"
1960 }
1961 },
1962 "supports-color": {
1963 "version": "5.5.0",
1964 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1965 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1966 "dev": true,
1967 "requires": {
1968 "has-flag": "^3.0.0"
1969 }
1970 }
1971 }
1972 },
1973 "brace-expansion": {
1974 "version": "1.1.11",
1975 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1976 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1977 "requires": {
1978 "balanced-match": "^1.0.0",
1979 "concat-map": "0.0.1"
1980 }
1981 },
1982 "braces": {
1983 "version": "2.3.2",
1984 "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
1985 "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
1986 "requires": {
1987 "arr-flatten": "^1.1.0",
1988 "array-unique": "^0.3.2",
1989 "extend-shallow": "^2.0.1",
1990 "fill-range": "^4.0.0",
1991 "isobject": "^3.0.1",
1992 "repeat-element": "^1.1.2",
1993 "snapdragon": "^0.8.1",
1994 "snapdragon-node": "^2.0.1",
1995 "split-string": "^3.0.2",
1996 "to-regex": "^3.0.1"
1997 },
1998 "dependencies": {
1999 "extend-shallow": {
2000 "version": "2.0.1",
2001 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
2002 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
2003 "requires": {
2004 "is-extendable": "^0.1.0"
2005 }
2006 }
2007 }
2008 },
2009 "browserslist": {
2010 "version": "4.3.2",
2011 "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.2.tgz",
2012 "integrity": "sha512-wgZJWlYcDvsjRtf8socmAHf1nXq88KrQLB/gMYHGPUc2bzPWsgltSXwPWYHx4Sw0G9E/XGNW5wJDaWlpHRMpjA==",
2013 "dev": true,
2014 "requires": {
2015 "caniuse-lite": "^1.0.30000898",
2016 "electron-to-chromium": "^1.3.80",
2017 "node-releases": "^1.0.0-alpha.14"
2018 }
2019 },
2020 "buffer-alloc": {
2021 "version": "1.2.0",
2022 "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
2023 "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
2024 "dev": true,
2025 "requires": {
2026 "buffer-alloc-unsafe": "^1.1.0",
2027 "buffer-fill": "^1.0.0"
2028 }
2029 },
2030 "buffer-alloc-unsafe": {
2031 "version": "1.1.0",
2032 "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
2033 "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
2034 "dev": true
2035 },
2036 "buffer-equal": {
2037 "version": "1.0.0",
2038 "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz",
2039 "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=",
2040 "dev": true
2041 },
2042 "buffer-equal-constant-time": {
2043 "version": "1.0.1",
2044 "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
2045 "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
2046 },
2047 "buffer-fill": {
2048 "version": "1.0.0",
2049 "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
2050 "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
2051 "dev": true
2052 },
2053 "buffer-from": {
2054 "version": "1.1.1",
2055 "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
2056 "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
2057 },
2058 "builder-util": {
2059 "version": "9.3.0",
2060 "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-9.3.0.tgz",
2061 "integrity": "sha512-K+kj5vWj4Mk3jOm6kVT9ZwNcECLHe449vdMxYuZpCnn7CSxRm+TeZm9P9ZFCQUID5Hww/Sy4NMFo+VVJh6+Ptw==",
2062 "dev": true,
2063 "requires": {
2064 "7zip-bin": "~4.1.0",
2065 "app-builder-bin": "2.5.1",
2066 "bluebird-lst": "^1.0.6",
2067 "builder-util-runtime": "^8.0.1",
2068 "chalk": "^2.4.1",
2069 "debug": "^4.1.0",
2070 "fs-extra-p": "^7.0.0",
2071 "is-ci": "^1.2.1",
2072 "js-yaml": "^3.12.0",
2073 "source-map-support": "^0.5.9",
2074 "stat-mode": "^0.2.2",
2075 "temp-file": "^3.2.0"
2076 },
2077 "dependencies": {
2078 "ansi-styles": {
2079 "version": "3.2.1",
2080 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
2081 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
2082 "dev": true,
2083 "requires": {
2084 "color-convert": "^1.9.0"
2085 }
2086 },
2087 "chalk": {
2088 "version": "2.4.1",
2089 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
2090 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
2091 "dev": true,
2092 "requires": {
2093 "ansi-styles": "^3.2.1",
2094 "escape-string-regexp": "^1.0.5",
2095 "supports-color": "^5.3.0"
2096 }
2097 },
2098 "debug": {
2099 "version": "4.1.0",
2100 "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz",
2101 "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==",
2102 "dev": true,
2103 "requires": {
2104 "ms": "^2.1.1"
2105 }
2106 },
2107 "ms": {
2108 "version": "2.1.1",
2109 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
2110 "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
2111 "dev": true
2112 },
2113 "supports-color": {
2114 "version": "5.5.0",
2115 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2116 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2117 "dev": true,
2118 "requires": {
2119 "has-flag": "^3.0.0"
2120 }
2121 }
2122 }
2123 },
2124 "builder-util-runtime": {
2125 "version": "8.0.2",
2126 "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.0.2.tgz",
2127 "integrity": "sha512-46AjyMQ1/yBvGnXWmqNGlg8te7jCPCs7TJ0zDC2+4vV/t5iZp2dR1H9UfVpcBxlvBq3dlAOmwb9fz1d9xZN1+Q==",
2128 "requires": {
2129 "bluebird-lst": "^1.0.6",
2130 "debug": "^4.1.0",
2131 "fs-extra-p": "^7.0.0",
2132 "sax": "^1.2.4"
2133 },
2134 "dependencies": {
2135 "debug": {
2136 "version": "4.1.0",
2137 "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz",
2138 "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==",
2139 "requires": {
2140 "ms": "^2.1.1"
2141 }
2142 },
2143 "ms": {
2144 "version": "2.1.1",
2145 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
2146 "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
2147 }
2148 }
2149 },
2150 "builtin-modules": {
2151 "version": "1.1.1",
2152 "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
2153 "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
2154 "dev": true
2155 },
2156 "cache-base": {
2157 "version": "1.0.1",
2158 "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
2159 "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
2160 "requires": {
2161 "collection-visit": "^1.0.0",
2162 "component-emitter": "^1.2.1",
2163 "get-value": "^2.0.6",
2164 "has-value": "^1.0.0",
2165 "isobject": "^3.0.1",
2166 "set-value": "^2.0.0",
2167 "to-object-path": "^0.3.0",
2168 "union-value": "^1.0.0",
2169 "unset-value": "^1.0.0"
2170 }
2171 },
2172 "caller-callsite": {
2173 "version": "2.0.0",
2174 "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
2175 "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
2176 "dev": true,
2177 "requires": {
2178 "callsites": "^2.0.0"
2179 },
2180 "dependencies": {
2181 "callsites": {
2182 "version": "2.0.0",
2183 "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
2184 "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
2185 "dev": true
2186 }
2187 }
2188 },
2189 "caller-path": {
2190 "version": "0.1.0",
2191 "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
2192 "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
2193 "dev": true,
2194 "requires": {
2195 "callsites": "^0.2.0"
2196 }
2197 },
2198 "callsite": {
2199 "version": "1.0.0",
2200 "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
2201 "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
2202 "dev": true
2203 },
2204 "callsites": {
2205 "version": "0.2.0",
2206 "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
2207 "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
2208 "dev": true
2209 },
2210 "camelcase": {
2211 "version": "3.0.0",
2212 "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
2213 "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
2214 "dev": true
2215 },
2216 "camelcase-keys": {
2217 "version": "2.1.0",
2218 "resolved": "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
2219 "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
2220 "dev": true,
2221 "requires": {
2222 "camelcase": "^2.0.0",
2223 "map-obj": "^1.0.0"
2224 },
2225 "dependencies": {
2226 "camelcase": {
2227 "version": "2.1.1",
2228 "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
2229 "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
2230 "dev": true
2231 }
2232 }
2233 },
2234 "caniuse-lite": {
2235 "version": "1.0.30000898",
2236 "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000898.tgz",
2237 "integrity": "sha512-ytlTZqO4hYe4rNAJhMynUAIUI33jsP2Bb1two/9OVC39wZjPZ8exIO0eCLw5mqAtegOGiGF0kkTWTn3B02L+mw==",
2238 "dev": true
2239 },
2240 "capture-stack-trace": {
2241 "version": "1.0.1",
2242 "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz",
2243 "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==",
2244 "dev": true
2245 },
2246 "caseless": {
2247 "version": "0.12.0",
2248 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
2249 "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
2250 "dev": true
2251 },
2252 "chain-function": {
2253 "version": "1.0.1",
2254 "resolved": "https://registry.npmjs.org/chain-function/-/chain-function-1.0.1.tgz",
2255 "integrity": "sha512-SxltgMwL9uCko5/ZCLiyG2B7R9fY4pDZUw7hJ4MhirdjBLosoDqkWABi3XMucddHdLiFJMb7PD2MZifZriuMTg=="
2256 },
2257 "chalk": {
2258 "version": "1.1.3",
2259 "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
2260 "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
2261 "requires": {
2262 "ansi-styles": "^2.2.1",
2263 "escape-string-regexp": "^1.0.2",
2264 "has-ansi": "^2.0.0",
2265 "strip-ansi": "^3.0.0",
2266 "supports-color": "^2.0.0"
2267 }
2268 },
2269 "chardet": {
2270 "version": "0.4.2",
2271 "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
2272 "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
2273 "dev": true
2274 },
2275 "chokidar": {
2276 "version": "2.0.4",
2277 "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
2278 "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
2279 "dev": true,
2280 "requires": {
2281 "anymatch": "^2.0.0",
2282 "async-each": "^1.0.0",
2283 "braces": "^2.3.0",
2284 "fsevents": "^1.2.2",
2285 "glob-parent": "^3.1.0",
2286 "inherits": "^2.0.1",
2287 "is-binary-path": "^1.0.0",
2288 "is-glob": "^4.0.0",
2289 "lodash.debounce": "^4.0.8",
2290 "normalize-path": "^2.1.1",
2291 "path-is-absolute": "^1.0.0",
2292 "readdirp": "^2.0.0",
2293 "upath": "^1.0.5"
2294 }
2295 },
2296 "chownr": {
2297 "version": "1.1.1",
2298 "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz",
2299 "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g=="
2300 },
2301 "chromium-pickle-js": {
2302 "version": "0.2.0",
2303 "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz",
2304 "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=",
2305 "dev": true
2306 },
2307 "ci-info": {
2308 "version": "1.6.0",
2309 "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz",
2310 "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==",
2311 "dev": true
2312 },
2313 "circular-json": {
2314 "version": "0.3.3",
2315 "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
2316 "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
2317 "dev": true
2318 },
2319 "class-utils": {
2320 "version": "0.3.6",
2321 "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
2322 "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
2323 "requires": {
2324 "arr-union": "^3.1.0",
2325 "define-property": "^0.2.5",
2326 "isobject": "^3.0.0",
2327 "static-extend": "^0.1.1"
2328 },
2329 "dependencies": {
2330 "define-property": {
2331 "version": "0.2.5",
2332 "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
2333 "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
2334 "requires": {
2335 "is-descriptor": "^0.1.0"
2336 }
2337 }
2338 }
2339 },
2340 "classnames": {
2341 "version": "2.2.6",
2342 "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz",
2343 "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q=="
2344 },
2345 "cli-boxes": {
2346 "version": "1.0.0",
2347 "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
2348 "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=",
2349 "dev": true
2350 },
2351 "cli-cursor": {
2352 "version": "2.1.0",
2353 "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
2354 "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
2355 "dev": true,
2356 "requires": {
2357 "restore-cursor": "^2.0.0"
2358 }
2359 },
2360 "cli-spinners": {
2361 "version": "1.3.1",
2362 "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz",
2363 "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==",
2364 "dev": true
2365 },
2366 "cli-width": {
2367 "version": "2.2.0",
2368 "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
2369 "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
2370 "dev": true
2371 },
2372 "cliui": {
2373 "version": "3.2.0",
2374 "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
2375 "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
2376 "requires": {
2377 "string-width": "^1.0.1",
2378 "strip-ansi": "^3.0.1",
2379 "wrap-ansi": "^2.0.0"
2380 }
2381 },
2382 "clone": {
2383 "version": "2.1.2",
2384 "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
2385 "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
2386 "dev": true
2387 },
2388 "clone-buffer": {
2389 "version": "1.0.0",
2390 "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz",
2391 "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=",
2392 "dev": true
2393 },
2394 "clone-stats": {
2395 "version": "1.0.0",
2396 "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
2397 "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=",
2398 "dev": true
2399 },
2400 "cloneable-readable": {
2401 "version": "1.1.2",
2402 "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz",
2403 "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==",
2404 "dev": true,
2405 "requires": {
2406 "inherits": "^2.0.1",
2407 "process-nextick-args": "^2.0.0",
2408 "readable-stream": "^2.3.5"
2409 },
2410 "dependencies": {
2411 "process-nextick-args": {
2412 "version": "2.0.0",
2413 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
2414 "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
2415 "dev": true
2416 }
2417 }
2418 },
2419 "co": {
2420 "version": "4.6.0",
2421 "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
2422 "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
2423 "dev": true
2424 },
2425 "code-point-at": {
2426 "version": "1.1.0",
2427 "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
2428 "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
2429 },
2430 "collection-map": {
2431 "version": "1.0.0",
2432 "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz",
2433 "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=",
2434 "dev": true,
2435 "requires": {
2436 "arr-map": "^2.0.2",
2437 "for-own": "^1.0.0",
2438 "make-iterator": "^1.0.0"
2439 }
2440 },
2441 "collection-visit": {
2442 "version": "1.0.0",
2443 "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
2444 "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
2445 "requires": {
2446 "map-visit": "^1.0.0",
2447 "object-visit": "^1.0.0"
2448 }
2449 },
2450 "color-convert": {
2451 "version": "1.9.3",
2452 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
2453 "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
2454 "dev": true,
2455 "requires": {
2456 "color-name": "1.1.3"
2457 }
2458 },
2459 "color-name": {
2460 "version": "1.1.3",
2461 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
2462 "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
2463 "dev": true
2464 },
2465 "color-support": {
2466 "version": "1.1.3",
2467 "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
2468 "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg=="
2469 },
2470 "colors": {
2471 "version": "1.3.2",
2472 "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.2.tgz",
2473 "integrity": "sha512-rhP0JSBGYvpcNQj4s5AdShMeE5ahMop96cTeDl/v9qQQm2fYClE2QXZRi8wLzc+GmXSxdIqqbOIAhyObEXDbfQ==",
2474 "dev": true
2475 },
2476 "combined-stream": {
2477 "version": "1.0.7",
2478 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
2479 "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
2480 "dev": true,
2481 "requires": {
2482 "delayed-stream": "~1.0.0"
2483 }
2484 },
2485 "commander": {
2486 "version": "2.19.0",
2487 "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
2488 "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==",
2489 "dev": true
2490 },
2491 "commondir": {
2492 "version": "1.0.1",
2493 "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
2494 "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
2495 "dev": true
2496 },
2497 "compare-version": {
2498 "version": "0.1.2",
2499 "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz",
2500 "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=",
2501 "dev": true
2502 },
2503 "component-bind": {
2504 "version": "1.0.0",
2505 "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
2506 "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=",
2507 "dev": true
2508 },
2509 "component-emitter": {
2510 "version": "1.2.1",
2511 "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
2512 "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
2513 },
2514 "component-inherit": {
2515 "version": "0.0.3",
2516 "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
2517 "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",
2518 "dev": true
2519 },
2520 "concat-map": {
2521 "version": "0.0.1",
2522 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
2523 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
2524 },
2525 "concat-stream": {
2526 "version": "1.6.2",
2527 "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
2528 "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
2529 "dev": true,
2530 "requires": {
2531 "buffer-from": "^1.0.0",
2532 "inherits": "^2.0.3",
2533 "readable-stream": "^2.2.2",
2534 "typedarray": "^0.0.6"
2535 }
2536 },
2537 "concurrently": {
2538 "version": "4.0.1",
2539 "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-4.0.1.tgz",
2540 "integrity": "sha512-D8UI+mlI/bfvrA57SeKOht6sEpb01dKk+8Yee4fbnkk1Ue8r3S+JXoEdFZIpzQlXJGtnxo47Wvvg/kG4ba3U6Q==",
2541 "dev": true,
2542 "requires": {
2543 "chalk": "^2.4.1",
2544 "date-fns": "^1.23.0",
2545 "lodash": "^4.17.10",
2546 "read-pkg": "^4.0.1",
2547 "rxjs": "6.2.2",
2548 "spawn-command": "^0.0.2-1",
2549 "supports-color": "^4.5.0",
2550 "tree-kill": "^1.1.0",
2551 "yargs": "^12.0.1"
2552 },
2553 "dependencies": {
2554 "ansi-regex": {
2555 "version": "3.0.0",
2556 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
2557 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
2558 "dev": true
2559 },
2560 "ansi-styles": {
2561 "version": "3.2.1",
2562 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
2563 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
2564 "dev": true,
2565 "requires": {
2566 "color-convert": "^1.9.0"
2567 }
2568 },
2569 "camelcase": {
2570 "version": "4.1.0",
2571 "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
2572 "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
2573 "dev": true
2574 },
2575 "chalk": {
2576 "version": "2.4.1",
2577 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
2578 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
2579 "dev": true,
2580 "requires": {
2581 "ansi-styles": "^3.2.1",
2582 "escape-string-regexp": "^1.0.5",
2583 "supports-color": "^5.3.0"
2584 },
2585 "dependencies": {
2586 "supports-color": {
2587 "version": "5.5.0",
2588 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2589 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2590 "dev": true,
2591 "requires": {
2592 "has-flag": "^3.0.0"
2593 }
2594 }
2595 }
2596 },
2597 "cliui": {
2598 "version": "4.1.0",
2599 "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
2600 "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
2601 "dev": true,
2602 "requires": {
2603 "string-width": "^2.1.1",
2604 "strip-ansi": "^4.0.0",
2605 "wrap-ansi": "^2.0.0"
2606 }
2607 },
2608 "decamelize": {
2609 "version": "2.0.0",
2610 "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz",
2611 "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==",
2612 "dev": true,
2613 "requires": {
2614 "xregexp": "4.0.0"
2615 }
2616 },
2617 "execa": {
2618 "version": "0.10.0",
2619 "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
2620 "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
2621 "dev": true,
2622 "requires": {
2623 "cross-spawn": "^6.0.0",
2624 "get-stream": "^3.0.0",
2625 "is-stream": "^1.1.0",
2626 "npm-run-path": "^2.0.0",
2627 "p-finally": "^1.0.0",
2628 "signal-exit": "^3.0.0",
2629 "strip-eof": "^1.0.0"
2630 }
2631 },
2632 "find-up": {
2633 "version": "3.0.0",
2634 "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
2635 "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
2636 "dev": true,
2637 "requires": {
2638 "locate-path": "^3.0.0"
2639 }
2640 },
2641 "invert-kv": {
2642 "version": "2.0.0",
2643 "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
2644 "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
2645 "dev": true
2646 },
2647 "is-fullwidth-code-point": {
2648 "version": "2.0.0",
2649 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
2650 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
2651 "dev": true
2652 },
2653 "lcid": {
2654 "version": "2.0.0",
2655 "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
2656 "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
2657 "dev": true,
2658 "requires": {
2659 "invert-kv": "^2.0.0"
2660 }
2661 },
2662 "locate-path": {
2663 "version": "3.0.0",
2664 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
2665 "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
2666 "dev": true,
2667 "requires": {
2668 "p-locate": "^3.0.0",
2669 "path-exists": "^3.0.0"
2670 }
2671 },
2672 "mem": {
2673 "version": "4.0.0",
2674 "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz",
2675 "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==",
2676 "dev": true,
2677 "requires": {
2678 "map-age-cleaner": "^0.1.1",
2679 "mimic-fn": "^1.0.0",
2680 "p-is-promise": "^1.1.0"
2681 }
2682 },
2683 "os-locale": {
2684 "version": "3.0.1",
2685 "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz",
2686 "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==",
2687 "dev": true,
2688 "requires": {
2689 "execa": "^0.10.0",
2690 "lcid": "^2.0.0",
2691 "mem": "^4.0.0"
2692 }
2693 },
2694 "p-limit": {
2695 "version": "2.0.0",
2696 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
2697 "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
2698 "dev": true,
2699 "requires": {
2700 "p-try": "^2.0.0"
2701 }
2702 },
2703 "p-locate": {
2704 "version": "3.0.0",
2705 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
2706 "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
2707 "dev": true,
2708 "requires": {
2709 "p-limit": "^2.0.0"
2710 }
2711 },
2712 "p-try": {
2713 "version": "2.0.0",
2714 "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
2715 "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
2716 "dev": true
2717 },
2718 "parse-json": {
2719 "version": "4.0.0",
2720 "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
2721 "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
2722 "dev": true,
2723 "requires": {
2724 "error-ex": "^1.3.1",
2725 "json-parse-better-errors": "^1.0.1"
2726 }
2727 },
2728 "path-exists": {
2729 "version": "3.0.0",
2730 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
2731 "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
2732 "dev": true
2733 },
2734 "pify": {
2735 "version": "3.0.0",
2736 "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
2737 "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
2738 "dev": true
2739 },
2740 "read-pkg": {
2741 "version": "4.0.1",
2742 "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz",
2743 "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=",
2744 "dev": true,
2745 "requires": {
2746 "normalize-package-data": "^2.3.2",
2747 "parse-json": "^4.0.0",
2748 "pify": "^3.0.0"
2749 }
2750 },
2751 "rxjs": {
2752 "version": "6.2.2",
2753 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.2.tgz",
2754 "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==",
2755 "dev": true,
2756 "requires": {
2757 "tslib": "^1.9.0"
2758 }
2759 },
2760 "string-width": {
2761 "version": "2.1.1",
2762 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
2763 "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
2764 "dev": true,
2765 "requires": {
2766 "is-fullwidth-code-point": "^2.0.0",
2767 "strip-ansi": "^4.0.0"
2768 }
2769 },
2770 "strip-ansi": {
2771 "version": "4.0.0",
2772 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
2773 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
2774 "dev": true,
2775 "requires": {
2776 "ansi-regex": "^3.0.0"
2777 }
2778 },
2779 "supports-color": {
2780 "version": "4.5.0",
2781 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
2782 "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
2783 "dev": true,
2784 "requires": {
2785 "has-flag": "^2.0.0"
2786 },
2787 "dependencies": {
2788 "has-flag": {
2789 "version": "2.0.0",
2790 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
2791 "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
2792 "dev": true
2793 }
2794 }
2795 },
2796 "which-module": {
2797 "version": "2.0.0",
2798 "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
2799 "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
2800 "dev": true
2801 },
2802 "yargs": {
2803 "version": "12.0.2",
2804 "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz",
2805 "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==",
2806 "dev": true,
2807 "requires": {
2808 "cliui": "^4.0.0",
2809 "decamelize": "^2.0.0",
2810 "find-up": "^3.0.0",
2811 "get-caller-file": "^1.0.1",
2812 "os-locale": "^3.0.0",
2813 "require-directory": "^2.1.1",
2814 "require-main-filename": "^1.0.1",
2815 "set-blocking": "^2.0.0",
2816 "string-width": "^2.0.0",
2817 "which-module": "^2.0.0",
2818 "y18n": "^3.2.1 || ^4.0.0",
2819 "yargs-parser": "^10.1.0"
2820 }
2821 },
2822 "yargs-parser": {
2823 "version": "10.1.0",
2824 "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz",
2825 "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==",
2826 "dev": true,
2827 "requires": {
2828 "camelcase": "^4.1.0"
2829 }
2830 }
2831 }
2832 },
2833 "configstore": {
2834 "version": "3.1.2",
2835 "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz",
2836 "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==",
2837 "dev": true,
2838 "requires": {
2839 "dot-prop": "^4.1.0",
2840 "graceful-fs": "^4.1.2",
2841 "make-dir": "^1.0.0",
2842 "unique-string": "^1.0.0",
2843 "write-file-atomic": "^2.0.0",
2844 "xdg-basedir": "^3.0.0"
2845 }
2846 },
2847 "connect": {
2848 "version": "3.1.1",
2849 "resolved": "https://registry.npmjs.org/connect/-/connect-3.1.1.tgz",
2850 "integrity": "sha1-pz4kScPvwt/RZhhll3oJGE0SAZY=",
2851 "dev": true,
2852 "requires": {
2853 "debug": "1.0.4",
2854 "finalhandler": "0.1.0",
2855 "parseurl": "~1.3.0",
2856 "utils-merge": "1.0.0"
2857 },
2858 "dependencies": {
2859 "debug": {
2860 "version": "1.0.4",
2861 "resolved": "http://registry.npmjs.org/debug/-/debug-1.0.4.tgz",
2862 "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=",
2863 "dev": true,
2864 "requires": {
2865 "ms": "0.6.2"
2866 }
2867 },
2868 "ms": {
2869 "version": "0.6.2",
2870 "resolved": "http://registry.npmjs.org/ms/-/ms-0.6.2.tgz",
2871 "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=",
2872 "dev": true
2873 }
2874 }
2875 },
2876 "connect-inject": {
2877 "version": "0.3.2",
2878 "resolved": "https://registry.npmjs.org/connect-inject/-/connect-inject-0.3.2.tgz",
2879 "integrity": "sha1-2WtRaltrskwhkeYitegs3WKES6M=",
2880 "dev": true
2881 },
2882 "console-control-strings": {
2883 "version": "1.1.0",
2884 "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
2885 "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
2886 "dev": true
2887 },
2888 "contains-path": {
2889 "version": "0.1.0",
2890 "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
2891 "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
2892 "dev": true
2893 },
2894 "conventional-commit-types": {
2895 "version": "2.2.0",
2896 "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-2.2.0.tgz",
2897 "integrity": "sha1-XblXOdbCEqy+e29lahG5QLqmiUY=",
2898 "dev": true
2899 },
2900 "convert-source-map": {
2901 "version": "1.6.0",
2902 "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
2903 "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
2904 "dev": true,
2905 "requires": {
2906 "safe-buffer": "~5.1.1"
2907 }
2908 },
2909 "cookie": {
2910 "version": "0.3.1",
2911 "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
2912 "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
2913 "dev": true
2914 },
2915 "copy-descriptor": {
2916 "version": "0.1.1",
2917 "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
2918 "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
2919 },
2920 "copy-props": {
2921 "version": "2.0.4",
2922 "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz",
2923 "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==",
2924 "dev": true,
2925 "requires": {
2926 "each-props": "^1.3.0",
2927 "is-plain-object": "^2.0.1"
2928 }
2929 },
2930 "core-js": {
2931 "version": "2.5.7",
2932 "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
2933 "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw=="
2934 },
2935 "core-util-is": {
2936 "version": "1.0.2",
2937 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
2938 "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
2939 "dev": true
2940 },
2941 "cosmiconfig": {
2942 "version": "5.0.7",
2943 "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.7.tgz",
2944 "integrity": "sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==",
2945 "dev": true,
2946 "requires": {
2947 "import-fresh": "^2.0.0",
2948 "is-directory": "^0.3.1",
2949 "js-yaml": "^3.9.0",
2950 "parse-json": "^4.0.0"
2951 },
2952 "dependencies": {
2953 "parse-json": {
2954 "version": "4.0.0",
2955 "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
2956 "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
2957 "dev": true,
2958 "requires": {
2959 "error-ex": "^1.3.1",
2960 "json-parse-better-errors": "^1.0.1"
2961 }
2962 }
2963 }
2964 },
2965 "create-error-class": {
2966 "version": "3.0.2",
2967 "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
2968 "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
2969 "dev": true,
2970 "requires": {
2971 "capture-stack-trace": "^1.0.0"
2972 }
2973 },
2974 "create-react-class": {
2975 "version": "15.6.3",
2976 "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz",
2977 "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==",
2978 "requires": {
2979 "fbjs": "^0.8.9",
2980 "loose-envify": "^1.3.1",
2981 "object-assign": "^4.1.1"
2982 }
2983 },
2984 "cross-env": {
2985 "version": "5.2.0",
2986 "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz",
2987 "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==",
2988 "dev": true,
2989 "requires": {
2990 "cross-spawn": "^6.0.5",
2991 "is-windows": "^1.0.0"
2992 }
2993 },
2994 "cross-spawn": {
2995 "version": "6.0.5",
2996 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
2997 "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
2998 "dev": true,
2999 "requires": {
3000 "nice-try": "^1.0.4",
3001 "path-key": "^2.0.1",
3002 "semver": "^5.5.0",
3003 "shebang-command": "^1.2.0",
3004 "which": "^1.2.9"
3005 }
3006 },
3007 "crypto-random-string": {
3008 "version": "1.0.0",
3009 "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
3010 "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=",
3011 "dev": true
3012 },
3013 "currently-unhandled": {
3014 "version": "0.4.1",
3015 "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
3016 "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
3017 "dev": true,
3018 "requires": {
3019 "array-find-index": "^1.0.1"
3020 }
3021 },
3022 "cz-conventional-changelog": {
3023 "version": "2.1.0",
3024 "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-2.1.0.tgz",
3025 "integrity": "sha1-L0vHOQ4yROTfKT5ro1Hkx0Cnx2Q=",
3026 "dev": true,
3027 "requires": {
3028 "conventional-commit-types": "^2.0.0",
3029 "lodash.map": "^4.5.1",
3030 "longest": "^1.0.1",
3031 "right-pad": "^1.0.1",
3032 "word-wrap": "^1.0.3"
3033 }
3034 },
3035 "d": {
3036 "version": "1.0.0",
3037 "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
3038 "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
3039 "requires": {
3040 "es5-ext": "^0.10.9"
3041 }
3042 },
3043 "damerau-levenshtein": {
3044 "version": "1.0.4",
3045 "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz",
3046 "integrity": "sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=",
3047 "dev": true
3048 },
3049 "dashdash": {
3050 "version": "1.14.1",
3051 "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
3052 "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
3053 "dev": true,
3054 "requires": {
3055 "assert-plus": "^1.0.0"
3056 }
3057 },
3058 "date-fns": {
3059 "version": "1.29.0",
3060 "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz",
3061 "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==",
3062 "dev": true
3063 },
3064 "dateformat": {
3065 "version": "2.2.0",
3066 "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz",
3067 "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=",
3068 "dev": true
3069 },
3070 "debug": {
3071 "version": "2.6.9",
3072 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
3073 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
3074 "requires": {
3075 "ms": "2.0.0"
3076 }
3077 },
3078 "debug-electron": {
3079 "version": "0.0.4",
3080 "resolved": "https://registry.npmjs.org/debug-electron/-/debug-electron-0.0.4.tgz",
3081 "integrity": "sha1-mwNTSayBB7TkPaIA0jOcT9Wxaec=",
3082 "requires": {
3083 "debug": "^2.4.1"
3084 }
3085 },
3086 "decamelize": {
3087 "version": "1.2.0",
3088 "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
3089 "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
3090 },
3091 "decode-uri-component": {
3092 "version": "0.2.0",
3093 "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
3094 "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
3095 },
3096 "deep-equal": {
3097 "version": "1.0.1",
3098 "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
3099 "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
3100 },
3101 "deep-extend": {
3102 "version": "0.6.0",
3103 "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
3104 "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
3105 "dev": true
3106 },
3107 "deep-is": {
3108 "version": "0.1.3",
3109 "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
3110 "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
3111 "dev": true
3112 },
3113 "default-compare": {
3114 "version": "1.0.0",
3115 "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz",
3116 "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==",
3117 "dev": true,
3118 "requires": {
3119 "kind-of": "^5.0.2"
3120 },
3121 "dependencies": {
3122 "kind-of": {
3123 "version": "5.1.0",
3124 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
3125 "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
3126 "dev": true
3127 }
3128 }
3129 },
3130 "default-resolution": {
3131 "version": "2.0.0",
3132 "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz",
3133 "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=",
3134 "dev": true
3135 },
3136 "define-properties": {
3137 "version": "1.1.3",
3138 "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
3139 "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
3140 "dev": true,
3141 "requires": {
3142 "object-keys": "^1.0.12"
3143 }
3144 },
3145 "define-property": {
3146 "version": "2.0.2",
3147 "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
3148 "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
3149 "requires": {
3150 "is-descriptor": "^1.0.2",
3151 "isobject": "^3.0.1"
3152 },
3153 "dependencies": {
3154 "is-accessor-descriptor": {
3155 "version": "1.0.0",
3156 "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
3157 "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
3158 "requires": {
3159 "kind-of": "^6.0.0"
3160 }
3161 },
3162 "is-data-descriptor": {
3163 "version": "1.0.0",
3164 "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
3165 "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
3166 "requires": {
3167 "kind-of": "^6.0.0"
3168 }
3169 },
3170 "is-descriptor": {
3171 "version": "1.0.2",
3172 "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
3173 "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
3174 "requires": {
3175 "is-accessor-descriptor": "^1.0.0",
3176 "is-data-descriptor": "^1.0.0",
3177 "kind-of": "^6.0.2"
3178 }
3179 }
3180 }
3181 },
3182 "del": {
3183 "version": "2.2.2",
3184 "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
3185 "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
3186 "dev": true,
3187 "requires": {
3188 "globby": "^5.0.0",
3189 "is-path-cwd": "^1.0.0",
3190 "is-path-in-cwd": "^1.0.0",
3191 "object-assign": "^4.0.1",
3192 "pify": "^2.0.0",
3193 "pinkie-promise": "^2.0.0",
3194 "rimraf": "^2.2.8"
3195 }
3196 },
3197 "delayed-stream": {
3198 "version": "1.0.0",
3199 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
3200 "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
3201 "dev": true
3202 },
3203 "delegates": {
3204 "version": "1.0.0",
3205 "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
3206 "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
3207 "dev": true
3208 },
3209 "depd": {
3210 "version": "0.4.4",
3211 "resolved": "https://registry.npmjs.org/depd/-/depd-0.4.4.tgz",
3212 "integrity": "sha1-BwkfrnX5eCjYm0oCotR3jw58BmI=",
3213 "dev": true
3214 },
3215 "destroy": {
3216 "version": "1.0.3",
3217 "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz",
3218 "integrity": "sha1-tDO0ck5x/YVR2YhRdIUcX8N34sk=",
3219 "dev": true
3220 },
3221 "detect-file": {
3222 "version": "1.0.0",
3223 "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
3224 "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc="
3225 },
3226 "detect-libc": {
3227 "version": "1.0.3",
3228 "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
3229 "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
3230 "dev": true
3231 },
3232 "dmg-builder": {
3233 "version": "6.4.0",
3234 "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-6.4.0.tgz",
3235 "integrity": "sha512-q84fMrMm9mXh2qH0Sb3+o0gCvfeJRBI+46y+CpQystqgRyB+3bZB11WqCf5d8+qsENhzpi786jR82xbHG1Vvag==",
3236 "dev": true,
3237 "requires": {
3238 "app-builder-lib": "~20.36.0",
3239 "bluebird-lst": "^1.0.6",
3240 "builder-util": "~9.3.0",
3241 "fs-extra-p": "^7.0.0",
3242 "iconv-lite": "^0.4.24",
3243 "js-yaml": "^3.12.0",
3244 "parse-color": "^1.0.0",
3245 "sanitize-filename": "^1.6.1"
3246 }
3247 },
3248 "doctrine": {
3249 "version": "2.1.0",
3250 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
3251 "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
3252 "dev": true,
3253 "requires": {
3254 "esutils": "^2.0.2"
3255 }
3256 },
3257 "dom-helpers": {
3258 "version": "3.3.1",
3259 "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.3.1.tgz",
3260 "integrity": "sha512-2Sm+JaYn74OiTM2wHvxJOo3roiq/h25Yi69Fqk269cNUwIXsCvATB6CRSFC9Am/20G2b28hGv/+7NiWydIrPvg=="
3261 },
3262 "dom-serializer": {
3263 "version": "0.1.0",
3264 "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
3265 "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
3266 "requires": {
3267 "domelementtype": "~1.1.1",
3268 "entities": "~1.1.1"
3269 },
3270 "dependencies": {
3271 "domelementtype": {
3272 "version": "1.1.3",
3273 "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
3274 "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs="
3275 }
3276 }
3277 },
3278 "domelementtype": {
3279 "version": "1.3.0",
3280 "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
3281 "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI="
3282 },
3283 "domhandler": {
3284 "version": "2.4.2",
3285 "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
3286 "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
3287 "requires": {
3288 "domelementtype": "1"
3289 }
3290 },
3291 "domutils": {
3292 "version": "1.7.0",
3293 "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
3294 "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
3295 "requires": {
3296 "dom-serializer": "0",
3297 "domelementtype": "1"
3298 }
3299 },
3300 "dot-prop": {
3301 "version": "4.2.0",
3302 "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
3303 "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
3304 "dev": true,
3305 "requires": {
3306 "is-obj": "^1.0.0"
3307 }
3308 },
3309 "dotenv": {
3310 "version": "4.0.0",
3311 "resolved": "http://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz",
3312 "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=",
3313 "dev": true
3314 },
3315 "dotenv-expand": {
3316 "version": "4.2.0",
3317 "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz",
3318 "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=",
3319 "dev": true
3320 },
3321 "du": {
3322 "version": "0.1.0",
3323 "resolved": "https://registry.npmjs.org/du/-/du-0.1.0.tgz",
3324 "integrity": "sha1-8m40CgnHvFtv1pr2263qYPqMb00=",
3325 "requires": {
3326 "async": "~0.1.22"
3327 }
3328 },
3329 "duplexer2": {
3330 "version": "0.0.2",
3331 "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
3332 "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
3333 "dev": true,
3334 "requires": {
3335 "readable-stream": "~1.1.9"
3336 },
3337 "dependencies": {
3338 "isarray": {
3339 "version": "0.0.1",
3340 "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
3341 "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
3342 "dev": true
3343 },
3344 "readable-stream": {
3345 "version": "1.1.14",
3346 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
3347 "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
3348 "dev": true,
3349 "requires": {
3350 "core-util-is": "~1.0.0",
3351 "inherits": "~2.0.1",
3352 "isarray": "0.0.1",
3353 "string_decoder": "~0.10.x"
3354 }
3355 },
3356 "string_decoder": {
3357 "version": "0.10.31",
3358 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
3359 "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
3360 "dev": true
3361 }
3362 }
3363 },
3364 "duplexer3": {
3365 "version": "0.1.4",
3366 "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
3367 "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
3368 "dev": true
3369 },
3370 "duplexify": {
3371 "version": "3.6.1",
3372 "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz",
3373 "integrity": "sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==",
3374 "dev": true,
3375 "requires": {
3376 "end-of-stream": "^1.0.0",
3377 "inherits": "^2.0.1",
3378 "readable-stream": "^2.0.0",
3379 "stream-shift": "^1.0.0"
3380 }
3381 },
3382 "each-props": {
3383 "version": "1.3.2",
3384 "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz",
3385 "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==",
3386 "dev": true,
3387 "requires": {
3388 "is-plain-object": "^2.0.1",
3389 "object.defaults": "^1.1.0"
3390 }
3391 },
3392 "ecc-jsbn": {
3393 "version": "0.1.2",
3394 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
3395 "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
3396 "dev": true,
3397 "requires": {
3398 "jsbn": "~0.1.0",
3399 "safer-buffer": "^2.1.0"
3400 }
3401 },
3402 "ecdsa-sig-formatter": {
3403 "version": "1.0.10",
3404 "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz",
3405 "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=",
3406 "requires": {
3407 "safe-buffer": "^5.0.1"
3408 }
3409 },
3410 "ee-first": {
3411 "version": "1.0.5",
3412 "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.0.5.tgz",
3413 "integrity": "sha1-jJshKJjYzZ8alDZlDOe+ICyen/A=",
3414 "dev": true
3415 },
3416 "ejs": {
3417 "version": "2.6.1",
3418 "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz",
3419 "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==",
3420 "dev": true
3421 },
3422 "electron": {
3423 "version": "2.0.13",
3424 "resolved": "https://registry.npmjs.org/electron/-/electron-2.0.13.tgz",
3425 "integrity": "sha512-8ouYaLsp0F4sPI7QKgJkkJhrwj1JPSnBwbz6HHA9l6u7WofEt94lV+gHw71KJrDl7UaIkFwlSjyhIjG8lIZqxw==",
3426 "dev": true,
3427 "requires": {
3428 "@types/node": "^8.0.24",
3429 "electron-download": "^3.0.1",
3430 "extract-zip": "^1.0.3"
3431 }
3432 },
3433 "electron-builder": {
3434 "version": "20.36.2",
3435 "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-20.36.2.tgz",
3436 "integrity": "sha512-xPJNt3ZBn5IYlp3pCP0Rvi00JYAKdTeOSLWFrkST1xqWfRZxXrI4uisVD9HQjzRN8hBHhTgTfXtb9uhWPha9eA==",
3437 "dev": true,
3438 "requires": {
3439 "app-builder-lib": "20.36.2",
3440 "bluebird-lst": "^1.0.6",
3441 "builder-util": "9.3.0",
3442 "builder-util-runtime": "8.0.2",
3443 "chalk": "^2.4.1",
3444 "dmg-builder": "6.4.0",
3445 "fs-extra-p": "^7.0.0",
3446 "is-ci": "^1.2.1",
3447 "lazy-val": "^1.0.3",
3448 "read-config-file": "3.2.0",
3449 "sanitize-filename": "^1.6.1",
3450 "update-notifier": "^2.5.0",
3451 "yargs": "^12.0.2"
3452 },
3453 "dependencies": {
3454 "ansi-regex": {
3455 "version": "3.0.0",
3456 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
3457 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
3458 "dev": true
3459 },
3460 "ansi-styles": {
3461 "version": "3.2.1",
3462 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
3463 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
3464 "dev": true,
3465 "requires": {
3466 "color-convert": "^1.9.0"
3467 }
3468 },
3469 "camelcase": {
3470 "version": "4.1.0",
3471 "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
3472 "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
3473 "dev": true
3474 },
3475 "chalk": {
3476 "version": "2.4.1",
3477 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
3478 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
3479 "dev": true,
3480 "requires": {
3481 "ansi-styles": "^3.2.1",
3482 "escape-string-regexp": "^1.0.5",
3483 "supports-color": "^5.3.0"
3484 }
3485 },
3486 "cliui": {
3487 "version": "4.1.0",
3488 "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
3489 "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
3490 "dev": true,
3491 "requires": {
3492 "string-width": "^2.1.1",
3493 "strip-ansi": "^4.0.0",
3494 "wrap-ansi": "^2.0.0"
3495 }
3496 },
3497 "decamelize": {
3498 "version": "2.0.0",
3499 "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz",
3500 "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==",
3501 "dev": true,
3502 "requires": {
3503 "xregexp": "4.0.0"
3504 }
3505 },
3506 "execa": {
3507 "version": "0.10.0",
3508 "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
3509 "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
3510 "dev": true,
3511 "requires": {
3512 "cross-spawn": "^6.0.0",
3513 "get-stream": "^3.0.0",
3514 "is-stream": "^1.1.0",
3515 "npm-run-path": "^2.0.0",
3516 "p-finally": "^1.0.0",
3517 "signal-exit": "^3.0.0",
3518 "strip-eof": "^1.0.0"
3519 }
3520 },
3521 "find-up": {
3522 "version": "3.0.0",
3523 "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
3524 "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
3525 "dev": true,
3526 "requires": {
3527 "locate-path": "^3.0.0"
3528 }
3529 },
3530 "invert-kv": {
3531 "version": "2.0.0",
3532 "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
3533 "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
3534 "dev": true
3535 },
3536 "is-fullwidth-code-point": {
3537 "version": "2.0.0",
3538 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
3539 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
3540 "dev": true
3541 },
3542 "lcid": {
3543 "version": "2.0.0",
3544 "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
3545 "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
3546 "dev": true,
3547 "requires": {
3548 "invert-kv": "^2.0.0"
3549 }
3550 },
3551 "locate-path": {
3552 "version": "3.0.0",
3553 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
3554 "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
3555 "dev": true,
3556 "requires": {
3557 "p-locate": "^3.0.0",
3558 "path-exists": "^3.0.0"
3559 }
3560 },
3561 "os-locale": {
3562 "version": "3.0.1",
3563 "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz",
3564 "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==",
3565 "dev": true,
3566 "requires": {
3567 "execa": "^0.10.0",
3568 "lcid": "^2.0.0",
3569 "mem": "^4.0.0"
3570 }
3571 },
3572 "p-limit": {
3573 "version": "2.0.0",
3574 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
3575 "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
3576 "dev": true,
3577 "requires": {
3578 "p-try": "^2.0.0"
3579 }
3580 },
3581 "p-locate": {
3582 "version": "3.0.0",
3583 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
3584 "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
3585 "dev": true,
3586 "requires": {
3587 "p-limit": "^2.0.0"
3588 }
3589 },
3590 "p-try": {
3591 "version": "2.0.0",
3592 "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
3593 "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
3594 "dev": true
3595 },
3596 "path-exists": {
3597 "version": "3.0.0",
3598 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
3599 "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
3600 "dev": true
3601 },
3602 "string-width": {
3603 "version": "2.1.1",
3604 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
3605 "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
3606 "dev": true,
3607 "requires": {
3608 "is-fullwidth-code-point": "^2.0.0",
3609 "strip-ansi": "^4.0.0"
3610 }
3611 },
3612 "strip-ansi": {
3613 "version": "4.0.0",
3614 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
3615 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
3616 "dev": true,
3617 "requires": {
3618 "ansi-regex": "^3.0.0"
3619 }
3620 },
3621 "supports-color": {
3622 "version": "5.5.0",
3623 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
3624 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
3625 "dev": true,
3626 "requires": {
3627 "has-flag": "^3.0.0"
3628 }
3629 },
3630 "which-module": {
3631 "version": "2.0.0",
3632 "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
3633 "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
3634 "dev": true
3635 },
3636 "yargs": {
3637 "version": "12.0.2",
3638 "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz",
3639 "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==",
3640 "dev": true,
3641 "requires": {
3642 "cliui": "^4.0.0",
3643 "decamelize": "^2.0.0",
3644 "find-up": "^3.0.0",
3645 "get-caller-file": "^1.0.1",
3646 "os-locale": "^3.0.0",
3647 "require-directory": "^2.1.1",
3648 "require-main-filename": "^1.0.1",
3649 "set-blocking": "^2.0.0",
3650 "string-width": "^2.0.0",
3651 "which-module": "^2.0.0",
3652 "y18n": "^3.2.1 || ^4.0.0",
3653 "yargs-parser": "^10.1.0"
3654 }
3655 },
3656 "yargs-parser": {
3657 "version": "10.1.0",
3658 "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz",
3659 "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==",
3660 "dev": true,
3661 "requires": {
3662 "camelcase": "^4.1.0"
3663 }
3664 }
3665 }
3666 },
3667 "electron-download": {
3668 "version": "3.3.0",
3669 "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-3.3.0.tgz",
3670 "integrity": "sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg=",
3671 "dev": true,
3672 "requires": {
3673 "debug": "^2.2.0",
3674 "fs-extra": "^0.30.0",
3675 "home-path": "^1.0.1",
3676 "minimist": "^1.2.0",
3677 "nugget": "^2.0.0",
3678 "path-exists": "^2.1.0",
3679 "rc": "^1.1.2",
3680 "semver": "^5.3.0",
3681 "sumchecker": "^1.2.0"
3682 },
3683 "dependencies": {
3684 "fs-extra": {
3685 "version": "0.30.0",
3686 "resolved": "http://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
3687 "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
3688 "dev": true,
3689 "requires": {
3690 "graceful-fs": "^4.1.2",
3691 "jsonfile": "^2.1.0",
3692 "klaw": "^1.0.0",
3693 "path-is-absolute": "^1.0.0",
3694 "rimraf": "^2.2.8"
3695 }
3696 },
3697 "jsonfile": {
3698 "version": "2.4.0",
3699 "resolved": "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
3700 "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
3701 "dev": true,
3702 "requires": {
3703 "graceful-fs": "^4.1.6"
3704 }
3705 },
3706 "sumchecker": {
3707 "version": "1.3.1",
3708 "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-1.3.1.tgz",
3709 "integrity": "sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0=",
3710 "dev": true,
3711 "requires": {
3712 "debug": "^2.2.0",
3713 "es6-promise": "^4.0.5"
3714 }
3715 }
3716 }
3717 },
3718 "electron-fetch": {
3719 "version": "1.3.0",
3720 "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.3.0.tgz",
3721 "integrity": "sha512-WzHnWZqKdiCKHqqHu+GphezoWRSUVH6BQ/f13vu16VwYKJRZNt2dUrx40eZJcyZcDGn6RJDTAHS6jVoHoglgNw==",
3722 "requires": {
3723 "encoding": "^0.1.12"
3724 }
3725 },
3726 "electron-osx-sign": {
3727 "version": "0.4.11",
3728 "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.11.tgz",
3729 "integrity": "sha512-VVd40nrnVqymvFrY9ZkOYgHJOvexHHYTR3di/SN+mjJ0OWhR1I8BRVj3U+Yamw6hnkZZNKZp52rqL5EFAAPFkQ==",
3730 "dev": true,
3731 "requires": {
3732 "bluebird": "^3.5.0",
3733 "compare-version": "^0.1.2",
3734 "debug": "^2.6.8",
3735 "isbinaryfile": "^3.0.2",
3736 "minimist": "^1.2.0",
3737 "plist": "^3.0.1"
3738 }
3739 },
3740 "electron-publish": {
3741 "version": "20.36.0",
3742 "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-20.36.0.tgz",
3743 "integrity": "sha512-LjJ4KoApSLtKyGWotv0B+PoTzpLEdHHXzDF9HLxatPlfoZCmrOexqm7Qiv1ODuYWPac7Zpf2OHitJp8WIOcZRQ==",
3744 "dev": true,
3745 "requires": {
3746 "bluebird-lst": "^1.0.6",
3747 "builder-util": "~9.3.0",
3748 "builder-util-runtime": "^8.0.1",
3749 "chalk": "^2.4.1",
3750 "fs-extra-p": "^7.0.0",
3751 "lazy-val": "^1.0.3",
3752 "mime": "^2.3.1"
3753 },
3754 "dependencies": {
3755 "ansi-styles": {
3756 "version": "3.2.1",
3757 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
3758 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
3759 "dev": true,
3760 "requires": {
3761 "color-convert": "^1.9.0"
3762 }
3763 },
3764 "chalk": {
3765 "version": "2.4.1",
3766 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
3767 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
3768 "dev": true,
3769 "requires": {
3770 "ansi-styles": "^3.2.1",
3771 "escape-string-regexp": "^1.0.5",
3772 "supports-color": "^5.3.0"
3773 }
3774 },
3775 "supports-color": {
3776 "version": "5.5.0",
3777 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
3778 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
3779 "dev": true,
3780 "requires": {
3781 "has-flag": "^3.0.0"
3782 }
3783 }
3784 }
3785 },
3786 "electron-react-titlebar": {
3787 "version": "0.8.1",
3788 "resolved": "https://registry.npmjs.org/electron-react-titlebar/-/electron-react-titlebar-0.8.1.tgz",
3789 "integrity": "sha512-AJb+eWeLUP7S0kNk+JDqT9rEYbN2tYsP449ekJcO9CJs1OAU2KLGdMJ0pwJNrOu6BFAxEXtFAz+MfQGcSi/1hA==",
3790 "requires": {
3791 "lodash": "^4.17.4",
3792 "react-virtualized": "^9.7.6"
3793 }
3794 },
3795 "electron-rebuild": {
3796 "version": "1.8.2",
3797 "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.2.tgz",
3798 "integrity": "sha512-EeR4dgb6NN7ybxduUWMeeLhU/EuF+FzwFZJfMJXD0bx96K+ttAieCXOn9lTO5nA9Qn3hiS7pEpk8pZ9StpGgSg==",
3799 "dev": true,
3800 "requires": {
3801 "colors": "^1.2.0",
3802 "debug": "^2.6.3",
3803 "detect-libc": "^1.0.3",
3804 "fs-extra": "^3.0.1",
3805 "node-abi": "^2.0.0",
3806 "node-gyp": "^3.6.0",
3807 "ora": "^1.2.0",
3808 "rimraf": "^2.6.1",
3809 "spawn-rx": "^2.0.10",
3810 "yargs": "^7.0.2"
3811 },
3812 "dependencies": {
3813 "fs-extra": {
3814 "version": "3.0.1",
3815 "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz",
3816 "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=",
3817 "dev": true,
3818 "requires": {
3819 "graceful-fs": "^4.1.2",
3820 "jsonfile": "^3.0.0",
3821 "universalify": "^0.1.0"
3822 }
3823 },
3824 "jsonfile": {
3825 "version": "3.0.1",
3826 "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz",
3827 "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=",
3828 "dev": true,
3829 "requires": {
3830 "graceful-fs": "^4.1.6"
3831 }
3832 }
3833 }
3834 },
3835 "electron-remote": {
3836 "version": "1.3.0",
3837 "resolved": "https://registry.npmjs.org/electron-remote/-/electron-remote-1.3.0.tgz",
3838 "integrity": "sha512-i00MD42fzlmyhsYRUDrMM104OQTT/soEmBmZ707CZ3k/nwa0rrB3a3mpxvR0EI2Q+Xw2VBdhWbk2gYmyg0PS0g==",
3839 "requires": {
3840 "debug": "^2.5.1",
3841 "hashids": "^1.1.1",
3842 "lodash.get": "^4.4.2",
3843 "pify": "^2.3.0",
3844 "rxjs": "^5.0.0-beta.12",
3845 "xmlhttprequest": "^1.8.0"
3846 }
3847 },
3848 "electron-spellchecker": {
3849 "version": "1.1.2",
3850 "resolved": "https://registry.npmjs.org/electron-spellchecker/-/electron-spellchecker-1.1.2.tgz",
3851 "integrity": "sha512-AdzD/Q82Svk9EDTc65vRr271UPLVIxsruKJM0iwqxEG9Y/CogNhEAJz/asV0BFWom4tpdB6cHcLbYePb11Musw==",
3852 "requires": {
3853 "@paulcbetts/cld": "^2.4.6",
3854 "@paulcbetts/spellchecker": "^4.0.6",
3855 "bcp47": "^1.1.2",
3856 "debug": "^2.6.3",
3857 "electron-remote": "^1.1.1",
3858 "keyboard-layout": "^2.0.7",
3859 "lru-cache": "^4.0.2",
3860 "mkdirp": "^0.5.1",
3861 "pify": "^2.3.0",
3862 "rxjs": "^5.0.1",
3863 "rxjs-serial-subscription": "^0.1.1",
3864 "spawn-rx": "^2.0.7"
3865 },
3866 "dependencies": {
3867 "@paulcbetts/cld": {
3868 "version": "2.4.6",
3869 "resolved": "https://registry.npmjs.org/@paulcbetts/cld/-/cld-2.4.6.tgz",
3870 "integrity": "sha1-qZL2vEPKshKsLESIpnHPMC+LYuc=",
3871 "requires": {
3872 "glob": "^5.0.10",
3873 "nan": "^2.0.5",
3874 "rimraf": "^2.4.0",
3875 "underscore": "^1.6.0"
3876 }
3877 },
3878 "@paulcbetts/spellchecker": {
3879 "version": "4.0.6",
3880 "resolved": "https://registry.npmjs.org/@paulcbetts/spellchecker/-/spellchecker-4.0.6.tgz",
3881 "integrity": "sha512-9lhLEvWfAB00n2oOM/S08sna9AuFk+b+bPk8ficpSa2X0Ll40PahMwfFS3G54nqQBIFFZgTPrhoHtCLAao0xmg==",
3882 "requires": {
3883 "nan": "^2.0.0"
3884 }
3885 },
3886 "glob": {
3887 "version": "5.0.15",
3888 "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
3889 "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
3890 "requires": {
3891 "inflight": "^1.0.4",
3892 "inherits": "2",
3893 "minimatch": "2 || 3",
3894 "once": "^1.3.0",
3895 "path-is-absolute": "^1.0.0"
3896 }
3897 },
3898 "keyboard-layout": {
3899 "version": "2.0.14",
3900 "resolved": "https://registry.npmjs.org/keyboard-layout/-/keyboard-layout-2.0.14.tgz",
3901 "integrity": "sha512-QuCfpEC8oai6F8oaNQdxi5+1QIpaQu9HSVI9yzkC2HbIXeBnahzHFDRVGUtwwAWiNnzjNBjUI/djsrMGUTgK1w==",
3902 "requires": {
3903 "event-kit": "^2.0.0",
3904 "nan": "^2.10.0"
3905 }
3906 }
3907 }
3908 },
3909 "electron-to-chromium": {
3910 "version": "1.3.80",
3911 "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.80.tgz",
3912 "integrity": "sha512-WClidEWEUNx7OfwXehB0qaxCuetjbKjev2SmXWgybWPLKAThBiMTF/2Pd8GSUDtoGOavxVzdkKwfFAPRSWlkLw==",
3913 "dev": true
3914 },
3915 "electron-updater": {
3916 "version": "4.0.4",
3917 "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.0.4.tgz",
3918 "integrity": "sha512-y3wddJQyC5h1UTJhNAWoX4McJ5Z1r1ZDqyifpYWniVS286YCXe1xSLkbe9C6ZzxzPurt1jg2ZubPuBNt/811Dw==",
3919 "requires": {
3920 "bluebird-lst": "^1.0.6",
3921 "builder-util-runtime": "~8.0.2",
3922 "fs-extra-p": "^7.0.0",
3923 "js-yaml": "^3.12.0",
3924 "lazy-val": "^1.0.3",
3925 "lodash.isequal": "^4.5.0",
3926 "pako": "^1.0.6",
3927 "semver": "^5.6.0",
3928 "source-map-support": "^0.5.9"
3929 }
3930 },
3931 "electron-window-state": {
3932 "version": "4.1.1",
3933 "resolved": "https://registry.npmjs.org/electron-window-state/-/electron-window-state-4.1.1.tgz",
3934 "integrity": "sha1-azT9wxs4UU3+yLfI97XUrdtnYy0=",
3935 "requires": {
3936 "deep-equal": "^1.0.1",
3937 "jsonfile": "^2.2.3",
3938 "mkdirp": "^0.5.1"
3939 },
3940 "dependencies": {
3941 "jsonfile": {
3942 "version": "2.4.0",
3943 "resolved": "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
3944 "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
3945 "requires": {
3946 "graceful-fs": "^4.1.6"
3947 }
3948 }
3949 }
3950 },
3951 "email-addresses": {
3952 "version": "3.0.2",
3953 "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.0.2.tgz",
3954 "integrity": "sha512-IMn9dnwLMsgZjdUHswB/UZ0S8LQ/u+2/qjnHJ9tCtp3QHZsIYwJCiJOo2FT0i3CwwK/dtSODYtxuvzV4D9MY5g=="
3955 },
3956 "emojis-list": {
3957 "version": "2.1.0",
3958 "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
3959 "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
3960 "dev": true
3961 },
3962 "encoding": {
3963 "version": "0.1.12",
3964 "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
3965 "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
3966 "requires": {
3967 "iconv-lite": "~0.4.13"
3968 }
3969 },
3970 "end-of-stream": {
3971 "version": "1.4.1",
3972 "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
3973 "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
3974 "dev": true,
3975 "requires": {
3976 "once": "^1.4.0"
3977 }
3978 },
3979 "engine.io": {
3980 "version": "1.8.5",
3981 "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.5.tgz",
3982 "integrity": "sha512-j1DWIcktw4hRwrv6nWx++5nFH2X64x16MAG2P0Lmi5Dvdfi3I+Jhc7JKJIdAmDJa+5aZ/imHV7dWRPy2Cqjh3A==",
3983 "dev": true,
3984 "requires": {
3985 "accepts": "1.3.3",
3986 "base64id": "1.0.0",
3987 "cookie": "0.3.1",
3988 "debug": "2.3.3",
3989 "engine.io-parser": "1.3.2",
3990 "ws": "~1.1.5"
3991 },
3992 "dependencies": {
3993 "accepts": {
3994 "version": "1.3.3",
3995 "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz",
3996 "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=",
3997 "dev": true,
3998 "requires": {
3999 "mime-types": "~2.1.11",
4000 "negotiator": "0.6.1"
4001 }
4002 },
4003 "debug": {
4004 "version": "2.3.3",
4005 "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
4006 "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
4007 "dev": true,
4008 "requires": {
4009 "ms": "0.7.2"
4010 }
4011 },
4012 "ms": {
4013 "version": "0.7.2",
4014 "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
4015 "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
4016 "dev": true
4017 },
4018 "negotiator": {
4019 "version": "0.6.1",
4020 "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
4021 "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
4022 "dev": true
4023 }
4024 }
4025 },
4026 "engine.io-client": {
4027 "version": "1.8.5",
4028 "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.5.tgz",
4029 "integrity": "sha512-AYTgHyeVUPitsseqjoedjhYJapNVoSPShbZ+tEUX9/73jgZ/Z3sUlJf9oYgdEBBdVhupUpUqSxH0kBCXlQnmZg==",
4030 "dev": true,
4031 "requires": {
4032 "component-emitter": "1.2.1",
4033 "component-inherit": "0.0.3",
4034 "debug": "2.3.3",
4035 "engine.io-parser": "1.3.2",
4036 "has-cors": "1.1.0",
4037 "indexof": "0.0.1",
4038 "parsejson": "0.0.3",
4039 "parseqs": "0.0.5",
4040 "parseuri": "0.0.5",
4041 "ws": "~1.1.5",
4042 "xmlhttprequest-ssl": "1.5.3",
4043 "yeast": "0.1.2"
4044 },
4045 "dependencies": {
4046 "debug": {
4047 "version": "2.3.3",
4048 "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
4049 "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
4050 "dev": true,
4051 "requires": {
4052 "ms": "0.7.2"
4053 }
4054 },
4055 "ms": {
4056 "version": "0.7.2",
4057 "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
4058 "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
4059 "dev": true
4060 }
4061 }
4062 },
4063 "engine.io-parser": {
4064 "version": "1.3.2",
4065 "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz",
4066 "integrity": "sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=",
4067 "dev": true,
4068 "requires": {
4069 "after": "0.8.2",
4070 "arraybuffer.slice": "0.0.6",
4071 "base64-arraybuffer": "0.1.5",
4072 "blob": "0.0.4",
4073 "has-binary": "0.1.7",
4074 "wtf-8": "1.0.0"
4075 }
4076 },
4077 "entities": {
4078 "version": "1.1.2",
4079 "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
4080 "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
4081 },
4082 "error-ex": {
4083 "version": "1.3.2",
4084 "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
4085 "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
4086 "dev": true,
4087 "requires": {
4088 "is-arrayish": "^0.2.1"
4089 }
4090 },
4091 "es-abstract": {
4092 "version": "1.12.0",
4093 "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz",
4094 "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==",
4095 "dev": true,
4096 "requires": {
4097 "es-to-primitive": "^1.1.1",
4098 "function-bind": "^1.1.1",
4099 "has": "^1.0.1",
4100 "is-callable": "^1.1.3",
4101 "is-regex": "^1.0.4"
4102 }
4103 },
4104 "es-to-primitive": {
4105 "version": "1.2.0",
4106 "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
4107 "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
4108 "dev": true,
4109 "requires": {
4110 "is-callable": "^1.1.4",
4111 "is-date-object": "^1.0.1",
4112 "is-symbol": "^1.0.2"
4113 }
4114 },
4115 "es5-ext": {
4116 "version": "0.10.46",
4117 "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz",
4118 "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==",
4119 "requires": {
4120 "es6-iterator": "~2.0.3",
4121 "es6-symbol": "~3.1.1",
4122 "next-tick": "1"
4123 }
4124 },
4125 "es6-iterator": {
4126 "version": "2.0.3",
4127 "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
4128 "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
4129 "requires": {
4130 "d": "1",
4131 "es5-ext": "^0.10.35",
4132 "es6-symbol": "^3.1.1"
4133 }
4134 },
4135 "es6-promise": {
4136 "version": "4.2.5",
4137 "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz",
4138 "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==",
4139 "dev": true
4140 },
4141 "es6-symbol": {
4142 "version": "3.1.1",
4143 "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
4144 "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
4145 "requires": {
4146 "d": "1",
4147 "es5-ext": "~0.10.14"
4148 }
4149 },
4150 "es6-weak-map": {
4151 "version": "2.0.2",
4152 "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
4153 "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
4154 "dev": true,
4155 "requires": {
4156 "d": "1",
4157 "es5-ext": "^0.10.14",
4158 "es6-iterator": "^2.0.1",
4159 "es6-symbol": "^3.1.1"
4160 }
4161 },
4162 "escape-html": {
4163 "version": "1.0.1",
4164 "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz",
4165 "integrity": "sha1-GBoobq05ejmpKFfPsdQwUuNWv/A=",
4166 "dev": true
4167 },
4168 "escape-string-regexp": {
4169 "version": "1.0.5",
4170 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
4171 "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
4172 },
4173 "eslint": {
4174 "version": "4.19.1",
4175 "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz",
4176 "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==",
4177 "dev": true,
4178 "requires": {
4179 "ajv": "^5.3.0",
4180 "babel-code-frame": "^6.22.0",
4181 "chalk": "^2.1.0",
4182 "concat-stream": "^1.6.0",
4183 "cross-spawn": "^5.1.0",
4184 "debug": "^3.1.0",
4185 "doctrine": "^2.1.0",
4186 "eslint-scope": "^3.7.1",
4187 "eslint-visitor-keys": "^1.0.0",
4188 "espree": "^3.5.4",
4189 "esquery": "^1.0.0",
4190 "esutils": "^2.0.2",
4191 "file-entry-cache": "^2.0.0",
4192 "functional-red-black-tree": "^1.0.1",
4193 "glob": "^7.1.2",
4194 "globals": "^11.0.1",
4195 "ignore": "^3.3.3",
4196 "imurmurhash": "^0.1.4",
4197 "inquirer": "^3.0.6",
4198 "is-resolvable": "^1.0.0",
4199 "js-yaml": "^3.9.1",
4200 "json-stable-stringify-without-jsonify": "^1.0.1",
4201 "levn": "^0.3.0",
4202 "lodash": "^4.17.4",
4203 "minimatch": "^3.0.2",
4204 "mkdirp": "^0.5.1",
4205 "natural-compare": "^1.4.0",
4206 "optionator": "^0.8.2",
4207 "path-is-inside": "^1.0.2",
4208 "pluralize": "^7.0.0",
4209 "progress": "^2.0.0",
4210 "regexpp": "^1.0.1",
4211 "require-uncached": "^1.0.3",
4212 "semver": "^5.3.0",
4213 "strip-ansi": "^4.0.0",
4214 "strip-json-comments": "~2.0.1",
4215 "table": "4.0.2",
4216 "text-table": "~0.2.0"
4217 },
4218 "dependencies": {
4219 "ansi-regex": {
4220 "version": "3.0.0",
4221 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
4222 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
4223 "dev": true
4224 },
4225 "ansi-styles": {
4226 "version": "3.2.1",
4227 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
4228 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
4229 "dev": true,
4230 "requires": {
4231 "color-convert": "^1.9.0"
4232 }
4233 },
4234 "chalk": {
4235 "version": "2.4.1",
4236 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
4237 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
4238 "dev": true,
4239 "requires": {
4240 "ansi-styles": "^3.2.1",
4241 "escape-string-regexp": "^1.0.5",
4242 "supports-color": "^5.3.0"
4243 }
4244 },
4245 "cross-spawn": {
4246 "version": "5.1.0",
4247 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
4248 "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
4249 "dev": true,
4250 "requires": {
4251 "lru-cache": "^4.0.1",
4252 "shebang-command": "^1.2.0",
4253 "which": "^1.2.9"
4254 }
4255 },
4256 "debug": {
4257 "version": "3.2.6",
4258 "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
4259 "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
4260 "dev": true,
4261 "requires": {
4262 "ms": "^2.1.1"
4263 }
4264 },
4265 "globals": {
4266 "version": "11.8.0",
4267 "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz",
4268 "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==",
4269 "dev": true
4270 },
4271 "ms": {
4272 "version": "2.1.1",
4273 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
4274 "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
4275 "dev": true
4276 },
4277 "strip-ansi": {
4278 "version": "4.0.0",
4279 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
4280 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
4281 "dev": true,
4282 "requires": {
4283 "ansi-regex": "^3.0.0"
4284 }
4285 },
4286 "supports-color": {
4287 "version": "5.5.0",
4288 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
4289 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
4290 "dev": true,
4291 "requires": {
4292 "has-flag": "^3.0.0"
4293 }
4294 }
4295 }
4296 },
4297 "eslint-config-airbnb": {
4298 "version": "14.1.0",
4299 "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-14.1.0.tgz",
4300 "integrity": "sha1-NV0pAEC7+OAL+LSxn0twy+fCMX8=",
4301 "dev": true,
4302 "requires": {
4303 "eslint-config-airbnb-base": "^11.1.0"
4304 }
4305 },
4306 "eslint-config-airbnb-base": {
4307 "version": "11.3.2",
4308 "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.3.2.tgz",
4309 "integrity": "sha512-/fhjt/VqzBA2SRsx7ErDtv6Ayf+XLw9LIOqmpBuHFCVwyJo2EtzGWMB9fYRFBoWWQLxmNmCpenNiH0RxyeS41w==",
4310 "dev": true,
4311 "requires": {
4312 "eslint-restricted-globals": "^0.1.1"
4313 }
4314 },
4315 "eslint-import-resolver-node": {
4316 "version": "0.3.2",
4317 "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz",
4318 "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==",
4319 "dev": true,
4320 "requires": {
4321 "debug": "^2.6.9",
4322 "resolve": "^1.5.0"
4323 }
4324 },
4325 "eslint-loader": {
4326 "version": "1.9.0",
4327 "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-1.9.0.tgz",
4328 "integrity": "sha512-40aN976qSNPyb9ejTqjEthZITpls1SVKtwguahmH1dzGCwQU/vySE+xX33VZmD8csU0ahVNCtFlsPgKqRBiqgg==",
4329 "dev": true,
4330 "requires": {
4331 "loader-fs-cache": "^1.0.0",
4332 "loader-utils": "^1.0.2",
4333 "object-assign": "^4.0.1",
4334 "object-hash": "^1.1.4",
4335 "rimraf": "^2.6.1"
4336 }
4337 },
4338 "eslint-module-utils": {
4339 "version": "2.2.0",
4340 "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz",
4341 "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=",
4342 "dev": true,
4343 "requires": {
4344 "debug": "^2.6.8",
4345 "pkg-dir": "^1.0.0"
4346 }
4347 },
4348 "eslint-plugin-import": {
4349 "version": "2.14.0",
4350 "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz",
4351 "integrity": "sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==",
4352 "dev": true,
4353 "requires": {
4354 "contains-path": "^0.1.0",
4355 "debug": "^2.6.8",
4356 "doctrine": "1.5.0",
4357 "eslint-import-resolver-node": "^0.3.1",
4358 "eslint-module-utils": "^2.2.0",
4359 "has": "^1.0.1",
4360 "lodash": "^4.17.4",
4361 "minimatch": "^3.0.3",
4362 "read-pkg-up": "^2.0.0",
4363 "resolve": "^1.6.0"
4364 },
4365 "dependencies": {
4366 "doctrine": {
4367 "version": "1.5.0",
4368 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
4369 "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
4370 "dev": true,
4371 "requires": {
4372 "esutils": "^2.0.2",
4373 "isarray": "^1.0.0"
4374 }
4375 },
4376 "find-up": {
4377 "version": "2.1.0",
4378 "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
4379 "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
4380 "dev": true,
4381 "requires": {
4382 "locate-path": "^2.0.0"
4383 }
4384 },
4385 "load-json-file": {
4386 "version": "2.0.0",
4387 "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
4388 "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
4389 "dev": true,
4390 "requires": {
4391 "graceful-fs": "^4.1.2",
4392 "parse-json": "^2.2.0",
4393 "pify": "^2.0.0",
4394 "strip-bom": "^3.0.0"
4395 }
4396 },
4397 "path-type": {
4398 "version": "2.0.0",
4399 "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
4400 "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
4401 "dev": true,
4402 "requires": {
4403 "pify": "^2.0.0"
4404 }
4405 },
4406 "read-pkg": {
4407 "version": "2.0.0",
4408 "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
4409 "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
4410 "dev": true,
4411 "requires": {
4412 "load-json-file": "^2.0.0",
4413 "normalize-package-data": "^2.3.2",
4414 "path-type": "^2.0.0"
4415 }
4416 },
4417 "read-pkg-up": {
4418 "version": "2.0.0",
4419 "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
4420 "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
4421 "dev": true,
4422 "requires": {
4423 "find-up": "^2.0.0",
4424 "read-pkg": "^2.0.0"
4425 }
4426 },
4427 "strip-bom": {
4428 "version": "3.0.0",
4429 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
4430 "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
4431 "dev": true
4432 }
4433 }
4434 },
4435 "eslint-plugin-jsx-a11y": {
4436 "version": "3.0.2",
4437 "resolved": "http://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-3.0.2.tgz",
4438 "integrity": "sha1-nw6ryv3j0qJgDZamatuQ0JnoQf4=",
4439 "dev": true,
4440 "requires": {
4441 "damerau-levenshtein": "^1.0.0",
4442 "jsx-ast-utils": "^1.0.0",
4443 "object-assign": "^4.0.1"
4444 }
4445 },
4446 "eslint-plugin-react": {
4447 "version": "6.10.3",
4448 "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz",
4449 "integrity": "sha1-xUNb6wZ3ThLH2y9qut3L+QDNP3g=",
4450 "dev": true,
4451 "requires": {
4452 "array.prototype.find": "^2.0.1",
4453 "doctrine": "^1.2.2",
4454 "has": "^1.0.1",
4455 "jsx-ast-utils": "^1.3.4",
4456 "object.assign": "^4.0.4"
4457 },
4458 "dependencies": {
4459 "doctrine": {
4460 "version": "1.5.0",
4461 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
4462 "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
4463 "dev": true,
4464 "requires": {
4465 "esutils": "^2.0.2",
4466 "isarray": "^1.0.0"
4467 }
4468 }
4469 }
4470 },
4471 "eslint-restricted-globals": {
4472 "version": "0.1.1",
4473 "resolved": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz",
4474 "integrity": "sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=",
4475 "dev": true
4476 },
4477 "eslint-scope": {
4478 "version": "3.7.3",
4479 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz",
4480 "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==",
4481 "dev": true,
4482 "requires": {
4483 "esrecurse": "^4.1.0",
4484 "estraverse": "^4.1.1"
4485 }
4486 },
4487 "eslint-visitor-keys": {
4488 "version": "1.0.0",
4489 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
4490 "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==",
4491 "dev": true
4492 },
4493 "espree": {
4494 "version": "3.5.4",
4495 "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
4496 "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
4497 "dev": true,
4498 "requires": {
4499 "acorn": "^5.5.0",
4500 "acorn-jsx": "^3.0.0"
4501 }
4502 },
4503 "esprima": {
4504 "version": "4.0.1",
4505 "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
4506 "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
4507 },
4508 "esquery": {
4509 "version": "1.0.1",
4510 "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
4511 "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
4512 "dev": true,
4513 "requires": {
4514 "estraverse": "^4.0.0"
4515 }
4516 },
4517 "esrecurse": {
4518 "version": "4.2.1",
4519 "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
4520 "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
4521 "dev": true,
4522 "requires": {
4523 "estraverse": "^4.1.0"
4524 }
4525 },
4526 "estraverse": {
4527 "version": "4.2.0",
4528 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
4529 "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
4530 "dev": true
4531 },
4532 "esutils": {
4533 "version": "2.0.2",
4534 "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
4535 "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
4536 "dev": true
4537 },
4538 "event-kit": {
4539 "version": "2.5.3",
4540 "resolved": "https://registry.npmjs.org/event-kit/-/event-kit-2.5.3.tgz",
4541 "integrity": "sha512-b7Qi1JNzY4BfAYfnIRanLk0DOD1gdkWHT4GISIn8Q2tAf3LpU8SP2CMwWaq40imYoKWbtN4ZhbSRxvsnikooZQ=="
4542 },
4543 "execa": {
4544 "version": "0.7.0",
4545 "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
4546 "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
4547 "dev": true,
4548 "requires": {
4549 "cross-spawn": "^5.0.1",
4550 "get-stream": "^3.0.0",
4551 "is-stream": "^1.1.0",
4552 "npm-run-path": "^2.0.0",
4553 "p-finally": "^1.0.0",
4554 "signal-exit": "^3.0.0",
4555 "strip-eof": "^1.0.0"
4556 },
4557 "dependencies": {
4558 "cross-spawn": {
4559 "version": "5.1.0",
4560 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
4561 "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
4562 "dev": true,
4563 "requires": {
4564 "lru-cache": "^4.0.1",
4565 "shebang-command": "^1.2.0",
4566 "which": "^1.2.9"
4567 }
4568 }
4569 }
4570 },
4571 "expand-brackets": {
4572 "version": "2.1.4",
4573 "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
4574 "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
4575 "requires": {
4576 "debug": "^2.3.3",
4577 "define-property": "^0.2.5",
4578 "extend-shallow": "^2.0.1",
4579 "posix-character-classes": "^0.1.0",
4580 "regex-not": "^1.0.0",
4581 "snapdragon": "^0.8.1",
4582 "to-regex": "^3.0.1"
4583 },
4584 "dependencies": {
4585 "define-property": {
4586 "version": "0.2.5",
4587 "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
4588 "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
4589 "requires": {
4590 "is-descriptor": "^0.1.0"
4591 }
4592 },
4593 "extend-shallow": {
4594 "version": "2.0.1",
4595 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
4596 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
4597 "requires": {
4598 "is-extendable": "^0.1.0"
4599 }
4600 }
4601 }
4602 },
4603 "expand-range": {
4604 "version": "1.8.2",
4605 "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
4606 "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
4607 "requires": {
4608 "fill-range": "^2.1.0"
4609 },
4610 "dependencies": {
4611 "fill-range": {
4612 "version": "2.2.4",
4613 "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
4614 "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
4615 "requires": {
4616 "is-number": "^2.1.0",
4617 "isobject": "^2.0.0",
4618 "randomatic": "^3.0.0",
4619 "repeat-element": "^1.1.2",
4620 "repeat-string": "^1.5.2"
4621 }
4622 },
4623 "is-number": {
4624 "version": "2.1.0",
4625 "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
4626 "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
4627 "requires": {
4628 "kind-of": "^3.0.2"
4629 }
4630 },
4631 "isobject": {
4632 "version": "2.1.0",
4633 "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
4634 "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
4635 "requires": {
4636 "isarray": "1.0.0"
4637 }
4638 },
4639 "kind-of": {
4640 "version": "3.2.2",
4641 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
4642 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
4643 "requires": {
4644 "is-buffer": "^1.1.5"
4645 }
4646 }
4647 }
4648 },
4649 "expand-tilde": {
4650 "version": "2.0.2",
4651 "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
4652 "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
4653 "requires": {
4654 "homedir-polyfill": "^1.0.1"
4655 }
4656 },
4657 "extend": {
4658 "version": "3.0.2",
4659 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
4660 "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
4661 },
4662 "extend-shallow": {
4663 "version": "3.0.2",
4664 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
4665 "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
4666 "requires": {
4667 "assign-symbols": "^1.0.0",
4668 "is-extendable": "^1.0.1"
4669 },
4670 "dependencies": {
4671 "is-extendable": {
4672 "version": "1.0.1",
4673 "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
4674 "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
4675 "requires": {
4676 "is-plain-object": "^2.0.4"
4677 }
4678 }
4679 }
4680 },
4681 "external-editor": {
4682 "version": "2.2.0",
4683 "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
4684 "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
4685 "dev": true,
4686 "requires": {
4687 "chardet": "^0.4.0",
4688 "iconv-lite": "^0.4.17",
4689 "tmp": "^0.0.33"
4690 },
4691 "dependencies": {
4692 "tmp": {
4693 "version": "0.0.33",
4694 "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
4695 "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
4696 "dev": true,
4697 "requires": {
4698 "os-tmpdir": "~1.0.2"
4699 }
4700 }
4701 }
4702 },
4703 "extglob": {
4704 "version": "2.0.4",
4705 "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
4706 "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
4707 "requires": {
4708 "array-unique": "^0.3.2",
4709 "define-property": "^1.0.0",
4710 "expand-brackets": "^2.1.4",
4711 "extend-shallow": "^2.0.1",
4712 "fragment-cache": "^0.2.1",
4713 "regex-not": "^1.0.0",
4714 "snapdragon": "^0.8.1",
4715 "to-regex": "^3.0.1"
4716 },
4717 "dependencies": {
4718 "define-property": {
4719 "version": "1.0.0",
4720 "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
4721 "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
4722 "requires": {
4723 "is-descriptor": "^1.0.0"
4724 }
4725 },
4726 "extend-shallow": {
4727 "version": "2.0.1",
4728 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
4729 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
4730 "requires": {
4731 "is-extendable": "^0.1.0"
4732 }
4733 },
4734 "is-accessor-descriptor": {
4735 "version": "1.0.0",
4736 "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
4737 "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
4738 "requires": {
4739 "kind-of": "^6.0.0"
4740 }
4741 },
4742 "is-data-descriptor": {
4743 "version": "1.0.0",
4744 "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
4745 "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
4746 "requires": {
4747 "kind-of": "^6.0.0"
4748 }
4749 },
4750 "is-descriptor": {
4751 "version": "1.0.2",
4752 "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
4753 "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
4754 "requires": {
4755 "is-accessor-descriptor": "^1.0.0",
4756 "is-data-descriptor": "^1.0.0",
4757 "kind-of": "^6.0.2"
4758 }
4759 }
4760 }
4761 },
4762 "extract-zip": {
4763 "version": "1.6.7",
4764 "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
4765 "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
4766 "dev": true,
4767 "requires": {
4768 "concat-stream": "1.6.2",
4769 "debug": "2.6.9",
4770 "mkdirp": "0.5.1",
4771 "yauzl": "2.4.1"
4772 }
4773 },
4774 "extsprintf": {
4775 "version": "1.3.0",
4776 "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
4777 "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
4778 "dev": true
4779 },
4780 "fancy-log": {
4781 "version": "1.3.2",
4782 "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz",
4783 "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=",
4784 "requires": {
4785 "ansi-gray": "^0.1.1",
4786 "color-support": "^1.1.3",
4787 "time-stamp": "^1.0.0"
4788 }
4789 },
4790 "fast-deep-equal": {
4791 "version": "1.1.0",
4792 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
4793 "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
4794 "dev": true
4795 },
4796 "fast-json-stable-stringify": {
4797 "version": "2.0.0",
4798 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
4799 "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
4800 "dev": true
4801 },
4802 "fast-levenshtein": {
4803 "version": "2.0.6",
4804 "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
4805 "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
4806 "dev": true
4807 },
4808 "fbjs": {
4809 "version": "0.8.17",
4810 "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz",
4811 "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=",
4812 "requires": {
4813 "core-js": "^1.0.0",
4814 "isomorphic-fetch": "^2.1.1",
4815 "loose-envify": "^1.0.0",
4816 "object-assign": "^4.1.0",
4817 "promise": "^7.1.1",
4818 "setimmediate": "^1.0.5",
4819 "ua-parser-js": "^0.7.18"
4820 },
4821 "dependencies": {
4822 "core-js": {
4823 "version": "1.2.7",
4824 "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
4825 "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
4826 }
4827 }
4828 },
4829 "fd-slicer": {
4830 "version": "1.0.1",
4831 "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
4832 "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
4833 "dev": true,
4834 "requires": {
4835 "pend": "~1.2.0"
4836 }
4837 },
4838 "figures": {
4839 "version": "2.0.0",
4840 "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
4841 "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
4842 "dev": true,
4843 "requires": {
4844 "escape-string-regexp": "^1.0.5"
4845 }
4846 },
4847 "file-entry-cache": {
4848 "version": "2.0.0",
4849 "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
4850 "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
4851 "dev": true,
4852 "requires": {
4853 "flat-cache": "^1.2.1",
4854 "object-assign": "^4.0.1"
4855 }
4856 },
4857 "filename-regex": {
4858 "version": "2.0.1",
4859 "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
4860 "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY="
4861 },
4862 "fill-range": {
4863 "version": "4.0.0",
4864 "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
4865 "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
4866 "requires": {
4867 "extend-shallow": "^2.0.1",
4868 "is-number": "^3.0.0",
4869 "repeat-string": "^1.6.1",
4870 "to-regex-range": "^2.1.0"
4871 },
4872 "dependencies": {
4873 "extend-shallow": {
4874 "version": "2.0.1",
4875 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
4876 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
4877 "requires": {
4878 "is-extendable": "^0.1.0"
4879 }
4880 }
4881 }
4882 },
4883 "finalhandler": {
4884 "version": "0.1.0",
4885 "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-0.1.0.tgz",
4886 "integrity": "sha1-2gW7xPX0owyEzh2R88FUAHxOnao=",
4887 "dev": true,
4888 "requires": {
4889 "debug": "1.0.4",
4890 "escape-html": "1.0.1"
4891 },
4892 "dependencies": {
4893 "debug": {
4894 "version": "1.0.4",
4895 "resolved": "http://registry.npmjs.org/debug/-/debug-1.0.4.tgz",
4896 "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=",
4897 "dev": true,
4898 "requires": {
4899 "ms": "0.6.2"
4900 }
4901 },
4902 "ms": {
4903 "version": "0.6.2",
4904 "resolved": "http://registry.npmjs.org/ms/-/ms-0.6.2.tgz",
4905 "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=",
4906 "dev": true
4907 }
4908 }
4909 },
4910 "find-cache-dir": {
4911 "version": "0.1.1",
4912 "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz",
4913 "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=",
4914 "dev": true,
4915 "requires": {
4916 "commondir": "^1.0.1",
4917 "mkdirp": "^0.5.1",
4918 "pkg-dir": "^1.0.0"
4919 }
4920 },
4921 "find-index": {
4922 "version": "0.1.1",
4923 "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz",
4924 "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=",
4925 "dev": true
4926 },
4927 "find-up": {
4928 "version": "1.1.2",
4929 "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
4930 "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
4931 "dev": true,
4932 "requires": {
4933 "path-exists": "^2.0.0",
4934 "pinkie-promise": "^2.0.0"
4935 }
4936 },
4937 "findup-sync": {
4938 "version": "2.0.0",
4939 "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
4940 "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
4941 "requires": {
4942 "detect-file": "^1.0.0",
4943 "is-glob": "^3.1.0",
4944 "micromatch": "^3.0.4",
4945 "resolve-dir": "^1.0.1"
4946 },
4947 "dependencies": {
4948 "is-glob": {
4949 "version": "3.1.0",
4950 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
4951 "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
4952 "requires": {
4953 "is-extglob": "^2.1.0"
4954 }
4955 }
4956 }
4957 },
4958 "fined": {
4959 "version": "1.1.0",
4960 "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz",
4961 "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=",
4962 "requires": {
4963 "expand-tilde": "^2.0.2",
4964 "is-plain-object": "^2.0.3",
4965 "object.defaults": "^1.1.0",
4966 "object.pick": "^1.2.0",
4967 "parse-filepath": "^1.0.1"
4968 }
4969 },
4970 "first-chunk-stream": {
4971 "version": "1.0.0",
4972 "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
4973 "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=",
4974 "dev": true
4975 },
4976 "flagged-respawn": {
4977 "version": "1.0.0",
4978 "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz",
4979 "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c="
4980 },
4981 "flat-cache": {
4982 "version": "1.3.0",
4983 "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz",
4984 "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
4985 "dev": true,
4986 "requires": {
4987 "circular-json": "^0.3.1",
4988 "del": "^2.0.2",
4989 "graceful-fs": "^4.1.2",
4990 "write": "^0.2.1"
4991 }
4992 },
4993 "flush-write-stream": {
4994 "version": "1.0.3",
4995 "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz",
4996 "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==",
4997 "dev": true,
4998 "requires": {
4999 "inherits": "^2.0.1",
5000 "readable-stream": "^2.0.4"
5001 }
5002 },
5003 "for-in": {
5004 "version": "1.0.2",
5005 "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
5006 "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
5007 },
5008 "for-own": {
5009 "version": "1.0.0",
5010 "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
5011 "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
5012 "requires": {
5013 "for-in": "^1.0.1"
5014 }
5015 },
5016 "forever-agent": {
5017 "version": "0.6.1",
5018 "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
5019 "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
5020 "dev": true
5021 },
5022 "form-data": {
5023 "version": "2.3.3",
5024 "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
5025 "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
5026 "dev": true,
5027 "requires": {
5028 "asynckit": "^0.4.0",
5029 "combined-stream": "^1.0.6",
5030 "mime-types": "^2.1.12"
5031 }
5032 },
5033 "fragment-cache": {
5034 "version": "0.2.1",
5035 "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
5036 "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
5037 "requires": {
5038 "map-cache": "^0.2.2"
5039 }
5040 },
5041 "fresh": {
5042 "version": "0.2.2",
5043 "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.2.tgz",
5044 "integrity": "sha1-lzHc9WeMf660T7kDxPct9VGH+nc=",
5045 "dev": true
5046 },
5047 "fs-extra": {
5048 "version": "7.0.1",
5049 "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
5050 "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
5051 "requires": {
5052 "graceful-fs": "^4.1.2",
5053 "jsonfile": "^4.0.0",
5054 "universalify": "^0.1.0"
5055 }
5056 },
5057 "fs-extra-p": {
5058 "version": "7.0.0",
5059 "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-7.0.0.tgz",
5060 "integrity": "sha512-5tg5jBOd0xIXjwj4PDnafOXL5TyPVzjxLby4DPKev53wurEXp7IsojBaD4Lj5M5w7jxw0pbkEU0fFEPmcKoMnA==",
5061 "requires": {
5062 "bluebird-lst": "^1.0.6",
5063 "fs-extra": "^7.0.0"
5064 },
5065 "dependencies": {
5066 "fs-extra": {
5067 "version": "7.0.1",
5068 "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
5069 "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
5070 "requires": {
5071 "graceful-fs": "^4.1.2",
5072 "jsonfile": "^4.0.0",
5073 "universalify": "^0.1.0"
5074 }
5075 }
5076 }
5077 },
5078 "fs-minipass": {
5079 "version": "1.2.5",
5080 "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz",
5081 "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
5082 "requires": {
5083 "minipass": "^2.2.1"
5084 }
5085 },
5086 "fs-mkdirp-stream": {
5087 "version": "1.0.0",
5088 "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz",
5089 "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=",
5090 "dev": true,
5091 "requires": {
5092 "graceful-fs": "^4.1.11",
5093 "through2": "^2.0.3"
5094 }
5095 },
5096 "fs.realpath": {
5097 "version": "1.0.0",
5098 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
5099 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
5100 },
5101 "fsevents": {
5102 "version": "1.2.4",
5103 "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz",
5104 "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==",
5105 "dev": true,
5106 "optional": true,
5107 "requires": {
5108 "nan": "^2.9.2",
5109 "node-pre-gyp": "^0.10.0"
5110 },
5111 "dependencies": {
5112 "abbrev": {
5113 "version": "1.1.1",
5114 "resolved": false,
5115 "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
5116 "dev": true,
5117 "optional": true
5118 },
5119 "ansi-regex": {
5120 "version": "2.1.1",
5121 "resolved": false,
5122 "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
5123 "dev": true
5124 },
5125 "aproba": {
5126 "version": "1.2.0",
5127 "resolved": false,
5128 "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
5129 "dev": true,
5130 "optional": true
5131 },
5132 "are-we-there-yet": {
5133 "version": "1.1.4",
5134 "resolved": false,
5135 "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=",
5136 "dev": true,
5137 "optional": true,
5138 "requires": {
5139 "delegates": "^1.0.0",
5140 "readable-stream": "^2.0.6"
5141 }
5142 },
5143 "balanced-match": {
5144 "version": "1.0.0",
5145 "resolved": false,
5146 "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
5147 "dev": true
5148 },
5149 "brace-expansion": {
5150 "version": "1.1.11",
5151 "resolved": false,
5152 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
5153 "dev": true,
5154 "requires": {
5155 "balanced-match": "^1.0.0",
5156 "concat-map": "0.0.1"
5157 }
5158 },
5159 "chownr": {
5160 "version": "1.0.1",
5161 "resolved": false,
5162 "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=",
5163 "dev": true,
5164 "optional": true
5165 },
5166 "code-point-at": {
5167 "version": "1.1.0",
5168 "resolved": false,
5169 "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
5170 "dev": true
5171 },
5172 "concat-map": {
5173 "version": "0.0.1",
5174 "resolved": false,
5175 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
5176 "dev": true
5177 },
5178 "console-control-strings": {
5179 "version": "1.1.0",
5180 "resolved": false,
5181 "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
5182 "dev": true
5183 },
5184 "core-util-is": {
5185 "version": "1.0.2",
5186 "resolved": false,
5187 "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
5188 "dev": true,
5189 "optional": true
5190 },
5191 "debug": {
5192 "version": "2.6.9",
5193 "resolved": false,
5194 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
5195 "dev": true,
5196 "optional": true,
5197 "requires": {
5198 "ms": "2.0.0"
5199 }
5200 },
5201 "deep-extend": {
5202 "version": "0.5.1",
5203 "resolved": false,
5204 "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==",
5205 "dev": true,
5206 "optional": true
5207 },
5208 "delegates": {
5209 "version": "1.0.0",
5210 "resolved": false,
5211 "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
5212 "dev": true,
5213 "optional": true
5214 },
5215 "detect-libc": {
5216 "version": "1.0.3",
5217 "resolved": false,
5218 "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
5219 "dev": true,
5220 "optional": true
5221 },
5222 "fs-minipass": {
5223 "version": "1.2.5",
5224 "resolved": false,
5225 "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
5226 "dev": true,
5227 "optional": true,
5228 "requires": {
5229 "minipass": "^2.2.1"
5230 }
5231 },
5232 "fs.realpath": {
5233 "version": "1.0.0",
5234 "resolved": false,
5235 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
5236 "dev": true,
5237 "optional": true
5238 },
5239 "gauge": {
5240 "version": "2.7.4",
5241 "resolved": false,
5242 "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
5243 "dev": true,
5244 "optional": true,
5245 "requires": {
5246 "aproba": "^1.0.3",
5247 "console-control-strings": "^1.0.0",
5248 "has-unicode": "^2.0.0",
5249 "object-assign": "^4.1.0",
5250 "signal-exit": "^3.0.0",
5251 "string-width": "^1.0.1",
5252 "strip-ansi": "^3.0.1",
5253 "wide-align": "^1.1.0"
5254 }
5255 },
5256 "glob": {
5257 "version": "7.1.2",
5258 "resolved": false,
5259 "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
5260 "dev": true,
5261 "optional": true,
5262 "requires": {
5263 "fs.realpath": "^1.0.0",
5264 "inflight": "^1.0.4",
5265 "inherits": "2",
5266 "minimatch": "^3.0.4",
5267 "once": "^1.3.0",
5268 "path-is-absolute": "^1.0.0"
5269 }
5270 },
5271 "has-unicode": {
5272 "version": "2.0.1",
5273 "resolved": false,
5274 "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
5275 "dev": true,
5276 "optional": true
5277 },
5278 "iconv-lite": {
5279 "version": "0.4.21",
5280 "resolved": false,
5281 "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==",
5282 "dev": true,
5283 "optional": true,
5284 "requires": {
5285 "safer-buffer": "^2.1.0"
5286 }
5287 },
5288 "ignore-walk": {
5289 "version": "3.0.1",
5290 "resolved": false,
5291 "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
5292 "dev": true,
5293 "optional": true,
5294 "requires": {
5295 "minimatch": "^3.0.4"
5296 }
5297 },
5298 "inflight": {
5299 "version": "1.0.6",
5300 "resolved": false,
5301 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
5302 "dev": true,
5303 "optional": true,
5304 "requires": {
5305 "once": "^1.3.0",
5306 "wrappy": "1"
5307 }
5308 },
5309 "inherits": {
5310 "version": "2.0.3",
5311 "resolved": false,
5312 "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
5313 "dev": true
5314 },
5315 "ini": {
5316 "version": "1.3.5",
5317 "resolved": false,
5318 "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
5319 "dev": true,
5320 "optional": true
5321 },
5322 "is-fullwidth-code-point": {
5323 "version": "1.0.0",
5324 "resolved": false,
5325 "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
5326 "dev": true,
5327 "requires": {
5328 "number-is-nan": "^1.0.0"
5329 }
5330 },
5331 "isarray": {
5332 "version": "1.0.0",
5333 "resolved": false,
5334 "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
5335 "dev": true,
5336 "optional": true
5337 },
5338 "minimatch": {
5339 "version": "3.0.4",
5340 "resolved": false,
5341 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
5342 "dev": true,
5343 "requires": {
5344 "brace-expansion": "^1.1.7"
5345 }
5346 },
5347 "minimist": {
5348 "version": "0.0.8",
5349 "resolved": false,
5350 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
5351 "dev": true
5352 },
5353 "minipass": {
5354 "version": "2.2.4",
5355 "resolved": false,
5356 "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==",
5357 "dev": true,
5358 "requires": {
5359 "safe-buffer": "^5.1.1",
5360 "yallist": "^3.0.0"
5361 }
5362 },
5363 "minizlib": {
5364 "version": "1.1.0",
5365 "resolved": false,
5366 "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==",
5367 "dev": true,
5368 "optional": true,
5369 "requires": {
5370 "minipass": "^2.2.1"
5371 }
5372 },
5373 "mkdirp": {
5374 "version": "0.5.1",
5375 "resolved": false,
5376 "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
5377 "dev": true,
5378 "requires": {
5379 "minimist": "0.0.8"
5380 }
5381 },
5382 "ms": {
5383 "version": "2.0.0",
5384 "resolved": false,
5385 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
5386 "dev": true,
5387 "optional": true
5388 },
5389 "needle": {
5390 "version": "2.2.0",
5391 "resolved": false,
5392 "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==",
5393 "dev": true,
5394 "optional": true,
5395 "requires": {
5396 "debug": "^2.1.2",
5397 "iconv-lite": "^0.4.4",
5398 "sax": "^1.2.4"
5399 }
5400 },
5401 "node-pre-gyp": {
5402 "version": "0.10.0",
5403 "resolved": false,
5404 "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==",
5405 "dev": true,
5406 "optional": true,
5407 "requires": {
5408 "detect-libc": "^1.0.2",
5409 "mkdirp": "^0.5.1",
5410 "needle": "^2.2.0",
5411 "nopt": "^4.0.1",
5412 "npm-packlist": "^1.1.6",
5413 "npmlog": "^4.0.2",
5414 "rc": "^1.1.7",
5415 "rimraf": "^2.6.1",
5416 "semver": "^5.3.0",
5417 "tar": "^4"
5418 }
5419 },
5420 "nopt": {
5421 "version": "4.0.1",
5422 "resolved": false,
5423 "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
5424 "dev": true,
5425 "optional": true,
5426 "requires": {
5427 "abbrev": "1",
5428 "osenv": "^0.1.4"
5429 }
5430 },
5431 "npm-bundled": {
5432 "version": "1.0.3",
5433 "resolved": false,
5434 "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==",
5435 "dev": true,
5436 "optional": true
5437 },
5438 "npm-packlist": {
5439 "version": "1.1.10",
5440 "resolved": false,
5441 "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==",
5442 "dev": true,
5443 "optional": true,
5444 "requires": {
5445 "ignore-walk": "^3.0.1",
5446 "npm-bundled": "^1.0.1"
5447 }
5448 },
5449 "npmlog": {
5450 "version": "4.1.2",
5451 "resolved": false,
5452 "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
5453 "dev": true,
5454 "optional": true,
5455 "requires": {
5456 "are-we-there-yet": "~1.1.2",
5457 "console-control-strings": "~1.1.0",
5458 "gauge": "~2.7.3",
5459 "set-blocking": "~2.0.0"
5460 }
5461 },
5462 "number-is-nan": {
5463 "version": "1.0.1",
5464 "resolved": false,
5465 "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
5466 "dev": true
5467 },
5468 "object-assign": {
5469 "version": "4.1.1",
5470 "resolved": false,
5471 "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
5472 "dev": true,
5473 "optional": true
5474 },
5475 "once": {
5476 "version": "1.4.0",
5477 "resolved": false,
5478 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
5479 "dev": true,
5480 "requires": {
5481 "wrappy": "1"
5482 }
5483 },
5484 "os-homedir": {
5485 "version": "1.0.2",
5486 "resolved": false,
5487 "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
5488 "dev": true,
5489 "optional": true
5490 },
5491 "os-tmpdir": {
5492 "version": "1.0.2",
5493 "resolved": false,
5494 "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
5495 "dev": true,
5496 "optional": true
5497 },
5498 "osenv": {
5499 "version": "0.1.5",
5500 "resolved": false,
5501 "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
5502 "dev": true,
5503 "optional": true,
5504 "requires": {
5505 "os-homedir": "^1.0.0",
5506 "os-tmpdir": "^1.0.0"
5507 }
5508 },
5509 "path-is-absolute": {
5510 "version": "1.0.1",
5511 "resolved": false,
5512 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
5513 "dev": true,
5514 "optional": true
5515 },
5516 "process-nextick-args": {
5517 "version": "2.0.0",
5518 "resolved": false,
5519 "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
5520 "dev": true,
5521 "optional": true
5522 },
5523 "rc": {
5524 "version": "1.2.7",
5525 "resolved": false,
5526 "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==",
5527 "dev": true,
5528 "optional": true,
5529 "requires": {
5530 "deep-extend": "^0.5.1",
5531 "ini": "~1.3.0",
5532 "minimist": "^1.2.0",
5533 "strip-json-comments": "~2.0.1"
5534 },
5535 "dependencies": {
5536 "minimist": {
5537 "version": "1.2.0",
5538 "resolved": false,
5539 "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
5540 "dev": true,
5541 "optional": true
5542 }
5543 }
5544 },
5545 "readable-stream": {
5546 "version": "2.3.6",
5547 "resolved": false,
5548 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
5549 "dev": true,
5550 "optional": true,
5551 "requires": {
5552 "core-util-is": "~1.0.0",
5553 "inherits": "~2.0.3",
5554 "isarray": "~1.0.0",
5555 "process-nextick-args": "~2.0.0",
5556 "safe-buffer": "~5.1.1",
5557 "string_decoder": "~1.1.1",
5558 "util-deprecate": "~1.0.1"
5559 }
5560 },
5561 "rimraf": {
5562 "version": "2.6.2",
5563 "resolved": false,
5564 "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
5565 "dev": true,
5566 "optional": true,
5567 "requires": {
5568 "glob": "^7.0.5"
5569 }
5570 },
5571 "safe-buffer": {
5572 "version": "5.1.1",
5573 "resolved": false,
5574 "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
5575 "dev": true
5576 },
5577 "safer-buffer": {
5578 "version": "2.1.2",
5579 "resolved": false,
5580 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
5581 "dev": true,
5582 "optional": true
5583 },
5584 "sax": {
5585 "version": "1.2.4",
5586 "resolved": false,
5587 "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
5588 "dev": true,
5589 "optional": true
5590 },
5591 "semver": {
5592 "version": "5.5.0",
5593 "resolved": false,
5594 "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
5595 "dev": true,
5596 "optional": true
5597 },
5598 "set-blocking": {
5599 "version": "2.0.0",
5600 "resolved": false,
5601 "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
5602 "dev": true,
5603 "optional": true
5604 },
5605 "signal-exit": {
5606 "version": "3.0.2",
5607 "resolved": false,
5608 "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
5609 "dev": true,
5610 "optional": true
5611 },
5612 "string-width": {
5613 "version": "1.0.2",
5614 "resolved": false,
5615 "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
5616 "dev": true,
5617 "requires": {
5618 "code-point-at": "^1.0.0",
5619 "is-fullwidth-code-point": "^1.0.0",
5620 "strip-ansi": "^3.0.0"
5621 }
5622 },
5623 "string_decoder": {
5624 "version": "1.1.1",
5625 "resolved": false,
5626 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
5627 "dev": true,
5628 "optional": true,
5629 "requires": {
5630 "safe-buffer": "~5.1.0"
5631 }
5632 },
5633 "strip-ansi": {
5634 "version": "3.0.1",
5635 "resolved": false,
5636 "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
5637 "dev": true,
5638 "requires": {
5639 "ansi-regex": "^2.0.0"
5640 }
5641 },
5642 "strip-json-comments": {
5643 "version": "2.0.1",
5644 "resolved": false,
5645 "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
5646 "dev": true,
5647 "optional": true
5648 },
5649 "tar": {
5650 "version": "4.4.1",
5651 "resolved": false,
5652 "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==",
5653 "dev": true,
5654 "optional": true,
5655 "requires": {
5656 "chownr": "^1.0.1",
5657 "fs-minipass": "^1.2.5",
5658 "minipass": "^2.2.4",
5659 "minizlib": "^1.1.0",
5660 "mkdirp": "^0.5.0",
5661 "safe-buffer": "^5.1.1",
5662 "yallist": "^3.0.2"
5663 }
5664 },
5665 "util-deprecate": {
5666 "version": "1.0.2",
5667 "resolved": false,
5668 "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
5669 "dev": true,
5670 "optional": true
5671 },
5672 "wide-align": {
5673 "version": "1.1.2",
5674 "resolved": false,
5675 "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==",
5676 "dev": true,
5677 "optional": true,
5678 "requires": {
5679 "string-width": "^1.0.2"
5680 }
5681 },
5682 "wrappy": {
5683 "version": "1.0.2",
5684 "resolved": false,
5685 "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
5686 "dev": true
5687 },
5688 "yallist": {
5689 "version": "3.0.2",
5690 "resolved": false,
5691 "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=",
5692 "dev": true
5693 }
5694 }
5695 },
5696 "fstream": {
5697 "version": "1.0.11",
5698 "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
5699 "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
5700 "dev": true,
5701 "requires": {
5702 "graceful-fs": "^4.1.2",
5703 "inherits": "~2.0.0",
5704 "mkdirp": ">=0.5 0",
5705 "rimraf": "2"
5706 }
5707 },
5708 "function-bind": {
5709 "version": "1.1.1",
5710 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
5711 "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
5712 "dev": true
5713 },
5714 "functional-red-black-tree": {
5715 "version": "1.0.1",
5716 "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
5717 "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
5718 "dev": true
5719 },
5720 "gauge": {
5721 "version": "2.7.4",
5722 "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
5723 "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
5724 "dev": true,
5725 "requires": {
5726 "aproba": "^1.0.3",
5727 "console-control-strings": "^1.0.0",
5728 "has-unicode": "^2.0.0",
5729 "object-assign": "^4.1.0",
5730 "signal-exit": "^3.0.0",
5731 "string-width": "^1.0.1",
5732 "strip-ansi": "^3.0.1",
5733 "wide-align": "^1.1.0"
5734 }
5735 },
5736 "gaze": {
5737 "version": "1.1.3",
5738 "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
5739 "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
5740 "dev": true,
5741 "requires": {
5742 "globule": "^1.0.0"
5743 }
5744 },
5745 "get-caller-file": {
5746 "version": "1.0.3",
5747 "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
5748 "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
5749 "dev": true
5750 },
5751 "get-stdin": {
5752 "version": "4.0.1",
5753 "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
5754 "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
5755 "dev": true
5756 },
5757 "get-stream": {
5758 "version": "3.0.0",
5759 "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
5760 "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
5761 "dev": true
5762 },
5763 "get-value": {
5764 "version": "2.0.6",
5765 "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
5766 "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
5767 },
5768 "getpass": {
5769 "version": "0.1.7",
5770 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
5771 "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
5772 "dev": true,
5773 "requires": {
5774 "assert-plus": "^1.0.0"
5775 }
5776 },
5777 "glob": {
5778 "version": "7.1.3",
5779 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
5780 "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
5781 "requires": {
5782 "fs.realpath": "^1.0.0",
5783 "inflight": "^1.0.4",
5784 "inherits": "2",
5785 "minimatch": "^3.0.4",
5786 "once": "^1.3.0",
5787 "path-is-absolute": "^1.0.0"
5788 }
5789 },
5790 "glob-base": {
5791 "version": "0.3.0",
5792 "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
5793 "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
5794 "requires": {
5795 "glob-parent": "^2.0.0",
5796 "is-glob": "^2.0.0"
5797 },
5798 "dependencies": {
5799 "glob-parent": {
5800 "version": "2.0.0",
5801 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
5802 "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
5803 "requires": {
5804 "is-glob": "^2.0.0"
5805 }
5806 },
5807 "is-extglob": {
5808 "version": "1.0.0",
5809 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
5810 "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
5811 },
5812 "is-glob": {
5813 "version": "2.0.1",
5814 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
5815 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
5816 "requires": {
5817 "is-extglob": "^1.0.0"
5818 }
5819 }
5820 }
5821 },
5822 "glob-parent": {
5823 "version": "3.1.0",
5824 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
5825 "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
5826 "dev": true,
5827 "requires": {
5828 "is-glob": "^3.1.0",
5829 "path-dirname": "^1.0.0"
5830 },
5831 "dependencies": {
5832 "is-glob": {
5833 "version": "3.1.0",
5834 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
5835 "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
5836 "dev": true,
5837 "requires": {
5838 "is-extglob": "^2.1.0"
5839 }
5840 }
5841 }
5842 },
5843 "glob-stream": {
5844 "version": "6.1.0",
5845 "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz",
5846 "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=",
5847 "dev": true,
5848 "requires": {
5849 "extend": "^3.0.0",
5850 "glob": "^7.1.1",
5851 "glob-parent": "^3.1.0",
5852 "is-negated-glob": "^1.0.0",
5853 "ordered-read-streams": "^1.0.0",
5854 "pumpify": "^1.3.5",
5855 "readable-stream": "^2.1.5",
5856 "remove-trailing-separator": "^1.0.1",
5857 "to-absolute-glob": "^2.0.0",
5858 "unique-stream": "^2.0.2"
5859 }
5860 },
5861 "glob-watcher": {
5862 "version": "5.0.1",
5863 "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.1.tgz",
5864 "integrity": "sha512-fK92r2COMC199WCyGUblrZKhjra3cyVMDiypDdqg1vsSDmexnbYivK1kNR4QItiNXLKmGlqan469ks67RtNa2g==",
5865 "dev": true,
5866 "requires": {
5867 "async-done": "^1.2.0",
5868 "chokidar": "^2.0.0",
5869 "just-debounce": "^1.0.0",
5870 "object.defaults": "^1.1.0"
5871 }
5872 },
5873 "glob2base": {
5874 "version": "0.0.12",
5875 "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz",
5876 "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=",
5877 "dev": true,
5878 "requires": {
5879 "find-index": "^0.1.1"
5880 }
5881 },
5882 "global-dirs": {
5883 "version": "0.1.1",
5884 "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
5885 "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
5886 "dev": true,
5887 "requires": {
5888 "ini": "^1.3.4"
5889 }
5890 },
5891 "global-modules": {
5892 "version": "1.0.0",
5893 "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
5894 "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
5895 "requires": {
5896 "global-prefix": "^1.0.1",
5897 "is-windows": "^1.0.1",
5898 "resolve-dir": "^1.0.0"
5899 }
5900 },
5901 "global-prefix": {
5902 "version": "1.0.2",
5903 "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
5904 "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
5905 "requires": {
5906 "expand-tilde": "^2.0.2",
5907 "homedir-polyfill": "^1.0.1",
5908 "ini": "^1.3.4",
5909 "is-windows": "^1.0.1",
5910 "which": "^1.2.14"
5911 },
5912 "dependencies": {
5913 "ini": {
5914 "version": "1.3.5",
5915 "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
5916 "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
5917 }
5918 }
5919 },
5920 "globby": {
5921 "version": "5.0.0",
5922 "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
5923 "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
5924 "dev": true,
5925 "requires": {
5926 "array-union": "^1.0.1",
5927 "arrify": "^1.0.0",
5928 "glob": "^7.0.3",
5929 "object-assign": "^4.0.1",
5930 "pify": "^2.0.0",
5931 "pinkie-promise": "^2.0.0"
5932 }
5933 },
5934 "globule": {
5935 "version": "1.2.1",
5936 "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
5937 "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
5938 "dev": true,
5939 "requires": {
5940 "glob": "~7.1.1",
5941 "lodash": "~4.17.10",
5942 "minimatch": "~3.0.2"
5943 }
5944 },
5945 "glogg": {
5946 "version": "1.0.1",
5947 "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz",
5948 "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==",
5949 "requires": {
5950 "sparkles": "^1.0.0"
5951 }
5952 },
5953 "got": {
5954 "version": "6.7.1",
5955 "resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz",
5956 "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
5957 "dev": true,
5958 "requires": {
5959 "create-error-class": "^3.0.0",
5960 "duplexer3": "^0.1.4",
5961 "get-stream": "^3.0.0",
5962 "is-redirect": "^1.0.0",
5963 "is-retry-allowed": "^1.0.0",
5964 "is-stream": "^1.0.0",
5965 "lowercase-keys": "^1.0.0",
5966 "safe-buffer": "^5.0.1",
5967 "timed-out": "^4.0.0",
5968 "unzip-response": "^2.0.1",
5969 "url-parse-lax": "^1.0.0"
5970 }
5971 },
5972 "graceful-fs": {
5973 "version": "4.1.11",
5974 "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
5975 "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
5976 },
5977 "gulp": {
5978 "version": "4.0.0",
5979 "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.0.tgz",
5980 "integrity": "sha1-lXZsYB2t5Kd+0+eyttwDiBtZY2Y=",
5981 "dev": true,
5982 "requires": {
5983 "glob-watcher": "^5.0.0",
5984 "gulp-cli": "^2.0.0",
5985 "undertaker": "^1.0.0",
5986 "vinyl-fs": "^3.0.0"
5987 },
5988 "dependencies": {
5989 "gulp-cli": {
5990 "version": "2.0.1",
5991 "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.0.1.tgz",
5992 "integrity": "sha512-RxujJJdN8/O6IW2nPugl7YazhmrIEjmiVfPKrWt68r71UCaLKS71Hp0gpKT+F6qOUFtr7KqtifDKaAJPRVvMYQ==",
5993 "dev": true,
5994 "requires": {
5995 "ansi-colors": "^1.0.1",
5996 "archy": "^1.0.0",
5997 "array-sort": "^1.0.0",
5998 "color-support": "^1.1.3",
5999 "concat-stream": "^1.6.0",
6000 "copy-props": "^2.0.1",
6001 "fancy-log": "^1.3.2",
6002 "gulplog": "^1.0.0",
6003 "interpret": "^1.1.0",
6004 "isobject": "^3.0.1",
6005 "liftoff": "^2.5.0",
6006 "matchdep": "^2.0.0",
6007 "mute-stdout": "^1.0.0",
6008 "pretty-hrtime": "^1.0.0",
6009 "replace-homedir": "^1.0.0",
6010 "semver-greatest-satisfied-range": "^1.1.0",
6011 "v8flags": "^3.0.1",
6012 "yargs": "^7.1.0"
6013 }
6014 }
6015 }
6016 },
6017 "gulp-babel": {
6018 "version": "8.0.0",
6019 "resolved": "https://registry.npmjs.org/gulp-babel/-/gulp-babel-8.0.0.tgz",
6020 "integrity": "sha512-oomaIqDXxFkg7lbpBou/gnUkX51/Y/M2ZfSjL2hdqXTAlSWZcgZtd2o0cOH0r/eE8LWD0+Q/PsLsr2DKOoqToQ==",
6021 "dev": true,
6022 "requires": {
6023 "plugin-error": "^1.0.1",
6024 "replace-ext": "^1.0.0",
6025 "through2": "^2.0.0",
6026 "vinyl-sourcemaps-apply": "^0.2.0"
6027 }
6028 },
6029 "gulp-cli": {
6030 "version": "1.2.2",
6031 "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-1.2.2.tgz",
6032 "integrity": "sha1-c5Le9jFsbnk5pPKW8/VAFRrjonU=",
6033 "requires": {
6034 "archy": "^1.0.0",
6035 "chalk": "^1.1.0",
6036 "fancy-log": "^1.1.0",
6037 "gulplog": "^1.0.0",
6038 "interpret": "^1.0.0",
6039 "liftoff": "^2.1.0",
6040 "lodash.isfunction": "^3.0.8",
6041 "lodash.isplainobject": "^4.0.4",
6042 "lodash.isstring": "^4.0.1",
6043 "lodash.sortby": "^4.5.0",
6044 "matchdep": "^1.0.0",
6045 "mute-stdout": "^1.0.0",
6046 "pretty-hrtime": "^1.0.0",
6047 "semver-greatest-satisfied-range": "^1.0.0",
6048 "tildify": "^1.0.0",
6049 "v8flags": "^2.0.9",
6050 "wreck": "^6.3.0",
6051 "yargs": "^3.28.0"
6052 },
6053 "dependencies": {
6054 "arr-diff": {
6055 "version": "2.0.0",
6056 "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
6057 "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
6058 "requires": {
6059 "arr-flatten": "^1.0.1"
6060 }
6061 },
6062 "array-unique": {
6063 "version": "0.2.1",
6064 "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
6065 "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
6066 },
6067 "braces": {
6068 "version": "1.8.5",
6069 "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
6070 "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
6071 "requires": {
6072 "expand-range": "^1.8.1",
6073 "preserve": "^0.2.0",
6074 "repeat-element": "^1.1.2"
6075 }
6076 },
6077 "camelcase": {
6078 "version": "2.1.1",
6079 "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
6080 "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
6081 },
6082 "expand-brackets": {
6083 "version": "0.1.5",
6084 "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
6085 "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
6086 "requires": {
6087 "is-posix-bracket": "^0.1.0"
6088 }
6089 },
6090 "extglob": {
6091 "version": "0.3.2",
6092 "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
6093 "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
6094 "requires": {
6095 "is-extglob": "^1.0.0"
6096 }
6097 },
6098 "findup-sync": {
6099 "version": "0.3.0",
6100 "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz",
6101 "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=",
6102 "requires": {
6103 "glob": "~5.0.0"
6104 }
6105 },
6106 "glob": {
6107 "version": "5.0.15",
6108 "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
6109 "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
6110 "requires": {
6111 "inflight": "^1.0.4",
6112 "inherits": "2",
6113 "minimatch": "2 || 3",
6114 "once": "^1.3.0",
6115 "path-is-absolute": "^1.0.0"
6116 }
6117 },
6118 "is-extglob": {
6119 "version": "1.0.0",
6120 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
6121 "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
6122 },
6123 "is-glob": {
6124 "version": "2.0.1",
6125 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
6126 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
6127 "requires": {
6128 "is-extglob": "^1.0.0"
6129 }
6130 },
6131 "kind-of": {
6132 "version": "3.2.2",
6133 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
6134 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
6135 "requires": {
6136 "is-buffer": "^1.1.5"
6137 }
6138 },
6139 "matchdep": {
6140 "version": "1.0.1",
6141 "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-1.0.1.tgz",
6142 "integrity": "sha1-pXozgESR+64girqPaDgEN6vC3KU=",
6143 "requires": {
6144 "findup-sync": "~0.3.0",
6145 "micromatch": "^2.3.7",
6146 "resolve": "~1.1.6",
6147 "stack-trace": "0.0.9"
6148 }
6149 },
6150 "micromatch": {
6151 "version": "2.3.11",
6152 "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
6153 "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
6154 "requires": {
6155 "arr-diff": "^2.0.0",
6156 "array-unique": "^0.2.1",
6157 "braces": "^1.8.2",
6158 "expand-brackets": "^0.1.4",
6159 "extglob": "^0.3.1",
6160 "filename-regex": "^2.0.0",
6161 "is-extglob": "^1.0.0",
6162 "is-glob": "^2.0.1",
6163 "kind-of": "^3.0.2",
6164 "normalize-path": "^2.0.1",
6165 "object.omit": "^2.0.0",
6166 "parse-glob": "^3.0.4",
6167 "regex-cache": "^0.4.2"
6168 }
6169 },
6170 "resolve": {
6171 "version": "1.1.7",
6172 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
6173 "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs="
6174 },
6175 "stack-trace": {
6176 "version": "0.0.9",
6177 "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz",
6178 "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU="
6179 },
6180 "v8flags": {
6181 "version": "2.1.1",
6182 "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
6183 "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=",
6184 "requires": {
6185 "user-home": "^1.1.1"
6186 }
6187 },
6188 "yargs": {
6189 "version": "3.32.0",
6190 "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
6191 "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=",
6192 "requires": {
6193 "camelcase": "^2.0.1",
6194 "cliui": "^3.0.3",
6195 "decamelize": "^1.1.1",
6196 "os-locale": "^1.4.0",
6197 "string-width": "^1.0.1",
6198 "window-size": "^0.1.4",
6199 "y18n": "^3.2.0"
6200 }
6201 }
6202 }
6203 },
6204 "gulp-sass": {
6205 "version": "4.0.2",
6206 "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-4.0.2.tgz",
6207 "integrity": "sha512-q8psj4+aDrblJMMtRxihNBdovfzGrXJp1l4JU0Sz4b/Mhsi2DPrKFYCGDwjIWRENs04ELVHxdOJQ7Vs98OFohg==",
6208 "dev": true,
6209 "requires": {
6210 "chalk": "^2.3.0",
6211 "lodash.clonedeep": "^4.3.2",
6212 "node-sass": "^4.8.3",
6213 "plugin-error": "^1.0.1",
6214 "replace-ext": "^1.0.0",
6215 "strip-ansi": "^4.0.0",
6216 "through2": "^2.0.0",
6217 "vinyl-sourcemaps-apply": "^0.2.0"
6218 },
6219 "dependencies": {
6220 "ansi-regex": {
6221 "version": "3.0.0",
6222 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
6223 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
6224 "dev": true
6225 },
6226 "ansi-styles": {
6227 "version": "3.2.1",
6228 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
6229 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
6230 "dev": true,
6231 "requires": {
6232 "color-convert": "^1.9.0"
6233 }
6234 },
6235 "chalk": {
6236 "version": "2.4.1",
6237 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
6238 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
6239 "dev": true,
6240 "requires": {
6241 "ansi-styles": "^3.2.1",
6242 "escape-string-regexp": "^1.0.5",
6243 "supports-color": "^5.3.0"
6244 }
6245 },
6246 "strip-ansi": {
6247 "version": "4.0.0",
6248 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
6249 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
6250 "dev": true,
6251 "requires": {
6252 "ansi-regex": "^3.0.0"
6253 }
6254 },
6255 "supports-color": {
6256 "version": "5.5.0",
6257 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
6258 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
6259 "dev": true,
6260 "requires": {
6261 "has-flag": "^3.0.0"
6262 }
6263 }
6264 }
6265 },
6266 "gulp-sass-variables": {
6267 "version": "1.2.0",
6268 "resolved": "https://registry.npmjs.org/gulp-sass-variables/-/gulp-sass-variables-1.2.0.tgz",
6269 "integrity": "sha512-xdRyM/OXlRLcK2rN4K7cucc/5eHoqS1MLgAI79tW5gRYAdxF8pYX7Zuj89zu4RchX9nr2Yu/jIC146V/6w7TnA==",
6270 "dev": true,
6271 "requires": {
6272 "plugin-error": "^1.0.1",
6273 "through2": "^2.0.1"
6274 }
6275 },
6276 "gulp-server-livereload": {
6277 "version": "1.9.2",
6278 "resolved": "https://registry.npmjs.org/gulp-server-livereload/-/gulp-server-livereload-1.9.2.tgz",
6279 "integrity": "sha1-PbIn80Y8/k8pv2WgE7qhYuKnQMY=",
6280 "dev": true,
6281 "requires": {
6282 "commander": "^2.8.1",
6283 "connect": "~3.1.1",
6284 "connect-inject": "~0.3.2",
6285 "glogg": "^1.0.0",
6286 "gulp-util": "^3.0.7",
6287 "gulplog": "^1.0.0",
6288 "lodash": "^4.0.0",
6289 "node-watch": "^0.3.4",
6290 "node.extend": "~1.0.10",
6291 "open": "~0.0.5",
6292 "proxy-middleware": "~0.15.0",
6293 "serve-index": "~1.1.4",
6294 "serve-static": "~1.5.2",
6295 "socket.io": "^1.4.4",
6296 "through2": "~0.5.1",
6297 "vinyl-fs": "^1.0.0"
6298 },
6299 "dependencies": {
6300 "clone": {
6301 "version": "0.2.0",
6302 "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
6303 "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
6304 "dev": true
6305 },
6306 "clone-stats": {
6307 "version": "0.0.1",
6308 "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
6309 "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
6310 "dev": true
6311 },
6312 "gaze": {
6313 "version": "0.5.2",
6314 "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz",
6315 "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=",
6316 "dev": true,
6317 "requires": {
6318 "globule": "~0.1.0"
6319 }
6320 },
6321 "glob": {
6322 "version": "4.5.3",
6323 "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
6324 "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=",
6325 "dev": true,
6326 "requires": {
6327 "inflight": "^1.0.4",
6328 "inherits": "2",
6329 "minimatch": "^2.0.1",
6330 "once": "^1.3.0"
6331 }
6332 },
6333 "glob-stream": {
6334 "version": "4.1.1",
6335 "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-4.1.1.tgz",
6336 "integrity": "sha1-uELfENaIx+trz869hG84UilrMgA=",
6337 "dev": true,
6338 "requires": {
6339 "glob": "^4.3.1",
6340 "glob2base": "^0.0.12",
6341 "minimatch": "^2.0.1",
6342 "ordered-read-streams": "^0.1.0",
6343 "through2": "^0.6.1",
6344 "unique-stream": "^2.0.2"
6345 },
6346 "dependencies": {
6347 "through2": {
6348 "version": "0.6.5",
6349 "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
6350 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
6351 "dev": true,
6352 "requires": {
6353 "readable-stream": ">=1.0.33-1 <1.1.0-0",
6354 "xtend": ">=4.0.0 <4.1.0-0"
6355 }
6356 },
6357 "xtend": {
6358 "version": "4.0.1",
6359 "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
6360 "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
6361 "dev": true
6362 }
6363 }
6364 },
6365 "glob-watcher": {
6366 "version": "0.0.8",
6367 "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.8.tgz",
6368 "integrity": "sha1-aK62Yefizo02NDgbLsQV8AxrwqQ=",
6369 "dev": true,
6370 "requires": {
6371 "gaze": "^0.5.1"
6372 }
6373 },
6374 "globule": {
6375 "version": "0.1.0",
6376 "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz",
6377 "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=",
6378 "dev": true,
6379 "requires": {
6380 "glob": "~3.1.21",
6381 "lodash": "~1.0.1",
6382 "minimatch": "~0.2.11"
6383 },
6384 "dependencies": {
6385 "glob": {
6386 "version": "3.1.21",
6387 "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
6388 "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
6389 "dev": true,
6390 "requires": {
6391 "graceful-fs": "~1.2.0",
6392 "inherits": "1",
6393 "minimatch": "~0.2.11"
6394 }
6395 },
6396 "graceful-fs": {
6397 "version": "1.2.3",
6398 "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
6399 "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
6400 "dev": true
6401 },
6402 "inherits": {
6403 "version": "1.0.2",
6404 "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
6405 "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
6406 "dev": true
6407 },
6408 "lodash": {
6409 "version": "1.0.2",
6410 "resolved": "http://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz",
6411 "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=",
6412 "dev": true
6413 },
6414 "minimatch": {
6415 "version": "0.2.14",
6416 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
6417 "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
6418 "dev": true,
6419 "requires": {
6420 "lru-cache": "2",
6421 "sigmund": "~1.0.0"
6422 }
6423 }
6424 }
6425 },
6426 "graceful-fs": {
6427 "version": "3.0.11",
6428 "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
6429 "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
6430 "dev": true,
6431 "requires": {
6432 "natives": "^1.1.0"
6433 }
6434 },
6435 "isarray": {
6436 "version": "0.0.1",
6437 "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
6438 "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
6439 "dev": true
6440 },
6441 "lru-cache": {
6442 "version": "2.7.3",
6443 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
6444 "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
6445 "dev": true
6446 },
6447 "minimatch": {
6448 "version": "2.0.10",
6449 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
6450 "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
6451 "dev": true,
6452 "requires": {
6453 "brace-expansion": "^1.0.0"
6454 }
6455 },
6456 "object-assign": {
6457 "version": "2.1.1",
6458 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
6459 "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=",
6460 "dev": true
6461 },
6462 "ordered-read-streams": {
6463 "version": "0.1.0",
6464 "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz",
6465 "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=",
6466 "dev": true
6467 },
6468 "readable-stream": {
6469 "version": "1.0.34",
6470 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
6471 "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
6472 "dev": true,
6473 "requires": {
6474 "core-util-is": "~1.0.0",
6475 "inherits": "~2.0.1",
6476 "isarray": "0.0.1",
6477 "string_decoder": "~0.10.x"
6478 }
6479 },
6480 "string_decoder": {
6481 "version": "0.10.31",
6482 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
6483 "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
6484 "dev": true
6485 },
6486 "strip-bom": {
6487 "version": "1.0.0",
6488 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz",
6489 "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=",
6490 "dev": true,
6491 "requires": {
6492 "first-chunk-stream": "^1.0.0",
6493 "is-utf8": "^0.2.0"
6494 }
6495 },
6496 "through2": {
6497 "version": "0.5.1",
6498 "resolved": "https://registry.npmjs.org/through2/-/through2-0.5.1.tgz",
6499 "integrity": "sha1-390BLrnHAOIyP9M084rGIqs3Lac=",
6500 "dev": true,
6501 "requires": {
6502 "readable-stream": "~1.0.17",
6503 "xtend": "~3.0.0"
6504 }
6505 },
6506 "vinyl": {
6507 "version": "0.4.6",
6508 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
6509 "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
6510 "dev": true,
6511 "requires": {
6512 "clone": "^0.2.0",
6513 "clone-stats": "^0.0.1"
6514 }
6515 },
6516 "vinyl-fs": {
6517 "version": "1.0.0",
6518 "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-1.0.0.tgz",
6519 "integrity": "sha1-0VdS5owtrXQ2Tn6FNHNzU1RpLt8=",
6520 "dev": true,
6521 "requires": {
6522 "duplexify": "^3.2.0",
6523 "glob-stream": "^4.0.1",
6524 "glob-watcher": "^0.0.8",
6525 "graceful-fs": "^3.0.0",
6526 "merge-stream": "^0.1.7",
6527 "mkdirp": "^0.5.0",
6528 "object-assign": "^2.0.0",
6529 "strip-bom": "^1.0.0",
6530 "through2": "^0.6.1",
6531 "vinyl": "^0.4.0"
6532 },
6533 "dependencies": {
6534 "through2": {
6535 "version": "0.6.5",
6536 "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
6537 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
6538 "dev": true,
6539 "requires": {
6540 "readable-stream": ">=1.0.33-1 <1.1.0-0",
6541 "xtend": ">=4.0.0 <4.1.0-0"
6542 }
6543 },
6544 "xtend": {
6545 "version": "4.0.1",
6546 "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
6547 "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
6548 "dev": true
6549 }
6550 }
6551 },
6552 "xtend": {
6553 "version": "3.0.0",
6554 "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz",
6555 "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=",
6556 "dev": true
6557 }
6558 }
6559 },
6560 "gulp-util": {
6561 "version": "3.0.8",
6562 "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz",
6563 "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=",
6564 "dev": true,
6565 "requires": {
6566 "array-differ": "^1.0.0",
6567 "array-uniq": "^1.0.2",
6568 "beeper": "^1.0.0",
6569 "chalk": "^1.0.0",
6570 "dateformat": "^2.0.0",
6571 "fancy-log": "^1.1.0",
6572 "gulplog": "^1.0.0",
6573 "has-gulplog": "^0.1.0",
6574 "lodash._reescape": "^3.0.0",
6575 "lodash._reevaluate": "^3.0.0",
6576 "lodash._reinterpolate": "^3.0.0",
6577 "lodash.template": "^3.0.0",
6578 "minimist": "^1.1.0",
6579 "multipipe": "^0.1.2",
6580 "object-assign": "^3.0.0",
6581 "replace-ext": "0.0.1",
6582 "through2": "^2.0.0",
6583 "vinyl": "^0.5.0"
6584 },
6585 "dependencies": {
6586 "clone": {
6587 "version": "1.0.4",
6588 "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
6589 "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
6590 "dev": true
6591 },
6592 "clone-stats": {
6593 "version": "0.0.1",
6594 "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
6595 "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
6596 "dev": true
6597 },
6598 "object-assign": {
6599 "version": "3.0.0",
6600 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
6601 "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
6602 "dev": true
6603 },
6604 "replace-ext": {
6605 "version": "0.0.1",
6606 "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
6607 "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
6608 "dev": true
6609 },
6610 "vinyl": {
6611 "version": "0.5.3",
6612 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
6613 "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
6614 "dev": true,
6615 "requires": {
6616 "clone": "^1.0.0",
6617 "clone-stats": "^0.0.1",
6618 "replace-ext": "0.0.1"
6619 }
6620 }
6621 }
6622 },
6623 "gulplog": {
6624 "version": "1.0.0",
6625 "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
6626 "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
6627 "requires": {
6628 "glogg": "^1.0.0"
6629 }
6630 },
6631 "har-schema": {
6632 "version": "2.0.0",
6633 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
6634 "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
6635 "dev": true
6636 },
6637 "har-validator": {
6638 "version": "5.1.0",
6639 "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz",
6640 "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==",
6641 "dev": true,
6642 "requires": {
6643 "ajv": "^5.3.0",
6644 "har-schema": "^2.0.0"
6645 }
6646 },
6647 "has": {
6648 "version": "1.0.3",
6649 "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
6650 "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
6651 "dev": true,
6652 "requires": {
6653 "function-bind": "^1.1.1"
6654 }
6655 },
6656 "has-ansi": {
6657 "version": "2.0.0",
6658 "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
6659 "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
6660 "requires": {
6661 "ansi-regex": "^2.0.0"
6662 }
6663 },
6664 "has-binary": {
6665 "version": "0.1.7",
6666 "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz",
6667 "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=",
6668 "dev": true,
6669 "requires": {
6670 "isarray": "0.0.1"
6671 },
6672 "dependencies": {
6673 "isarray": {
6674 "version": "0.0.1",
6675 "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
6676 "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
6677 "dev": true
6678 }
6679 }
6680 },
6681 "has-cors": {
6682 "version": "1.1.0",
6683 "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
6684 "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=",
6685 "dev": true
6686 },
6687 "has-flag": {
6688 "version": "3.0.0",
6689 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
6690 "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
6691 "dev": true
6692 },
6693 "has-gulplog": {
6694 "version": "0.1.0",
6695 "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
6696 "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
6697 "dev": true,
6698 "requires": {
6699 "sparkles": "^1.0.0"
6700 }
6701 },
6702 "has-symbols": {
6703 "version": "1.0.0",
6704 "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
6705 "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
6706 "dev": true
6707 },
6708 "has-unicode": {
6709 "version": "2.0.1",
6710 "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
6711 "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
6712 "dev": true
6713 },
6714 "has-value": {
6715 "version": "1.0.0",
6716 "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
6717 "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
6718 "requires": {
6719 "get-value": "^2.0.6",
6720 "has-values": "^1.0.0",
6721 "isobject": "^3.0.0"
6722 }
6723 },
6724 "has-values": {
6725 "version": "1.0.0",
6726 "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
6727 "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
6728 "requires": {
6729 "is-number": "^3.0.0",
6730 "kind-of": "^4.0.0"
6731 },
6732 "dependencies": {
6733 "kind-of": {
6734 "version": "4.0.0",
6735 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
6736 "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
6737 "requires": {
6738 "is-buffer": "^1.1.5"
6739 }
6740 }
6741 }
6742 },
6743 "hashids": {
6744 "version": "1.2.2",
6745 "resolved": "https://registry.npmjs.org/hashids/-/hashids-1.2.2.tgz",
6746 "integrity": "sha512-dEHCG2LraR6PNvSGxosZHIRgxF5sNLOIBFEHbj8lfP9WWmu/PWPMzsip1drdVSOFi51N2pU7gZavrgn7sbGFuw=="
6747 },
6748 "history": {
6749 "version": "3.3.0",
6750 "resolved": "https://registry.npmjs.org/history/-/history-3.3.0.tgz",
6751 "integrity": "sha1-/O3M6PEpdTcVRdc1RhAzV5ptrpw=",
6752 "requires": {
6753 "invariant": "^2.2.1",
6754 "loose-envify": "^1.2.0",
6755 "query-string": "^4.2.2",
6756 "warning": "^3.0.0"
6757 }
6758 },
6759 "hoek": {
6760 "version": "2.16.3",
6761 "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
6762 "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
6763 },
6764 "hoist-non-react-statics": {
6765 "version": "2.5.5",
6766 "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz",
6767 "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw=="
6768 },
6769 "home-path": {
6770 "version": "1.0.6",
6771 "resolved": "https://registry.npmjs.org/home-path/-/home-path-1.0.6.tgz",
6772 "integrity": "sha512-wo+yjrdAtoXt43Vy92a+0IPCYViiyLAHyp0QVS4xL/tfvVz5sXIW1ubLZk3nhVkD92fQpUMKX+fzMjr5F489vw==",
6773 "dev": true
6774 },
6775 "homedir-polyfill": {
6776 "version": "1.0.1",
6777 "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz",
6778 "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=",
6779 "requires": {
6780 "parse-passwd": "^1.0.0"
6781 }
6782 },
6783 "hosted-git-info": {
6784 "version": "2.7.1",
6785 "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
6786 "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==",
6787 "dev": true
6788 },
6789 "htmlparser2": {
6790 "version": "3.10.0",
6791 "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.0.tgz",
6792 "integrity": "sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ==",
6793 "requires": {
6794 "domelementtype": "^1.3.0",
6795 "domhandler": "^2.3.0",
6796 "domutils": "^1.5.1",
6797 "entities": "^1.1.1",
6798 "inherits": "^2.0.1",
6799 "readable-stream": "^3.0.6"
6800 },
6801 "dependencies": {
6802 "readable-stream": {
6803 "version": "3.0.6",
6804 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.6.tgz",
6805 "integrity": "sha512-9E1oLoOWfhSXHGv6QlwXJim7uNzd9EVlWK+21tCU9Ju/kR0/p2AZYPz4qSchgO8PlLIH4FpZYfzwS+rEksZjIg==",
6806 "requires": {
6807 "inherits": "^2.0.3",
6808 "string_decoder": "^1.1.1",
6809 "util-deprecate": "^1.0.1"
6810 }
6811 }
6812 }
6813 },
6814 "http-signature": {
6815 "version": "1.2.0",
6816 "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
6817 "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
6818 "dev": true,
6819 "requires": {
6820 "assert-plus": "^1.0.0",
6821 "jsprim": "^1.2.2",
6822 "sshpk": "^1.7.0"
6823 }
6824 },
6825 "husky": {
6826 "version": "1.1.4",
6827 "resolved": "https://registry.npmjs.org/husky/-/husky-1.1.4.tgz",
6828 "integrity": "sha512-cZjGpS7qsaBSo3fOMUuR7erQloX3l5XzL1v/RkIqU6zrQImDdU70z5Re9fGDp7+kbYlM2EtS4aYMlahBeiCUGw==",
6829 "dev": true,
6830 "requires": {
6831 "cosmiconfig": "^5.0.6",
6832 "execa": "^1.0.0",
6833 "find-up": "^3.0.0",
6834 "get-stdin": "^6.0.0",
6835 "is-ci": "^1.2.1",
6836 "pkg-dir": "^3.0.0",
6837 "please-upgrade-node": "^3.1.1",
6838 "read-pkg": "^4.0.1",
6839 "run-node": "^1.0.0",
6840 "slash": "^2.0.0"
6841 },
6842 "dependencies": {
6843 "execa": {
6844 "version": "1.0.0",
6845 "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
6846 "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
6847 "dev": true,
6848 "requires": {
6849 "cross-spawn": "^6.0.0",
6850 "get-stream": "^4.0.0",
6851 "is-stream": "^1.1.0",
6852 "npm-run-path": "^2.0.0",
6853 "p-finally": "^1.0.0",
6854 "signal-exit": "^3.0.0",
6855 "strip-eof": "^1.0.0"
6856 }
6857 },
6858 "find-up": {
6859 "version": "3.0.0",
6860 "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
6861 "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
6862 "dev": true,
6863 "requires": {
6864 "locate-path": "^3.0.0"
6865 }
6866 },
6867 "get-stdin": {
6868 "version": "6.0.0",
6869 "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz",
6870 "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==",
6871 "dev": true
6872 },
6873 "get-stream": {
6874 "version": "4.1.0",
6875 "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
6876 "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
6877 "dev": true,
6878 "requires": {
6879 "pump": "^3.0.0"
6880 }
6881 },
6882 "locate-path": {
6883 "version": "3.0.0",
6884 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
6885 "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
6886 "dev": true,
6887 "requires": {
6888 "p-locate": "^3.0.0",
6889 "path-exists": "^3.0.0"
6890 }
6891 },
6892 "p-limit": {
6893 "version": "2.0.0",
6894 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
6895 "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
6896 "dev": true,
6897 "requires": {
6898 "p-try": "^2.0.0"
6899 }
6900 },
6901 "p-locate": {
6902 "version": "3.0.0",
6903 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
6904 "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
6905 "dev": true,
6906 "requires": {
6907 "p-limit": "^2.0.0"
6908 }
6909 },
6910 "p-try": {
6911 "version": "2.0.0",
6912 "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
6913 "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
6914 "dev": true
6915 },
6916 "parse-json": {
6917 "version": "4.0.0",
6918 "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
6919 "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
6920 "dev": true,
6921 "requires": {
6922 "error-ex": "^1.3.1",
6923 "json-parse-better-errors": "^1.0.1"
6924 }
6925 },
6926 "path-exists": {
6927 "version": "3.0.0",
6928 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
6929 "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
6930 "dev": true
6931 },
6932 "pify": {
6933 "version": "3.0.0",
6934 "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
6935 "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
6936 "dev": true
6937 },
6938 "pkg-dir": {
6939 "version": "3.0.0",
6940 "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
6941 "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
6942 "dev": true,
6943 "requires": {
6944 "find-up": "^3.0.0"
6945 }
6946 },
6947 "pump": {
6948 "version": "3.0.0",
6949 "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
6950 "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
6951 "dev": true,
6952 "requires": {
6953 "end-of-stream": "^1.1.0",
6954 "once": "^1.3.1"
6955 }
6956 },
6957 "read-pkg": {
6958 "version": "4.0.1",
6959 "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz",
6960 "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=",
6961 "dev": true,
6962 "requires": {
6963 "normalize-package-data": "^2.3.2",
6964 "parse-json": "^4.0.0",
6965 "pify": "^3.0.0"
6966 }
6967 }
6968 }
6969 },
6970 "iconv-lite": {
6971 "version": "0.4.24",
6972 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
6973 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
6974 "requires": {
6975 "safer-buffer": ">= 2.1.2 < 3"
6976 }
6977 },
6978 "ignore": {
6979 "version": "3.3.10",
6980 "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
6981 "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
6982 "dev": true
6983 },
6984 "import-fresh": {
6985 "version": "2.0.0",
6986 "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
6987 "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
6988 "dev": true,
6989 "requires": {
6990 "caller-path": "^2.0.0",
6991 "resolve-from": "^3.0.0"
6992 },
6993 "dependencies": {
6994 "caller-path": {
6995 "version": "2.0.0",
6996 "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
6997 "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
6998 "dev": true,
6999 "requires": {
7000 "caller-callsite": "^2.0.0"
7001 }
7002 },
7003 "resolve-from": {
7004 "version": "3.0.0",
7005 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
7006 "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
7007 "dev": true
7008 }
7009 }
7010 },
7011 "import-lazy": {
7012 "version": "2.1.0",
7013 "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
7014 "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
7015 "dev": true
7016 },
7017 "imurmurhash": {
7018 "version": "0.1.4",
7019 "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
7020 "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
7021 "dev": true
7022 },
7023 "in-publish": {
7024 "version": "2.0.0",
7025 "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
7026 "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
7027 "dev": true
7028 },
7029 "indent-string": {
7030 "version": "2.1.0",
7031 "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
7032 "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
7033 "dev": true,
7034 "requires": {
7035 "repeating": "^2.0.0"
7036 }
7037 },
7038 "indexof": {
7039 "version": "0.0.1",
7040 "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
7041 "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
7042 "dev": true
7043 },
7044 "inflight": {
7045 "version": "1.0.6",
7046 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
7047 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
7048 "requires": {
7049 "once": "^1.3.0",
7050 "wrappy": "1"
7051 }
7052 },
7053 "inherits": {
7054 "version": "2.0.3",
7055 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
7056 "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
7057 },
7058 "ini": {
7059 "version": "1.3.5",
7060 "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
7061 "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
7062 },
7063 "inquirer": {
7064 "version": "3.3.0",
7065 "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
7066 "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
7067 "dev": true,
7068 "requires": {
7069 "ansi-escapes": "^3.0.0",
7070 "chalk": "^2.0.0",
7071 "cli-cursor": "^2.1.0",
7072 "cli-width": "^2.0.0",
7073 "external-editor": "^2.0.4",
7074 "figures": "^2.0.0",
7075 "lodash": "^4.3.0",
7076 "mute-stream": "0.0.7",
7077 "run-async": "^2.2.0",
7078 "rx-lite": "^4.0.8",
7079 "rx-lite-aggregates": "^4.0.8",
7080 "string-width": "^2.1.0",
7081 "strip-ansi": "^4.0.0",
7082 "through": "^2.3.6"
7083 },
7084 "dependencies": {
7085 "ansi-regex": {
7086 "version": "3.0.0",
7087 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
7088 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
7089 "dev": true
7090 },
7091 "ansi-styles": {
7092 "version": "3.2.1",
7093 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
7094 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
7095 "dev": true,
7096 "requires": {
7097 "color-convert": "^1.9.0"
7098 }
7099 },
7100 "chalk": {
7101 "version": "2.4.1",
7102 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
7103 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
7104 "dev": true,
7105 "requires": {
7106 "ansi-styles": "^3.2.1",
7107 "escape-string-regexp": "^1.0.5",
7108 "supports-color": "^5.3.0"
7109 }
7110 },
7111 "is-fullwidth-code-point": {
7112 "version": "2.0.0",
7113 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
7114 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
7115 "dev": true
7116 },
7117 "string-width": {
7118 "version": "2.1.1",
7119 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
7120 "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
7121 "dev": true,
7122 "requires": {
7123 "is-fullwidth-code-point": "^2.0.0",
7124 "strip-ansi": "^4.0.0"
7125 }
7126 },
7127 "strip-ansi": {
7128 "version": "4.0.0",
7129 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
7130 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
7131 "dev": true,
7132 "requires": {
7133 "ansi-regex": "^3.0.0"
7134 }
7135 },
7136 "supports-color": {
7137 "version": "5.5.0",
7138 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
7139 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
7140 "dev": true,
7141 "requires": {
7142 "has-flag": "^3.0.0"
7143 }
7144 }
7145 }
7146 },
7147 "interpret": {
7148 "version": "1.1.0",
7149 "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
7150 "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ="
7151 },
7152 "intl-format-cache": {
7153 "version": "2.1.0",
7154 "resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.1.0.tgz",
7155 "integrity": "sha1-BKNp/sv61tpgBbrh8UMzMy3PkxY="
7156 },
7157 "intl-messageformat": {
7158 "version": "2.2.0",
7159 "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz",
7160 "integrity": "sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=",
7161 "requires": {
7162 "intl-messageformat-parser": "1.4.0"
7163 }
7164 },
7165 "intl-messageformat-parser": {
7166 "version": "1.4.0",
7167 "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz",
7168 "integrity": "sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU="
7169 },
7170 "intl-relativeformat": {
7171 "version": "2.1.0",
7172 "resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.1.0.tgz",
7173 "integrity": "sha1-AQ8RBYAiUfQKxH0OPhogE0iiVd8=",
7174 "requires": {
7175 "intl-messageformat": "^2.0.0"
7176 }
7177 },
7178 "invariant": {
7179 "version": "2.2.4",
7180 "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
7181 "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
7182 "requires": {
7183 "loose-envify": "^1.0.0"
7184 }
7185 },
7186 "invert-kv": {
7187 "version": "1.0.0",
7188 "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
7189 "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
7190 },
7191 "is": {
7192 "version": "0.3.0",
7193 "resolved": "http://registry.npmjs.org/is/-/is-0.3.0.tgz",
7194 "integrity": "sha1-qPcd/IpuKDcWJ/JskpCYxvTV1dc=",
7195 "dev": true
7196 },
7197 "is-absolute": {
7198 "version": "1.0.0",
7199 "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
7200 "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
7201 "requires": {
7202 "is-relative": "^1.0.0",
7203 "is-windows": "^1.0.1"
7204 }
7205 },
7206 "is-accessor-descriptor": {
7207 "version": "0.1.6",
7208 "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
7209 "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
7210 "requires": {
7211 "kind-of": "^3.0.2"
7212 },
7213 "dependencies": {
7214 "kind-of": {
7215 "version": "3.2.2",
7216 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
7217 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
7218 "requires": {
7219 "is-buffer": "^1.1.5"
7220 }
7221 }
7222 }
7223 },
7224 "is-arrayish": {
7225 "version": "0.2.1",
7226 "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
7227 "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
7228 "dev": true
7229 },
7230 "is-binary-path": {
7231 "version": "1.0.1",
7232 "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
7233 "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
7234 "dev": true,
7235 "requires": {
7236 "binary-extensions": "^1.0.0"
7237 }
7238 },
7239 "is-buffer": {
7240 "version": "1.1.6",
7241 "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
7242 "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
7243 },
7244 "is-builtin-module": {
7245 "version": "1.0.0",
7246 "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
7247 "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
7248 "dev": true,
7249 "requires": {
7250 "builtin-modules": "^1.0.0"
7251 }
7252 },
7253 "is-callable": {
7254 "version": "1.1.4",
7255 "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
7256 "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
7257 "dev": true
7258 },
7259 "is-ci": {
7260 "version": "1.2.1",
7261 "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz",
7262 "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
7263 "dev": true,
7264 "requires": {
7265 "ci-info": "^1.5.0"
7266 }
7267 },
7268 "is-data-descriptor": {
7269 "version": "0.1.4",
7270 "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
7271 "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
7272 "requires": {
7273 "kind-of": "^3.0.2"
7274 },
7275 "dependencies": {
7276 "kind-of": {
7277 "version": "3.2.2",
7278 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
7279 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
7280 "requires": {
7281 "is-buffer": "^1.1.5"
7282 }
7283 }
7284 }
7285 },
7286 "is-date-object": {
7287 "version": "1.0.1",
7288 "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
7289 "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
7290 "dev": true
7291 },
7292 "is-descriptor": {
7293 "version": "0.1.6",
7294 "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
7295 "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
7296 "requires": {
7297 "is-accessor-descriptor": "^0.1.6",
7298 "is-data-descriptor": "^0.1.4",
7299 "kind-of": "^5.0.0"
7300 },
7301 "dependencies": {
7302 "kind-of": {
7303 "version": "5.1.0",
7304 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
7305 "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
7306 }
7307 }
7308 },
7309 "is-directory": {
7310 "version": "0.3.1",
7311 "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
7312 "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
7313 "dev": true
7314 },
7315 "is-dotfile": {
7316 "version": "1.0.3",
7317 "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
7318 "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE="
7319 },
7320 "is-equal-shallow": {
7321 "version": "0.1.3",
7322 "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
7323 "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
7324 "requires": {
7325 "is-primitive": "^2.0.0"
7326 }
7327 },
7328 "is-extendable": {
7329 "version": "0.1.1",
7330 "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
7331 "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
7332 },
7333 "is-extglob": {
7334 "version": "2.1.1",
7335 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
7336 "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
7337 },
7338 "is-finite": {
7339 "version": "1.0.2",
7340 "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
7341 "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
7342 "dev": true,
7343 "requires": {
7344 "number-is-nan": "^1.0.0"
7345 }
7346 },
7347 "is-fullwidth-code-point": {
7348 "version": "1.0.0",
7349 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
7350 "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
7351 "requires": {
7352 "number-is-nan": "^1.0.0"
7353 }
7354 },
7355 "is-glob": {
7356 "version": "4.0.0",
7357 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
7358 "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
7359 "dev": true,
7360 "requires": {
7361 "is-extglob": "^2.1.1"
7362 }
7363 },
7364 "is-installed-globally": {
7365 "version": "0.1.0",
7366 "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
7367 "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
7368 "dev": true,
7369 "requires": {
7370 "global-dirs": "^0.1.0",
7371 "is-path-inside": "^1.0.0"
7372 }
7373 },
7374 "is-negated-glob": {
7375 "version": "1.0.0",
7376 "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz",
7377 "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=",
7378 "dev": true
7379 },
7380 "is-npm": {
7381 "version": "1.0.0",
7382 "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
7383 "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=",
7384 "dev": true
7385 },
7386 "is-number": {
7387 "version": "3.0.0",
7388 "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
7389 "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
7390 "requires": {
7391 "kind-of": "^3.0.2"
7392 },
7393 "dependencies": {
7394 "kind-of": {
7395 "version": "3.2.2",
7396 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
7397 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
7398 "requires": {
7399 "is-buffer": "^1.1.5"
7400 }
7401 }
7402 }
7403 },
7404 "is-obj": {
7405 "version": "1.0.1",
7406 "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
7407 "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
7408 "dev": true
7409 },
7410 "is-path-cwd": {
7411 "version": "1.0.0",
7412 "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
7413 "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
7414 "dev": true
7415 },
7416 "is-path-in-cwd": {
7417 "version": "1.0.1",
7418 "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
7419 "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
7420 "dev": true,
7421 "requires": {
7422 "is-path-inside": "^1.0.0"
7423 }
7424 },
7425 "is-path-inside": {
7426 "version": "1.0.1",
7427 "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
7428 "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
7429 "dev": true,
7430 "requires": {
7431 "path-is-inside": "^1.0.1"
7432 }
7433 },
7434 "is-plain-obj": {
7435 "version": "1.1.0",
7436 "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
7437 "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
7438 },
7439 "is-plain-object": {
7440 "version": "2.0.4",
7441 "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
7442 "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
7443 "requires": {
7444 "isobject": "^3.0.1"
7445 }
7446 },
7447 "is-posix-bracket": {
7448 "version": "0.1.1",
7449 "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
7450 "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q="
7451 },
7452 "is-primitive": {
7453 "version": "2.0.0",
7454 "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
7455 "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
7456 },
7457 "is-promise": {
7458 "version": "2.1.0",
7459 "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
7460 "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
7461 "dev": true
7462 },
7463 "is-redirect": {
7464 "version": "1.0.0",
7465 "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
7466 "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
7467 "dev": true
7468 },
7469 "is-regex": {
7470 "version": "1.0.4",
7471 "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
7472 "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
7473 "dev": true,
7474 "requires": {
7475 "has": "^1.0.1"
7476 }
7477 },
7478 "is-relative": {
7479 "version": "1.0.0",
7480 "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
7481 "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
7482 "requires": {
7483 "is-unc-path": "^1.0.0"
7484 }
7485 },
7486 "is-resolvable": {
7487 "version": "1.1.0",
7488 "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
7489 "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
7490 "dev": true
7491 },
7492 "is-retry-allowed": {
7493 "version": "1.1.0",
7494 "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
7495 "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=",
7496 "dev": true
7497 },
7498 "is-stream": {
7499 "version": "1.1.0",
7500 "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
7501 "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
7502 },
7503 "is-symbol": {
7504 "version": "1.0.2",
7505 "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
7506 "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
7507 "dev": true,
7508 "requires": {
7509 "has-symbols": "^1.0.0"
7510 }
7511 },
7512 "is-typedarray": {
7513 "version": "1.0.0",
7514 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
7515 "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
7516 "dev": true
7517 },
7518 "is-unc-path": {
7519 "version": "1.0.0",
7520 "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
7521 "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
7522 "requires": {
7523 "unc-path-regex": "^0.1.2"
7524 }
7525 },
7526 "is-utf8": {
7527 "version": "0.2.1",
7528 "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
7529 "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
7530 "dev": true
7531 },
7532 "is-valid-glob": {
7533 "version": "1.0.0",
7534 "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz",
7535 "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=",
7536 "dev": true
7537 },
7538 "is-windows": {
7539 "version": "1.0.2",
7540 "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
7541 "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
7542 },
7543 "isarray": {
7544 "version": "1.0.0",
7545 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
7546 "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
7547 },
7548 "isbinaryfile": {
7549 "version": "3.0.3",
7550 "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz",
7551 "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==",
7552 "dev": true,
7553 "requires": {
7554 "buffer-alloc": "^1.2.0"
7555 }
7556 },
7557 "isemail": {
7558 "version": "1.2.0",
7559 "resolved": "http://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz",
7560 "integrity": "sha1-vgPfjMPineTSxd9lASY/H6RZXpo="
7561 },
7562 "isexe": {
7563 "version": "2.0.0",
7564 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
7565 "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
7566 },
7567 "isobject": {
7568 "version": "3.0.1",
7569 "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
7570 "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
7571 },
7572 "isomorphic-fetch": {
7573 "version": "2.2.1",
7574 "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
7575 "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
7576 "requires": {
7577 "node-fetch": "^1.0.1",
7578 "whatwg-fetch": ">=0.10.0"
7579 }
7580 },
7581 "isstream": {
7582 "version": "0.1.2",
7583 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
7584 "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
7585 "dev": true
7586 },
7587 "joi": {
7588 "version": "6.10.1",
7589 "resolved": "http://registry.npmjs.org/joi/-/joi-6.10.1.tgz",
7590 "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=",
7591 "requires": {
7592 "hoek": "2.x.x",
7593 "isemail": "1.x.x",
7594 "moment": "2.x.x",
7595 "topo": "1.x.x"
7596 }
7597 },
7598 "js-base64": {
7599 "version": "2.4.9",
7600 "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz",
7601 "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==",
7602 "dev": true
7603 },
7604 "js-levenshtein": {
7605 "version": "1.1.4",
7606 "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.4.tgz",
7607 "integrity": "sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow==",
7608 "dev": true
7609 },
7610 "js-tokens": {
7611 "version": "4.0.0",
7612 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
7613 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
7614 },
7615 "js-yaml": {
7616 "version": "3.12.0",
7617 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
7618 "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
7619 "requires": {
7620 "argparse": "^1.0.7",
7621 "esprima": "^4.0.0"
7622 }
7623 },
7624 "jsbn": {
7625 "version": "0.1.1",
7626 "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
7627 "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
7628 "dev": true
7629 },
7630 "jsesc": {
7631 "version": "2.5.1",
7632 "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz",
7633 "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=",
7634 "dev": true
7635 },
7636 "jshashes": {
7637 "version": "1.0.7",
7638 "resolved": "https://registry.npmjs.org/jshashes/-/jshashes-1.0.7.tgz",
7639 "integrity": "sha1-vtjJeg6WMv0FE5FvVfdt1Uhr5Z8="
7640 },
7641 "json-parse-better-errors": {
7642 "version": "1.0.2",
7643 "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
7644 "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
7645 "dev": true
7646 },
7647 "json-schema": {
7648 "version": "0.2.3",
7649 "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
7650 "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
7651 "dev": true
7652 },
7653 "json-schema-traverse": {
7654 "version": "0.3.1",
7655 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
7656 "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
7657 "dev": true
7658 },
7659 "json-stable-stringify": {
7660 "version": "1.0.1",
7661 "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
7662 "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
7663 "dev": true,
7664 "requires": {
7665 "jsonify": "~0.0.0"
7666 }
7667 },
7668 "json-stable-stringify-without-jsonify": {
7669 "version": "1.0.1",
7670 "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
7671 "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
7672 "dev": true
7673 },
7674 "json-stringify-safe": {
7675 "version": "5.0.1",
7676 "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
7677 "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
7678 "dev": true
7679 },
7680 "json3": {
7681 "version": "3.3.2",
7682 "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
7683 "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=",
7684 "dev": true
7685 },
7686 "json5": {
7687 "version": "0.5.1",
7688 "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
7689 "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
7690 "dev": true
7691 },
7692 "jsonfile": {
7693 "version": "4.0.0",
7694 "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
7695 "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
7696 "requires": {
7697 "graceful-fs": "^4.1.6"
7698 }
7699 },
7700 "jsonify": {
7701 "version": "0.0.0",
7702 "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
7703 "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
7704 "dev": true
7705 },
7706 "jsonwebtoken": {
7707 "version": "7.4.3",
7708 "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-7.4.3.tgz",
7709 "integrity": "sha1-d/UCHeBYtgWheD+hKD6ZgS5kVjg=",
7710 "requires": {
7711 "joi": "^6.10.1",
7712 "jws": "^3.1.4",
7713 "lodash.once": "^4.0.0",
7714 "ms": "^2.0.0",
7715 "xtend": "^4.0.1"
7716 }
7717 },
7718 "jsprim": {
7719 "version": "1.4.1",
7720 "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
7721 "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
7722 "dev": true,
7723 "requires": {
7724 "assert-plus": "1.0.0",
7725 "extsprintf": "1.3.0",
7726 "json-schema": "0.2.3",
7727 "verror": "1.10.0"
7728 }
7729 },
7730 "jsx-ast-utils": {
7731 "version": "1.4.1",
7732 "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz",
7733 "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=",
7734 "dev": true
7735 },
7736 "just-debounce": {
7737 "version": "1.0.0",
7738 "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz",
7739 "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=",
7740 "dev": true
7741 },
7742 "jwa": {
7743 "version": "1.1.6",
7744 "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.6.tgz",
7745 "integrity": "sha512-tBO/cf++BUsJkYql/kBbJroKOgHWEigTKBAjjBEmrMGYd1QMBC74Hr4Wo2zCZw6ZrVhlJPvoMrkcOnlWR/DJfw==",
7746 "requires": {
7747 "buffer-equal-constant-time": "1.0.1",
7748 "ecdsa-sig-formatter": "1.0.10",
7749 "safe-buffer": "^5.0.1"
7750 }
7751 },
7752 "jws": {
7753 "version": "3.1.5",
7754 "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz",
7755 "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==",
7756 "requires": {
7757 "jwa": "^1.1.5",
7758 "safe-buffer": "^5.0.1"
7759 }
7760 },
7761 "keymaster": {
7762 "version": "1.6.2",
7763 "resolved": "https://registry.npmjs.org/keymaster/-/keymaster-1.6.2.tgz",
7764 "integrity": "sha1-4a5U0OqUiPn2C2a2aPAumhlGxus="
7765 },
7766 "kind-of": {
7767 "version": "6.0.2",
7768 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
7769 "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
7770 },
7771 "klaw": {
7772 "version": "1.3.1",
7773 "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
7774 "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
7775 "dev": true,
7776 "requires": {
7777 "graceful-fs": "^4.1.9"
7778 }
7779 },
7780 "last-run": {
7781 "version": "1.1.1",
7782 "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz",
7783 "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=",
7784 "dev": true,
7785 "requires": {
7786 "default-resolution": "^2.0.0",
7787 "es6-weak-map": "^2.0.1"
7788 }
7789 },
7790 "latest-version": {
7791 "version": "3.1.0",
7792 "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz",
7793 "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=",
7794 "dev": true,
7795 "requires": {
7796 "package-json": "^4.0.0"
7797 }
7798 },
7799 "lazy-val": {
7800 "version": "1.0.3",
7801 "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.3.tgz",
7802 "integrity": "sha512-pjCf3BYk+uv3ZcPzEVM0BFvO9Uw58TmlrU0oG5tTrr9Kcid3+kdKxapH8CjdYmVa2nO5wOoZn2rdvZx2PKj/xg=="
7803 },
7804 "lazystream": {
7805 "version": "1.0.0",
7806 "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
7807 "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
7808 "dev": true,
7809 "requires": {
7810 "readable-stream": "^2.0.5"
7811 }
7812 },
7813 "lcid": {
7814 "version": "1.0.0",
7815 "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
7816 "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
7817 "requires": {
7818 "invert-kv": "^1.0.0"
7819 }
7820 },
7821 "lead": {
7822 "version": "1.0.0",
7823 "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz",
7824 "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=",
7825 "dev": true,
7826 "requires": {
7827 "flush-write-stream": "^1.0.2"
7828 }
7829 },
7830 "levn": {
7831 "version": "0.3.0",
7832 "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
7833 "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
7834 "dev": true,
7835 "requires": {
7836 "prelude-ls": "~1.1.2",
7837 "type-check": "~0.3.2"
7838 }
7839 },
7840 "liftoff": {
7841 "version": "2.5.0",
7842 "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz",
7843 "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=",
7844 "requires": {
7845 "extend": "^3.0.0",
7846 "findup-sync": "^2.0.0",
7847 "fined": "^1.0.1",
7848 "flagged-respawn": "^1.0.0",
7849 "is-plain-object": "^2.0.4",
7850 "object.map": "^1.0.0",
7851 "rechoir": "^0.6.2",
7852 "resolve": "^1.1.7"
7853 }
7854 },
7855 "load-json-file": {
7856 "version": "1.1.0",
7857 "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
7858 "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
7859 "dev": true,
7860 "requires": {
7861 "graceful-fs": "^4.1.2",
7862 "parse-json": "^2.2.0",
7863 "pify": "^2.0.0",
7864 "pinkie-promise": "^2.0.0",
7865 "strip-bom": "^2.0.0"
7866 }
7867 },
7868 "loader-fs-cache": {
7869 "version": "1.0.1",
7870 "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz",
7871 "integrity": "sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw=",
7872 "dev": true,
7873 "requires": {
7874 "find-cache-dir": "^0.1.1",
7875 "mkdirp": "0.5.1"
7876 }
7877 },
7878 "loader-utils": {
7879 "version": "1.1.0",
7880 "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
7881 "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
7882 "dev": true,
7883 "requires": {
7884 "big.js": "^3.1.3",
7885 "emojis-list": "^2.0.0",
7886 "json5": "^0.5.0"
7887 }
7888 },
7889 "locate-path": {
7890 "version": "2.0.0",
7891 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
7892 "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
7893 "dev": true,
7894 "requires": {
7895 "p-locate": "^2.0.0",
7896 "path-exists": "^3.0.0"
7897 },
7898 "dependencies": {
7899 "path-exists": {
7900 "version": "3.0.0",
7901 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
7902 "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
7903 "dev": true
7904 }
7905 }
7906 },
7907 "lodash": {
7908 "version": "4.17.11",
7909 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
7910 "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
7911 },
7912 "lodash._basecopy": {
7913 "version": "3.0.1",
7914 "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
7915 "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
7916 "dev": true
7917 },
7918 "lodash._basetostring": {
7919 "version": "3.0.1",
7920 "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
7921 "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=",
7922 "dev": true
7923 },
7924 "lodash._basevalues": {
7925 "version": "3.0.0",
7926 "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
7927 "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=",
7928 "dev": true
7929 },
7930 "lodash._getnative": {
7931 "version": "3.9.1",
7932 "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
7933 "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
7934 "dev": true
7935 },
7936 "lodash._isiterateecall": {
7937 "version": "3.0.9",
7938 "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
7939 "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
7940 "dev": true
7941 },
7942 "lodash._reescape": {
7943 "version": "3.0.0",
7944 "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
7945 "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=",
7946 "dev": true
7947 },
7948 "lodash._reevaluate": {
7949 "version": "3.0.0",
7950 "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
7951 "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=",
7952 "dev": true
7953 },
7954 "lodash._reinterpolate": {
7955 "version": "3.0.0",
7956 "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
7957 "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
7958 "dev": true
7959 },
7960 "lodash._root": {
7961 "version": "3.0.1",
7962 "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
7963 "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
7964 "dev": true
7965 },
7966 "lodash.assign": {
7967 "version": "4.2.0",
7968 "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
7969 "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc="
7970 },
7971 "lodash.camelcase": {
7972 "version": "4.3.0",
7973 "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
7974 "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY="
7975 },
7976 "lodash.clonedeep": {
7977 "version": "4.5.0",
7978 "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
7979 "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
7980 "dev": true
7981 },
7982 "lodash.debounce": {
7983 "version": "4.0.8",
7984 "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
7985 "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
7986 "dev": true
7987 },
7988 "lodash.escape": {
7989 "version": "3.2.0",
7990 "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
7991 "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=",
7992 "dev": true,
7993 "requires": {
7994 "lodash._root": "^3.0.0"
7995 }
7996 },
7997 "lodash.get": {
7998 "version": "4.4.2",
7999 "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
8000 "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk="
8001 },
8002 "lodash.isarguments": {
8003 "version": "3.1.0",
8004 "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
8005 "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
8006 "dev": true
8007 },
8008 "lodash.isarray": {
8009 "version": "3.0.4",
8010 "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
8011 "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
8012 "dev": true
8013 },
8014 "lodash.isequal": {
8015 "version": "4.5.0",
8016 "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
8017 "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
8018 },
8019 "lodash.isfunction": {
8020 "version": "3.0.9",
8021 "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz",
8022 "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw=="
8023 },
8024 "lodash.isplainobject": {
8025 "version": "4.0.6",
8026 "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
8027 "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
8028 },
8029 "lodash.isstring": {
8030 "version": "4.0.1",
8031 "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
8032 "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
8033 },
8034 "lodash.keys": {
8035 "version": "3.1.2",
8036 "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
8037 "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
8038 "dev": true,
8039 "requires": {
8040 "lodash._getnative": "^3.0.0",
8041 "lodash.isarguments": "^3.0.0",
8042 "lodash.isarray": "^3.0.0"
8043 }
8044 },
8045 "lodash.map": {
8046 "version": "4.6.0",
8047 "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz",
8048 "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=",
8049 "dev": true
8050 },
8051 "lodash.mergewith": {
8052 "version": "4.6.1",
8053 "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz",
8054 "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==",
8055 "dev": true
8056 },
8057 "lodash.once": {
8058 "version": "4.1.1",
8059 "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
8060 "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
8061 },
8062 "lodash.restparam": {
8063 "version": "3.6.1",
8064 "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
8065 "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=",
8066 "dev": true
8067 },
8068 "lodash.sortby": {
8069 "version": "4.7.0",
8070 "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
8071 "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg="
8072 },
8073 "lodash.template": {
8074 "version": "3.6.2",
8075 "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
8076 "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=",
8077 "dev": true,
8078 "requires": {
8079 "lodash._basecopy": "^3.0.0",
8080 "lodash._basetostring": "^3.0.0",
8081 "lodash._basevalues": "^3.0.0",
8082 "lodash._isiterateecall": "^3.0.0",
8083 "lodash._reinterpolate": "^3.0.0",
8084 "lodash.escape": "^3.0.0",
8085 "lodash.keys": "^3.0.0",
8086 "lodash.restparam": "^3.0.0",
8087 "lodash.templatesettings": "^3.0.0"
8088 }
8089 },
8090 "lodash.templatesettings": {
8091 "version": "3.1.1",
8092 "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz",
8093 "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=",
8094 "dev": true,
8095 "requires": {
8096 "lodash._reinterpolate": "^3.0.0",
8097 "lodash.escape": "^3.0.0"
8098 }
8099 },
8100 "log-symbols": {
8101 "version": "2.2.0",
8102 "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
8103 "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
8104 "dev": true,
8105 "requires": {
8106 "chalk": "^2.0.1"
8107 },
8108 "dependencies": {
8109 "ansi-styles": {
8110 "version": "3.2.1",
8111 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
8112 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
8113 "dev": true,
8114 "requires": {
8115 "color-convert": "^1.9.0"
8116 }
8117 },
8118 "chalk": {
8119 "version": "2.4.1",
8120 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
8121 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
8122 "dev": true,
8123 "requires": {
8124 "ansi-styles": "^3.2.1",
8125 "escape-string-regexp": "^1.0.5",
8126 "supports-color": "^5.3.0"
8127 }
8128 },
8129 "supports-color": {
8130 "version": "5.5.0",
8131 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
8132 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
8133 "dev": true,
8134 "requires": {
8135 "has-flag": "^3.0.0"
8136 }
8137 }
8138 }
8139 },
8140 "longest": {
8141 "version": "1.0.1",
8142 "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
8143 "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
8144 "dev": true
8145 },
8146 "loose-envify": {
8147 "version": "1.4.0",
8148 "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
8149 "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
8150 "requires": {
8151 "js-tokens": "^3.0.0 || ^4.0.0"
8152 }
8153 },
8154 "loud-rejection": {
8155 "version": "1.6.0",
8156 "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
8157 "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
8158 "dev": true,
8159 "requires": {
8160 "currently-unhandled": "^0.4.1",
8161 "signal-exit": "^3.0.0"
8162 }
8163 },
8164 "lowercase-keys": {
8165 "version": "1.0.1",
8166 "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
8167 "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
8168 "dev": true
8169 },
8170 "lru-cache": {
8171 "version": "4.1.3",
8172 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
8173 "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
8174 "requires": {
8175 "pseudomap": "^1.0.2",
8176 "yallist": "^2.1.2"
8177 }
8178 },
8179 "macos-notification-state": {
8180 "version": "1.1.0",
8181 "resolved": "https://registry.npmjs.org/macos-notification-state/-/macos-notification-state-1.1.0.tgz",
8182 "integrity": "sha1-7llnHgXB7DiMCwkQHvYRyFtLTg4=",
8183 "requires": {
8184 "bindings": "^1.2.1",
8185 "nan": "^2.4.0"
8186 }
8187 },
8188 "make-dir": {
8189 "version": "1.3.0",
8190 "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
8191 "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
8192 "dev": true,
8193 "requires": {
8194 "pify": "^3.0.0"
8195 },
8196 "dependencies": {
8197 "pify": {
8198 "version": "3.0.0",
8199 "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
8200 "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
8201 "dev": true
8202 }
8203 }
8204 },
8205 "make-iterator": {
8206 "version": "1.0.1",
8207 "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
8208 "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
8209 "requires": {
8210 "kind-of": "^6.0.2"
8211 }
8212 },
8213 "map-age-cleaner": {
8214 "version": "0.1.2",
8215 "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz",
8216 "integrity": "sha512-UN1dNocxQq44IhJyMI4TU8phc2m9BddacHRPRjKGLYaF0jqd3xLz0jS0skpAU9WgYyoR4gHtUpzytNBS385FWQ==",
8217 "dev": true,
8218 "requires": {
8219 "p-defer": "^1.0.0"
8220 }
8221 },
8222 "map-cache": {
8223 "version": "0.2.2",
8224 "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
8225 "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
8226 },
8227 "map-obj": {
8228 "version": "1.0.1",
8229 "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
8230 "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
8231 "dev": true
8232 },
8233 "map-visit": {
8234 "version": "1.0.0",
8235 "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
8236 "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
8237 "requires": {
8238 "object-visit": "^1.0.0"
8239 }
8240 },
8241 "matchdep": {
8242 "version": "2.0.0",
8243 "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz",
8244 "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=",
8245 "dev": true,
8246 "requires": {
8247 "findup-sync": "^2.0.0",
8248 "micromatch": "^3.0.4",
8249 "resolve": "^1.4.0",
8250 "stack-trace": "0.0.10"
8251 }
8252 },
8253 "math-random": {
8254 "version": "1.0.1",
8255 "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz",
8256 "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w="
8257 },
8258 "mdi": {
8259 "version": "1.9.33",
8260 "resolved": "https://registry.npmjs.org/mdi/-/mdi-1.9.33.tgz",
8261 "integrity": "sha1-PK9tlfxrgAYzYwvWK6DPH73msuI="
8262 },
8263 "mem": {
8264 "version": "4.0.0",
8265 "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz",
8266 "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==",
8267 "dev": true,
8268 "requires": {
8269 "map-age-cleaner": "^0.1.1",
8270 "mimic-fn": "^1.0.0",
8271 "p-is-promise": "^1.1.0"
8272 }
8273 },
8274 "meow": {
8275 "version": "3.7.0",
8276 "resolved": "http://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
8277 "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
8278 "dev": true,
8279 "requires": {
8280 "camelcase-keys": "^2.0.0",
8281 "decamelize": "^1.1.2",
8282 "loud-rejection": "^1.0.0",
8283 "map-obj": "^1.0.1",
8284 "minimist": "^1.1.3",
8285 "normalize-package-data": "^2.3.4",
8286 "object-assign": "^4.0.1",
8287 "read-pkg-up": "^1.0.1",
8288 "redent": "^1.0.0",
8289 "trim-newlines": "^1.0.0"
8290 }
8291 },
8292 "merge-stream": {
8293 "version": "0.1.8",
8294 "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-0.1.8.tgz",
8295 "integrity": "sha1-SKB7O0oSHXSj7b/c20sIrb8CQLE=",
8296 "dev": true,
8297 "requires": {
8298 "through2": "^0.6.1"
8299 },
8300 "dependencies": {
8301 "isarray": {
8302 "version": "0.0.1",
8303 "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
8304 "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
8305 "dev": true
8306 },
8307 "readable-stream": {
8308 "version": "1.0.34",
8309 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
8310 "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
8311 "dev": true,
8312 "requires": {
8313 "core-util-is": "~1.0.0",
8314 "inherits": "~2.0.1",
8315 "isarray": "0.0.1",
8316 "string_decoder": "~0.10.x"
8317 }
8318 },
8319 "string_decoder": {
8320 "version": "0.10.31",
8321 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
8322 "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
8323 "dev": true
8324 },
8325 "through2": {
8326 "version": "0.6.5",
8327 "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
8328 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
8329 "dev": true,
8330 "requires": {
8331 "readable-stream": ">=1.0.33-1 <1.1.0-0",
8332 "xtend": ">=4.0.0 <4.1.0-0"
8333 }
8334 }
8335 }
8336 },
8337 "micromatch": {
8338 "version": "3.1.10",
8339 "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
8340 "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
8341 "requires": {
8342 "arr-diff": "^4.0.0",
8343 "array-unique": "^0.3.2",
8344 "braces": "^2.3.1",
8345 "define-property": "^2.0.2",
8346 "extend-shallow": "^3.0.2",
8347 "extglob": "^2.0.4",
8348 "fragment-cache": "^0.2.1",
8349 "kind-of": "^6.0.2",
8350 "nanomatch": "^1.2.9",
8351 "object.pick": "^1.3.0",
8352 "regex-not": "^1.0.0",
8353 "snapdragon": "^0.8.1",
8354 "to-regex": "^3.0.2"
8355 }
8356 },
8357 "mime": {
8358 "version": "2.3.1",
8359 "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz",
8360 "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==",
8361 "dev": true
8362 },
8363 "mime-db": {
8364 "version": "1.37.0",
8365 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
8366 "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==",
8367 "dev": true
8368 },
8369 "mime-types": {
8370 "version": "2.1.21",
8371 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
8372 "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
8373 "dev": true,
8374 "requires": {
8375 "mime-db": "~1.37.0"
8376 }
8377 },
8378 "mimic-fn": {
8379 "version": "1.2.0",
8380 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
8381 "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
8382 "dev": true
8383 },
8384 "minimatch": {
8385 "version": "3.0.4",
8386 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
8387 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
8388 "requires": {
8389 "brace-expansion": "^1.1.7"
8390 }
8391 },
8392 "minimist": {
8393 "version": "1.2.0",
8394 "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
8395 "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
8396 },
8397 "minipass": {
8398 "version": "2.3.4",
8399 "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.4.tgz",
8400 "integrity": "sha512-mlouk1OHlaUE8Odt1drMtG1bAJA4ZA6B/ehysgV0LUIrDHdKgo1KorZq3pK0b/7Z7LJIQ12MNM6aC+Tn6lUZ5w==",
8401 "requires": {
8402 "safe-buffer": "^5.1.2",
8403 "yallist": "^3.0.0"
8404 },
8405 "dependencies": {
8406 "yallist": {
8407 "version": "3.0.2",
8408 "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz",
8409 "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k="
8410 }
8411 }
8412 },
8413 "minizlib": {
8414 "version": "1.1.1",
8415 "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.1.tgz",
8416 "integrity": "sha512-TrfjCjk4jLhcJyGMYymBH6oTXcWjYbUAXTHDbtnWHjZC25h0cdajHuPE1zxb4DVmu8crfh+HwH/WMuyLG0nHBg==",
8417 "requires": {
8418 "minipass": "^2.2.1"
8419 }
8420 },
8421 "mixin-deep": {
8422 "version": "1.3.1",
8423 "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
8424 "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
8425 "requires": {
8426 "for-in": "^1.0.2",
8427 "is-extendable": "^1.0.1"
8428 },
8429 "dependencies": {
8430 "is-extendable": {
8431 "version": "1.0.1",
8432 "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
8433 "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
8434 "requires": {
8435 "is-plain-object": "^2.0.4"
8436 }
8437 }
8438 }
8439 },
8440 "mkdirp": {
8441 "version": "0.5.1",
8442 "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
8443 "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
8444 "requires": {
8445 "minimist": "0.0.8"
8446 },
8447 "dependencies": {
8448 "minimist": {
8449 "version": "0.0.8",
8450 "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
8451 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
8452 }
8453 }
8454 },
8455 "mobx": {
8456 "version": "3.6.2",
8457 "resolved": "http://registry.npmjs.org/mobx/-/mobx-3.6.2.tgz",
8458 "integrity": "sha512-Dq3boJFLpZEvuh5a/MbHLUIyN9XobKWIb0dBfkNOJffNkE3vtuY0C9kSDVpfH8BB0BPkVw8g22qCv7d05LEhKg=="
8459 },
8460 "mobx-localstorage": {
8461 "version": "0.1.7",
8462 "resolved": "https://registry.npmjs.org/mobx-localstorage/-/mobx-localstorage-0.1.7.tgz",
8463 "integrity": "sha1-wMZDZnafOQykozP0GRLq4AzUqd4="
8464 },
8465 "mobx-react": {
8466 "version": "4.4.3",
8467 "resolved": "http://registry.npmjs.org/mobx-react/-/mobx-react-4.4.3.tgz",
8468 "integrity": "sha1-uqnsQRZe41rnud8ZvKEBkPNvEX4=",
8469 "requires": {
8470 "hoist-non-react-statics": "^2.3.1"
8471 }
8472 },
8473 "mobx-react-form": {
8474 "version": "1.35.1",
8475 "resolved": "https://registry.npmjs.org/mobx-react-form/-/mobx-react-form-1.35.1.tgz",
8476 "integrity": "sha1-iSrsZykiThHCl4+4LmetxOgOOmo=",
8477 "requires": {
8478 "lodash": "^4.16.2"
8479 }
8480 },
8481 "mobx-react-router": {
8482 "version": "3.1.2",
8483 "resolved": "https://registry.npmjs.org/mobx-react-router/-/mobx-react-router-3.1.2.tgz",
8484 "integrity": "sha1-gzKLEIOTAXFI2G/qF/YR3i0qrNw="
8485 },
8486 "moment": {
8487 "version": "2.22.2",
8488 "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz",
8489 "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y="
8490 },
8491 "ms": {
8492 "version": "2.0.0",
8493 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
8494 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
8495 },
8496 "multipipe": {
8497 "version": "0.1.2",
8498 "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
8499 "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=",
8500 "dev": true,
8501 "requires": {
8502 "duplexer2": "0.0.2"
8503 }
8504 },
8505 "mute-stdout": {
8506 "version": "1.0.1",
8507 "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz",
8508 "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg=="
8509 },
8510 "mute-stream": {
8511 "version": "0.0.7",
8512 "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
8513 "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
8514 "dev": true
8515 },
8516 "nan": {
8517 "version": "2.11.1",
8518 "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz",
8519 "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA=="
8520 },
8521 "nanomatch": {
8522 "version": "1.2.13",
8523 "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
8524 "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
8525 "requires": {
8526 "arr-diff": "^4.0.0",
8527 "array-unique": "^0.3.2",
8528 "define-property": "^2.0.2",
8529 "extend-shallow": "^3.0.2",
8530 "fragment-cache": "^0.2.1",
8531 "is-windows": "^1.0.2",
8532 "kind-of": "^6.0.2",
8533 "object.pick": "^1.3.0",
8534 "regex-not": "^1.0.0",
8535 "snapdragon": "^0.8.1",
8536 "to-regex": "^3.0.1"
8537 }
8538 },
8539 "natives": {
8540 "version": "1.1.6",
8541 "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz",
8542 "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==",
8543 "dev": true
8544 },
8545 "natural-compare": {
8546 "version": "1.4.0",
8547 "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
8548 "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
8549 "dev": true
8550 },
8551 "negotiator": {
8552 "version": "0.4.7",
8553 "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.4.7.tgz",
8554 "integrity": "sha1-pBYPcXfsgGc4Yx0NMFIyXaQqvcg=",
8555 "dev": true
8556 },
8557 "next-tick": {
8558 "version": "1.0.0",
8559 "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
8560 "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
8561 },
8562 "nice-try": {
8563 "version": "1.0.5",
8564 "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
8565 "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
8566 "dev": true
8567 },
8568 "node-abi": {
8569 "version": "2.4.5",
8570 "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.4.5.tgz",
8571 "integrity": "sha512-aa/UC6Nr3+tqhHGRsAuw/edz7/q9nnetBrKWxj6rpTtm+0X9T1qU7lIEHMS3yN9JwAbRiKUbRRFy1PLz/y3aaA==",
8572 "dev": true,
8573 "requires": {
8574 "semver": "^5.4.1"
8575 }
8576 },
8577 "node-fetch": {
8578 "version": "1.7.3",
8579 "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
8580 "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
8581 "requires": {
8582 "encoding": "^0.1.11",
8583 "is-stream": "^1.0.1"
8584 }
8585 },
8586 "node-gyp": {
8587 "version": "3.8.0",
8588 "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
8589 "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
8590 "dev": true,
8591 "requires": {
8592 "fstream": "^1.0.0",
8593 "glob": "^7.0.3",
8594 "graceful-fs": "^4.1.2",
8595 "mkdirp": "^0.5.0",
8596 "nopt": "2 || 3",
8597 "npmlog": "0 || 1 || 2 || 3 || 4",
8598 "osenv": "0",
8599 "request": "^2.87.0",
8600 "rimraf": "2",
8601 "semver": "~5.3.0",
8602 "tar": "^2.0.0",
8603 "which": "1"
8604 },
8605 "dependencies": {
8606 "semver": {
8607 "version": "5.3.0",
8608 "resolved": "http://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
8609 "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
8610 "dev": true
8611 },
8612 "tar": {
8613 "version": "2.2.1",
8614 "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
8615 "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
8616 "dev": true,
8617 "requires": {
8618 "block-stream": "*",
8619 "fstream": "^1.0.2",
8620 "inherits": "2"
8621 }
8622 }
8623 }
8624 },
8625 "node-modules-regexp": {
8626 "version": "1.0.0",
8627 "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz",
8628 "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=",
8629 "dev": true
8630 },
8631 "node-releases": {
8632 "version": "1.0.0-alpha.14",
8633 "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.0.0-alpha.14.tgz",
8634 "integrity": "sha512-G8nnF9cP9QPP/jUmYWw/uUUhumHmkm+X/EarCugYFjYm2uXRMFeOD6CVT3RLdoyCvDUNy51nirGfUItKWs/S1g==",
8635 "dev": true,
8636 "requires": {
8637 "semver": "^5.3.0"
8638 }
8639 },
8640 "node-sass": {
8641 "version": "4.9.4",
8642 "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.4.tgz",
8643 "integrity": "sha512-MXyurANsUoE4/6KmfMkwGcBzAnJQ5xJBGW7Ei6ea8KnUKuzHr/SguVBIi3uaUAHtZCPUYkvlJ3Ef5T5VAwVpaA==",
8644 "dev": true,
8645 "requires": {
8646 "async-foreach": "^0.1.3",
8647 "chalk": "^1.1.1",
8648 "cross-spawn": "^3.0.0",
8649 "gaze": "^1.0.0",
8650 "get-stdin": "^4.0.1",
8651 "glob": "^7.0.3",
8652 "in-publish": "^2.0.0",
8653 "lodash.assign": "^4.2.0",
8654 "lodash.clonedeep": "^4.3.2",
8655 "lodash.mergewith": "^4.6.0",
8656 "meow": "^3.7.0",
8657 "mkdirp": "^0.5.1",
8658 "nan": "^2.10.0",
8659 "node-gyp": "^3.8.0",
8660 "npmlog": "^4.0.0",
8661 "request": "^2.88.0",
8662 "sass-graph": "^2.2.4",
8663 "stdout-stream": "^1.4.0",
8664 "true-case-path": "^1.0.2"
8665 },
8666 "dependencies": {
8667 "cross-spawn": {
8668 "version": "3.0.1",
8669 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
8670 "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
8671 "dev": true,
8672 "requires": {
8673 "lru-cache": "^4.0.1",
8674 "which": "^1.2.9"
8675 }
8676 }
8677 }
8678 },
8679 "node-watch": {
8680 "version": "0.3.5",
8681 "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.3.5.tgz",
8682 "integrity": "sha1-oH8lOk9TjenUylIt1/GZbu7A2X4=",
8683 "dev": true
8684 },
8685 "node.extend": {
8686 "version": "1.0.10",
8687 "resolved": "https://registry.npmjs.org/node.extend/-/node.extend-1.0.10.tgz",
8688 "integrity": "sha1-Mmm934HFRTX0CKvHhMMrDSvVX28=",
8689 "dev": true,
8690 "requires": {
8691 "is": "~0.3.0"
8692 }
8693 },
8694 "nopt": {
8695 "version": "3.0.6",
8696 "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
8697 "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
8698 "dev": true,
8699 "requires": {
8700 "abbrev": "1"
8701 }
8702 },
8703 "normalize-package-data": {
8704 "version": "2.4.0",
8705 "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
8706 "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
8707 "dev": true,
8708 "requires": {
8709 "hosted-git-info": "^2.1.4",
8710 "is-builtin-module": "^1.0.0",
8711 "semver": "2 || 3 || 4 || 5",
8712 "validate-npm-package-license": "^3.0.1"
8713 },
8714 "dependencies": {
8715 "semver": {
8716 "version": "5.6.0",
8717 "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
8718 "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
8719 "dev": true
8720 }
8721 }
8722 },
8723 "normalize-path": {
8724 "version": "2.1.1",
8725 "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
8726 "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
8727 "requires": {
8728 "remove-trailing-separator": "^1.0.1"
8729 }
8730 },
8731 "normalize-url": {
8732 "version": "1.9.1",
8733 "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
8734 "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
8735 "requires": {
8736 "object-assign": "^4.0.1",
8737 "prepend-http": "^1.0.0",
8738 "query-string": "^4.1.0",
8739 "sort-keys": "^1.0.0"
8740 }
8741 },
8742 "now-and-later": {
8743 "version": "2.0.0",
8744 "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.0.tgz",
8745 "integrity": "sha1-vGHLtFbXnLMiB85HygUTb/Ln1u4=",
8746 "dev": true,
8747 "requires": {
8748 "once": "^1.3.2"
8749 }
8750 },
8751 "npm-run-path": {
8752 "version": "2.0.2",
8753 "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
8754 "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
8755 "dev": true,
8756 "requires": {
8757 "path-key": "^2.0.0"
8758 }
8759 },
8760 "npmlog": {
8761 "version": "4.1.2",
8762 "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
8763 "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
8764 "dev": true,
8765 "requires": {
8766 "are-we-there-yet": "~1.1.2",
8767 "console-control-strings": "~1.1.0",
8768 "gauge": "~2.7.3",
8769 "set-blocking": "~2.0.0"
8770 }
8771 },
8772 "nugget": {
8773 "version": "2.0.1",
8774 "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz",
8775 "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=",
8776 "dev": true,
8777 "requires": {
8778 "debug": "^2.1.3",
8779 "minimist": "^1.1.0",
8780 "pretty-bytes": "^1.0.2",
8781 "progress-stream": "^1.1.0",
8782 "request": "^2.45.0",
8783 "single-line-log": "^1.1.2",
8784 "throttleit": "0.0.2"
8785 },
8786 "dependencies": {
8787 "pretty-bytes": {
8788 "version": "1.0.4",
8789 "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz",
8790 "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=",
8791 "dev": true,
8792 "requires": {
8793 "get-stdin": "^4.0.1",
8794 "meow": "^3.1.0"
8795 }
8796 }
8797 }
8798 },
8799 "number-is-nan": {
8800 "version": "1.0.1",
8801 "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
8802 "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
8803 },
8804 "oauth-sign": {
8805 "version": "0.9.0",
8806 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
8807 "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
8808 "dev": true
8809 },
8810 "object-assign": {
8811 "version": "4.1.1",
8812 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
8813 "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
8814 },
8815 "object-component": {
8816 "version": "0.0.3",
8817 "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
8818 "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=",
8819 "dev": true
8820 },
8821 "object-copy": {
8822 "version": "0.1.0",
8823 "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
8824 "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
8825 "requires": {
8826 "copy-descriptor": "^0.1.0",
8827 "define-property": "^0.2.5",
8828 "kind-of": "^3.0.3"
8829 },
8830 "dependencies": {
8831 "define-property": {
8832 "version": "0.2.5",
8833 "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
8834 "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
8835 "requires": {
8836 "is-descriptor": "^0.1.0"
8837 }
8838 },
8839 "kind-of": {
8840 "version": "3.2.2",
8841 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
8842 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
8843 "requires": {
8844 "is-buffer": "^1.1.5"
8845 }
8846 }
8847 }
8848 },
8849 "object-hash": {
8850 "version": "1.3.0",
8851 "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.0.tgz",
8852 "integrity": "sha512-05KzQ70lSeGSrZJQXE5wNDiTkBJDlUT/myi6RX9dVIvz7a7Qh4oH93BQdiPMn27nldYvVQCKMUaM83AfizZlsQ==",
8853 "dev": true
8854 },
8855 "object-keys": {
8856 "version": "1.0.12",
8857 "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz",
8858 "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==",
8859 "dev": true
8860 },
8861 "object-visit": {
8862 "version": "1.0.1",
8863 "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
8864 "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
8865 "requires": {
8866 "isobject": "^3.0.0"
8867 }
8868 },
8869 "object.assign": {
8870 "version": "4.1.0",
8871 "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
8872 "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
8873 "dev": true,
8874 "requires": {
8875 "define-properties": "^1.1.2",
8876 "function-bind": "^1.1.1",
8877 "has-symbols": "^1.0.0",
8878 "object-keys": "^1.0.11"
8879 }
8880 },
8881 "object.defaults": {
8882 "version": "1.1.0",
8883 "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
8884 "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=",
8885 "requires": {
8886 "array-each": "^1.0.1",
8887 "array-slice": "^1.0.0",
8888 "for-own": "^1.0.0",
8889 "isobject": "^3.0.0"
8890 }
8891 },
8892 "object.map": {
8893 "version": "1.0.1",
8894 "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
8895 "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=",
8896 "requires": {
8897 "for-own": "^1.0.0",
8898 "make-iterator": "^1.0.0"
8899 }
8900 },
8901 "object.omit": {
8902 "version": "2.0.1",
8903 "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
8904 "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
8905 "requires": {
8906 "for-own": "^0.1.4",
8907 "is-extendable": "^0.1.1"
8908 },
8909 "dependencies": {
8910 "for-own": {
8911 "version": "0.1.5",
8912 "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
8913 "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
8914 "requires": {
8915 "for-in": "^1.0.1"
8916 }
8917 }
8918 }
8919 },
8920 "object.pick": {
8921 "version": "1.3.0",
8922 "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
8923 "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
8924 "requires": {
8925 "isobject": "^3.0.1"
8926 }
8927 },
8928 "object.reduce": {
8929 "version": "1.0.1",
8930 "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz",
8931 "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=",
8932 "dev": true,
8933 "requires": {
8934 "for-own": "^1.0.0",
8935 "make-iterator": "^1.0.0"
8936 }
8937 },
8938 "on-finished": {
8939 "version": "2.1.0",
8940 "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.1.0.tgz",
8941 "integrity": "sha1-DFOfCSkej/rd4MiiWFD7LO3HAi0=",
8942 "dev": true,
8943 "requires": {
8944 "ee-first": "1.0.5"
8945 }
8946 },
8947 "once": {
8948 "version": "1.4.0",
8949 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
8950 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
8951 "requires": {
8952 "wrappy": "1"
8953 }
8954 },
8955 "onetime": {
8956 "version": "2.0.1",
8957 "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
8958 "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
8959 "dev": true,
8960 "requires": {
8961 "mimic-fn": "^1.0.0"
8962 }
8963 },
8964 "open": {
8965 "version": "0.0.5",
8966 "resolved": "https://registry.npmjs.org/open/-/open-0.0.5.tgz",
8967 "integrity": "sha1-QsPhjslUZra/DcQvOilFw/DK2Pw=",
8968 "dev": true
8969 },
8970 "optionator": {
8971 "version": "0.8.2",
8972 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
8973 "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
8974 "dev": true,
8975 "requires": {
8976 "deep-is": "~0.1.3",
8977 "fast-levenshtein": "~2.0.4",
8978 "levn": "~0.3.0",
8979 "prelude-ls": "~1.1.2",
8980 "type-check": "~0.3.2",
8981 "wordwrap": "~1.0.0"
8982 }
8983 },
8984 "options": {
8985 "version": "0.0.6",
8986 "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz",
8987 "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=",
8988 "dev": true
8989 },
8990 "ora": {
8991 "version": "1.4.0",
8992 "resolved": "https://registry.npmjs.org/ora/-/ora-1.4.0.tgz",
8993 "integrity": "sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==",
8994 "dev": true,
8995 "requires": {
8996 "chalk": "^2.1.0",
8997 "cli-cursor": "^2.1.0",
8998 "cli-spinners": "^1.0.1",
8999 "log-symbols": "^2.1.0"
9000 },
9001 "dependencies": {
9002 "ansi-styles": {
9003 "version": "3.2.1",
9004 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
9005 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
9006 "dev": true,
9007 "requires": {
9008 "color-convert": "^1.9.0"
9009 }
9010 },
9011 "chalk": {
9012 "version": "2.4.1",
9013 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
9014 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
9015 "dev": true,
9016 "requires": {
9017 "ansi-styles": "^3.2.1",
9018 "escape-string-regexp": "^1.0.5",
9019 "supports-color": "^5.3.0"
9020 }
9021 },
9022 "supports-color": {
9023 "version": "5.5.0",
9024 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
9025 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
9026 "dev": true,
9027 "requires": {
9028 "has-flag": "^3.0.0"
9029 }
9030 }
9031 }
9032 },
9033 "ordered-read-streams": {
9034 "version": "1.0.1",
9035 "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz",
9036 "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=",
9037 "dev": true,
9038 "requires": {
9039 "readable-stream": "^2.0.1"
9040 }
9041 },
9042 "os-homedir": {
9043 "version": "1.0.2",
9044 "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
9045 "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
9046 },
9047 "os-locale": {
9048 "version": "1.4.0",
9049 "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
9050 "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
9051 "requires": {
9052 "lcid": "^1.0.0"
9053 }
9054 },
9055 "os-tmpdir": {
9056 "version": "1.0.2",
9057 "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
9058 "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
9059 "dev": true
9060 },
9061 "osenv": {
9062 "version": "0.1.5",
9063 "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
9064 "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
9065 "dev": true,
9066 "requires": {
9067 "os-homedir": "^1.0.0",
9068 "os-tmpdir": "^1.0.0"
9069 }
9070 },
9071 "p-defer": {
9072 "version": "1.0.0",
9073 "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
9074 "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
9075 "dev": true
9076 },
9077 "p-finally": {
9078 "version": "1.0.0",
9079 "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
9080 "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
9081 "dev": true
9082 },
9083 "p-is-promise": {
9084 "version": "1.1.0",
9085 "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz",
9086 "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=",
9087 "dev": true
9088 },
9089 "p-limit": {
9090 "version": "1.3.0",
9091 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
9092 "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
9093 "dev": true,
9094 "requires": {
9095 "p-try": "^1.0.0"
9096 }
9097 },
9098 "p-locate": {
9099 "version": "2.0.0",
9100 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
9101 "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
9102 "dev": true,
9103 "requires": {
9104 "p-limit": "^1.1.0"
9105 }
9106 },
9107 "p-try": {
9108 "version": "1.0.0",
9109 "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
9110 "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
9111 "dev": true
9112 },
9113 "package-json": {
9114 "version": "4.0.1",
9115 "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz",
9116 "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
9117 "dev": true,
9118 "requires": {
9119 "got": "^6.7.1",
9120 "registry-auth-token": "^3.0.1",
9121 "registry-url": "^3.0.3",
9122 "semver": "^5.1.0"
9123 }
9124 },
9125 "pako": {
9126 "version": "1.0.6",
9127 "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
9128 "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg=="
9129 },
9130 "parse-color": {
9131 "version": "1.0.0",
9132 "resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz",
9133 "integrity": "sha1-e3SLlag/A/FqlPU15S1/PZRlhhk=",
9134 "dev": true,
9135 "requires": {
9136 "color-convert": "~0.5.0"
9137 },
9138 "dependencies": {
9139 "color-convert": {
9140 "version": "0.5.3",
9141 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz",
9142 "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=",
9143 "dev": true
9144 }
9145 }
9146 },
9147 "parse-filepath": {
9148 "version": "1.0.2",
9149 "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
9150 "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=",
9151 "requires": {
9152 "is-absolute": "^1.0.0",
9153 "map-cache": "^0.2.0",
9154 "path-root": "^0.1.1"
9155 }
9156 },
9157 "parse-glob": {
9158 "version": "3.0.4",
9159 "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
9160 "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
9161 "requires": {
9162 "glob-base": "^0.3.0",
9163 "is-dotfile": "^1.0.0",
9164 "is-extglob": "^1.0.0",
9165 "is-glob": "^2.0.0"
9166 },
9167 "dependencies": {
9168 "is-extglob": {
9169 "version": "1.0.0",
9170 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
9171 "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
9172 },
9173 "is-glob": {
9174 "version": "2.0.1",
9175 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
9176 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
9177 "requires": {
9178 "is-extglob": "^1.0.0"
9179 }
9180 }
9181 }
9182 },
9183 "parse-json": {
9184 "version": "2.2.0",
9185 "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
9186 "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
9187 "dev": true,
9188 "requires": {
9189 "error-ex": "^1.2.0"
9190 }
9191 },
9192 "parse-passwd": {
9193 "version": "1.0.0",
9194 "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
9195 "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY="
9196 },
9197 "parsejson": {
9198 "version": "0.0.3",
9199 "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz",
9200 "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=",
9201 "dev": true,
9202 "requires": {
9203 "better-assert": "~1.0.0"
9204 }
9205 },
9206 "parseqs": {
9207 "version": "0.0.5",
9208 "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
9209 "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
9210 "dev": true,
9211 "requires": {
9212 "better-assert": "~1.0.0"
9213 }
9214 },
9215 "parseuri": {
9216 "version": "0.0.5",
9217 "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
9218 "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
9219 "dev": true,
9220 "requires": {
9221 "better-assert": "~1.0.0"
9222 }
9223 },
9224 "parseurl": {
9225 "version": "1.3.2",
9226 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
9227 "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
9228 "dev": true
9229 },
9230 "pascalcase": {
9231 "version": "0.1.1",
9232 "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
9233 "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
9234 },
9235 "path-dirname": {
9236 "version": "1.0.2",
9237 "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
9238 "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
9239 "dev": true
9240 },
9241 "path-exists": {
9242 "version": "2.1.0",
9243 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
9244 "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
9245 "dev": true,
9246 "requires": {
9247 "pinkie-promise": "^2.0.0"
9248 }
9249 },
9250 "path-is-absolute": {
9251 "version": "1.0.1",
9252 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
9253 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
9254 },
9255 "path-is-inside": {
9256 "version": "1.0.2",
9257 "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
9258 "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
9259 "dev": true
9260 },
9261 "path-key": {
9262 "version": "2.0.1",
9263 "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
9264 "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
9265 "dev": true
9266 },
9267 "path-parse": {
9268 "version": "1.0.6",
9269 "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
9270 "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
9271 },
9272 "path-root": {
9273 "version": "0.1.1",
9274 "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
9275 "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
9276 "requires": {
9277 "path-root-regex": "^0.1.0"
9278 }
9279 },
9280 "path-root-regex": {
9281 "version": "0.1.2",
9282 "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
9283 "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0="
9284 },
9285 "path-type": {
9286 "version": "1.1.0",
9287 "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
9288 "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
9289 "dev": true,
9290 "requires": {
9291 "graceful-fs": "^4.1.2",
9292 "pify": "^2.0.0",
9293 "pinkie-promise": "^2.0.0"
9294 }
9295 },
9296 "pend": {
9297 "version": "1.2.0",
9298 "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
9299 "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
9300 "dev": true
9301 },
9302 "performance-now": {
9303 "version": "0.2.0",
9304 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
9305 "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU="
9306 },
9307 "pify": {
9308 "version": "2.3.0",
9309 "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
9310 "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
9311 },
9312 "pinkie": {
9313 "version": "2.0.4",
9314 "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
9315 "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
9316 "dev": true
9317 },
9318 "pinkie-promise": {
9319 "version": "2.0.1",
9320 "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
9321 "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
9322 "dev": true,
9323 "requires": {
9324 "pinkie": "^2.0.0"
9325 }
9326 },
9327 "pirates": {
9328 "version": "4.0.0",
9329 "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.0.tgz",
9330 "integrity": "sha512-8t5BsXy1LUIjn3WWOlOuFDuKswhQb/tkak641lvBgmPOBUQHXveORtlMCp6OdPV1dtuTaEahKA8VNz6uLfKBtA==",
9331 "dev": true,
9332 "requires": {
9333 "node-modules-regexp": "^1.0.0"
9334 }
9335 },
9336 "pkg-dir": {
9337 "version": "1.0.0",
9338 "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
9339 "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
9340 "dev": true,
9341 "requires": {
9342 "find-up": "^1.0.0"
9343 }
9344 },
9345 "please-upgrade-node": {
9346 "version": "3.1.1",
9347 "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz",
9348 "integrity": "sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==",
9349 "dev": true,
9350 "requires": {
9351 "semver-compare": "^1.0.0"
9352 }
9353 },
9354 "plist": {
9355 "version": "3.0.1",
9356 "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz",
9357 "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==",
9358 "dev": true,
9359 "requires": {
9360 "base64-js": "^1.2.3",
9361 "xmlbuilder": "^9.0.7",
9362 "xmldom": "0.1.x"
9363 }
9364 },
9365 "plugin-error": {
9366 "version": "1.0.1",
9367 "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz",
9368 "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==",
9369 "dev": true,
9370 "requires": {
9371 "ansi-colors": "^1.0.1",
9372 "arr-diff": "^4.0.0",
9373 "arr-union": "^3.1.0",
9374 "extend-shallow": "^3.0.2"
9375 }
9376 },
9377 "pluralize": {
9378 "version": "7.0.0",
9379 "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
9380 "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
9381 "dev": true
9382 },
9383 "posix-character-classes": {
9384 "version": "0.1.1",
9385 "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
9386 "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
9387 },
9388 "prelude-ls": {
9389 "version": "1.1.2",
9390 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
9391 "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
9392 "dev": true
9393 },
9394 "prepend-http": {
9395 "version": "1.0.4",
9396 "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
9397 "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
9398 },
9399 "preserve": {
9400 "version": "0.2.0",
9401 "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
9402 "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
9403 },
9404 "prettier": {
9405 "version": "1.15.2",
9406 "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.15.2.tgz",
9407 "integrity": "sha512-YgPLFFA0CdKL4Eg2IHtUSjzj/BWgszDHiNQAe0VAIBse34148whfdzLagRL+QiKS+YfK5ftB6X4v/MBw8yCoug==",
9408 "dev": true
9409 },
9410 "pretty-bytes": {
9411 "version": "4.0.2",
9412 "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz",
9413 "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk="
9414 },
9415 "pretty-hrtime": {
9416 "version": "1.0.3",
9417 "resolved": "http://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
9418 "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE="
9419 },
9420 "private": {
9421 "version": "0.1.8",
9422 "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
9423 "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
9424 "dev": true
9425 },
9426 "process-nextick-args": {
9427 "version": "1.0.7",
9428 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
9429 "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
9430 "dev": true
9431 },
9432 "progress": {
9433 "version": "2.0.1",
9434 "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz",
9435 "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==",
9436 "dev": true
9437 },
9438 "progress-stream": {
9439 "version": "1.2.0",
9440 "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz",
9441 "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=",
9442 "dev": true,
9443 "requires": {
9444 "speedometer": "~0.1.2",
9445 "through2": "~0.2.3"
9446 },
9447 "dependencies": {
9448 "isarray": {
9449 "version": "0.0.1",
9450 "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
9451 "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
9452 "dev": true
9453 },
9454 "object-keys": {
9455 "version": "0.4.0",
9456 "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz",
9457 "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=",
9458 "dev": true
9459 },
9460 "readable-stream": {
9461 "version": "1.1.14",
9462 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
9463 "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
9464 "dev": true,
9465 "requires": {
9466 "core-util-is": "~1.0.0",
9467 "inherits": "~2.0.1",
9468 "isarray": "0.0.1",
9469 "string_decoder": "~0.10.x"
9470 }
9471 },
9472 "string_decoder": {
9473 "version": "0.10.31",
9474 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
9475 "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
9476 "dev": true
9477 },
9478 "through2": {
9479 "version": "0.2.3",
9480 "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz",
9481 "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=",
9482 "dev": true,
9483 "requires": {
9484 "readable-stream": "~1.1.9",
9485 "xtend": "~2.1.1"
9486 }
9487 },
9488 "xtend": {
9489 "version": "2.1.2",
9490 "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
9491 "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=",
9492 "dev": true,
9493 "requires": {
9494 "object-keys": "~0.4.0"
9495 }
9496 }
9497 }
9498 },
9499 "promise": {
9500 "version": "7.3.1",
9501 "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
9502 "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
9503 "requires": {
9504 "asap": "~2.0.3"
9505 }
9506 },
9507 "prop-types": {
9508 "version": "15.6.2",
9509 "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz",
9510 "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==",
9511 "requires": {
9512 "loose-envify": "^1.3.1",
9513 "object-assign": "^4.1.1"
9514 }
9515 },
9516 "prop-types-extended": {
9517 "version": "0.2.1",
9518 "resolved": "https://registry.npmjs.org/prop-types-extended/-/prop-types-extended-0.2.1.tgz",
9519 "integrity": "sha1-ziPz28SMzcds+hpMfj9+2aXdglk=",
9520 "requires": {
9521 "invariant": "^2.2.0"
9522 }
9523 },
9524 "proxy-middleware": {
9525 "version": "0.15.0",
9526 "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz",
9527 "integrity": "sha1-o/3xvvtzD5UZZYcqwvYHTGFHelY=",
9528 "dev": true
9529 },
9530 "pseudomap": {
9531 "version": "1.0.2",
9532 "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
9533 "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
9534 },
9535 "psl": {
9536 "version": "1.1.29",
9537 "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz",
9538 "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==",
9539 "dev": true
9540 },
9541 "pump": {
9542 "version": "2.0.1",
9543 "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
9544 "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
9545 "dev": true,
9546 "requires": {
9547 "end-of-stream": "^1.1.0",
9548 "once": "^1.3.1"
9549 }
9550 },
9551 "pumpify": {
9552 "version": "1.5.1",
9553 "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
9554 "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
9555 "dev": true,
9556 "requires": {
9557 "duplexify": "^3.6.0",
9558 "inherits": "^2.0.3",
9559 "pump": "^2.0.0"
9560 }
9561 },
9562 "punycode": {
9563 "version": "1.4.1",
9564 "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
9565 "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
9566 "dev": true
9567 },
9568 "qs": {
9569 "version": "6.5.2",
9570 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
9571 "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
9572 "dev": true
9573 },
9574 "query-string": {
9575 "version": "4.3.4",
9576 "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
9577 "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
9578 "requires": {
9579 "object-assign": "^4.1.0",
9580 "strict-uri-encode": "^1.0.0"
9581 }
9582 },
9583 "raf": {
9584 "version": "3.4.0",
9585 "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz",
9586 "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==",
9587 "requires": {
9588 "performance-now": "^2.1.0"
9589 },
9590 "dependencies": {
9591 "performance-now": {
9592 "version": "2.1.0",
9593 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
9594 "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
9595 }
9596 }
9597 },
9598 "randomatic": {
9599 "version": "3.1.0",
9600 "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz",
9601 "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==",
9602 "requires": {
9603 "is-number": "^4.0.0",
9604 "kind-of": "^6.0.0",
9605 "math-random": "^1.0.1"
9606 },
9607 "dependencies": {
9608 "is-number": {
9609 "version": "4.0.0",
9610 "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
9611 "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ=="
9612 }
9613 }
9614 },
9615 "range-parser": {
9616 "version": "1.0.3",
9617 "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz",
9618 "integrity": "sha1-aHKCNTXGkuLCoBA4Jq/YLC4P8XU=",
9619 "dev": true
9620 },
9621 "rc": {
9622 "version": "1.2.8",
9623 "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
9624 "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
9625 "dev": true,
9626 "requires": {
9627 "deep-extend": "^0.6.0",
9628 "ini": "~1.3.0",
9629 "minimist": "^1.2.0",
9630 "strip-json-comments": "~2.0.1"
9631 }
9632 },
9633 "react": {
9634 "version": "15.6.2",
9635 "resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz",
9636 "integrity": "sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=",
9637 "requires": {
9638 "create-react-class": "^15.6.0",
9639 "fbjs": "^0.8.9",
9640 "loose-envify": "^1.1.0",
9641 "object-assign": "^4.1.0",
9642 "prop-types": "^15.5.10"
9643 }
9644 },
9645 "react-addons-css-transition-group": {
9646 "version": "15.6.2",
9647 "resolved": "https://registry.npmjs.org/react-addons-css-transition-group/-/react-addons-css-transition-group-15.6.2.tgz",
9648 "integrity": "sha1-nkN2vPQLUhfRTsaFUwgc7ksIptY=",
9649 "requires": {
9650 "react-transition-group": "^1.2.0"
9651 }
9652 },
9653 "react-dom": {
9654 "version": "15.6.2",
9655 "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.2.tgz",
9656 "integrity": "sha1-Qc+t9pO3V/rycIRDodH9WgK+9zA=",
9657 "requires": {
9658 "fbjs": "^0.8.9",
9659 "loose-envify": "^1.1.0",
9660 "object-assign": "^4.1.0",
9661 "prop-types": "^15.5.10"
9662 }
9663 },
9664 "react-dropzone": {
9665 "version": "4.3.0",
9666 "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-4.3.0.tgz",
9667 "integrity": "sha512-ULfrLaTSsd8BDa9KVAGCueuq1AN3L14dtMsGGqtP0UwYyjG4Vhf158f/ITSHuSPYkZXbvfcIiOlZsH+e3QWm+Q==",
9668 "requires": {
9669 "attr-accept": "^1.1.3",
9670 "prop-types": "^15.5.7"
9671 }
9672 },
9673 "react-electron-web-view": {
9674 "version": "2.0.1",
9675 "resolved": "https://registry.npmjs.org/react-electron-web-view/-/react-electron-web-view-2.0.1.tgz",
9676 "integrity": "sha1-mEt7u+t341vMqSHcUBIPyPKw8n0=",
9677 "requires": {
9678 "lodash.camelcase": "^4.3.0"
9679 }
9680 },
9681 "react-intl": {
9682 "version": "2.7.1",
9683 "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.7.1.tgz",
9684 "integrity": "sha512-Ndk0i04dSplBivA0/fELd8lMvIPuRizKC+F6s1EZ6jELvRKNcx9shWa8A1UIlTQfYSbys5huWCRgmylbW0e57A==",
9685 "requires": {
9686 "hoist-non-react-statics": "^2.5.5",
9687 "intl-format-cache": "^2.0.5",
9688 "intl-messageformat": "^2.1.0",
9689 "intl-relativeformat": "^2.1.0",
9690 "invariant": "^2.1.1"
9691 }
9692 },
9693 "react-lifecycles-compat": {
9694 "version": "3.0.4",
9695 "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
9696 "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
9697 },
9698 "react-loader": {
9699 "version": "2.4.5",
9700 "resolved": "https://registry.npmjs.org/react-loader/-/react-loader-2.4.5.tgz",
9701 "integrity": "sha1-zT5VHGzQc4wcDxPwc2VPk4KL5ak=",
9702 "requires": {
9703 "create-react-class": "^15.5.2",
9704 "prop-types": "^15.5.8",
9705 "spin.js": "2.x"
9706 }
9707 },
9708 "react-motion": {
9709 "version": "0.4.8",
9710 "resolved": "https://registry.npmjs.org/react-motion/-/react-motion-0.4.8.tgz",
9711 "integrity": "sha1-I7st0nwtjgDSKeRVctEF789Ao14=",
9712 "requires": {
9713 "create-react-class": "^15.5.2",
9714 "performance-now": "^0.2.0",
9715 "prop-types": "^15.5.8",
9716 "raf": "^3.1.0"
9717 }
9718 },
9719 "react-router": {
9720 "version": "3.2.1",
9721 "resolved": "http://registry.npmjs.org/react-router/-/react-router-3.2.1.tgz",
9722 "integrity": "sha512-SXkhC0nr3G0ltzVU07IN8jYl0bB6FsrDIqlLC9dK3SITXqyTJyM7yhXlUqs89w3Nqi5OkXsfRUeHX+P874HQrg==",
9723 "requires": {
9724 "create-react-class": "^15.5.1",
9725 "history": "^3.0.0",
9726 "hoist-non-react-statics": "^2.3.1",
9727 "invariant": "^2.2.1",
9728 "loose-envify": "^1.2.0",
9729 "prop-types": "^15.5.6",
9730 "warning": "^3.0.0"
9731 }
9732 },
9733 "react-router-transition": {
9734 "version": "0.1.1",
9735 "resolved": "https://registry.npmjs.org/react-router-transition/-/react-router-transition-0.1.1.tgz",
9736 "integrity": "sha1-bMLLdHyyfk1WMsgsp1C0MSzNO9Y=",
9737 "requires": {
9738 "prop-types": "^15.5.8",
9739 "react-motion": "^0.4.8"
9740 }
9741 },
9742 "react-sortable-hoc": {
9743 "version": "0.6.8",
9744 "resolved": "https://registry.npmjs.org/react-sortable-hoc/-/react-sortable-hoc-0.6.8.tgz",
9745 "integrity": "sha512-sUUAtNdV84AKZ2o+F5lVOOFWcyWG6aGDkNFgHoieB1zFLeWLWENkix06asPS4/GhigfuRh06aZix1j3Qx8+NSQ==",
9746 "requires": {
9747 "babel-runtime": "^6.11.6",
9748 "invariant": "^2.2.1",
9749 "lodash": "^4.12.0",
9750 "prop-types": "^15.5.7"
9751 }
9752 },
9753 "react-tooltip": {
9754 "version": "3.9.0",
9755 "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-3.9.0.tgz",
9756 "integrity": "sha512-vpn738FVv2oe2LzdwUchped3WqLgZSQwrBow+ceChS1+lFEJBPjOa9KD3JH/L/s0Aorxawi3A20qBcHX7vqaag==",
9757 "requires": {
9758 "classnames": "^2.2.5",
9759 "prop-types": "^15.6.0",
9760 "sanitize-html-react": "^1.13.0"
9761 }
9762 },
9763 "react-transition-group": {
9764 "version": "1.2.1",
9765 "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-1.2.1.tgz",
9766 "integrity": "sha512-CWaL3laCmgAFdxdKbhhps+c0HRGF4c+hdM4H23+FI1QBNUyx/AMeIJGWorehPNSaKnQNOAxL7PQmqMu78CDj3Q==",
9767 "requires": {
9768 "chain-function": "^1.0.0",
9769 "dom-helpers": "^3.2.0",
9770 "loose-envify": "^1.3.1",
9771 "prop-types": "^15.5.6",
9772 "warning": "^3.0.0"
9773 }
9774 },
9775 "react-virtualized": {
9776 "version": "9.21.0",
9777 "resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.21.0.tgz",
9778 "integrity": "sha512-duKD2HvO33mqld4EtQKm9H9H0p+xce1c++2D5xn59Ma7P8VT7CprfAe5hwjd1OGkyhqzOZiTMlTal7LxjH5yBQ==",
9779 "requires": {
9780 "babel-runtime": "^6.26.0",
9781 "classnames": "^2.2.3",
9782 "dom-helpers": "^2.4.0 || ^3.0.0",
9783 "loose-envify": "^1.3.0",
9784 "prop-types": "^15.6.0",
9785 "react-lifecycles-compat": "^3.0.4"
9786 }
9787 },
9788 "read-config-file": {
9789 "version": "3.2.0",
9790 "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-3.2.0.tgz",
9791 "integrity": "sha512-i1QRc5jy4sHm9YBGb6ArA5SU1mDrc5wu2mnm3r9gPnm+LVZhBGbpTCKqAXyvV4TJHnBR3Yaaww+9b3DyRZcfww==",
9792 "dev": true,
9793 "requires": {
9794 "ajv": "^6.5.5",
9795 "ajv-keywords": "^3.2.0",
9796 "bluebird-lst": "^1.0.6",
9797 "dotenv": "^6.1.0",
9798 "dotenv-expand": "^4.2.0",
9799 "fs-extra-p": "^7.0.0",
9800 "js-yaml": "^3.12.0",
9801 "json5": "^2.1.0",
9802 "lazy-val": "^1.0.3"
9803 },
9804 "dependencies": {
9805 "ajv": {
9806 "version": "6.5.5",
9807 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz",
9808 "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==",
9809 "dev": true,
9810 "requires": {
9811 "fast-deep-equal": "^2.0.1",
9812 "fast-json-stable-stringify": "^2.0.0",
9813 "json-schema-traverse": "^0.4.1",
9814 "uri-js": "^4.2.2"
9815 }
9816 },
9817 "ajv-keywords": {
9818 "version": "3.2.0",
9819 "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz",
9820 "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=",
9821 "dev": true
9822 },
9823 "dotenv": {
9824 "version": "6.1.0",
9825 "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.1.0.tgz",
9826 "integrity": "sha512-/veDn2ztgRlB7gKmE3i9f6CmDIyXAy6d5nBq+whO9SLX+Zs1sXEgFLPi+aSuWqUuusMfbi84fT8j34fs1HaYUw==",
9827 "dev": true
9828 },
9829 "fast-deep-equal": {
9830 "version": "2.0.1",
9831 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
9832 "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
9833 "dev": true
9834 },
9835 "json-schema-traverse": {
9836 "version": "0.4.1",
9837 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
9838 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
9839 "dev": true
9840 },
9841 "json5": {
9842 "version": "2.1.0",
9843 "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz",
9844 "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==",
9845 "dev": true,
9846 "requires": {
9847 "minimist": "^1.2.0"
9848 }
9849 }
9850 }
9851 },
9852 "read-pkg": {
9853 "version": "1.1.0",
9854 "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
9855 "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
9856 "dev": true,
9857 "requires": {
9858 "load-json-file": "^1.0.0",
9859 "normalize-package-data": "^2.3.2",
9860 "path-type": "^1.0.0"
9861 }
9862 },
9863 "read-pkg-up": {
9864 "version": "1.0.1",
9865 "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
9866 "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
9867 "dev": true,
9868 "requires": {
9869 "find-up": "^1.0.0",
9870 "read-pkg": "^1.0.0"
9871 }
9872 },
9873 "readable-stream": {
9874 "version": "2.3.6",
9875 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
9876 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
9877 "dev": true,
9878 "requires": {
9879 "core-util-is": "~1.0.0",
9880 "inherits": "~2.0.3",
9881 "isarray": "~1.0.0",
9882 "process-nextick-args": "~2.0.0",
9883 "safe-buffer": "~5.1.1",
9884 "string_decoder": "~1.1.1",
9885 "util-deprecate": "~1.0.1"
9886 },
9887 "dependencies": {
9888 "process-nextick-args": {
9889 "version": "2.0.0",
9890 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
9891 "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
9892 "dev": true
9893 }
9894 }
9895 },
9896 "readdirp": {
9897 "version": "2.2.1",
9898 "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
9899 "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
9900 "dev": true,
9901 "requires": {
9902 "graceful-fs": "^4.1.11",
9903 "micromatch": "^3.1.10",
9904 "readable-stream": "^2.0.2"
9905 }
9906 },
9907 "rechoir": {
9908 "version": "0.6.2",
9909 "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
9910 "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
9911 "requires": {
9912 "resolve": "^1.1.6"
9913 }
9914 },
9915 "redent": {
9916 "version": "1.0.0",
9917 "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
9918 "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
9919 "dev": true,
9920 "requires": {
9921 "indent-string": "^2.1.0",
9922 "strip-indent": "^1.0.1"
9923 }
9924 },
9925 "regenerate": {
9926 "version": "1.4.0",
9927 "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
9928 "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
9929 "dev": true
9930 },
9931 "regenerate-unicode-properties": {
9932 "version": "7.0.0",
9933 "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz",
9934 "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==",
9935 "dev": true,
9936 "requires": {
9937 "regenerate": "^1.4.0"
9938 }
9939 },
9940 "regenerator-runtime": {
9941 "version": "0.11.1",
9942 "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
9943 "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
9944 },
9945 "regenerator-transform": {
9946 "version": "0.13.3",
9947 "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.3.tgz",
9948 "integrity": "sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA==",
9949 "dev": true,
9950 "requires": {
9951 "private": "^0.1.6"
9952 }
9953 },
9954 "regex-cache": {
9955 "version": "0.4.4",
9956 "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
9957 "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
9958 "requires": {
9959 "is-equal-shallow": "^0.1.3"
9960 }
9961 },
9962 "regex-not": {
9963 "version": "1.0.2",
9964 "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
9965 "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
9966 "requires": {
9967 "extend-shallow": "^3.0.2",
9968 "safe-regex": "^1.1.0"
9969 }
9970 },
9971 "regexp-quote": {
9972 "version": "0.0.0",
9973 "resolved": "https://registry.npmjs.org/regexp-quote/-/regexp-quote-0.0.0.tgz",
9974 "integrity": "sha1-Hg9GUMhi3L/tVP1CsUjpuxch/PI="
9975 },
9976 "regexpp": {
9977 "version": "1.1.0",
9978 "resolved": "http://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz",
9979 "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==",
9980 "dev": true
9981 },
9982 "regexpu-core": {
9983 "version": "4.2.0",
9984 "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.2.0.tgz",
9985 "integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==",
9986 "dev": true,
9987 "requires": {
9988 "regenerate": "^1.4.0",
9989 "regenerate-unicode-properties": "^7.0.0",
9990 "regjsgen": "^0.4.0",
9991 "regjsparser": "^0.3.0",
9992 "unicode-match-property-ecmascript": "^1.0.4",
9993 "unicode-match-property-value-ecmascript": "^1.0.2"
9994 }
9995 },
9996 "registry-auth-token": {
9997 "version": "3.3.2",
9998 "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz",
9999 "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==",
10000 "dev": true,
10001 "requires": {
10002 "rc": "^1.1.6",
10003 "safe-buffer": "^5.0.1"
10004 }
10005 },
10006 "registry-url": {
10007 "version": "3.1.0",
10008 "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
10009 "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
10010 "dev": true,
10011 "requires": {
10012 "rc": "^1.0.1"
10013 }
10014 },
10015 "regjsgen": {
10016 "version": "0.4.0",
10017 "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.4.0.tgz",
10018 "integrity": "sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA==",
10019 "dev": true
10020 },
10021 "regjsparser": {
10022 "version": "0.3.0",
10023 "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.3.0.tgz",
10024 "integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==",
10025 "dev": true,
10026 "requires": {
10027 "jsesc": "~0.5.0"
10028 },
10029 "dependencies": {
10030 "jsesc": {
10031 "version": "0.5.0",
10032 "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
10033 "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
10034 "dev": true
10035 }
10036 }
10037 },
10038 "remove-bom-buffer": {
10039 "version": "3.0.0",
10040 "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz",
10041 "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==",
10042 "dev": true,
10043 "requires": {
10044 "is-buffer": "^1.1.5",
10045 "is-utf8": "^0.2.1"
10046 }
10047 },
10048 "remove-bom-stream": {
10049 "version": "1.2.0",
10050 "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz",
10051 "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=",
10052 "dev": true,
10053 "requires": {
10054 "remove-bom-buffer": "^3.0.0",
10055 "safe-buffer": "^5.1.0",
10056 "through2": "^2.0.3"
10057 }
10058 },
10059 "remove-trailing-separator": {
10060 "version": "1.1.0",
10061 "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
10062 "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
10063 },
10064 "repeat-element": {
10065 "version": "1.1.3",
10066 "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
10067 "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
10068 },
10069 "repeat-string": {
10070 "version": "1.6.1",
10071 "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
10072 "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
10073 },
10074 "repeating": {
10075 "version": "2.0.1",
10076 "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
10077 "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
10078 "dev": true,
10079 "requires": {
10080 "is-finite": "^1.0.0"
10081 }
10082 },
10083 "replace-ext": {
10084 "version": "1.0.0",
10085 "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
10086 "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
10087 "dev": true
10088 },
10089 "replace-homedir": {
10090 "version": "1.0.0",
10091 "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz",
10092 "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=",
10093 "dev": true,
10094 "requires": {
10095 "homedir-polyfill": "^1.0.1",
10096 "is-absolute": "^1.0.0",
10097 "remove-trailing-separator": "^1.1.0"
10098 }
10099 },
10100 "request": {
10101 "version": "2.88.0",
10102 "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
10103 "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
10104 "dev": true,
10105 "requires": {
10106 "aws-sign2": "~0.7.0",
10107 "aws4": "^1.8.0",
10108 "caseless": "~0.12.0",
10109 "combined-stream": "~1.0.6",
10110 "extend": "~3.0.2",
10111 "forever-agent": "~0.6.1",
10112 "form-data": "~2.3.2",
10113 "har-validator": "~5.1.0",
10114 "http-signature": "~1.2.0",
10115 "is-typedarray": "~1.0.0",
10116 "isstream": "~0.1.2",
10117 "json-stringify-safe": "~5.0.1",
10118 "mime-types": "~2.1.19",
10119 "oauth-sign": "~0.9.0",
10120 "performance-now": "^2.1.0",
10121 "qs": "~6.5.2",
10122 "safe-buffer": "^5.1.2",
10123 "tough-cookie": "~2.4.3",
10124 "tunnel-agent": "^0.6.0",
10125 "uuid": "^3.3.2"
10126 },
10127 "dependencies": {
10128 "performance-now": {
10129 "version": "2.1.0",
10130 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
10131 "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
10132 "dev": true
10133 }
10134 }
10135 },
10136 "require-directory": {
10137 "version": "2.1.1",
10138 "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
10139 "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
10140 "dev": true
10141 },
10142 "require-main-filename": {
10143 "version": "1.0.1",
10144 "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
10145 "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
10146 "dev": true
10147 },
10148 "require-uncached": {
10149 "version": "1.0.3",
10150 "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
10151 "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
10152 "dev": true,
10153 "requires": {
10154 "caller-path": "^0.1.0",
10155 "resolve-from": "^1.0.0"
10156 }
10157 },
10158 "resolve": {
10159 "version": "1.8.1",
10160 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
10161 "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
10162 "requires": {
10163 "path-parse": "^1.0.5"
10164 }
10165 },
10166 "resolve-dir": {
10167 "version": "1.0.1",
10168 "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
10169 "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
10170 "requires": {
10171 "expand-tilde": "^2.0.0",
10172 "global-modules": "^1.0.0"
10173 }
10174 },
10175 "resolve-from": {
10176 "version": "1.0.1",
10177 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
10178 "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
10179 "dev": true
10180 },
10181 "resolve-options": {
10182 "version": "1.1.0",
10183 "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz",
10184 "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=",
10185 "dev": true,
10186 "requires": {
10187 "value-or-function": "^3.0.0"
10188 }
10189 },
10190 "resolve-url": {
10191 "version": "0.2.1",
10192 "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
10193 "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
10194 },
10195 "restore-cursor": {
10196 "version": "2.0.0",
10197 "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
10198 "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
10199 "dev": true,
10200 "requires": {
10201 "onetime": "^2.0.0",
10202 "signal-exit": "^3.0.2"
10203 }
10204 },
10205 "ret": {
10206 "version": "0.1.15",
10207 "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
10208 "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
10209 },
10210 "right-pad": {
10211 "version": "1.0.1",
10212 "resolved": "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz",
10213 "integrity": "sha1-jKCMLLtbVedNr6lr9/0aJ9VoyNA=",
10214 "dev": true
10215 },
10216 "rimraf": {
10217 "version": "2.6.2",
10218 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
10219 "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
10220 "requires": {
10221 "glob": "^7.0.5"
10222 }
10223 },
10224 "route-parser": {
10225 "version": "0.0.5",
10226 "resolved": "https://registry.npmjs.org/route-parser/-/route-parser-0.0.5.tgz",
10227 "integrity": "sha1-fR0J0zXkkJQDHqFpkaSnmwG74fQ="
10228 },
10229 "run-async": {
10230 "version": "2.3.0",
10231 "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
10232 "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
10233 "dev": true,
10234 "requires": {
10235 "is-promise": "^2.1.0"
10236 }
10237 },
10238 "run-node": {
10239 "version": "1.0.0",
10240 "resolved": "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz",
10241 "integrity": "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==",
10242 "dev": true
10243 },
10244 "rx-lite": {
10245 "version": "4.0.8",
10246 "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
10247 "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
10248 "dev": true
10249 },
10250 "rx-lite-aggregates": {
10251 "version": "4.0.8",
10252 "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
10253 "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
10254 "dev": true,
10255 "requires": {
10256 "rx-lite": "*"
10257 }
10258 },
10259 "rxjs": {
10260 "version": "5.5.12",
10261 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz",
10262 "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==",
10263 "requires": {
10264 "symbol-observable": "1.0.1"
10265 }
10266 },
10267 "rxjs-serial-subscription": {
10268 "version": "0.1.1",
10269 "resolved": "https://registry.npmjs.org/rxjs-serial-subscription/-/rxjs-serial-subscription-0.1.1.tgz",
10270 "integrity": "sha1-pCsdsL8QlLCSMRkeJ3jKP8+e0Uc=",
10271 "requires": {
10272 "rxjs": "^5.0.0-beta.12"
10273 }
10274 },
10275 "safe-buffer": {
10276 "version": "5.1.2",
10277 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
10278 "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
10279 },
10280 "safe-regex": {
10281 "version": "1.1.0",
10282 "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
10283 "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
10284 "requires": {
10285 "ret": "~0.1.10"
10286 }
10287 },
10288 "safer-buffer": {
10289 "version": "2.1.2",
10290 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
10291 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
10292 },
10293 "sanitize-filename": {
10294 "version": "1.6.1",
10295 "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.1.tgz",
10296 "integrity": "sha1-YS2hyWRz+gLczaktzVtKsWSmdyo=",
10297 "dev": true,
10298 "requires": {
10299 "truncate-utf8-bytes": "^1.0.0"
10300 }
10301 },
10302 "sanitize-html-react": {
10303 "version": "1.13.0",
10304 "resolved": "https://registry.npmjs.org/sanitize-html-react/-/sanitize-html-react-1.13.0.tgz",
10305 "integrity": "sha1-51e5rbryyKdi89Lf9wE4g44FQgo=",
10306 "requires": {
10307 "htmlparser2": "^3.9.0",
10308 "regexp-quote": "0.0.0",
10309 "xtend": "^4.0.0"
10310 }
10311 },
10312 "sass-graph": {
10313 "version": "2.2.4",
10314 "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
10315 "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
10316 "dev": true,
10317 "requires": {
10318 "glob": "^7.0.0",
10319 "lodash": "^4.0.0",
10320 "scss-tokenizer": "^0.2.3",
10321 "yargs": "^7.0.0"
10322 }
10323 },
10324 "sax": {
10325 "version": "1.2.4",
10326 "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
10327 "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
10328 },
10329 "scss-tokenizer": {
10330 "version": "0.2.3",
10331 "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
10332 "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
10333 "dev": true,
10334 "requires": {
10335 "js-base64": "^2.1.8",
10336 "source-map": "^0.4.2"
10337 },
10338 "dependencies": {
10339 "source-map": {
10340 "version": "0.4.4",
10341 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
10342 "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
10343 "dev": true,
10344 "requires": {
10345 "amdefine": ">=0.0.4"
10346 }
10347 }
10348 }
10349 },
10350 "semver": {
10351 "version": "5.6.0",
10352 "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
10353 "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg=="
10354 },
10355 "semver-compare": {
10356 "version": "1.0.0",
10357 "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
10358 "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
10359 "dev": true
10360 },
10361 "semver-diff": {
10362 "version": "2.1.0",
10363 "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
10364 "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
10365 "dev": true,
10366 "requires": {
10367 "semver": "^5.0.3"
10368 }
10369 },
10370 "semver-greatest-satisfied-range": {
10371 "version": "1.1.0",
10372 "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz",
10373 "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=",
10374 "requires": {
10375 "sver-compat": "^1.5.0"
10376 }
10377 },
10378 "send": {
10379 "version": "0.8.5",
10380 "resolved": "https://registry.npmjs.org/send/-/send-0.8.5.tgz",
10381 "integrity": "sha1-N/cIIW5vUMF150xp/sU0hOL9gsc=",
10382 "dev": true,
10383 "requires": {
10384 "debug": "1.0.4",
10385 "depd": "0.4.4",
10386 "destroy": "1.0.3",
10387 "escape-html": "1.0.1",
10388 "fresh": "0.2.2",
10389 "mime": "1.2.11",
10390 "ms": "0.6.2",
10391 "on-finished": "2.1.0",
10392 "range-parser": "~1.0.0"
10393 },
10394 "dependencies": {
10395 "debug": {
10396 "version": "1.0.4",
10397 "resolved": "http://registry.npmjs.org/debug/-/debug-1.0.4.tgz",
10398 "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=",
10399 "dev": true,
10400 "requires": {
10401 "ms": "0.6.2"
10402 }
10403 },
10404 "mime": {
10405 "version": "1.2.11",
10406 "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz",
10407 "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=",
10408 "dev": true
10409 },
10410 "ms": {
10411 "version": "0.6.2",
10412 "resolved": "http://registry.npmjs.org/ms/-/ms-0.6.2.tgz",
10413 "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=",
10414 "dev": true
10415 }
10416 }
10417 },
10418 "serve-index": {
10419 "version": "1.1.6",
10420 "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.1.6.tgz",
10421 "integrity": "sha1-t1gxj+eBYoOD9mrIDdRHcS6neB8=",
10422 "dev": true,
10423 "requires": {
10424 "accepts": "~1.0.7",
10425 "batch": "0.5.1",
10426 "parseurl": "~1.3.0"
10427 }
10428 },
10429 "serve-static": {
10430 "version": "1.5.4",
10431 "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.5.4.tgz",
10432 "integrity": "sha1-gZ+zeuRr0C3VILd/z3/Y9REvl4I=",
10433 "dev": true,
10434 "requires": {
10435 "escape-html": "1.0.1",
10436 "parseurl": "~1.3.0",
10437 "send": "0.8.5",
10438 "utils-merge": "1.0.0"
10439 }
10440 },
10441 "set-blocking": {
10442 "version": "2.0.0",
10443 "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
10444 "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
10445 "dev": true
10446 },
10447 "set-value": {
10448 "version": "2.0.0",
10449 "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
10450 "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
10451 "requires": {
10452 "extend-shallow": "^2.0.1",
10453 "is-extendable": "^0.1.1",
10454 "is-plain-object": "^2.0.3",
10455 "split-string": "^3.0.1"
10456 },
10457 "dependencies": {
10458 "extend-shallow": {
10459 "version": "2.0.1",
10460 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
10461 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
10462 "requires": {
10463 "is-extendable": "^0.1.0"
10464 }
10465 }
10466 }
10467 },
10468 "setimmediate": {
10469 "version": "1.0.5",
10470 "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
10471 "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
10472 },
10473 "shebang-command": {
10474 "version": "1.2.0",
10475 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
10476 "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
10477 "dev": true,
10478 "requires": {
10479 "shebang-regex": "^1.0.0"
10480 }
10481 },
10482 "shebang-regex": {
10483 "version": "1.0.0",
10484 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
10485 "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
10486 "dev": true
10487 },
10488 "sigmund": {
10489 "version": "1.0.1",
10490 "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
10491 "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
10492 "dev": true
10493 },
10494 "signal-exit": {
10495 "version": "3.0.2",
10496 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
10497 "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
10498 "dev": true
10499 },
10500 "single-line-log": {
10501 "version": "1.1.2",
10502 "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz",
10503 "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=",
10504 "dev": true,
10505 "requires": {
10506 "string-width": "^1.0.1"
10507 }
10508 },
10509 "slash": {
10510 "version": "2.0.0",
10511 "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
10512 "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
10513 "dev": true
10514 },
10515 "slice-ansi": {
10516 "version": "1.0.0",
10517 "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
10518 "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
10519 "dev": true,
10520 "requires": {
10521 "is-fullwidth-code-point": "^2.0.0"
10522 },
10523 "dependencies": {
10524 "is-fullwidth-code-point": {
10525 "version": "2.0.0",
10526 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
10527 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
10528 "dev": true
10529 }
10530 }
10531 },
10532 "smoothscroll-polyfill": {
10533 "version": "0.3.6",
10534 "resolved": "https://registry.npmjs.org/smoothscroll-polyfill/-/smoothscroll-polyfill-0.3.6.tgz",
10535 "integrity": "sha1-SSvoRRlRV83C/FKaldieenFQkXI="
10536 },
10537 "snapdragon": {
10538 "version": "0.8.2",
10539 "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
10540 "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
10541 "requires": {
10542 "base": "^0.11.1",
10543 "debug": "^2.2.0",
10544 "define-property": "^0.2.5",
10545 "extend-shallow": "^2.0.1",
10546 "map-cache": "^0.2.2",
10547 "source-map": "^0.5.6",
10548 "source-map-resolve": "^0.5.0",
10549 "use": "^3.1.0"
10550 },
10551 "dependencies": {
10552 "define-property": {
10553 "version": "0.2.5",
10554 "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
10555 "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
10556 "requires": {
10557 "is-descriptor": "^0.1.0"
10558 }
10559 },
10560 "extend-shallow": {
10561 "version": "2.0.1",
10562 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
10563 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
10564 "requires": {
10565 "is-extendable": "^0.1.0"
10566 }
10567 }
10568 }
10569 },
10570 "snapdragon-node": {
10571 "version": "2.1.1",
10572 "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
10573 "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
10574 "requires": {
10575 "define-property": "^1.0.0",
10576 "isobject": "^3.0.0",
10577 "snapdragon-util": "^3.0.1"
10578 },
10579 "dependencies": {
10580 "define-property": {
10581 "version": "1.0.0",
10582 "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
10583 "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
10584 "requires": {
10585 "is-descriptor": "^1.0.0"
10586 }
10587 },
10588 "is-accessor-descriptor": {
10589 "version": "1.0.0",
10590 "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
10591 "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
10592 "requires": {
10593 "kind-of": "^6.0.0"
10594 }
10595 },
10596 "is-data-descriptor": {
10597 "version": "1.0.0",
10598 "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
10599 "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
10600 "requires": {
10601 "kind-of": "^6.0.0"
10602 }
10603 },
10604 "is-descriptor": {
10605 "version": "1.0.2",
10606 "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
10607 "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
10608 "requires": {
10609 "is-accessor-descriptor": "^1.0.0",
10610 "is-data-descriptor": "^1.0.0",
10611 "kind-of": "^6.0.2"
10612 }
10613 }
10614 }
10615 },
10616 "snapdragon-util": {
10617 "version": "3.0.1",
10618 "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
10619 "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
10620 "requires": {
10621 "kind-of": "^3.2.0"
10622 },
10623 "dependencies": {
10624 "kind-of": {
10625 "version": "3.2.2",
10626 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
10627 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
10628 "requires": {
10629 "is-buffer": "^1.1.5"
10630 }
10631 }
10632 }
10633 },
10634 "socket.io": {
10635 "version": "1.7.4",
10636 "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.4.tgz",
10637 "integrity": "sha1-L37O3DORvy1cc+KR/iM+bjTU3QA=",
10638 "dev": true,
10639 "requires": {
10640 "debug": "2.3.3",
10641 "engine.io": "~1.8.4",
10642 "has-binary": "0.1.7",
10643 "object-assign": "4.1.0",
10644 "socket.io-adapter": "0.5.0",
10645 "socket.io-client": "1.7.4",
10646 "socket.io-parser": "2.3.1"
10647 },
10648 "dependencies": {
10649 "debug": {
10650 "version": "2.3.3",
10651 "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
10652 "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
10653 "dev": true,
10654 "requires": {
10655 "ms": "0.7.2"
10656 }
10657 },
10658 "ms": {
10659 "version": "0.7.2",
10660 "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
10661 "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
10662 "dev": true
10663 },
10664 "object-assign": {
10665 "version": "4.1.0",
10666 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
10667 "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
10668 "dev": true
10669 }
10670 }
10671 },
10672 "socket.io-adapter": {
10673 "version": "0.5.0",
10674 "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz",
10675 "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=",
10676 "dev": true,
10677 "requires": {
10678 "debug": "2.3.3",
10679 "socket.io-parser": "2.3.1"
10680 },
10681 "dependencies": {
10682 "debug": {
10683 "version": "2.3.3",
10684 "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
10685 "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
10686 "dev": true,
10687 "requires": {
10688 "ms": "0.7.2"
10689 }
10690 },
10691 "ms": {
10692 "version": "0.7.2",
10693 "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
10694 "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
10695 "dev": true
10696 }
10697 }
10698 },
10699 "socket.io-client": {
10700 "version": "1.7.4",
10701 "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.4.tgz",
10702 "integrity": "sha1-7J+CA1btme9tNX8HVtZIcXvdQoE=",
10703 "dev": true,
10704 "requires": {
10705 "backo2": "1.0.2",
10706 "component-bind": "1.0.0",
10707 "component-emitter": "1.2.1",
10708 "debug": "2.3.3",
10709 "engine.io-client": "~1.8.4",
10710 "has-binary": "0.1.7",
10711 "indexof": "0.0.1",
10712 "object-component": "0.0.3",
10713 "parseuri": "0.0.5",
10714 "socket.io-parser": "2.3.1",
10715 "to-array": "0.1.4"
10716 },
10717 "dependencies": {
10718 "debug": {
10719 "version": "2.3.3",
10720 "resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
10721 "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
10722 "dev": true,
10723 "requires": {
10724 "ms": "0.7.2"
10725 }
10726 },
10727 "ms": {
10728 "version": "0.7.2",
10729 "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
10730 "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
10731 "dev": true
10732 }
10733 }
10734 },
10735 "socket.io-parser": {
10736 "version": "2.3.1",
10737 "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz",
10738 "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=",
10739 "dev": true,
10740 "requires": {
10741 "component-emitter": "1.1.2",
10742 "debug": "2.2.0",
10743 "isarray": "0.0.1",
10744 "json3": "3.3.2"
10745 },
10746 "dependencies": {
10747 "component-emitter": {
10748 "version": "1.1.2",
10749 "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz",
10750 "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=",
10751 "dev": true
10752 },
10753 "debug": {
10754 "version": "2.2.0",
10755 "resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
10756 "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
10757 "dev": true,
10758 "requires": {
10759 "ms": "0.7.1"
10760 }
10761 },
10762 "isarray": {
10763 "version": "0.0.1",
10764 "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
10765 "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
10766 "dev": true
10767 },
10768 "ms": {
10769 "version": "0.7.1",
10770 "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
10771 "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
10772 "dev": true
10773 }
10774 }
10775 },
10776 "sort-keys": {
10777 "version": "1.1.2",
10778 "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
10779 "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
10780 "requires": {
10781 "is-plain-obj": "^1.0.0"
10782 }
10783 },
10784 "source-map": {
10785 "version": "0.5.7",
10786 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
10787 "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
10788 },
10789 "source-map-resolve": {
10790 "version": "0.5.2",
10791 "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
10792 "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
10793 "requires": {
10794 "atob": "^2.1.1",
10795 "decode-uri-component": "^0.2.0",
10796 "resolve-url": "^0.2.1",
10797 "source-map-url": "^0.4.0",
10798 "urix": "^0.1.0"
10799 }
10800 },
10801 "source-map-support": {
10802 "version": "0.5.9",
10803 "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz",
10804 "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
10805 "requires": {
10806 "buffer-from": "^1.0.0",
10807 "source-map": "^0.6.0"
10808 },
10809 "dependencies": {
10810 "source-map": {
10811 "version": "0.6.1",
10812 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
10813 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
10814 }
10815 }
10816 },
10817 "source-map-url": {
10818 "version": "0.4.0",
10819 "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
10820 "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
10821 },
10822 "sparkles": {
10823 "version": "1.0.1",
10824 "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz",
10825 "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw=="
10826 },
10827 "spawn-command": {
10828 "version": "0.0.2-1",
10829 "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz",
10830 "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=",
10831 "dev": true
10832 },
10833 "spawn-rx": {
10834 "version": "2.0.12",
10835 "resolved": "https://registry.npmjs.org/spawn-rx/-/spawn-rx-2.0.12.tgz",
10836 "integrity": "sha512-gOPXiQQFQ9lTOLuys0iMn3jfxxv9c7zzwhbYLOEbQGvEShHVJ5sSR1oD3Daj88os7jKArDYT7rbOKdvNhe7iEg==",
10837 "requires": {
10838 "debug": "^2.5.1",
10839 "lodash.assign": "^4.2.0",
10840 "rxjs": "^5.1.1"
10841 }
10842 },
10843 "spdx-correct": {
10844 "version": "3.0.2",
10845 "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz",
10846 "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==",
10847 "dev": true,
10848 "requires": {
10849 "spdx-expression-parse": "^3.0.0",
10850 "spdx-license-ids": "^3.0.0"
10851 }
10852 },
10853 "spdx-exceptions": {
10854 "version": "2.2.0",
10855 "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
10856 "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
10857 "dev": true
10858 },
10859 "spdx-expression-parse": {
10860 "version": "3.0.0",
10861 "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
10862 "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
10863 "dev": true,
10864 "requires": {
10865 "spdx-exceptions": "^2.1.0",
10866 "spdx-license-ids": "^3.0.0"
10867 }
10868 },
10869 "spdx-license-ids": {
10870 "version": "3.0.1",
10871 "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz",
10872 "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==",
10873 "dev": true
10874 },
10875 "speedometer": {
10876 "version": "0.1.4",
10877 "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz",
10878 "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=",
10879 "dev": true
10880 },
10881 "spin.js": {
10882 "version": "2.3.2",
10883 "resolved": "https://registry.npmjs.org/spin.js/-/spin.js-2.3.2.tgz",
10884 "integrity": "sha1-bKpW1SBnNFD9XPvGlx5tB3LDeho="
10885 },
10886 "split-string": {
10887 "version": "3.1.0",
10888 "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
10889 "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
10890 "requires": {
10891 "extend-shallow": "^3.0.0"
10892 }
10893 },
10894 "sprintf-js": {
10895 "version": "1.0.3",
10896 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
10897 "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
10898 },
10899 "sshpk": {
10900 "version": "1.15.1",
10901 "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.1.tgz",
10902 "integrity": "sha512-mSdgNUaidk+dRU5MhYtN9zebdzF2iG0cNPWy8HG+W8y+fT1JnSkh0fzzpjOa0L7P8i1Rscz38t0h4gPcKz43xA==",
10903 "dev": true,
10904 "requires": {
10905 "asn1": "~0.2.3",
10906 "assert-plus": "^1.0.0",
10907 "bcrypt-pbkdf": "^1.0.0",
10908 "dashdash": "^1.12.0",
10909 "ecc-jsbn": "~0.1.1",
10910 "getpass": "^0.1.1",
10911 "jsbn": "~0.1.0",
10912 "safer-buffer": "^2.0.2",
10913 "tweetnacl": "~0.14.0"
10914 }
10915 },
10916 "stack-trace": {
10917 "version": "0.0.10",
10918 "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
10919 "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
10920 "dev": true
10921 },
10922 "stat-mode": {
10923 "version": "0.2.2",
10924 "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz",
10925 "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=",
10926 "dev": true
10927 },
10928 "static-extend": {
10929 "version": "0.1.2",
10930 "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
10931 "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
10932 "requires": {
10933 "define-property": "^0.2.5",
10934 "object-copy": "^0.1.0"
10935 },
10936 "dependencies": {
10937 "define-property": {
10938 "version": "0.2.5",
10939 "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
10940 "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
10941 "requires": {
10942 "is-descriptor": "^0.1.0"
10943 }
10944 }
10945 }
10946 },
10947 "stdout-stream": {
10948 "version": "1.4.1",
10949 "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
10950 "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
10951 "dev": true,
10952 "requires": {
10953 "readable-stream": "^2.0.1"
10954 }
10955 },
10956 "stream-exhaust": {
10957 "version": "1.0.2",
10958 "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz",
10959 "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==",
10960 "dev": true
10961 },
10962 "stream-shift": {
10963 "version": "1.0.0",
10964 "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
10965 "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
10966 "dev": true
10967 },
10968 "strict-uri-encode": {
10969 "version": "1.1.0",
10970 "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
10971 "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
10972 },
10973 "string-width": {
10974 "version": "1.0.2",
10975 "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
10976 "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
10977 "requires": {
10978 "code-point-at": "^1.0.0",
10979 "is-fullwidth-code-point": "^1.0.0",
10980 "strip-ansi": "^3.0.0"
10981 }
10982 },
10983 "string_decoder": {
10984 "version": "1.1.1",
10985 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
10986 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
10987 "requires": {
10988 "safe-buffer": "~5.1.0"
10989 }
10990 },
10991 "strip-ansi": {
10992 "version": "3.0.1",
10993 "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
10994 "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
10995 "requires": {
10996 "ansi-regex": "^2.0.0"
10997 }
10998 },
10999 "strip-bom": {
11000 "version": "2.0.0",
11001 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
11002 "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
11003 "dev": true,
11004 "requires": {
11005 "is-utf8": "^0.2.0"
11006 }
11007 },
11008 "strip-eof": {
11009 "version": "1.0.0",
11010 "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
11011 "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
11012 "dev": true
11013 },
11014 "strip-indent": {
11015 "version": "1.0.1",
11016 "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
11017 "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
11018 "dev": true,
11019 "requires": {
11020 "get-stdin": "^4.0.1"
11021 }
11022 },
11023 "strip-json-comments": {
11024 "version": "2.0.1",
11025 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
11026 "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
11027 "dev": true
11028 },
11029 "supports-color": {
11030 "version": "2.0.0",
11031 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
11032 "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
11033 },
11034 "sver-compat": {
11035 "version": "1.5.0",
11036 "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz",
11037 "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=",
11038 "requires": {
11039 "es6-iterator": "^2.0.1",
11040 "es6-symbol": "^3.1.1"
11041 }
11042 },
11043 "symbol-observable": {
11044 "version": "1.0.1",
11045 "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
11046 "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ="
11047 },
11048 "table": {
11049 "version": "4.0.2",
11050 "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
11051 "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
11052 "dev": true,
11053 "requires": {
11054 "ajv": "^5.2.3",
11055 "ajv-keywords": "^2.1.0",
11056 "chalk": "^2.1.0",
11057 "lodash": "^4.17.4",
11058 "slice-ansi": "1.0.0",
11059 "string-width": "^2.1.1"
11060 },
11061 "dependencies": {
11062 "ansi-regex": {
11063 "version": "3.0.0",
11064 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
11065 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
11066 "dev": true
11067 },
11068 "ansi-styles": {
11069 "version": "3.2.1",
11070 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
11071 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
11072 "dev": true,
11073 "requires": {
11074 "color-convert": "^1.9.0"
11075 }
11076 },
11077 "chalk": {
11078 "version": "2.4.1",
11079 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
11080 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
11081 "dev": true,
11082 "requires": {
11083 "ansi-styles": "^3.2.1",
11084 "escape-string-regexp": "^1.0.5",
11085 "supports-color": "^5.3.0"
11086 }
11087 },
11088 "is-fullwidth-code-point": {
11089 "version": "2.0.0",
11090 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
11091 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
11092 "dev": true
11093 },
11094 "string-width": {
11095 "version": "2.1.1",
11096 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
11097 "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
11098 "dev": true,
11099 "requires": {
11100 "is-fullwidth-code-point": "^2.0.0",
11101 "strip-ansi": "^4.0.0"
11102 }
11103 },
11104 "strip-ansi": {
11105 "version": "4.0.0",
11106 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
11107 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
11108 "dev": true,
11109 "requires": {
11110 "ansi-regex": "^3.0.0"
11111 }
11112 },
11113 "supports-color": {
11114 "version": "5.5.0",
11115 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
11116 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
11117 "dev": true,
11118 "requires": {
11119 "has-flag": "^3.0.0"
11120 }
11121 }
11122 }
11123 },
11124 "tar": {
11125 "version": "4.4.6",
11126 "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.6.tgz",
11127 "integrity": "sha512-tMkTnh9EdzxyfW+6GK6fCahagXsnYk6kE6S9Gr9pjVdys769+laCTbodXDhPAjzVtEBazRgP0gYqOjnk9dQzLg==",
11128 "requires": {
11129 "chownr": "^1.0.1",
11130 "fs-minipass": "^1.2.5",
11131 "minipass": "^2.3.3",
11132 "minizlib": "^1.1.0",
11133 "mkdirp": "^0.5.0",
11134 "safe-buffer": "^5.1.2",
11135 "yallist": "^3.0.2"
11136 },
11137 "dependencies": {
11138 "yallist": {
11139 "version": "3.0.2",
11140 "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz",
11141 "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k="
11142 }
11143 }
11144 },
11145 "temp-file": {
11146 "version": "3.3.2",
11147 "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.3.2.tgz",
11148 "integrity": "sha512-FGKccAW0Mux9hC/2bdUIe4bJRv4OyVo4RpVcuplFird1V/YoplIFbnPZjfzbJSf/qNvRZIRB9/4n/RkI0GziuQ==",
11149 "dev": true,
11150 "requires": {
11151 "async-exit-hook": "^2.0.1",
11152 "bluebird-lst": "^1.0.6",
11153 "fs-extra-p": "^7.0.0"
11154 }
11155 },
11156 "term-size": {
11157 "version": "1.2.0",
11158 "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
11159 "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
11160 "dev": true,
11161 "requires": {
11162 "execa": "^0.7.0"
11163 }
11164 },
11165 "text-table": {
11166 "version": "0.2.0",
11167 "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
11168 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
11169 "dev": true
11170 },
11171 "throttleit": {
11172 "version": "0.0.2",
11173 "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz",
11174 "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=",
11175 "dev": true
11176 },
11177 "through": {
11178 "version": "2.3.8",
11179 "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz",
11180 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
11181 "dev": true
11182 },
11183 "through2": {
11184 "version": "2.0.3",
11185 "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
11186 "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
11187 "dev": true,
11188 "requires": {
11189 "readable-stream": "^2.1.5",
11190 "xtend": "~4.0.1"
11191 }
11192 },
11193 "through2-filter": {
11194 "version": "2.0.0",
11195 "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz",
11196 "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=",
11197 "dev": true,
11198 "requires": {
11199 "through2": "~2.0.0",
11200 "xtend": "~4.0.0"
11201 }
11202 },
11203 "tildify": {
11204 "version": "1.2.0",
11205 "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz",
11206 "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=",
11207 "requires": {
11208 "os-homedir": "^1.0.0"
11209 }
11210 },
11211 "time-stamp": {
11212 "version": "1.1.0",
11213 "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz",
11214 "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM="
11215 },
11216 "timed-out": {
11217 "version": "4.0.1",
11218 "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
11219 "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
11220 "dev": true
11221 },
11222 "to-absolute-glob": {
11223 "version": "2.0.2",
11224 "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
11225 "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=",
11226 "dev": true,
11227 "requires": {
11228 "is-absolute": "^1.0.0",
11229 "is-negated-glob": "^1.0.0"
11230 }
11231 },
11232 "to-array": {
11233 "version": "0.1.4",
11234 "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
11235 "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=",
11236 "dev": true
11237 },
11238 "to-object-path": {
11239 "version": "0.3.0",
11240 "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
11241 "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
11242 "requires": {
11243 "kind-of": "^3.0.2"
11244 },
11245 "dependencies": {
11246 "kind-of": {
11247 "version": "3.2.2",
11248 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
11249 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
11250 "requires": {
11251 "is-buffer": "^1.1.5"
11252 }
11253 }
11254 }
11255 },
11256 "to-regex": {
11257 "version": "3.0.2",
11258 "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
11259 "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
11260 "requires": {
11261 "define-property": "^2.0.2",
11262 "extend-shallow": "^3.0.2",
11263 "regex-not": "^1.0.2",
11264 "safe-regex": "^1.1.0"
11265 }
11266 },
11267 "to-regex-range": {
11268 "version": "2.1.1",
11269 "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
11270 "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
11271 "requires": {
11272 "is-number": "^3.0.0",
11273 "repeat-string": "^1.6.1"
11274 }
11275 },
11276 "to-through": {
11277 "version": "2.0.0",
11278 "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz",
11279 "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=",
11280 "dev": true,
11281 "requires": {
11282 "through2": "^2.0.3"
11283 }
11284 },
11285 "topo": {
11286 "version": "1.1.0",
11287 "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz",
11288 "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=",
11289 "requires": {
11290 "hoek": "2.x.x"
11291 }
11292 },
11293 "tough-cookie": {
11294 "version": "2.4.3",
11295 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
11296 "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
11297 "dev": true,
11298 "requires": {
11299 "psl": "^1.1.24",
11300 "punycode": "^1.4.1"
11301 }
11302 },
11303 "tree-kill": {
11304 "version": "1.2.0",
11305 "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz",
11306 "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==",
11307 "dev": true
11308 },
11309 "trim-newlines": {
11310 "version": "1.0.0",
11311 "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
11312 "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
11313 "dev": true
11314 },
11315 "trim-right": {
11316 "version": "1.0.1",
11317 "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
11318 "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
11319 "dev": true
11320 },
11321 "true-case-path": {
11322 "version": "1.0.3",
11323 "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
11324 "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
11325 "dev": true,
11326 "requires": {
11327 "glob": "^7.1.2"
11328 }
11329 },
11330 "truncate-utf8-bytes": {
11331 "version": "1.0.2",
11332 "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
11333 "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=",
11334 "dev": true,
11335 "requires": {
11336 "utf8-byte-length": "^1.0.1"
11337 }
11338 },
11339 "tslib": {
11340 "version": "1.9.3",
11341 "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
11342 "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
11343 "dev": true
11344 },
11345 "tunnel-agent": {
11346 "version": "0.6.0",
11347 "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
11348 "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
11349 "dev": true,
11350 "requires": {
11351 "safe-buffer": "^5.0.1"
11352 }
11353 },
11354 "tweetnacl": {
11355 "version": "0.14.5",
11356 "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
11357 "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
11358 "dev": true
11359 },
11360 "type-check": {
11361 "version": "0.3.2",
11362 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
11363 "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
11364 "dev": true,
11365 "requires": {
11366 "prelude-ls": "~1.1.2"
11367 }
11368 },
11369 "typedarray": {
11370 "version": "0.0.6",
11371 "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
11372 "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
11373 "dev": true
11374 },
11375 "ua-parser-js": {
11376 "version": "0.7.18",
11377 "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz",
11378 "integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA=="
11379 },
11380 "ultron": {
11381 "version": "1.0.2",
11382 "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz",
11383 "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=",
11384 "dev": true
11385 },
11386 "unc-path-regex": {
11387 "version": "0.1.2",
11388 "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
11389 "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo="
11390 },
11391 "underscore": {
11392 "version": "1.9.1",
11393 "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
11394 "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg=="
11395 },
11396 "undertaker": {
11397 "version": "1.2.0",
11398 "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.0.tgz",
11399 "integrity": "sha1-M52kZGJS0ILcN45wgGcpl1DhG0k=",
11400 "dev": true,
11401 "requires": {
11402 "arr-flatten": "^1.0.1",
11403 "arr-map": "^2.0.0",
11404 "bach": "^1.0.0",
11405 "collection-map": "^1.0.0",
11406 "es6-weak-map": "^2.0.1",
11407 "last-run": "^1.1.0",
11408 "object.defaults": "^1.0.0",
11409 "object.reduce": "^1.0.0",
11410 "undertaker-registry": "^1.0.0"
11411 }
11412 },
11413 "undertaker-registry": {
11414 "version": "1.0.1",
11415 "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz",
11416 "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=",
11417 "dev": true
11418 },
11419 "unicode-canonical-property-names-ecmascript": {
11420 "version": "1.0.4",
11421 "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
11422 "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==",
11423 "dev": true
11424 },
11425 "unicode-match-property-ecmascript": {
11426 "version": "1.0.4",
11427 "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
11428 "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
11429 "dev": true,
11430 "requires": {
11431 "unicode-canonical-property-names-ecmascript": "^1.0.4",
11432 "unicode-property-aliases-ecmascript": "^1.0.4"
11433 }
11434 },
11435 "unicode-match-property-value-ecmascript": {
11436 "version": "1.0.2",
11437 "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz",
11438 "integrity": "sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==",
11439 "dev": true
11440 },
11441 "unicode-property-aliases-ecmascript": {
11442 "version": "1.0.4",
11443 "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz",
11444 "integrity": "sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==",
11445 "dev": true
11446 },
11447 "union-value": {
11448 "version": "1.0.0",
11449 "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
11450 "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
11451 "requires": {
11452 "arr-union": "^3.1.0",
11453 "get-value": "^2.0.6",
11454 "is-extendable": "^0.1.1",
11455 "set-value": "^0.4.3"
11456 },
11457 "dependencies": {
11458 "extend-shallow": {
11459 "version": "2.0.1",
11460 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
11461 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
11462 "requires": {
11463 "is-extendable": "^0.1.0"
11464 }
11465 },
11466 "set-value": {
11467 "version": "0.4.3",
11468 "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
11469 "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
11470 "requires": {
11471 "extend-shallow": "^2.0.1",
11472 "is-extendable": "^0.1.1",
11473 "is-plain-object": "^2.0.1",
11474 "to-object-path": "^0.3.0"
11475 }
11476 }
11477 }
11478 },
11479 "unique-stream": {
11480 "version": "2.2.1",
11481 "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz",
11482 "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=",
11483 "dev": true,
11484 "requires": {
11485 "json-stable-stringify": "^1.0.0",
11486 "through2-filter": "^2.0.0"
11487 }
11488 },
11489 "unique-string": {
11490 "version": "1.0.0",
11491 "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
11492 "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
11493 "dev": true,
11494 "requires": {
11495 "crypto-random-string": "^1.0.0"
11496 }
11497 },
11498 "universalify": {
11499 "version": "0.1.2",
11500 "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
11501 "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
11502 },
11503 "unset-value": {
11504 "version": "1.0.0",
11505 "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
11506 "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
11507 "requires": {
11508 "has-value": "^0.3.1",
11509 "isobject": "^3.0.0"
11510 },
11511 "dependencies": {
11512 "has-value": {
11513 "version": "0.3.1",
11514 "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
11515 "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
11516 "requires": {
11517 "get-value": "^2.0.3",
11518 "has-values": "^0.1.4",
11519 "isobject": "^2.0.0"
11520 },
11521 "dependencies": {
11522 "isobject": {
11523 "version": "2.1.0",
11524 "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
11525 "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
11526 "requires": {
11527 "isarray": "1.0.0"
11528 }
11529 }
11530 }
11531 },
11532 "has-values": {
11533 "version": "0.1.4",
11534 "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
11535 "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
11536 }
11537 }
11538 },
11539 "untildify": {
11540 "version": "3.0.3",
11541 "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz",
11542 "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA=="
11543 },
11544 "unzip-response": {
11545 "version": "2.0.1",
11546 "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz",
11547 "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=",
11548 "dev": true
11549 },
11550 "upath": {
11551 "version": "1.1.0",
11552 "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz",
11553 "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==",
11554 "dev": true
11555 },
11556 "update-notifier": {
11557 "version": "2.5.0",
11558 "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz",
11559 "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==",
11560 "dev": true,
11561 "requires": {
11562 "boxen": "^1.2.1",
11563 "chalk": "^2.0.1",
11564 "configstore": "^3.0.0",
11565 "import-lazy": "^2.1.0",
11566 "is-ci": "^1.0.10",
11567 "is-installed-globally": "^0.1.0",
11568 "is-npm": "^1.0.0",
11569 "latest-version": "^3.0.0",
11570 "semver-diff": "^2.0.0",
11571 "xdg-basedir": "^3.0.0"
11572 },
11573 "dependencies": {
11574 "ansi-styles": {
11575 "version": "3.2.1",
11576 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
11577 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
11578 "dev": true,
11579 "requires": {
11580 "color-convert": "^1.9.0"
11581 }
11582 },
11583 "chalk": {
11584 "version": "2.4.1",
11585 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
11586 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
11587 "dev": true,
11588 "requires": {
11589 "ansi-styles": "^3.2.1",
11590 "escape-string-regexp": "^1.0.5",
11591 "supports-color": "^5.3.0"
11592 }
11593 },
11594 "supports-color": {
11595 "version": "5.5.0",
11596 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
11597 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
11598 "dev": true,
11599 "requires": {
11600 "has-flag": "^3.0.0"
11601 }
11602 }
11603 }
11604 },
11605 "uri-js": {
11606 "version": "4.2.2",
11607 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
11608 "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
11609 "dev": true,
11610 "requires": {
11611 "punycode": "^2.1.0"
11612 },
11613 "dependencies": {
11614 "punycode": {
11615 "version": "2.1.1",
11616 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
11617 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
11618 "dev": true
11619 }
11620 }
11621 },
11622 "urix": {
11623 "version": "0.1.0",
11624 "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
11625 "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
11626 },
11627 "url-parse-lax": {
11628 "version": "1.0.0",
11629 "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
11630 "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
11631 "dev": true,
11632 "requires": {
11633 "prepend-http": "^1.0.1"
11634 }
11635 },
11636 "use": {
11637 "version": "3.1.1",
11638 "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
11639 "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
11640 },
11641 "user-home": {
11642 "version": "1.1.1",
11643 "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
11644 "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA="
11645 },
11646 "utf8-byte-length": {
11647 "version": "1.0.4",
11648 "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz",
11649 "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=",
11650 "dev": true
11651 },
11652 "util-deprecate": {
11653 "version": "1.0.2",
11654 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
11655 "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
11656 },
11657 "utils-merge": {
11658 "version": "1.0.0",
11659 "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz",
11660 "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=",
11661 "dev": true
11662 },
11663 "uuid": {
11664 "version": "3.3.2",
11665 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
11666 "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
11667 },
11668 "v8flags": {
11669 "version": "3.1.1",
11670 "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.1.tgz",
11671 "integrity": "sha512-iw/1ViSEaff8NJ3HLyEjawk/8hjJib3E7pvG4pddVXfUg1983s3VGsiClDjhK64MQVDGqc1Q8r18S4VKQZS9EQ==",
11672 "dev": true,
11673 "requires": {
11674 "homedir-polyfill": "^1.0.1"
11675 }
11676 },
11677 "validate-npm-package-license": {
11678 "version": "3.0.4",
11679 "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
11680 "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
11681 "dev": true,
11682 "requires": {
11683 "spdx-correct": "^3.0.0",
11684 "spdx-expression-parse": "^3.0.0"
11685 }
11686 },
11687 "value-or-function": {
11688 "version": "3.0.0",
11689 "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz",
11690 "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=",
11691 "dev": true
11692 },
11693 "verror": {
11694 "version": "1.10.0",
11695 "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
11696 "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
11697 "dev": true,
11698 "requires": {
11699 "assert-plus": "^1.0.0",
11700 "core-util-is": "1.0.2",
11701 "extsprintf": "^1.2.0"
11702 }
11703 },
11704 "vinyl": {
11705 "version": "2.2.0",
11706 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz",
11707 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
11708 "dev": true,
11709 "requires": {
11710 "clone": "^2.1.1",
11711 "clone-buffer": "^1.0.0",
11712 "clone-stats": "^1.0.0",
11713 "cloneable-readable": "^1.0.0",
11714 "remove-trailing-separator": "^1.0.1",
11715 "replace-ext": "^1.0.0"
11716 }
11717 },
11718 "vinyl-fs": {
11719 "version": "3.0.3",
11720 "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz",
11721 "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==",
11722 "dev": true,
11723 "requires": {
11724 "fs-mkdirp-stream": "^1.0.0",
11725 "glob-stream": "^6.1.0",
11726 "graceful-fs": "^4.0.0",
11727 "is-valid-glob": "^1.0.0",
11728 "lazystream": "^1.0.0",
11729 "lead": "^1.0.0",
11730 "object.assign": "^4.0.4",
11731 "pumpify": "^1.3.5",
11732 "readable-stream": "^2.3.3",
11733 "remove-bom-buffer": "^3.0.0",
11734 "remove-bom-stream": "^1.2.0",
11735 "resolve-options": "^1.1.0",
11736 "through2": "^2.0.0",
11737 "to-through": "^2.0.0",
11738 "value-or-function": "^3.0.0",
11739 "vinyl": "^2.0.0",
11740 "vinyl-sourcemap": "^1.1.0"
11741 }
11742 },
11743 "vinyl-sourcemap": {
11744 "version": "1.1.0",
11745 "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz",
11746 "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=",
11747 "dev": true,
11748 "requires": {
11749 "append-buffer": "^1.0.2",
11750 "convert-source-map": "^1.5.0",
11751 "graceful-fs": "^4.1.6",
11752 "normalize-path": "^2.1.1",
11753 "now-and-later": "^2.0.0",
11754 "remove-bom-buffer": "^3.0.0",
11755 "vinyl": "^2.0.0"
11756 }
11757 },
11758 "vinyl-sourcemaps-apply": {
11759 "version": "0.2.1",
11760 "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz",
11761 "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=",
11762 "dev": true,
11763 "requires": {
11764 "source-map": "^0.5.1"
11765 }
11766 },
11767 "wait-on": {
11768 "version": "3.1.0",
11769 "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-3.1.0.tgz",
11770 "integrity": "sha512-yjYwMvnOhA3PTghvzPQAmT2TSVvBMbOdBRRjMPfBD6FU5si/PkAsI8P3X5sh9ntkYjZvPQLpQRpDUyax5h4COg==",
11771 "dev": true,
11772 "requires": {
11773 "core-js": "^2.5.7",
11774 "joi": "^13.0.0",
11775 "minimist": "^1.2.0",
11776 "request": "^2.88.0",
11777 "rx": "^4.1.0"
11778 },
11779 "dependencies": {
11780 "hoek": {
11781 "version": "5.0.4",
11782 "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.4.tgz",
11783 "integrity": "sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w==",
11784 "dev": true
11785 },
11786 "isemail": {
11787 "version": "3.2.0",
11788 "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz",
11789 "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==",
11790 "dev": true,
11791 "requires": {
11792 "punycode": "2.x.x"
11793 }
11794 },
11795 "joi": {
11796 "version": "13.7.0",
11797 "resolved": "https://registry.npmjs.org/joi/-/joi-13.7.0.tgz",
11798 "integrity": "sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q==",
11799 "dev": true,
11800 "requires": {
11801 "hoek": "5.x.x",
11802 "isemail": "3.x.x",
11803 "topo": "3.x.x"
11804 }
11805 },
11806 "punycode": {
11807 "version": "2.1.1",
11808 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
11809 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
11810 "dev": true
11811 },
11812 "rx": {
11813 "version": "4.1.0",
11814 "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
11815 "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=",
11816 "dev": true
11817 },
11818 "topo": {
11819 "version": "3.0.0",
11820 "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.0.tgz",
11821 "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==",
11822 "dev": true,
11823 "requires": {
11824 "hoek": "5.x.x"
11825 }
11826 }
11827 }
11828 },
11829 "warning": {
11830 "version": "3.0.0",
11831 "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
11832 "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
11833 "requires": {
11834 "loose-envify": "^1.0.0"
11835 }
11836 },
11837 "whatwg-fetch": {
11838 "version": "3.0.0",
11839 "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz",
11840 "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q=="
11841 },
11842 "which": {
11843 "version": "1.3.1",
11844 "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
11845 "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
11846 "requires": {
11847 "isexe": "^2.0.0"
11848 }
11849 },
11850 "which-module": {
11851 "version": "1.0.0",
11852 "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
11853 "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
11854 "dev": true
11855 },
11856 "wide-align": {
11857 "version": "1.1.3",
11858 "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
11859 "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
11860 "dev": true,
11861 "requires": {
11862 "string-width": "^1.0.2 || 2"
11863 }
11864 },
11865 "widest-line": {
11866 "version": "2.0.1",
11867 "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz",
11868 "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==",
11869 "dev": true,
11870 "requires": {
11871 "string-width": "^2.1.1"
11872 },
11873 "dependencies": {
11874 "ansi-regex": {
11875 "version": "3.0.0",
11876 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
11877 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
11878 "dev": true
11879 },
11880 "is-fullwidth-code-point": {
11881 "version": "2.0.0",
11882 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
11883 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
11884 "dev": true
11885 },
11886 "string-width": {
11887 "version": "2.1.1",
11888 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
11889 "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
11890 "dev": true,
11891 "requires": {
11892 "is-fullwidth-code-point": "^2.0.0",
11893 "strip-ansi": "^4.0.0"
11894 }
11895 },
11896 "strip-ansi": {
11897 "version": "4.0.0",
11898 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
11899 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
11900 "dev": true,
11901 "requires": {
11902 "ansi-regex": "^3.0.0"
11903 }
11904 }
11905 }
11906 },
11907 "window-size": {
11908 "version": "0.1.4",
11909 "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
11910 "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY="
11911 },
11912 "windows-notification-state": {
11913 "version": "1.3.0",
11914 "resolved": "https://registry.npmjs.org/windows-notification-state/-/windows-notification-state-1.3.0.tgz",
11915 "integrity": "sha1-n3J3guysjZIKQI8QJr5vjgj9kC4=",
11916 "requires": {
11917 "bindings": "^1.2.1",
11918 "nan": "^2.4.0"
11919 }
11920 },
11921 "windows-quiet-hours": {
11922 "version": "1.2.5",
11923 "resolved": "https://registry.npmjs.org/windows-quiet-hours/-/windows-quiet-hours-1.2.5.tgz",
11924 "integrity": "sha512-0JbfFw91Ys+A0vSR0pratoJgfTwWNFLHniu59dpOg1FC5IvpPSYQIATcQqhdy41HYSCijmT7Pyv9w0I2zC0+5w==",
11925 "requires": {
11926 "bindings": "^1.3.0",
11927 "nan": "^2.7.0"
11928 }
11929 },
11930 "winreg": {
11931 "version": "1.2.2",
11932 "resolved": "https://registry.npmjs.org/winreg/-/winreg-1.2.2.tgz",
11933 "integrity": "sha1-hQmvo7ccW70RCm18YkfsZ3NsWY8="
11934 },
11935 "word-wrap": {
11936 "version": "1.2.3",
11937 "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
11938 "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
11939 "dev": true
11940 },
11941 "wordwrap": {
11942 "version": "1.0.0",
11943 "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
11944 "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
11945 "dev": true
11946 },
11947 "wrap-ansi": {
11948 "version": "2.1.0",
11949 "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
11950 "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
11951 "requires": {
11952 "string-width": "^1.0.1",
11953 "strip-ansi": "^3.0.1"
11954 }
11955 },
11956 "wrappy": {
11957 "version": "1.0.2",
11958 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
11959 "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
11960 },
11961 "wreck": {
11962 "version": "6.3.0",
11963 "resolved": "https://registry.npmjs.org/wreck/-/wreck-6.3.0.tgz",
11964 "integrity": "sha1-oTaXafB7u2LWo3gzanhx/Hc8dAs=",
11965 "requires": {
11966 "boom": "2.x.x",
11967 "hoek": "2.x.x"
11968 }
11969 },
11970 "write": {
11971 "version": "0.2.1",
11972 "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
11973 "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
11974 "dev": true,
11975 "requires": {
11976 "mkdirp": "^0.5.1"
11977 }
11978 },
11979 "write-file-atomic": {
11980 "version": "2.3.0",
11981 "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz",
11982 "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==",
11983 "dev": true,
11984 "requires": {
11985 "graceful-fs": "^4.1.11",
11986 "imurmurhash": "^0.1.4",
11987 "signal-exit": "^3.0.2"
11988 }
11989 },
11990 "ws": {
11991 "version": "1.1.5",
11992 "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz",
11993 "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==",
11994 "dev": true,
11995 "requires": {
11996 "options": ">=0.0.5",
11997 "ultron": "1.0.x"
11998 }
11999 },
12000 "wtf-8": {
12001 "version": "1.0.0",
12002 "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz",
12003 "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=",
12004 "dev": true
12005 },
12006 "xdg-basedir": {
12007 "version": "3.0.0",
12008 "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
12009 "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
12010 "dev": true
12011 },
12012 "xmlbuilder": {
12013 "version": "9.0.7",
12014 "resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
12015 "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
12016 "dev": true
12017 },
12018 "xmldom": {
12019 "version": "0.1.27",
12020 "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz",
12021 "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=",
12022 "dev": true
12023 },
12024 "xmlhttprequest": {
12025 "version": "1.8.0",
12026 "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
12027 "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw="
12028 },
12029 "xmlhttprequest-ssl": {
12030 "version": "1.5.3",
12031 "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz",
12032 "integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=",
12033 "dev": true
12034 },
12035 "xregexp": {
12036 "version": "4.0.0",
12037 "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz",
12038 "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==",
12039 "dev": true
12040 },
12041 "xtend": {
12042 "version": "4.0.1",
12043 "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
12044 "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
12045 },
12046 "y18n": {
12047 "version": "3.2.1",
12048 "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
12049 "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
12050 },
12051 "yallist": {
12052 "version": "2.1.2",
12053 "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
12054 "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
12055 },
12056 "yargs": {
12057 "version": "7.1.0",
12058 "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
12059 "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
12060 "dev": true,
12061 "requires": {
12062 "camelcase": "^3.0.0",
12063 "cliui": "^3.2.0",
12064 "decamelize": "^1.1.1",
12065 "get-caller-file": "^1.0.1",
12066 "os-locale": "^1.4.0",
12067 "read-pkg-up": "^1.0.1",
12068 "require-directory": "^2.1.1",
12069 "require-main-filename": "^1.0.1",
12070 "set-blocking": "^2.0.0",
12071 "string-width": "^1.0.2",
12072 "which-module": "^1.0.0",
12073 "y18n": "^3.2.1",
12074 "yargs-parser": "^5.0.0"
12075 }
12076 },
12077 "yargs-parser": {
12078 "version": "5.0.0",
12079 "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
12080 "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
12081 "dev": true,
12082 "requires": {
12083 "camelcase": "^3.0.0"
12084 }
12085 },
12086 "yauzl": {
12087 "version": "2.4.1",
12088 "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
12089 "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
12090 "dev": true,
12091 "requires": {
12092 "fd-slicer": "~1.0.1"
12093 }
12094 },
12095 "yeast": {
12096 "version": "0.1.2",
12097 "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
12098 "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=",
12099 "dev": true
12100 }
12101 }
12102}
diff --git a/package.json b/package.json
index a14367bf2..ee2b12e99 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.15", 5 "version": "5.0.0-beta.18",
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,35 +10,38 @@
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 "start": "electron ./build", 13 "prestart": "npm run rebuild",
14 "start:local": "cross-env LOCAL_API=1 yarn start", 14 "start": "DEBUG=Franz:* electron ./build",
15 "start:live": "cross-env LIVE_API=1 yarn start", 15 "start:local": "cross-env LOCAL_API=1 npm 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",
37 "debug-electron": "^0.0.4",
36 "du": "^0.1.0", 38 "du": "^0.1.0",
37 "electron-fetch": "^1.1.0", 39 "electron-fetch": "1.3.0",
40 "electron-react-titlebar": "0.8.1",
38 "electron-spellchecker": "^1.1.2", 41 "electron-spellchecker": "^1.1.2",
39 "electron-updater": "^2.4.3", 42 "electron-updater": "^4.0.4",
40 "electron-window-state": "^4.1.0", 43 "electron-window-state": "^4.1.0",
41 "fs-extra": "^3.0.1", 44 "fs-extra": "7.0.1",
42 "gulp-cli": "1.2.2", 45 "gulp-cli": "1.2.2",
43 "ini": "^1.3.4", 46 "ini": "^1.3.4",
44 "jshashes": "^1.0.6", 47 "jshashes": "^1.0.6",
@@ -76,24 +79,23 @@
76 "uuid": "^3.0.1" 79 "uuid": "^3.0.1"
77 }, 80 },
78 "devDependencies": { 81 "devDependencies": {
79 "babel-eslint": "^7.1.1", 82 "@adlk/misty": "^0.1.1",
80 "babel-plugin-transform-class-properties": "^6.19.0", 83 "@babel/core": "^7.0.0",
81 "babel-plugin-transform-decorators-legacy": "^1.3.4", 84 "@babel/plugin-proposal-class-properties": "^7.0.0",
82 "babel-plugin-transform-flow-strip-types": "^6.22.0", 85 "@babel/plugin-proposal-decorators": "^7.0.0",
83 "babel-preset-env": "^1.5.2", 86 "@babel/plugin-proposal-export-default-from": "^7.0.0",
84 "babel-preset-es2015": "^6.22.0", 87 "@babel/plugin-proposal-throw-expressions": "^7.0.0",
85 "babel-preset-es2016": "^6.16.0", 88 "@babel/plugin-syntax-dynamic-import": "^7.0.0",
86 "babel-preset-es2017": "^6.16.0", 89 "@babel/plugin-transform-regenerator": "^7.0.0",
87 "babel-preset-react": "^6.23.0", 90 "@babel/preset-env": "^7.0.0",
88 "babel-preset-stage-0": "^6.22.0", 91 "@babel/preset-react": "^7.0.0",
89 "babel-preset-stage-1": "^6.22.0", 92 "@babel/register": "^7.0.0",
93 "babel-eslint": "^10.0.1",
90 "cross-env": "^5.0.5", 94 "cross-env": "^5.0.5",
91 "cz-conventional-changelog": "^2.0.0", 95 "cz-conventional-changelog": "^2.0.0",
92 "del": "^2.2.2",
93 "dotenv": "^4.0.0", 96 "dotenv": "^4.0.0",
94 "electron": "^1.7.12", 97 "electron": "^2.0.13",
95 "electron-builder": "19.15.1", 98 "electron-builder": "^20.36.2",
96 "electron-packager": "^8.7.0",
97 "electron-rebuild": "^1.6.0", 99 "electron-rebuild": "^1.6.0",
98 "eslint": "^4.7.1", 100 "eslint": "^4.7.1",
99 "eslint-config-airbnb": "^14.1.0", 101 "eslint-config-airbnb": "^14.1.0",
@@ -101,17 +103,26 @@
101 "eslint-plugin-import": "^2.2.0", 103 "eslint-plugin-import": "^2.2.0",
102 "eslint-plugin-jsx-a11y": "^3.0.0", 104 "eslint-plugin-jsx-a11y": "^3.0.0",
103 "eslint-plugin-react": "^6.10.0", 105 "eslint-plugin-react": "^6.10.0",
104 "gulp": "gulpjs/gulp#4.0", 106 "gulp": "^4.0.0",
105 "gulp-babel": "^6.1.2", 107 "gulp-babel": "^8.0.0",
106 "gulp-github-release": "^1.2.1", 108 "gulp-sass": "^4.0.2",
107 "gulp-sass": "^3.1.0",
108 "gulp-sass-variables": "^1.1.1", 109 "gulp-sass-variables": "^1.1.1",
109 "gulp-server-livereload": "^1.9.2", 110 "gulp-server-livereload": "^1.9.2",
110 "node-sass": "^4.7.2" 111 "husky": "^1.1.4",
112 "node-sass": "^4.7.2",
113 "prettier": "1.15.2"
111 }, 114 },
112 "config": { 115 "config": {
113 "commitizen": { 116 "commitizen": {
114 "path": "./node_modules/cz-conventional-changelog" 117 "path": "./node_modules/cz-conventional-changelog"
115 } 118 }
119 },
120 "browserslist": [
121 "Chrome 66"
122 ],
123 "husky": {
124 "hooks": {
125 "pre-push": "npm run lint && npm run reformat-files"
126 }
116 } 127 }
117} 128}
diff --git a/src/I18n.js b/src/I18n.js
index ae3ba2fa9..e33141576 100644
--- a/src/I18n.js
+++ b/src/I18n.js
@@ -7,13 +7,19 @@ 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 { 11 componentDidUpdate() {
12 window.franz.menu.rebuild();
13 }
14
12 render() { 15 render() {
13 const { stores, children } = this.props; 16 const { stores, children } = this.props;
14 const { locale } = stores.app; 17 const { locale } = stores.app;
15 return ( 18 return (
16 <IntlProvider {...{ locale, key: locale, messages: translations[locale] }}> 19 <IntlProvider
20 {...{ locale, key: locale, messages: translations[locale] }}
21 ref={(intlProvider) => { window.franz.intl = intlProvider ? intlProvider.getChildContext().intl : null; }}
22 >
17 {children} 23 {children}
18 </IntlProvider> 24 </IntlProvider>
19 ); 25 );
diff --git a/src/actions/settings.js b/src/actions/settings.js
index 3d53cd674..fd29b798b 100644
--- a/src/actions/settings.js
+++ b/src/actions/settings.js
@@ -2,9 +2,11 @@ import PropTypes from 'prop-types';
2 2
3export default { 3export default {
4 update: { 4 update: {
5 settings: PropTypes.object.isRequired, 5 type: PropTypes.string.isRequired,
6 data: PropTypes.object.isRequired,
6 }, 7 },
7 remove: { 8 remove: {
9 type: PropTypes.string.isRequired,
8 key: PropTypes.string.isRequired, 10 key: PropTypes.string.isRequired,
9 }, 11 },
10}; 12};
diff --git a/src/api/FeaturesApi.js b/src/api/FeaturesApi.js
index 292dc80cc..c66f28f5b 100644
--- a/src/api/FeaturesApi.js
+++ b/src/api/FeaturesApi.js
@@ -3,8 +3,8 @@ export default class FeaturesApi {
3 this.server = server; 3 this.server = server;
4 } 4 }
5 5
6 base() { 6 default() {
7 return this.server.getBaseFeatures(); 7 return this.server.getDefaultFeatures();
8 } 8 }
9 9
10 features() { 10 features() {
diff --git a/src/api/LocalApi.js b/src/api/LocalApi.js
index 59d7d8fa2..741917104 100644
--- a/src/api/LocalApi.js
+++ b/src/api/LocalApi.js
@@ -4,6 +4,14 @@ export default class LocalApi {
4 this.local = local; 4 this.local = local;
5 } 5 }
6 6
7 getAppSettings() {
8 return this.local.getAppSettings();
9 }
10
11 updateAppSettings(data) {
12 return this.local.updateAppSettings(data);
13 }
14
7 getAppCacheSize() { 15 getAppCacheSize() {
8 return this.local.getAppCacheSize(); 16 return this.local.getAppCacheSize();
9 } 17 }
diff --git a/src/api/server/LocalApi.js b/src/api/server/LocalApi.js
index aa3a7d655..4814bba66 100644
--- a/src/api/server/LocalApi.js
+++ b/src/api/server/LocalApi.js
@@ -1,11 +1,30 @@
1import { remote } from 'electron'; 1import { ipcRenderer, remote } from 'electron';
2import du from 'du'; 2import 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')('Franz:LocalApi');
7
6const { session } = remote; 8const { session } = remote;
7 9
8export default class LocalApi { 10export default class LocalApi {
11 // Settings
12 getAppSettings() {
13 return new Promise((resolve) => {
14 ipcRenderer.once('appSettings', (event, data) => {
15 debug('LocalApi::getAppSettings resolves', data);
16 resolve(data);
17 });
18
19 ipcRenderer.send('getAppSettings');
20 });
21 }
22
23 async updateAppSettings(data) {
24 debug('LocalApi::updateAppSettings resolves', data);
25 ipcRenderer.send('updateAppSettings', data);
26 }
27
9 // Services 28 // Services
10 async getAppCacheSize() { 29 async getAppCacheSize() {
11 const partitionsDir = getServicePartitionsDirectory(); 30 const partitionsDir = getServicePartitionsDirectory();
@@ -13,7 +32,7 @@ export default class LocalApi {
13 du(partitionsDir, (err, size) => { 32 du(partitionsDir, (err, size) => {
14 if (err) reject(err); 33 if (err) reject(err);
15 34
16 console.debug('LocalApi::getAppCacheSize resolves', size); 35 debug('LocalApi::getAppCacheSize resolves', size);
17 resolve(size); 36 resolve(size);
18 }); 37 });
19 }); 38 });
@@ -22,14 +41,14 @@ export default class LocalApi {
22 async clearCache(serviceId) { 41 async clearCache(serviceId) {
23 const s = session.fromPartition(`persist:service-${serviceId}`); 42 const s = session.fromPartition(`persist:service-${serviceId}`);
24 43
25 console.debug('LocalApi::clearCache resolves', serviceId); 44 debug('LocalApi::clearCache resolves', serviceId);
26 return new Promise(resolve => s.clearCache(resolve)); 45 return new Promise(resolve => s.clearCache(resolve));
27 } 46 }
28 47
29 async clearAppCache() { 48 async clearAppCache() {
30 const s = session.defaultSession; 49 const s = session.defaultSession;
31 50
32 console.debug('LocalApi::clearCache clearAppCache'); 51 debug('LocalApi::clearCache clearAppCache');
33 return new Promise(resolve => s.clearCache(resolve)); 52 return new Promise(resolve => s.clearCache(resolve));
34 } 53 }
35} 54}
diff --git a/src/api/server/ServerApi.js b/src/api/server/ServerApi.js
index ad7988bb2..164419951 100644
--- a/src/api/server/ServerApi.js
+++ b/src/api/server/ServerApi.js
@@ -27,13 +27,15 @@ import {
27 removeServicePartitionDirectory, 27 removeServicePartitionDirectory,
28} from '../../helpers/service-helpers.js'; 28} from '../../helpers/service-helpers.js';
29 29
30const debug = require('debug')('Franz:ServerApi');
31
30module.paths.unshift( 32module.paths.unshift(
31 getDevRecipeDirectory(), 33 getDevRecipeDirectory(),
32 getRecipeDirectory(), 34 getRecipeDirectory(),
33); 35);
34 36
35const { app } = remote; 37const { app } = remote;
36const fetch = remote.require('electron-fetch'); 38const { default: fetch } = remote.require('electron-fetch');
37 39
38const SERVER_URL = API; 40const SERVER_URL = API;
39const API_VERSION = 'v1'; 41const API_VERSION = 'v1';
@@ -55,7 +57,7 @@ export default class ServerApi {
55 } 57 }
56 const u = await request.json(); 58 const u = await request.json();
57 59
58 console.debug('ServerApi::login resolves', u); 60 debug('ServerApi::login resolves', u);
59 return u.token; 61 return u.token;
60 } 62 }
61 63
@@ -69,7 +71,7 @@ export default class ServerApi {
69 } 71 }
70 const u = await request.json(); 72 const u = await request.json();
71 73
72 console.debug('ServerApi::signup resolves', u); 74 debug('ServerApi::signup resolves', u);
73 return u.token; 75 return u.token;
74 } 76 }
75 77
@@ -82,7 +84,7 @@ export default class ServerApi {
82 throw request; 84 throw request;
83 } 85 }
84 86
85 console.debug('ServerApi::inviteUser'); 87 debug('ServerApi::inviteUser');
86 return true; 88 return true;
87 } 89 }
88 90
@@ -98,7 +100,7 @@ export default class ServerApi {
98 } 100 }
99 const r = await request.json(); 101 const r = await request.json();
100 102
101 console.debug('ServerApi::retrievePassword'); 103 debug('ServerApi::retrievePassword');
102 return r; 104 return r;
103 } 105 }
104 106
@@ -112,7 +114,7 @@ export default class ServerApi {
112 const data = await request.json(); 114 const data = await request.json();
113 115
114 const user = new UserModel(data); 116 const user = new UserModel(data);
115 console.debug('ServerApi::userInfo resolves', user); 117 debug('ServerApi::userInfo resolves', user);
116 118
117 return user; 119 return user;
118 } 120 }
@@ -128,7 +130,7 @@ export default class ServerApi {
128 const updatedData = await request.json(); 130 const updatedData = await request.json();
129 131
130 const user = Object.assign(updatedData, { data: new UserModel(updatedData.data) }); 132 const user = Object.assign(updatedData, { data: new UserModel(updatedData.data) });
131 console.debug('ServerApi::updateUserInfo resolves', user); 133 debug('ServerApi::updateUserInfo resolves', user);
132 return user; 134 return user;
133 } 135 }
134 136
@@ -141,7 +143,7 @@ export default class ServerApi {
141 } 143 }
142 const data = await request.json(); 144 const data = await request.json();
143 145
144 console.debug('ServerApi::deleteAccount resolves', data); 146 debug('ServerApi::deleteAccount resolves', data);
145 return data; 147 return data;
146 } 148 }
147 149
@@ -157,7 +159,7 @@ export default class ServerApi {
157 159
158 let services = await this._mapServiceModels(data); 160 let services = await this._mapServiceModels(data);
159 services = services.filter(service => service !== null); 161 services = services.filter(service => service !== null);
160 console.debug('ServerApi::getServices resolves', services); 162 debug('ServerApi::getServices resolves', services);
161 return services; 163 return services;
162 } 164 }
163 165
@@ -181,7 +183,7 @@ export default class ServerApi {
181 183
182 const service = Object.assign(serviceData, { data: await this._prepareServiceModel(serviceData.data) }); 184 const service = Object.assign(serviceData, { data: await this._prepareServiceModel(serviceData.data) });
183 185
184 console.debug('ServerApi::createService resolves', service); 186 debug('ServerApi::createService resolves', service);
185 return service; 187 return service;
186 } 188 }
187 189
@@ -205,7 +207,7 @@ export default class ServerApi {
205 207
206 const service = Object.assign(serviceData, { data: await this._prepareServiceModel(serviceData.data) }); 208 const service = Object.assign(serviceData, { data: await this._prepareServiceModel(serviceData.data) });
207 209
208 console.debug('ServerApi::updateService resolves', service); 210 debug('ServerApi::updateService resolves', service);
209 return service; 211 return service;
210 } 212 }
211 213
@@ -240,7 +242,7 @@ export default class ServerApi {
240 throw request; 242 throw request;
241 } 243 }
242 const serviceData = await request.json(); 244 const serviceData = await request.json();
243 console.debug('ServerApi::reorderService resolves', serviceData); 245 debug('ServerApi::reorderService resolves', serviceData);
244 return serviceData; 246 return serviceData;
245 } 247 }
246 248
@@ -255,13 +257,13 @@ export default class ServerApi {
255 257
256 removeServicePartitionDirectory(id, true); 258 removeServicePartitionDirectory(id, true);
257 259
258 console.debug('ServerApi::deleteService resolves', data); 260 debug('ServerApi::deleteService resolves', data);
259 return data; 261 return data;
260 } 262 }
261 263
262 // Features 264 // Features
263 async getBaseFeatures() { 265 async getDefaultFeatures() {
264 const request = await window.fetch(`${SERVER_URL}/${API_VERSION}/features/base`, this._prepareAuthRequest({ 266 const request = await window.fetch(`${SERVER_URL}/${API_VERSION}/features/default`, this._prepareAuthRequest({
265 method: 'GET', 267 method: 'GET',
266 })); 268 }));
267 if (!request.ok) { 269 if (!request.ok) {
@@ -270,7 +272,7 @@ export default class ServerApi {
270 const data = await request.json(); 272 const data = await request.json();
271 273
272 const features = data; 274 const features = data;
273 console.debug('ServerApi::getBaseFeatures resolves', features); 275 console.debug('ServerApi::getDefaultFeatures resolves', features);
274 return features; 276 return features;
275 } 277 }
276 278
@@ -306,7 +308,7 @@ export default class ServerApi {
306 308
307 this.recipes = this.recipes.concat(this._getDevRecipes()); 309 this.recipes = this.recipes.concat(this._getDevRecipes());
308 310
309 console.debug('StubServerApi::getInstalledRecipes resolves', this.recipes); 311 debug('StubServerApi::getInstalledRecipes resolves', this.recipes);
310 return this.recipes; 312 return this.recipes;
311 } 313 }
312 314
@@ -319,7 +321,7 @@ export default class ServerApi {
319 throw request; 321 throw request;
320 } 322 }
321 const recipes = await request.json(); 323 const recipes = await request.json();
322 console.debug('ServerApi::getRecipeUpdates resolves', recipes); 324 debug('ServerApi::getRecipeUpdates resolves', recipes);
323 return recipes; 325 return recipes;
324 } 326 }
325 327
@@ -334,7 +336,7 @@ export default class ServerApi {
334 const data = await request.json(); 336 const data = await request.json();
335 337
336 const recipePreviews = this._mapRecipePreviewModel(data); 338 const recipePreviews = this._mapRecipePreviewModel(data);
337 console.debug('ServerApi::getRecipes resolves', recipePreviews); 339 debug('ServerApi::getRecipes resolves', recipePreviews);
338 340
339 return recipePreviews; 341 return recipePreviews;
340 } 342 }
@@ -351,7 +353,7 @@ export default class ServerApi {
351 // data = this._addLocalRecipesToPreviews(data); 353 // data = this._addLocalRecipesToPreviews(data);
352 354
353 const recipePreviews = this._mapRecipePreviewModel(data); 355 const recipePreviews = this._mapRecipePreviewModel(data);
354 console.debug('ServerApi::getFeaturedRecipes resolves', recipePreviews); 356 debug('ServerApi::getFeaturedRecipes resolves', recipePreviews);
355 return recipePreviews; 357 return recipePreviews;
356 } 358 }
357 359
@@ -365,7 +367,7 @@ export default class ServerApi {
365 const data = await request.json(); 367 const data = await request.json();
366 368
367 const recipePreviews = this._mapRecipePreviewModel(data); 369 const recipePreviews = this._mapRecipePreviewModel(data);
368 console.debug('ServerApi::searchRecipePreviews resolves', recipePreviews); 370 debug('ServerApi::searchRecipePreviews resolves', recipePreviews);
369 return recipePreviews; 371 return recipePreviews;
370 } 372 }
371 373
@@ -379,7 +381,7 @@ export default class ServerApi {
379 381
380 fs.ensureDirSync(recipeTempDirectory); 382 fs.ensureDirSync(recipeTempDirectory);
381 const res = await fetch(packageUrl); 383 const res = await fetch(packageUrl);
382 console.debug('Recipe downloaded', recipeId); 384 debug('Recipe downloaded', recipeId);
383 const buffer = await res.buffer(); 385 const buffer = await res.buffer();
384 fs.writeFileSync(archivePath, buffer); 386 fs.writeFileSync(archivePath, buffer);
385 387
@@ -421,7 +423,7 @@ export default class ServerApi {
421 const data = await request.json(); 423 const data = await request.json();
422 424
423 const plan = new PlanModel(data); 425 const plan = new PlanModel(data);
424 console.debug('ServerApi::getPlans resolves', plan); 426 debug('ServerApi::getPlans resolves', plan);
425 return plan; 427 return plan;
426 } 428 }
427 429
@@ -437,7 +439,7 @@ export default class ServerApi {
437 } 439 }
438 const data = await request.json(); 440 const data = await request.json();
439 441
440 console.debug('ServerApi::getHostedPage resolves', data); 442 debug('ServerApi::getHostedPage resolves', data);
441 return data; 443 return data;
442 } 444 }
443 445
@@ -450,7 +452,7 @@ export default class ServerApi {
450 } 452 }
451 const data = await request.json(); 453 const data = await request.json();
452 454
453 console.debug('ServerApi::getPaymentDashboardUrl resolves', data); 455 debug('ServerApi::getPaymentDashboardUrl resolves', data);
454 return data; 456 return data;
455 } 457 }
456 458
@@ -463,7 +465,7 @@ export default class ServerApi {
463 } 465 }
464 const data = await request.json(); 466 const data = await request.json();
465 const orders = this._mapOrderModels(data); 467 const orders = this._mapOrderModels(data);
466 console.debug('ServerApi::getSubscriptionOrders resolves', orders); 468 debug('ServerApi::getSubscriptionOrders resolves', orders);
467 return orders; 469 return orders;
468 } 470 }
469 471
@@ -480,7 +482,7 @@ export default class ServerApi {
480 } 482 }
481 const data = await request.json(); 483 const data = await request.json();
482 const news = this._mapNewsModels(data); 484 const news = this._mapNewsModels(data);
483 console.debug('ServerApi::getLatestNews resolves', news); 485 debug('ServerApi::getLatestNews resolves', news);
484 return news; 486 return news;
485 } 487 }
486 488
@@ -494,7 +496,7 @@ export default class ServerApi {
494 throw request; 496 throw request;
495 } 497 }
496 498
497 console.debug('ServerApi::hideNews resolves', id); 499 debug('ServerApi::hideNews resolves', id);
498 } 500 }
499 501
500 // Health Check 502 // Health Check
@@ -505,7 +507,7 @@ export default class ServerApi {
505 if (!request.ok) { 507 if (!request.ok) {
506 throw request; 508 throw request;
507 } 509 }
508 console.debug('ServerApi::healthCheck resolves'); 510 debug('ServerApi::healthCheck resolves');
509 } 511 }
510 512
511 async getLegacyServices() { 513 async getLegacyServices() {
@@ -531,7 +533,7 @@ export default class ServerApi {
531 return service; 533 return service;
532 })); 534 }));
533 535
534 console.debug('ServerApi::getLegacyServices resolves', services); 536 debug('ServerApi::getLegacyServices resolves', services);
535 return services; 537 return services;
536 } 538 }
537 } catch (err) { 539 } catch (err) {
@@ -564,7 +566,7 @@ export default class ServerApi {
564 566
565 return new ServiceModel(service, recipe); 567 return new ServiceModel(service, recipe);
566 } catch (e) { 568 } catch (e) {
567 console.debug(e); 569 debug(e);
568 return null; 570 return null;
569 } 571 }
570 } 572 }
@@ -582,7 +584,7 @@ export default class ServerApi {
582 584
583 await this.getRecipePackage(recipeId); 585 await this.getRecipePackage(recipeId);
584 586
585 console.debug('Rerun ServerAPI::getInstalledRecipes'); 587 debug('Rerun ServerAPI::getInstalledRecipes');
586 await this.getInstalledRecipes(); 588 await this.getInstalledRecipes();
587 589
588 recipe = this.recipes.find(r => r.id === recipeId); 590 recipe = this.recipes.find(r => r.id === recipeId);
@@ -682,7 +684,7 @@ export default class ServerApi {
682 684
683 return recipes; 685 return recipes;
684 } catch (err) { 686 } catch (err) {
685 console.debug('Could not load dev recipes'); 687 debug('Could not load dev recipes');
686 return false; 688 return false;
687 } 689 }
688 } 690 }
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 20dc2f764..a4003ef8e 100644
--- a/src/components/layout/AppLayout.js
+++ b/src/components/layout/AppLayout.js
@@ -2,10 +2,13 @@ import React, { Component } from 'react';
2import PropTypes from 'prop-types'; 2import PropTypes from 'prop-types';
3import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; 3import { observer, PropTypes as MobxPropTypes } from 'mobx-react';
4import { defineMessages, intlShape } from 'react-intl'; 4import { defineMessages, intlShape } from 'react-intl';
5import { TitleBar } from 'electron-react-titlebar';
5 6
6import InfoBar from '../ui/InfoBar'; 7import InfoBar from '../ui/InfoBar';
7import globalMessages from '../../i18n/globalMessages'; 8import globalMessages from '../../i18n/globalMessages';
8 9
10import { isWindows } from '../../environment';
11
9function createMarkup(HTMLString) { 12function createMarkup(HTMLString) {
10 return { __html: HTMLString }; 13 return { __html: HTMLString };
11} 14}
@@ -37,9 +40,9 @@ const messages = defineMessages({
37 }, 40 },
38}); 41});
39 42
40@observer 43export default @observer class AppLayout extends Component {
41export default class AppLayout extends Component {
42 static propTypes = { 44 static propTypes = {
45 isFullScreen: PropTypes.bool.isRequired,
43 sidebar: PropTypes.element.isRequired, 46 sidebar: PropTypes.element.isRequired,
44 services: PropTypes.element.isRequired, 47 services: PropTypes.element.isRequired,
45 children: PropTypes.element, 48 children: PropTypes.element,
@@ -54,6 +57,7 @@ export default class AppLayout extends Component {
54 areRequiredRequestsSuccessful: PropTypes.bool.isRequired, 57 areRequiredRequestsSuccessful: PropTypes.bool.isRequired,
55 retryRequiredRequests: PropTypes.func.isRequired, 58 retryRequiredRequests: PropTypes.func.isRequired,
56 areRequiredRequestsLoading: PropTypes.bool.isRequired, 59 areRequiredRequestsLoading: PropTypes.bool.isRequired,
60 darkMode: PropTypes.bool.isRequired,
57 }; 61 };
58 62
59 static defaultProps = { 63 static defaultProps = {
@@ -66,6 +70,7 @@ export default class AppLayout extends Component {
66 70
67 render() { 71 render() {
68 const { 72 const {
73 isFullScreen,
69 sidebar, 74 sidebar,
70 services, 75 services,
71 children, 76 children,
@@ -80,71 +85,75 @@ export default class AppLayout extends Component {
80 areRequiredRequestsSuccessful, 85 areRequiredRequestsSuccessful,
81 retryRequiredRequests, 86 retryRequiredRequests,
82 areRequiredRequestsLoading, 87 areRequiredRequestsLoading,
88 darkMode,
83 } = this.props; 89 } = this.props;
84 90
85 const { intl } = this.context; 91 const { intl } = this.context;
86 92
87 return ( 93 return (
88 <div> 94 <div className={(darkMode ? 'theme__dark' : '')}>
89 <div className="app"> 95 <div className="app">
90 {sidebar} 96 {isWindows && !isFullScreen && <TitleBar menu={window.franz.menu.template} icon={'assets/images/logo.svg'} />}
91 <div className="app__service"> 97 <div className="app__content">
92 {news.length > 0 && news.map(item => ( 98 {sidebar}
93 <InfoBar 99 <div className="app__service">
94 key={item.id} 100 {news.length > 0 && news.map(item => (
95 position="top" 101 <InfoBar
96 type={item.type} 102 key={item.id}
97 sticky={item.sticky} 103 position="top"
98 onHide={() => removeNewsItem({ newsId: item.id })} 104 type={item.type}
99 > 105 sticky={item.sticky}
100 <span dangerouslySetInnerHTML={createMarkup(item.message)} /> 106 onHide={() => removeNewsItem({ newsId: item.id })}
101 </InfoBar> 107 >
102 ))} 108 <span dangerouslySetInnerHTML={createMarkup(item.message)} />
103 {!isOnline && ( 109 </InfoBar>
104 <InfoBar 110 ))}
105 type="danger" 111 {!isOnline && (
106 > 112 <InfoBar
107 <span className="mdi mdi-flash" /> 113 type="danger"
108 {intl.formatMessage(globalMessages.notConnectedToTheInternet)} 114 >
109 </InfoBar> 115 <span className="mdi mdi-flash" />
110 )} 116 {intl.formatMessage(globalMessages.notConnectedToTheInternet)}
111 {!areRequiredRequestsSuccessful && showRequiredRequestsError && ( 117 </InfoBar>
112 <InfoBar 118 )}
113 type="danger" 119 {!areRequiredRequestsSuccessful && showRequiredRequestsError && (
114 ctaLabel="Try again" 120 <InfoBar
115 ctaLoading={areRequiredRequestsLoading} 121 type="danger"
116 sticky 122 ctaLabel="Try again"
117 onClick={retryRequiredRequests} 123 ctaLoading={areRequiredRequestsLoading}
118 > 124 sticky
119 <span className="mdi mdi-flash" /> 125 onClick={retryRequiredRequests}
120 {intl.formatMessage(messages.requiredRequestsFailed)} 126 >
121 </InfoBar> 127 <span className="mdi mdi-flash" />
122 )} 128 {intl.formatMessage(messages.requiredRequestsFailed)}
123 {showServicesUpdatedInfoBar && ( 129 </InfoBar>
124 <InfoBar 130 )}
125 type="primary" 131 {showServicesUpdatedInfoBar && (
126 ctaLabel={intl.formatMessage(messages.buttonReloadServices)} 132 <InfoBar
127 onClick={reloadServicesAfterUpdate} 133 type="primary"
128 sticky 134 ctaLabel={intl.formatMessage(messages.buttonReloadServices)}
129 > 135 onClick={reloadServicesAfterUpdate}
130 <span className="mdi mdi-power-plug" /> 136 sticky
131 {intl.formatMessage(messages.servicesUpdated)} 137 >
132 </InfoBar> 138 <span className="mdi mdi-power-plug" />
133 )} 139 {intl.formatMessage(messages.servicesUpdated)}
134 {appUpdateIsDownloaded && ( 140 </InfoBar>
135 <InfoBar 141 )}
136 type="primary" 142 {appUpdateIsDownloaded && (
137 ctaLabel={intl.formatMessage(messages.buttonInstallUpdate)} 143 <InfoBar
138 onClick={installAppUpdate} 144 type="primary"
139 sticky 145 ctaLabel={intl.formatMessage(messages.buttonInstallUpdate)}
140 > 146 onClick={installAppUpdate}
141 <span className="mdi mdi-information" /> 147 sticky
142 {intl.formatMessage(messages.updateAvailable)} <a href="https://meetfranz.com/changelog" target="_blank"> 148 >
143 <u>{intl.formatMessage(messages.changelog)}</u> 149 <span className="mdi mdi-information" />
144 </a> 150 {intl.formatMessage(messages.updateAvailable)} <a href="https://meetfranz.com/changelog" target="_blank">
145 </InfoBar> 151 <u>{intl.formatMessage(messages.changelog)}</u>
146 )} 152 </a>
147 {services} 153 </InfoBar>
154 )}
155 {services}
156 </div>
148 </div> 157 </div>
149 </div> 158 </div>
150 {children} 159 {children}
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 7aed8fda7..8de7dc438 100644
--- a/src/components/services/tabs/TabItem.js
+++ b/src/components/services/tabs/TabItem.js
@@ -7,7 +7,7 @@ import classnames from 'classnames';
7import { SortableElement } from 'react-sortable-hoc'; 7import { SortableElement } from 'react-sortable-hoc';
8 8
9import ServiceModel from '../../../models/Service'; 9import ServiceModel from '../../../models/Service';
10import { ctrlKey } from '../../../environment'; 10import { isDevMode, ctrlKey } from '../../../environment';
11 11
12const { Menu } = remote; 12const { Menu } = remote;
13 13
@@ -119,10 +119,14 @@ class TabItem extends Component {
119 click: () => (service.isEnabled ? disableService() : enableService()), 119 click: () => (service.isEnabled ? disableService() : enableService()),
120 }, { 120 }, {
121 type: 'separator', 121 type: 'separator',
122 }, {
123 label: intl.formatMessage(messages.deleteService),
124 click: () => deleteService(),
125 }]; 122 }];
123
124 if (isDevMode) {
125 menuTemplate.push({
126 label: intl.formatMessage(messages.deleteService),
127 click: () => deleteService(),
128 });
129 }
126 const menu = Menu.buildFromTemplate(menuTemplate); 130 const menu = Menu.buildFromTemplate(menuTemplate);
127 131
128 let notificationBadge = null; 132 let notificationBadge = null;
@@ -137,10 +141,10 @@ class TabItem extends Component {
137 {service.unreadIndirectMessageCount > 0 141 {service.unreadIndirectMessageCount > 0
138 && service.unreadDirectMessageCount === 0 142 && service.unreadDirectMessageCount === 0
139 && service.isIndirectMessageBadgeEnabled && ( 143 && service.isIndirectMessageBadgeEnabled && (
140 <span className="tab-item__message-count is-indirect"> 144 <span className="tab-item__message-count is-indirect">
141 • 145 •
142 </span> 146 </span>
143 )} 147 )}
144 </span> 148 </span>
145 ); 149 );
146 } 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 e6ccdaac7..ede519fd6 100644
--- a/src/components/settings/account/AccountDashboard.js
+++ b/src/components/settings/account/AccountDashboard.js
@@ -78,8 +78,7 @@ const messages = defineMessages({
78 }, 78 },
79}); 79});
80 80
81@observer 81export default @observer class AccountDashboard extends Component {
82export default class AccountDashboard extends Component {
83 static propTypes = { 82 static propTypes = {
84 user: MobxPropTypes.observableObject.isRequired, 83 user: MobxPropTypes.observableObject.isRequired,
85 orders: MobxPropTypes.arrayOrObservableArray.isRequired, 84 orders: MobxPropTypes.arrayOrObservableArray.isRequired,
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 3ffca99a7..777a95fcf 100644
--- a/src/components/settings/services/EditServiceForm.js
+++ b/src/components/settings/services/EditServiceForm.js
@@ -94,8 +94,7 @@ const messages = defineMessages({
94 }, 94 },
95}); 95});
96 96
97@observer 97export default @observer class EditServiceForm extends Component {
98export default class EditServiceForm extends Component {
99 static propTypes = { 98 static propTypes = {
100 recipe: PropTypes.instanceOf(Recipe).isRequired, 99 recipe: PropTypes.instanceOf(Recipe).isRequired,
101 service(props, propName) { 100 service(props, propName) {
@@ -204,6 +203,8 @@ export default class EditServiceForm extends Component {
204 activeTabIndex = 2; 203 activeTabIndex = 2;
205 } 204 }
206 205
206 const requiresUserInput = !recipe.hasHostedOption && (recipe.hasTeamId || recipe.hasCustomUrl);
207
207 return ( 208 return (
208 <div className="settings__main"> 209 <div className="settings__main">
209 <div className="settings__header"> 210 <div className="settings__header">
@@ -305,6 +306,7 @@ export default class EditServiceForm extends Component {
305 306
306 <div className="settings__settings-group"> 307 <div className="settings__settings-group">
307 <h3>{intl.formatMessage(messages.headlineGeneral)}</h3> 308 <h3>{intl.formatMessage(messages.headlineGeneral)}</h3>
309 <Toggle field={form.$('isDarkModeEnabled')} />
308 <Toggle field={form.$('isEnabled')} /> 310 <Toggle field={form.$('isEnabled')} />
309 </div> 311 </div>
310 </div> 312 </div>
@@ -342,6 +344,7 @@ export default class EditServiceForm extends Component {
342 type="submit" 344 type="submit"
343 label={intl.formatMessage(messages.saveService)} 345 label={intl.formatMessage(messages.saveService)}
344 htmlForm="form" 346 htmlForm="form"
347 disabled={action !== 'edit' && form.isPristine && requiresUserInput}
345 /> 348 />
346 )} 349 )}
347 </div> 350 </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 72aa5a8af..b5c048ebd 100644
--- a/src/components/settings/settings/EditSettingsForm.js
+++ b/src/components/settings/settings/EditSettingsForm.js
@@ -76,10 +76,13 @@ const messages = defineMessages({
76 id: 'settings.app.currentVersion', 76 id: 'settings.app.currentVersion',
77 defaultMessage: '!!!Current version:', 77 defaultMessage: '!!!Current version:',
78 }, 78 },
79 enableGPUAccelerationInfo: {
80 id: 'settings.app.restartRequired',
81 defaultMessage: '!!!Changes require restart',
82 },
79}); 83});
80 84
81@observer 85export default @observer class EditSettingsForm extends Component {
82export default class EditSettingsForm extends Component {
83 static propTypes = { 86 static propTypes = {
84 checkForUpdates: PropTypes.func.isRequired, 87 checkForUpdates: PropTypes.func.isRequired,
85 installUpdate: PropTypes.func.isRequired, 88 installUpdate: PropTypes.func.isRequired,
@@ -157,6 +160,7 @@ export default class EditSettingsForm extends Component {
157 <h2 id="apperance">{intl.formatMessage(messages.headlineAppearance)}</h2> 160 <h2 id="apperance">{intl.formatMessage(messages.headlineAppearance)}</h2>
158 <Toggle field={form.$('showDisabledServices')} /> 161 <Toggle field={form.$('showDisabledServices')} />
159 <Toggle field={form.$('showMessageBadgeWhenMuted')} /> 162 <Toggle field={form.$('showMessageBadgeWhenMuted')} />
163 <Toggle field={form.$('darkMode')} />
160 164
161 {/* Language */} 165 {/* Language */}
162 <h2 id="language">{intl.formatMessage(messages.headlineLanguage)}</h2> 166 <h2 id="language">{intl.formatMessage(messages.headlineLanguage)}</h2>
@@ -172,6 +176,8 @@ export default class EditSettingsForm extends Component {
172 {/* Advanced */} 176 {/* Advanced */}
173 <h2 id="advanced">{intl.formatMessage(messages.headlineAdvanced)}</h2> 177 <h2 id="advanced">{intl.formatMessage(messages.headlineAdvanced)}</h2>
174 <Toggle field={form.$('enableSpellchecking')} /> 178 <Toggle field={form.$('enableSpellchecking')} />
179 <Toggle field={form.$('enableGPUAcceleration')} />
180 <p className="settings__help">{intl.formatMessage(messages.enableGPUAccelerationInfo)}</p>
175 {/* <Select field={form.$('spellcheckingLanguage')} /> */} 181 {/* <Select field={form.$('spellcheckingLanguage')} /> */}
176 <div className="settings__settings-group"> 182 <div className="settings__settings-group">
177 <h3> 183 <h3>
diff --git a/src/components/settings/user/EditUserForm.js b/src/components/settings/user/EditUserForm.js
index 1ac8be80f..b825f844a 100644
--- a/src/components/settings/user/EditUserForm.js
+++ b/src/components/settings/user/EditUserForm.js
@@ -39,8 +39,7 @@ 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,
diff --git a/src/components/subscription/SubscriptionForm.js b/src/components/subscription/SubscriptionForm.js
index dd350479d..5992e4204 100644
--- a/src/components/subscription/SubscriptionForm.js
+++ b/src/components/subscription/SubscriptionForm.js
@@ -71,8 +71,7 @@ const messages = defineMessages({
71 }, 71 },
72}); 72});
73 73
74@observer 74export default @observer class SubscriptionForm extends Component {
75export default class SubscriptionForm extends Component {
76 static propTypes = { 75 static propTypes = {
77 plan: MobxPropTypes.objectOrObservableObject.isRequired, 76 plan: MobxPropTypes.objectOrObservableObject.isRequired,
78 isLoading: PropTypes.bool.isRequired, 77 isLoading: PropTypes.bool.isRequired,
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 69c95702b..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,
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/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..f7c2ec955 100644
--- a/src/components/ui/Toggle.js
+++ b/src/components/ui/Toggle.js
@@ -4,8 +4,7 @@ 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,
diff --git a/src/config.js b/src/config.js
index e66594c59..ce946f00a 100644
--- a/src/config.js
+++ b/src/config.js
@@ -1,11 +1,15 @@
1import electron from 'electron';
2import path from 'path';
3
4const app = process.type === 'renderer' ? electron.remote.app : electron.app;
5
1export const CHECK_INTERVAL = 1000 * 3600; // How often should we perform checks 6export const CHECK_INTERVAL = 1000 * 3600; // How often should we perform checks
2export const LOCAL_API = 'http://localhost:3000'; 7export const LOCAL_API = 'http://localhost:3000';
3export const DEV_API = 'https://dev.franzinfra.com'; 8export const DEV_API = 'https://dev.franzinfra.com';
4export const LIVE_API = 'https://api.franzinfra.com'; 9export const LIVE_API = 'https://api.franzinfra.com';
5export const GA_ID = 'UA-74126766-6'; 10export const GA_ID = 'UA-74126766-10';
6 11
7export const DEFAULT_APP_SETTINGS = { 12export const DEFAULT_APP_SETTINGS = {
8 autoLaunchOnStart: true,
9 autoLaunchInBackground: false, 13 autoLaunchInBackground: false,
10 runInBackground: true, 14 runInBackground: true,
11 enableSystemTray: true, 15 enableSystemTray: true,
@@ -13,12 +17,15 @@ export const DEFAULT_APP_SETTINGS = {
13 showDisabledServices: true, 17 showDisabledServices: true,
14 showMessageBadgeWhenMuted: true, 18 showMessageBadgeWhenMuted: true,
15 enableSpellchecking: true, 19 enableSpellchecking: true,
16 // spellcheckingLanguage: 'auto', 20 darkMode: false,
17 locale: '', 21 locale: '',
18 fallbackLocale: 'en-US', 22 fallbackLocale: 'en-US',
19 beta: false, 23 beta: false,
20 isAppMuted: false, 24 isAppMuted: false,
25 enableGPUAcceleration: true,
21}; 26};
22 27
23export const FRANZ_SERVICE_REQUEST = 'http://bit.ly/franz-service-request'; 28export const FRANZ_SERVICE_REQUEST = 'https://bit.ly/franz-service-request';
24export const FRANZ_TRANSLATION = 'http://bit.ly/franz-translate'; 29export const FRANZ_TRANSLATION = 'https://bit.ly/franz-translate';
30
31export const SETTINGS_PATH = path.join(app.getPath('userData'), 'config', 'settings.json');
diff --git a/src/containers/auth/AuthLayoutContainer.js b/src/containers/auth/AuthLayoutContainer.js
index f362b1800..b73598f3d 100644
--- a/src/containers/auth/AuthLayoutContainer.js
+++ b/src/containers/auth/AuthLayoutContainer.js
@@ -9,8 +9,7 @@ import AppLoader from '../../components/ui/AppLoader';
9 9
10import { oneOrManyChildElements } from '../../prop-types'; 10import { oneOrManyChildElements } from '../../prop-types';
11 11
12@inject('stores', 'actions') @observer 12export default @inject('stores', 'actions') @observer class AuthLayoutContainer extends Component {
13export default class AuthLayoutContainer extends Component {
14 static propTypes = { 13 static propTypes = {
15 children: oneOrManyChildElements.isRequired, 14 children: oneOrManyChildElements.isRequired,
16 location: PropTypes.shape({ 15 location: PropTypes.shape({
@@ -20,10 +19,10 @@ export default class AuthLayoutContainer extends Component {
20 19
21 render() { 20 render() {
22 const { stores, actions, children, location } = this.props; 21 const { stores, actions, children, location } = this.props;
23 const { features } = stores; 22 const { app, features, globalError } = stores;
24 23
25 const isLoadingBaseFeatures = features.baseFeaturesRequest.isExecuting 24 const isLoadingBaseFeatures = features.defaultFeaturesRequest.isExecuting
26 && !features.baseFeaturesRequest.wasExecuted; 25 && !features.defaultFeaturesRequest.wasExecuted;
27 26
28 if (isLoadingBaseFeatures) { 27 if (isLoadingBaseFeatures) {
29 return ( 28 return (
@@ -33,12 +32,14 @@ export default class AuthLayoutContainer extends Component {
33 32
34 return ( 33 return (
35 <AuthLayout 34 <AuthLayout
36 error={stores.globalError.response} 35 error={globalError.response}
37 pathname={location.pathname} 36 pathname={location.pathname}
38 isOnline={stores.app.isOnline} 37 isOnline={app.isOnline}
39 isAPIHealthy={!stores.app.healthCheckRequest.isError} 38 isAPIHealthy={!app.healthCheckRequest.isError}
40 retryHealthCheck={actions.app.healthCheck} 39 retryHealthCheck={actions.app.healthCheck}
41 isHealthCheckLoading={stores.app.healthCheckRequest.isExecuting} 40 isHealthCheckLoading={app.healthCheckRequest.isExecuting}
41 isFullScreen={app.isFullScreen}
42 darkMode={app.isSystemDarkModeEnabled}
42 > 43 >
43 {children} 44 {children}
44 </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 7a398ed2d..affc1a0a2 100644
--- a/src/containers/layout/AppLayoutContainer.js
+++ b/src/containers/layout/AppLayoutContainer.js
@@ -18,8 +18,7 @@ import Sidebar from '../../components/layout/Sidebar';
18import Services from '../../components/services/content/Services'; 18import Services from '../../components/services/content/Services';
19import AppLoader from '../../components/ui/AppLoader'; 19import AppLoader from '../../components/ui/AppLoader';
20 20
21@inject('stores', 'actions') @observer 21export default @inject('stores', 'actions') @observer class AppLayoutContainer extends Component {
22export default class AppLayoutContainer extends Component {
23 static defaultProps = { 22 static defaultProps = {
24 children: null, 23 children: null,
25 }; 24 };
@@ -82,7 +81,7 @@ export default class AppLayoutContainer extends Component {
82 <Sidebar 81 <Sidebar
83 services={services.allDisplayed} 82 services={services.allDisplayed}
84 setActive={setActive} 83 setActive={setActive}
85 isAppMuted={settings.all.isAppMuted} 84 isAppMuted={settings.all.app.isAppMuted}
86 openSettings={openSettings} 85 openSettings={openSettings}
87 closeSettings={closeSettings} 86 closeSettings={closeSettings}
88 reorder={reorder} 87 reorder={reorder}
@@ -92,25 +91,26 @@ export default class AppLayoutContainer extends Component {
92 deleteService={deleteService} 91 deleteService={deleteService}
93 updateService={updateService} 92 updateService={updateService}
94 toggleMuteApp={toggleMuteApp} 93 toggleMuteApp={toggleMuteApp}
95 showMessageBadgeWhenMutedSetting={settings.all.showMessageBadgeWhenMuted} 94 showMessageBadgeWhenMutedSetting={settings.all.app.showMessageBadgeWhenMuted}
96 showMessageBadgesEvenWhenMuted={ui.showMessageBadgesEvenWhenMuted} 95 showMessageBadgesEvenWhenMuted={ui.showMessageBadgesEvenWhenMuted}
97 /> 96 />
98 ); 97 );
99 98
100 const servicesContainer = ( 99 const servicesContainer = (
101 <Services 100 <Services
102 services={services.allDisplayed} 101 services={services.allDisplayedUnordered}
103 handleIPCMessage={handleIPCMessage} 102 handleIPCMessage={handleIPCMessage}
104 setWebviewReference={setWebviewReference} 103 setWebviewReference={setWebviewReference}
105 openWindow={openWindow} 104 openWindow={openWindow}
106 reload={reload} 105 reload={reload}
107 isAppMuted={settings.all.isAppMuted} 106 isAppMuted={settings.all.app.isAppMuted}
108 update={updateService} 107 update={updateService}
109 /> 108 />
110 ); 109 );
111 110
112 return ( 111 return (
113 <AppLayout 112 <AppLayout
113 isFullScreen={app.isFullScreen}
114 isOnline={app.isOnline} 114 isOnline={app.isOnline}
115 showServicesUpdatedInfoBar={ui.showServicesUpdatedInfoBar} 115 showServicesUpdatedInfoBar={ui.showServicesUpdatedInfoBar}
116 appUpdateIsDownloaded={app.updateStatus === app.updateStatusTypes.DOWNLOADED} 116 appUpdateIsDownloaded={app.updateStatus === app.updateStatusTypes.DOWNLOADED}
@@ -125,6 +125,7 @@ export default class AppLayoutContainer extends Component {
125 areRequiredRequestsSuccessful={requests.areRequiredRequestsSuccessful} 125 areRequiredRequestsSuccessful={requests.areRequiredRequestsSuccessful}
126 retryRequiredRequests={retryRequiredRequests} 126 retryRequiredRequests={retryRequiredRequests}
127 areRequiredRequestsLoading={requests.areRequiredRequestsLoading} 127 areRequiredRequestsLoading={requests.areRequiredRequestsLoading}
128 darkMode={settings.all.app.darkMode}
128 > 129 >
129 {React.Children.count(children) > 0 ? children : null} 130 {React.Children.count(children) > 0 ? children : null}
130 </AppLayout> 131 </AppLayout>
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 f2d5550e1..17d727642 100644
--- a/src/containers/settings/EditServiceScreen.js
+++ b/src/containers/settings/EditServiceScreen.js
@@ -7,6 +7,7 @@ import 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 FeaturesStore from '../../stores/FeaturesStore'; 9import FeaturesStore from '../../stores/FeaturesStore';
10import SettingsStore from '../../stores/SettingsStore';
10import Form from '../../lib/Form'; 11import Form from '../../lib/Form';
11import { gaPage } from '../../lib/analytics'; 12import { gaPage } from '../../lib/analytics';
12 13
@@ -51,10 +52,13 @@ const messages = defineMessages({
51 id: 'settings.service.form.icon', 52 id: 'settings.service.form.icon',
52 defaultMessage: '!!!Custom icon', 53 defaultMessage: '!!!Custom icon',
53 }, 54 },
55 enableDarkMode: {
56 id: 'settings.service.form.enableDarkMode',
57 defaultMessage: '!!!Enable Dark Mode',
58 },
54}); 59});
55 60
56@inject('stores', 'actions') @observer 61export default @inject('stores', 'actions') @observer class EditServiceScreen extends Component {
57export default class EditServiceScreen extends Component {
58 static contextTypes = { 62 static contextTypes = {
59 intl: intlShape, 63 intl: intlShape,
60 }; 64 };
@@ -113,6 +117,11 @@ export default class EditServiceScreen extends Component {
113 default: null, 117 default: null,
114 type: 'file', 118 type: 'file',
115 }, 119 },
120 isDarkModeEnabled: {
121 label: intl.formatMessage(messages.enableDarkMode),
122 value: service.isDarkModeEnabled,
123 default: this.props.stores.settings.all.app.darkMode,
124 },
116 }, 125 },
117 }; 126 };
118 127
@@ -245,6 +254,7 @@ EditServiceScreen.wrappedComponent.propTypes = {
245 recipes: PropTypes.instanceOf(RecipesStore).isRequired, 254 recipes: PropTypes.instanceOf(RecipesStore).isRequired,
246 services: PropTypes.instanceOf(ServicesStore).isRequired, 255 services: PropTypes.instanceOf(ServicesStore).isRequired,
247 features: PropTypes.instanceOf(FeaturesStore).isRequired, 256 features: PropTypes.instanceOf(FeaturesStore).isRequired,
257 settings: PropTypes.instanceOf(SettingsStore).isRequired,
248 }).isRequired, 258 }).isRequired,
249 router: PropTypes.shape({ 259 router: PropTypes.shape({
250 params: PropTypes.shape({ 260 params: PropTypes.shape({
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js
index 1fa7ce8bc..df6442eb8 100644
--- a/src/containers/settings/EditSettingsScreen.js
+++ b/src/containers/settings/EditSettingsScreen.js
@@ -39,6 +39,10 @@ const messages = defineMessages({
39 id: 'settings.app.form.language', 39 id: 'settings.app.form.language',
40 defaultMessage: '!!!Language', 40 defaultMessage: '!!!Language',
41 }, 41 },
42 darkMode: {
43 id: 'settings.app.form.darkMode',
44 defaultMessage: '!!!Dark Mode',
45 },
42 showDisabledServices: { 46 showDisabledServices: {
43 id: 'settings.app.form.showDisabledServices', 47 id: 'settings.app.form.showDisabledServices',
44 defaultMessage: '!!!Display disabled services tabs', 48 defaultMessage: '!!!Display disabled services tabs',
@@ -51,22 +55,21 @@ const messages = defineMessages({
51 id: 'settings.app.form.enableSpellchecking', 55 id: 'settings.app.form.enableSpellchecking',
52 defaultMessage: '!!!Enable spell checking', 56 defaultMessage: '!!!Enable spell checking',
53 }, 57 },
58 enableGPUAcceleration: {
59 id: 'settings.app.form.enableGPUAcceleration',
60 defaultMessage: '!!!Enable GPU Acceleration',
61 },
54 spellcheckingLanguage: { 62 spellcheckingLanguage: {
55 id: 'settings.app.form.spellcheckingLanguage', 63 id: 'settings.app.form.spellcheckingLanguage',
56 defaultMessage: '!!!Language for spell checking', 64 defaultMessage: '!!!Language for spell checking',
57 }, 65 },
58 // spellcheckingAutomaticDetection: {
59 // id: 'settings.app.form.spellcheckingAutomaticDetection',
60 // defaultMessage: '!!!Detect language automatically',
61 // },
62 beta: { 66 beta: {
63 id: 'settings.app.form.beta', 67 id: 'settings.app.form.beta',
64 defaultMessage: '!!!Include beta versions', 68 defaultMessage: '!!!Include beta versions',
65 }, 69 },
66}); 70});
67 71
68@inject('stores', 'actions') @observer 72export default @inject('stores', 'actions') @observer class EditSettingsScreen extends Component {
69export default class EditSettingsScreen extends Component {
70 static contextTypes = { 73 static contextTypes = {
71 intl: intlShape, 74 intl: intlShape,
72 }; 75 };
@@ -84,22 +87,25 @@ export default class EditSettingsScreen extends Component {
84 }); 87 });
85 88
86 settings.update({ 89 settings.update({
87 settings: { 90 type: 'app',
91 data: {
88 runInBackground: settingsData.runInBackground, 92 runInBackground: settingsData.runInBackground,
89 enableSystemTray: settingsData.enableSystemTray, 93 enableSystemTray: settingsData.enableSystemTray,
90 minimizeToSystemTray: settingsData.minimizeToSystemTray, 94 minimizeToSystemTray: settingsData.minimizeToSystemTray,
95 enableGPUAcceleration: settingsData.enableGPUAcceleration,
91 showDisabledServices: settingsData.showDisabledServices, 96 showDisabledServices: settingsData.showDisabledServices,
97 darkMode: settingsData.darkMode,
92 showMessageBadgeWhenMuted: settingsData.showMessageBadgeWhenMuted, 98 showMessageBadgeWhenMuted: settingsData.showMessageBadgeWhenMuted,
93 enableSpellchecking: settingsData.enableSpellchecking, 99 enableSpellchecking: settingsData.enableSpellchecking,
94 // spellcheckingLanguage: settingsData.spellcheckingLanguage, 100 beta: settingsData.beta, // we need this info in the main process as well
95 locale: settingsData.locale, 101 locale: settingsData.locale, // we need this info in the main process as well
96 beta: settingsData.beta,
97 }, 102 },
98 }); 103 });
99 104
100 user.update({ 105 user.update({
101 userData: { 106 userData: {
102 beta: settingsData.beta, 107 beta: settingsData.beta,
108 locale: settingsData.locale,
103 }, 109 },
104 }); 110 });
105 } 111 }
@@ -116,17 +122,6 @@ export default class EditSettingsScreen extends Component {
116 }); 122 });
117 }); 123 });
118 124
119 // const spellcheckerLocales = [{
120 // value: 'auto',
121 // label: intl.formatMessage(messages.spellcheckingAutomaticDetection),
122 // }];
123 // Object.keys(SPELLCHECKER_LOCALES).forEach((key) => {
124 // spellcheckerLocales.push({
125 // value: key,
126 // label: SPELLCHECKER_LOCALES[key],
127 // });
128 // });
129
130 const config = { 125 const config = {
131 fields: { 126 fields: {
132 autoLaunchOnStart: { 127 autoLaunchOnStart: {
@@ -141,40 +136,44 @@ export default class EditSettingsScreen extends Component {
141 }, 136 },
142 runInBackground: { 137 runInBackground: {
143 label: intl.formatMessage(messages.runInBackground), 138 label: intl.formatMessage(messages.runInBackground),
144 value: settings.all.runInBackground, 139 value: settings.all.app.runInBackground,
145 default: DEFAULT_APP_SETTINGS.runInBackground, 140 default: DEFAULT_APP_SETTINGS.runInBackground,
146 }, 141 },
147 enableSystemTray: { 142 enableSystemTray: {
148 label: intl.formatMessage(messages.enableSystemTray), 143 label: intl.formatMessage(messages.enableSystemTray),
149 value: settings.all.enableSystemTray, 144 value: settings.all.app.enableSystemTray,
150 default: DEFAULT_APP_SETTINGS.enableSystemTray, 145 default: DEFAULT_APP_SETTINGS.enableSystemTray,
151 }, 146 },
152 minimizeToSystemTray: { 147 minimizeToSystemTray: {
153 label: intl.formatMessage(messages.minimizeToSystemTray), 148 label: intl.formatMessage(messages.minimizeToSystemTray),
154 value: settings.all.minimizeToSystemTray, 149 value: settings.all.app.minimizeToSystemTray,
155 default: DEFAULT_APP_SETTINGS.minimizeToSystemTray, 150 default: DEFAULT_APP_SETTINGS.minimizeToSystemTray,
156 }, 151 },
157 showDisabledServices: { 152 showDisabledServices: {
158 label: intl.formatMessage(messages.showDisabledServices), 153 label: intl.formatMessage(messages.showDisabledServices),
159 value: settings.all.showDisabledServices, 154 value: settings.all.app.showDisabledServices,
160 default: DEFAULT_APP_SETTINGS.showDisabledServices, 155 default: DEFAULT_APP_SETTINGS.showDisabledServices,
161 }, 156 },
162 showMessageBadgeWhenMuted: { 157 showMessageBadgeWhenMuted: {
163 label: intl.formatMessage(messages.showMessageBadgeWhenMuted), 158 label: intl.formatMessage(messages.showMessageBadgeWhenMuted),
164 value: settings.all.showMessageBadgeWhenMuted, 159 value: settings.all.app.showMessageBadgeWhenMuted,
165 default: DEFAULT_APP_SETTINGS.showMessageBadgeWhenMuted, 160 default: DEFAULT_APP_SETTINGS.showMessageBadgeWhenMuted,
166 }, 161 },
167 enableSpellchecking: { 162 enableSpellchecking: {
168 label: intl.formatMessage(messages.enableSpellchecking), 163 label: intl.formatMessage(messages.enableSpellchecking),
169 value: settings.all.enableSpellchecking, 164 value: settings.all.app.enableSpellchecking,
170 default: DEFAULT_APP_SETTINGS.enableSpellchecking, 165 default: DEFAULT_APP_SETTINGS.enableSpellchecking,
171 }, 166 },
172 // spellcheckingLanguage: { 167 darkMode: {
173 // label: intl.formatMessage(messages.spellcheckingLanguage), 168 label: intl.formatMessage(messages.darkMode),
174 // value: settings.all.spellcheckingLanguage, 169 value: settings.all.app.darkMode,
175 // options: spellcheckerLocales, 170 default: DEFAULT_APP_SETTINGS.darkMode,
176 // default: DEFAULT_APP_SETTINGS.spellcheckingLanguage, 171 },
177 // }, 172 enableGPUAcceleration: {
173 label: intl.formatMessage(messages.enableGPUAcceleration),
174 value: settings.all.app.enableGPUAcceleration,
175 default: DEFAULT_APP_SETTINGS.enableGPUAcceleration,
176 },
178 locale: { 177 locale: {
179 label: intl.formatMessage(messages.language), 178 label: intl.formatMessage(messages.language),
180 value: app.locale, 179 value: app.locale,
diff --git a/src/containers/settings/EditUserScreen.js b/src/containers/settings/EditUserScreen.js
index a67fa7fb5..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 };
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..9f7571bda 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,
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 824b4c20c..7b04406a2 100644
--- a/src/electron/Settings.js
+++ b/src/electron/Settings.js
@@ -1,27 +1,46 @@
1import { observable } from 'mobx'; 1import { observable, toJS } from 'mobx';
2import { pathExistsSync, outputJsonSync, readJsonSync } from 'fs-extra';
2 3
3import { DEFAULT_APP_SETTINGS } from '../config'; 4import { SETTINGS_PATH, DEFAULT_APP_SETTINGS } from '../config';
5
6const debug = require('debug')('Franz:Settings');
4 7
5export default class Settings { 8export default class Settings {
6 @observable store = { 9 @observable store = DEFAULT_APP_SETTINGS;
7 autoLaunchOnStart: DEFAULT_APP_SETTINGS.autoLaunchOnStart, 10
8 autoLaunchInBackground: DEFAULT_APP_SETTINGS.autoLaunchInBackground, 11 constructor() {
9 runInBackground: DEFAULT_APP_SETTINGS.runInBackground, 12 if (!pathExistsSync(SETTINGS_PATH)) {
10 enableSystemTray: DEFAULT_APP_SETTINGS.enableSystemTray, 13 this._writeFile();
11 minimizeToSystemTray: DEFAULT_APP_SETTINGS.minimizeToSystemTray, 14 } else {
12 locale: DEFAULT_APP_SETTINGS.locale, 15 this._hydrate();
13 beta: DEFAULT_APP_SETTINGS.beta, 16 }
14 }; 17 }
15 18
16 set(settings) { 19 set(settings) {
17 this.store = Object.assign(this.store, settings); 20 this.store = this._merge(settings);
21
22 this._writeFile();
18 } 23 }
19 24
20 all() { 25 get all() {
21 return this.store; 26 return this.store;
22 } 27 }
23 28
24 get(key) { 29 get(key) {
25 return this.store[key]; 30 return this.store[key];
26 } 31 }
32
33 _merge(settings) {
34 return Object.assign(DEFAULT_APP_SETTINGS, this.store, settings);
35 }
36
37 _hydrate() {
38 this.store = this._merge(readJsonSync(SETTINGS_PATH));
39 debug('Hydrate store', toJS(this.store));
40 }
41
42 _writeFile() {
43 outputJsonSync(SETTINGS_PATH, this.store);
44 debug('Write settings file', toJS(this.store));
45 }
27} 46}
diff --git a/src/electron/ipc-api/settings.js b/src/electron/ipc-api/settings.js
index 995b28fbd..3eab68a91 100644
--- a/src/electron/ipc-api/settings.js
+++ b/src/electron/ipc-api/settings.js
@@ -1,7 +1,11 @@
1import { ipcMain } from 'electron'; 1import { ipcMain } from 'electron';
2 2
3export default (params) => { 3export default (params) => {
4 ipcMain.on('settings', (event, args) => { 4 ipcMain.on('getAppSettings', () => {
5 params.mainWindow.webContents.send('appSettings', params.settings.all);
6 });
7
8 ipcMain.on('updateAppSettings', (event, args) => {
5 params.settings.set(args); 9 params.settings.set(args);
6 }); 10 });
7}; 11};
diff --git a/src/environment.js b/src/environment.js
index e185120c0..e1762129b 100644
--- a/src/environment.js
+++ b/src/environment.js
@@ -4,11 +4,17 @@ export const isDevMode = Boolean(process.execPath.match(/[\\/]electron/));
4export const useLiveAPI = process.env.LIVE_API; 4export const useLiveAPI = process.env.LIVE_API;
5export const useLocalAPI = process.env.LOCAL_API; 5export const useLocalAPI = process.env.LOCAL_API;
6 6
7export const isMac = process.platform === 'darwin'; 7let platform = process.platform;
8export const isWindows = process.platform === 'win32'; 8if (process.env.OS_PLATFORM) {
9export const isLinux = process.platform === 'linux'; 9 platform = process.env.OS_PLATFORM;
10}
11
12export const isMac = platform === 'darwin';
13export const isWindows = platform === 'win32';
14export const isLinux = platform === 'linux';
10 15
11export const ctrlKey = isMac ? '⌘' : 'Ctrl'; 16export const ctrlKey = isMac ? '⌘' : 'Ctrl';
17export const cmdKey = isMac ? 'Cmd' : 'Ctrl';
12 18
13let api; 19let api;
14if (!isDevMode || (isDevMode && useLiveAPI)) { 20if (!isDevMode || (isDevMode && useLiveAPI)) {
diff --git a/src/helpers/validation-helpers.js b/src/helpers/validation-helpers.js
index a8a242d54..2f762437d 100644
--- a/src/helpers/validation-helpers.js
+++ b/src/helpers/validation-helpers.js
@@ -1,6 +1,31 @@
1import { defineMessages } from 'react-intl';
2
3const messages = defineMessages({
4 required: {
5 id: 'validation.required',
6 defaultMessage: '!!!Field is required',
7 },
8 email: {
9 id: 'validation.email',
10 defaultMessage: '!!!Email not valid',
11 },
12 url: {
13 id: 'validation.url',
14 defaultMessage: '!!!Not a valid URL',
15 },
16 minLength: {
17 id: 'validation.minLength',
18 defaultMessage: '!!!Too few characters',
19 },
20 oneRequired: {
21 id: 'validation.oneRequired',
22 defaultMessage: '!!!At least one is required',
23 },
24});
25
1export function required({ field }) { 26export function required({ field }) {
2 const isValid = (field.value.trim() !== ''); 27 const isValid = (field.value.trim() !== '');
3 return [isValid, `${field.label} is required`]; 28 return [isValid, window.franz.intl.formatMessage(messages.required, { field: field.label })];
4} 29}
5 30
6export function email({ field }) { 31export function email({ field }) {
@@ -13,7 +38,7 @@ export function email({ field }) {
13 isValid = true; 38 isValid = true;
14 } 39 }
15 40
16 return [isValid, `${field.label} not valid`]; 41 return [isValid, window.franz.intl.formatMessage(messages.email, { field: field.label })];
17} 42}
18 43
19export function url({ field }) { 44export function url({ field }) {
@@ -27,7 +52,7 @@ export function url({ field }) {
27 isValid = true; 52 isValid = true;
28 } 53 }
29 54
30 return [isValid, `${field.label} is not a valid url`]; 55 return [isValid, window.franz.intl.formatMessage(messages.url, { field: field.label })];
31} 56}
32 57
33export function minLength(length) { 58export function minLength(length) {
@@ -36,13 +61,13 @@ export function minLength(length) {
36 if (field.touched) { 61 if (field.touched) {
37 isValid = field.value.length >= length; 62 isValid = field.value.length >= length;
38 } 63 }
39 return [isValid, `${field.label} should be at least ${length} characters long.`]; 64 return [isValid, window.franz.intl.formatMessage(messages.minLength, { field: field.label, length })];
40 }; 65 };
41} 66}
42 67
43export function oneRequired(targets) { 68export function oneRequired(targets) {
44 return ({ field, form }) => { 69 return ({ field, form }) => {
45 const invalidFields = targets.filter(target => form.$(target).value === ''); 70 const invalidFields = targets.filter(target => form.$(target).value === '');
46 return [targets.length !== invalidFields.length, `${field.label} is required`]; 71 return [targets.length !== invalidFields.length, window.franz.intl.formatMessage(messages.required, { field: field.label })];
47 }; 72 };
48} 73}
diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json
index 524dfe0fb..4ea3eb1a7 100644
--- a/src/i18n/locales/ca.json
+++ b/src/i18n/locales/ca.json
@@ -26,6 +26,49 @@
26 "login.serverLogout" : "La teva sessió ha caducat, torna a iniciar la sessió.", 26 "login.serverLogout" : "La teva sessió ha caducat, torna a iniciar la sessió.",
27 "login.submit.label" : "Accedir", 27 "login.submit.label" : "Accedir",
28 "login.tokenExpired" : "La teva sessió ha caducat, torna a iniciar la sessió.", 28 "login.tokenExpired" : "La teva sessió ha caducat, torna a iniciar la sessió.",
29 "menu.app.about" : "Sobre Franz",
30 "menu.app.hide" : "Amaga",
31 "menu.app.hideOthers" : "Amaga altres",
32 "menu.app.quit" : "Surt",
33 "menu.app.settings" : "Configuració",
34 "menu.app.unhide" : "Mostra",
35 "menu.edit" : "Edita",
36 "menu.edit.copy" : "Copia",
37 "menu.edit.cut" : "Retalla",
38 "menu.edit.delete" : "Suprimeix",
39 "menu.edit.emojiSymbols" : "Emoji i Símbols",
40 "menu.edit.paste" : "Enganxa",
41 "menu.edit.pasteAndMatchStyle" : "Enganxa amb els estils",
42 "menu.edit.redo" : "Refés",
43 "menu.edit.selectAll" : "Selecciona-ho tot",
44 "menu.edit.speech" : "Pronuncia",
45 "menu.edit.startDictation" : "Inicia el dictat",
46 "menu.edit.startSpeaking" : "Inicia la parla",
47 "menu.edit.stopSpeaking" : "Atura la parla",
48 "menu.edit.undo" : "Desfés",
49 "menu.file" : "Fitxer",
50 "menu.help" : "Ajuda",
51 "menu.help.changelog" : "Registre de canvis",
52 "menu.help.learnMore" : "Conegueu-ne més detalls",
53 "menu.help.privacy" : "Declaració de privacitat",
54 "menu.help.support" : "Suport",
55 "menu.help.tos" : "Condicions del Servei",
56 "menu.services" : "Serveis",
57 "menu.services.addNewService" : "Afegeix un servei...",
58 "menu.view" : "Visualitza",
59 "menu.view.enterFullScreen" : "Inicia la pantalla completa",
60 "menu.view.exitFullScreen" : "Surt de pantalla completa",
61 "menu.view.reloadFranz" : "Torna a carregar Franz",
62 "menu.view.reloadService" : "Torna a carregar el servei",
63 "menu.view.resetZoom" : "Mida real",
64 "menu.view.toggleDevTools" : "Activa serveis per a desenvolupadors",
65 "menu.view.toggleFullScreen" : "Activa la pantalla completa",
66 "menu.view.toggleServiceDevTools" : "Habilita les eines de desenvolupador de serveis",
67 "menu.view.zoomIn" : "Amplia",
68 "menu.view.zoomOut" : "Redueix",
69 "menu.window" : "Finestra",
70 "menu.window.close" : "Tanca",
71 "menu.window.minimize" : "Minimitza",
29 "password.email.label" : "Correu electrònic", 72 "password.email.label" : "Correu electrònic",
30 "password.headline" : "Restablir contrasenya", 73 "password.headline" : "Restablir contrasenya",
31 "password.link.login" : "Inicia la sessió al teu compte", 74 "password.link.login" : "Inicia la sessió al teu compte",
@@ -73,6 +116,7 @@
73 "settings.app.form.autoLaunchInBackground" : "Obrir en segon plà", 116 "settings.app.form.autoLaunchInBackground" : "Obrir en segon plà",
74 "settings.app.form.autoLaunchOnStart" : "Iniciar Franz a l'inici", 117 "settings.app.form.autoLaunchOnStart" : "Iniciar Franz a l'inici",
75 "settings.app.form.beta" : "Inclou versions beta", 118 "settings.app.form.beta" : "Inclou versions beta",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
76 "settings.app.form.enableMenuBar" : "Mostra Franz a la barra de menú", 120 "settings.app.form.enableMenuBar" : "Mostra Franz a la barra de menú",
77 "settings.app.form.enableSpellchecking" : "Habilita la comprobació ortogràfica", 121 "settings.app.form.enableSpellchecking" : "Habilita la comprobació ortogràfica",
78 "settings.app.form.enableSystemTray" : "Mostra Franz a la safata del sistema", 122 "settings.app.form.enableSystemTray" : "Mostra Franz a la safata del sistema",
@@ -197,6 +241,10 @@
197 "tabs.item.enableNotification" : "Activa les notificacions", 241 "tabs.item.enableNotification" : "Activa les notificacions",
198 "tabs.item.enableService" : "Activa el servei", 242 "tabs.item.enableService" : "Activa el servei",
199 "tabs.item.reload" : "Recarrega", 243 "tabs.item.reload" : "Recarrega",
244 "validation.email" : "{field} no es vàlid",
245 "validation.minLength" : "{field} ha de ser al menys {length} caràcters de llargada",
246 "validation.required" : "{field} es requerit",
247 "validation.url" : "{field} es una URL no vàlida",
200 "welcome.loginButton" : "Inicia sessió al teu compte", 248 "welcome.loginButton" : "Inicia sessió al teu compte",
201 "welcome.signupButton" : "Crea un compte gratuït", 249 "welcome.signupButton" : "Crea un compte gratuït",
202 "welcome.slogan" : "Crea un compte gratuït" 250 "welcome.slogan" : "Crea un compte gratuït"
diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json
index 62eb4a1ee..ed4c7a468 100644
--- a/src/i18n/locales/cs.json
+++ b/src/i18n/locales/cs.json
@@ -26,6 +26,49 @@
26 "login.serverLogout" : "Sezení vypršelo, je třeba se znovu přihlásit.", 26 "login.serverLogout" : "Sezení vypršelo, je třeba se znovu přihlásit.",
27 "login.submit.label" : "Přihlásit se", 27 "login.submit.label" : "Přihlásit se",
28 "login.tokenExpired" : "Sezení vypršelo, prosím přihlaste se znovu", 28 "login.tokenExpired" : "Sezení vypršelo, prosím přihlaste se znovu",
29 "menu.app.about" : "O aplikaci",
30 "menu.app.hide" : "Skrýt",
31 "menu.app.hideOthers" : "Skryt ostatní",
32 "menu.app.quit" : "UkonÄit",
33 "menu.app.settings" : "Nastavení",
34 "menu.app.unhide" : "Odkrýt",
35 "menu.edit" : "Upravit",
36 "menu.edit.copy" : "Kopírovat",
37 "menu.edit.cut" : "Vyjmout",
38 "menu.edit.delete" : "Smazat",
39 "menu.edit.emojiSymbols" : "Emoji a znaky",
40 "menu.edit.paste" : "Vložit",
41 "menu.edit.pasteAndMatchStyle" : "Vložit vÄetnÄ› formátování",
42 "menu.edit.redo" : "Vpřed",
43 "menu.edit.selectAll" : "Vybrat vše",
44 "menu.edit.speech" : "Mluvené slovo",
45 "menu.edit.startDictation" : "ZaÄít diktovat",
46 "menu.edit.startSpeaking" : "ZaÄít mluvit",
47 "menu.edit.stopSpeaking" : "Přestat mluvit",
48 "menu.edit.undo" : "Vrátit zpět",
49 "menu.file" : "Soubor",
50 "menu.help" : "Nápověda",
51 "menu.help.changelog" : "Seznam změn",
52 "menu.help.learnMore" : "Dozvědět se více",
53 "menu.help.privacy" : "Prohlášení o ochraně soukromí",
54 "menu.help.support" : "Podpora",
55 "menu.help.tos" : "Podmínky použití",
56 "menu.services" : "Služby",
57 "menu.services.addNewService" : "Přidat novou službu...",
58 "menu.view" : "Zobrazení",
59 "menu.view.enterFullScreen" : "Spustit režim celé obrazovky",
60 "menu.view.exitFullScreen" : "UkonÄit celoobrazovkový režim",
61 "menu.view.reloadFranz" : "Obnovit Franze",
62 "menu.view.reloadService" : "Obnovit službu",
63 "menu.view.resetZoom" : "SkuteÄná velikost",
64 "menu.view.toggleDevTools" : "Zobrazit Vývojářské nástroje",
65 "menu.view.toggleFullScreen" : "Přepnout na celou obrazovku",
66 "menu.view.toggleServiceDevTools" : "Zobrazit Vývojářské nástroje pro službu",
67 "menu.view.zoomIn" : "Přiblížit",
68 "menu.view.zoomOut" : "Oddálit",
69 "menu.window" : "Okno",
70 "menu.window.close" : "Zavřít",
71 "menu.window.minimize" : "Minimalizovat",
29 "password.email.label" : "E-mailová adresa", 72 "password.email.label" : "E-mailová adresa",
30 "password.headline" : "Obnovit heslo", 73 "password.headline" : "Obnovit heslo",
31 "password.link.login" : "PÅ™ihlásit se k úÄtu", 74 "password.link.login" : "PÅ™ihlásit se k úÄtu",
@@ -73,6 +116,7 @@
73 "settings.app.form.autoLaunchInBackground" : "Spustit na pozadí", 116 "settings.app.form.autoLaunchInBackground" : "Spustit na pozadí",
74 "settings.app.form.autoLaunchOnStart" : "Spustit Franz při startu", 117 "settings.app.form.autoLaunchOnStart" : "Spustit Franz při startu",
75 "settings.app.form.beta" : "Zahrnout beta verze", 118 "settings.app.form.beta" : "Zahrnout beta verze",
119 "settings.app.form.enableGPUAcceleration" : "Aktivovat GPU zrychlení",
76 "settings.app.form.enableMenuBar" : "Zobraz Franz v Menu nabídce", 120 "settings.app.form.enableMenuBar" : "Zobraz Franz v Menu nabídce",
77 "settings.app.form.enableSpellchecking" : "Zapnout kontrolu pravopisu", 121 "settings.app.form.enableSpellchecking" : "Zapnout kontrolu pravopisu",
78 "settings.app.form.enableSystemTray" : "Zobrazit Franz v systémové liště", 122 "settings.app.form.enableSystemTray" : "Zobrazit Franz v systémové liště",
@@ -197,6 +241,10 @@
197 "tabs.item.enableNotification" : "Povolit oznamování", 241 "tabs.item.enableNotification" : "Povolit oznamování",
198 "tabs.item.enableService" : "Zapnout službu", 242 "tabs.item.enableService" : "Zapnout službu",
199 "tabs.item.reload" : "Obnovit", 243 "tabs.item.reload" : "Obnovit",
244 "validation.email" : "{field} není validní",
245 "validation.minLength" : "{field} musí být alespoň {length} znaků dlouhé",
246 "validation.required" : "{field} je povinné",
247 "validation.url" : "{field} není validní URL",
200 "welcome.loginButton" : "PÅ™ihlášení do vaÅ¡eho úÄtu", 248 "welcome.loginButton" : "PÅ™ihlášení do vaÅ¡eho úÄtu",
201 "welcome.signupButton" : "VytvoÅ™it úÄet zdarma", 249 "welcome.signupButton" : "VytvoÅ™it úÄet zdarma",
202 "welcome.slogan" : "Zprávy, které pracují pro vás" 250 "welcome.slogan" : "Zprávy, které pracují pro vás"
diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json
index 7a03cce87..fa61d26d4 100644
--- a/src/i18n/locales/de.json
+++ b/src/i18n/locales/de.json
@@ -6,7 +6,7 @@
6 "import.skip.label" : "Ich möchte Dienste selbst hinzufügen", 6 "import.skip.label" : "Ich möchte Dienste selbst hinzufügen",
7 "import.submit.label" : "Dienste importieren", 7 "import.submit.label" : "Dienste importieren",
8 "infobar.buttonChangelog" : "Was gibt es neues?", 8 "infobar.buttonChangelog" : "Was gibt es neues?",
9 "infobar.buttonInstallUpdate" : "Neustarten & Update installieren", 9 "infobar.buttonInstallUpdate" : "Neu starten & Update installieren",
10 "infobar.buttonReloadServices" : "Dienste neuladen", 10 "infobar.buttonReloadServices" : "Dienste neuladen",
11 "infobar.requiredRequestsFailed" : "Dienste und Benutzerinformationen konnten nicht geladen werden", 11 "infobar.requiredRequestsFailed" : "Dienste und Benutzerinformationen konnten nicht geladen werden",
12 "infobar.servicesUpdated" : "Deine Dienste wurden aktualisiert.", 12 "infobar.servicesUpdated" : "Deine Dienste wurden aktualisiert.",
@@ -26,6 +26,49 @@
26 "login.serverLogout" : "Deine Sitzung ist abgelaufen, bitte melde dich erneut an.", 26 "login.serverLogout" : "Deine Sitzung ist abgelaufen, bitte melde dich erneut an.",
27 "login.submit.label" : "Anmelden", 27 "login.submit.label" : "Anmelden",
28 "login.tokenExpired" : "Deine Sitzung ist abgelaufen, bitte melde dich erneut an.", 28 "login.tokenExpired" : "Deine Sitzung ist abgelaufen, bitte melde dich erneut an.",
29 "menu.app.about" : "Ãœber Franz",
30 "menu.app.hide" : "Franz ausblenden",
31 "menu.app.hideOthers" : "Andere ausblenden",
32 "menu.app.quit" : "Franz Beenden",
33 "menu.app.settings" : "Einstellungen",
34 "menu.app.unhide" : "Alle einblenden",
35 "menu.edit" : "Bearbeiten",
36 "menu.edit.copy" : "Kopieren",
37 "menu.edit.cut" : "Ausschneiden",
38 "menu.edit.delete" : "Löschen",
39 "menu.edit.emojiSymbols" : "Emoji & Symbole",
40 "menu.edit.paste" : "Einfügen",
41 "menu.edit.pasteAndMatchStyle" : "Einfügen und Stil anpassen",
42 "menu.edit.redo" : "Wiederholen",
43 "menu.edit.selectAll" : "Alle auswählen",
44 "menu.edit.speech" : "Sprachausgabe",
45 "menu.edit.startDictation" : "Diktat starten ...",
46 "menu.edit.startSpeaking" : "Sprachausgabe starten",
47 "menu.edit.stopSpeaking" : "Sprachausgabe stoppen",
48 "menu.edit.undo" : "Widerrufen",
49 "menu.file" : "Datei",
50 "menu.help" : "Hilfe",
51 "menu.help.changelog" : "Changelog",
52 "menu.help.learnMore" : "Mehr erfahren",
53 "menu.help.privacy" : "Datenschutzerklärung",
54 "menu.help.support" : "Hilfe",
55 "menu.help.tos" : "Nutzungsbedingungen",
56 "menu.services" : "Dienste",
57 "menu.services.addNewService" : "Dienst hinzufügen",
58 "menu.view" : "Darstellung",
59 "menu.view.enterFullScreen" : "Vollbildmodus",
60 "menu.view.exitFullScreen" : "Vollbildmodus aus",
61 "menu.view.reloadFranz" : "Franz neu laden",
62 "menu.view.reloadService" : "Dienst neu laden",
63 "menu.view.resetZoom" : "Originalgröße",
64 "menu.view.toggleDevTools" : "Entwicklertools anzeigen",
65 "menu.view.toggleFullScreen" : "Vollbildmodus umschalten",
66 "menu.view.toggleServiceDevTools" : "Entwicklertools für Dienst anzeigen",
67 "menu.view.zoomIn" : "Vergrößern",
68 "menu.view.zoomOut" : "Verkleinern",
69 "menu.window" : "Fenster",
70 "menu.window.close" : "Schließen",
71 "menu.window.minimize" : "Minimieren",
29 "password.email.label" : "E-Mail Adresse", 72 "password.email.label" : "E-Mail Adresse",
30 "password.headline" : "Passwort zurücksetzen", 73 "password.headline" : "Passwort zurücksetzen",
31 "password.link.login" : "An deinem Konto anmelden", 74 "password.link.login" : "An deinem Konto anmelden",
@@ -66,13 +109,14 @@
66 "settings.account.tryReloadUserInfoRequest" : "Erneut versuchen", 109 "settings.account.tryReloadUserInfoRequest" : "Erneut versuchen",
67 "settings.account.userInfoRequestFailed" : "Benutzerinformationen konnten nicht geladen werden", 110 "settings.account.userInfoRequestFailed" : "Benutzerinformationen konnten nicht geladen werden",
68 "settings.app.buttonClearAllCache" : "Cache leeren", 111 "settings.app.buttonClearAllCache" : "Cache leeren",
69 "settings.app.buttonInstallUpdate" : "Neustarten & Update installieren", 112 "settings.app.buttonInstallUpdate" : "Neu starten & Update installieren",
70 "settings.app.buttonSearchForUpdate" : "Nach Updates suchen", 113 "settings.app.buttonSearchForUpdate" : "Nach Updates suchen",
71 "settings.app.cacheInfo" : "Der Franz Cache belegt derzeit {size}.", 114 "settings.app.cacheInfo" : "Der Franz Cache belegt derzeit {size}.",
72 "settings.app.currentVersion" : "Aktuelle Version:", 115 "settings.app.currentVersion" : "Aktuelle Version:",
73 "settings.app.form.autoLaunchInBackground" : "Im Hintergrund öffnen", 116 "settings.app.form.autoLaunchInBackground" : "Im Hintergrund öffnen",
74 "settings.app.form.autoLaunchOnStart" : "Franz beim Systemstart ausführen", 117 "settings.app.form.autoLaunchOnStart" : "Franz beim Systemstart ausführen",
75 "settings.app.form.beta" : "Beta-Versionen einbeziehen", 118 "settings.app.form.beta" : "Beta-Versionen einbeziehen",
119 "settings.app.form.enableGPUAcceleration" : "Hardwarebeschleunigung aktivieren",
76 "settings.app.form.enableMenuBar" : "Franz in Menüleiste anzeigen", 120 "settings.app.form.enableMenuBar" : "Franz in Menüleiste anzeigen",
77 "settings.app.form.enableSpellchecking" : "Rechtschreibprüfung aktivieren", 121 "settings.app.form.enableSpellchecking" : "Rechtschreibprüfung aktivieren",
78 "settings.app.form.enableSystemTray" : "Franz in der Systemleiste anzeigen", 122 "settings.app.form.enableSystemTray" : "Franz in der Systemleiste anzeigen",
@@ -157,7 +201,7 @@
157 "settings.user.form.firstname" : "Vorname", 201 "settings.user.form.firstname" : "Vorname",
158 "settings.user.form.lastname" : "Nachname", 202 "settings.user.form.lastname" : "Nachname",
159 "settings.user.form.newPassword" : "Neues Passwort", 203 "settings.user.form.newPassword" : "Neues Passwort",
160 "sidebar.addNewService" : "Neuem Dienst hinzufügen", 204 "sidebar.addNewService" : "Neuen Dienst hinzufügen",
161 "sidebar.muteApp" : "Benachrichtigungen & Audio deaktivieren", 205 "sidebar.muteApp" : "Benachrichtigungen & Audio deaktivieren",
162 "sidebar.settings" : "Einstellungen", 206 "sidebar.settings" : "Einstellungen",
163 "sidebar.unmuteApp" : "Benachrichtigungen & Audio aktivieren", 207 "sidebar.unmuteApp" : "Benachrichtigungen & Audio aktivieren",
@@ -197,6 +241,10 @@
197 "tabs.item.enableNotification" : "Benachrichtigungen aktivieren", 241 "tabs.item.enableNotification" : "Benachrichtigungen aktivieren",
198 "tabs.item.enableService" : "Dienst aktivieren", 242 "tabs.item.enableService" : "Dienst aktivieren",
199 "tabs.item.reload" : "Neuladen", 243 "tabs.item.reload" : "Neuladen",
244 "validation.email" : "{field} ist ungültig",
245 "validation.minLength" : "{field} muss mindestens {length} Zeichen enthalten",
246 "validation.required" : "{field} wird benötigt",
247 "validation.url" : "{field} ist keine gültige URL",
200 "welcome.loginButton" : "Bei Franz einloggen", 248 "welcome.loginButton" : "Bei Franz einloggen",
201 "welcome.signupButton" : "Kostenloses Konto erstellen", 249 "welcome.signupButton" : "Kostenloses Konto erstellen",
202 "welcome.slogan" : "Kommunikation, die für dich funktioniert" 250 "welcome.slogan" : "Kommunikation, die für dich funktioniert"
diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json
index b0c465940..7361d29b7 100644
--- a/src/i18n/locales/el.json
+++ b/src/i18n/locales/el.json
@@ -26,6 +26,49 @@
26 "login.serverLogout" : "Η συνεδÏία σας έληξε, συνδεθείτε ξανά.", 26 "login.serverLogout" : "Η συνεδÏία σας έληξε, συνδεθείτε ξανά.",
27 "login.submit.label" : "ΣÏνδεση", 27 "login.submit.label" : "ΣÏνδεση",
28 "login.tokenExpired" : "Η συνεδÏία σας έληξε, συνδεθείτε ξανά.", 28 "login.tokenExpired" : "Η συνεδÏία σας έληξε, συνδεθείτε ξανά.",
29 "menu.app.about" : "About Franz",
30 "menu.app.hide" : "Hide",
31 "menu.app.hideOthers" : "Hide Others",
32 "menu.app.quit" : "Quit",
33 "menu.app.settings" : "Ρυθμίσεις",
34 "menu.app.unhide" : "Unhide",
35 "menu.edit" : "ΕπεξεÏγασία",
36 "menu.edit.copy" : "Copy",
37 "menu.edit.cut" : "Cut",
38 "menu.edit.delete" : "ΔιαγÏαφή",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols",
40 "menu.edit.paste" : "Paste",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style",
42 "menu.edit.redo" : "Redo",
43 "menu.edit.selectAll" : "Select All",
44 "menu.edit.speech" : "Speech",
45 "menu.edit.startDictation" : "Start Dictation",
46 "menu.edit.startSpeaking" : "Start Speaking",
47 "menu.edit.stopSpeaking" : "Stop Speaking",
48 "menu.edit.undo" : "Undo",
49 "menu.file" : "File",
50 "menu.help" : "Help",
51 "menu.help.changelog" : "Changelog",
52 "menu.help.learnMore" : "Learn More",
53 "menu.help.privacy" : "Δήλωση αποÏÏήτου",
54 "menu.help.support" : "Support",
55 "menu.help.tos" : "Terms of Service",
56 "menu.services" : "Services",
57 "menu.services.addNewService" : "Add New Service...",
58 "menu.view" : "View",
59 "menu.view.enterFullScreen" : "Enter Full Screen",
60 "menu.view.exitFullScreen" : "Exit Full Screen",
61 "menu.view.reloadFranz" : "Reload Franz",
62 "menu.view.reloadService" : "Reload Service",
63 "menu.view.resetZoom" : "Actual Size",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools",
67 "menu.view.zoomIn" : "Zoom In",
68 "menu.view.zoomOut" : "Zoom Out",
69 "menu.window" : "Window",
70 "menu.window.close" : "Close",
71 "menu.window.minimize" : "Minimize",
29 "password.email.label" : "ΔιεÏθυνση ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Ï„Î±Ï‡Ï…Î´Ïομείου", 72 "password.email.label" : "ΔιεÏθυνση ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Ï„Î±Ï‡Ï…Î´Ïομείου",
30 "password.headline" : "ΕπαναφοÏά ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης", 73 "password.headline" : "ΕπαναφοÏά ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης",
31 "password.link.login" : "ΣÏνδεση στο λογαÏιασμό σας", 74 "password.link.login" : "ΣÏνδεση στο λογαÏιασμό σας",
@@ -73,6 +116,7 @@
73 "settings.app.form.autoLaunchInBackground" : "Άνοιγμα στο παÏασκήνιο", 116 "settings.app.form.autoLaunchInBackground" : "Άνοιγμα στο παÏασκήνιο",
74 "settings.app.form.autoLaunchOnStart" : "Εκκίνηση του Franz κατά την εκκίνηση του συστήματος", 117 "settings.app.form.autoLaunchOnStart" : "Εκκίνηση του Franz κατά την εκκίνηση του συστήματος",
75 "settings.app.form.beta" : "ΣυμπεÏιλάβετε εκδόσεις beta", 118 "settings.app.form.beta" : "ΣυμπεÏιλάβετε εκδόσεις beta",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
76 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", 120 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar",
77 "settings.app.form.enableSpellchecking" : "ΕνεÏγοποίηση οÏθογÏÎ±Ï†Î¹ÎºÎ¿Ï ÎµÎ»Î­Î³Ï‡Î¿Ï…", 121 "settings.app.form.enableSpellchecking" : "ΕνεÏγοποίηση οÏθογÏÎ±Ï†Î¹ÎºÎ¿Ï ÎµÎ»Î­Î³Ï‡Î¿Ï…",
78 "settings.app.form.enableSystemTray" : "Εμφάνιση του Franz στη γÏαμμή ειδοποιήσεων", 122 "settings.app.form.enableSystemTray" : "Εμφάνιση του Franz στη γÏαμμή ειδοποιήσεων",
@@ -197,6 +241,10 @@
197 "tabs.item.enableNotification" : "ΕνεÏγοποίηση ειδοποιήσεων", 241 "tabs.item.enableNotification" : "ΕνεÏγοποίηση ειδοποιήσεων",
198 "tabs.item.enableService" : "ΕνεÏγοποίηση υπηÏεσίας", 242 "tabs.item.enableService" : "ΕνεÏγοποίηση υπηÏεσίας",
199 "tabs.item.reload" : "ΕπαναφόÏτωση", 243 "tabs.item.reload" : "ΕπαναφόÏτωση",
244 "validation.email" : "{field} is not valid",
245 "validation.minLength" : "{field} should be at least {length} characters long",
246 "validation.required" : "{field} is required",
247 "validation.url" : "{field} is not a valid URL",
200 "welcome.loginButton" : "ΣÏνδεση στο λογαÏιασμό σας", 248 "welcome.loginButton" : "ΣÏνδεση στο λογαÏιασμό σας",
201 "welcome.signupButton" : "ΔημιουÏγία δωÏεάν λογαÏιασμοÏ", 249 "welcome.signupButton" : "ΔημιουÏγία δωÏεάν λογαÏιασμοÏ",
202 "welcome.slogan" : "Επικοινωνία που λειτουÏγεί για εσάς" 250 "welcome.slogan" : "Επικοινωνία που λειτουÏγεί για εσάς"
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json
index d5c0ea441..66ec5af84 100644
--- a/src/i18n/locales/en-US.json
+++ b/src/i18n/locales/en-US.json
@@ -130,6 +130,7 @@
130 "settings.service.form.icon": "Custom icon", 130 "settings.service.form.icon": "Custom icon",
131 "settings.service.form.iconDelete": "Delete", 131 "settings.service.form.iconDelete": "Delete",
132 "settings.service.form.iconUpload": "Drop your image, or click here", 132 "settings.service.form.iconUpload": "Drop your image, or click here",
133 "settings.service.form.enableDarkMode": "Enable Dark Mode",
133 "settings.service.error.headline": "Error", 134 "settings.service.error.headline": "Error",
134 "settings.service.error.goBack": "Back to services", 135 "settings.service.error.goBack": "Back to services",
135 "settings.service.error.message": "Could not load service recipe.", 136 "settings.service.error.message": "Could not load service recipe.",
@@ -158,12 +159,14 @@
158 "settings.app.form.autoLaunchOnStart": "Launch Franz on start", 159 "settings.app.form.autoLaunchOnStart": "Launch Franz on start",
159 "settings.app.form.autoLaunchInBackground": "Open in background", 160 "settings.app.form.autoLaunchInBackground": "Open in background",
160 "settings.app.form.enableSystemTray": "Show Franz in system tray", 161 "settings.app.form.enableSystemTray": "Show Franz in system tray",
162 "settings.app.form.darkMode": "Join the Dark Side",
161 "settings.app.form.minimizeToSystemTray": "Minimize Franz to system tray", 163 "settings.app.form.minimizeToSystemTray": "Minimize Franz to system tray",
162 "settings.app.form.enableMenuBar": "Show Franz in Menu Bar", 164 "settings.app.form.enableMenuBar": "Show Franz in Menu Bar",
163 "settings.app.form.hideDockIcon": "Hide Franz icon in Dock", 165 "settings.app.form.hideDockIcon": "Hide Franz icon in Dock",
164 "settings.app.form.runInBackground": "Keep Franz in background when closing the window", 166 "settings.app.form.runInBackground": "Keep Franz in background when closing the window",
165 "settings.app.form.language": "Language", 167 "settings.app.form.language": "Language",
166 "settings.app.form.enableSpellchecking": "Enable spell checking", 168 "settings.app.form.enableSpellchecking": "Enable spell checking",
169 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
167 "settings.app.form.showDisabledServices": "Display disabled services tabs", 170 "settings.app.form.showDisabledServices": "Display disabled services tabs",
168 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", 171 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
169 "settings.app.form.beta": "Include beta versions", 172 "settings.app.form.beta": "Include beta versions",
@@ -199,5 +202,52 @@
199 "service.crashHandler.action": "Reload {name}", 202 "service.crashHandler.action": "Reload {name}",
200 "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds", 203 "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds",
201 "service.disabledHandler.headline": "{name} is disabled", 204 "service.disabledHandler.headline": "{name} is disabled",
202 "service.disabledHandler.action": "Enable {name}" 205 "service.disabledHandler.action": "Enable {name}",
206 "menu.edit": "Edit",
207 "menu.edit.undo": "Undo",
208 "menu.edit.redo": "Redo",
209 "menu.edit.cut": "Cut",
210 "menu.edit.copy": "Copy",
211 "menu.edit.paste": "Paste",
212 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
213 "menu.edit.delete": "Delete",
214 "menu.edit.selectAll": "Select All",
215 "menu.edit.speech": "Speech",
216 "menu.edit.startSpeaking": "Start Speaking",
217 "menu.edit.stopSpeaking": "Stop Speaking",
218 "menu.edit.startDictation": "Start Dictation",
219 "menu.edit.emojiSymbols": "Emoji & Symbols",
220 "menu.view.resetZoom": "Actual Size",
221 "menu.view.zoomIn": "Zoom In",
222 "menu.view.zoomOut": "Zoom Out",
223 "menu.view.enterFullScreen": "Enter Full Screen",
224 "menu.view.exitFullScreen": "Exit Full Screen",
225 "menu.view.toggleFullScreen": "Toggle Full Screen",
226 "menu.view.toggleDevTools": "Toggle Developer Tools",
227 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
228 "menu.view.reloadService": "Reload Service",
229 "menu.view.reloadFranz": "Reload Franz",
230 "menu.window.minimize": "Minimize",
231 "menu.window.close": "Close",
232 "menu.help.learnMore": "Learn More",
233 "menu.help.changelog": "Changelog",
234 "menu.help.support": "Support",
235 "menu.help.tos": "Terms of Service",
236 "menu.help.privacy": "Privacy Statement",
237 "menu.file": "File",
238 "menu.view": "View",
239 "menu.services": "Services",
240 "menu.window": "Window",
241 "menu.help": "Help",
242 "menu.app.about": "About Franz",
243 "menu.app.settings": "Settings",
244 "menu.app.hide": "Hide",
245 "menu.app.hideOthers": "Hide Others",
246 "menu.app.unhide": "Unhide",
247 "menu.app.quit": "Quit",
248 "menu.services.addNewService": "Add New Service...",
249 "validation.required": "{field} is required",
250 "validation.email": "{field} is not valid",
251 "validation.url": "{field} is not a valid URL",
252 "validation.minLength": "{field} should be at least {length} characters long"
203} 253}
diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json
index 407266285..75047a613 100644
--- a/src/i18n/locales/es.json
+++ b/src/i18n/locales/es.json
@@ -1,6 +1,6 @@
1{ 1{
2 "global.api.unhealthy" : "No se puede conectar a los servicios en línea de Franz.", 2 "global.api.unhealthy" : "No se puede conectar a los servicios en línea de Franz",
3 "global.notConnectedToTheInternet" : "No estás conectado a Internet", 3 "global.notConnectedToTheInternet" : "No está conectado a Internet.",
4 "import.headline" : "Importa tus servicios de Franz 4", 4 "import.headline" : "Importa tus servicios de Franz 4",
5 "import.notSupportedHeadline" : "Servicios no soportados aún en Franz 5", 5 "import.notSupportedHeadline" : "Servicios no soportados aún en Franz 5",
6 "import.skip.label" : "Quiero agregar servicios manualmente", 6 "import.skip.label" : "Quiero agregar servicios manualmente",
@@ -12,11 +12,11 @@
12 "infobar.servicesUpdated" : "Tus servicios han sido actualizados.", 12 "infobar.servicesUpdated" : "Tus servicios han sido actualizados.",
13 "infobar.updateAvailable" : "Una nueva actualización de Franz está disponible", 13 "infobar.updateAvailable" : "Una nueva actualización de Franz está disponible",
14 "invite.email.label" : "Dirección de correo electrónico", 14 "invite.email.label" : "Dirección de correo electrónico",
15 "invite.headline.friends" : "Invita a 3 de tus amigos o colegas", 15 "invite.headline.friends" : "Invita a 3 de tus amigos o compañeros",
16 "invite.name.label" : "Nombre", 16 "invite.name.label" : "Nombre",
17 "invite.skip.label" : "Quiero hacer esto después", 17 "invite.skip.label" : "Quiero hacer esto después",
18 "invite.submit.label" : "Enviar invitaciones", 18 "invite.submit.label" : "Enviar invitaciones",
19 "invite.successInfo" : "Invitaciones enviadas", 19 "invite.successInfo" : "Invitaciones enviadas correctamente",
20 "login.email.label" : "Dirección de correo electrónico", 20 "login.email.label" : "Dirección de correo electrónico",
21 "login.headline" : "Iniciar sesión", 21 "login.headline" : "Iniciar sesión",
22 "login.invalidCredentials" : "Correo electrónico o contraseña no válidos ", 22 "login.invalidCredentials" : "Correo electrónico o contraseña no válidos ",
@@ -25,7 +25,50 @@
25 "login.password.label" : "Contraseña", 25 "login.password.label" : "Contraseña",
26 "login.serverLogout" : "Tu sesión ha expirado, por favor inicia la sesión de nuevo.", 26 "login.serverLogout" : "Tu sesión ha expirado, por favor inicia la sesión de nuevo.",
27 "login.submit.label" : "Iniciar sesión", 27 "login.submit.label" : "Iniciar sesión",
28 "login.tokenExpired" : "Tu sesión expiró, por favor la inicia sesión nuevamente.", 28 "login.tokenExpired" : "Tu sesión expiró, por favor inicia sesión otra vez.",
29 "menu.app.about" : "Sobre Franz",
30 "menu.app.hide" : "Ocultar",
31 "menu.app.hideOthers" : "Ocultar otros",
32 "menu.app.quit" : "Salir",
33 "menu.app.settings" : "Configuración",
34 "menu.app.unhide" : "Mostrar",
35 "menu.edit" : "Editar",
36 "menu.edit.copy" : "Copiar",
37 "menu.edit.cut" : "Cortar",
38 "menu.edit.delete" : "Borrar",
39 "menu.edit.emojiSymbols" : "Emoji y Símbolos",
40 "menu.edit.paste" : "Pegar",
41 "menu.edit.pasteAndMatchStyle" : "Pegar con el mismo estilo",
42 "menu.edit.redo" : "Rehacer",
43 "menu.edit.selectAll" : "Seleccionar todo",
44 "menu.edit.speech" : "Leer",
45 "menu.edit.startDictation" : "Empezar dictado",
46 "menu.edit.startSpeaking" : "Empezar lectura",
47 "menu.edit.stopSpeaking" : "Detener lectura",
48 "menu.edit.undo" : "Deshacer",
49 "menu.file" : "Archivo",
50 "menu.help" : "Ayuda",
51 "menu.help.changelog" : "Registro de cambios",
52 "menu.help.learnMore" : "Conocer más",
53 "menu.help.privacy" : "Declaración de privacidad",
54 "menu.help.support" : "Soporte",
55 "menu.help.tos" : "Términos del Servicio",
56 "menu.services" : "Servicios",
57 "menu.services.addNewService" : "Añadir Nuevo Servicio...",
58 "menu.view" : "Mostrar",
59 "menu.view.enterFullScreen" : "Entrar a Pantalla Completa",
60 "menu.view.exitFullScreen" : "Salir de Pantalla Completa",
61 "menu.view.reloadFranz" : "Recargar Franz",
62 "menu.view.reloadService" : "Recargar Servicio",
63 "menu.view.resetZoom" : "Tamaño Actual",
64 "menu.view.toggleDevTools" : "Activar las Herramientas para Desarrolladores",
65 "menu.view.toggleFullScreen" : "Cambiar a Pantalla Completa",
66 "menu.view.toggleServiceDevTools" : "Mostrar Herramientas de Servicios para Desarrolladores",
67 "menu.view.zoomIn" : "Ampliar",
68 "menu.view.zoomOut" : "Reducir",
69 "menu.window" : "Ventana",
70 "menu.window.close" : "Cerrar",
71 "menu.window.minimize" : "Minimizar",
29 "password.email.label" : "Dirección de correo electrónico", 72 "password.email.label" : "Dirección de correo electrónico",
30 "password.headline" : "Restablecer contraseña", 73 "password.headline" : "Restablecer contraseña",
31 "password.link.login" : "Iniciar sesión en tu cuenta", 74 "password.link.login" : "Iniciar sesión en tu cuenta",
@@ -73,10 +116,11 @@
73 "settings.app.form.autoLaunchInBackground" : "Abrir en segundo plano", 116 "settings.app.form.autoLaunchInBackground" : "Abrir en segundo plano",
74 "settings.app.form.autoLaunchOnStart" : "Iniciar Franz al iniciar", 117 "settings.app.form.autoLaunchOnStart" : "Iniciar Franz al iniciar",
75 "settings.app.form.beta" : "Incluir versiones beta", 118 "settings.app.form.beta" : "Incluir versiones beta",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
76 "settings.app.form.enableMenuBar" : "mostrar a franz en La barra de menús", 120 "settings.app.form.enableMenuBar" : "mostrar a franz en La barra de menús",
77 "settings.app.form.enableSpellchecking" : "Activar corrección ortográfica", 121 "settings.app.form.enableSpellchecking" : "Activar corrección ortográfica",
78 "settings.app.form.enableSystemTray" : "Mostrar Franz en la bandeja del sistema", 122 "settings.app.form.enableSystemTray" : "Mostrar Franz en la bandeja del sistema",
79 "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock", 123 "settings.app.form.hideDockIcon" : "Ocultar Icono de Franz en barra de herramientas",
80 "settings.app.form.language" : "Idioma", 124 "settings.app.form.language" : "Idioma",
81 "settings.app.form.minimizeToSystemTray" : "Minimizar Franz a la bandeja del sistema", 125 "settings.app.form.minimizeToSystemTray" : "Minimizar Franz a la bandeja del sistema",
82 "settings.app.form.runInBackground" : "Mantener Franz en segundo plano al cerrar la ventana", 126 "settings.app.form.runInBackground" : "Mantener Franz en segundo plano al cerrar la ventana",
@@ -197,6 +241,10 @@
197 "tabs.item.enableNotification" : "Activar notificaciones", 241 "tabs.item.enableNotification" : "Activar notificaciones",
198 "tabs.item.enableService" : "Activar servicio", 242 "tabs.item.enableService" : "Activar servicio",
199 "tabs.item.reload" : "Recargar", 243 "tabs.item.reload" : "Recargar",
244 "validation.email" : "{field} no es válido",
245 "validation.minLength" : "{field} debería tener al menos {length} caracteres",
246 "validation.required" : "{field} es obligatorio",
247 "validation.url" : "{field} no es una URL válida",
200 "welcome.loginButton" : "Accede a tu cuenta", 248 "welcome.loginButton" : "Accede a tu cuenta",
201 "welcome.signupButton" : "Crear una cuenta gratuita", 249 "welcome.signupButton" : "Crear una cuenta gratuita",
202 "welcome.slogan" : "Mensajería que funciona para ti" 250 "welcome.slogan" : "Mensajería que funciona para ti"
diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json
index 35a55fcc2..e00a5671b 100644
--- a/src/i18n/locales/fr.json
+++ b/src/i18n/locales/fr.json
@@ -1,6 +1,6 @@
1{ 1{
2 "global.api.unhealthy" : "Impossible de se connecter aux services en ligne de Franz.", 2 "global.api.unhealthy" : "Impossible de se connecter aux services en ligne de Franz",
3 "global.notConnectedToTheInternet" : "Vous n'êtes pas connecté(e) à Internet.", 3 "global.notConnectedToTheInternet" : "Vous n'êtes pas connecté à Internet.",
4 "import.headline" : "Importez vos services depuis la version 4 de Franz.", 4 "import.headline" : "Importez vos services depuis la version 4 de Franz.",
5 "import.notSupportedHeadline" : "Ces services ne sont pas encore supportés par Franz 5", 5 "import.notSupportedHeadline" : "Ces services ne sont pas encore supportés par Franz 5",
6 "import.skip.label" : "Je veux ajouter des services manuellement", 6 "import.skip.label" : "Je veux ajouter des services manuellement",
@@ -16,7 +16,7 @@
16 "invite.name.label" : "Nom", 16 "invite.name.label" : "Nom",
17 "invite.skip.label" : "Je veux faire cela plus tard", 17 "invite.skip.label" : "Je veux faire cela plus tard",
18 "invite.submit.label" : "Envoyer des invitations", 18 "invite.submit.label" : "Envoyer des invitations",
19 "invite.successInfo" : "Invitations envoyées.", 19 "invite.successInfo" : "Invitations envoyées",
20 "login.email.label" : "Adresse e-mail", 20 "login.email.label" : "Adresse e-mail",
21 "login.headline" : "S'inscrire", 21 "login.headline" : "S'inscrire",
22 "login.invalidCredentials" : "E-mail ou mot de passe invalide", 22 "login.invalidCredentials" : "E-mail ou mot de passe invalide",
@@ -26,11 +26,54 @@
26 "login.serverLogout" : "Votre session a expiré. Reconnectez-vous s'il vous plaît.", 26 "login.serverLogout" : "Votre session a expiré. Reconnectez-vous s'il vous plaît.",
27 "login.submit.label" : "Connexion", 27 "login.submit.label" : "Connexion",
28 "login.tokenExpired" : "Votre session a expiré, veuillez vous reconnecter.", 28 "login.tokenExpired" : "Votre session a expiré, veuillez vous reconnecter.",
29 "menu.app.about" : "À propos de Franz",
30 "menu.app.hide" : "Masquer",
31 "menu.app.hideOthers" : "Masquer les autres",
32 "menu.app.quit" : "Quitter",
33 "menu.app.settings" : "Paramètres",
34 "menu.app.unhide" : "Afficher",
35 "menu.edit" : "Éditer",
36 "menu.edit.copy" : "Copier",
37 "menu.edit.cut" : "Couper",
38 "menu.edit.delete" : "Supprimer",
39 "menu.edit.emojiSymbols" : "Emoji & Symboles",
40 "menu.edit.paste" : "Coller",
41 "menu.edit.pasteAndMatchStyle" : "Coller et fusionner le style",
42 "menu.edit.redo" : "Rétablir",
43 "menu.edit.selectAll" : "Tout sélectionner",
44 "menu.edit.speech" : "Synthèse vocale",
45 "menu.edit.startDictation" : "Démarrer la synthèse vocale",
46 "menu.edit.startSpeaking" : "Démarrer la lecture",
47 "menu.edit.stopSpeaking" : "Arrêter la synthèse vocale",
48 "menu.edit.undo" : "Annuler",
49 "menu.file" : "Fichier",
50 "menu.help" : "Aide",
51 "menu.help.changelog" : "Liste des modifications",
52 "menu.help.learnMore" : "En savoir plus",
53 "menu.help.privacy" : "Déclaration de confidentialité",
54 "menu.help.support" : "Support",
55 "menu.help.tos" : "Conditions d'utilisation",
56 "menu.services" : "Services",
57 "menu.services.addNewService" : "Ajouter un nouveau service...",
58 "menu.view" : "Affichage",
59 "menu.view.enterFullScreen" : "Entrer en mode plein écran",
60 "menu.view.exitFullScreen" : "Sortir du mode plein écran",
61 "menu.view.reloadFranz" : "Actualiser Franz",
62 "menu.view.reloadService" : "Redémarrer le service",
63 "menu.view.resetZoom" : "Taille réelle",
64 "menu.view.toggleDevTools" : "Activer les outils développeur",
65 "menu.view.toggleFullScreen" : "Activer \/ désactiver le mode plein écran",
66 "menu.view.toggleServiceDevTools" : "Activer les outils de développement WebKit",
67 "menu.view.zoomIn" : "Zoom Avant",
68 "menu.view.zoomOut" : "Zoom Arrière",
69 "menu.window" : "Fenêtre",
70 "menu.window.close" : "Fermer",
71 "menu.window.minimize" : "Réduire",
29 "password.email.label" : "Adresse e-mail", 72 "password.email.label" : "Adresse e-mail",
30 "password.headline" : "Réinitialiser le mot de passe", 73 "password.headline" : "Réinitialiser le mot de passe",
31 "password.link.login" : "Connectez-vous à votre compte", 74 "password.link.login" : "Connectez-vous à votre compte",
32 "password.link.signup" : "Créer un compte gratuit.", 75 "password.link.signup" : "Créer un compte gratuit.",
33 "password.noUser" : "Aucun utilisateur n'a été trouvé avec cette adresse e-mail ", 76 "password.noUser" : "Aucun utilisateur n'a été trouvé avec cette adresse e-mail",
34 "password.submit.label" : "Soumettre", 77 "password.submit.label" : "Soumettre",
35 "password.successInfo" : "Merci de consulter vos e-mails", 78 "password.successInfo" : "Merci de consulter vos e-mails",
36 "pricing.headline" : "Soutenez Franz", 79 "pricing.headline" : "Soutenez Franz",
@@ -73,6 +116,7 @@
73 "settings.app.form.autoLaunchInBackground" : "Ouvrir en arrière-plan", 116 "settings.app.form.autoLaunchInBackground" : "Ouvrir en arrière-plan",
74 "settings.app.form.autoLaunchOnStart" : "Lancer Franz au démarrage", 117 "settings.app.form.autoLaunchOnStart" : "Lancer Franz au démarrage",
75 "settings.app.form.beta" : "Accepter les versions bêta", 118 "settings.app.form.beta" : "Accepter les versions bêta",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
76 "settings.app.form.enableMenuBar" : "Afficher Franz dans la barre des menus", 120 "settings.app.form.enableMenuBar" : "Afficher Franz dans la barre des menus",
77 "settings.app.form.enableSpellchecking" : "Activer la vérification orthographique", 121 "settings.app.form.enableSpellchecking" : "Activer la vérification orthographique",
78 "settings.app.form.enableSystemTray" : "Afficher Franz dans la barre d'état système", 122 "settings.app.form.enableSystemTray" : "Afficher Franz dans la barre d'état système",
@@ -94,7 +138,7 @@
94 "settings.app.updateStatusAvailable" : "Mise à jour disponible, téléchargement en cours...", 138 "settings.app.updateStatusAvailable" : "Mise à jour disponible, téléchargement en cours...",
95 "settings.app.updateStatusSearching" : "Recherche d'une mise à jour", 139 "settings.app.updateStatusSearching" : "Recherche d'une mise à jour",
96 "settings.app.updateStatusUpToDate" : "Vous utilisez la dernière version de Franz", 140 "settings.app.updateStatusUpToDate" : "Vous utilisez la dernière version de Franz",
97 "settings.invite.headline" : "Invite 3 amis", 141 "settings.invite.headline" : "Invite des amis",
98 "settings.navigation.account" : "Compte", 142 "settings.navigation.account" : "Compte",
99 "settings.navigation.availableServices" : "Services disponibles", 143 "settings.navigation.availableServices" : "Services disponibles",
100 "settings.navigation.inviteFriends" : "Inviter des amis", 144 "settings.navigation.inviteFriends" : "Inviter des amis",
@@ -138,7 +182,7 @@
138 "settings.service.form.tabHosted" : "Hébergé", 182 "settings.service.form.tabHosted" : "Hébergé",
139 "settings.service.form.tabOnPremise" : "Auto-hébergé â­ï¸", 183 "settings.service.form.tabOnPremise" : "Auto-hébergé â­ï¸",
140 "settings.service.form.team" : "Équipe", 184 "settings.service.form.team" : "Équipe",
141 "settings.service.form.useHostedService" : "Utilisez le service hébergé {nom}.", 185 "settings.service.form.useHostedService" : "Utilisez le service hébergé {name}.",
142 "settings.service.form.yourServices" : "Vos services", 186 "settings.service.form.yourServices" : "Vos services",
143 "settings.services.deletedInfo" : "Le service a été supprimé", 187 "settings.services.deletedInfo" : "Le service a été supprimé",
144 "settings.services.discoverServices" : "Découvrir les services", 188 "settings.services.discoverServices" : "Découvrir les services",
@@ -174,30 +218,34 @@
174 "signup.password.label" : "Mot de passe", 218 "signup.password.label" : "Mot de passe",
175 "signup.submit.label" : "Créer un compte", 219 "signup.submit.label" : "Créer un compte",
176 "subscription.euTaxInfo" : "Résidents de l'UE : une taxe locale peut s'appliquer", 220 "subscription.euTaxInfo" : "Résidents de l'UE : une taxe locale peut s'appliquer",
177 "subscription.features.ads" : "No ads, ever!", 221 "subscription.features.ads" : "Plus de pubs !",
178 "subscription.features.comingSoon" : "coming soon", 222 "subscription.features.comingSoon" : "Bientôt disponible",
179 "subscription.features.customServices" : "Private services for you and your team", 223 "subscription.features.customServices" : "Services privés pour vous et votre équipe",
180 "subscription.features.encryptedSync" : "Encrypted session synchronization", 224 "subscription.features.encryptedSync" : "Synchronisation de session cryptée",
181 "subscription.features.onpremise" : "Ajouter des services locaux\/hébergés comme HipChat", 225 "subscription.features.onpremise" : "Ajouter des services locaux\/hébergés comme HipChat",
182 "subscription.features.vpn" : "Support des Proxy et VPN", 226 "subscription.features.vpn" : "Support des Proxy et VPN",
183 "subscription.includedFeatures" : "Le compte payant Supporter Premium Franz inclut", 227 "subscription.includedFeatures" : "Le compte payant Supporter Premium Franz inclut",
184 "subscription.paymentSessionError" : "Could not initialize payment form", 228 "subscription.paymentSessionError" : "Initialisation du paiement impossible",
185 "subscription.submit.label" : "I want to support the development of Franz", 229 "subscription.submit.label" : "Je souhaite aider au développement de Franz",
186 "subscription.type.free" : "free", 230 "subscription.type.free" : "gratuit",
187 "subscription.type.month" : "month", 231 "subscription.type.month" : "mois",
188 "subscription.type.year" : "year", 232 "subscription.type.year" : "année",
189 "subscriptionPopup.buttonCancel" : "Cancel", 233 "subscriptionPopup.buttonCancel" : "Annuler",
190 "subscriptionPopup.buttonDone" : "Done", 234 "subscriptionPopup.buttonDone" : "Terminé",
191 "tabs.item.deleteService" : "Delete service", 235 "tabs.item.deleteService" : "Supprimer le service",
192 "tabs.item.disableAudio" : "Désactiver l'audio", 236 "tabs.item.disableAudio" : "Désactiver l'audio",
193 "tabs.item.disableNotifications" : "Disable notifications", 237 "tabs.item.disableNotifications" : "Désactiver les notifications",
194 "tabs.item.disableService" : "Disable service", 238 "tabs.item.disableService" : "Désactiver le service",
195 "tabs.item.edit" : "Edit", 239 "tabs.item.edit" : "Éditer",
196 "tabs.item.enableAudio" : "Activer l'audio", 240 "tabs.item.enableAudio" : "Activer l'audio",
197 "tabs.item.enableNotification" : "Enable notifications", 241 "tabs.item.enableNotification" : "Activer les notifications",
198 "tabs.item.enableService" : "Activer le service", 242 "tabs.item.enableService" : "Activer le service",
199 "tabs.item.reload" : "Reload", 243 "tabs.item.reload" : "Recharger",
200 "welcome.loginButton" : "Login to your account", 244 "validation.email" : "{field} n'est pas valide",
201 "welcome.signupButton" : "Create a free account", 245 "validation.minLength" : "{field} doit contenir au moins {length} caractère(s)",
246 "validation.required" : "{field} est requis",
247 "validation.url" : "{field} n'est pas une URL valide",
248 "welcome.loginButton" : "Se connecter sur son compte",
249 "welcome.signupButton" : "Créer un compte gratuit",
202 "welcome.slogan" : "Une messagerie qui fonctionne pour vous" 250 "welcome.slogan" : "Une messagerie qui fonctionne pour vous"
203} 251}
diff --git a/src/i18n/locales/ga.json b/src/i18n/locales/ga.json
index 13b251755..1c0b537b2 100644
--- a/src/i18n/locales/ga.json
+++ b/src/i18n/locales/ga.json
@@ -26,6 +26,49 @@
26 "login.serverLogout" : "D'éag do sheisiún, logáil isteach arís le do thoil.", 26 "login.serverLogout" : "D'éag do sheisiún, logáil isteach arís le do thoil.",
27 "login.submit.label" : "Logáil isteach", 27 "login.submit.label" : "Logáil isteach",
28 "login.tokenExpired" : "D'éag do sheisiún, logáil isteach arís le do thoil.", 28 "login.tokenExpired" : "D'éag do sheisiún, logáil isteach arís le do thoil.",
29 "menu.app.about" : "Faoi Franz",
30 "menu.app.hide" : "Cuir Franz i bhfolach",
31 "menu.app.hideOthers" : "Folaigh feidhmchláir eile",
32 "menu.app.quit" : "Scoir",
33 "menu.app.settings" : "Socruithe",
34 "menu.app.unhide" : "Taispeáin",
35 "menu.edit" : "Cuir in eagar",
36 "menu.edit.copy" : "Cóipeáil",
37 "menu.edit.cut" : "Gearr",
38 "menu.edit.delete" : "Scrios",
39 "menu.edit.emojiSymbols" : "Straoiseoga ⊠siombailí",
40 "menu.edit.paste" : "Greamaigh",
41 "menu.edit.pasteAndMatchStyle" : "Greamaigh agus cuir stíl in oiriúint",
42 "menu.edit.redo" : "Athdhéan",
43 "menu.edit.selectAll" : "Roghnaigh gach rud",
44 "menu.edit.speech" : "Caint",
45 "menu.edit.startDictation" : "Tosaigh deachtú",
46 "menu.edit.startSpeaking" : "Tosaigh ag caint",
47 "menu.edit.stopSpeaking" : "Stad ag caint",
48 "menu.edit.undo" : "Cealaigh",
49 "menu.file" : "Comhad",
50 "menu.help" : "Cabhair",
51 "menu.help.changelog" : "Athruithe",
52 "menu.help.learnMore" : "Tuilleadh eolais",
53 "menu.help.privacy" : "Ráiteas phríobháideachais",
54 "menu.help.support" : "Tacaíocht",
55 "menu.help.tos" : "Téarmaí tagartha",
56 "menu.services" : "Seirbhísí",
57 "menu.services.addNewService" : "Cuir seirbhís nua leis",
58 "menu.view" : "Amharc",
59 "menu.view.enterFullScreen" : "Cuir isteach mód lánscáileáin",
60 "menu.view.exitFullScreen" : "Scoir mód lánscáileáin",
61 "menu.view.reloadFranz" : "Athlódáil Franz",
62 "menu.view.reloadService" : "Athlódáil seirbhís",
63 "menu.view.resetZoom" : "Fíormhéid",
64 "menu.view.toggleDevTools" : "Scoránaigh uirlis forbróra",
65 "menu.view.toggleFullScreen" : "Scoránaigh mód lánscáileáin",
66 "menu.view.toggleServiceDevTools" : "Scoránaigh uirlis forbróra seirbhíse",
67 "menu.view.zoomIn" : "Zúmáil isteach",
68 "menu.view.zoomOut" : "Zúmáil amach",
69 "menu.window" : "Fuinneog",
70 "menu.window.close" : "Dún",
71 "menu.window.minimize" : "Ãoslaghdaigh",
29 "password.email.label" : "Seoladh ríomhphoist", 72 "password.email.label" : "Seoladh ríomhphoist",
30 "password.headline" : "Athshocraigh pasfhocal", 73 "password.headline" : "Athshocraigh pasfhocal",
31 "password.link.login" : "Logáil isteach i do chuntas", 74 "password.link.login" : "Logáil isteach i do chuntas",
@@ -73,6 +116,7 @@
73 "settings.app.form.autoLaunchInBackground" : "Oscail sa chúlra", 116 "settings.app.form.autoLaunchInBackground" : "Oscail sa chúlra",
74 "settings.app.form.autoLaunchOnStart" : "Láinseáil Franz ón tús", 117 "settings.app.form.autoLaunchOnStart" : "Láinseáil Franz ón tús",
75 "settings.app.form.beta" : "Cuir leagain béite san áireamh", 118 "settings.app.form.beta" : "Cuir leagain béite san áireamh",
119 "settings.app.form.enableGPUAcceleration" : "Cumasaigh luasghéarú APG",
76 "settings.app.form.enableMenuBar" : "Taispeáin Franz sa bharra roghchláir", 120 "settings.app.form.enableMenuBar" : "Taispeáin Franz sa bharra roghchláir",
77 "settings.app.form.enableSpellchecking" : "Cumasaigh seiceáil litrithe", 121 "settings.app.form.enableSpellchecking" : "Cumasaigh seiceáil litrithe",
78 "settings.app.form.enableSystemTray" : "Taispeáin Franz i dtráidire an chórais", 122 "settings.app.form.enableSystemTray" : "Taispeáin Franz i dtráidire an chórais",
@@ -168,7 +212,7 @@
168 "signup.headline" : "Cláraigh", 212 "signup.headline" : "Cláraigh",
169 "signup.lastname.label" : "Sloinne", 213 "signup.lastname.label" : "Sloinne",
170 "signup.legal.info" : "Agus tú ag cruthú cuntas Franz glacann tú le", 214 "signup.legal.info" : "Agus tú ag cruthú cuntas Franz glacann tú le",
171 "signup.legal.privacy" : "Ráiteas phríobháideachais", 215 "signup.legal.privacy" : "Polasaí príobháideachais",
172 "signup.legal.terms" : "Tearmaí seirbhíse", 216 "signup.legal.terms" : "Tearmaí seirbhíse",
173 "signup.link.login" : "Cuntas agat cheana féin, logáil isteach?", 217 "signup.link.login" : "Cuntas agat cheana féin, logáil isteach?",
174 "signup.password.label" : "Pasfhocal", 218 "signup.password.label" : "Pasfhocal",
@@ -197,6 +241,10 @@
197 "tabs.item.enableNotification" : "Cumasaigh fógraí", 241 "tabs.item.enableNotification" : "Cumasaigh fógraí",
198 "tabs.item.enableService" : "Cumasaigh seirbhís", 242 "tabs.item.enableService" : "Cumasaigh seirbhís",
199 "tabs.item.reload" : "Athlódáil", 243 "tabs.item.reload" : "Athlódáil",
244 "validation.email" : "Níl {field} neamhbhailí",
245 "validation.minLength" : "Ba cheart go mbeadh {field} ar a laghad {length} charactar fada",
246 "validation.required" : "Tá {field} de dhíth",
247 "validation.url" : "Ní AAA bhailí é {field}",
200 "welcome.loginButton" : "Logáil isteach i do chuntas", 248 "welcome.loginButton" : "Logáil isteach i do chuntas",
201 "welcome.signupButton" : "Cruthaigh cuntas nua", 249 "welcome.signupButton" : "Cruthaigh cuntas nua",
202 "welcome.slogan" : "Teachtaireachtaí a oibríonn duitse" 250 "welcome.slogan" : "Teachtaireachtaí a oibríonn duitse"
diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json
index 97bfc19f4..e227c4537 100644
--- a/src/i18n/locales/hr.json
+++ b/src/i18n/locales/hr.json
@@ -16,7 +16,7 @@
16 "invite.name.label" : "Ime", 16 "invite.name.label" : "Ime",
17 "invite.skip.label" : "Želim da ovo uradim kasnije", 17 "invite.skip.label" : "Želim da ovo uradim kasnije",
18 "invite.submit.label" : "Pošalji pozivnice", 18 "invite.submit.label" : "Pošalji pozivnice",
19 "invite.successInfo" : "Invitations sent successfully", 19 "invite.successInfo" : "Pozivnice uspješno poslane",
20 "login.email.label" : "Vaša e-adresa:", 20 "login.email.label" : "Vaša e-adresa:",
21 "login.headline" : "Prijavite se", 21 "login.headline" : "Prijavite se",
22 "login.invalidCredentials" : "E-mail ili lozinka nisu toÄni", 22 "login.invalidCredentials" : "E-mail ili lozinka nisu toÄni",
@@ -26,6 +26,49 @@
26 "login.serverLogout" : "Vaša sesija je istekla, prijavite se ponovo.", 26 "login.serverLogout" : "Vaša sesija je istekla, prijavite se ponovo.",
27 "login.submit.label" : "Prijavite se", 27 "login.submit.label" : "Prijavite se",
28 "login.tokenExpired" : "Vaša sesija je istekla, prijavite se ponovo.", 28 "login.tokenExpired" : "Vaša sesija je istekla, prijavite se ponovo.",
29 "menu.app.about" : "About Franz",
30 "menu.app.hide" : "Hide",
31 "menu.app.hideOthers" : "Hide Others",
32 "menu.app.quit" : "Quit",
33 "menu.app.settings" : "Postavke",
34 "menu.app.unhide" : "Unhide",
35 "menu.edit" : "Uredi",
36 "menu.edit.copy" : "Copy",
37 "menu.edit.cut" : "Cut",
38 "menu.edit.delete" : "Obriši",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols",
40 "menu.edit.paste" : "Paste",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style",
42 "menu.edit.redo" : "Redo",
43 "menu.edit.selectAll" : "Select All",
44 "menu.edit.speech" : "Speech",
45 "menu.edit.startDictation" : "Start Dictation",
46 "menu.edit.startSpeaking" : "Start Speaking",
47 "menu.edit.stopSpeaking" : "Stop Speaking",
48 "menu.edit.undo" : "Undo",
49 "menu.file" : "File",
50 "menu.help" : "Help",
51 "menu.help.changelog" : "Changelog",
52 "menu.help.learnMore" : "Learn More",
53 "menu.help.privacy" : "Izjava o privatnosti ",
54 "menu.help.support" : "Support",
55 "menu.help.tos" : "Terms of Service",
56 "menu.services" : "Services",
57 "menu.services.addNewService" : "Add New Service...",
58 "menu.view" : "View",
59 "menu.view.enterFullScreen" : "Enter Full Screen",
60 "menu.view.exitFullScreen" : "Exit Full Screen",
61 "menu.view.reloadFranz" : "Reload Franz",
62 "menu.view.reloadService" : "Reload Service",
63 "menu.view.resetZoom" : "Actual Size",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools",
67 "menu.view.zoomIn" : "Zoom In",
68 "menu.view.zoomOut" : "Zoom Out",
69 "menu.window" : "Window",
70 "menu.window.close" : "Close",
71 "menu.window.minimize" : "Minimize",
29 "password.email.label" : "Vaša e-adresa", 72 "password.email.label" : "Vaša e-adresa",
30 "password.headline" : "Stvorite novu zaporku", 73 "password.headline" : "Stvorite novu zaporku",
31 "password.link.login" : "Prijavite se na VaÅ¡ raÄun", 74 "password.link.login" : "Prijavite se na VaÅ¡ raÄun",
@@ -68,12 +111,13 @@
68 "settings.app.buttonClearAllCache" : "OÄisti memoriju", 111 "settings.app.buttonClearAllCache" : "OÄisti memoriju",
69 "settings.app.buttonInstallUpdate" : "Ponovo pokreni i instaliraj ažuriranje", 112 "settings.app.buttonInstallUpdate" : "Ponovo pokreni i instaliraj ažuriranje",
70 "settings.app.buttonSearchForUpdate" : "Potraži ažuriranja", 113 "settings.app.buttonSearchForUpdate" : "Potraži ažuriranja",
71 "settings.app.cacheInfo" : "Franz cache is currently using {size} of disk space.", 114 "settings.app.cacheInfo" : "Franz predmemorija trenutno koristi {size} prostora na disku",
72 "settings.app.currentVersion" : "Trenutna verzija:", 115 "settings.app.currentVersion" : "Trenutna verzija:",
73 "settings.app.form.autoLaunchInBackground" : "Otvori u pozadini", 116 "settings.app.form.autoLaunchInBackground" : "Otvori u pozadini",
74 "settings.app.form.autoLaunchOnStart" : "Pokreni Franz sa sistemom", 117 "settings.app.form.autoLaunchOnStart" : "Pokreni Franz sa sistemom",
75 "settings.app.form.beta" : "Obuhvati i beta verzije", 118 "settings.app.form.beta" : "Obuhvati i beta verzije",
76 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", 119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
120 "settings.app.form.enableMenuBar" : "Prikaži Franz u traci izbornika",
77 "settings.app.form.enableSpellchecking" : "Omogući provjeru pravopisa", 121 "settings.app.form.enableSpellchecking" : "Omogući provjeru pravopisa",
78 "settings.app.form.enableSystemTray" : "Prikaži aplikaciju u sustavskoj traci", 122 "settings.app.form.enableSystemTray" : "Prikaži aplikaciju u sustavskoj traci",
79 "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock", 123 "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock",
@@ -89,15 +133,15 @@
89 "settings.app.headlineLanguage" : "Jezik", 133 "settings.app.headlineLanguage" : "Jezik",
90 "settings.app.headlineUpdates" : "Nadogradnje", 134 "settings.app.headlineUpdates" : "Nadogradnje",
91 "settings.app.restartRequired" : "Promjene postavki zahtijevaju ponovni zagon", 135 "settings.app.restartRequired" : "Promjene postavki zahtijevaju ponovni zagon",
92 "settings.app.subheadlineCache" : "Cache", 136 "settings.app.subheadlineCache" : "Predmemorija",
93 "settings.app.translationHelp" : "Pomozite nam prevesti aplikaciju na Vaš jezik. ", 137 "settings.app.translationHelp" : "Pomozite nam prevesti aplikaciju na Vaš jezik. ",
94 "settings.app.updateStatusAvailable" : "Nadogradnja dostupna, preuzimanje...", 138 "settings.app.updateStatusAvailable" : "Nadogradnja dostupna, preuzimanje...",
95 "settings.app.updateStatusSearching" : "Traže se ažuriranja", 139 "settings.app.updateStatusSearching" : "Traže se ažuriranja",
96 "settings.app.updateStatusUpToDate" : "Koristite najnoviju verziju Franca.", 140 "settings.app.updateStatusUpToDate" : "Koristite najnoviju verziju Franca.",
97 "settings.invite.headline" : "Invite Friends", 141 "settings.invite.headline" : "Pozovi prijatelje",
98 "settings.navigation.account" : "RaÄun", 142 "settings.navigation.account" : "RaÄun",
99 "settings.navigation.availableServices" : "Dostupne usluge", 143 "settings.navigation.availableServices" : "Dostupne usluge",
100 "settings.navigation.inviteFriends" : "Invite Friends", 144 "settings.navigation.inviteFriends" : "Pozovi prijatelje",
101 "settings.navigation.logout" : "Odjava", 145 "settings.navigation.logout" : "Odjava",
102 "settings.navigation.settings" : "Postavke", 146 "settings.navigation.settings" : "Postavke",
103 "settings.navigation.yourServices" : "Vaše usluge", 147 "settings.navigation.yourServices" : "Vaše usluge",
@@ -108,7 +152,7 @@
108 "settings.recipes.mostPopular" : "Najpopularniji", 152 "settings.recipes.mostPopular" : "Najpopularniji",
109 "settings.recipes.nothingFound" : "Žao nam je, ali ne postoje usluge koje se poklapaju s onima koje tražite. ", 153 "settings.recipes.nothingFound" : "Žao nam je, ali ne postoje usluge koje se poklapaju s onima koje tražite. ",
110 "settings.recipes.servicesSuccessfulAddedInfo" : "Usluga uspješno dodana. ", 154 "settings.recipes.servicesSuccessfulAddedInfo" : "Usluga uspješno dodana. ",
111 "settings.searchService" : "Search service", 155 "settings.searchService" : "Potraži servis",
112 "settings.service.error.goBack" : "Nazad do servisa", 156 "settings.service.error.goBack" : "Nazad do servisa",
113 "settings.service.error.headline" : "Greška", 157 "settings.service.error.headline" : "Greška",
114 "settings.service.error.message" : "Nemoguće uÄitati sadržaj usluge. ", 158 "settings.service.error.message" : "Nemoguće uÄitati sadržaj usluge. ",
@@ -126,10 +170,10 @@
126 "settings.service.form.enableService" : "Omogućite usluge", 170 "settings.service.form.enableService" : "Omogućite usluge",
127 "settings.service.form.headlineBadges" : "Unread message badges", 171 "settings.service.form.headlineBadges" : "Unread message badges",
128 "settings.service.form.headlineGeneral" : "Općenito", 172 "settings.service.form.headlineGeneral" : "Općenito",
129 "settings.service.form.headlineNotifications" : "Notifications", 173 "settings.service.form.headlineNotifications" : "Obavijesti",
130 "settings.service.form.icon" : "Custom icon", 174 "settings.service.form.icon" : "Prilagođena ikona",
131 "settings.service.form.iconDelete" : "Delete", 175 "settings.service.form.iconDelete" : "Obriši",
132 "settings.service.form.iconUpload" : "Drop your image, or click here", 176 "settings.service.form.iconUpload" : "Ispusti sliku ili klikni ovdje",
133 "settings.service.form.indirectMessageInfo" : "Vi ćete biti obavješteni o svim novim porukama na kanalu, ne samo o @imenima, kanalima, @ovdje, ...", 177 "settings.service.form.indirectMessageInfo" : "Vi ćete biti obavješteni o svim novim porukama na kanalu, ne samo o @imenima, kanalima, @ovdje, ...",
134 "settings.service.form.indirectMessages" : "Prikaži znaÄku na svim novim porukuama", 178 "settings.service.form.indirectMessages" : "Prikaži znaÄku na svim novim porukuama",
135 "settings.service.form.isMutedInfo" : "Kada je onemogućeno, sve obavijesti, svi zvukovi i sva pozadinska podrÅ¡ka će biti neÄujna. ", 179 "settings.service.form.isMutedInfo" : "Kada je onemogućeno, sve obavijesti, svi zvukovi i sva pozadinska podrÅ¡ka će biti neÄujna. ",
@@ -197,6 +241,10 @@
197 "tabs.item.enableNotification" : "Omogući obavijesti", 241 "tabs.item.enableNotification" : "Omogući obavijesti",
198 "tabs.item.enableService" : "Omogući usluge", 242 "tabs.item.enableService" : "Omogući usluge",
199 "tabs.item.reload" : "Ponovno uÄitavanje", 243 "tabs.item.reload" : "Ponovno uÄitavanje",
244 "validation.email" : "{field} is not valid",
245 "validation.minLength" : "{field} should be at least {length} characters long",
246 "validation.required" : "{field} is required",
247 "validation.url" : "{field} is not a valid URL",
200 "welcome.loginButton" : "Prijavite se na raÄun", 248 "welcome.loginButton" : "Prijavite se na raÄun",
201 "welcome.signupButton" : "Stvorite novi korisniÄki raÄun", 249 "welcome.signupButton" : "Stvorite novi korisniÄki raÄun",
202 "welcome.slogan" : "Poruke koje su stvorene za tebe" 250 "welcome.slogan" : "Poruke koje su stvorene za tebe"
diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json
index 15bdd33f4..3571ad453 100644
--- a/src/i18n/locales/hu.json
+++ b/src/i18n/locales/hu.json
@@ -26,6 +26,49 @@
26 "login.serverLogout" : "A munkamenet lejárt, kérlek lépj be újra.", 26 "login.serverLogout" : "A munkamenet lejárt, kérlek lépj be újra.",
27 "login.submit.label" : "Bejelentkezés", 27 "login.submit.label" : "Bejelentkezés",
28 "login.tokenExpired" : "A munkamenet lejárt, kérlek lépj be újra.", 28 "login.tokenExpired" : "A munkamenet lejárt, kérlek lépj be újra.",
29 "menu.app.about" : "About Franz",
30 "menu.app.hide" : "Hide",
31 "menu.app.hideOthers" : "Hide Others",
32 "menu.app.quit" : "Quit",
33 "menu.app.settings" : "Beállítások",
34 "menu.app.unhide" : "Unhide",
35 "menu.edit" : "Szerkesztés",
36 "menu.edit.copy" : "Copy",
37 "menu.edit.cut" : "Cut",
38 "menu.edit.delete" : "Törlés",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols",
40 "menu.edit.paste" : "Paste",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style",
42 "menu.edit.redo" : "Redo",
43 "menu.edit.selectAll" : "Select All",
44 "menu.edit.speech" : "Speech",
45 "menu.edit.startDictation" : "Start Dictation",
46 "menu.edit.startSpeaking" : "Start Speaking",
47 "menu.edit.stopSpeaking" : "Stop Speaking",
48 "menu.edit.undo" : "Undo",
49 "menu.file" : "File",
50 "menu.help" : "Help",
51 "menu.help.changelog" : "Changelog",
52 "menu.help.learnMore" : "Learn More",
53 "menu.help.privacy" : "Adatvédelmi Nyilatkozatot",
54 "menu.help.support" : "Support",
55 "menu.help.tos" : "Terms of Service",
56 "menu.services" : "Services",
57 "menu.services.addNewService" : "Add New Service...",
58 "menu.view" : "View",
59 "menu.view.enterFullScreen" : "Enter Full Screen",
60 "menu.view.exitFullScreen" : "Exit Full Screen",
61 "menu.view.reloadFranz" : "Reload Franz",
62 "menu.view.reloadService" : "Reload Service",
63 "menu.view.resetZoom" : "Actual Size",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools",
67 "menu.view.zoomIn" : "Zoom In",
68 "menu.view.zoomOut" : "Zoom Out",
69 "menu.window" : "Window",
70 "menu.window.close" : "Close",
71 "menu.window.minimize" : "Minimize",
29 "password.email.label" : "Email cím", 72 "password.email.label" : "Email cím",
30 "password.headline" : "Jelszó visszaállítása", 73 "password.headline" : "Jelszó visszaállítása",
31 "password.link.login" : "Jelentkezz be a fiókodba", 74 "password.link.login" : "Jelentkezz be a fiókodba",
@@ -73,6 +116,7 @@
73 "settings.app.form.autoLaunchInBackground" : "Megnyitás háttérben", 116 "settings.app.form.autoLaunchInBackground" : "Megnyitás háttérben",
74 "settings.app.form.autoLaunchOnStart" : "Franz betöltése indításkor", 117 "settings.app.form.autoLaunchOnStart" : "Franz betöltése indításkor",
75 "settings.app.form.beta" : "Béta verziók keresése", 118 "settings.app.form.beta" : "Béta verziók keresése",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
76 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", 120 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar",
77 "settings.app.form.enableSpellchecking" : "Helyesírás-ellenőrzés engedélyezése", 121 "settings.app.form.enableSpellchecking" : "Helyesírás-ellenőrzés engedélyezése",
78 "settings.app.form.enableSystemTray" : "Franz mutatása a tálcán", 122 "settings.app.form.enableSystemTray" : "Franz mutatása a tálcán",
@@ -197,6 +241,10 @@
197 "tabs.item.enableNotification" : "Értesítések engedélyezése", 241 "tabs.item.enableNotification" : "Értesítések engedélyezése",
198 "tabs.item.enableService" : "Szolgáltatás engedélyezése", 242 "tabs.item.enableService" : "Szolgáltatás engedélyezése",
199 "tabs.item.reload" : "Újratöltés", 243 "tabs.item.reload" : "Újratöltés",
244 "validation.email" : "{field} is not valid",
245 "validation.minLength" : "{field} should be at least {length} characters long",
246 "validation.required" : "{field} is required",
247 "validation.url" : "{field} is not a valid URL",
200 "welcome.loginButton" : "Jelentkezz be a fiókodba", 248 "welcome.loginButton" : "Jelentkezz be a fiókodba",
201 "welcome.signupButton" : "Új fiók létrehozása", 249 "welcome.signupButton" : "Új fiók létrehozása",
202 "welcome.slogan" : "Üzenetküldés okosan" 250 "welcome.slogan" : "Üzenetküldés okosan"
diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json
index 509c5ad9c..e6d671c1b 100644
--- a/src/i18n/locales/id.json
+++ b/src/i18n/locales/id.json
@@ -26,6 +26,49 @@
26 "login.serverLogout" : "Sesi Anda telah berakhir, silakan masuk kembali.", 26 "login.serverLogout" : "Sesi Anda telah berakhir, silakan masuk kembali.",
27 "login.submit.label" : "Masuk", 27 "login.submit.label" : "Masuk",
28 "login.tokenExpired" : "Sesi Anda kedaluwarsa, silakan masuk kembali.", 28 "login.tokenExpired" : "Sesi Anda kedaluwarsa, silakan masuk kembali.",
29 "menu.app.about" : "About Franz",
30 "menu.app.hide" : "Hide",
31 "menu.app.hideOthers" : "Hide Others",
32 "menu.app.quit" : "Quit",
33 "menu.app.settings" : "Pengaturan",
34 "menu.app.unhide" : "Unhide",
35 "menu.edit" : "Edit",
36 "menu.edit.copy" : "Copy",
37 "menu.edit.cut" : "Cut",
38 "menu.edit.delete" : "Hapus",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols",
40 "menu.edit.paste" : "Paste",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style",
42 "menu.edit.redo" : "Redo",
43 "menu.edit.selectAll" : "Select All",
44 "menu.edit.speech" : "Speech",
45 "menu.edit.startDictation" : "Start Dictation",
46 "menu.edit.startSpeaking" : "Start Speaking",
47 "menu.edit.stopSpeaking" : "Stop Speaking",
48 "menu.edit.undo" : "Undo",
49 "menu.file" : "File",
50 "menu.help" : "Help",
51 "menu.help.changelog" : "Changelog",
52 "menu.help.learnMore" : "Learn More",
53 "menu.help.privacy" : "Pernyataan Privasi",
54 "menu.help.support" : "Support",
55 "menu.help.tos" : "Terms of Service",
56 "menu.services" : "Services",
57 "menu.services.addNewService" : "Add New Service...",
58 "menu.view" : "View",
59 "menu.view.enterFullScreen" : "Enter Full Screen",
60 "menu.view.exitFullScreen" : "Exit Full Screen",
61 "menu.view.reloadFranz" : "Reload Franz",
62 "menu.view.reloadService" : "Reload Service",
63 "menu.view.resetZoom" : "Actual Size",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools",
67 "menu.view.zoomIn" : "Zoom In",
68 "menu.view.zoomOut" : "Zoom Out",
69 "menu.window" : "Window",
70 "menu.window.close" : "Close",
71 "menu.window.minimize" : "Minimize",
29 "password.email.label" : "Alamat email", 72 "password.email.label" : "Alamat email",
30 "password.headline" : "Setel ulang sandi", 73 "password.headline" : "Setel ulang sandi",
31 "password.link.login" : "Masuk ke akun Anda", 74 "password.link.login" : "Masuk ke akun Anda",
@@ -73,6 +116,7 @@
73 "settings.app.form.autoLaunchInBackground" : "Buka di latar belakang", 116 "settings.app.form.autoLaunchInBackground" : "Buka di latar belakang",
74 "settings.app.form.autoLaunchOnStart" : "Jalankan Franz saat komputer dimulai", 117 "settings.app.form.autoLaunchOnStart" : "Jalankan Franz saat komputer dimulai",
75 "settings.app.form.beta" : "Sertakan versi beta", 118 "settings.app.form.beta" : "Sertakan versi beta",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
76 "settings.app.form.enableMenuBar" : "Tampilkan Franz di Bilah Menu", 120 "settings.app.form.enableMenuBar" : "Tampilkan Franz di Bilah Menu",
77 "settings.app.form.enableSpellchecking" : "Aktifkan pemeriksaan ejaan", 121 "settings.app.form.enableSpellchecking" : "Aktifkan pemeriksaan ejaan",
78 "settings.app.form.enableSystemTray" : "Tampilkan Franz di baki sistem", 122 "settings.app.form.enableSystemTray" : "Tampilkan Franz di baki sistem",
@@ -197,6 +241,10 @@
197 "tabs.item.enableNotification" : "Aktifkan pemberitahuan", 241 "tabs.item.enableNotification" : "Aktifkan pemberitahuan",
198 "tabs.item.enableService" : "Aktifkan layanan", 242 "tabs.item.enableService" : "Aktifkan layanan",
199 "tabs.item.reload" : "Muat Ulang", 243 "tabs.item.reload" : "Muat Ulang",
244 "validation.email" : "{field} is not valid",
245 "validation.minLength" : "{field} should be at least {length} characters long",
246 "validation.required" : "{field} is required",
247 "validation.url" : "{field} is not a valid URL",
200 "welcome.loginButton" : "Masuk ke akun Anda", 248 "welcome.loginButton" : "Masuk ke akun Anda",
201 "welcome.signupButton" : "Buat akun gratis", 249 "welcome.signupButton" : "Buat akun gratis",
202 "welcome.slogan" : "Perpesanan yang bekerja untuk Anda" 250 "welcome.slogan" : "Perpesanan yang bekerja untuk Anda"
diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json
index a1392afba..9d23a309b 100644
--- a/src/i18n/locales/it.json
+++ b/src/i18n/locales/it.json
@@ -6,7 +6,7 @@
6 "import.skip.label" : "Voglio aggiungere servizi manualmente", 6 "import.skip.label" : "Voglio aggiungere servizi manualmente",
7 "import.submit.label" : "Importa servizi", 7 "import.submit.label" : "Importa servizi",
8 "infobar.buttonChangelog" : "Cosa c'è di nuovo?", 8 "infobar.buttonChangelog" : "Cosa c'è di nuovo?",
9 "infobar.buttonInstallUpdate" : "Riavvia e installa gli aggiornamenti", 9 "infobar.buttonInstallUpdate" : "Riavvia e installa aggiornamento",
10 "infobar.buttonReloadServices" : "Ricarica servizi", 10 "infobar.buttonReloadServices" : "Ricarica servizi",
11 "infobar.requiredRequestsFailed" : "Impossibile caricare servizi e info utente", 11 "infobar.requiredRequestsFailed" : "Impossibile caricare servizi e info utente",
12 "infobar.servicesUpdated" : "I tuoi servizi sono stati aggiornati.", 12 "infobar.servicesUpdated" : "I tuoi servizi sono stati aggiornati.",
@@ -26,17 +26,60 @@
26 "login.serverLogout" : "La tua sessione è scaduta, accedi nuovamente.", 26 "login.serverLogout" : "La tua sessione è scaduta, accedi nuovamente.",
27 "login.submit.label" : "Accedi", 27 "login.submit.label" : "Accedi",
28 "login.tokenExpired" : "La tua sessione è scaduta, accedi nuovamente.", 28 "login.tokenExpired" : "La tua sessione è scaduta, accedi nuovamente.",
29 "menu.app.about" : "Info su Franz",
30 "menu.app.hide" : "Nascondi",
31 "menu.app.hideOthers" : "Nascondi Altri",
32 "menu.app.quit" : "Esci",
33 "menu.app.settings" : "Impostazioni",
34 "menu.app.unhide" : "Mostra",
35 "menu.edit" : "Modifica",
36 "menu.edit.copy" : "Copia",
37 "menu.edit.cut" : "Taglia",
38 "menu.edit.delete" : "Elimina",
39 "menu.edit.emojiSymbols" : "Emoji e Simboli",
40 "menu.edit.paste" : "Incolla",
41 "menu.edit.pasteAndMatchStyle" : "Incolla e Mantieni Stile",
42 "menu.edit.redo" : "Ripeti",
43 "menu.edit.selectAll" : "Seleziona Tutto",
44 "menu.edit.speech" : "Sintesi Vocale",
45 "menu.edit.startDictation" : "Avvia Dettatura",
46 "menu.edit.startSpeaking" : "Avvia Pronuncia",
47 "menu.edit.stopSpeaking" : "Interrompi Pronuncia",
48 "menu.edit.undo" : "Annulla",
49 "menu.file" : "File",
50 "menu.help" : "Aiuto",
51 "menu.help.changelog" : "Changelog",
52 "menu.help.learnMore" : "Maggiori Informazioni",
53 "menu.help.privacy" : "Informativa sulla Privacy",
54 "menu.help.support" : "Supporto",
55 "menu.help.tos" : "Termini di Servizio",
56 "menu.services" : "Servizi",
57 "menu.services.addNewService" : "Aggiungi Nuovo Servizio...",
58 "menu.view" : "Visualizza",
59 "menu.view.enterFullScreen" : "Visualizza a Tutto Schermo",
60 "menu.view.exitFullScreen" : "Modalità Finestra",
61 "menu.view.reloadFranz" : "Ricarica Franz",
62 "menu.view.reloadService" : "Ricarica Servizio",
63 "menu.view.resetZoom" : "Dimensione Attuale",
64 "menu.view.toggleDevTools" : "Attiva Strumenti Sviluppo",
65 "menu.view.toggleFullScreen" : "Passa a Schermo Intero",
66 "menu.view.toggleServiceDevTools" : "Attiva Strumenti per Sviluppatori di Servizi",
67 "menu.view.zoomIn" : "Aumenta Zoom",
68 "menu.view.zoomOut" : "Diminuisci Zoom",
69 "menu.window" : "Finestra",
70 "menu.window.close" : "Chiudi",
71 "menu.window.minimize" : "Minimizza",
29 "password.email.label" : "Indirizzo email", 72 "password.email.label" : "Indirizzo email",
30 "password.headline" : "Reimposta password", 73 "password.headline" : "Reimposta password",
31 "password.link.login" : "Accedi al tuo account", 74 "password.link.login" : "Accedi al tuo account",
32 "password.link.signup" : "Crea un account gratuito", 75 "password.link.signup" : "Crea un account gratuito",
33 "password.noUser" : "Non è stato trovato nessun utente con questo indirizzo e-mail", 76 "password.noUser" : "Non è stato trovato nessun utente con questo indirizzo e-mail",
34 "password.submit.label" : "Invia", 77 "password.submit.label" : "Invia",
35 "password.successInfo" : "Controlla la tua email", 78 "password.successInfo" : "Please check your email",
36 "pricing.headline" : "Supporta Franz", 79 "pricing.headline" : "Support Franz",
37 "pricing.link.skipPayment" : "Non voglio supportare lo sviluppo di Franz", 80 "pricing.link.skipPayment" : "Non voglio supportare lo sviluppo di Franz.",
38 "pricing.submit.label" : "Voglio supportare lo sviluppo di Franz", 81 "pricing.submit.label" : "Voglio supportare lo sviluppo di Franz",
39 "pricing.support.label" : "Seleziona il tuo piano di supporto", 82 "pricing.support.label" : "Select your support plan",
40 "service.crashHandler.action" : "Ricarica {name}", 83 "service.crashHandler.action" : "Ricarica {name}",
41 "service.crashHandler.autoReload" : "Tentativo di ripristino automatico di {name} in {seconds} secondi", 84 "service.crashHandler.autoReload" : "Tentativo di ripristino automatico di {name} in {seconds} secondi",
42 "service.crashHandler.headline" : "Oh no!", 85 "service.crashHandler.headline" : "Oh no!",
@@ -44,7 +87,7 @@
44 "service.disabledHandler.action" : "Attiva {name}", 87 "service.disabledHandler.action" : "Attiva {name}",
45 "service.disabledHandler.headline" : "{name} è disattivato", 88 "service.disabledHandler.headline" : "{name} è disattivato",
46 "services.getStarted" : "Iniziamo", 89 "services.getStarted" : "Iniziamo",
47 "services.welcome" : "Benvenuto in Franz", 90 "services.welcome" : "Welcome to Franz",
48 "settings.account.account.editButton" : "Modifica account", 91 "settings.account.account.editButton" : "Modifica account",
49 "settings.account.accountType.basic" : "Account Basic", 92 "settings.account.accountType.basic" : "Account Basic",
50 "settings.account.accountType.premium" : "Premium Supporter Account", 93 "settings.account.accountType.premium" : "Premium Supporter Account",
@@ -67,12 +110,13 @@
67 "settings.account.userInfoRequestFailed" : "Impossibile caricare informazioni utente.", 110 "settings.account.userInfoRequestFailed" : "Impossibile caricare informazioni utente.",
68 "settings.app.buttonClearAllCache" : "Svuota la cache", 111 "settings.app.buttonClearAllCache" : "Svuota la cache",
69 "settings.app.buttonInstallUpdate" : "Riavvia e installa l'aggiornamento", 112 "settings.app.buttonInstallUpdate" : "Riavvia e installa l'aggiornamento",
70 "settings.app.buttonSearchForUpdate" : "Controlla gli aggiornamenti", 113 "settings.app.buttonSearchForUpdate" : "Controlla aggiornamenti",
71 "settings.app.cacheInfo" : "Franz sta utilizzando {size} di spazio su disco.", 114 "settings.app.cacheInfo" : "Franz sta utilizzando {size} di spazio su disco.",
72 "settings.app.currentVersion" : "Versione attuale:", 115 "settings.app.currentVersion" : "Versione attuale:",
73 "settings.app.form.autoLaunchInBackground" : "Apri in background", 116 "settings.app.form.autoLaunchInBackground" : "Apri in background",
74 "settings.app.form.autoLaunchOnStart" : "Esegui Franz all'avvio", 117 "settings.app.form.autoLaunchOnStart" : "Esegui Franz all'avvio",
75 "settings.app.form.beta" : "Includi versioni beta", 118 "settings.app.form.beta" : "Includi versioni beta",
119 "settings.app.form.enableGPUAcceleration" : "Attiva Accelerazione GPU",
76 "settings.app.form.enableMenuBar" : "Mostra Franz nella Barra del Menu", 120 "settings.app.form.enableMenuBar" : "Mostra Franz nella Barra del Menu",
77 "settings.app.form.enableSpellchecking" : "Attiva controllo ortografico", 121 "settings.app.form.enableSpellchecking" : "Attiva controllo ortografico",
78 "settings.app.form.enableSystemTray" : "Mostra Franz nell'area di notifica", 122 "settings.app.form.enableSystemTray" : "Mostra Franz nell'area di notifica",
@@ -158,9 +202,9 @@
158 "settings.user.form.lastname" : "Cognome", 202 "settings.user.form.lastname" : "Cognome",
159 "settings.user.form.newPassword" : "Nuova password", 203 "settings.user.form.newPassword" : "Nuova password",
160 "sidebar.addNewService" : "Aggiungi un nuovo servizio", 204 "sidebar.addNewService" : "Aggiungi un nuovo servizio",
161 "sidebar.muteApp" : "Disattiva notifiche & audio", 205 "sidebar.muteApp" : "Disattiva notifiche e audio",
162 "sidebar.settings" : "Impostazioni", 206 "sidebar.settings" : "Impostazioni",
163 "sidebar.unmuteApp" : "Attiva notifiche & audio", 207 "sidebar.unmuteApp" : "Attiva notifiche e audio",
164 "signup.company.label" : "Società", 208 "signup.company.label" : "Società",
165 "signup.email.label" : "Indirizzo email", 209 "signup.email.label" : "Indirizzo email",
166 "signup.emailDuplicate" : "Esiste già un utente con lo stesso indirizzo email", 210 "signup.emailDuplicate" : "Esiste già un utente con lo stesso indirizzo email",
@@ -197,6 +241,10 @@
197 "tabs.item.enableNotification" : "Attiva notifiche", 241 "tabs.item.enableNotification" : "Attiva notifiche",
198 "tabs.item.enableService" : "Attiva servizio", 242 "tabs.item.enableService" : "Attiva servizio",
199 "tabs.item.reload" : "Aggiorna", 243 "tabs.item.reload" : "Aggiorna",
244 "validation.email" : "{field} non valido",
245 "validation.minLength" : "{field} dovrebbe contenere almeno {length} caratteri",
246 "validation.required" : "{field} è necessario",
247 "validation.url" : "{field} non è un URL valido",
200 "welcome.loginButton" : "Accedi al tuo account", 248 "welcome.loginButton" : "Accedi al tuo account",
201 "welcome.signupButton" : "Crea un account gratuito", 249 "welcome.signupButton" : "Crea un account gratuito",
202 "welcome.slogan" : "Un sistema di messaggistica che funziona" 250 "welcome.slogan" : "Un sistema di messaggistica che funziona"
diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json
index 9fc0a211b..a7af10aba 100644
--- a/src/i18n/locales/ja.json
+++ b/src/i18n/locales/ja.json
@@ -26,6 +26,49 @@
26 "login.serverLogout" : "セッションã®æœŸé™ãŒåˆ‡ã‚Œã¾ã—ãŸã€‚ログインã—ç›´ã—ã¦ä¸‹ã•ã„。", 26 "login.serverLogout" : "セッションã®æœŸé™ãŒåˆ‡ã‚Œã¾ã—ãŸã€‚ログインã—ç›´ã—ã¦ä¸‹ã•ã„。",
27 "login.submit.label" : "サインイン", 27 "login.submit.label" : "サインイン",
28 "login.tokenExpired" : "セッションã®æœŸé™ãŒåˆ‡ã‚Œã¾ã—ãŸã€‚ログインã—ç›´ã—ã¦ä¸‹ã•ã„。", 28 "login.tokenExpired" : "セッションã®æœŸé™ãŒåˆ‡ã‚Œã¾ã—ãŸã€‚ログインã—ç›´ã—ã¦ä¸‹ã•ã„。",
29 "menu.app.about" : "Franzã«ã¤ã„ã¦",
30 "menu.app.hide" : "éš ã™",
31 "menu.app.hideOthers" : "ä»–ã‚’éš ã™",
32 "menu.app.quit" : "終了",
33 "menu.app.settings" : "設定",
34 "menu.app.unhide" : "表示ã™ã‚‹",
35 "menu.edit" : "編集",
36 "menu.edit.copy" : "コピー",
37 "menu.edit.cut" : "切りå–ã‚Š",
38 "menu.edit.delete" : "削除",
39 "menu.edit.emojiSymbols" : "絵文字ã¨ã‚·ãƒ³ãƒœãƒ«",
40 "menu.edit.paste" : "貼り付ã‘",
41 "menu.edit.pasteAndMatchStyle" : "書å¼ã‚’統一ã—ã¦è²¼ã‚Šä»˜ã‘",
42 "menu.edit.redo" : "ã‚„ã‚Šç›´ã—",
43 "menu.edit.selectAll" : "å…¨ã¦é¸æŠž",
44 "menu.edit.speech" : "読ã¿ä¸Šã’",
45 "menu.edit.startDictation" : "音声入力を開始",
46 "menu.edit.startSpeaking" : "読ã¿ä¸Šã’を開始",
47 "menu.edit.stopSpeaking" : "読ã¿ä¸Šã’ã‚’åœæ­¢",
48 "menu.edit.undo" : "å…ƒã«æˆ»ã™",
49 "menu.file" : "ファイル",
50 "menu.help" : "ヘルプ",
51 "menu.help.changelog" : "更新履歴",
52 "menu.help.learnMore" : "詳細ã«ã¤ã„ã¦",
53 "menu.help.privacy" : "プライãƒã‚·ãƒ¼ã«ã¤ã„ã¦",
54 "menu.help.support" : "サãƒãƒ¼ãƒˆ",
55 "menu.help.tos" : "サービス利用è¦ç´„",
56 "menu.services" : "サービス",
57 "menu.services.addNewService" : "サービスを追加",
58 "menu.view" : "表示",
59 "menu.view.enterFullScreen" : "全画é¢è¡¨ç¤º",
60 "menu.view.exitFullScreen" : "全画é¢è¡¨ç¤ºã‚’終了ã™ã‚‹",
61 "menu.view.reloadFranz" : "å†èµ·å‹•",
62 "menu.view.reloadService" : "サービスをリロードã™ã‚‹",
63 "menu.view.resetZoom" : "å…ƒã®ã‚µã‚¤ã‚º",
64 "menu.view.toggleDevTools" : "開発者ツールを切り替ãˆ",
65 "menu.view.toggleFullScreen" : "全画é¢è¡¨ç¤ºã®åˆ‡ã‚Šæ›¿ãˆ",
66 "menu.view.toggleServiceDevTools" : "サービス開発者ツールを切り替ãˆ",
67 "menu.view.zoomIn" : "表示を拡大ã™ã‚‹",
68 "menu.view.zoomOut" : "表示を縮å°ã™ã‚‹",
69 "menu.window" : "ウィンドウ",
70 "menu.window.close" : "é–‰ã˜ã‚‹",
71 "menu.window.minimize" : "最å°åŒ–",
29 "password.email.label" : "メールアドレス", 72 "password.email.label" : "メールアドレス",
30 "password.headline" : "パスワードã®ãƒªã‚»ãƒƒãƒˆ", 73 "password.headline" : "パスワードã®ãƒªã‚»ãƒƒãƒˆ",
31 "password.link.login" : "サインイン", 74 "password.link.login" : "サインイン",
@@ -73,6 +116,7 @@
73 "settings.app.form.autoLaunchInBackground" : "ãƒãƒƒã‚¯ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã§é–‹ã", 116 "settings.app.form.autoLaunchInBackground" : "ãƒãƒƒã‚¯ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã§é–‹ã",
74 "settings.app.form.autoLaunchOnStart" : "システム起動時ã«Franzã‚’é–‹ã", 117 "settings.app.form.autoLaunchOnStart" : "システム起動時ã«Franzã‚’é–‹ã",
75 "settings.app.form.beta" : "Betaãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’å«ã‚ã‚‹", 118 "settings.app.form.beta" : "Betaãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’å«ã‚ã‚‹",
119 "settings.app.form.enableGPUAcceleration" : "GPUアクセラレーションを有効ã«ã™ã‚‹",
76 "settings.app.form.enableMenuBar" : "メニューãƒãƒ¼ã«Franzを表示ã™ã‚‹", 120 "settings.app.form.enableMenuBar" : "メニューãƒãƒ¼ã«Franzを表示ã™ã‚‹",
77 "settings.app.form.enableSpellchecking" : "スペルãƒã‚§ãƒƒã‚¯ã‚’有効ã«ã™ã‚‹", 121 "settings.app.form.enableSpellchecking" : "スペルãƒã‚§ãƒƒã‚¯ã‚’有効ã«ã™ã‚‹",
78 "settings.app.form.enableSystemTray" : "Franzをシステムトレイã«è¡¨ç¤ºã™ã‚‹", 122 "settings.app.form.enableSystemTray" : "Franzをシステムトレイã«è¡¨ç¤ºã™ã‚‹",
@@ -197,6 +241,10 @@
197 "tabs.item.enableNotification" : "通知を有効ã«ã™ã‚‹", 241 "tabs.item.enableNotification" : "通知を有効ã«ã™ã‚‹",
198 "tabs.item.enableService" : "サービスを有効ã«ã™ã‚‹", 242 "tabs.item.enableService" : "サービスを有効ã«ã™ã‚‹",
199 "tabs.item.reload" : "å†èª­ã¿è¾¼ã¿", 243 "tabs.item.reload" : "å†èª­ã¿è¾¼ã¿",
244 "validation.email" : "{field}ã¯æ­£ã—ãã‚ã‚Šã¾ã›ã‚“",
245 "validation.minLength" : "{field}ã¯å°‘ãªãã¨ã‚‚{length}文字以上ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“",
246 "validation.required" : "{field}ã¯å¿…é ˆã§ã™",
247 "validation.url" : "{field}ã¯æ­£ã—ã„URLã§ã¯ã‚ã‚Šã¾ã›ã‚“",
200 "welcome.loginButton" : "アカウントã«ãƒ­ã‚°ã‚¤ãƒ³", 248 "welcome.loginButton" : "アカウントã«ãƒ­ã‚°ã‚¤ãƒ³",
201 "welcome.signupButton" : "無料アカウントを作æˆ", 249 "welcome.signupButton" : "無料アカウントを作æˆ",
202 "welcome.slogan" : "Messaging that works for you" 250 "welcome.slogan" : "Messaging that works for you"
diff --git a/src/i18n/locales/ka.json b/src/i18n/locales/ka.json
index 67e81e12b..7679bc6fc 100644
--- a/src/i18n/locales/ka.json
+++ b/src/i18n/locales/ka.json
@@ -26,6 +26,49 @@
26 "login.serverLogout" : "თქვენს სესიáƒáƒ¡ ვáƒáƒ“რგáƒáƒ£áƒ•áƒ˜áƒ“áƒ, შედით áƒáƒœáƒ’áƒáƒ áƒ˜áƒ¨áƒ¨áƒ˜ ხელáƒáƒ®áƒšáƒ.", 26 "login.serverLogout" : "თქვენს სესიáƒáƒ¡ ვáƒáƒ“რგáƒáƒ£áƒ•áƒ˜áƒ“áƒ, შედით áƒáƒœáƒ’áƒáƒ áƒ˜áƒ¨áƒ¨áƒ˜ ხელáƒáƒ®áƒšáƒ.",
27 "login.submit.label" : "შესვლáƒ", 27 "login.submit.label" : "შესვლáƒ",
28 "login.tokenExpired" : "თქვენს სესიáƒáƒ¡ ვáƒáƒ“რგáƒáƒ£áƒ•áƒ˜áƒ“áƒ, შედით áƒáƒœáƒ’áƒáƒ áƒ˜áƒ¨áƒ¨áƒ˜ ხელáƒáƒ®áƒšáƒ.", 28 "login.tokenExpired" : "თქვენს სესიáƒáƒ¡ ვáƒáƒ“რგáƒáƒ£áƒ•áƒ˜áƒ“áƒ, შედით áƒáƒœáƒ’áƒáƒ áƒ˜áƒ¨áƒ¨áƒ˜ ხელáƒáƒ®áƒšáƒ.",
29 "menu.app.about" : "About Franz",
30 "menu.app.hide" : "Hide",
31 "menu.app.hideOthers" : "Hide Others",
32 "menu.app.quit" : "Quit",
33 "menu.app.settings" : "პáƒáƒ áƒáƒ›áƒ”ტრები",
34 "menu.app.unhide" : "Unhide",
35 "menu.edit" : "რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ",
36 "menu.edit.copy" : "Copy",
37 "menu.edit.cut" : "Cut",
38 "menu.edit.delete" : "Delete",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols",
40 "menu.edit.paste" : "Paste",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style",
42 "menu.edit.redo" : "Redo",
43 "menu.edit.selectAll" : "Select All",
44 "menu.edit.speech" : "Speech",
45 "menu.edit.startDictation" : "Start Dictation",
46 "menu.edit.startSpeaking" : "Start Speaking",
47 "menu.edit.stopSpeaking" : "Stop Speaking",
48 "menu.edit.undo" : "Undo",
49 "menu.file" : "File",
50 "menu.help" : "Help",
51 "menu.help.changelog" : "Changelog",
52 "menu.help.learnMore" : "Learn More",
53 "menu.help.privacy" : "კáƒáƒœáƒ¤áƒ˜áƒ“ენციáƒáƒšáƒ£áƒ áƒáƒ‘ის შესáƒáƒ®áƒ”ბ",
54 "menu.help.support" : "Support",
55 "menu.help.tos" : "Terms of Service",
56 "menu.services" : "Services",
57 "menu.services.addNewService" : "Add New Service...",
58 "menu.view" : "View",
59 "menu.view.enterFullScreen" : "Enter Full Screen",
60 "menu.view.exitFullScreen" : "Exit Full Screen",
61 "menu.view.reloadFranz" : "Reload Franz",
62 "menu.view.reloadService" : "Reload Service",
63 "menu.view.resetZoom" : "Actual Size",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools",
67 "menu.view.zoomIn" : "Zoom In",
68 "menu.view.zoomOut" : "Zoom Out",
69 "menu.window" : "Window",
70 "menu.window.close" : "Close",
71 "menu.window.minimize" : "Minimize",
29 "password.email.label" : "მეილი", 72 "password.email.label" : "მეილი",
30 "password.headline" : "პáƒáƒ áƒáƒšáƒ˜áƒ¡ áƒáƒ¦áƒ“გენáƒ", 73 "password.headline" : "პáƒáƒ áƒáƒšáƒ˜áƒ¡ áƒáƒ¦áƒ“გენáƒ",
31 "password.link.login" : "შედით თქვენს áƒáƒœáƒ’áƒáƒ áƒ˜áƒ¨áƒ¨áƒ˜", 74 "password.link.login" : "შედით თქვენს áƒáƒœáƒ’áƒáƒ áƒ˜áƒ¨áƒ¨áƒ˜",
@@ -73,6 +116,7 @@
73 "settings.app.form.autoLaunchInBackground" : "გáƒáƒ®áƒ¡áƒ”ნით ფáƒáƒœáƒ–ე", 116 "settings.app.form.autoLaunchInBackground" : "გáƒáƒ®áƒ¡áƒ”ნით ფáƒáƒœáƒ–ე",
74 "settings.app.form.autoLaunchOnStart" : "გáƒáƒ”შვáƒáƒ¡ Franz სისტემის ჩáƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვისáƒáƒ¡", 117 "settings.app.form.autoLaunchOnStart" : "გáƒáƒ”შვáƒáƒ¡ Franz სისტემის ჩáƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვისáƒáƒ¡",
75 "settings.app.form.beta" : "ჩáƒáƒ áƒ—ეთ ბეტრვერსიები", 118 "settings.app.form.beta" : "ჩáƒáƒ áƒ—ეთ ბეტრვერსიები",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
76 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", 120 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar",
77 "settings.app.form.enableSpellchecking" : "Enable spell checking", 121 "settings.app.form.enableSpellchecking" : "Enable spell checking",
78 "settings.app.form.enableSystemTray" : "áƒáƒ©áƒ•áƒ”ნეთ Franz სისტემის უჯრáƒáƒ¨áƒ˜", 122 "settings.app.form.enableSystemTray" : "áƒáƒ©áƒ•áƒ”ნეთ Franz სისტემის უჯრáƒáƒ¨áƒ˜",
@@ -197,6 +241,10 @@
197 "tabs.item.enableNotification" : "შეტყáƒáƒ‘ინებების ჩáƒáƒ áƒ—ვáƒ", 241 "tabs.item.enableNotification" : "შეტყáƒáƒ‘ინებების ჩáƒáƒ áƒ—ვáƒ",
198 "tabs.item.enableService" : "სერვისის ჩáƒáƒ áƒ—ვáƒ", 242 "tabs.item.enableService" : "სერვისის ჩáƒáƒ áƒ—ვáƒ",
199 "tabs.item.reload" : "ჩáƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვáƒ", 243 "tabs.item.reload" : "ჩáƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვáƒ",
244 "validation.email" : "{field} is not valid",
245 "validation.minLength" : "{field} should be at least {length} characters long",
246 "validation.required" : "{field} is required",
247 "validation.url" : "{field} is not a valid URL",
200 "welcome.loginButton" : "შედით თქვენს áƒáƒœáƒ’áƒáƒ áƒ˜áƒ¨áƒ¨áƒ˜", 248 "welcome.loginButton" : "შედით თქვენს áƒáƒœáƒ’áƒáƒ áƒ˜áƒ¨áƒ¨áƒ˜",
201 "welcome.signupButton" : "შექმენი áƒáƒœáƒ’áƒáƒ áƒ˜áƒ¨áƒ˜, ეს უფáƒáƒ¡áƒáƒ", 249 "welcome.signupButton" : "შექმენი áƒáƒœáƒ’áƒáƒ áƒ˜áƒ¨áƒ˜, ეს უფáƒáƒ¡áƒáƒ",
202 "welcome.slogan" : "შეტყáƒáƒ‘ინების áƒáƒžáƒšáƒ˜áƒ™áƒáƒªáƒ˜áƒ, რáƒáƒ›áƒ”ლიც მუშáƒáƒáƒ‘ს შენთვის" 250 "welcome.slogan" : "შეტყáƒáƒ‘ინების áƒáƒžáƒšáƒ˜áƒ™áƒáƒªáƒ˜áƒ, რáƒáƒ›áƒ”ლიც მუშáƒáƒáƒ‘ს შენთვის"
diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json
index dab23f607..13dc7548e 100644
--- a/src/i18n/locales/nl-BE.json
+++ b/src/i18n/locales/nl-BE.json
@@ -26,6 +26,49 @@
26 "login.serverLogout" : "De sessie is verlopen, log opnieuw in alsjeblieft.", 26 "login.serverLogout" : "De sessie is verlopen, log opnieuw in alsjeblieft.",
27 "login.submit.label" : "Log in", 27 "login.submit.label" : "Log in",
28 "login.tokenExpired" : "De sessie is verlopen, log opnieuw in alsjeblieft.", 28 "login.tokenExpired" : "De sessie is verlopen, log opnieuw in alsjeblieft.",
29 "menu.app.about" : "About Franz",
30 "menu.app.hide" : "Hide",
31 "menu.app.hideOthers" : "Hide Others",
32 "menu.app.quit" : "Quit",
33 "menu.app.settings" : "Instellingen",
34 "menu.app.unhide" : "Unhide",
35 "menu.edit" : "Aanpassen",
36 "menu.edit.copy" : "Copy",
37 "menu.edit.cut" : "Cut",
38 "menu.edit.delete" : "Delete",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols",
40 "menu.edit.paste" : "Paste",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style",
42 "menu.edit.redo" : "Redo",
43 "menu.edit.selectAll" : "Select All",
44 "menu.edit.speech" : "Speech",
45 "menu.edit.startDictation" : "Start Dictation",
46 "menu.edit.startSpeaking" : "Start Speaking",
47 "menu.edit.stopSpeaking" : "Stop Speaking",
48 "menu.edit.undo" : "Undo",
49 "menu.file" : "File",
50 "menu.help" : "Help",
51 "menu.help.changelog" : "Changelog",
52 "menu.help.learnMore" : "Learn More",
53 "menu.help.privacy" : "Privacyverklaring",
54 "menu.help.support" : "Support",
55 "menu.help.tos" : "Terms of Service",
56 "menu.services" : "Services",
57 "menu.services.addNewService" : "Add New Service...",
58 "menu.view" : "View",
59 "menu.view.enterFullScreen" : "Enter Full Screen",
60 "menu.view.exitFullScreen" : "Exit Full Screen",
61 "menu.view.reloadFranz" : "Reload Franz",
62 "menu.view.reloadService" : "Reload Service",
63 "menu.view.resetZoom" : "Actual Size",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools",
67 "menu.view.zoomIn" : "Zoom In",
68 "menu.view.zoomOut" : "Zoom Out",
69 "menu.window" : "Window",
70 "menu.window.close" : "Close",
71 "menu.window.minimize" : "Minimize",
29 "password.email.label" : "E-mailadres", 72 "password.email.label" : "E-mailadres",
30 "password.headline" : "Wachtwoord resetten", 73 "password.headline" : "Wachtwoord resetten",
31 "password.link.login" : "Log in op je account", 74 "password.link.login" : "Log in op je account",
@@ -73,6 +116,7 @@
73 "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond", 116 "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond",
74 "settings.app.form.autoLaunchOnStart" : "Lanceer Franz bij opstarten", 117 "settings.app.form.autoLaunchOnStart" : "Lanceer Franz bij opstarten",
75 "settings.app.form.beta" : "Inclusief bèta versies", 118 "settings.app.form.beta" : "Inclusief bèta versies",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
76 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", 120 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar",
77 "settings.app.form.enableSpellchecking" : "Enable spell checking", 121 "settings.app.form.enableSpellchecking" : "Enable spell checking",
78 "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk", 122 "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk",
@@ -197,6 +241,10 @@
197 "tabs.item.enableNotification" : "Notificaties inschakelen", 241 "tabs.item.enableNotification" : "Notificaties inschakelen",
198 "tabs.item.enableService" : "Service aanzetten", 242 "tabs.item.enableService" : "Service aanzetten",
199 "tabs.item.reload" : "Herladen", 243 "tabs.item.reload" : "Herladen",
244 "validation.email" : "{field} is not valid",
245 "validation.minLength" : "{field} should be at least {length} characters long",
246 "validation.required" : "{field} is required",
247 "validation.url" : "{field} is not a valid URL",
200 "welcome.loginButton" : "Inloggen op je account", 248 "welcome.loginButton" : "Inloggen op je account",
201 "welcome.signupButton" : "Maak een gratis account aan", 249 "welcome.signupButton" : "Maak een gratis account aan",
202 "welcome.slogan" : "Messaging that works for you" 250 "welcome.slogan" : "Messaging that works for you"
diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json
index e2b14ceab..4ff3cdd80 100644
--- a/src/i18n/locales/nl.json
+++ b/src/i18n/locales/nl.json
@@ -7,7 +7,7 @@
7 "import.submit.label" : "Importeer services", 7 "import.submit.label" : "Importeer services",
8 "infobar.buttonChangelog" : "Wat is er nieuw?", 8 "infobar.buttonChangelog" : "Wat is er nieuw?",
9 "infobar.buttonInstallUpdate" : "Opnieuw opstarten & update installeren", 9 "infobar.buttonInstallUpdate" : "Opnieuw opstarten & update installeren",
10 "infobar.buttonReloadServices" : "Laad services opnieuw", 10 "infobar.buttonReloadServices" : "Services opnieuw laden",
11 "infobar.requiredRequestsFailed" : "Kan de services en gebruikersinformatie niet laden", 11 "infobar.requiredRequestsFailed" : "Kan de services en gebruikersinformatie niet laden",
12 "infobar.servicesUpdated" : "Je services zijn bijgewerkt.", 12 "infobar.servicesUpdated" : "Je services zijn bijgewerkt.",
13 "infobar.updateAvailable" : "Er is een nieuwe update voor Franz beschikbaar.", 13 "infobar.updateAvailable" : "Er is een nieuwe update voor Franz beschikbaar.",
@@ -26,6 +26,49 @@
26 "login.serverLogout" : "De sessie is verlopen, log alsjeblieft opnieuw in.", 26 "login.serverLogout" : "De sessie is verlopen, log alsjeblieft opnieuw in.",
27 "login.submit.label" : "Inloggen", 27 "login.submit.label" : "Inloggen",
28 "login.tokenExpired" : "De sessie is verlopen, log opnieuw in alsjeblieft.", 28 "login.tokenExpired" : "De sessie is verlopen, log opnieuw in alsjeblieft.",
29 "menu.app.about" : "Over Franz",
30 "menu.app.hide" : "Verbergen",
31 "menu.app.hideOthers" : "Andere verbergen",
32 "menu.app.quit" : "Afsluiten",
33 "menu.app.settings" : "Instellingen",
34 "menu.app.unhide" : "Tonen",
35 "menu.edit" : "Bewerk",
36 "menu.edit.copy" : "Kopiëren",
37 "menu.edit.cut" : "Knippen",
38 "menu.edit.delete" : "Verwijderen",
39 "menu.edit.emojiSymbols" : "Emoji's en symbolen",
40 "menu.edit.paste" : "Plakken",
41 "menu.edit.pasteAndMatchStyle" : "Plakken en stijl overeen laten komen",
42 "menu.edit.redo" : "Opnieuw doen",
43 "menu.edit.selectAll" : "Selecteer alles",
44 "menu.edit.speech" : "Spraak",
45 "menu.edit.startDictation" : "Beginnen met dicteren",
46 "menu.edit.startSpeaking" : "Beginnen met praten",
47 "menu.edit.stopSpeaking" : "Stoppen met spreken",
48 "menu.edit.undo" : "Ongedaan maken",
49 "menu.file" : "Bestand",
50 "menu.help" : "Hulp",
51 "menu.help.changelog" : "Wijzigingenlogboek",
52 "menu.help.learnMore" : "Meer informatie",
53 "menu.help.privacy" : "Privacy Voorwaarden",
54 "menu.help.support" : "Ondersteuning",
55 "menu.help.tos" : "Servicevoorwaarden",
56 "menu.services" : "Diensten",
57 "menu.services.addNewService" : "Nieuwe dienst toevoegen",
58 "menu.view" : "Weergave",
59 "menu.view.enterFullScreen" : "Gebruik volledig scherm",
60 "menu.view.exitFullScreen" : "Volledig scherm verlaten",
61 "menu.view.reloadFranz" : "Herlaad Franz",
62 "menu.view.reloadService" : "Reload Service",
63 "menu.view.resetZoom" : "Actual Size",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools",
67 "menu.view.zoomIn" : "Zoom In",
68 "menu.view.zoomOut" : "Zoom Out",
69 "menu.window" : "Window",
70 "menu.window.close" : "Close",
71 "menu.window.minimize" : "Minimize",
29 "password.email.label" : "E-mailadres", 72 "password.email.label" : "E-mailadres",
30 "password.headline" : "Wachtwoord vergeten", 73 "password.headline" : "Wachtwoord vergeten",
31 "password.link.login" : "Log in op je account", 74 "password.link.login" : "Log in op je account",
@@ -73,6 +116,7 @@
73 "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond", 116 "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond",
74 "settings.app.form.autoLaunchOnStart" : "Open Franz bij opstarten", 117 "settings.app.form.autoLaunchOnStart" : "Open Franz bij opstarten",
75 "settings.app.form.beta" : "Inclusief bètaversies", 118 "settings.app.form.beta" : "Inclusief bètaversies",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
76 "settings.app.form.enableMenuBar" : "Toon Franz in menubalk", 120 "settings.app.form.enableMenuBar" : "Toon Franz in menubalk",
77 "settings.app.form.enableSpellchecking" : "Zet spellingcontrole aan", 121 "settings.app.form.enableSpellchecking" : "Zet spellingcontrole aan",
78 "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk", 122 "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk",
@@ -197,6 +241,10 @@
197 "tabs.item.enableNotification" : "Meldingen inschakelen", 241 "tabs.item.enableNotification" : "Meldingen inschakelen",
198 "tabs.item.enableService" : "Service inschakelen", 242 "tabs.item.enableService" : "Service inschakelen",
199 "tabs.item.reload" : "Laad opnieuw", 243 "tabs.item.reload" : "Laad opnieuw",
244 "validation.email" : "{field} is not valid",
245 "validation.minLength" : "{field} should be at least {length} characters long",
246 "validation.required" : "{field} is required",
247 "validation.url" : "{field} is not a valid URL",
200 "welcome.loginButton" : "Log in op je account", 248 "welcome.loginButton" : "Log in op je account",
201 "welcome.signupButton" : "Maak een gratis account", 249 "welcome.signupButton" : "Maak een gratis account",
202 "welcome.slogan" : "Messaging die voor jou werkt" 250 "welcome.slogan" : "Messaging die voor jou werkt"
diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json
index 95e269ea7..9fb72b9c9 100644
--- a/src/i18n/locales/pl.json
+++ b/src/i18n/locales/pl.json
@@ -16,7 +16,7 @@
16 "invite.name.label" : "ImiÄ™", 16 "invite.name.label" : "ImiÄ™",
17 "invite.skip.label" : "Chcę to zrobić później", 17 "invite.skip.label" : "Chcę to zrobić później",
18 "invite.submit.label" : "Wyślij zaproszenia", 18 "invite.submit.label" : "Wyślij zaproszenia",
19 "invite.successInfo" : "Invitations sent successfully", 19 "invite.successInfo" : "Zaproszenia zostały wysłane",
20 "login.email.label" : "Adres email", 20 "login.email.label" : "Adres email",
21 "login.headline" : "Zaloguj siÄ™", 21 "login.headline" : "Zaloguj siÄ™",
22 "login.invalidCredentials" : "Adres email lub hasło są błędne", 22 "login.invalidCredentials" : "Adres email lub hasło są błędne",
@@ -26,6 +26,49 @@
26 "login.serverLogout" : "Twoja sesja wygasła, zaloguj się ponownie.", 26 "login.serverLogout" : "Twoja sesja wygasła, zaloguj się ponownie.",
27 "login.submit.label" : "Zaloguj siÄ™", 27 "login.submit.label" : "Zaloguj siÄ™",
28 "login.tokenExpired" : "Twoja sesja wygasła, zaloguj się ponownie.", 28 "login.tokenExpired" : "Twoja sesja wygasła, zaloguj się ponownie.",
29 "menu.app.about" : "O Franz",
30 "menu.app.hide" : "Ukryj",
31 "menu.app.hideOthers" : "Hide Others",
32 "menu.app.quit" : "Quit",
33 "menu.app.settings" : "Ustawienia",
34 "menu.app.unhide" : "Pokaż",
35 "menu.edit" : "Edytuj",
36 "menu.edit.copy" : "Skopiuj",
37 "menu.edit.cut" : "Wytnij",
38 "menu.edit.delete" : "Usuń",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols",
40 "menu.edit.paste" : "Wklej",
41 "menu.edit.pasteAndMatchStyle" : "Wklej i dopasuj styl",
42 "menu.edit.redo" : "Ponów",
43 "menu.edit.selectAll" : "Zaznacz wszystko",
44 "menu.edit.speech" : "Speech",
45 "menu.edit.startDictation" : "Zacznij dyktować",
46 "menu.edit.startSpeaking" : "Zacznij mówić",
47 "menu.edit.stopSpeaking" : "Przestań mówić",
48 "menu.edit.undo" : "Cofnij",
49 "menu.file" : "Plik",
50 "menu.help" : "Pomoc",
51 "menu.help.changelog" : "Lista zmian",
52 "menu.help.learnMore" : "Dowiedz się więcej",
53 "menu.help.privacy" : "Polityka prywatności",
54 "menu.help.support" : "Wsparcie",
55 "menu.help.tos" : "Terms of Service",
56 "menu.services" : "Usługi",
57 "menu.services.addNewService" : "Dodaj nową usługę...",
58 "menu.view" : "Widok",
59 "menu.view.enterFullScreen" : "Włącz tryb pełnoekranowy",
60 "menu.view.exitFullScreen" : "Zakończ tryb pełnoekranowy",
61 "menu.view.reloadFranz" : "Przeładuj Franz",
62 "menu.view.reloadService" : "Przeładuj usługę",
63 "menu.view.resetZoom" : "Domyślny rozmiar",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools",
65 "menu.view.toggleFullScreen" : "Przełącz tryb pełnoekranowy",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools",
67 "menu.view.zoomIn" : "Powiększ",
68 "menu.view.zoomOut" : "Pomniejsz",
69 "menu.window" : "Okno",
70 "menu.window.close" : "Zamknij",
71 "menu.window.minimize" : "Zminimalizuj",
29 "password.email.label" : "Adres email", 72 "password.email.label" : "Adres email",
30 "password.headline" : "Wyzeruj hasło", 73 "password.headline" : "Wyzeruj hasło",
31 "password.link.login" : "Zaloguj siÄ™ na swoje konto", 74 "password.link.login" : "Zaloguj siÄ™ na swoje konto",
@@ -41,7 +84,7 @@
41 "service.crashHandler.autoReload" : "Próba automatycznego odnowienia {name} za {seconds} sekund\/y", 84 "service.crashHandler.autoReload" : "Próba automatycznego odnowienia {name} za {seconds} sekund\/y",
42 "service.crashHandler.headline" : "O nie!", 85 "service.crashHandler.headline" : "O nie!",
43 "service.crashHandler.text" : "{name} spowodował problem.", 86 "service.crashHandler.text" : "{name} spowodował problem.",
44 "service.disabledHandler.action" : "Dostępny {name}", 87 "service.disabledHandler.action" : "Włącz {name}",
45 "service.disabledHandler.headline" : "{name} jest wyłączony", 88 "service.disabledHandler.headline" : "{name} jest wyłączony",
46 "services.getStarted" : "Zacznij", 89 "services.getStarted" : "Zacznij",
47 "services.welcome" : "Witaj w programie Franz", 90 "services.welcome" : "Witaj w programie Franz",
@@ -65,18 +108,19 @@
65 "settings.account.successInfo" : "Twoje zmiany zostały zapisane", 108 "settings.account.successInfo" : "Twoje zmiany zostały zapisane",
66 "settings.account.tryReloadUserInfoRequest" : "Spróbuj ponownie", 109 "settings.account.tryReloadUserInfoRequest" : "Spróbuj ponownie",
67 "settings.account.userInfoRequestFailed" : "Nie można wczytać informacji o użytkowniku", 110 "settings.account.userInfoRequestFailed" : "Nie można wczytać informacji o użytkowniku",
68 "settings.app.buttonClearAllCache" : "Clear cache", 111 "settings.app.buttonClearAllCache" : "Wyczyść pamięć podręczną (cache)",
69 "settings.app.buttonInstallUpdate" : "Uruchom ponownie i zainstaluj aktualizacjÄ™", 112 "settings.app.buttonInstallUpdate" : "Uruchom ponownie i zainstaluj aktualizacjÄ™",
70 "settings.app.buttonSearchForUpdate" : "Sprawdź aktualizacje", 113 "settings.app.buttonSearchForUpdate" : "Sprawdź aktualizacje",
71 "settings.app.cacheInfo" : "Franz cache is currently using {size} of disk space.", 114 "settings.app.cacheInfo" : "Pamięć podręczna zajmuje obecnie {size} przestrzeni dyskowej",
72 "settings.app.currentVersion" : "Aktualna wersja:", 115 "settings.app.currentVersion" : "Aktualna wersja:",
73 "settings.app.form.autoLaunchInBackground" : "Otwórz w tle", 116 "settings.app.form.autoLaunchInBackground" : "Otwórz w tle",
74 "settings.app.form.autoLaunchOnStart" : "Uruchom Franz na poczÄ…tku", 117 "settings.app.form.autoLaunchOnStart" : "Uruchom Franz na poczÄ…tku",
75 "settings.app.form.beta" : "Uwzględnij wersje beta", 118 "settings.app.form.beta" : "Uwzględnij wersje beta",
76 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", 119 "settings.app.form.enableGPUAcceleration" : "WÅ‚Ä…cz akceleracjÄ™ GPU",
120 "settings.app.form.enableMenuBar" : "Pokaż Franz na pasku menu",
77 "settings.app.form.enableSpellchecking" : "WÅ‚Ä…cz sprawdzanie pisowni", 121 "settings.app.form.enableSpellchecking" : "WÅ‚Ä…cz sprawdzanie pisowni",
78 "settings.app.form.enableSystemTray" : "Pokaż Franza w tacy systemowej", 122 "settings.app.form.enableSystemTray" : "Pokaż Franza w tacy systemowej",
79 "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock", 123 "settings.app.form.hideDockIcon" : "Ukrywaj ikonÄ™ Franz w zasobniku systemowym",
80 "settings.app.form.language" : "Język", 124 "settings.app.form.language" : "Język",
81 "settings.app.form.minimizeToSystemTray" : "Zminimalizuj aplikacjÄ™ Franz", 125 "settings.app.form.minimizeToSystemTray" : "Zminimalizuj aplikacjÄ™ Franz",
82 "settings.app.form.runInBackground" : "Zachowaj aplikację Franz w tle po zamknięciu okna", 126 "settings.app.form.runInBackground" : "Zachowaj aplikację Franz w tle po zamknięciu okna",
@@ -89,15 +133,15 @@
89 "settings.app.headlineLanguage" : "Język", 133 "settings.app.headlineLanguage" : "Język",
90 "settings.app.headlineUpdates" : "Aktualizacje", 134 "settings.app.headlineUpdates" : "Aktualizacje",
91 "settings.app.restartRequired" : "Zmiany. wymagajÄ… ponownego uruchomienia", 135 "settings.app.restartRequired" : "Zmiany. wymagajÄ… ponownego uruchomienia",
92 "settings.app.subheadlineCache" : "Cache", 136 "settings.app.subheadlineCache" : "Pamięć podręczna",
93 "settings.app.translationHelp" : "Pomóż nam tłumaczyć Franz na Twój język.", 137 "settings.app.translationHelp" : "Pomóż nam tłumaczyć Franz na Twój język.",
94 "settings.app.updateStatusAvailable" : "Dostępna aktualizacja, pobieram...", 138 "settings.app.updateStatusAvailable" : "Dostępna aktualizacja, pobieram...",
95 "settings.app.updateStatusSearching" : "Szukam aktualizacji", 139 "settings.app.updateStatusSearching" : "Szukam aktualizacji",
96 "settings.app.updateStatusUpToDate" : "Używasz najnowszej wersji aplikacji Franz", 140 "settings.app.updateStatusUpToDate" : "Używasz najnowszej wersji aplikacji Franz",
97 "settings.invite.headline" : "Invite Friends", 141 "settings.invite.headline" : "ZaproÅ› znajomych",
98 "settings.navigation.account" : "Konto", 142 "settings.navigation.account" : "Konto",
99 "settings.navigation.availableServices" : "Dostępne usługi", 143 "settings.navigation.availableServices" : "Dostępne usługi",
100 "settings.navigation.inviteFriends" : "Invite Friends", 144 "settings.navigation.inviteFriends" : "ZaproÅ› znajomych",
101 "settings.navigation.logout" : "Wyloguj", 145 "settings.navigation.logout" : "Wyloguj",
102 "settings.navigation.settings" : "Ustawienia", 146 "settings.navigation.settings" : "Ustawienia",
103 "settings.navigation.yourServices" : "Twoje usługi", 147 "settings.navigation.yourServices" : "Twoje usługi",
@@ -108,7 +152,7 @@
108 "settings.recipes.mostPopular" : "Najpopularniejsze", 152 "settings.recipes.mostPopular" : "Najpopularniejsze",
109 "settings.recipes.nothingFound" : "Żadna usługa nie została znaleziona.", 153 "settings.recipes.nothingFound" : "Żadna usługa nie została znaleziona.",
110 "settings.recipes.servicesSuccessfulAddedInfo" : "Usługa została dodana pomyślnie", 154 "settings.recipes.servicesSuccessfulAddedInfo" : "Usługa została dodana pomyślnie",
111 "settings.searchService" : "Search service", 155 "settings.searchService" : "Wyszukaj serwis",
112 "settings.service.error.goBack" : "Wróć do usług", 156 "settings.service.error.goBack" : "Wróć do usług",
113 "settings.service.error.headline" : "BÅ‚Ä…d", 157 "settings.service.error.headline" : "BÅ‚Ä…d",
114 "settings.service.error.message" : "Nie można wczytać przepisu usługi.", 158 "settings.service.error.message" : "Nie można wczytać przepisu usługi.",
@@ -121,15 +165,15 @@
121 "settings.service.form.deleteButton" : "Usuń usługę", 165 "settings.service.form.deleteButton" : "Usuń usługę",
122 "settings.service.form.editServiceHeadline" : "Edytuj {name}", 166 "settings.service.form.editServiceHeadline" : "Edytuj {name}",
123 "settings.service.form.enableAudio" : "Włącz dźwięk", 167 "settings.service.form.enableAudio" : "Włącz dźwięk",
124 "settings.service.form.enableBadge" : "Show unread message badges", 168 "settings.service.form.enableBadge" : "Pokaż znacznik nieprzeczytanych wiadomości",
125 "settings.service.form.enableNotification" : "Aktywuj powiadomienia", 169 "settings.service.form.enableNotification" : "Aktywuj powiadomienia",
126 "settings.service.form.enableService" : "Aktywuj usługę", 170 "settings.service.form.enableService" : "Aktywuj usługę",
127 "settings.service.form.headlineBadges" : "Unread message badges", 171 "settings.service.form.headlineBadges" : "Znaczniki nieprzeczytanych wiadomości",
128 "settings.service.form.headlineGeneral" : "Ogólne", 172 "settings.service.form.headlineGeneral" : "Ogólne",
129 "settings.service.form.headlineNotifications" : "Notifications", 173 "settings.service.form.headlineNotifications" : "Powiadomienia",
130 "settings.service.form.icon" : "Custom icon", 174 "settings.service.form.icon" : "WÅ‚asna ikona",
131 "settings.service.form.iconDelete" : "Delete", 175 "settings.service.form.iconDelete" : "Usuń",
132 "settings.service.form.iconUpload" : "Drop your image, or click here", 176 "settings.service.form.iconUpload" : "Przeciągnij i upuść obraz lub kliknij tutaj",
133 "settings.service.form.indirectMessageInfo" : "Będziesz informowany o wszystkich nowych wiadomościach na kanale, nie tylko @username, @channel, @here, ...", 177 "settings.service.form.indirectMessageInfo" : "Będziesz informowany o wszystkich nowych wiadomościach na kanale, nie tylko @username, @channel, @here, ...",
134 "settings.service.form.indirectMessages" : "Pokaż ikonę wiadomości dla wszystkich nowych wiadomości", 178 "settings.service.form.indirectMessages" : "Pokaż ikonę wiadomości dla wszystkich nowych wiadomości",
135 "settings.service.form.isMutedInfo" : "Kiedy nieaktywne, wszystkie dźwięki powiadomień są wyciszone", 179 "settings.service.form.isMutedInfo" : "Kiedy nieaktywne, wszystkie dźwięki powiadomień są wyciszone",
@@ -197,6 +241,10 @@
197 "tabs.item.enableNotification" : "WÅ‚Ä…cz powiadomienia", 241 "tabs.item.enableNotification" : "WÅ‚Ä…cz powiadomienia",
198 "tabs.item.enableService" : "Aktywuj usługę", 242 "tabs.item.enableService" : "Aktywuj usługę",
199 "tabs.item.reload" : "Przeładuj", 243 "tabs.item.reload" : "Przeładuj",
244 "validation.email" : "{field} is not valid",
245 "validation.minLength" : "{field} should be at least {length} characters long",
246 "validation.required" : "{field} is required",
247 "validation.url" : "{field} is not a valid URL",
200 "welcome.loginButton" : "Zaloguj siÄ™ na swoje konto", 248 "welcome.loginButton" : "Zaloguj siÄ™ na swoje konto",
201 "welcome.signupButton" : "Stwórz darmowe konto", 249 "welcome.signupButton" : "Stwórz darmowe konto",
202 "welcome.slogan" : "Komunikator który działa" 250 "welcome.slogan" : "Komunikator który działa"
diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json
index dd1633a9c..ceb35ce30 100644
--- a/src/i18n/locales/pt-BR.json
+++ b/src/i18n/locales/pt-BR.json
@@ -1,5 +1,5 @@
1{ 1{
2 "global.api.unhealthy" : "Não foi possível conectar-se aos serviços do Franz", 2 "global.api.unhealthy" : "Não foi possível conectar aos serviços do Franz",
3 "global.notConnectedToTheInternet" : "Você não está conectado à internet.", 3 "global.notConnectedToTheInternet" : "Você não está conectado à internet.",
4 "import.headline" : "Importe seus serviços do Franz 4", 4 "import.headline" : "Importe seus serviços do Franz 4",
5 "import.notSupportedHeadline" : "Serviços ainda não suportados pelo Franz 5", 5 "import.notSupportedHeadline" : "Serviços ainda não suportados pelo Franz 5",
@@ -26,6 +26,49 @@
26 "login.serverLogout" : "Sua sessão expirou, faça o login novamente.", 26 "login.serverLogout" : "Sua sessão expirou, faça o login novamente.",
27 "login.submit.label" : "Entrar", 27 "login.submit.label" : "Entrar",
28 "login.tokenExpired" : "Sua sessão expirou, faça o login novamente.", 28 "login.tokenExpired" : "Sua sessão expirou, faça o login novamente.",
29 "menu.app.about" : "Sobre Franz",
30 "menu.app.hide" : "Ocultar",
31 "menu.app.hideOthers" : "Ocultar os demais",
32 "menu.app.quit" : "Sair",
33 "menu.app.settings" : "Ajustes",
34 "menu.app.unhide" : "Exibir",
35 "menu.edit" : "Editar",
36 "menu.edit.copy" : "Copiar",
37 "menu.edit.cut" : "Cortar",
38 "menu.edit.delete" : "Excluir",
39 "menu.edit.emojiSymbols" : "Emoji & Símbolos ",
40 "menu.edit.paste" : "Colar",
41 "menu.edit.pasteAndMatchStyle" : "Colar e corresponder ao estilo",
42 "menu.edit.redo" : "Refazer",
43 "menu.edit.selectAll" : "Selecionar tudo",
44 "menu.edit.speech" : "Discurso",
45 "menu.edit.startDictation" : "iniciar digitação por voz",
46 "menu.edit.startSpeaking" : "começar a falar",
47 "menu.edit.stopSpeaking" : "Parar de falar",
48 "menu.edit.undo" : "Desfazer",
49 "menu.file" : "Arquivo",
50 "menu.help" : "Ajuda",
51 "menu.help.changelog" : "Registro de alterações",
52 "menu.help.learnMore" : "Saiba Mais",
53 "menu.help.privacy" : "Declaração de privacidade",
54 "menu.help.support" : "Suporte",
55 "menu.help.tos" : "Termos de Serviço",
56 "menu.services" : "Serviços",
57 "menu.services.addNewService" : "Adicionar Novo Serviço",
58 "menu.view" : "Visualizar",
59 "menu.view.enterFullScreen" : "Entrar na tela cheia",
60 "menu.view.exitFullScreen" : "Sair da tela cheia",
61 "menu.view.reloadFranz" : "Recarregar Franz",
62 "menu.view.reloadService" : "Reiniciar o serviço",
63 "menu.view.resetZoom" : "Tamanho real",
64 "menu.view.toggleDevTools" : "alternar ferramentas de desenvolvedor",
65 "menu.view.toggleFullScreen" : "tela cheia",
66 "menu.view.toggleServiceDevTools" : "habilitar ferramentas de serviços de desenvolvedor",
67 "menu.view.zoomIn" : "Ampliar",
68 "menu.view.zoomOut" : "reduzir",
69 "menu.window" : "Janela",
70 "menu.window.close" : "Fechar",
71 "menu.window.minimize" : "Minimizar",
29 "password.email.label" : "Endereço de e-mail", 72 "password.email.label" : "Endereço de e-mail",
30 "password.headline" : "Trocar a senha", 73 "password.headline" : "Trocar a senha",
31 "password.link.login" : "Fazer login na sua conta", 74 "password.link.login" : "Fazer login na sua conta",
@@ -73,16 +116,17 @@
73 "settings.app.form.autoLaunchInBackground" : "Abrir em segundo plano", 116 "settings.app.form.autoLaunchInBackground" : "Abrir em segundo plano",
74 "settings.app.form.autoLaunchOnStart" : "Abrir o Franz ao iniciar o sistema", 117 "settings.app.form.autoLaunchOnStart" : "Abrir o Franz ao iniciar o sistema",
75 "settings.app.form.beta" : "Incluir versões beta", 118 "settings.app.form.beta" : "Incluir versões beta",
119 "settings.app.form.enableGPUAcceleration" : "Ativar Aceleração de GPU (Unidade de Processamento Gráfico)",
76 "settings.app.form.enableMenuBar" : "Mostrar Franz na Barra de Menu", 120 "settings.app.form.enableMenuBar" : "Mostrar Franz na Barra de Menu",
77 "settings.app.form.enableSpellchecking" : "Ativar correção ortográfica", 121 "settings.app.form.enableSpellchecking" : "Ativar correção ortográfica",
78 "settings.app.form.enableSystemTray" : "Exibir o Franz na área de notificações", 122 "settings.app.form.enableSystemTray" : "Exibir o Franz na área de notificações",
79 "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock", 123 "settings.app.form.hideDockIcon" : "Ocultar ícone do Franz no Dock",
80 "settings.app.form.language" : "Idioma", 124 "settings.app.form.language" : "Idioma",
81 "settings.app.form.minimizeToSystemTray" : "Minimizar o Franz para a área de notificações", 125 "settings.app.form.minimizeToSystemTray" : "Minimizar o Franz para a área de notificações",
82 "settings.app.form.runInBackground" : "Manter o Franz no fundo quando fechar a janela", 126 "settings.app.form.runInBackground" : "Manter o Franz no fundo quando fechar a janela",
83 "settings.app.form.showDisabledServices" : "Mostrar abas de serviços desativados", 127 "settings.app.form.showDisabledServices" : "Mostrar abas de serviços desativados",
84 "settings.app.form.showMessagesBadgesWhenMuted" : "Mostrar ícone de mensagem não lida quando as notificações estiverem desativadas", 128 "settings.app.form.showMessagesBadgesWhenMuted" : "Mostrar ícone de mensagem não lida quando as notificações estiverem desativadas",
85 "settings.app.headline" : "Ajustes", 129 "settings.app.headline" : "Configurações",
86 "settings.app.headlineAdvanced" : "Avançado", 130 "settings.app.headlineAdvanced" : "Avançado",
87 "settings.app.headlineAppearance" : "Aparência", 131 "settings.app.headlineAppearance" : "Aparência",
88 "settings.app.headlineGeneral" : "Geral", 132 "settings.app.headlineGeneral" : "Geral",
@@ -94,10 +138,10 @@
94 "settings.app.updateStatusAvailable" : "Atualização disponível, baixando...", 138 "settings.app.updateStatusAvailable" : "Atualização disponível, baixando...",
95 "settings.app.updateStatusSearching" : "Buscando atualizações", 139 "settings.app.updateStatusSearching" : "Buscando atualizações",
96 "settings.app.updateStatusUpToDate" : "Você está usando a última versão do Franz", 140 "settings.app.updateStatusUpToDate" : "Você está usando a última versão do Franz",
97 "settings.invite.headline" : "Invite Friends", 141 "settings.invite.headline" : "Convidar amigos",
98 "settings.navigation.account" : "Conta", 142 "settings.navigation.account" : "Conta",
99 "settings.navigation.availableServices" : "Serviços disponíveis", 143 "settings.navigation.availableServices" : "Serviços disponíveis",
100 "settings.navigation.inviteFriends" : "Invite Friends", 144 "settings.navigation.inviteFriends" : "Convidar amigos",
101 "settings.navigation.logout" : "Sair", 145 "settings.navigation.logout" : "Sair",
102 "settings.navigation.settings" : "Ajustes", 146 "settings.navigation.settings" : "Ajustes",
103 "settings.navigation.yourServices" : "Seus serviços", 147 "settings.navigation.yourServices" : "Seus serviços",
@@ -197,7 +241,11 @@
197 "tabs.item.enableNotification" : "Ativar notificações", 241 "tabs.item.enableNotification" : "Ativar notificações",
198 "tabs.item.enableService" : "Ativar serviço", 242 "tabs.item.enableService" : "Ativar serviço",
199 "tabs.item.reload" : "Recarregar", 243 "tabs.item.reload" : "Recarregar",
244 "validation.email" : "inválido",
245 "validation.minLength" : "{campo} deve ser pelo menos {comprimento} mais caracteres ",
246 "validation.required" : "{campo} obrigatório",
247 "validation.url" : "{campo} essa URL não é válida",
200 "welcome.loginButton" : "Entrar na sua conta", 248 "welcome.loginButton" : "Entrar na sua conta",
201 "welcome.signupButton" : "Criar uma conta grátis", 249 "welcome.signupButton" : "Criar uma conta grátis",
202 "welcome.slogan" : "Mensageria que funciona, para você" 250 "welcome.slogan" : "Mensagens que funcionam para você"
203} 251}
diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json
index fb08ebd2a..44048e505 100644
--- a/src/i18n/locales/pt.json
+++ b/src/i18n/locales/pt.json
@@ -1,112 +1,156 @@
1{ 1{
2 "global.api.unhealthy" : "Não foi possível conectar aos serviços do Franz", 2 "global.api.unhealthy" : "Não foi possível conetar aos serviços do Franz",
3 "global.notConnectedToTheInternet" : "Não estás conectado à internet.", 3 "global.notConnectedToTheInternet" : "Não existe ligação à Internet.",
4 "import.headline" : "Importar os teus serviços do Franz 4", 4 "import.headline" : "Importe os seus serviços do Franz 4",
5 "import.notSupportedHeadline" : "Os serviços não são suportados no Franz 5", 5 "import.notSupportedHeadline" : "Serviços ainda não são suportados pelo Franz 5",
6 "import.skip.label" : "Quero adicionar serviços manualmente", 6 "import.skip.label" : "Quero adicionar serviços manualmente",
7 "import.submit.label" : "Importar serviços", 7 "import.submit.label" : "Importar serviços",
8 "infobar.buttonChangelog" : "Novidades?", 8 "infobar.buttonChangelog" : "Novidades?",
9 "infobar.buttonInstallUpdate" : "Reiniciar & Instalar Atualizações", 9 "infobar.buttonInstallUpdate" : "Reiniciar & Instalar Atualizações",
10 "infobar.buttonReloadServices" : "Recarregar serviços", 10 "infobar.buttonReloadServices" : "Recarregar serviços",
11 "infobar.requiredRequestsFailed" : "Não foi possivel carregar os serviços e informações do utilizador", 11 "infobar.requiredRequestsFailed" : "Não foi possivel carregar os serviços e informações do utilizador",
12 "infobar.servicesUpdated" : "Os teus serviços foram atualizados", 12 "infobar.servicesUpdated" : "Os seus serviços foram atualizados.",
13 "infobar.updateAvailable" : "Uma atualização está disponível", 13 "infobar.updateAvailable" : "Está disponível uma atualização",
14 "invite.email.label" : "Endereço de e-mail", 14 "invite.email.label" : "Endereço de e-mail",
15 "invite.headline.friends" : "Manda 3 convites aos teus amigos ou colegas", 15 "invite.headline.friends" : "Convide 3 amigos ou colegas",
16 "invite.name.label" : "Nome", 16 "invite.name.label" : "Nome",
17 "invite.skip.label" : "Quero adicionar mais tarde", 17 "invite.skip.label" : "Quero fazer isto mais tarde",
18 "invite.submit.label" : "Mandar convites", 18 "invite.submit.label" : "Enviar convites",
19 "invite.successInfo" : "Invitations sent successfully", 19 "invite.successInfo" : "Convites enviados com sucesso",
20 "login.email.label" : "Endereço de e-mail", 20 "login.email.label" : "Endereço de e-mail",
21 "login.headline" : "Registar", 21 "login.headline" : "Registar",
22 "login.invalidCredentials" : " O email ou a password estão incorretos", 22 "login.invalidCredentials" : "O email ou a palavra-passe estão incorretos",
23 "login.link.password" : "Repor a minha password", 23 "login.link.password" : "Repor a minha palavra-passe",
24 "login.link.signup" : "Criar uma conta gratuita", 24 "login.link.signup" : "Criar uma conta gratuita",
25 "login.password.label" : "Password", 25 "login.password.label" : "Palavra-passe",
26 "login.serverLogout" : "A tua sessão expirou, por favor, volta a fazer login.", 26 "login.serverLogout" : "A sua sessão expirou, inicie sessão novamente.",
27 "login.submit.label" : "Iniciar Sessão", 27 "login.submit.label" : "Iniciar sessão",
28 "login.tokenExpired" : "A tua sessão expirou, por favor, volta a fazer login.", 28 "login.tokenExpired" : "A sua sessão expirou, inicie sessão novamente.",
29 "menu.app.about" : "Sobre Franz",
30 "menu.app.hide" : "Ocultar",
31 "menu.app.hideOthers" : "Ocultar Outros",
32 "menu.app.quit" : "Sair",
33 "menu.app.settings" : "Definições",
34 "menu.app.unhide" : "Mostrar",
35 "menu.edit" : "Editar",
36 "menu.edit.copy" : "Copiar",
37 "menu.edit.cut" : "Cortar",
38 "menu.edit.delete" : "Apagar",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols",
40 "menu.edit.paste" : "Paste",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style",
42 "menu.edit.redo" : "Redo",
43 "menu.edit.selectAll" : "Select All",
44 "menu.edit.speech" : "Speech",
45 "menu.edit.startDictation" : "Start Dictation",
46 "menu.edit.startSpeaking" : "Start Speaking",
47 "menu.edit.stopSpeaking" : "Stop Speaking",
48 "menu.edit.undo" : "Undo",
49 "menu.file" : "File",
50 "menu.help" : "Help",
51 "menu.help.changelog" : "Changelog",
52 "menu.help.learnMore" : "Learn More",
53 "menu.help.privacy" : "Declaração de privacidade",
54 "menu.help.support" : "Support",
55 "menu.help.tos" : "Terms of Service",
56 "menu.services" : "Services",
57 "menu.services.addNewService" : "Add New Service...",
58 "menu.view" : "View",
59 "menu.view.enterFullScreen" : "Enter Full Screen",
60 "menu.view.exitFullScreen" : "Exit Full Screen",
61 "menu.view.reloadFranz" : "Reload Franz",
62 "menu.view.reloadService" : "Reload Service",
63 "menu.view.resetZoom" : "Actual Size",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools",
67 "menu.view.zoomIn" : "Zoom In",
68 "menu.view.zoomOut" : "Zoom Out",
69 "menu.window" : "Window",
70 "menu.window.close" : "Close",
71 "menu.window.minimize" : "Minimize",
29 "password.email.label" : "Endereço de e-mail", 72 "password.email.label" : "Endereço de e-mail",
30 "password.headline" : "Repor a minha password", 73 "password.headline" : "Repor a minha palavra-passe",
31 "password.link.login" : "Fazer login", 74 "password.link.login" : "Iniciar sessão",
32 "password.link.signup" : "Criar uma conta gratuita", 75 "password.link.signup" : "Criar uma conta gratuita",
33 "password.noUser" : "Não existe nenhuma conta associada a esse email", 76 "password.noUser" : "Não existe nenhuma conta associada a esse email",
34 "password.submit.label" : "Submeter", 77 "password.submit.label" : "Submeter",
35 "password.successInfo" : "Por favor, revê o teu email", 78 "password.successInfo" : "Por favor reveja o seu email",
36 "pricing.headline" : "Apoia o Franz", 79 "pricing.headline" : "Apoie o Franz",
37 "pricing.link.skipPayment" : "Não quero ajudar no desenvolvimento do Franz", 80 "pricing.link.skipPayment" : "Não pretendo ajudar no desenvolvimento do Franz",
38 "pricing.submit.label" : "Quero ajudar o desenvolvimento do Franz", 81 "pricing.submit.label" : "Pretendo ajudar no desenvolvimento do Franz",
39 "pricing.support.label" : "Seleciona o teu plano", 82 "pricing.support.label" : "Selecione o seu plano",
40 "service.crashHandler.action" : "Actualizar", 83 "service.crashHandler.action" : "Recarregar",
41 "service.crashHandler.autoReload" : "A tentar restaurar automaticamente {name} em {seconds} seconds", 84 "service.crashHandler.autoReload" : "A tentar restaurar automaticamente {name} em {seconds} segundos",
42 "service.crashHandler.headline" : "Oh não!", 85 "service.crashHandler.headline" : "Oh não!",
43 "service.crashHandler.text" : "{name} causou um erro.", 86 "service.crashHandler.text" : "{name} causou um erro.",
44 "service.disabledHandler.action" : "Habilitar {name}", 87 "service.disabledHandler.action" : "Ativar {name}",
45 "service.disabledHandler.headline" : "{name} está desactivado", 88 "service.disabledHandler.headline" : "{name} está desativado",
46 "services.getStarted" : "Vamos começar", 89 "services.getStarted" : "Vamos começar",
47 "services.welcome" : "Bem-vindo ao Franz", 90 "services.welcome" : "Bem-vindo ao Franz",
48 "settings.account.account.editButton" : "Editar conta", 91 "settings.account.account.editButton" : "Editar conta",
49 "settings.account.accountType.basic" : "Conta básica", 92 "settings.account.accountType.basic" : "Conta básica",
50 "settings.account.accountType.premium" : "Conta Premium, a ajudar o Franz", 93 "settings.account.accountType.premium" : "Conta Premium",
51 "settings.account.buttonSave" : "Atualizar o perfil", 94 "settings.account.buttonSave" : "Atualizar o perfil",
52 "settings.account.deleteAccount" : "Apagar conta", 95 "settings.account.deleteAccount" : "Apagar conta",
53 "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 são possiveis de restaurar!", 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!",
54 "settings.account.deleteInfo" : "Se não precisa mais da sua conta Franz, pode apagar a conta e os seus dados aqui.", 97 "settings.account.deleteInfo" : "Se não necessita mais da sua conta Franz, pode apagar a sua conta e dados aqui.",
55 "settings.account.headline" : "Conta", 98 "settings.account.headline" : "Conta",
56 "settings.account.headlineAccount" : "Informação da conta", 99 "settings.account.headlineAccount" : "Informação da conta",
57 "settings.account.headlineDangerZone" : "Zona de perigo", 100 "settings.account.headlineDangerZone" : "Zona de perigo",
58 "settings.account.headlineInvoices" : "Faturas", 101 "settings.account.headlineInvoices" : "Faturas",
59 "settings.account.headlinePassword" : "Mudar password", 102 "settings.account.headlinePassword" : "Alterar palavra-passe",
60 "settings.account.headlineProfile" : "Actualizar o perfil", 103 "settings.account.headlineProfile" : "Atualizar perfil",
61 "settings.account.headlineSubscription" : "A tua subscrição", 104 "settings.account.headlineSubscription" : "A sua subscrição",
62 "settings.account.headlineUpgrade" : "Atualiza a tua conta e ajuda o Franz", 105 "settings.account.headlineUpgrade" : "Atualize a sua conta e ajude o Franz",
63 "settings.account.invoiceDownload" : "Descarregar", 106 "settings.account.invoiceDownload" : "Transferir",
64 "settings.account.manageSubscription.label" : "Gerir as minhas subscrições", 107 "settings.account.manageSubscription.label" : "Gerir as minhas subscrições",
65 "settings.account.successInfo" : "As tuas mudanças foram feitas com sucesso", 108 "settings.account.successInfo" : "As suas mudanças foram efetuadas com sucesso",
66 "settings.account.tryReloadUserInfoRequest" : "Tentar novamente", 109 "settings.account.tryReloadUserInfoRequest" : "Tentar novamente",
67 "settings.account.userInfoRequestFailed" : "Não é possível carregar a informação do utilizador.", 110 "settings.account.userInfoRequestFailed" : "Não é possível carregar a informação do utilizador",
68 "settings.app.buttonClearAllCache" : "Limpar a 'cache'", 111 "settings.app.buttonClearAllCache" : "Limpar cache",
69 "settings.app.buttonInstallUpdate" : "Reiniciar & Instalar Atualizações", 112 "settings.app.buttonInstallUpdate" : "Reiniciar & Instalar Atualizações",
70 "settings.app.buttonSearchForUpdate" : "Procurar por atualizações", 113 "settings.app.buttonSearchForUpdate" : "Procurar por atualizações",
71 "settings.app.cacheInfo" : "O 'chache' do Franz está a usar {size} do espaço do disco.", 114 "settings.app.cacheInfo" : "A cache do Franz está a usar {size} do espaço em disco.",
72 "settings.app.currentVersion" : "Versão atual", 115 "settings.app.currentVersion" : "Versão atual",
73 "settings.app.form.autoLaunchInBackground" : "Abrir em segundo plano", 116 "settings.app.form.autoLaunchInBackground" : "Abrir em segundo plano",
74 "settings.app.form.autoLaunchOnStart" : "Inicar o Franz quando inciar o computador", 117 "settings.app.form.autoLaunchOnStart" : "Iniciar o Franz com o início de sessão",
75 "settings.app.form.beta" : "Incluir versões instáveis (beta)", 118 "settings.app.form.beta" : "Incluir versões instáveis (beta)",
76 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", 119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
120 "settings.app.form.enableMenuBar" : "Mostrar Franz na Barra de Menu",
77 "settings.app.form.enableSpellchecking" : "Ativar verificação ortográfica", 121 "settings.app.form.enableSpellchecking" : "Ativar verificação ortográfica",
78 "settings.app.form.enableSystemTray" : "Mostrar o Franz na bandeja do sistema", 122 "settings.app.form.enableSystemTray" : "Mostrar o Franz na barra do sistema",
79 "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock", 123 "settings.app.form.hideDockIcon" : "Esconder ícone na Dock",
80 "settings.app.form.language" : "Idioma:", 124 "settings.app.form.language" : "Idioma:",
81 "settings.app.form.minimizeToSystemTray" : "Minimizar o Franz para a bandeja do sistema", 125 "settings.app.form.minimizeToSystemTray" : "Minimizar o Franz para a barra do sistema",
82 "settings.app.form.runInBackground" : "Manter o Franz em segundo plano ao fechar a janela", 126 "settings.app.form.runInBackground" : "Manter o Franz em segundo plano ao fechar a janela",
83 "settings.app.form.showDisabledServices" : "Apresentar separadores de serviços desactivados", 127 "settings.app.form.showDisabledServices" : "Apresentar separadores de serviços desativados",
84 "settings.app.form.showMessagesBadgesWhenMuted" : "Apresentar icon com o número de mensagens não lidas quando as notificações estão desactivadas", 128 "settings.app.form.showMessagesBadgesWhenMuted" : "Apresentar emblema com o número de mensagens não lidas quando as notificações estão desactivadas",
85 "settings.app.headline" : "Definições", 129 "settings.app.headline" : "Definições",
86 "settings.app.headlineAdvanced" : "Avançado", 130 "settings.app.headlineAdvanced" : "Avançado",
87 "settings.app.headlineAppearance" : "Aparência", 131 "settings.app.headlineAppearance" : "Aparência",
88 "settings.app.headlineGeneral" : "Geral", 132 "settings.app.headlineGeneral" : "Geral",
89 "settings.app.headlineLanguage" : "Idioma:", 133 "settings.app.headlineLanguage" : "Idioma:",
90 "settings.app.headlineUpdates" : "Atualizações", 134 "settings.app.headlineUpdates" : "Atualizações",
91 "settings.app.restartRequired" : "Alterações requerem reiniciar", 135 "settings.app.restartRequired" : "Alterações requerem reinício",
92 "settings.app.subheadlineCache" : "Cache", 136 "settings.app.subheadlineCache" : "Cache",
93 "settings.app.translationHelp" : "Ajude a traduzir a Franz para a sua língua. ", 137 "settings.app.translationHelp" : "Ajude-nos a traduzir a Franz para a sua língua.",
94 "settings.app.updateStatusAvailable" : "Atualização disponivel, a descarregar...", 138 "settings.app.updateStatusAvailable" : "Atualização disponivel, a transferir...",
95 "settings.app.updateStatusSearching" : "Está a procurar atualizações", 139 "settings.app.updateStatusSearching" : "Procurando por atualizações",
96 "settings.app.updateStatusUpToDate" : "Estás a usar a última versão do Franz", 140 "settings.app.updateStatusUpToDate" : "Está a usar a versão mais recente do Franz",
97 "settings.invite.headline" : "Invite Friends", 141 "settings.invite.headline" : "Convide amigos",
98 "settings.navigation.account" : "Conta", 142 "settings.navigation.account" : "Conta",
99 "settings.navigation.availableServices" : "Serviços disponíveis", 143 "settings.navigation.availableServices" : "Serviços disponíveis",
100 "settings.navigation.inviteFriends" : "Invite Friends", 144 "settings.navigation.inviteFriends" : "Convide amigos",
101 "settings.navigation.logout" : "Terminar Sessão", 145 "settings.navigation.logout" : "Terminar sessão",
102 "settings.navigation.settings" : "Definições", 146 "settings.navigation.settings" : "Definições",
103 "settings.navigation.yourServices" : "Os teus serviços", 147 "settings.navigation.yourServices" : "Os seus serviços",
104 "settings.recipes.all" : "Todos os serviços", 148 "settings.recipes.all" : "Todos os serviços",
105 "settings.recipes.dev" : "Desenvolvimento", 149 "settings.recipes.dev" : "Desenvolvimento",
106 "settings.recipes.headline" : "Serviços disponíveis", 150 "settings.recipes.headline" : "Serviços disponíveis",
107 "settings.recipes.missingService" : "A faltar um serviço?", 151 "settings.recipes.missingService" : "A faltar um serviço?",
108 "settings.recipes.mostPopular" : "Os mais populares", 152 "settings.recipes.mostPopular" : "Os mais populares",
109 "settings.recipes.nothingFound" : "Desculpa, mas não existe nenhum serviço com este termo.", 153 "settings.recipes.nothingFound" : "Lamentamos, mas não existe nenhum serviço corresponde ao pesquisado.",
110 "settings.recipes.servicesSuccessfulAddedInfo" : "Serviço adicionado", 154 "settings.recipes.servicesSuccessfulAddedInfo" : "Serviço adicionado",
111 "settings.searchService" : "Pesquisa de serviço", 155 "settings.searchService" : "Pesquisa de serviço",
112 "settings.service.error.goBack" : "Voltar aos serviços", 156 "settings.service.error.goBack" : "Voltar aos serviços",
@@ -115,89 +159,93 @@
115 "settings.service.form.addServiceHeadline" : "Adicionar {name}", 159 "settings.service.form.addServiceHeadline" : "Adicionar {name}",
116 "settings.service.form.availableServices" : "Serviços disponíveis", 160 "settings.service.form.availableServices" : "Serviços disponíveis",
117 "settings.service.form.customUrl" : "Servidor personalizado", 161 "settings.service.form.customUrl" : "Servidor personalizado",
118 "settings.service.form.customUrlPremiumInfo" : "Para adicionar serviços de hospedagem própria, precisas de uma Conta Premium Franz.", 162 "settings.service.form.customUrlPremiumInfo" : "Para adicionar serviços com domínio próprio, é necessário uma Conta Premium.",
119 "settings.service.form.customUrlUpgradeAccount" : "Atualizar a conta", 163 "settings.service.form.customUrlUpgradeAccount" : "Atualizar a conta",
120 "settings.service.form.customUrlValidationError" : "Não foi possível validar o servidor {nome}.", 164 "settings.service.form.customUrlValidationError" : "Não foi possível validar o servidor {nome}.",
121 "settings.service.form.deleteButton" : "Apagar serviço", 165 "settings.service.form.deleteButton" : "Apagar serviço",
122 "settings.service.form.editServiceHeadline" : "Editar {name}", 166 "settings.service.form.editServiceHeadline" : "Editar {name}",
123 "settings.service.form.enableAudio" : "Activar áudio", 167 "settings.service.form.enableAudio" : "Ativar áudio",
124 "settings.service.form.enableBadge" : "Mostrar emblema de mensagens não vistas", 168 "settings.service.form.enableBadge" : "Mostrar emblema de mensagens não vistas",
125 "settings.service.form.enableNotification" : "Ativar notificações", 169 "settings.service.form.enableNotification" : "Ativar notificações",
126 "settings.service.form.enableService" : "Ativar serviço", 170 "settings.service.form.enableService" : "Ativar serviço",
127 "settings.service.form.headlineBadges" : "Emblema de mensagem não vista", 171 "settings.service.form.headlineBadges" : "Emblema de mensagem não vista",
128 "settings.service.form.headlineGeneral" : "Geral", 172 "settings.service.form.headlineGeneral" : "Geral",
129 "settings.service.form.headlineNotifications" : "Notificações", 173 "settings.service.form.headlineNotifications" : "Notificações",
130 "settings.service.form.icon" : "Icon personalizável", 174 "settings.service.form.icon" : "Personalizar ícone",
131 "settings.service.form.iconDelete" : "Apagar", 175 "settings.service.form.iconDelete" : "Apagar",
132 "settings.service.form.iconUpload" : "Arraste a sua imagem, ou clique aqui", 176 "settings.service.form.iconUpload" : "Arraste a sua imagem, ou clique aqui",
133 "settings.service.form.indirectMessageInfo" : "Serás notificado sobre todas as novas mensagens de um canal, não só @username, @channel, @here, ...", 177 "settings.service.form.indirectMessageInfo" : "Será notificado sobre todas as novas mensagens de um canal, não apenas @username, @channel, @here, ...",
134 "settings.service.form.indirectMessages" : "Mostrar o emblema da mensagem para todas as novas mensagens", 178 "settings.service.form.indirectMessages" : "Mostrar o emblema da mensagem para todas as novas mensagens",
135 "settings.service.form.isMutedInfo" : "Quando desactivado, todo o audio das notificações estará em silêncio", 179 "settings.service.form.isMutedInfo" : "Quando desativado, todas as notificações de áudio serão silenciadas",
136 "settings.service.form.name" : "Nome", 180 "settings.service.form.name" : "Nome",
137 "settings.service.form.saveButton" : "Guardar serviço", 181 "settings.service.form.saveButton" : "Guardar serviço",
138 "settings.service.form.tabHosted" : "Hospedado", 182 "settings.service.form.tabHosted" : "Com domínio",
139 "settings.service.form.tabOnPremise" : "Hospedado por si próprio â­ï¸", 183 "settings.service.form.tabOnPremise" : "Com domínio próprio â­ï¸",
140 "settings.service.form.team" : "Equipa", 184 "settings.service.form.team" : "Equipa",
141 "settings.service.form.useHostedService" : "Utilize o serviço oferecido por {name}.", 185 "settings.service.form.useHostedService" : "Utilize o serviço oferecido por {name}.",
142 "settings.service.form.yourServices" : "Os teus serviços", 186 "settings.service.form.yourServices" : "Os seus serviços",
143 "settings.services.deletedInfo" : "O serviço foi apagado", 187 "settings.services.deletedInfo" : "O serviço foi apagado",
144 "settings.services.discoverServices" : "Descobrir serviços", 188 "settings.services.discoverServices" : "Descobrir serviços",
145 "settings.services.headline" : "Os teus serviços", 189 "settings.services.headline" : "Os seus serviços",
146 "settings.services.noServicesAdded" : "Ainda não adicionaste nenhum serviço.", 190 "settings.services.noServicesAdded" : "Ainda não adicionou nenhum serviço.",
147 "settings.services.tooltip.isDisabled" : "O serviço está desativado", 191 "settings.services.tooltip.isDisabled" : "O serviço está desativado",
148 "settings.services.tooltip.isMuted" : "Todos os sons estão silenciados", 192 "settings.services.tooltip.isMuted" : "Todos os sons estão silenciados",
149 "settings.services.tooltip.notificationsDisabled" : "As notificações estão desabilitadas", 193 "settings.services.tooltip.notificationsDisabled" : "As notificações estão desativadas",
150 "settings.services.updatedInfo" : "As alterações foram guardadas", 194 "settings.services.updatedInfo" : "As alterações foram guardadas",
151 "settings.user.form.accountType.company" : "Empresa", 195 "settings.user.form.accountType.company" : "Empresa",
152 "settings.user.form.accountType.individual" : "Individual", 196 "settings.user.form.accountType.individual" : "Indivíduo",
153 "settings.user.form.accountType.label" : "Tipo de conta", 197 "settings.user.form.accountType.label" : "Tipo de conta",
154 "settings.user.form.accountType.non-profit" : "Sem fins lucrativos", 198 "settings.user.form.accountType.non-profit" : "Sem fins lucrativos",
155 "settings.user.form.currentPassword" : "Password atual", 199 "settings.user.form.currentPassword" : "Palavra-passe atual",
156 "settings.user.form.email" : "Email", 200 "settings.user.form.email" : "Email",
157 "settings.user.form.firstname" : "Primeiro Nome", 201 "settings.user.form.firstname" : "Primeiro Nome",
158 "settings.user.form.lastname" : "Último Nome", 202 "settings.user.form.lastname" : "Último Nome",
159 "settings.user.form.newPassword" : "Nova password", 203 "settings.user.form.newPassword" : "Nova palavra-passe",
160 "sidebar.addNewService" : "Adicionar um novo serviço", 204 "sidebar.addNewService" : "Adicionar um novo serviço",
161 "sidebar.muteApp" : "Desactivar notificações e audio", 205 "sidebar.muteApp" : "Desativar notificações e áudio",
162 "sidebar.settings" : "Definições", 206 "sidebar.settings" : "Definições",
163 "sidebar.unmuteApp" : "Activar notificações e audio", 207 "sidebar.unmuteApp" : "Ativar notificações e áudio",
164 "signup.company.label" : "Empresa", 208 "signup.company.label" : "Empresa",
165 "signup.email.label" : "Endereço de e-mail", 209 "signup.email.label" : "Endereço de e-mail",
166 "signup.emailDuplicate" : "Uma conta já tem esse email associado", 210 "signup.emailDuplicate" : "Já existe uma conta associada a este endereço",
167 "signup.firstname.label" : "Primeiro Nome", 211 "signup.firstname.label" : "Primeiro Nome",
168 "signup.headline" : "Iniciar Sessão", 212 "signup.headline" : "Criar conta",
169 "signup.lastname.label" : "Último Nome", 213 "signup.lastname.label" : "Último Nome",
170 "signup.legal.info" : "Ao criar uma conta Franz, aceitas", 214 "signup.legal.info" : "Ao criar uma conta Franz, aceita",
171 "signup.legal.privacy" : "Declaração de privacidade", 215 "signup.legal.privacy" : "Declaração de privacidade",
172 "signup.legal.terms" : "Termos de Serviço", 216 "signup.legal.terms" : "Termos de Serviço",
173 "signup.link.login" : "Já tens uma conta?", 217 "signup.link.login" : "Já tem conta, iniciar sessão?",
174 "signup.password.label" : "Password", 218 "signup.password.label" : "Palavra-passe",
175 "signup.submit.label" : "Criar uma Conta", 219 "signup.submit.label" : "Criar uma conta",
176 "subscription.euTaxInfo" : "Residentes EU: Taxas locais podem ser aplicadas", 220 "subscription.euTaxInfo" : "Residentes EU: Taxas locais podem ser aplicadas",
177 "subscription.features.ads" : "Sem anúncios, para sempre!", 221 "subscription.features.ads" : "Sem anúncios, para sempre!",
178 "subscription.features.comingSoon" : "Em breve!", 222 "subscription.features.comingSoon" : "Em breve!",
179 "subscription.features.customServices" : "Serviços privados para ti e para os teus amigos\/colegas", 223 "subscription.features.customServices" : "Serviços privados para si e para a sua equipa",
180 "subscription.features.encryptedSync" : "Sincronização encriptada de serviços", 224 "subscription.features.encryptedSync" : "Sincronização encriptada de serviços",
181 "subscription.features.onpremise" : "Adicionar serviços 'on-premise'\/hosted como o HipChat", 225 "subscription.features.onpremise" : "Adicionar serviços 'on-premise'\/hosted como o HipChat",
182 "subscription.features.vpn" : "Suporte para proxy\/VPN", 226 "subscription.features.vpn" : "Suporte para proxy\/VPN",
183 "subscription.includedFeatures" : "Ao pagares para o Franz Premium, tens acesso a", 227 "subscription.includedFeatures" : "Ao subscrever uma Conta Premium, tem acesso a",
184 "subscription.paymentSessionError" : "Erro no serviço de pagamento", 228 "subscription.paymentSessionError" : "Erro no serviço de pagamento",
185 "subscription.submit.label" : "Quero ajudar o desenvolvimento do Franz", 229 "subscription.submit.label" : "Pretendo ajudar o desenvolvimento do Franz",
186 "subscription.type.free" : "Gratuito", 230 "subscription.type.free" : "Gratuito",
187 "subscription.type.month" : "mês", 231 "subscription.type.month" : "mês",
188 "subscription.type.year" : "ano", 232 "subscription.type.year" : "ano",
189 "subscriptionPopup.buttonCancel" : "Cancelar", 233 "subscriptionPopup.buttonCancel" : "Cancelar",
190 "subscriptionPopup.buttonDone" : "Concluído", 234 "subscriptionPopup.buttonDone" : "Concluído",
191 "tabs.item.deleteService" : "Apagar serviço", 235 "tabs.item.deleteService" : "Apagar serviço",
192 "tabs.item.disableAudio" : "Desactivar audio", 236 "tabs.item.disableAudio" : "Desativar áudio",
193 "tabs.item.disableNotifications" : "Desativar notificações", 237 "tabs.item.disableNotifications" : "Desativar notificações",
194 "tabs.item.disableService" : "Desativar serviço", 238 "tabs.item.disableService" : "Desativar serviço",
195 "tabs.item.edit" : "Editar", 239 "tabs.item.edit" : "Editar",
196 "tabs.item.enableAudio" : "Activar áudio", 240 "tabs.item.enableAudio" : "Ativar áudio",
197 "tabs.item.enableNotification" : "Ativar notificações", 241 "tabs.item.enableNotification" : "Ativar notificações",
198 "tabs.item.enableService" : "Ativar serviço", 242 "tabs.item.enableService" : "Ativar serviço",
199 "tabs.item.reload" : "Recarregar", 243 "tabs.item.reload" : "Recarregar",
200 "welcome.loginButton" : "Fazer login", 244 "validation.email" : "{field} is not valid",
245 "validation.minLength" : "{field} should be at least {length} characters long",
246 "validation.required" : "{field} is required",
247 "validation.url" : "{field} is not a valid URL",
248 "welcome.loginButton" : "Iniciar sessão",
201 "welcome.signupButton" : "Criar uma conta gratuita", 249 "welcome.signupButton" : "Criar uma conta gratuita",
202 "welcome.slogan" : "Messaging that works for you" 250 "welcome.slogan" : "Messaging that works for you"
203} 251}
diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json
index 65b61c1e5..ecebc46ee 100644
--- a/src/i18n/locales/ru.json
+++ b/src/i18n/locales/ru.json
@@ -26,13 +26,56 @@
26 "login.serverLogout" : "СеÑÑÐ¸Ñ ÑƒÑтарела, пожалуйÑта, войдите Ñнова.", 26 "login.serverLogout" : "СеÑÑÐ¸Ñ ÑƒÑтарела, пожалуйÑта, войдите Ñнова.",
27 "login.submit.label" : "Вход", 27 "login.submit.label" : "Вход",
28 "login.tokenExpired" : "СеÑÑÐ¸Ñ ÑƒÑтарела, пожалуйÑта, войдите Ñнова.", 28 "login.tokenExpired" : "СеÑÑÐ¸Ñ ÑƒÑтарела, пожалуйÑта, войдите Ñнова.",
29 "menu.app.about" : "О Franz",
30 "menu.app.hide" : "Скрыть",
31 "menu.app.hideOthers" : "Скрыть оÑтальные",
32 "menu.app.quit" : "Выйти",
33 "menu.app.settings" : "ÐаÑтройки",
34 "menu.app.unhide" : "Показать",
35 "menu.edit" : "Редактировать",
36 "menu.edit.copy" : "Копировать",
37 "menu.edit.cut" : "Вырезать",
38 "menu.edit.delete" : "Удалить",
39 "menu.edit.emojiSymbols" : "Эмодзи и Ñимволы",
40 "menu.edit.paste" : "Ð’Ñтавить",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style",
42 "menu.edit.redo" : "Вернуть",
43 "menu.edit.selectAll" : "Выделить вÑÑ‘",
44 "menu.edit.speech" : "Speech",
45 "menu.edit.startDictation" : "Start Dictation",
46 "menu.edit.startSpeaking" : "Start Speaking",
47 "menu.edit.stopSpeaking" : "Stop Speaking",
48 "menu.edit.undo" : "Отменить",
49 "menu.file" : "Файл",
50 "menu.help" : "Справка",
51 "menu.help.changelog" : "Журнал изменений",
52 "menu.help.learnMore" : "Подробнее",
53 "menu.help.privacy" : "Политика конфиденциальноÑти",
54 "menu.help.support" : "Поддержка",
55 "menu.help.tos" : "УÑÐ»Ð¾Ð²Ð¸Ñ Ð¸ÑпользованиÑ",
56 "menu.services" : "Services",
57 "menu.services.addNewService" : "Добавить ÑервиÑ...",
58 "menu.view" : "Вид",
59 "menu.view.enterFullScreen" : "Ðа веÑÑŒ Ñкран",
60 "menu.view.exitFullScreen" : "В окне",
61 "menu.view.reloadFranz" : "Перезагрузить Franz",
62 "menu.view.reloadService" : "ПерезапуÑтить ÑервиÑ",
63 "menu.view.resetZoom" : "ФактичеÑкий размер",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools",
67 "menu.view.zoomIn" : "Увеличить маÑштаб",
68 "menu.view.zoomOut" : "Уменьшить маÑштаб",
69 "menu.window" : "Окно",
70 "menu.window.close" : "Закрыть",
71 "menu.window.minimize" : "Свернуть",
29 "password.email.label" : "Email адреÑ", 72 "password.email.label" : "Email адреÑ",
30 "password.headline" : "ÐоÑÑтановление паролÑ", 73 "password.headline" : "СбÑоÑить пароль",
31 "password.link.login" : "Вход", 74 "password.link.login" : "Вход",
32 "password.link.signup" : "Создать аккаунт", 75 "password.link.signup" : "Создать учётную запиÑÑŒ пользователÑ",
33 "password.noUser" : "Ðе найдено Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ Ñ‚Ð°ÐºÐ¸Ð¼ email", 76 "password.noUser" : "Ðе найдено Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ Ñ‚Ð°ÐºÐ¸Ð¼ email",
34 "password.submit.label" : "ВоÑÑтановить", 77 "password.submit.label" : "ПÑинÑÑ‚ÑŒ",
35 "password.successInfo" : "Проверьте Ваш email", 78 "password.successInfo" : "Проверьте Вашу Ñлектронную почту",
36 "pricing.headline" : "Поддержать Franz", 79 "pricing.headline" : "Поддержать Franz",
37 "pricing.link.skipPayment" : "Я не хочу поддерживать разработку Franz.", 80 "pricing.link.skipPayment" : "Я не хочу поддерживать разработку Franz.",
38 "pricing.submit.label" : "Я хочу поддержать разработку Franz", 81 "pricing.submit.label" : "Я хочу поддержать разработку Franz",
@@ -73,6 +116,7 @@
73 "settings.app.form.autoLaunchInBackground" : "Открывать в фоне", 116 "settings.app.form.autoLaunchInBackground" : "Открывать в фоне",
74 "settings.app.form.autoLaunchOnStart" : "ЗапуÑкать Franz при Ñтарте", 117 "settings.app.form.autoLaunchOnStart" : "ЗапуÑкать Franz при Ñтарте",
75 "settings.app.form.beta" : "Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð±ÐµÑ‚Ð° верÑии", 118 "settings.app.form.beta" : "Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð±ÐµÑ‚Ð° верÑии",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
76 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", 120 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar",
77 "settings.app.form.enableSpellchecking" : "Включить проверку правопиÑаниÑ", 121 "settings.app.form.enableSpellchecking" : "Включить проверку правопиÑаниÑ",
78 "settings.app.form.enableSystemTray" : "Показывать Franz в ÑиÑтемном трее", 122 "settings.app.form.enableSystemTray" : "Показывать Franz в ÑиÑтемном трее",
@@ -127,9 +171,9 @@
127 "settings.service.form.headlineBadges" : "Значки непрочитанных Ñообщений", 171 "settings.service.form.headlineBadges" : "Значки непрочитанных Ñообщений",
128 "settings.service.form.headlineGeneral" : "Общие", 172 "settings.service.form.headlineGeneral" : "Общие",
129 "settings.service.form.headlineNotifications" : "УведомлениÑ", 173 "settings.service.form.headlineNotifications" : "УведомлениÑ",
130 "settings.service.form.icon" : "Ðначок пользователÑ", 174 "settings.service.form.icon" : "ÐеÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð°Ñ Ð¸ÐºÐ¾Ð½ÐºÐ°",
131 "settings.service.form.iconDelete" : "Удалить", 175 "settings.service.form.iconDelete" : "Удалить",
132 "settings.service.form.iconUpload" : "Перетащите картинку или наÐмите Ñюда", 176 "settings.service.form.iconUpload" : "Перетащите картинку или кликните здеÑÑŒ",
133 "settings.service.form.indirectMessageInfo" : "Ð’Ñ‹ будете получать ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð²Ñех Ñообщений, не только Ð´Ð»Ñ @username, @channel, @here, ...", 177 "settings.service.form.indirectMessageInfo" : "Ð’Ñ‹ будете получать ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð²Ñех Ñообщений, не только Ð´Ð»Ñ @username, @channel, @here, ...",
134 "settings.service.form.indirectMessages" : "Показывать значок уведомлений Ð´Ð»Ñ Ð²Ñех новых Ñообщений", 178 "settings.service.form.indirectMessages" : "Показывать значок уведомлений Ð´Ð»Ñ Ð²Ñех новых Ñообщений",
135 "settings.service.form.isMutedInfo" : "Когда выключено, вÑе звуковые ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ отключены", 179 "settings.service.form.isMutedInfo" : "Когда выключено, вÑе звуковые ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ отключены",
@@ -192,11 +236,15 @@
192 "tabs.item.disableAudio" : "Отключить звук", 236 "tabs.item.disableAudio" : "Отключить звук",
193 "tabs.item.disableNotifications" : "Отключить уведомлениÑ", 237 "tabs.item.disableNotifications" : "Отключить уведомлениÑ",
194 "tabs.item.disableService" : "Отключить ÑервиÑ", 238 "tabs.item.disableService" : "Отключить ÑервиÑ",
195 "tabs.item.edit" : "Редактировать", 239 "tabs.item.edit" : "Правка",
196 "tabs.item.enableAudio" : "Включить аудио", 240 "tabs.item.enableAudio" : "Включить аудио",
197 "tabs.item.enableNotification" : "Включить уведомлениÑ", 241 "tabs.item.enableNotification" : "Включить уведомлениÑ",
198 "tabs.item.enableService" : "Включить Ñлужбу", 242 "tabs.item.enableService" : "Включить Ñлужбу",
199 "tabs.item.reload" : "Перезагрузить", 243 "tabs.item.reload" : "Перезагрузить",
244 "validation.email" : "{field} is not valid",
245 "validation.minLength" : "{field} should be at least {length} characters long",
246 "validation.required" : "{field} is required",
247 "validation.url" : "{field} is not a valid URL",
200 "welcome.loginButton" : "Вход", 248 "welcome.loginButton" : "Вход",
201 "welcome.signupButton" : "Создать аккаунт", 249 "welcome.signupButton" : "Создать аккаунт",
202 "welcome.slogan" : "Общение, которое проÑто работает" 250 "welcome.slogan" : "Общение, которое проÑто работает"
diff --git a/src/i18n/locales/sk.json b/src/i18n/locales/sk.json
index 35f06531f..c43e998a4 100644
--- a/src/i18n/locales/sk.json
+++ b/src/i18n/locales/sk.json
@@ -26,6 +26,49 @@
26 "login.serverLogout" : "Relácia vypršala, prihláste sa prosím znova.", 26 "login.serverLogout" : "Relácia vypršala, prihláste sa prosím znova.",
27 "login.submit.label" : "Prihlásiť sa", 27 "login.submit.label" : "Prihlásiť sa",
28 "login.tokenExpired" : "Relácia vypršala, prosím prihláste sa znova.", 28 "login.tokenExpired" : "Relácia vypršala, prosím prihláste sa znova.",
29 "menu.app.about" : "About Franz",
30 "menu.app.hide" : "Hide",
31 "menu.app.hideOthers" : "Hide Others",
32 "menu.app.quit" : "Quit",
33 "menu.app.settings" : "Nastavenia",
34 "menu.app.unhide" : "Unhide",
35 "menu.edit" : "Upraviť",
36 "menu.edit.copy" : "Copy",
37 "menu.edit.cut" : "Cut",
38 "menu.edit.delete" : "Zmazať",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols",
40 "menu.edit.paste" : "Paste",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style",
42 "menu.edit.redo" : "Redo",
43 "menu.edit.selectAll" : "Select All",
44 "menu.edit.speech" : "Speech",
45 "menu.edit.startDictation" : "Start Dictation",
46 "menu.edit.startSpeaking" : "Start Speaking",
47 "menu.edit.stopSpeaking" : "Stop Speaking",
48 "menu.edit.undo" : "Undo",
49 "menu.file" : "File",
50 "menu.help" : "Help",
51 "menu.help.changelog" : "Changelog",
52 "menu.help.learnMore" : "Learn More",
53 "menu.help.privacy" : "Vyhlásenie o ochrane súkromia",
54 "menu.help.support" : "Support",
55 "menu.help.tos" : "Terms of Service",
56 "menu.services" : "Services",
57 "menu.services.addNewService" : "Add New Service...",
58 "menu.view" : "View",
59 "menu.view.enterFullScreen" : "Enter Full Screen",
60 "menu.view.exitFullScreen" : "Exit Full Screen",
61 "menu.view.reloadFranz" : "Reload Franz",
62 "menu.view.reloadService" : "Reload Service",
63 "menu.view.resetZoom" : "Actual Size",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools",
67 "menu.view.zoomIn" : "Zoom In",
68 "menu.view.zoomOut" : "Zoom Out",
69 "menu.window" : "Window",
70 "menu.window.close" : "Close",
71 "menu.window.minimize" : "Minimize",
29 "password.email.label" : "Emailová adresa", 72 "password.email.label" : "Emailová adresa",
30 "password.headline" : "Vynulovať heslo", 73 "password.headline" : "Vynulovať heslo",
31 "password.link.login" : "Prihlásenie do vaÅ¡eho úÄtu", 74 "password.link.login" : "Prihlásenie do vaÅ¡eho úÄtu",
@@ -73,6 +116,7 @@
73 "settings.app.form.autoLaunchInBackground" : "Otvoriť na pozadí", 116 "settings.app.form.autoLaunchInBackground" : "Otvoriť na pozadí",
74 "settings.app.form.autoLaunchOnStart" : "Spustiť Franz pri štarte", 117 "settings.app.form.autoLaunchOnStart" : "Spustiť Franz pri štarte",
75 "settings.app.form.beta" : "Vrátane beta verzií", 118 "settings.app.form.beta" : "Vrátane beta verzií",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
76 "settings.app.form.enableMenuBar" : "Zobraz Franz v Menu bare", 120 "settings.app.form.enableMenuBar" : "Zobraz Franz v Menu bare",
77 "settings.app.form.enableSpellchecking" : "Povoliť zvýraznenie preklepov", 121 "settings.app.form.enableSpellchecking" : "Povoliť zvýraznenie preklepov",
78 "settings.app.form.enableSystemTray" : "Zobrazovať Franz v systémovej lište", 122 "settings.app.form.enableSystemTray" : "Zobrazovať Franz v systémovej lište",
@@ -197,6 +241,10 @@
197 "tabs.item.enableNotification" : "Povoliť oznámenia", 241 "tabs.item.enableNotification" : "Povoliť oznámenia",
198 "tabs.item.enableService" : "Povoliť službu", 242 "tabs.item.enableService" : "Povoliť službu",
199 "tabs.item.reload" : "Obnoviť", 243 "tabs.item.reload" : "Obnoviť",
244 "validation.email" : "{field} is not valid",
245 "validation.minLength" : "{field} should be at least {length} characters long",
246 "validation.required" : "{field} is required",
247 "validation.url" : "{field} is not a valid URL",
200 "welcome.loginButton" : "Prihláste sa k vášmu úÄtu", 248 "welcome.loginButton" : "Prihláste sa k vášmu úÄtu",
201 "welcome.signupButton" : "VytvoriÅ¥ užívateľský úÄet zdarma", 249 "welcome.signupButton" : "VytvoriÅ¥ užívateľský úÄet zdarma",
202 "welcome.slogan" : "Správy, ktoré pracujú pre vás" 250 "welcome.slogan" : "Správy, ktoré pracujú pre vás"
diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json
index 90e1a04b9..1f31bc834 100644
--- a/src/i18n/locales/sr.json
+++ b/src/i18n/locales/sr.json
@@ -26,6 +26,49 @@
26 "login.serverLogout" : "Vaša sesija je istekla, prijavite se ponovo.", 26 "login.serverLogout" : "Vaša sesija je istekla, prijavite se ponovo.",
27 "login.submit.label" : "Prijavite se", 27 "login.submit.label" : "Prijavite se",
28 "login.tokenExpired" : "Vaša sesija je istekla, prijavite se ponovo.", 28 "login.tokenExpired" : "Vaša sesija je istekla, prijavite se ponovo.",
29 "menu.app.about" : "About Franz",
30 "menu.app.hide" : "Hide",
31 "menu.app.hideOthers" : "Hide Others",
32 "menu.app.quit" : "Quit",
33 "menu.app.settings" : "Postavke",
34 "menu.app.unhide" : "Unhide",
35 "menu.edit" : "Uredi",
36 "menu.edit.copy" : "Copy",
37 "menu.edit.cut" : "Cut",
38 "menu.edit.delete" : "Delete",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols",
40 "menu.edit.paste" : "Paste",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style",
42 "menu.edit.redo" : "Redo",
43 "menu.edit.selectAll" : "Select All",
44 "menu.edit.speech" : "Speech",
45 "menu.edit.startDictation" : "Start Dictation",
46 "menu.edit.startSpeaking" : "Start Speaking",
47 "menu.edit.stopSpeaking" : "Stop Speaking",
48 "menu.edit.undo" : "Undo",
49 "menu.file" : "File",
50 "menu.help" : "Help",
51 "menu.help.changelog" : "Changelog",
52 "menu.help.learnMore" : "Learn More",
53 "menu.help.privacy" : "Izjava o privatnosti",
54 "menu.help.support" : "Support",
55 "menu.help.tos" : "Terms of Service",
56 "menu.services" : "Services",
57 "menu.services.addNewService" : "Add New Service...",
58 "menu.view" : "View",
59 "menu.view.enterFullScreen" : "Enter Full Screen",
60 "menu.view.exitFullScreen" : "Exit Full Screen",
61 "menu.view.reloadFranz" : "Reload Franz",
62 "menu.view.reloadService" : "Reload Service",
63 "menu.view.resetZoom" : "Actual Size",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools",
67 "menu.view.zoomIn" : "Zoom In",
68 "menu.view.zoomOut" : "Zoom Out",
69 "menu.window" : "Window",
70 "menu.window.close" : "Close",
71 "menu.window.minimize" : "Minimize",
29 "password.email.label" : "Vaša e-adresa", 72 "password.email.label" : "Vaša e-adresa",
30 "password.headline" : "Stvorite novu zaporku", 73 "password.headline" : "Stvorite novu zaporku",
31 "password.link.login" : "Prijavite se na VaÅ¡ raÄun", 74 "password.link.login" : "Prijavite se na VaÅ¡ raÄun",
@@ -73,6 +116,7 @@
73 "settings.app.form.autoLaunchInBackground" : "Otvori u pozadini", 116 "settings.app.form.autoLaunchInBackground" : "Otvori u pozadini",
74 "settings.app.form.autoLaunchOnStart" : "Pokreni Franz sa sistemom", 117 "settings.app.form.autoLaunchOnStart" : "Pokreni Franz sa sistemom",
75 "settings.app.form.beta" : "Obuhvati i beta verzije", 118 "settings.app.form.beta" : "Obuhvati i beta verzije",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
76 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", 120 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar",
77 "settings.app.form.enableSpellchecking" : "Omogući provjeru pravopisa", 121 "settings.app.form.enableSpellchecking" : "Omogući provjeru pravopisa",
78 "settings.app.form.enableSystemTray" : "Prikaži aplikaciju u sustavskoj traci", 122 "settings.app.form.enableSystemTray" : "Prikaži aplikaciju u sustavskoj traci",
@@ -197,6 +241,10 @@
197 "tabs.item.enableNotification" : "Omogući obavijesti", 241 "tabs.item.enableNotification" : "Omogući obavijesti",
198 "tabs.item.enableService" : "Omogući usluge", 242 "tabs.item.enableService" : "Omogući usluge",
199 "tabs.item.reload" : "Ponovno uÄitavanje", 243 "tabs.item.reload" : "Ponovno uÄitavanje",
244 "validation.email" : "{field} is not valid",
245 "validation.minLength" : "{field} should be at least {length} characters long",
246 "validation.required" : "{field} is required",
247 "validation.url" : "{field} is not a valid URL",
200 "welcome.loginButton" : "Prijavite se na raÄun", 248 "welcome.loginButton" : "Prijavite se na raÄun",
201 "welcome.signupButton" : "Stvorite novi korisniÄki raÄun", 249 "welcome.signupButton" : "Stvorite novi korisniÄki raÄun",
202 "welcome.slogan" : "Poruke koje su stvorene za tebe" 250 "welcome.slogan" : "Poruke koje su stvorene za tebe"
diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json
index bcf0dd483..d03077d8d 100644
--- a/src/i18n/locales/tr.json
+++ b/src/i18n/locales/tr.json
@@ -16,7 +16,7 @@
16 "invite.name.label" : "Ad", 16 "invite.name.label" : "Ad",
17 "invite.skip.label" : "Daha sonra yapmak istiyorum", 17 "invite.skip.label" : "Daha sonra yapmak istiyorum",
18 "invite.submit.label" : "Davetiye gönder", 18 "invite.submit.label" : "Davetiye gönder",
19 "invite.successInfo" : "Invitations sent successfully", 19 "invite.successInfo" : "Davetiyeler başarıyla gönderildi",
20 "login.email.label" : "E-posta adresi", 20 "login.email.label" : "E-posta adresi",
21 "login.headline" : "Oturum Aç", 21 "login.headline" : "Oturum Aç",
22 "login.invalidCredentials" : "Yanlış parola ya da e-posta adresi", 22 "login.invalidCredentials" : "Yanlış parola ya da e-posta adresi",
@@ -26,6 +26,49 @@
26 "login.serverLogout" : "Oturum süreniz dolmuş, lütfen tekrar giriş yapın.", 26 "login.serverLogout" : "Oturum süreniz dolmuş, lütfen tekrar giriş yapın.",
27 "login.submit.label" : "Oturum Aç", 27 "login.submit.label" : "Oturum Aç",
28 "login.tokenExpired" : "Oturum zaman aşımına uğradı, lütfen tekrar giriş yapın.", 28 "login.tokenExpired" : "Oturum zaman aşımına uğradı, lütfen tekrar giriş yapın.",
29 "menu.app.about" : "Franz Hakkında",
30 "menu.app.hide" : "Gizle",
31 "menu.app.hideOthers" : "DiÄŸerlerini Gizle",
32 "menu.app.quit" : "Çıkış",
33 "menu.app.settings" : "Ayarlar",
34 "menu.app.unhide" : "Göster",
35 "menu.edit" : "Düzenle",
36 "menu.edit.copy" : "Kopyala",
37 "menu.edit.cut" : "Kes",
38 "menu.edit.delete" : "Sil",
39 "menu.edit.emojiSymbols" : "Emoji & Semboller",
40 "menu.edit.paste" : "Yapıştır",
41 "menu.edit.pasteAndMatchStyle" : "Yapıştır ve Stili Eşleştir",
42 "menu.edit.redo" : "Yeniden Yap",
43 "menu.edit.selectAll" : "Hepsini Seç",
44 "menu.edit.speech" : "KonuÅŸma",
45 "menu.edit.startDictation" : "Ä°mlaya BaÅŸla",
46 "menu.edit.startSpeaking" : "KonuÅŸmaya BaÅŸla",
47 "menu.edit.stopSpeaking" : "Konuşmayı Bırak\/Durdur",
48 "menu.edit.undo" : "Geri al",
49 "menu.file" : "Dosya",
50 "menu.help" : "Yardım",
51 "menu.help.changelog" : "Değişim Günlüğü",
52 "menu.help.learnMore" : "Daha Fazlasını Öğrenin",
53 "menu.help.privacy" : "Gizlilik Sözleşmesi",
54 "menu.help.support" : "Destek",
55 "menu.help.tos" : "Kullanım Şartları",
56 "menu.services" : "Hizmetler",
57 "menu.services.addNewService" : "Yeni Servis Ekle",
58 "menu.view" : "Görünüm",
59 "menu.view.enterFullScreen" : "Tam Ekrana Geç",
60 "menu.view.exitFullScreen" : "Tam Ekrandan Çık",
61 "menu.view.reloadFranz" : "Franz'ı Yeniden Yükle",
62 "menu.view.reloadService" : "Servisi Tekrar Yükle",
63 "menu.view.resetZoom" : "Orijinal Boyut",
64 "menu.view.toggleDevTools" : "Geliştirici Araçlarına Geç",
65 "menu.view.toggleFullScreen" : "Tam Ekrana Geç",
66 "menu.view.toggleServiceDevTools" : "Hizmet Geliştirici Araçlarını Değiştir",
67 "menu.view.zoomIn" : "Yakınlaştır",
68 "menu.view.zoomOut" : "Uzaklaştır",
69 "menu.window" : "Pencere",
70 "menu.window.close" : "Kapat",
71 "menu.window.minimize" : "Simge Durumuna Küçült",
29 "password.email.label" : "E-posta adresi", 72 "password.email.label" : "E-posta adresi",
30 "password.headline" : "Parola sıfırla", 73 "password.headline" : "Parola sıfırla",
31 "password.link.login" : "Hesabına giriş yap", 74 "password.link.login" : "Hesabına giriş yap",
@@ -73,10 +116,11 @@
73 "settings.app.form.autoLaunchInBackground" : "Arka planda aç", 116 "settings.app.form.autoLaunchInBackground" : "Arka planda aç",
74 "settings.app.form.autoLaunchOnStart" : "Franz'ı başlangıçta aç", 117 "settings.app.form.autoLaunchOnStart" : "Franz'ı başlangıçta aç",
75 "settings.app.form.beta" : "Beta versiyonları dahil et", 118 "settings.app.form.beta" : "Beta versiyonları dahil et",
76 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", 119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
120 "settings.app.form.enableMenuBar" : "Menü çubuğunda Franz'ı göster",
77 "settings.app.form.enableSpellchecking" : "Yazım denetimini etkinleştir", 121 "settings.app.form.enableSpellchecking" : "Yazım denetimini etkinleştir",
78 "settings.app.form.enableSystemTray" : "Franz'ı sistem tepsisinde göster", 122 "settings.app.form.enableSystemTray" : "Franz'ı sistem tepsisinde göster",
79 "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock", 123 "settings.app.form.hideDockIcon" : "Franz Simgesini Gösterme",
80 "settings.app.form.language" : "Dil", 124 "settings.app.form.language" : "Dil",
81 "settings.app.form.minimizeToSystemTray" : "Franz'ı sistem tepsisine küçült", 125 "settings.app.form.minimizeToSystemTray" : "Franz'ı sistem tepsisine küçült",
82 "settings.app.form.runInBackground" : "Pencereyi kapatırken Franz'ı arka planda tut", 126 "settings.app.form.runInBackground" : "Pencereyi kapatırken Franz'ı arka planda tut",
@@ -94,10 +138,10 @@
94 "settings.app.updateStatusAvailable" : "Güncelleme mevcut, indiriliyor...", 138 "settings.app.updateStatusAvailable" : "Güncelleme mevcut, indiriliyor...",
95 "settings.app.updateStatusSearching" : "Güncellemeleri denetliyor", 139 "settings.app.updateStatusSearching" : "Güncellemeleri denetliyor",
96 "settings.app.updateStatusUpToDate" : "Franz'ın son versiyonunu kullanıyorsun", 140 "settings.app.updateStatusUpToDate" : "Franz'ın son versiyonunu kullanıyorsun",
97 "settings.invite.headline" : "Invite Friends", 141 "settings.invite.headline" : "Arkadaşlarını davet et",
98 "settings.navigation.account" : "Hesap", 142 "settings.navigation.account" : "Hesap",
99 "settings.navigation.availableServices" : "Mevcut servisler", 143 "settings.navigation.availableServices" : "Mevcut servisler",
100 "settings.navigation.inviteFriends" : "Invite Friends", 144 "settings.navigation.inviteFriends" : "Arkadaşlarını Davet Et",
101 "settings.navigation.logout" : "Çıkış", 145 "settings.navigation.logout" : "Çıkış",
102 "settings.navigation.settings" : "Ayarlar", 146 "settings.navigation.settings" : "Ayarlar",
103 "settings.navigation.yourServices" : "Servislerin", 147 "settings.navigation.yourServices" : "Servislerin",
@@ -197,6 +241,10 @@
197 "tabs.item.enableNotification" : "Bildirimleri etkinleÅŸtir", 241 "tabs.item.enableNotification" : "Bildirimleri etkinleÅŸtir",
198 "tabs.item.enableService" : "Servisi etkinleÅŸtir", 242 "tabs.item.enableService" : "Servisi etkinleÅŸtir",
199 "tabs.item.reload" : "Yeniden Yükle", 243 "tabs.item.reload" : "Yeniden Yükle",
244 "validation.email" : "{alan} geçerli değil",
245 "validation.minLength" : "{field} en az {length} karakter uzunluğunda olmalı",
246 "validation.required" : "{field} gereklidir",
247 "validation.url" : "{field} geçerli bir URL değil",
200 "welcome.loginButton" : "Hesabına giriş yap", 248 "welcome.loginButton" : "Hesabına giriş yap",
201 "welcome.signupButton" : "Ãœcretsiz hesap oluÅŸtur", 249 "welcome.signupButton" : "Ãœcretsiz hesap oluÅŸtur",
202 "welcome.slogan" : "Sizin için çalışan mesajlaşma" 250 "welcome.slogan" : "Sizin için çalışan mesajlaşma"
diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json
index 4baf234ac..3f732b896 100644
--- a/src/i18n/locales/uk.json
+++ b/src/i18n/locales/uk.json
@@ -16,7 +16,7 @@
16 "invite.name.label" : "Ім'Ñ", 16 "invite.name.label" : "Ім'Ñ",
17 "invite.skip.label" : "Я хочу зробити це пізніше", 17 "invite.skip.label" : "Я хочу зробити це пізніше",
18 "invite.submit.label" : "Відправити запрошеннÑ", 18 "invite.submit.label" : "Відправити запрошеннÑ",
19 "invite.successInfo" : "Invitations sent successfully", 19 "invite.successInfo" : "Ð—Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ñ ÑƒÑпішно відоÑлані",
20 "login.email.label" : "Email адреÑа", 20 "login.email.label" : "Email адреÑа",
21 "login.headline" : "Увійти", 21 "login.headline" : "Увійти",
22 "login.invalidCredentials" : "Email або пароль некоректні", 22 "login.invalidCredentials" : "Email або пароль некоректні",
@@ -26,6 +26,49 @@
26 "login.serverLogout" : "Ваша ÑеÑÑ–Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡Ð¸Ð»Ð°ÑÑŒ, будь лаÑка, зайдіть знову.", 26 "login.serverLogout" : "Ваша ÑеÑÑ–Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡Ð¸Ð»Ð°ÑÑŒ, будь лаÑка, зайдіть знову.",
27 "login.submit.label" : "Увійти", 27 "login.submit.label" : "Увійти",
28 "login.tokenExpired" : "Ваша ÑеÑÑ–Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡Ð¸Ð»Ð°ÑÑŒ, будь лаÑка, зайдіть знову.", 28 "login.tokenExpired" : "Ваша ÑеÑÑ–Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡Ð¸Ð»Ð°ÑÑŒ, будь лаÑка, зайдіть знову.",
29 "menu.app.about" : "About Franz",
30 "menu.app.hide" : "Hide",
31 "menu.app.hideOthers" : "Hide Others",
32 "menu.app.quit" : "Quit",
33 "menu.app.settings" : "ÐалаштуваннÑ",
34 "menu.app.unhide" : "Unhide",
35 "menu.edit" : "Редагувати",
36 "menu.edit.copy" : "Copy",
37 "menu.edit.cut" : "Cut",
38 "menu.edit.delete" : "Видалити",
39 "menu.edit.emojiSymbols" : "Emoji & Symbols",
40 "menu.edit.paste" : "Paste",
41 "menu.edit.pasteAndMatchStyle" : "Paste And Match Style",
42 "menu.edit.redo" : "Redo",
43 "menu.edit.selectAll" : "Select All",
44 "menu.edit.speech" : "Speech",
45 "menu.edit.startDictation" : "Start Dictation",
46 "menu.edit.startSpeaking" : "Start Speaking",
47 "menu.edit.stopSpeaking" : "Stop Speaking",
48 "menu.edit.undo" : "Undo",
49 "menu.file" : "File",
50 "menu.help" : "Help",
51 "menu.help.changelog" : "Changelog",
52 "menu.help.learnMore" : "Learn More",
53 "menu.help.privacy" : "ЗаÑва про конфіденційніÑÑ‚ÑŒ",
54 "menu.help.support" : "Support",
55 "menu.help.tos" : "Terms of Service",
56 "menu.services" : "Services",
57 "menu.services.addNewService" : "Add New Service...",
58 "menu.view" : "View",
59 "menu.view.enterFullScreen" : "Enter Full Screen",
60 "menu.view.exitFullScreen" : "Exit Full Screen",
61 "menu.view.reloadFranz" : "Reload Franz",
62 "menu.view.reloadService" : "Reload Service",
63 "menu.view.resetZoom" : "Actual Size",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools",
67 "menu.view.zoomIn" : "Zoom In",
68 "menu.view.zoomOut" : "Zoom Out",
69 "menu.window" : "Window",
70 "menu.window.close" : "Close",
71 "menu.window.minimize" : "Minimize",
29 "password.email.label" : "Email адреÑа", 72 "password.email.label" : "Email адреÑа",
30 "password.headline" : "Скинути пароль", 73 "password.headline" : "Скинути пароль",
31 "password.link.login" : "Увійти до вашого акаунту", 74 "password.link.login" : "Увійти до вашого акаунту",
@@ -50,7 +93,7 @@
50 "settings.account.accountType.premium" : "Преміум Ðкаунт Прихильника", 93 "settings.account.accountType.premium" : "Преміум Ðкаунт Прихильника",
51 "settings.account.buttonSave" : "Оновити профіль", 94 "settings.account.buttonSave" : "Оновити профіль",
52 "settings.account.deleteAccount" : "Видалити обліковий запиÑ", 95 "settings.account.deleteAccount" : "Видалити обліковий запиÑ",
53 "settings.account.deleteEmailSent" : "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", 96 "settings.account.deleteEmailSent" : "Ви отримали електронного лиÑта з лінком, щоб підтвердити Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑу. Ваш обліковий Ð·Ð°Ð¿Ð¸Ñ Ñ– дані не можна буде відновити!",
54 "settings.account.deleteInfo" : "Якщо Вам більше не потрібний обліковий Ð·Ð°Ð¿Ð¸Ñ Franz, Ви можете його видалити Ñ– вÑÑ– Ñуміжні дані.", 97 "settings.account.deleteInfo" : "Якщо Вам більше не потрібний обліковий Ð·Ð°Ð¿Ð¸Ñ Franz, Ви можете його видалити Ñ– вÑÑ– Ñуміжні дані.",
55 "settings.account.headline" : "Ðкаунт", 98 "settings.account.headline" : "Ðкаунт",
56 "settings.account.headlineAccount" : "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ акаунт", 99 "settings.account.headlineAccount" : "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ акаунт",
@@ -65,22 +108,23 @@
65 "settings.account.successInfo" : "Ваші зміни були збережені", 108 "settings.account.successInfo" : "Ваші зміни були збережені",
66 "settings.account.tryReloadUserInfoRequest" : "Спробуйте ще раз", 109 "settings.account.tryReloadUserInfoRequest" : "Спробуйте ще раз",
67 "settings.account.userInfoRequestFailed" : "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ інформацію кориÑтувача", 110 "settings.account.userInfoRequestFailed" : "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ інформацію кориÑтувача",
68 "settings.app.buttonClearAllCache" : "Clear cache", 111 "settings.app.buttonClearAllCache" : "ОчиÑтити кеш",
69 "settings.app.buttonInstallUpdate" : "Перезавантажити Ñ– вÑтановити оновленнÑ", 112 "settings.app.buttonInstallUpdate" : "Перезавантажити Ñ– вÑтановити оновленнÑ",
70 "settings.app.buttonSearchForUpdate" : "Перевірити наÑвніÑÑ‚ÑŒ оновлень", 113 "settings.app.buttonSearchForUpdate" : "Перевірити наÑвніÑÑ‚ÑŒ оновлень",
71 "settings.app.cacheInfo" : "Franz cache is currently using {size} of disk space.", 114 "settings.app.cacheInfo" : "Кеш, Ñкий викориÑтовує Franz, займає {розмір} диÑку.",
72 "settings.app.currentVersion" : "Поточна верÑÑ–Ñ:", 115 "settings.app.currentVersion" : "Поточна верÑÑ–Ñ:",
73 "settings.app.form.autoLaunchInBackground" : "Відкрити у фоновому режимі", 116 "settings.app.form.autoLaunchInBackground" : "Відкрити у фоновому режимі",
74 "settings.app.form.autoLaunchOnStart" : "ЗапуÑкати Franz на початку", 117 "settings.app.form.autoLaunchOnStart" : "ЗапуÑкати Franz на початку",
75 "settings.app.form.beta" : "Включити бета-верÑÑ–Ñ—", 118 "settings.app.form.beta" : "Включити бета-верÑÑ–Ñ—",
76 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", 119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
120 "settings.app.form.enableMenuBar" : "Відображати Franz в панелі головного меню",
77 "settings.app.form.enableSpellchecking" : "Увімкнути перевірку орфографії", 121 "settings.app.form.enableSpellchecking" : "Увімкнути перевірку орфографії",
78 "settings.app.form.enableSystemTray" : "Показувати Franz у ÑиÑтемному лотку", 122 "settings.app.form.enableSystemTray" : "Показувати Franz у ÑиÑтемному лотку",
79 "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock", 123 "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock",
80 "settings.app.form.language" : "Мова", 124 "settings.app.form.language" : "Мова",
81 "settings.app.form.minimizeToSystemTray" : "Мінімізувати Franz до ÑиÑтемного лотка", 125 "settings.app.form.minimizeToSystemTray" : "Мінімізувати Franz до ÑиÑтемного лотка",
82 "settings.app.form.runInBackground" : "Тримати Franz в фоні при закритті вікна", 126 "settings.app.form.runInBackground" : "Тримати Franz в фоні при закритті вікна",
83 "settings.app.form.showDisabledServices" : "Display disabled services tabs", 127 "settings.app.form.showDisabledServices" : "Показати вкладку вимкнених ÑервіÑів",
84 "settings.app.form.showMessagesBadgesWhenMuted" : "Показувати значок непрочитаних повідомлень коли ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ñ–", 128 "settings.app.form.showMessagesBadgesWhenMuted" : "Показувати значок непрочитаних повідомлень коли ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ñ–",
85 "settings.app.headline" : "ÐалаштуваннÑ", 129 "settings.app.headline" : "ÐалаштуваннÑ",
86 "settings.app.headlineAdvanced" : "Advanced", 130 "settings.app.headlineAdvanced" : "Advanced",
@@ -89,15 +133,15 @@
89 "settings.app.headlineLanguage" : "Мова", 133 "settings.app.headlineLanguage" : "Мова",
90 "settings.app.headlineUpdates" : "ОновленнÑ", 134 "settings.app.headlineUpdates" : "ОновленнÑ",
91 "settings.app.restartRequired" : "Зміни потребують перезапуÑку", 135 "settings.app.restartRequired" : "Зміни потребують перезапуÑку",
92 "settings.app.subheadlineCache" : "Cache", 136 "settings.app.subheadlineCache" : "Кеш",
93 "settings.app.translationHelp" : "Допоможіть переклаÑти Franz на Вашу мову.", 137 "settings.app.translationHelp" : "Допоможіть переклаÑти Franz на Вашу мову.",
94 "settings.app.updateStatusAvailable" : "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð¾Ñтупне, завантаженнÑ...", 138 "settings.app.updateStatusAvailable" : "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð¾Ñтупне, завантаженнÑ...",
95 "settings.app.updateStatusSearching" : "Шукає оновленнÑ", 139 "settings.app.updateStatusSearching" : "Шукає оновленнÑ",
96 "settings.app.updateStatusUpToDate" : "Ви викориÑтовуєте оÑтанню верÑÑ–ÑŽ Franz", 140 "settings.app.updateStatusUpToDate" : "Ви викориÑтовуєте оÑтанню верÑÑ–ÑŽ Franz",
97 "settings.invite.headline" : "Invite Friends", 141 "settings.invite.headline" : "ЗапроÑити друзів",
98 "settings.navigation.account" : "Ðкаунт", 142 "settings.navigation.account" : "Ðкаунт",
99 "settings.navigation.availableServices" : "ДоÑтупні ÑервіÑи", 143 "settings.navigation.availableServices" : "ДоÑтупні ÑервіÑи",
100 "settings.navigation.inviteFriends" : "Invite Friends", 144 "settings.navigation.inviteFriends" : "ЗапроÑити друзів",
101 "settings.navigation.logout" : "Вийти", 145 "settings.navigation.logout" : "Вийти",
102 "settings.navigation.settings" : "ÐалаштуваннÑ", 146 "settings.navigation.settings" : "ÐалаштуваннÑ",
103 "settings.navigation.yourServices" : "Ваші ÑервіÑи", 147 "settings.navigation.yourServices" : "Ваші ÑервіÑи",
@@ -126,10 +170,10 @@
126 "settings.service.form.enableService" : "Увімкнути ÑервіÑ", 170 "settings.service.form.enableService" : "Увімкнути ÑервіÑ",
127 "settings.service.form.headlineBadges" : "Unread message badges", 171 "settings.service.form.headlineBadges" : "Unread message badges",
128 "settings.service.form.headlineGeneral" : "Загальні", 172 "settings.service.form.headlineGeneral" : "Загальні",
129 "settings.service.form.headlineNotifications" : "Notifications", 173 "settings.service.form.headlineNotifications" : "СповіщеннÑ",
130 "settings.service.form.icon" : "Custom icon", 174 "settings.service.form.icon" : "Ð¡Ð²Ð¾Ñ Ñ–ÐºÐ¾Ð½ÐºÐ°",
131 "settings.service.form.iconDelete" : "Delete", 175 "settings.service.form.iconDelete" : "Видалити",
132 "settings.service.form.iconUpload" : "Drop your image, or click here", 176 "settings.service.form.iconUpload" : "Скиньте Ñвоє Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ натиÑніть тут",
133 "settings.service.form.indirectMessageInfo" : "Ви отримаєте ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ вÑÑ– нові Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð² каналі, а не лише про @username, @channel, @here, ...", 177 "settings.service.form.indirectMessageInfo" : "Ви отримаєте ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ вÑÑ– нові Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð² каналі, а не лише про @username, @channel, @here, ...",
134 "settings.service.form.indirectMessages" : "Показувати значок Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²ÑÑ–Ñ… нових повідомлень", 178 "settings.service.form.indirectMessages" : "Показувати значок Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²ÑÑ–Ñ… нових повідомлень",
135 "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", 179 "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted",
@@ -197,6 +241,10 @@
197 "tabs.item.enableNotification" : "Увімкнути ÑповіщеннÑ", 241 "tabs.item.enableNotification" : "Увімкнути ÑповіщеннÑ",
198 "tabs.item.enableService" : "Увімкнути Ñлужбу", 242 "tabs.item.enableService" : "Увімкнути Ñлужбу",
199 "tabs.item.reload" : "Перезавантажити", 243 "tabs.item.reload" : "Перезавантажити",
244 "validation.email" : "{field} is not valid",
245 "validation.minLength" : "{field} should be at least {length} characters long",
246 "validation.required" : "{field} is required",
247 "validation.url" : "{field} is not a valid URL",
200 "welcome.loginButton" : "Увійдіть до Ñвого акаунту", 248 "welcome.loginButton" : "Увійдіть до Ñвого акаунту",
201 "welcome.signupButton" : "Створити безплатний акаунт", 249 "welcome.signupButton" : "Створити безплатний акаунт",
202 "welcome.slogan" : "Обмін повідомленнÑми, Ñкий працює Ð´Ð»Ñ Ð²Ð°Ñ" 250 "welcome.slogan" : "Обмін повідомленнÑми, Ñкий працює Ð´Ð»Ñ Ð²Ð°Ñ"
diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json
index 5feef50f2..3bbcc8288 100644
--- a/src/i18n/locales/zh-TW.json
+++ b/src/i18n/locales/zh-TW.json
@@ -16,7 +16,7 @@
16 "invite.name.label" : "å稱", 16 "invite.name.label" : "å稱",
17 "invite.skip.label" : "我想ç¨å¾Œå†åš", 17 "invite.skip.label" : "我想ç¨å¾Œå†åš",
18 "invite.submit.label" : "é€å‡ºé‚€è«‹", 18 "invite.submit.label" : "é€å‡ºé‚€è«‹",
19 "invite.successInfo" : "Invitations sent successfully", 19 "invite.successInfo" : "註冊請求已é€å‡º",
20 "login.email.label" : "é›»å­éƒµä»¶åœ°å€", 20 "login.email.label" : "é›»å­éƒµä»¶åœ°å€",
21 "login.headline" : "登入", 21 "login.headline" : "登入",
22 "login.invalidCredentials" : "é›»å­éƒµä»¶æˆ–密碼有誤", 22 "login.invalidCredentials" : "é›»å­éƒµä»¶æˆ–密碼有誤",
@@ -26,6 +26,49 @@
26 "login.serverLogout" : "您的登入期間已éŽæœŸï¼Œè«‹é‡æ–°ç™»éŒ„", 26 "login.serverLogout" : "您的登入期間已éŽæœŸï¼Œè«‹é‡æ–°ç™»éŒ„",
27 "login.submit.label" : "登入", 27 "login.submit.label" : "登入",
28 "login.tokenExpired" : "您的登入已éŽæœŸï¼Œè«‹é‡æ–°ç™»å…¥ã€‚", 28 "login.tokenExpired" : "您的登入已éŽæœŸï¼Œè«‹é‡æ–°ç™»å…¥ã€‚",
29 "menu.app.about" : "關於Franz",
30 "menu.app.hide" : "éš±è—",
31 "menu.app.hideOthers" : "éš±è—其他",
32 "menu.app.quit" : "çµæŸ",
33 "menu.app.settings" : "設定",
34 "menu.app.unhide" : "顯示",
35 "menu.edit" : "編輯",
36 "menu.edit.copy" : "æ‹·è²",
37 "menu.edit.cut" : "剪下",
38 "menu.edit.delete" : "刪除",
39 "menu.edit.emojiSymbols" : "貼紙和表情包",
40 "menu.edit.paste" : "貼上",
41 "menu.edit.pasteAndMatchStyle" : "貼上并匹é…樣å¼",
42 "menu.edit.redo" : "é‡ä¾†",
43 "menu.edit.selectAll" : "é¸æ“‡æ‰€æœ‰",
44 "menu.edit.speech" : "朗讀",
45 "menu.edit.startDictation" : "開始è½å¯«",
46 "menu.edit.startSpeaking" : "Start Speaking",
47 "menu.edit.stopSpeaking" : "Stop Speaking",
48 "menu.edit.undo" : "Undo",
49 "menu.file" : "File",
50 "menu.help" : "Help",
51 "menu.help.changelog" : "Changelog",
52 "menu.help.learnMore" : "Learn More",
53 "menu.help.privacy" : "éš±ç§è²æ˜Ž",
54 "menu.help.support" : "Support",
55 "menu.help.tos" : "Terms of Service",
56 "menu.services" : "Services",
57 "menu.services.addNewService" : "Add New Service...",
58 "menu.view" : "View",
59 "menu.view.enterFullScreen" : "Enter Full Screen",
60 "menu.view.exitFullScreen" : "Exit Full Screen",
61 "menu.view.reloadFranz" : "Reload Franz",
62 "menu.view.reloadService" : "Reload Service",
63 "menu.view.resetZoom" : "Actual Size",
64 "menu.view.toggleDevTools" : "Toggle Developer Tools",
65 "menu.view.toggleFullScreen" : "Toggle Full Screen",
66 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools",
67 "menu.view.zoomIn" : "Zoom In",
68 "menu.view.zoomOut" : "Zoom Out",
69 "menu.window" : "Window",
70 "menu.window.close" : "Close",
71 "menu.window.minimize" : "Minimize",
29 "password.email.label" : "é›»å­éƒµä»¶åœ°å€", 72 "password.email.label" : "é›»å­éƒµä»¶åœ°å€",
30 "password.headline" : "é‡è¨­å¯†ç¢¼", 73 "password.headline" : "é‡è¨­å¯†ç¢¼",
31 "password.link.login" : "登入您的帳號", 74 "password.link.login" : "登入您的帳號",
@@ -73,6 +116,7 @@
73 "settings.app.form.autoLaunchInBackground" : "在背景開啟", 116 "settings.app.form.autoLaunchInBackground" : "在背景開啟",
74 "settings.app.form.autoLaunchOnStart" : "開機時啟動Franz", 117 "settings.app.form.autoLaunchOnStart" : "開機時啟動Franz",
75 "settings.app.form.beta" : "包å«æ¸¬è©¦ç‰ˆ", 118 "settings.app.form.beta" : "包å«æ¸¬è©¦ç‰ˆ",
119 "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration",
76 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", 120 "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar",
77 "settings.app.form.enableSpellchecking" : "啟用拼字檢查", 121 "settings.app.form.enableSpellchecking" : "啟用拼字檢查",
78 "settings.app.form.enableSystemTray" : "顯示Franz在系統列", 122 "settings.app.form.enableSystemTray" : "顯示Franz在系統列",
@@ -128,7 +172,7 @@
128 "settings.service.form.headlineGeneral" : "一般", 172 "settings.service.form.headlineGeneral" : "一般",
129 "settings.service.form.headlineNotifications" : "Notifications", 173 "settings.service.form.headlineNotifications" : "Notifications",
130 "settings.service.form.icon" : "Custom icon", 174 "settings.service.form.icon" : "Custom icon",
131 "settings.service.form.iconDelete" : "Delete", 175 "settings.service.form.iconDelete" : "刪除",
132 "settings.service.form.iconUpload" : "Drop your image, or click here", 176 "settings.service.form.iconUpload" : "Drop your image, or click here",
133 "settings.service.form.indirectMessageInfo" : "您將收到有關頻é“中所有新消æ¯çš„通知,而ä¸åƒ…僅是@username,@channel,@here,...", 177 "settings.service.form.indirectMessageInfo" : "您將收到有關頻é“中所有新消æ¯çš„通知,而ä¸åƒ…僅是@username,@channel,@here,...",
134 "settings.service.form.indirectMessages" : "顯示所有新消æ¯çš„消æ¯æ¨™èªŒ", 178 "settings.service.form.indirectMessages" : "顯示所有新消æ¯çš„消æ¯æ¨™èªŒ",
@@ -197,6 +241,10 @@
197 "tabs.item.enableNotification" : "啟用通知", 241 "tabs.item.enableNotification" : "啟用通知",
198 "tabs.item.enableService" : "啟用æœå‹™", 242 "tabs.item.enableService" : "啟用æœå‹™",
199 "tabs.item.reload" : "é‡æ–°è¼‰å…¥", 243 "tabs.item.reload" : "é‡æ–°è¼‰å…¥",
244 "validation.email" : "{field} is not valid",
245 "validation.minLength" : "{field} should be at least {length} characters long",
246 "validation.required" : "{field} is required",
247 "validation.url" : "{field} is not a valid URL",
200 "welcome.loginButton" : "登入您的帳戶", 248 "welcome.loginButton" : "登入您的帳戶",
201 "welcome.signupButton" : "建立å…費帳號", 249 "welcome.signupButton" : "建立å…費帳號",
202 "welcome.slogan" : "為你通信" 250 "welcome.slogan" : "為你通信"
diff --git a/src/index.html b/src/index.html
index 9e5acd705..5ce7f6a96 100644
--- a/src/index.html
+++ b/src/index.html
@@ -11,10 +11,15 @@
11 <div class="dev-warning">DEV MODE</div> 11 <div class="dev-warning">DEV MODE</div>
12 <div id="root"></div> 12 <div id="root"></div>
13 <script> 13 <script>
14 document.querySelector('body').classList.add(process.platform); 14 document.querySelector('body').classList.add(process.env.OS_PLATFORM ? process.env.OS_PLATFORM : process.platform);
15 15
16 const { isDevMode } = require('./environment'); 16 const { isDevMode } = require('./environment');
17 if (isDevMode) { 17 if (isDevMode) {
18 const debugging = require('debug');
19 debugging.enable(process.env.DEBUG);
20
21 const debug = debugging('Index');
22
18 document.querySelector('body').classList.add('isDevMode'); 23 document.querySelector('body').classList.add('isDevMode');
19 24
20 (function() { 25 (function() {
@@ -25,7 +30,7 @@
25 document.body.appendChild(s); 30 document.body.appendChild(s);
26 31
27 s.onload = () => { 32 s.onload = () => {
28 console.log('livereload loaded'); 33 debug('livereload loaded');
29 const originalReloadBehaviour = window._onLiveReloadFileChanged; 34 const originalReloadBehaviour = window._onLiveReloadFileChanged;
30 35
31 window._onLiveReloadFileChanged = (file) => { 36 window._onLiveReloadFileChanged = (file) => {
@@ -33,10 +38,10 @@
33 originalReloadBehaviour(file); 38 originalReloadBehaviour(file);
34 } else { 39 } else {
35 if (file.path.includes('/build/webview/')) { 40 if (file.path.includes('/build/webview/')) {
36 console.log('Livereload: Reloading all webvies'); 41 debug('Livereload: Reloading all webvies');
37 const webviews = document.querySelectorAll('webview').forEach(webview => webview.reload()); 42 const webviews = document.querySelectorAll('webview').forEach(webview => webview.reload());
38 } else { 43 } else {
39 console.log('Livereload: skip reload as only main process files have changed'); 44 debug('Livereload: skip reload as only main process files have changed');
40 } 45 }
41 } 46 }
42 } 47 }
diff --git a/src/index.js b/src/index.js
index f82bb3590..7d906ad71 100644
--- a/src/index.js
+++ b/src/index.js
@@ -4,7 +4,7 @@ import path from 'path';
4 4
5import windowStateKeeper from 'electron-window-state'; 5import windowStateKeeper from 'electron-window-state';
6 6
7import { isDevMode, isWindows } from './environment'; 7import { isDevMode, isMac, isWindows, isLinux } from './environment';
8import ipcApi from './electron/ipc-api'; 8import ipcApi from './electron/ipc-api';
9import Tray from './lib/Tray'; 9import Tray from './lib/Tray';
10import Settings from './electron/Settings'; 10import Settings from './electron/Settings';
@@ -12,14 +12,21 @@ import handleDeepLink from './electron/deepLinking';
12import { appId } from './package.json'; // eslint-disable-line import/no-unresolved 12import { appId } from './package.json'; // eslint-disable-line import/no-unresolved
13import './electron/exception'; 13import './electron/exception';
14 14
15const debug = require('debug')('Franz:App');
16
15// Keep a global reference of the window object, if you don't, the window will 17// Keep a global reference of the window object, if you don't, the window will
16// be closed automatically when the JavaScript object is garbage collected. 18// be closed automatically when the JavaScript object is garbage collected.
17let mainWindow; 19let mainWindow;
18let willQuitApp = false; 20let willQuitApp = false;
19 21
22// DEV MODE: Save user data into FranzDev
23if (isDevMode) {
24 app.setPath('userData', path.join(app.getPath('appData'), 'FranzDev'));
25}
26
20// Ensure that the recipe directory exists 27// Ensure that the recipe directory exists
21fs.ensureDir(path.join(app.getPath('userData'), 'recipes'));
22fs.emptyDirSync(path.join(app.getPath('userData'), 'recipes', 'temp')); 28fs.emptyDirSync(path.join(app.getPath('userData'), 'recipes', 'temp'));
29fs.ensureFileSync(path.join(app.getPath('userData'), 'window-state.json'));
23 30
24// Set App ID for Windows 31// Set App ID for Windows
25if (isWindows) { 32if (isWindows) {
@@ -48,15 +55,21 @@ if (isSecondInstance) {
48 app.exit(); 55 app.exit();
49} 56}
50 57
51// Lets disable Hardware Acceleration until we have a better solution 58// Fix Unity indicator issue
52// to deal with the high-perf-gpu requirement of some services 59// https://github.com/electron/electron/issues/9046
53 60if (isLinux && ['Pantheon', 'Unity:Unity7'].indexOf(process.env.XDG_CURRENT_DESKTOP) !== -1) {
54// Disabled to test tweetdeck glitches 61 process.env.XDG_CURRENT_DESKTOP = 'Unity';
55// app.disableHardwareAcceleration(); 62}
56 63
57// Initialize Settings 64// Initialize Settings
58const settings = new Settings(); 65const settings = new Settings();
59 66
67// Disable GPU acceleration
68if (!settings.get('enableGPUAcceleration')) {
69 debug('Disable GPU Acceleration');
70 app.disableHardwareAcceleration();
71}
72
60const createWindow = () => { 73const createWindow = () => {
61 // Remember window size 74 // Remember window size
62 const mainWindowState = windowStateKeeper({ 75 const mainWindowState = windowStateKeeper({
@@ -72,9 +85,9 @@ const createWindow = () => {
72 height: mainWindowState.height, 85 height: mainWindowState.height,
73 minWidth: 600, 86 minWidth: 600,
74 minHeight: 500, 87 minHeight: 500,
75 titleBarStyle: 'hidden', 88 titleBarStyle: isMac ? 'hidden' : '',
76 backgroundColor: '#3498db', 89 frame: isLinux,
77 autoHideMenuBar: true, 90 backgroundColor: !settings.get('darkMode') ? '#3498db' : '#1E1E1E',
78 }); 91 });
79 92
80 // Initialize System Tray 93 // Initialize System Tray
@@ -107,7 +120,7 @@ const createWindow = () => {
107 mainWindow.hide(); 120 mainWindow.hide();
108 } 121 }
109 122
110 if (isWindows && settings.get('minimizeToSystemTray')) { 123 if (isWindows) {
111 mainWindow.setSkipTaskbar(true); 124 mainWindow.setSkipTaskbar(true);
112 } 125 }
113 } else { 126 } else {
diff --git a/src/lib/Menu.js b/src/lib/Menu.js
index 703060dc1..76b0f28d5 100644
--- a/src/lib/Menu.js
+++ b/src/lib/Menu.js
@@ -1,113 +1,477 @@
1import { remote, shell } from 'electron'; 1import { remote, shell } from 'electron';
2import { autorun, computed, observable, toJS } from 'mobx'; 2import { observable, autorun, computed } from 'mobx';
3import { defineMessages } from 'react-intl';
3 4
4import { isMac } from '../environment'; 5import { isMac, ctrlKey, cmdKey } from '../environment';
5 6
6const { app, Menu, dialog } = remote; 7const { app, Menu, dialog } = remote;
7 8
8const template = [ 9const menuItems = defineMessages({
10 edit: {
11 id: 'menu.edit',
12 defaultMessage: '!!!Edit',
13 },
14 undo: {
15 id: 'menu.edit.undo',
16 defaultMessage: '!!!Undo',
17 },
18 redo: {
19 id: 'menu.edit.redo',
20 defaultMessage: '!!!Redo',
21 },
22 cut: {
23 id: 'menu.edit.cut',
24 defaultMessage: '!!!Cut',
25 },
26 copy: {
27 id: 'menu.edit.copy',
28 defaultMessage: '!!!Copy',
29 },
30 paste: {
31 id: 'menu.edit.paste',
32 defaultMessage: '!!!Paste',
33 },
34 pasteAndMatchStyle: {
35 id: 'menu.edit.pasteAndMatchStyle',
36 defaultMessage: '!!!Paste And Match Style',
37 },
38 delete: {
39 id: 'menu.edit.delete',
40 defaultMessage: '!!!Delete',
41 },
42 selectAll: {
43 id: 'menu.edit.selectAll',
44 defaultMessage: '!!!Select All',
45 },
46 speech: {
47 id: 'menu.edit.speech',
48 defaultMessage: '!!!Speech',
49 },
50 startSpeaking: {
51 id: 'menu.edit.startSpeaking',
52 defaultMessage: '!!!Start Speaking',
53 },
54 stopSpeaking: {
55 id: 'menu.edit.stopSpeaking',
56 defaultMessage: '!!!Stop Speaking',
57 },
58 startDictation: {
59 id: 'menu.edit.startDictation',
60 defaultMessage: '!!!Start Dictation',
61 },
62 emojiSymbols: {
63 id: 'menu.edit.emojiSymbols',
64 defaultMessage: '!!!Emoji & Symbols',
65 },
66 resetZoom: {
67 id: 'menu.view.resetZoom',
68 defaultMessage: '!!!Actual Size',
69 },
70 zoomIn: {
71 id: 'menu.view.zoomIn',
72 defaultMessage: '!!!Zoom In',
73 },
74 zoomOut: {
75 id: 'menu.view.zoomOut',
76 defaultMessage: '!!!Zoom Out',
77 },
78 enterFullScreen: {
79 id: 'menu.view.enterFullScreen',
80 defaultMessage: '!!!Enter Full Screen',
81 },
82 exitFullScreen: {
83 id: 'menu.view.exitFullScreen',
84 defaultMessage: '!!!Exit Full Screen',
85 },
86 toggleFullScreen: {
87 id: 'menu.view.toggleFullScreen',
88 defaultMessage: '!!!Toggle Full Screen',
89 },
90 toggleDevTools: {
91 id: 'menu.view.toggleDevTools',
92 defaultMessage: '!!!Toggle Developer Tools',
93 },
94 toggleServiceDevTools: {
95 id: 'menu.view.toggleServiceDevTools',
96 defaultMessage: '!!!Toggle Service Developer Tools',
97 },
98 reloadService: {
99 id: 'menu.view.reloadService',
100 defaultMessage: '!!!Reload Service',
101 },
102 reloadFranz: {
103 id: 'menu.view.reloadFranz',
104 defaultMessage: '!!!Reload Franz',
105 },
106 minimize: {
107 id: 'menu.window.minimize',
108 defaultMessage: '!!!Minimize',
109 },
110 close: {
111 id: 'menu.window.close',
112 defaultMessage: '!!!Close',
113 },
114 learnMore: {
115 id: 'menu.help.learnMore',
116 defaultMessage: '!!!Learn More',
117 },
118 changelog: {
119 id: 'menu.help.changelog',
120 defaultMessage: '!!!Changelog',
121 },
122 support: {
123 id: 'menu.help.support',
124 defaultMessage: '!!!Support',
125 },
126 tos: {
127 id: 'menu.help.tos',
128 defaultMessage: '!!!Terms of Service',
129 },
130 privacy: {
131 id: 'menu.help.privacy',
132 defaultMessage: '!!!Privacy Statement',
133 },
134 file: {
135 id: 'menu.file',
136 defaultMessage: '!!!File',
137 },
138 view: {
139 id: 'menu.view',
140 defaultMessage: '!!!View',
141 },
142 services: {
143 id: 'menu.services',
144 defaultMessage: '!!!Services',
145 },
146 window: {
147 id: 'menu.window',
148 defaultMessage: '!!!Window',
149 },
150 help: {
151 id: 'menu.help',
152 defaultMessage: '!!!Help',
153 },
154 about: {
155 id: 'menu.app.about',
156 defaultMessage: '!!!About Franz',
157 },
158 settings: {
159 id: 'menu.app.settings',
160 defaultMessage: '!!!Settings',
161 },
162 hide: {
163 id: 'menu.app.hide',
164 defaultMessage: '!!!Hide',
165 },
166 hideOthers: {
167 id: 'menu.app.hideOthers',
168 defaultMessage: '!!!Hide Others',
169 },
170 unhide: {
171 id: 'menu.app.unhide',
172 defaultMessage: '!!!Unhide',
173 },
174 quit: {
175 id: 'menu.app.quit',
176 defaultMessage: '!!!Quit',
177 },
178 addNewService: {
179 id: 'menu.services.addNewService',
180 defaultMessage: '!!!Add New Service...',
181 },
182});
183
184function getActiveWebview() {
185 return window.franz.stores.services.active.webview;
186}
187
188const _templateFactory = intl => [
9 { 189 {
10 label: 'Edit', 190 label: intl.formatMessage(menuItems.edit),
11 submenu: [ 191 submenu: [
12 { 192 {
193 label: intl.formatMessage(menuItems.undo),
13 role: 'undo', 194 role: 'undo',
14 }, 195 },
15 { 196 {
197 label: intl.formatMessage(menuItems.redo),
16 role: 'redo', 198 role: 'redo',
17 }, 199 },
18 { 200 {
19 type: 'separator', 201 type: 'separator',
20 }, 202 },
21 { 203 {
22 role: 'cut', 204 label: intl.formatMessage(menuItems.cut),
205 accelerator: 'Cmd+X',
206 selector: 'cut:',
23 }, 207 },
24 { 208 {
25 label: 'Copy', 209 label: intl.formatMessage(menuItems.copy),
26 accelerator: 'Cmd+C', 210 accelerator: 'Cmd+C',
27 selector: 'copy:', 211 selector: 'copy:',
28 }, 212 },
29 { 213 {
30 label: 'Paste', 214 label: intl.formatMessage(menuItems.paste),
31 accelerator: 'Cmd+V', 215 accelerator: 'Cmd+V',
32 selector: 'paste:', 216 selector: 'paste:',
33 }, 217 },
34 { 218 {
35 role: 'pasteandmatchstyle', 219 label: intl.formatMessage(menuItems.pasteAndMatchStyle),
220 accelerator: 'Cmd+Shift+V',
221 selector: 'pasteAndMatchStyle:',
36 }, 222 },
37 { 223 {
224 label: intl.formatMessage(menuItems.delete),
38 role: 'delete', 225 role: 'delete',
39 }, 226 },
40 { 227 {
41 role: 'selectall', 228 label: intl.formatMessage(menuItems.selectAll),
229 accelerator: 'Cmd+A',
230 selector: 'selectAll:',
42 }, 231 },
43 ], 232 ],
44 }, 233 },
45 { 234 {
46 label: 'View', 235 label: intl.formatMessage(menuItems.view),
47 submenu: [ 236 submenu: [
48 { 237 {
49 type: 'separator', 238 type: 'separator',
50 }, 239 },
51 { 240 {
241 label: intl.formatMessage(menuItems.resetZoom),
52 role: 'resetzoom', 242 role: 'resetzoom',
53 }, 243 },
54 { 244 {
245 label: intl.formatMessage(menuItems.zoomIn),
246 // accelerator: 'Cmd+=',
55 role: 'zoomin', 247 role: 'zoomin',
56 accelerator: 'CommandOrControl+=',
57 }, 248 },
58 { 249 {
250 label: intl.formatMessage(menuItems.zoomOut),
59 role: 'zoomout', 251 role: 'zoomout',
60 }, 252 },
61 { 253 {
62 type: 'separator', 254 type: 'separator',
63 }, 255 },
64 { 256 {
257 label: app.mainWindow.isFullScreen() // label doesn't work, gets overridden by Electron
258 ? intl.formatMessage(menuItems.exitFullScreen)
259 : intl.formatMessage(menuItems.enterFullScreen),
65 role: 'togglefullscreen', 260 role: 'togglefullscreen',
66 }, 261 },
67 ], 262 ],
68 }, 263 },
69 { 264 {
70 label: 'Services', 265 label: intl.formatMessage(menuItems.services),
71 submenu: [], 266 submenu: [],
72 }, 267 },
73 { 268 {
269 label: intl.formatMessage(menuItems.window),
74 role: 'window', 270 role: 'window',
75 submenu: [ 271 submenu: [
76 { 272 {
273 label: intl.formatMessage(menuItems.minimize),
77 role: 'minimize', 274 role: 'minimize',
78 }, 275 },
79 { 276 {
277 label: intl.formatMessage(menuItems.close),
80 role: 'close', 278 role: 'close',
81 }, 279 },
82 ], 280 ],
83 }, 281 },
84 { 282 {
283 label: intl.formatMessage(menuItems.help),
85 role: 'help', 284 role: 'help',
86 submenu: [ 285 submenu: [
87 { 286 {
88 label: 'Learn More', 287 label: intl.formatMessage(menuItems.learnMore),
89 click() { shell.openExternal('http://meetfranz.com'); }, 288 click() { shell.openExternal('https://meetfranz.com'); },
90 }, 289 },
91 { 290 {
92 label: 'Changelog', 291 label: intl.formatMessage(menuItems.changelog),
93 click() { shell.openExternal('https://github.com/meetfranz/franz/blob/master/CHANGELOG.md'); }, 292 click() { shell.openExternal('https://github.com/meetfranz/franz/blob/master/CHANGELOG.md'); },
94 }, 293 },
95 { 294 {
96 type: 'separator', 295 type: 'separator',
97 }, 296 },
98 { 297 {
99 label: 'Support', 298 label: intl.formatMessage(menuItems.support),
100 click() { shell.openExternal('http://meetfranz.com/support'); }, 299 click() { shell.openExternal('https://meetfranz.com/support'); },
101 }, 300 },
102 { 301 {
103 type: 'separator', 302 type: 'separator',
104 }, 303 },
105 { 304 {
106 label: 'Terms of Service', 305 label: intl.formatMessage(menuItems.tos),
107 click() { shell.openExternal('https://meetfranz.com/terms'); }, 306 click() { shell.openExternal('https://meetfranz.com/terms'); },
108 }, 307 },
109 { 308 {
110 label: 'Privacy Statement', 309 label: intl.formatMessage(menuItems.privacy),
310 click() { shell.openExternal('https://meetfranz.com/privacy'); },
311 },
312 ],
313 },
314];
315
316const _titleBarTemplateFactory = intl => [
317 {
318 label: intl.formatMessage(menuItems.edit),
319 submenu: [
320 {
321 label: intl.formatMessage(menuItems.undo),
322 accelerator: `${ctrlKey}+Z`,
323 click() {
324 getActiveWebview().undo();
325 },
326 },
327 {
328 label: intl.formatMessage(menuItems.redo),
329 accelerator: `${ctrlKey}+Y`,
330 click() {
331 getActiveWebview().redo();
332 },
333 },
334 {
335 type: 'separator',
336 },
337 {
338 label: intl.formatMessage(menuItems.cut),
339 accelerator: `${ctrlKey}+X`,
340 click() {
341 getActiveWebview().cut();
342 },
343 },
344 {
345 label: intl.formatMessage(menuItems.copy),
346 accelerator: `${ctrlKey}+C`,
347 click() {
348 getActiveWebview().copy();
349 },
350 },
351 {
352 label: intl.formatMessage(menuItems.paste),
353 accelerator: `${ctrlKey}+V`,
354 click() {
355 getActiveWebview().paste();
356 },
357 },
358 {
359 label: intl.formatMessage(menuItems.pasteAndMatchStyle),
360 accelerator: `${ctrlKey}+Shift+V`,
361 click() {
362 getActiveWebview().pasteAndMatchStyle();
363 },
364 },
365 {
366 label: intl.formatMessage(menuItems.delete),
367 click() {
368 getActiveWebview().delete();
369 },
370 },
371 {
372 label: intl.formatMessage(menuItems.selectAll),
373 accelerator: `${ctrlKey}+A`,
374 click() {
375 getActiveWebview().selectAll();
376 },
377 },
378 ],
379 },
380 {
381 label: intl.formatMessage(menuItems.view),
382 submenu: [
383 {
384 type: 'separator',
385 },
386 {
387 label: intl.formatMessage(menuItems.resetZoom),
388 accelerator: `${ctrlKey}+0`,
389 click() {
390 getActiveWebview().setZoomLevel(0);
391 },
392 },
393 {
394 label: intl.formatMessage(menuItems.zoomIn),
395 accelerator: `${ctrlKey}+Plus`,
396 click() {
397 getActiveWebview().getZoomLevel((zoomLevel) => {
398 getActiveWebview().setZoomLevel(zoomLevel === 5 ? zoomLevel : zoomLevel + 1);
399 });
400 },
401 },
402 {
403 label: intl.formatMessage(menuItems.zoomOut),
404 accelerator: `${ctrlKey}+-`,
405 click() {
406 getActiveWebview().getZoomLevel((zoomLevel) => {
407 getActiveWebview().setZoomLevel(zoomLevel === -5 ? zoomLevel : zoomLevel - 1);
408 });
409 },
410 },
411 {
412 type: 'separator',
413 },
414 {
415 label: app.mainWindow.isFullScreen() // label doesn't work, gets overridden by Electron
416 ? intl.formatMessage(menuItems.exitFullScreen)
417 : intl.formatMessage(menuItems.enterFullScreen),
418 accelerator: 'F11',
419 click(menuItem, browserWindow) {
420 browserWindow.setFullScreen(!browserWindow.isFullScreen());
421 },
422 },
423 ],
424 },
425 {
426 label: intl.formatMessage(menuItems.services),
427 submenu: [],
428 },
429 {
430 label: intl.formatMessage(menuItems.window),
431 submenu: [
432 {
433 label: intl.formatMessage(menuItems.minimize),
434 accelerator: 'Ctrl+M',
435 click(menuItem, browserWindow) {
436 browserWindow.minimize();
437 },
438 },
439 {
440 label: intl.formatMessage(menuItems.close),
441 accelerator: 'Ctrl+W',
442 click(menuItem, browserWindow) {
443 browserWindow.close();
444 },
445 },
446 ],
447 },
448 {
449 label: '?',
450 submenu: [
451 {
452 label: intl.formatMessage(menuItems.learnMore),
453 click() { shell.openExternal('https://meetfranz.com'); },
454 },
455 {
456 label: intl.formatMessage(menuItems.changelog),
457 click() { shell.openExternal('https://github.com/meetfranz/franz/blob/master/CHANGELOG.md'); },
458 },
459 {
460 type: 'separator',
461 },
462 {
463 label: intl.formatMessage(menuItems.support),
464 click() { shell.openExternal('https://meetfranz.com/support'); },
465 },
466 {
467 type: 'separator',
468 },
469 {
470 label: intl.formatMessage(menuItems.tos),
471 click() { shell.openExternal('https://meetfranz.com/terms'); },
472 },
473 {
474 label: intl.formatMessage(menuItems.privacy),
111 click() { shell.openExternal('https://meetfranz.com/privacy'); }, 475 click() { shell.openExternal('https://meetfranz.com/privacy'); },
112 }, 476 },
113 ], 477 ],
@@ -115,7 +479,7 @@ const template = [
115]; 479];
116 480
117export default class FranzMenu { 481export default class FranzMenu {
118 @observable tpl = template; 482 @observable currentTemplate = [];
119 483
120 constructor(stores, actions) { 484 constructor(stores, actions) {
121 this.stores = stores; 485 this.stores = stores;
@@ -124,23 +488,45 @@ export default class FranzMenu {
124 autorun(this._build.bind(this)); 488 autorun(this._build.bind(this));
125 } 489 }
126 490
491 rebuild() {
492 this._build();
493 }
494
495 get template() {
496 return this.currentTemplate.toJS();
497 }
498
127 _build() { 499 _build() {
128 const tpl = toJS(this.tpl); 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
503 if (window.franz === undefined) {
504 return;
505 }
506
507 const intl = window.franz.intl;
508 const tpl = isMac ? _templateFactory(intl) : _titleBarTemplateFactory(intl);
129 509
130 tpl[1].submenu.push({ 510 tpl[1].submenu.push({
131 role: 'toggledevtools', 511 type: 'separator',
132 }, { 512 }, {
133 label: 'Toggle Service Developer Tools', 513 label: intl.formatMessage(menuItems.toggleDevTools),
134 accelerator: 'CmdOrCtrl+Shift+Alt+i', 514 accelerator: `${cmdKey}+Alt+I`,
515 click: (menuItem, browserWindow) => {
516 browserWindow.webContents.toggleDevTools();
517 },
518 }, {
519 label: intl.formatMessage(menuItems.toggleServiceDevTools),
520 accelerator: `${cmdKey}+Shift+Alt+I`,
135 click: () => { 521 click: () => {
136 this.actions.service.openDevToolsForActiveService(); 522 this.actions.service.openDevToolsForActiveService();
137 }, 523 },
138 }); 524 });
139 525
140 tpl[1].submenu.unshift({ 526 tpl[1].submenu.unshift({
141 label: 'Reload Service', 527 label: intl.formatMessage(menuItems.reloadService),
142 id: 'reloadService', 528 id: 'reloadService', // TODO: needed?
143 accelerator: 'CmdOrCtrl+R', 529 accelerator: `${cmdKey}+R`,
144 click: () => { 530 click: () => {
145 if (this.stores.user.isLoggedIn 531 if (this.stores.user.isLoggedIn
146 && this.stores.services.enabled.length > 0) { 532 && this.stores.services.enabled.length > 0) {
@@ -150,93 +536,128 @@ export default class FranzMenu {
150 } 536 }
151 }, 537 },
152 }, { 538 }, {
153 label: 'Reload Franz', 539 label: intl.formatMessage(menuItems.reloadFranz),
154 accelerator: 'CmdOrCtrl+Shift+R', 540 accelerator: `${cmdKey}+Shift+R`,
155 click: () => { 541 click: () => {
156 window.location.reload(); 542 window.location.reload();
157 }, 543 },
158 }); 544 });
159 545
160 if (isMac) { 546 tpl.unshift({
161 tpl.unshift({ 547 label: isMac ? app.getName() : intl.formatMessage(menuItems.file),
162 label: app.getName(), 548 submenu: [
163 submenu: [ 549 {
164 { 550 label: intl.formatMessage(menuItems.about),
165 role: 'about', 551 role: 'about',
166 }, 552 },
167 { 553 {
168 type: 'separator', 554 type: 'separator',
169 }, 555 },
170 { 556 {
171 label: 'Settings', 557 label: intl.formatMessage(menuItems.settings),
172 accelerator: 'CmdOrCtrl+,', 558 accelerator: 'CmdOrCtrl+,',
173 click: () => { 559 click: () => {
174 this.actions.ui.openSettings({ path: 'app' }); 560 this.actions.ui.openSettings({ path: 'app' });
175 },
176 },
177 {
178 type: 'separator',
179 },
180 {
181 role: 'services',
182 submenu: [],
183 },
184 {
185 type: 'separator',
186 },
187 {
188 role: 'hide',
189 },
190 {
191 role: 'hideothers',
192 },
193 {
194 role: 'unhide',
195 },
196 {
197 type: 'separator',
198 }, 561 },
199 { 562 },
200 role: 'quit', 563 {
564 type: 'separator',
565 },
566 {
567 label: intl.formatMessage(menuItems.services),
568 role: 'services',
569 submenu: [],
570 },
571 {
572 type: 'separator',
573 },
574 {
575 label: intl.formatMessage(menuItems.hide),
576 role: 'hide',
577 },
578 {
579 label: intl.formatMessage(menuItems.hideOthers),
580 role: 'hideothers',
581 },
582 {
583 label: intl.formatMessage(menuItems.unhide),
584 role: 'unhide',
585 },
586 {
587 type: 'separator',
588 },
589 {
590 label: intl.formatMessage(menuItems.quit),
591 role: 'quit',
592 click: () => {
593 app.quit();
201 }, 594 },
202 ], 595 },
203 }); 596 ],
597 });
598
599 const about = {
600 label: intl.formatMessage(menuItems.about),
601 click: () => {
602 dialog.showMessageBox({
603 type: 'info',
604 title: 'Franz',
605 message: 'Franz',
606 detail: `Version: ${remote.app.getVersion()}\nRelease: ${process.versions.electron} / ${process.platform} / ${process.arch}`,
607 });
608 },
609 };
610
611 if (isMac) {
204 // Edit menu. 612 // Edit menu.
205 tpl[1].submenu.push( 613 tpl[1].submenu.push(
206 { 614 {
207 type: 'separator', 615 type: 'separator',
208 }, 616 },
209 { 617 {
210 label: 'Speech', 618 label: intl.formatMessage(menuItems.speech),
211 submenu: [ 619 submenu: [
212 { 620 {
621 label: intl.formatMessage(menuItems.startSpeaking),
213 role: 'startspeaking', 622 role: 'startspeaking',
214 }, 623 },
215 { 624 {
625 label: intl.formatMessage(menuItems.stopSpeaking),
216 role: 'stopspeaking', 626 role: 'stopspeaking',
217 }, 627 },
218 ], 628 ],
219 }, 629 },
220 ); 630 );
631
632 tpl[4].submenu.unshift(about, {
633 type: 'separator',
634 });
221 } else { 635 } else {
222 tpl[4].submenu.unshift({ 636 tpl[0].submenu = [
223 role: 'about', 637 {
224 click: () => { 638 label: intl.formatMessage(menuItems.settings),
225 dialog.showMessageBox({ 639 accelerator: 'Ctrl+P',
226 type: 'info', 640 click: () => {
227 title: 'Franz', 641 this.actions.ui.openSettings({ path: 'app' });
228 message: 'Franz', 642 },
229 detail: `Version: ${remote.app.getVersion()}\nRelease: ${process.versions.electron} / ${process.platform} / ${process.arch}`,
230 });
231 }, 643 },
232 }); 644 {
233 } 645 type: 'separator',
646 },
647 {
648 label: intl.formatMessage(menuItems.quit),
649 role: 'quit',
650 },
651 ];
234 652
235 const serviceTpl = this.serviceTpl; 653 tpl[5].submenu.push({
654 type: 'separator',
655 }, about);
656 }
236 657
237 serviceTpl.unshift({ 658 serviceTpl.unshift({
238 label: 'Add new Service', 659 label: intl.formatMessage(menuItems.addNewService),
239 accelerator: 'CmdOrCtrl+N', 660 accelerator: `${cmdKey}+N`,
240 click: () => { 661 click: () => {
241 this.actions.ui.openSettings({ path: 'recipes' }); 662 this.actions.ui.openSettings({ path: 'recipes' });
242 }, 663 },
@@ -245,9 +666,10 @@ export default class FranzMenu {
245 }); 666 });
246 667
247 if (serviceTpl.length > 0) { 668 if (serviceTpl.length > 0) {
248 tpl[isMac ? 3 : 2].submenu = toJS(this.serviceTpl); 669 tpl[3].submenu = serviceTpl;
249 } 670 }
250 671
672 this.currentTemplate = tpl;
251 const menu = Menu.buildFromTemplate(tpl); 673 const menu = Menu.buildFromTemplate(tpl);
252 Menu.setApplicationMenu(menu); 674 Menu.setApplicationMenu(menu);
253 } 675 }
@@ -258,7 +680,7 @@ export default class FranzMenu {
258 if (this.stores.user.isLoggedIn) { 680 if (this.stores.user.isLoggedIn) {
259 return services.map((service, i) => ({ 681 return services.map((service, i) => ({
260 label: this._getServiceName(service), 682 label: this._getServiceName(service),
261 accelerator: i <= 9 ? `CmdOrCtrl+${i + 1}` : null, 683 accelerator: i <= 9 ? `${cmdKey}+${i + 1}` : null,
262 type: 'radio', 684 type: 'radio',
263 checked: service.isActive, 685 checked: service.isActive,
264 click: () => { 686 click: () => {
diff --git a/src/lib/analytics.js b/src/lib/analytics.js
index b13bf8faa..8b9a44579 100644
--- a/src/lib/analytics.js
+++ b/src/lib/analytics.js
@@ -2,6 +2,8 @@ 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')('Franz:Analytics');
6
5const { app } = remote; 7const { app } = remote;
6 8
7/* eslint-disable */ 9/* eslint-disable */
@@ -28,13 +30,13 @@ ga('send', 'App');
28export function gaPage(page) { 30export function gaPage(page) {
29 ga('send', 'pageview', page); 31 ga('send', 'pageview', page);
30 32
31 console.debug('GA track page', page); 33 debug('GA track page', page);
32} 34}
33 35
34export function gaEvent(category, action, label) { 36export function gaEvent(category, action, label) {
35 ga('send', 'event', category, action, label); 37 ga('send', 'event', category, action, label);
36 38
37 console.debug('GA track page', category, action); 39 debug('GA track page', category, action);
38} 40}
39 41
40setTimeout(() => { 42setTimeout(() => {
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 1fc23ac89..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 = '';
@@ -32,8 +34,12 @@ export default class Recipe {
32 throw Error(`Recipe '${data.name}' requires Id`); 34 throw Error(`Recipe '${data.name}' requires Id`);
33 } 35 }
34 36
35 if (!semver.valid(data.version)) { 37 try {
36 throw Error(`Version ${data.version} of recipe '${data.name}' is not a valid semver version`); 38 if (!semver.valid(data.version)) {
39 throw Error(`Version ${data.version} of recipe '${data.name}' is not a valid semver version`);
40 }
41 } catch (e) {
42 console.warn(e.message);
37 } 43 }
38 44
39 this.id = data.id || this.id; 45 this.id = data.id || this.id;
@@ -69,4 +75,8 @@ export default class Recipe {
69 75
70 return []; 76 return [];
71 } 77 }
78
79 get hasDarkMode() {
80 return fs.pathExistsSync(path.join(this.path, 'darkmode.css'));
81 }
72} 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..1bab8bd68 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,6 +65,8 @@ 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
69 this.recipe = recipe; 72 this.recipe = recipe;
diff --git a/src/models/Settings.js b/src/models/Settings.js
index e39b63087..0e4c59057 100644
--- a/src/models/Settings.js
+++ b/src/models/Settings.js
@@ -2,19 +2,29 @@ import { observable, extendObservable } from 'mobx';
2import { DEFAULT_APP_SETTINGS } from '../config'; 2import { DEFAULT_APP_SETTINGS } from '../config';
3 3
4export default class Settings { 4export default class Settings {
5 @observable autoLaunchInBackground = DEFAULT_APP_SETTINGS.autoLaunchInBackground; 5 @observable app = DEFAULT_APP_SETTINGS
6 @observable runInBackground = DEFAULT_APP_SETTINGS.runInBackground;
7 @observable enableSystemTray = DEFAULT_APP_SETTINGS.enableSystemTray;
8 @observable minimizeToSystemTray = DEFAULT_APP_SETTINGS.minimizeToSystemTray;
9 @observable showDisabledServices = DEFAULT_APP_SETTINGS.showDisabledServices;
10 @observable showMessageBadgeWhenMuted = DEFAULT_APP_SETTINGS.showMessageBadgeWhenMuted;
11 @observable enableSpellchecking = DEFAULT_APP_SETTINGS.enableSpellchecking;
12 @observable locale = DEFAULT_APP_SETTINGS.locale;
13 @observable beta = DEFAULT_APP_SETTINGS.beta;
14 @observable isAppMuted = DEFAULT_APP_SETTINGS.isAppMuted;
15 6
16 constructor(data) { 7 @observable service = {
17 Object.assign(this, data); 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);
18 } 28 }
19 29
20 update(data) { 30 update(data) {
diff --git a/src/models/User.js b/src/models/User.js
index 6fca78f90..3e4aa187d 100644
--- a/src/models/User.js
+++ b/src/models/User.js
@@ -1,4 +1,4 @@
1import { observable, computed } from 'mobx'; 1import { observable } from 'mobx';
2 2
3export default class User { 3export default class User {
4 id = null; 4 id = null;
@@ -15,14 +15,7 @@ export default class User {
15 @observable donor = {}; 15 @observable donor = {};
16 @observable isDonor = false; 16 @observable isDonor = false;
17 @observable isMiner = false; 17 @observable isMiner = false;
18 @observable isSSO = false; 18 @observable locale = false;
19 @observable company = {
20 name: 'Happle Apps',
21 contact: {
22 technical: 'technical@company.com',
23 default: 'default@company.com',
24 },
25 };
26 19
27 constructor(data) { 20 constructor(data) {
28 if (!data.id) { 21 if (!data.id) {
@@ -41,12 +34,6 @@ export default class User {
41 this.isDonor = data.isDonor || this.isDonor; 34 this.isDonor = data.isDonor || this.isDonor;
42 this.isSubscriptionOwner = data.isSubscriptionOwner || this.isSubscriptionOwner; 35 this.isSubscriptionOwner = data.isSubscriptionOwner || this.isSubscriptionOwner;
43 this.isMiner = data.isMiner || this.isMiner; 36 this.isMiner = data.isMiner || this.isMiner;
44 this.isSSO = data.isSSO || this.isSSO; 37 this.locale = data.locale || this.locale;
45 this.company = data.company || this.company;
46 }
47
48 @computed get isEnterprise() {
49 // return false
50 return this.company.name !== undefined;
51 } 38 }
52} 39}
diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js
index 162422017..9ad4cd531 100644
--- a/src/stores/AppStore.js
+++ b/src/stores/AppStore.js
@@ -15,7 +15,11 @@ import { gaEvent } from '../lib/analytics';
15 15
16import { getServiceIdsFromPartitions, removeServicePartitionDirectory } from '../helpers/service-helpers.js'; 16import { getServiceIdsFromPartitions, removeServicePartitionDirectory } from '../helpers/service-helpers.js';
17 17
18const { app } = remote; 18const debug = require('debug')('Franz:AppStore');
19
20const { app, systemPreferences } = remote;
21
22const mainWindow = remote.getCurrentWindow();
19 23
20const defaultLocale = DEFAULT_APP_SETTINGS.locale; 24const defaultLocale = DEFAULT_APP_SETTINGS.locale;
21const autoLauncher = new AutoLaunch({ 25const autoLauncher = new AutoLaunch({
@@ -46,8 +50,12 @@ export default class AppStore extends Store {
46 50
47 @observable isSystemMuteOverridden = false; 51 @observable isSystemMuteOverridden = false;
48 52
53 @observable isSystemDarkModeEnabled = false;
54
49 @observable isClearingAllCache = false; 55 @observable isClearingAllCache = false;
50 56
57 @observable isFullScreen = mainWindow.isFullScreen();
58
51 constructor(...args) { 59 constructor(...args) {
52 super(...args); 60 super(...args);
53 61
@@ -80,6 +88,10 @@ export default class AppStore extends Store {
80 window.addEventListener('online', () => { this.isOnline = true; }); 88 window.addEventListener('online', () => { this.isOnline = true; });
81 window.addEventListener('offline', () => { this.isOnline = false; }); 89 window.addEventListener('offline', () => { this.isOnline = false; });
82 90
91 mainWindow.on('enter-full-screen', () => { this.isFullScreen = true; });
92 mainWindow.on('leave-full-screen', () => { this.isFullScreen = false; });
93
94
83 this.isOnline = navigator.onLine; 95 this.isOnline = navigator.onLine;
84 96
85 // Check if Franz should launch on start 97 // Check if Franz should launch on start
@@ -98,6 +110,10 @@ export default class AppStore extends Store {
98 ipcRenderer.on('autoUpdate', (event, data) => { 110 ipcRenderer.on('autoUpdate', (event, data) => {
99 if (data.available) { 111 if (data.available) {
100 this.updateStatus = this.updateStatusTypes.AVAILABLE; 112 this.updateStatus = this.updateStatusTypes.AVAILABLE;
113
114 if (isMac) {
115 app.dock.bounce();
116 }
101 } 117 }
102 118
103 if (data.available !== undefined && !data.available) { 119 if (data.available !== undefined && !data.available) {
@@ -124,19 +140,6 @@ export default class AppStore extends Store {
124 this.stores.router.push(data.url); 140 this.stores.router.push(data.url);
125 }); 141 });
126 142
127 // Reload all services after a healthy nap
128 // Alternative solution for powerMonitor as the resume event is not fired
129 // More information: https://github.com/electron/electron/issues/1615
130 const TIMEOUT = 5000;
131 let lastTime = (new Date()).getTime();
132 setInterval(() => {
133 const currentTime = (new Date()).getTime();
134 if (currentTime > (lastTime + TIMEOUT + 2000)) {
135 this._reactivateServices();
136 }
137 lastTime = currentTime;
138 }, TIMEOUT);
139
140 // Set active the next service 143 // Set active the next service
141 key( 144 key(
142 '⌘+pagedown, ctrl+pagedown, ⌘+alt+right, ctrl+tab', () => { 145 '⌘+pagedown, ctrl+pagedown, ⌘+alt+right, ctrl+tab', () => {
@@ -158,6 +161,8 @@ export default class AppStore extends Store {
158 this.locale = this._getDefaultLocale(); 161 this.locale = this._getDefaultLocale();
159 162
160 this._healthCheck(); 163 this._healthCheck();
164
165 this.isSystemDarkModeEnabled = systemPreferences.isDarkMode();
161 } 166 }
162 167
163 @computed get cacheSize() { 168 @computed get cacheSize() {
@@ -166,7 +171,7 @@ export default class AppStore extends Store {
166 171
167 // Actions 172 // Actions
168 @action _notify({ title, options, notificationId, serviceId = null }) { 173 @action _notify({ title, options, notificationId, serviceId = null }) {
169 if (this.stores.settings.all.isAppMuted) return; 174 if (this.stores.settings.all.app.isAppMuted) return;
170 175
171 const notification = new window.Notification(title, options); 176 const notification = new window.Notification(title, options);
172 notification.onclick = (e) => { 177 notification.onclick = (e) => {
@@ -179,8 +184,6 @@ export default class AppStore extends Store {
179 184
180 this.actions.service.setActive({ serviceId }); 185 this.actions.service.setActive({ serviceId });
181 186
182 const mainWindow = remote.getCurrentWindow();
183
184 if (isWindows) { 187 if (isWindows) {
185 mainWindow.restore(); 188 mainWindow.restore();
186 } else if (isLinux) { 189 } else if (isLinux) {
@@ -244,17 +247,18 @@ export default class AppStore extends Store {
244 } 247 }
245 248
246 @action _muteApp({ isMuted, overrideSystemMute = true }) { 249 @action _muteApp({ isMuted, overrideSystemMute = true }) {
247 this.isSystemMuteOverriden = overrideSystemMute; 250 this.isSystemMuteOverridden = overrideSystemMute;
248 251
249 this.actions.settings.update({ 252 this.actions.settings.update({
250 settings: { 253 type: 'app',
254 data: {
251 isAppMuted: isMuted, 255 isAppMuted: isMuted,
252 }, 256 },
253 }); 257 });
254 } 258 }
255 259
256 @action _toggleMuteApp() { 260 @action _toggleMuteApp() {
257 this._muteApp({ isMuted: !this.stores.settings.all.isAppMuted }); 261 this._muteApp({ isMuted: !this.stores.settings.all.app.isAppMuted });
258 } 262 }
259 263
260 @action async _clearAllCache() { 264 @action async _clearAllCache() {
@@ -288,13 +292,19 @@ export default class AppStore extends Store {
288 } 292 }
289 293
290 _setLocale() { 294 _setLocale() {
291 const locale = this.stores.settings.all.locale; 295 let locale;
296 if (this.stores.user.isLoggedIn) {
297 locale = this.stores.user.data.locale;
298 }
299
292 300
293 if (locale && Object.prototype.hasOwnProperty.call(locales, locale) && locale !== this.locale) { 301 if (locale && Object.prototype.hasOwnProperty.call(locales, locale) && locale !== this.locale) {
294 this.locale = locale; 302 this.locale = locale;
295 } else if (!locale) { 303 } else if (!locale) {
296 this.locale = this._getDefaultLocale(); 304 this.locale = this._getDefaultLocale();
297 } 305 }
306
307 debug(`Set locale to "${this.locale}"`);
298 } 308 }
299 309
300 _getDefaultLocale() { 310 _getDefaultLocale() {
@@ -336,8 +346,9 @@ export default class AppStore extends Store {
336 // Helpers 346 // Helpers
337 _appStartsCounter() { 347 _appStartsCounter() {
338 this.actions.settings.update({ 348 this.actions.settings.update({
339 settings: { 349 type: 'stats',
340 appStarts: (this.stores.settings.all.appStarts || 0) + 1, 350 data: {
351 appStarts: (this.stores.settings.all.stats.appStarts || 0) + 1,
341 }, 352 },
342 }); 353 });
343 } 354 }
@@ -345,7 +356,8 @@ export default class AppStore extends Store {
345 async _autoStart() { 356 async _autoStart() {
346 this.autoLaunchOnStart = await this._checkAutoStart(); 357 this.autoLaunchOnStart = await this._checkAutoStart();
347 358
348 if (this.stores.settings.all.appStarts === 1) { 359 if (this.stores.settings.all.stats.appStarts === 1) {
360 debug('Set app to launch on start');
349 this.actions.app.launchOnStartup({ 361 this.actions.app.launchOnStartup({
350 enable: true, 362 enable: true,
351 }); 363 });
@@ -356,19 +368,9 @@ export default class AppStore extends Store {
356 return autoLauncher.isEnabled() || false; 368 return autoLauncher.isEnabled() || false;
357 } 369 }
358 370
359 _reactivateServices(retryCount = 0) {
360 if (!this.isOnline) {
361 console.debug('reactivateServices: computer is offline, trying again in 5s, retries:', retryCount);
362 setTimeout(() => this._reactivateServices(retryCount + 1), 5000);
363 } else {
364 console.debug('reactivateServices: reload Franz');
365 window.location.reload();
366 }
367 }
368
369 _systemDND() { 371 _systemDND() {
370 const dnd = getDoNotDisturb(); 372 const dnd = getDoNotDisturb();
371 if (dnd === this.stores.settings.all.isAppMuted || !this.isSystemMuteOverriden) { 373 if (dnd !== this.stores.settings.all.app.isAppMuted && !this.isSystemMuteOverridden) {
372 this.actions.app.muteApp({ 374 this.actions.app.muteApp({
373 isMuted: dnd, 375 isMuted: dnd,
374 overrideSystemMute: false, 376 overrideSystemMute: false,
diff --git a/src/stores/FeaturesStore.js b/src/stores/FeaturesStore.js
index a315d3b46..f788c347d 100644
--- a/src/stores/FeaturesStore.js
+++ b/src/stores/FeaturesStore.js
@@ -4,7 +4,7 @@ import Store from './lib/Store';
4import CachedRequest from './lib/CachedRequest'; 4import CachedRequest from './lib/CachedRequest';
5 5
6export default class FeaturesStore extends Store { 6export default class FeaturesStore extends Store {
7 @observable baseFeaturesRequest = new CachedRequest(this.api.features, 'base'); 7 @observable defaultFeaturesRequest = new CachedRequest(this.api.features, 'default');
8 @observable featuresRequest = new CachedRequest(this.api.features, 'features'); 8 @observable featuresRequest = new CachedRequest(this.api.features, 'features');
9 9
10 setup() { 10 setup() {
@@ -19,7 +19,7 @@ export default class FeaturesStore extends Store {
19 return this.featuresRequest.execute().result || {}; 19 return this.featuresRequest.execute().result || {};
20 } 20 }
21 21
22 return this.baseFeaturesRequest.execute().result || {}; 22 return this.defaultFeaturesRequest.execute().result || {};
23 } 23 }
24 24
25 _debugFeatures() { 25 _debugFeatures() {
@@ -30,7 +30,7 @@ export default class FeaturesStore extends Store {
30 if (this.stores.user.isLoggedIn) { 30 if (this.stores.user.isLoggedIn) {
31 this.featuresRequest.invalidate({ immediately: true }); 31 this.featuresRequest.invalidate({ immediately: true });
32 } else { 32 } else {
33 this.baseFeaturesRequest.invalidate({ immediately: true }); 33 this.defaultFeaturesRequest.invalidate({ immediately: true });
34 } 34 }
35 } 35 }
36} 36}
diff --git a/src/stores/RecipesStore.js b/src/stores/RecipesStore.js
index 67fee1d50..f2480bc8e 100644
--- a/src/stores/RecipesStore.js
+++ b/src/stores/RecipesStore.js
@@ -5,6 +5,8 @@ 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')('Franz:RecipeStore');
9
8export default class RecipesStore extends Store { 10export default class RecipesStore extends Store {
9 @observable allRecipesRequest = new CachedRequest(this.api.recipes, 'all'); 11 @observable allRecipesRequest = new CachedRequest(this.api.recipes, 'all');
10 @observable installRecipeRequest = new Request(this.api.recipes, 'install'); 12 @observable installRecipeRequest = new Request(this.api.recipes, 'install');
@@ -34,7 +36,7 @@ export default class RecipesStore extends Store {
34 return activeRecipe; 36 return activeRecipe;
35 } 37 }
36 38
37 console.warn('Recipe not installed'); 39 debug(`Recipe ${match.id} not installed`);
38 } 40 }
39 41
40 return null; 42 return null;
@@ -54,10 +56,8 @@ export default class RecipesStore extends Store {
54 56
55 // Actions 57 // Actions
56 @action async _install({ recipeId }) { 58 @action async _install({ recipeId }) {
57 // console.log(this.installRecipeRequest._promise);
58 const recipe = await this.installRecipeRequest.execute(recipeId)._promise; 59 const recipe = await this.installRecipeRequest.execute(recipeId)._promise;
59 await this.allRecipesRequest.invalidate({ immediately: true })._promise; 60 await this.allRecipesRequest.invalidate({ immediately: true })._promise;
60 // console.log(this.installRecipeRequest._promise);
61 61
62 return recipe; 62 return recipe;
63 } 63 }
@@ -67,7 +67,7 @@ export default class RecipesStore extends Store {
67 const recipes = {}; 67 const recipes = {};
68 68
69 // Hackfix, reference this.all to fetch services 69 // Hackfix, reference this.all to fetch services
70 console.debug(`Check Recipe updates for ${this.all.map(recipe => recipe.id)}`); 70 debug(`Check Recipe updates for ${this.all.map(recipe => recipe.id)}`);
71 71
72 recipeIds.forEach((r) => { 72 recipeIds.forEach((r) => {
73 const recipe = this.one(r); 73 const recipe = this.one(r);
diff --git a/src/stores/RequestStore.js b/src/stores/RequestStore.js
index 4140ca362..bbfe6f6df 100644
--- a/src/stores/RequestStore.js
+++ b/src/stores/RequestStore.js
@@ -2,6 +2,8 @@ import { action, computed, observable } from 'mobx';
2 2
3import Store from './lib/Store'; 3import Store from './lib/Store';
4 4
5const debug = require('debug')('Franz:RequestsStore');
6
5export default class RequestStore extends Store { 7export default class RequestStore extends Store {
6 @observable userInfoRequest; 8 @observable userInfoRequest;
7 @observable servicesRequest; 9 @observable servicesRequest;
@@ -52,7 +54,7 @@ export default class RequestStore extends Store {
52 } 54 }
53 55
54 this._autoRetry(); 56 this._autoRetry();
55 console.debug(`Retry required requests delayed in ${(delay) / 1000}s`); 57 debug(`Retry required requests delayed in ${(delay) / 1000}s`);
56 }, delay); 58 }, delay);
57 } 59 }
58 } 60 }
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js
index c38d0d9ee..cdb2db142 100644
--- a/src/stores/ServicesStore.js
+++ b/src/stores/ServicesStore.js
@@ -1,8 +1,5 @@
1// import { remote } from 'electron'; 1import { action, reaction, computed, observable } from 'mobx';
2import { action, computed, observable } from 'mobx';
3import { debounce, remove } from 'lodash'; 2import { debounce, remove } from 'lodash';
4// import path from 'path';
5// import fs from 'fs-extra';
6 3
7import Store from './lib/Store'; 4import Store from './lib/Store';
8import Request from './lib/Request'; 5import Request from './lib/Request';
@@ -10,6 +7,8 @@ import CachedRequest from './lib/CachedRequest';
10import { matchRoute } from '../helpers/routing-helpers'; 7import { matchRoute } from '../helpers/routing-helpers';
11import { gaEvent } from '../lib/analytics'; 8import { gaEvent } from '../lib/analytics';
12 9
10const debug = require('debug')('Franz:ServiceStore');
11
13export default class ServicesStore extends Store { 12export default class ServicesStore extends Store {
14 @observable allServicesRequest = new CachedRequest(this.api.services, 'all'); 13 @observable allServicesRequest = new CachedRequest(this.api.services, 'all');
15 @observable createServiceRequest = new Request(this.api.services, 'create'); 14 @observable createServiceRequest = new Request(this.api.services, 'create');
@@ -61,13 +60,20 @@ export default class ServicesStore extends Store {
61 this._mapActiveServiceToServiceModelReaction.bind(this), 60 this._mapActiveServiceToServiceModelReaction.bind(this),
62 this._saveActiveService.bind(this), 61 this._saveActiveService.bind(this),
63 this._logoutReaction.bind(this), 62 this._logoutReaction.bind(this),
64 this._shareSettingsWithServiceProcess.bind(this),
65 ]); 63 ]);
66 64
67 // Just bind this 65 // Just bind this
68 this._initializeServiceRecipeInWebview.bind(this); 66 this._initializeServiceRecipeInWebview.bind(this);
69 } 67 }
70 68
69 setup() {
70 // Single key reactions
71 reaction(
72 () => this.stores.settings.all.app.enableSpellchecking,
73 () => this._shareSettingsWithServiceProcess(),
74 );
75 }
76
71 @computed get all() { 77 @computed get all() {
72 if (this.stores.user.isLoggedIn) { 78 if (this.stores.user.isLoggedIn) {
73 const services = this.allServicesRequest.execute().result; 79 const services = this.allServicesRequest.execute().result;
@@ -84,7 +90,13 @@ export default class ServicesStore extends Store {
84 } 90 }
85 91
86 @computed get allDisplayed() { 92 @computed get allDisplayed() {
87 return this.stores.settings.all.showDisabledServices ? this.all : this.enabled; 93 return this.stores.settings.all.app.showDisabledServices ? this.all : this.enabled;
94 }
95
96 // This is just used to avoid unnecessary rerendering of resource-heavy webviews
97 @computed get allDisplayedUnordered() {
98 const services = this.allServicesRequest.execute().result || [];
99 return this.stores.settings.all.app.showDisabledServices ? services : services.filter(service => service.isEnabled);
88 } 100 }
89 101
90 @computed get filtered() { 102 @computed get filtered() {
@@ -103,7 +115,7 @@ export default class ServicesStore extends Store {
103 return activeService; 115 return activeService;
104 } 116 }
105 117
106 console.warn('Service not available'); 118 debug('Service not available');
107 } 119 }
108 120
109 return null; 121 return null;
@@ -117,10 +129,10 @@ export default class ServicesStore extends Store {
117 const recipesStore = this.stores.recipes; 129 const recipesStore = this.stores.recipes;
118 130
119 if (recipesStore.isInstalled(recipeId)) { 131 if (recipesStore.isInstalled(recipeId)) {
120 console.debug('Recipe is installed'); 132 debug(`Recipe ${recipeId} is installed`);
121 this._redirectToAddServiceRoute(recipeId); 133 this._redirectToAddServiceRoute(recipeId);
122 } else { 134 } else {
123 console.warn('Recipe is not installed'); 135 debug(`Recipe ${recipeId} is not installed`);
124 // We access the RecipeStore action directly 136 // We access the RecipeStore action directly
125 // returns Promise instead of action 137 // returns Promise instead of action
126 await this.stores.recipes._install({ recipeId }); 138 await this.stores.recipes._install({ recipeId });
@@ -202,6 +214,14 @@ export default class ServicesStore extends Store {
202 await request._promise; 214 await request._promise;
203 this.actionStatus = request.result.status; 215 this.actionStatus = request.result.status;
204 216
217 if (service.isEnabled) {
218 this._sendIPCMessage({
219 serviceId,
220 channel: 'service-settings-update',
221 args: newData,
222 });
223 }
224
205 if (redirect) { 225 if (redirect) {
206 this.stores.router.push('/settings/services'); 226 this.stores.router.push('/settings/services');
207 gaEvent('Service', 'update', service.recipe.id); 227 gaEvent('Service', 'update', service.recipe.id);
@@ -326,7 +346,7 @@ export default class ServicesStore extends Store {
326 }); 346 });
327 } else if (channel === 'notification') { 347 } else if (channel === 'notification') {
328 const options = args[0].options; 348 const options = args[0].options;
329 if (service.recipe.hasNotificationSound || service.isMuted || this.stores.settings.all.isAppMuted) { 349 if (service.recipe.hasNotificationSound || service.isMuted || this.stores.settings.all.app.isAppMuted) {
330 Object.assign(options, { 350 Object.assign(options, {
331 silent: true, 351 silent: true,
332 }); 352 });
@@ -426,7 +446,7 @@ export default class ServicesStore extends Store {
426 } 446 }
427 447
428 @action _reorder({ oldIndex, newIndex }) { 448 @action _reorder({ oldIndex, newIndex }) {
429 const showDisabledServices = this.stores.settings.all.showDisabledServices; 449 const showDisabledServices = this.stores.settings.all.app.showDisabledServices;
430 const oldEnabledSortIndex = showDisabledServices ? oldIndex : this.all.indexOf(this.enabled[oldIndex]); 450 const oldEnabledSortIndex = showDisabledServices ? oldIndex : this.all.indexOf(this.enabled[oldIndex]);
431 const newEnabledSortIndex = showDisabledServices ? newIndex : this.all.indexOf(this.enabled[newIndex]); 451 const newEnabledSortIndex = showDisabledServices ? newIndex : this.all.indexOf(this.enabled[newIndex]);
432 452
@@ -487,7 +507,7 @@ export default class ServicesStore extends Store {
487 if (service) { 507 if (service) {
488 service.webview.openDevTools(); 508 service.webview.openDevTools();
489 } else { 509 } else {
490 console.warn('No service is active'); 510 debug('No service is active');
491 } 511 }
492 } 512 }
493 513
@@ -504,7 +524,8 @@ export default class ServicesStore extends Store {
504 524
505 if (service) { 525 if (service) {
506 this.actions.settings.update({ 526 this.actions.settings.update({
507 settings: { 527 type: 'service',
528 data: {
508 activeService: service.id, 529 activeService: service.id,
509 }, 530 },
510 }); 531 });
@@ -512,7 +533,7 @@ export default class ServicesStore extends Store {
512 } 533 }
513 534
514 _mapActiveServiceToServiceModelReaction() { 535 _mapActiveServiceToServiceModelReaction() {
515 const { activeService } = this.stores.settings.all; 536 const { activeService } = this.stores.settings.all.service;
516 if (this.allDisplayed.length) { 537 if (this.allDisplayed.length) {
517 this.allDisplayed.map(service => Object.assign(service, { 538 this.allDisplayed.map(service => Object.assign(service, {
518 isActive: activeService ? activeService === service.id : this.allDisplayed[0].id === service.id, 539 isActive: activeService ? activeService === service.id : this.allDisplayed[0].id === service.id,
@@ -521,7 +542,7 @@ export default class ServicesStore extends Store {
521 } 542 }
522 543
523 _getUnreadMessageCountReaction() { 544 _getUnreadMessageCountReaction() {
524 const showMessageBadgeWhenMuted = this.stores.settings.all.showMessageBadgeWhenMuted; 545 const showMessageBadgeWhenMuted = this.stores.settings.all.app.showMessageBadgeWhenMuted;
525 const showMessageBadgesEvenWhenMuted = this.stores.ui.showMessageBadgesEvenWhenMuted; 546 const showMessageBadgesEvenWhenMuted = this.stores.ui.showMessageBadgesEvenWhenMuted;
526 547
527 const unreadDirectMessageCount = this.allDisplayed 548 const unreadDirectMessageCount = this.allDisplayed
@@ -545,7 +566,10 @@ export default class ServicesStore extends Store {
545 566
546 _logoutReaction() { 567 _logoutReaction() {
547 if (!this.stores.user.isLoggedIn) { 568 if (!this.stores.user.isLoggedIn) {
548 this.actions.settings.remove({ key: 'activeService' }); 569 this.actions.settings.remove({
570 type: 'service',
571 key: 'activeService',
572 });
549 this.allServicesRequest.invalidate().reset(); 573 this.allServicesRequest.invalidate().reset();
550 } 574 }
551 } 575 }
@@ -553,7 +577,7 @@ export default class ServicesStore extends Store {
553 _shareSettingsWithServiceProcess() { 577 _shareSettingsWithServiceProcess() {
554 this.actions.service.sendIPCMessageToAllServices({ 578 this.actions.service.sendIPCMessageToAllServices({
555 channel: 'settings-update', 579 channel: 'settings-update',
556 args: this.stores.settings.all, 580 args: this.stores.settings.all.app,
557 }); 581 });
558 } 582 }
559 583
diff --git a/src/stores/SettingsStore.js b/src/stores/SettingsStore.js
index b7d803398..f1b067115 100644
--- a/src/stores/SettingsStore.js
+++ b/src/stores/SettingsStore.js
@@ -1,12 +1,19 @@
1import { ipcRenderer } from 'electron'; 1import { remote } from 'electron';
2import { action, computed } from 'mobx'; 2import { action, computed, observable } from 'mobx';
3import localStorage from 'mobx-localstorage'; 3import localStorage from 'mobx-localstorage';
4 4
5import Store from './lib/Store'; 5import Store from './lib/Store';
6import { gaEvent } from '../lib/analytics';
7import SettingsModel from '../models/Settings'; 6import SettingsModel from '../models/Settings';
7import Request from './lib/Request';
8import CachedRequest from './lib/CachedRequest';
9
10const { systemPreferences } = remote;
11const debug = require('debug')('Franz:SettingsStore');
8 12
9export default class SettingsStore extends Store { 13export default class SettingsStore extends Store {
14 @observable appSettingsRequest = new CachedRequest(this.api.local, 'getAppSettings');
15 @observable updateAppSettingsRequest = new Request(this.api.local, 'updateAppSettings');
16
10 constructor(...args) { 17 constructor(...args) {
11 super(...args); 18 super(...args);
12 19
@@ -15,36 +22,110 @@ export default class SettingsStore extends Store {
15 this.actions.settings.remove.listen(this._remove.bind(this)); 22 this.actions.settings.remove.listen(this._remove.bind(this));
16 } 23 }
17 24
18 setup() { 25 async setup() {
19 this._shareSettingsWithMainProcess(); 26 // 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
27 await this.appSettingsRequest._promise;
28 await this._migrate();
20 } 29 }
21 30
22 @computed get all() { 31 @computed get all() {
23 return new SettingsModel(localStorage.getItem('app') || {}); 32 return new SettingsModel({
33 app: this.appSettingsRequest.execute().result || {},
34 service: localStorage.getItem('service') || {},
35 group: localStorage.getItem('group') || {},
36 stats: localStorage.getItem('stats') || {},
37 migration: localStorage.getItem('migration') || {},
38 });
24 } 39 }
25 40
26 @action async _update({ settings }) { 41 @action async _update({ type, data }) {
27 const appSettings = this.all; 42 const appSettings = this.all;
28 localStorage.setItem('app', Object.assign(appSettings, settings)); 43 if (type !== 'app') {
29 44 debug('Update settings', type, data, this.all);
30 // We need a little hack to wait until everything is patched 45 localStorage.setItem(type, Object.assign(appSettings[type], data));
31 setTimeout(() => this._shareSettingsWithMainProcess(), 0); 46 } else {
47 debug('Update settings on file system', type, data);
48 this.updateAppSettingsRequest.execute(data);
32 49
33 gaEvent('Settings', 'update'); 50 this.appSettingsRequest.patch((result) => {
51 if (!result) return;
52 Object.assign(result, data);
53 });
54 }
34 } 55 }
35 56
36 @action async _remove({ key }) { 57 @action async _remove({ type, key }) {
37 const appSettings = this.all; 58 if (type === 'app') return; // app keys can't be deleted
59
60 const appSettings = this.all[type];
38 if (Object.hasOwnProperty.call(appSettings, key)) { 61 if (Object.hasOwnProperty.call(appSettings, key)) {
39 delete appSettings[key]; 62 delete appSettings[key];
40 localStorage.setItem('app', appSettings);
41 }
42 63
43 this._shareSettingsWithMainProcess(); 64 this.actions.settings.update({
65 type,
66 data: appSettings,
67 });
68 }
44 } 69 }
45 70
46 // Reactions 71 // Helper
47 _shareSettingsWithMainProcess() { 72 async _migrate() {
48 ipcRenderer.send('settings', this.all); 73 const legacySettings = localStorage.getItem('app') || {};
74
75 if (!this.all.migration['5.0.0-beta.17-settings']) {
76 this.actions.settings.update({
77 type: 'app',
78 data: {
79 autoLaunchInBackground: legacySettings.autoLaunchInBackground,
80 runInBackground: legacySettings.runInBackground,
81 enableSystemTray: legacySettings.enableSystemTray,
82 minimizeToSystemTray: legacySettings.minimizeToSystemTray,
83 isAppMuted: legacySettings.isAppMuted,
84 enableGPUAcceleration: legacySettings.enableGPUAcceleration,
85 showMessageBadgeWhenMuted: legacySettings.showMessageBadgeWhenMuted,
86 showDisabledServices: legacySettings.showDisabledServices,
87 enableSpellchecking: legacySettings.enableSpellchecking,
88 },
89 });
90
91 this.actions.settings.update({
92 type: 'service',
93 data: {
94 activeService: legacySettings.activeService,
95 },
96 });
97
98 this.actions.settings.update({
99 type: 'migration',
100 data: {
101 '5.0.0-beta.17-settings': true,
102 },
103 });
104
105 localStorage.removeItem('app');
106
107 debug('Migrated settings to split stores');
108 }
109
110 // Enable dark mode once
111 if (!this.all.migration['5.0.0-beta.19-settings']) {
112 this.actions.settings.update({
113 type: 'app',
114 data: {
115 darkMode: systemPreferences.isDarkMode(),
116 },
117 });
118
119 this.actions.settings.update({
120 type: 'migration',
121 data: {
122 '5.0.0-beta.19-settings': true,
123 },
124 });
125
126 localStorage.removeItem('app');
127
128 debug('Set up dark mode');
129 }
49 } 130 }
50} 131}
diff --git a/src/stores/UIStore.js b/src/stores/UIStore.js
index 5e9cc9ba7..bee6c8bcf 100644
--- a/src/stores/UIStore.js
+++ b/src/stores/UIStore.js
@@ -17,7 +17,7 @@ export default class UIStore extends Store {
17 @computed get showMessageBadgesEvenWhenMuted() { 17 @computed get showMessageBadgesEvenWhenMuted() {
18 const settings = this.stores.settings.all; 18 const settings = this.stores.settings.all;
19 19
20 return (settings.isAppMuted && settings.showMessageBadgeWhenMuted) || !settings.isAppMuted; 20 return (settings.app.isAppMuted && settings.app.showMessageBadgeWhenMuted) || !settings.isAppMuted;
21 } 21 }
22 22
23 // Actions 23 // Actions
@@ -26,7 +26,7 @@ export default class UIStore extends Store {
26 this.stores.router.push(settingsPath); 26 this.stores.router.push(settingsPath);
27 } 27 }
28 28
29 @action _closeSettings(): void { 29 @action _closeSettings() {
30 this.stores.router.push('/'); 30 this.stores.router.push('/');
31 } 31 }
32 32
diff --git a/src/stores/UserStore.js b/src/stores/UserStore.js
index 7dbbd955b..9d8ac5657 100644
--- a/src/stores/UserStore.js
+++ b/src/stores/UserStore.js
@@ -9,6 +9,8 @@ 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')('Franz:UserStore');
13
12// TODO: split stores into UserStore and AuthStore 14// TODO: split stores into UserStore and AuthStore
13export default class UserStore extends Store { 15export default class UserStore extends Store {
14 BASE_ROUTE = '/auth'; 16 BASE_ROUTE = '/auth';
@@ -69,6 +71,11 @@ export default class UserStore extends Store {
69 ]); 71 ]);
70 } 72 }
71 73
74 setup() {
75 // Data migration
76 this._migrateUserLocale();
77 }
78
72 // Routes 79 // Routes
73 get loginRoute() { 80 get loginRoute() {
74 return this.LOGIN_ROUTE; 81 return this.LOGIN_ROUTE;
@@ -256,8 +263,10 @@ export default class UserStore extends Store {
256 263
257 // We need to set the beta flag for the SettingsStore 264 // We need to set the beta flag for the SettingsStore
258 this.actions.settings.update({ 265 this.actions.settings.update({
259 settings: { 266 type: 'app',
267 data: {
260 beta: data.beta, 268 beta: data.beta,
269 locale: data.locale,
261 }, 270 },
262 }); 271 });
263 } 272 }
@@ -292,4 +301,17 @@ export default class UserStore extends Store {
292 this.id = null; 301 this.id = null;
293 } 302 }
294 } 303 }
304
305 async _migrateUserLocale() {
306 await this.getUserInfoRequest._promise;
307
308 if (!this.data.locale) {
309 debug('Migrate "locale" to user data');
310 this.actions.user.update({
311 userData: {
312 locale: this.stores.app.locale,
313 },
314 });
315 }
316 }
295} 317}
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 18a653118..f9fac039a 100644
--- a/src/styles/badge.scss
+++ b/src/styles/badge.scss
@@ -1,11 +1,24 @@
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 {
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..4411a0e81 100644
--- a/src/styles/colors.scss
+++ b/src/styles/colors.scss
@@ -1,22 +1,38 @@
1$theme-brand-primary: #3498db; 1$theme-brand-primary: #3498db;
2$theme-brand-success: #5cb85c; 2$theme-brand-success: #5cb85c;
3$theme-brand-info: #5bc0de; 3$theme-brand-info: #5bc0de;
4$theme-brand-warning: #FF9F00; 4$theme-brand-warning: #FF9F00;
5$theme-brand-danger: #d9534f; 5$theme-brand-danger: #d9534f;
6 6
7$theme-gray-dark: #373a3c; 7$theme-gray-dark: #373a3c;
8$theme-gray: #55595c; 8$theme-gray: #55595c;
9$theme-gray-light: #818a91; 9$theme-gray-light: #818a91;
10$theme-gray-lighter: #eceeef; 10$theme-gray-lighter: #eceeef;
11$theme-gray-lightest: #f7f7f9; 11$theme-gray-lightest: #f7f7f9;
12 12
13$theme-border-radius: 6px; 13$theme-border-radius: 6px;
14$theme-border-radius-small: 3px; 14$theme-border-radius-small: 3px;
15 15
16$theme-sidebar-width: 68px; 16$theme-sidebar-width: 68px;
17 17
18$theme-text-color: $theme-gray-dark; 18$theme-text-color: $theme-gray-dark;
19 19
20$theme-transition-time: 0.5s; 20$theme-transition-time: .5s;
21 21
22$theme-inset-shadow: inset 0 2px 5px rgba(0,0,0,0.03); 22$theme-inset-shadow: inset 0 2px 5px rgba(0, 0, 0, .03);
23
24// Dark Theme
25$dark-theme-black: #1A1A1A;
26
27$dark-theme-gray-darkest: #1E1E1E;
28$dark-theme-gray-darker: #2D2F31;
29$dark-theme-gray-dark: #383A3B;
30
31$dark-theme-gray: #47494B;
32
33$dark-theme-gray-light: #515355;
34$dark-theme-gray-lighter: #8a8b8b;
35$dark-theme-gray-lightest: #FFF;
36
37$dark-theme-gray-smoke: #CED0D1;
38$dark-theme-text-color: #FFF;
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 afdd7dec7..ebf468cf0 100644
--- a/src/styles/layout.scss
+++ b/src/styles/layout.scss
@@ -1,12 +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: row; 31 flex-direction: column;
32
33 .app__content { display: flex; }
10 34
11 .app__service { 35 .app__service {
12 display: flex; 36 display: flex;
@@ -15,130 +39,100 @@ html {
15 } 39 }
16} 40}
17 41
42.electron-app-title-bar { z-index: 99999999; }
43
18.window-draggable { 44.window-draggable {
19 position: absolute;
20 width: 100%;
21 top: 0px;
22 left: 0px;
23 height: 35px; 45 height: 35px;
46 left: 0;
24 pointer-events: none; 47 pointer-events: none;
25 -webkit-app-region: drag; 48 position: absolute;
49 top: 0;
50 width: 100%;
26 z-index: 9999; 51 z-index: 9999;
52 -webkit-app-region: drag;
27} 53}
28 54
29.darwin { 55.darwin .sidebar { padding-top: 23px; }
30 .sidebar {
31 padding-top: 23px;
32 }
33}
34 56
35.sidebar { 57.sidebar {
36 display: flex;
37 flex-direction: column;
38 align-items: center; 58 align-items: center;
39 width: $theme-sidebar-width;
40 background: $theme-gray-lightest; 59 background: $theme-gray-lightest;
41 box-shadow: 1px 0 10px rgba(0,0,0,0.08); 60 box-shadow: 1px 0 10px rgba(0, 0, 0, .08);
42 z-index: 200;
43 text-align: center;
44 color: $theme-text-color; 61 color: $theme-text-color;
62 display: flex;
63 flex-direction: column;
45 padding-bottom: 10px; 64 padding-bottom: 10px;
65 text-align: center;
66 width: $theme-sidebar-width;
67 z-index: 200;
46 68
47 .sidebar__add-service { 69 .sidebar__add-service {
48 width: 32px; 70 color: $theme-gray-light;
49 height: 32px;
50 background: $theme-gray-lighter; 71 background: $theme-gray-lighter;
51 border-radius: $theme-border-radius-small; 72 border-radius: $theme-border-radius-small;
73 height: 32px;
52 margin: 10px auto; 74 margin: 10px auto;
53 color: $theme-gray-light; 75 width: 32px;
54 } 76 }
55 77
56 .sidebar__button { 78 .sidebar__button {
57 width: $theme-sidebar-width; 79 color: $theme-gray-light;
58 padding: 7px 0;
59 font-size: 24px; 80 font-size: 24px;
81 padding: 7px 0;
60 position: relative; 82 position: relative;
61 color: $theme-gray-light; 83 width: $theme-sidebar-width;
62
63 &:hover {
64 color: darken($theme-gray-light, 10%);
65 }
66
67 &:active {
68 color: lighten($theme-gray-light, 10%);
69 }
70
71 &.is-muted {
72 color: $theme-brand-primary;
73 }
74 84
75 &--new-service { 85 &:hover,
76 padding-bottom: 6px; 86 &:active { color: lighten($theme-gray-light, 10%); }
77 } 87 &.is-muted { color: $theme-brand-primary; }
88 &--new-service { padding-bottom: 6px; }
78 } 89 }
79 90
80 & > div { 91 & > div {
81 display: flex; 92 display: flex;
82 overflow-y: scroll; 93 overflow-y: scroll;
83 94
84 &::-webkit-scrollbar { 95 &::-webkit-scrollbar { display: none; }
85 display: none;
86 }
87 } 96 }
88} 97}
89 98
90.grid { 99.grid .grid__row {
91 .grid__row { 100 display: flex;
92 display: flex; 101 flex-direction: row;
93 flex-direction: row;
94
95 &>* {
96 margin-right: 20px;
97 }
98 102
99 & :last-child { 103 & > * { margin-right: 20px; }
100 margin-right: 0; 104 & :last-child { margin-right: 0; }
101 }
102 }
103} 105}
104 106
105.app-loader { 107.app-loader {
108 align-items: center;
106 display: flex; 109 display: flex;
107 justify-content: center; 110 justify-content: center;
108 align-items: center;
109 111
110 .app-loader__title { 112 .app-loader__title {
111 color: #FFF; 113 color: #FFF;
112 font-size: 40px; 114 font-size: 40px;
113 } 115 }
114 116
115 &>span { 117 & > span { height: auto; }
116 height: auto;
117 }
118}
119
120.dev-warning {
121 display: none;
122} 118}
123 119
124.isDevMode { 120.dev-warning { display: none; }
125 .dev-warning { 121
126 display: block; 122.isDevMode .dev-warning {
127 position: fixed; 123 border-radius: 3px;
128 background: $theme-brand-warning; 124 background: $theme-brand-warning;
129 width: auto; 125 color: #FFF;
130 height: auto; 126 display: block;
131 top: 5px; 127 font-size: 10px;
132 right: 5px; 128 height: auto;
133 padding: 4px; 129 padding: 4px;
134 font-size: 10px; 130 position: fixed;
135 color: #FFF; 131 right: 5px;
136 z-index: 999999999; 132 top: 5px;
137 border-radius: 3px; 133 transition: opacity .5s ease;
138 transition: opacity 0.5s ease; 134 width: auto;
139 135 z-index: 999999999;
140 &:hover { 136
141 opacity: 0; 137 &:hover { opacity: 0; }
142 }
143 }
144} 138}
diff --git a/src/styles/main.scss b/src/styles/main.scss
index 446bdca14..784a04d3d 100644
--- a/src/styles/main.scss
+++ b/src/styles/main.scss
@@ -4,6 +4,7 @@ $mdi-font-path: '../node_modules/mdi/fonts';
4} 4}
5 5
6@import './node_modules/mdi/scss/materialdesignicons.scss'; 6@import './node_modules/mdi/scss/materialdesignicons.scss';
7@import './node_modules/electron-react-titlebar/assets/style';
7 8
8// modules 9// modules
9@import './reset.scss'; 10@import './reset.scss';
@@ -28,6 +29,7 @@ $mdi-font-path: '../node_modules/mdi/fonts';
28@import './subscription-popup.scss'; 29@import './subscription-popup.scss';
29@import './content-tabs.scss'; 30@import './content-tabs.scss';
30@import './invite.scss'; 31@import './invite.scss';
32@import './title-bar.scss';
31 33
32// form 34// form
33@import './input.scss'; 35@import './input.scss';
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..5e7e35fd8 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,45 @@
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;
172 }
173 } 252 }
174 } 253 }
175 254
176 .settings__message { 255 .settings__message {
256 border-top: 1px solid $theme-gray-lighter;
257 color: $theme-gray-light;
177 display: flex; 258 display: flex;
178 margin-top: 40px; 259 margin-top: 40px;
179 padding-top: 15px; 260 padding-top: 15px;
180 border-top: 1px solid $theme-gray-lighter;
181 color: $theme-gray-light;
182 261
183 .mdi { 262 .mdi {
184 color: $theme-gray-light; 263 color: $theme-gray-light;
@@ -188,69 +267,53 @@
188 } 267 }
189 268
190 .settings__help { 269 .settings__help {
191 margin: -10px 0 20px 55px;;
192 font-size: 12px;
193 color: $theme-gray-light; 270 color: $theme-gray-light;
271 font-size: 12px;
272 margin: -10px 0 20px 55px;;
194 } 273 }
195 274
196 .settings__controls { 275 .settings__controls {
276 background: $theme-gray-lighter;
197 display: flex; 277 display: flex;
278 height: auto;
198 justify-content: space-between; 279 justify-content: space-between;
199 padding: 10px 20px; 280 padding: 10px 20px;
200 height: auto;
201 background: $theme-gray-lighter;
202 281
203 .franz-form__button { 282 .franz-form__button {
204 &[type='submit'] { 283 &[type='submit'] { margin-left: auto; }
205 margin-left: auto; 284 &.franz-form__button--secondary { background: $theme-gray-light; }
206 }
207
208 &.franz-form__button--secondary {
209 background: $theme-gray-light;
210 }
211 } 285 }
212 } 286 }
213 287
214 .settings__delete-button { 288 .settings__delete-button { right: 0; }
215 right: 0;
216 }
217 289
218 .settings__empty-state { 290 .settings__empty-state {
219 width: 100%; 291 align-items: center;
292 align-self: center;
220 height: auto; 293 height: auto;
221 min-height: 70%; 294 min-height: 70%;
222 text-align: center; 295 text-align: center;
223 align-self: center; 296 width: 100%;
224 // margin-top: -20px;
225 align-items: center;
226 297
227 a.button { 298 a.button { margin-top: 40px; }
228 margin-top: 40px;
229 }
230 } 299 }
231 300
232 .account { 301 .account {
233 height: auto; 302 height: auto;
234 // padding: 20px;
235 303
236 .account__box { 304 .account__box {
305 align-items: center;
237 background: $theme-gray-lightest; 306 background: $theme-gray-lightest;
238 border-radius: $theme-border-radius; 307 border-radius: $theme-border-radius;
239 padding: 20px;
240 margin-bottom: 40px; 308 margin-bottom: 40px;
241 align-items: center; 309 padding: 20px;
242
243 &.account__box--flex {
244 display: flex;
245 }
246 310
247 &.account__box--last { 311 &.account__box--flex { display: flex; }
248 margin-bottom: 0; 312 &.account__box--last { margin-bottom: 0; }
249 }
250 313
251 .auth__button { 314 .auth__button {
252 width: 100%;
253 margin-top: 10px; 315 margin-top: 10px;
316 width: 100%;
254 } 317 }
255 } 318 }
256 319
@@ -258,57 +321,40 @@
258 margin-right: 20px; 321 margin-right: 20px;
259 position: relative; 322 position: relative;
260 323
261 .emoji img { 324 .emoji img { width: 30px; }
262 width: 30px;
263 }
264 } 325 }
265 326
266 .account__avatar-premium { 327 .account__avatar-premium {
328 font-size: 26px;
267 position: absolute; 329 position: absolute;
268 top: 2px;
269 right: 2px; 330 right: 2px;
270 font-size: 26px; 331 top: 2px;
271 } 332 }
272 333
273 .account__info { 334 .account__info {
274 flex: 1; 335 flex: 1;
275 336
276 h2 { 337 h2 { margin-bottom: 5px; }
277 margin-bottom: 5px; 338 .badge { margin-top: 5px; }
278 }
279
280 .badge {
281 margin-top: 5px;
282 }
283 } 339 }
284 340
285 .account__subscription { 341 .account__subscription {
286 display: flex;
287 align-items: center; 342 align-items: center;
343 display: flex;
288 344
289 .badge { 345 .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 } 346 }
301 347
302 div { 348 .account__subscription-button { margin-left: auto; }
303 height: auto; 349 .franz-form__button { white-space: nowrap; }
304 } 350 div { height: auto; }
305 351
306 .invoices { 352 .invoices {
307 width: 100%; 353 width: 100%;
308 354
309 td { 355 td {
310 padding: 15px 0;
311 border-bottom: 1px solid $theme-gray-lighter; 356 border-bottom: 1px solid $theme-gray-lighter;
357 padding: 15px 0;
312 } 358 }
313 359
314 tr:last-of-type td { 360 tr:last-of-type td {
@@ -319,9 +365,7 @@
319 .invoices__action { 365 .invoices__action {
320 text-align: right; 366 text-align: right;
321 367
322 button { 368 button { color: $theme-brand-primary; }
323 color: $theme-brand-primary;
324 }
325 } 369 }
326 } 370 }
327 } 371 }
@@ -331,15 +375,13 @@
331 font-size: 40px; 375 font-size: 40px;
332 margin-bottom: 20px; 376 margin-bottom: 20px;
333 377
334 img { 378 img { width: 40px; }
335 width: 40px;
336 }
337 } 379 }
338 380
339 .premium-info { 381 .premium-info {
340 background: lighten($theme-brand-primary, 40%); 382 background: lighten($theme-brand-primary, 40%);
341 padding: 20px;
342 border-radius: $theme-border-radius; 383 border-radius: $theme-border-radius;
384 padding: 20px;
343 } 385 }
344 386
345 .content-tabs .premium-info { 387 .content-tabs .premium-info {
@@ -348,35 +390,33 @@
348 } 390 }
349 391
350 .legal { 392 .legal {
351 text-align: center;
352 margin-top: 20px;
353 color: $theme-gray-light; 393 color: $theme-gray-light;
394 margin-top: 20px;
395 text-align: center;
354 } 396 }
355} 397}
356 398
357.settings-navigation { 399.settings-navigation {
358 width: 200px;
359 height: auto;
360 background: $theme-gray-lightest;
361 display: flex; 400 display: flex;
401 background: $theme-gray-lightest;
362 flex-direction: column; 402 flex-direction: column;
403 height: auto;
404 width: 200px;
363 405
364 .settings-navigation__link { 406 .settings-navigation__link {
365 display: flex;
366 align-items: center; 407 align-items: center;
367 height: 50px;
368 flex-shrink: 0;
369 text-decoration: none;
370 color: $theme-text-color; 408 color: $theme-text-color;
409 display: flex;
410 flex-shrink: 0;
411 height: 50px;
371 padding: 0 20px; 412 padding: 0 20px;
413 text-decoration: none;
372 transition: background $theme-transition-time, color $theme-transition-time; 414 transition: background $theme-transition-time, color $theme-transition-time;
373 415
374 &:hover { 416 &:hover {
375 background: darken($theme-gray-lightest, 5%); 417 background: darken($theme-gray-lightest, 5%);
376 418
377 .badge { 419 .badge { background: #FFF; }
378 background: #FFF;
379 }
380 } 420 }
381 421
382 &.is-active { 422 &.is-active {
@@ -390,22 +430,20 @@
390 } 430 }
391 } 431 }
392 432
393 .settings-navigation__expander { 433 .settings-navigation__expander { flex: 1; }
394 flex: 1;
395 }
396 434
397 .badge { 435 .badge {
398 transition: background $theme-transition-time, color $theme-transition-time;
399 display: initial; 436 display: initial;
400 margin-left: 5px; 437 margin-left: 5px;
438 transition: background $theme-transition-time, color $theme-transition-time;
401 } 439 }
402 440
403 .settings-navigation__action-badge { 441 .settings-navigation__action-badge {
404 display: inline-block;
405 width: 7px;
406 height: 7px;
407 background: $theme-brand-danger; 442 background: $theme-brand-danger;
408 border-radius: 100%; 443 border-radius: 100%;
444 display: inline-block;
445 height: 7px;
409 margin-left: 5px; 446 margin-left: 5px;
447 width: 7px;
410 } 448 }
411} 449}
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
new file mode 100644
index 000000000..885eb94c4
--- /dev/null
+++ b/src/styles/title-bar.scss
@@ -0,0 +1,80 @@
1@import './config.scss';
2
3.theme__dark #electron-app-title-bar {
4 background: $dark-theme-gray-darker;
5
6 .toolbar-dropdown {
7 &.open > .toolbar-button > button {
8 background: $dark-theme-gray-light;
9 color: $dark-theme-gray-lightest;
10 }
11
12 &:not(.open) {
13 .menu-item .menu-label { opacity: 1; }
14 > .toolbar-button > button:hover {
15 background: $dark-theme-gray-darkest;
16 }
17 }
18 }
19
20 #app-menu-bar #foldout-container .foldout {
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;
34 }
35 }
36 }
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
61 .list-item {
62 .menu-item {
63 border-radius: $theme-border-radius-small;
64 margin: 4px;
65 }
66
67 &.selected,
68 &.selected:focus {
69 background: none;
70
71 .menu-item { background: $theme-brand-primary; }
72 }
73 }
74
75 .menu-pane {
76 border-bottom-left-radius: $theme-border-radius-small;
77 border-bottom-right-radius: $theme-border-radius-small;
78 box-shadow: 0 0 10px rgba(black, .5);
79 }
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.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/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 d9e021e6d..e6fdc4efd 100644
--- a/src/webview/plugin.js
+++ b/src/webview/plugin.js
@@ -6,8 +6,14 @@ import { isDevMode } from '../environment';
6import RecipeWebview from './lib/RecipeWebview'; 6import RecipeWebview from './lib/RecipeWebview';
7 7
8import Spellchecker from './spellchecker'; 8import Spellchecker from './spellchecker';
9import { injectDarkModeStyle, isDarkModeStyleInjected, removeDarkModeStyle } from './darkmode';
9import './notifications'; 10import './notifications';
10 11
12const debug = require('debug')('Franz:Plugin');
13
14window.franzSettings = {};
15let serviceData;
16
11ipcRenderer.on('initializeRecipe', (e, data) => { 17ipcRenderer.on('initializeRecipe', (e, data) => {
12 const modulePath = path.join(data.recipe.path, 'webview.js'); 18 const modulePath = path.join(data.recipe.path, 'webview.js');
13 // Delete module from cache 19 // Delete module from cache
@@ -15,8 +21,16 @@ ipcRenderer.on('initializeRecipe', (e, data) => {
15 try { 21 try {
16 // eslint-disable-next-line 22 // eslint-disable-next-line
17 require(modulePath)(new RecipeWebview(), data); 23 require(modulePath)(new RecipeWebview(), data);
24 debug('Initialize Recipe', data);
25
26 serviceData = data;
27
28 if (data.isDarkModeEnabled) {
29 injectDarkModeStyle(data.recipe.path);
30 debug('Add dark theme styles');
31 }
18 } catch (err) { 32 } catch (err) {
19 console.error(err); 33 debug('Recipe initialization failed', err);
20 } 34 }
21}); 35});
22 36
@@ -30,11 +44,27 @@ new ContextMenuListener((info) => { // eslint-disable-line
30}); 44});
31 45
32ipcRenderer.on('settings-update', (e, data) => { 46ipcRenderer.on('settings-update', (e, data) => {
33 console.log('settings-update', data); 47 debug('Settings update received', data);
48
34 spellchecker.toggleSpellchecker(data.enableSpellchecking); 49 spellchecker.toggleSpellchecker(data.enableSpellchecking);
50 window.franzSettings = data;
51});
52
53ipcRenderer.on('service-settings-update', (e, data) => {
54 debug('Service settings update received', data);
55
56 if (data.isDarkModeEnabled && !isDarkModeStyleInjected()) {
57 injectDarkModeStyle(serviceData.recipe.path);
58
59 debug('Enable service dark mode');
60 } else if (!data.isDarkModeEnabled && isDarkModeStyleInjected()) {
61 removeDarkModeStyle();
62
63 debug('Disable service dark mode');
64 }
35}); 65});
36 66
37// initSpellche 67// initSpellchecker
38 68
39document.addEventListener('DOMContentLoaded', () => { 69document.addEventListener('DOMContentLoaded', () => {
40 ipcRenderer.sendToHost('hello'); 70 ipcRenderer.sendToHost('hello');
@@ -44,7 +74,7 @@ document.addEventListener('DOMContentLoaded', () => {
44const originalWindowOpen = window.open; 74const originalWindowOpen = window.open;
45 75
46window.open = (url, frameName, features) => { 76window.open = (url, frameName, features) => {
47 // We need to differentiate if the link should be opened in a popup or in the systems default browser 77 // We need to differentiate if the link should be opened in a popup or in the systems default browser
48 if (!frameName && !features) { 78 if (!frameName && !features) {
49 return ipcRenderer.sendToHost('new-window', url); 79 return ipcRenderer.sendToHost('new-window', url);
50 } 80 }
diff --git a/yarn.lock b/yarn.lock
deleted file mode 100644
index c788006b7..000000000
--- a/yarn.lock
+++ /dev/null
@@ -1,6517 +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@^7.0.18":
49 version "7.0.43"
50 resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c"
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.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@1.0.4:
1647 version "1.0.4"
1648 resolved "https://registry.yarnpkg.com/debug/-/debug-1.0.4.tgz#5b9c256bd54b6ec02283176fa8a0ede6d154cbf8"
1649 dependencies:
1650 ms "0.6.2"
1651
1652debug@2.2.0:
1653 version "2.2.0"
1654 resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
1655 dependencies:
1656 ms "0.7.1"
1657
1658debug@2.3.3:
1659 version "2.3.3"
1660 resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c"
1661 dependencies:
1662 ms "0.7.2"
1663
1664debug@^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:
1665 version "2.6.8"
1666 resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
1667 dependencies:
1668 ms "2.0.0"
1669
1670debug@^3.0.1:
1671 version "3.0.1"
1672 resolved "https://registry.yarnpkg.com/debug/-/debug-3.0.1.tgz#0564c612b521dc92d9f2988f0549e34f9c98db64"
1673 dependencies:
1674 ms "2.0.0"
1675
1676decamelize@^1.1.1, decamelize@^1.1.2:
1677 version "1.2.0"
1678 resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
1679
1680decompress-zip@0.3.0:
1681 version "0.3.0"
1682 resolved "https://registry.yarnpkg.com/decompress-zip/-/decompress-zip-0.3.0.tgz#ae3bcb7e34c65879adfe77e19c30f86602b4bdb0"
1683 dependencies:
1684 binary "^0.3.0"
1685 graceful-fs "^4.1.3"
1686 mkpath "^0.1.0"
1687 nopt "^3.0.1"
1688 q "^1.1.2"
1689 readable-stream "^1.1.8"
1690 touch "0.0.3"
1691
1692deep-equal@^1.0.1:
1693 version "1.0.1"
1694 resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
1695
1696deep-extend@~0.4.0:
1697 version "0.4.2"
1698 resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
1699
1700deep-is@~0.1.3:
1701 version "0.1.3"
1702 resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
1703
1704default-resolution@^2.0.0:
1705 version "2.0.0"
1706 resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684"
1707
1708define-properties@^1.1.2:
1709 version "1.1.2"
1710 resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
1711 dependencies:
1712 foreach "^2.0.5"
1713 object-keys "^1.0.8"
1714
1715del@^2.0.2, del@^2.2.2:
1716 version "2.2.2"
1717 resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
1718 dependencies:
1719 globby "^5.0.0"
1720 is-path-cwd "^1.0.0"
1721 is-path-in-cwd "^1.0.0"
1722 object-assign "^4.0.1"
1723 pify "^2.0.0"
1724 pinkie-promise "^2.0.0"
1725 rimraf "^2.2.8"
1726
1727delayed-stream@~1.0.0:
1728 version "1.0.0"
1729 resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
1730
1731delegates@^1.0.0:
1732 version "1.0.0"
1733 resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
1734
1735depd@0.4.4:
1736 version "0.4.4"
1737 resolved "https://registry.yarnpkg.com/depd/-/depd-0.4.4.tgz#07091fae75f97828d89b4a02a2d4778f0e7c0662"
1738
1739destroy@1.0.3:
1740 version "1.0.3"
1741 resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.3.tgz#b433b4724e71fd8551d9885174851c5fc377e2c9"
1742
1743detect-file@^0.1.0:
1744 version "0.1.0"
1745 resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63"
1746 dependencies:
1747 fs-exists-sync "^0.1.0"
1748
1749detect-indent@^4.0.0:
1750 version "4.0.0"
1751 resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
1752 dependencies:
1753 repeating "^2.0.0"
1754
1755doctrine@1.5.0, doctrine@^1.2.2:
1756 version "1.5.0"
1757 resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
1758 dependencies:
1759 esutils "^2.0.2"
1760 isarray "^1.0.0"
1761
1762doctrine@^2.0.0:
1763 version "2.0.0"
1764 resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63"
1765 dependencies:
1766 esutils "^2.0.2"
1767 isarray "^1.0.0"
1768
1769dom-helpers@^3.2.0:
1770 version "3.2.1"
1771 resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.2.1.tgz#3203e07fed217bd1f424b019735582fc37b2825a"
1772
1773dot-prop@^4.1.0:
1774 version "4.2.0"
1775 resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
1776 dependencies:
1777 is-obj "^1.0.0"
1778
1779dotenv@^4.0.0:
1780 version "4.0.0"
1781 resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d"
1782
1783du@^0.1.0:
1784 version "0.1.0"
1785 resolved "https://registry.yarnpkg.com/du/-/du-0.1.0.tgz#f26e340a09c7bc5b6fd69af6dbadea60fa8c6f4d"
1786 dependencies:
1787 async "~0.1.22"
1788
1789duplexer2@0.0.2, duplexer2@~0.0.2:
1790 version "0.0.2"
1791 resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db"
1792 dependencies:
1793 readable-stream "~1.1.9"
1794
1795duplexer3@^0.1.4:
1796 version "0.1.4"
1797 resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
1798
1799duplexify@^3.2.0:
1800 version "3.5.1"
1801 resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.1.tgz#4e1516be68838bc90a49994f0b39a6e5960befcd"
1802 dependencies:
1803 end-of-stream "^1.0.0"
1804 inherits "^2.0.1"
1805 readable-stream "^2.0.0"
1806 stream-shift "^1.0.0"
1807
1808each-props@^1.2.1:
1809 version "1.3.1"
1810 resolved "https://registry.yarnpkg.com/each-props/-/each-props-1.3.1.tgz#fc138f51e3a2774286d4858e02d6e7de462de158"
1811 dependencies:
1812 is-plain-object "^2.0.1"
1813 object.defaults "^1.1.0"
1814
1815ecc-jsbn@~0.1.1:
1816 version "0.1.1"
1817 resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
1818 dependencies:
1819 jsbn "~0.1.0"
1820
1821ecdsa-sig-formatter@1.0.9:
1822 version "1.0.9"
1823 resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz#4bc926274ec3b5abb5016e7e1d60921ac262b2a1"
1824 dependencies:
1825 base64url "^2.0.0"
1826 safe-buffer "^5.0.1"
1827
1828editor@^1.0.0:
1829 version "1.0.0"
1830 resolved "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz#60c7f87bd62bcc6a894fa8ccd6afb7823a24f742"
1831
1832ee-first@1.0.5:
1833 version "1.0.5"
1834 resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.0.5.tgz#8c9b212898d8cd9f1a9436650ce7be202c9e9ff0"
1835
1836electron-builder-http@19.15.0, electron-builder-http@~19.15.0:
1837 version "19.15.0"
1838 resolved "https://registry.yarnpkg.com/electron-builder-http/-/electron-builder-http-19.15.0.tgz#d34cc28cf9db9ad28494283be8116e83a2e78f4c"
1839 dependencies:
1840 bluebird-lst "^1.0.2"
1841 debug "^2.6.8"
1842 fs-extra-p "^4.3.0"
1843
1844electron-builder-http@~19.27.5:
1845 version "19.27.5"
1846 resolved "https://registry.yarnpkg.com/electron-builder-http/-/electron-builder-http-19.27.5.tgz#800865df2e618ffab9e5b3b895c15b4ce7fd7f17"
1847 dependencies:
1848 bluebird-lst "^1.0.3"
1849 debug "^3.0.1"
1850 fs-extra-p "^4.4.0"
1851
1852electron-builder-util@19.15.0, electron-builder-util@~19.15.0:
1853 version "19.15.0"
1854 resolved "https://registry.yarnpkg.com/electron-builder-util/-/electron-builder-util-19.15.0.tgz#3df92f43b13d1aa3fc4823a05cca96619892bff2"
1855 dependencies:
1856 "7zip-bin" "^2.1.0"
1857 bluebird-lst "^1.0.2"
1858 chalk "^2.0.1"
1859 debug "^2.6.8"
1860 electron-builder-http "~19.15.0"
1861 fcopy-pre-bundled "0.3.4"
1862 fs-extra-p "^4.3.0"
1863 ini "^1.3.4"
1864 is-ci "^1.0.10"
1865 node-emoji "^1.6.1"
1866 source-map-support "^0.4.15"
1867 stat-mode "^0.2.2"
1868 tunnel-agent "^0.6.0"
1869
1870electron-builder@19.15.1:
1871 version "19.15.1"
1872 resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-19.15.1.tgz#da5d61fbae512edbc5b0251f6d9cb7774830eede"
1873 dependencies:
1874 "7zip-bin" "^2.1.0"
1875 ajv "^5.2.1"
1876 ajv-keywords "^2.1.0"
1877 asar-integrity "0.1.1"
1878 bluebird-lst "^1.0.2"
1879 chalk "^2.0.1"
1880 chromium-pickle-js "^0.2.0"
1881 cuint "^0.2.2"
1882 debug "^2.6.8"
1883 electron-builder-http "19.15.0"
1884 electron-builder-util "19.15.0"
1885 electron-download-tf "4.3.1"
1886 electron-osx-sign "0.4.6"
1887 electron-publish "19.15.0"
1888 fs-extra-p "^4.3.0"
1889 hosted-git-info "^2.5.0"
1890 is-ci "^1.0.10"
1891 isbinaryfile "^3.0.2"
1892 js-yaml "^3.9.0"
1893 json5 "^0.5.1"
1894 minimatch "^3.0.4"
1895 normalize-package-data "^2.4.0"
1896 parse-color "^1.0.0"
1897 plist "^2.1.0"
1898 sanitize-filename "^1.6.1"
1899 semver "^5.3.0"
1900 update-notifier "^2.2.0"
1901 uuid-1345 "^0.99.6"
1902 yargs "^8.0.2"
1903
1904electron-download-tf@4.3.1:
1905 version "4.3.1"
1906 resolved "https://registry.yarnpkg.com/electron-download-tf/-/electron-download-tf-4.3.1.tgz#7930f24a08e3669eaad38a5f7f288a10461caf72"
1907 dependencies:
1908 debug "^2.6.6"
1909 env-paths "^1.0.0"
1910 fs-extra "^3.0.1"
1911 minimist "^1.2.0"
1912 nugget "^2.0.1"
1913 path-exists "^3.0.0"
1914 rc "^1.2.1"
1915 semver "^5.3.0"
1916 sumchecker "^2.0.2"
1917
1918electron-download@^3.0.1:
1919 version "3.3.0"
1920 resolved "https://registry.yarnpkg.com/electron-download/-/electron-download-3.3.0.tgz#2cfd54d6966c019c4d49ad65fbe65cc9cdef68c8"
1921 dependencies:
1922 debug "^2.2.0"
1923 fs-extra "^0.30.0"
1924 home-path "^1.0.1"
1925 minimist "^1.2.0"
1926 nugget "^2.0.0"
1927 path-exists "^2.1.0"
1928 rc "^1.1.2"
1929 semver "^5.3.0"
1930 sumchecker "^1.2.0"
1931
1932electron-download@^4.0.0:
1933 version "4.1.0"
1934 resolved "https://registry.yarnpkg.com/electron-download/-/electron-download-4.1.0.tgz#bf932c746f2f87ffcc09d1dd472f2ff6b9187845"
1935 dependencies:
1936 debug "^2.2.0"
1937 env-paths "^1.0.0"
1938 fs-extra "^2.0.0"
1939 minimist "^1.2.0"
1940 nugget "^2.0.0"
1941 path-exists "^3.0.0"
1942 rc "^1.1.2"
1943 semver "^5.3.0"
1944 sumchecker "^2.0.1"
1945
1946electron-fetch@^1.1.0:
1947 version "1.1.0"
1948 resolved "https://registry.yarnpkg.com/electron-fetch/-/electron-fetch-1.1.0.tgz#74b0ea547fe149620d38596a84fb104d34218e31"
1949 dependencies:
1950 encoding "^0.1.12"
1951
1952electron-is-dev@^0.3.0:
1953 version "0.3.0"
1954 resolved "https://registry.yarnpkg.com/electron-is-dev/-/electron-is-dev-0.3.0.tgz#14e6fda5c68e9e4ecbeff9ccf037cbd7c05c5afe"
1955
1956electron-osx-sign@0.4.6, electron-osx-sign@^0.4.1:
1957 version "0.4.6"
1958 resolved "https://registry.yarnpkg.com/electron-osx-sign/-/electron-osx-sign-0.4.6.tgz#2398e2d7cab5c1d8c3eeabb1cd490376528ec39a"
1959 dependencies:
1960 bluebird "^3.4.7"
1961 compare-version "^0.1.2"
1962 debug "^2.6.1"
1963 isbinaryfile "^3.0.2"
1964 minimist "^1.2.0"
1965 plist "^2.0.1"
1966 tempfile "^1.1.1"
1967
1968electron-packager@^8.7.0:
1969 version "8.7.2"
1970 resolved "https://registry.yarnpkg.com/electron-packager/-/electron-packager-8.7.2.tgz#457d3bf24bc9607c06ad4b1eb6daa4accadc2108"
1971 dependencies:
1972 asar "^0.13.0"
1973 debug "^2.2.0"
1974 electron-download "^4.0.0"
1975 electron-osx-sign "^0.4.1"
1976 extract-zip "^1.0.3"
1977 fs-extra "^3.0.0"
1978 get-package-info "^1.0.0"
1979 minimist "^1.1.1"
1980 plist "^2.0.0"
1981 rcedit "^0.9.0"
1982 resolve "^1.1.6"
1983 run-series "^1.1.1"
1984 sanitize-filename "^1.6.0"
1985 semver "^5.3.0"
1986
1987electron-publish@19.15.0:
1988 version "19.15.0"
1989 resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-19.15.0.tgz#8bed54b827a161c325cb8739957c68fa2ca1092a"
1990 dependencies:
1991 bluebird-lst "^1.0.2"
1992 chalk "^2.0.1"
1993 electron-builder-http "~19.15.0"
1994 electron-builder-util "~19.15.0"
1995 fs-extra-p "^4.3.0"
1996 mime "^1.3.6"
1997
1998electron-rebuild@^1.6.0:
1999 version "1.6.0"
2000 resolved "https://registry.yarnpkg.com/electron-rebuild/-/electron-rebuild-1.6.0.tgz#e8d26f4d8e9fe5388df35864b3658e5cfd4dcb7e"
2001 dependencies:
2002 colors "^1.1.2"
2003 debug "^2.6.3"
2004 fs-extra "^3.0.1"
2005 node-abi "^2.0.0"
2006 node-gyp "^3.6.0"
2007 ora "^1.2.0"
2008 rimraf "^2.6.1"
2009 spawn-rx "^2.0.10"
2010 yargs "^7.0.2"
2011
2012electron-remote@^1.1.1:
2013 version "1.2.0"
2014 resolved "https://registry.yarnpkg.com/electron-remote/-/electron-remote-1.2.0.tgz#0f00c1d3803ce7651117f6fb6f274d26781ef9bd"
2015 dependencies:
2016 debug "^2.5.1"
2017 hashids "^1.1.1"
2018 lodash.get "^4.4.2"
2019 pify "^2.3.0"
2020 rxjs "^5.0.0-beta.12"
2021 xmlhttprequest "^1.8.0"
2022
2023electron-spellchecker@^1.1.2:
2024 version "1.1.2"
2025 resolved "https://registry.yarnpkg.com/electron-spellchecker/-/electron-spellchecker-1.1.2.tgz#5fbe1e65d246b77e6e7433ee2387d9d26010f7a8"
2026 dependencies:
2027 "@paulcbetts/cld" "^2.4.6"
2028 "@paulcbetts/spellchecker" "^4.0.6"
2029 bcp47 "^1.1.2"
2030 debug "^2.6.3"
2031 electron-remote "^1.1.1"
2032 keyboard-layout "^2.0.7"
2033 lru-cache "^4.0.2"
2034 mkdirp "^0.5.1"
2035 pify "^2.3.0"
2036 rxjs "^5.0.1"
2037 rxjs-serial-subscription "^0.1.1"
2038 spawn-rx "^2.0.7"
2039
2040electron-to-chromium@^1.3.18:
2041 version "1.3.20"
2042 resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.20.tgz#2eedd5ccbae7ddc557f68ad1fce9c172e915e4e5"
2043
2044electron-updater@^2.4.3:
2045 version "2.8.9"
2046 resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-2.8.9.tgz#e2525dcbd7c27ff173bdfd2e87056d67310e2555"
2047 dependencies:
2048 bluebird-lst "^1.0.3"
2049 debug "^3.0.1"
2050 electron-builder-http "~19.27.5"
2051 electron-is-dev "^0.3.0"
2052 fs-extra-p "^4.4.0"
2053 js-yaml "^3.9.1"
2054 lazy-val "^1.0.2"
2055 lodash.isequal "^4.5.0"
2056 semver "^5.4.1"
2057 source-map-support "^0.4.16"
2058 uuid-1345 "^0.99.6"
2059 xelement "^1.0.16"
2060
2061electron-window-state@^4.1.0:
2062 version "4.1.1"
2063 resolved "https://registry.yarnpkg.com/electron-window-state/-/electron-window-state-4.1.1.tgz#6b34fdc31b38514dfec8b7c8f7b5d4addb67632d"
2064 dependencies:
2065 deep-equal "^1.0.1"
2066 jsonfile "^2.2.3"
2067 mkdirp "^0.5.1"
2068
2069electron@^1.7.12:
2070 version "1.7.12"
2071 resolved "https://registry.yarnpkg.com/electron/-/electron-1.7.12.tgz#dcc61a2c1b0c3df25f68b3425379a01abd01190e"
2072 dependencies:
2073 "@types/node" "^7.0.18"
2074 electron-download "^3.0.1"
2075 extract-zip "^1.0.3"
2076
2077email-addresses@^3.0.0:
2078 version "3.0.1"
2079 resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-3.0.1.tgz#c1fc20c189e7f96d4012d375db5feaccdd24391c"
2080
2081emojis-list@^2.0.0:
2082 version "2.1.0"
2083 resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
2084
2085encoding@^0.1.11, encoding@^0.1.12:
2086 version "0.1.12"
2087 resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
2088 dependencies:
2089 iconv-lite "~0.4.13"
2090
2091end-of-stream@^1.0.0, end-of-stream@^1.1.0:
2092 version "1.4.0"
2093 resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206"
2094 dependencies:
2095 once "^1.4.0"
2096
2097engine.io-client@~1.8.4:
2098 version "1.8.4"
2099 resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.4.tgz#9fe85dee25853ca6babe25bd2ad68710863e91c2"
2100 dependencies:
2101 component-emitter "1.2.1"
2102 component-inherit "0.0.3"
2103 debug "2.3.3"
2104 engine.io-parser "1.3.2"
2105 has-cors "1.1.0"
2106 indexof "0.0.1"
2107 parsejson "0.0.3"
2108 parseqs "0.0.5"
2109 parseuri "0.0.5"
2110 ws "1.1.2"
2111 xmlhttprequest-ssl "1.5.3"
2112 yeast "0.1.2"
2113
2114engine.io-parser@1.3.2:
2115 version "1.3.2"
2116 resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a"
2117 dependencies:
2118 after "0.8.2"
2119 arraybuffer.slice "0.0.6"
2120 base64-arraybuffer "0.1.5"
2121 blob "0.0.4"
2122 has-binary "0.1.7"
2123 wtf-8 "1.0.0"
2124
2125engine.io@~1.8.4:
2126 version "1.8.4"
2127 resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.4.tgz#77bce12b80e5d60429337fec3b0daf691ebc9003"
2128 dependencies:
2129 accepts "1.3.3"
2130 base64id "1.0.0"
2131 cookie "0.3.1"
2132 debug "2.3.3"
2133 engine.io-parser "1.3.2"
2134 ws "1.1.4"
2135
2136env-paths@^1.0.0:
2137 version "1.0.0"
2138 resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0"
2139
2140error-ex@^1.2.0:
2141 version "1.3.1"
2142 resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
2143 dependencies:
2144 is-arrayish "^0.2.1"
2145
2146es-abstract@^1.7.0:
2147 version "1.8.1"
2148 resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.1.tgz#fd85a3bdfa67786ce7be7e1584678e119cd70c04"
2149 dependencies:
2150 es-to-primitive "^1.1.1"
2151 function-bind "^1.1.1"
2152 has "^1.0.1"
2153 is-callable "^1.1.3"
2154 is-regex "^1.0.4"
2155
2156es-to-primitive@^1.1.1:
2157 version "1.1.1"
2158 resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
2159 dependencies:
2160 is-callable "^1.1.1"
2161 is-date-object "^1.0.1"
2162 is-symbol "^1.0.1"
2163
2164es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14:
2165 version "0.10.30"
2166 resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.30.tgz#7141a16836697dbabfaaaeee41495ce29f52c939"
2167 dependencies:
2168 es6-iterator "2"
2169 es6-symbol "~3.1"
2170
2171es6-iterator@2, es6-iterator@^2.0.1:
2172 version "2.0.1"
2173 resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512"
2174 dependencies:
2175 d "1"
2176 es5-ext "^0.10.14"
2177 es6-symbol "^3.1"
2178
2179es6-promise@^4.0.5:
2180 version "4.1.1"
2181 resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.1.tgz#8811e90915d9a0dba36274f0b242dbda78f9c92a"
2182
2183es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1:
2184 version "3.1.1"
2185 resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
2186 dependencies:
2187 d "1"
2188 es5-ext "~0.10.14"
2189
2190es6-weak-map@^2.0.1:
2191 version "2.0.2"
2192 resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f"
2193 dependencies:
2194 d "1"
2195 es5-ext "^0.10.14"
2196 es6-iterator "^2.0.1"
2197 es6-symbol "^3.1.1"
2198
2199escape-html@1.0.1:
2200 version "1.0.1"
2201 resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.1.tgz#181a286ead397a39a92857cfb1d43052e356bff0"
2202
2203escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
2204 version "1.0.5"
2205 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
2206
2207eslint-config-airbnb-base@^11.1.0:
2208 version "11.3.2"
2209 resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.3.2.tgz#8703b11abe3c88ac7ec2b745b7fdf52e00ae680a"
2210 dependencies:
2211 eslint-restricted-globals "^0.1.1"
2212
2213eslint-config-airbnb@^14.1.0:
2214 version "14.1.0"
2215 resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-14.1.0.tgz#355d290040bbf8e00bf8b4b19f4b70cbe7c2317f"
2216 dependencies:
2217 eslint-config-airbnb-base "^11.1.0"
2218
2219eslint-import-resolver-node@^0.3.1:
2220 version "0.3.1"
2221 resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz#4422574cde66a9a7b099938ee4d508a199e0e3cc"
2222 dependencies:
2223 debug "^2.6.8"
2224 resolve "^1.2.0"
2225
2226eslint-loader@^1.9.0:
2227 version "1.9.0"
2228 resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-1.9.0.tgz#7e1be9feddca328d3dcfaef1ad49d5beffe83a13"
2229 dependencies:
2230 loader-fs-cache "^1.0.0"
2231 loader-utils "^1.0.2"
2232 object-assign "^4.0.1"
2233 object-hash "^1.1.4"
2234 rimraf "^2.6.1"
2235
2236eslint-module-utils@^2.1.1:
2237 version "2.1.1"
2238 resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz#abaec824177613b8a95b299639e1b6facf473449"
2239 dependencies:
2240 debug "^2.6.8"
2241 pkg-dir "^1.0.0"
2242
2243eslint-plugin-import@^2.2.0:
2244 version "2.7.0"
2245 resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.7.0.tgz#21de33380b9efb55f5ef6d2e210ec0e07e7fa69f"
2246 dependencies:
2247 builtin-modules "^1.1.1"
2248 contains-path "^0.1.0"
2249 debug "^2.6.8"
2250 doctrine "1.5.0"
2251 eslint-import-resolver-node "^0.3.1"
2252 eslint-module-utils "^2.1.1"
2253 has "^1.0.1"
2254 lodash.cond "^4.3.0"
2255 minimatch "^3.0.3"
2256 read-pkg-up "^2.0.0"
2257
2258eslint-plugin-jsx-a11y@^3.0.0:
2259 version "3.0.2"
2260 resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-3.0.2.tgz#9f0eabcafde3d2a2600d96a66adb90d099e841fe"
2261 dependencies:
2262 damerau-levenshtein "^1.0.0"
2263 jsx-ast-utils "^1.0.0"
2264 object-assign "^4.0.1"
2265
2266eslint-plugin-react@^6.10.0:
2267 version "6.10.3"
2268 resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz#c5435beb06774e12c7db2f6abaddcbf900cd3f78"
2269 dependencies:
2270 array.prototype.find "^2.0.1"
2271 doctrine "^1.2.2"
2272 has "^1.0.1"
2273 jsx-ast-utils "^1.3.4"
2274 object.assign "^4.0.4"
2275
2276eslint-restricted-globals@^0.1.1:
2277 version "0.1.1"
2278 resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7"
2279
2280eslint-scope@^3.7.1:
2281 version "3.7.1"
2282 resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
2283 dependencies:
2284 esrecurse "^4.1.0"
2285 estraverse "^4.1.1"
2286
2287eslint@^4.7.1:
2288 version "4.7.1"
2289 resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.7.1.tgz#849804136953ebe366782f9f8611e2cbd1b54681"
2290 dependencies:
2291 ajv "^5.2.0"
2292 babel-code-frame "^6.22.0"
2293 chalk "^2.1.0"
2294 concat-stream "^1.6.0"
2295 cross-spawn "^5.1.0"
2296 debug "^3.0.1"
2297 doctrine "^2.0.0"
2298 eslint-scope "^3.7.1"
2299 espree "^3.5.1"
2300 esquery "^1.0.0"
2301 estraverse "^4.2.0"
2302 esutils "^2.0.2"
2303 file-entry-cache "^2.0.0"
2304 functional-red-black-tree "^1.0.1"
2305 glob "^7.1.2"
2306 globals "^9.17.0"
2307 ignore "^3.3.3"
2308 imurmurhash "^0.1.4"
2309 inquirer "^3.0.6"
2310 is-resolvable "^1.0.0"
2311 js-yaml "^3.9.1"
2312 json-stable-stringify "^1.0.1"
2313 levn "^0.3.0"
2314 lodash "^4.17.4"
2315 minimatch "^3.0.2"
2316 mkdirp "^0.5.1"
2317 natural-compare "^1.4.0"
2318 optionator "^0.8.2"
2319 path-is-inside "^1.0.2"
2320 pluralize "^7.0.0"
2321 progress "^2.0.0"
2322 require-uncached "^1.0.3"
2323 semver "^5.3.0"
2324 strip-ansi "^4.0.0"
2325 strip-json-comments "~2.0.1"
2326 table "^4.0.1"
2327 text-table "~0.2.0"
2328
2329espree@^3.5.1:
2330 version "3.5.1"
2331 resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.1.tgz#0c988b8ab46db53100a1954ae4ba995ddd27d87e"
2332 dependencies:
2333 acorn "^5.1.1"
2334 acorn-jsx "^3.0.0"
2335
2336esprima@^4.0.0:
2337 version "4.0.0"
2338 resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
2339
2340esquery@^1.0.0:
2341 version "1.0.0"
2342 resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa"
2343 dependencies:
2344 estraverse "^4.0.0"
2345
2346esrecurse@^4.1.0:
2347 version "4.2.0"
2348 resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163"
2349 dependencies:
2350 estraverse "^4.1.0"
2351 object-assign "^4.0.1"
2352
2353estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
2354 version "4.2.0"
2355 resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
2356
2357esutils@^2.0.2:
2358 version "2.0.2"
2359 resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
2360
2361event-kit@^2.0.0:
2362 version "2.3.0"
2363 resolved "https://registry.yarnpkg.com/event-kit/-/event-kit-2.3.0.tgz#459ba0646d4b7dbca5d9bf2b3c4e2d0103e85e15"
2364
2365execa@^0.7.0:
2366 version "0.7.0"
2367 resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
2368 dependencies:
2369 cross-spawn "^5.0.1"
2370 get-stream "^3.0.0"
2371 is-stream "^1.1.0"
2372 npm-run-path "^2.0.0"
2373 p-finally "^1.0.0"
2374 signal-exit "^3.0.0"
2375 strip-eof "^1.0.0"
2376
2377expand-brackets@^0.1.4:
2378 version "0.1.5"
2379 resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
2380 dependencies:
2381 is-posix-bracket "^0.1.0"
2382
2383expand-range@^1.8.1:
2384 version "1.8.2"
2385 resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
2386 dependencies:
2387 fill-range "^2.1.0"
2388
2389expand-tilde@^1.2.2:
2390 version "1.2.2"
2391 resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449"
2392 dependencies:
2393 os-homedir "^1.0.1"
2394
2395expand-tilde@^2.0.2:
2396 version "2.0.2"
2397 resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502"
2398 dependencies:
2399 homedir-polyfill "^1.0.1"
2400
2401extend-shallow@^2.0.1:
2402 version "2.0.1"
2403 resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
2404 dependencies:
2405 is-extendable "^0.1.0"
2406
2407extend@^3.0.0, extend@~3.0.0:
2408 version "3.0.1"
2409 resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
2410
2411external-editor@^2.0.4:
2412 version "2.0.5"
2413 resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.5.tgz#52c249a3981b9ba187c7cacf5beb50bf1d91a6bc"
2414 dependencies:
2415 iconv-lite "^0.4.17"
2416 jschardet "^1.4.2"
2417 tmp "^0.0.33"
2418
2419extglob@^0.3.1:
2420 version "0.3.2"
2421 resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
2422 dependencies:
2423 is-extglob "^1.0.0"
2424
2425extract-zip@^1.0.3:
2426 version "1.6.5"
2427 resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.5.tgz#99a06735b6ea20ea9b705d779acffcc87cff0440"
2428 dependencies:
2429 concat-stream "1.6.0"
2430 debug "2.2.0"
2431 mkdirp "0.5.0"
2432 yauzl "2.4.1"
2433
2434extsprintf@1.3.0, extsprintf@^1.2.0:
2435 version "1.3.0"
2436 resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
2437
2438fancy-log@^1.1.0:
2439 version "1.3.0"
2440 resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.0.tgz#45be17d02bb9917d60ccffd4995c999e6c8c9948"
2441 dependencies:
2442 chalk "^1.1.1"
2443 time-stamp "^1.0.0"
2444
2445fast-deep-equal@^1.0.0:
2446 version "1.0.0"
2447 resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
2448
2449fast-levenshtein@~2.0.4:
2450 version "2.0.6"
2451 resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
2452
2453fbjs@^0.8.9:
2454 version "0.8.14"
2455 resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c"
2456 dependencies:
2457 core-js "^1.0.0"
2458 isomorphic-fetch "^2.1.1"
2459 loose-envify "^1.0.0"
2460 object-assign "^4.1.0"
2461 promise "^7.1.1"
2462 setimmediate "^1.0.5"
2463 ua-parser-js "^0.7.9"
2464
2465fcopy-pre-bundled@0.3.4:
2466 version "0.3.4"
2467 resolved "https://registry.yarnpkg.com/fcopy-pre-bundled/-/fcopy-pre-bundled-0.3.4.tgz#7ff1a1c339e877baa86b0856bebb33621cd5620b"
2468
2469fd-slicer@~1.0.1:
2470 version "1.0.1"
2471 resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
2472 dependencies:
2473 pend "~1.2.0"
2474
2475figures@^1.3.5:
2476 version "1.7.0"
2477 resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
2478 dependencies:
2479 escape-string-regexp "^1.0.5"
2480 object-assign "^4.1.0"
2481
2482figures@^2.0.0:
2483 version "2.0.0"
2484 resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
2485 dependencies:
2486 escape-string-regexp "^1.0.5"
2487
2488file-entry-cache@^2.0.0:
2489 version "2.0.0"
2490 resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
2491 dependencies:
2492 flat-cache "^1.2.1"
2493 object-assign "^4.0.1"
2494
2495filename-regex@^2.0.0:
2496 version "2.0.1"
2497 resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
2498
2499fill-range@^2.1.0:
2500 version "2.2.3"
2501 resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
2502 dependencies:
2503 is-number "^2.1.0"
2504 isobject "^2.0.0"
2505 randomatic "^1.1.3"
2506 repeat-element "^1.1.2"
2507 repeat-string "^1.5.2"
2508
2509finalhandler@0.1.0:
2510 version "0.1.0"
2511 resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.1.0.tgz#da05bbc4f5f4a30c84ce1d91f3c154007c4e9daa"
2512 dependencies:
2513 debug "1.0.4"
2514 escape-html "1.0.1"
2515
2516find-cache-dir@^0.1.1:
2517 version "0.1.1"
2518 resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
2519 dependencies:
2520 commondir "^1.0.1"
2521 mkdirp "^0.5.1"
2522 pkg-dir "^1.0.0"
2523
2524find-index@^0.1.1:
2525 version "0.1.1"
2526 resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4"
2527
2528find-up@^1.0.0:
2529 version "1.1.2"
2530 resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
2531 dependencies:
2532 path-exists "^2.0.0"
2533 pinkie-promise "^2.0.0"
2534
2535find-up@^2.0.0:
2536 version "2.1.0"
2537 resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
2538 dependencies:
2539 locate-path "^2.0.0"
2540
2541findup-sync@^0.4.2:
2542 version "0.4.3"
2543 resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12"
2544 dependencies:
2545 detect-file "^0.1.0"
2546 is-glob "^2.0.1"
2547 micromatch "^2.3.7"
2548 resolve-dir "^0.1.0"
2549
2550findup-sync@~0.3.0:
2551 version "0.3.0"
2552 resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.3.0.tgz#37930aa5d816b777c03445e1966cc6790a4c0b16"
2553 dependencies:
2554 glob "~5.0.0"
2555
2556fined@^1.0.1:
2557 version "1.1.0"
2558 resolved "https://registry.yarnpkg.com/fined/-/fined-1.1.0.tgz#b37dc844b76a2f5e7081e884f7c0ae344f153476"
2559 dependencies:
2560 expand-tilde "^2.0.2"
2561 is-plain-object "^2.0.3"
2562 object.defaults "^1.1.0"
2563 object.pick "^1.2.0"
2564 parse-filepath "^1.0.1"
2565
2566first-chunk-stream@^1.0.0:
2567 version "1.0.0"
2568 resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e"
2569
2570flagged-respawn@^0.3.2:
2571 version "0.3.2"
2572 resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-0.3.2.tgz#ff191eddcd7088a675b2610fffc976be9b8074b5"
2573
2574flat-cache@^1.2.1:
2575 version "1.2.2"
2576 resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96"
2577 dependencies:
2578 circular-json "^0.3.1"
2579 del "^2.0.2"
2580 graceful-fs "^4.1.2"
2581 write "^0.2.1"
2582
2583for-in@^1.0.1:
2584 version "1.0.2"
2585 resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
2586
2587for-own@^0.1.4:
2588 version "0.1.5"
2589 resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
2590 dependencies:
2591 for-in "^1.0.1"
2592
2593for-own@^1.0.0:
2594 version "1.0.0"
2595 resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b"
2596 dependencies:
2597 for-in "^1.0.1"
2598
2599foreach@^2.0.5:
2600 version "2.0.5"
2601 resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
2602
2603forever-agent@~0.6.1:
2604 version "0.6.1"
2605 resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
2606
2607form-data@~2.1.1:
2608 version "2.1.4"
2609 resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
2610 dependencies:
2611 asynckit "^0.4.0"
2612 combined-stream "^1.0.5"
2613 mime-types "^2.1.12"
2614
2615fresh@0.2.2:
2616 version "0.2.2"
2617 resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.2.2.tgz#9731dcf5678c7faeb44fb903c4f72df55187fa77"
2618
2619fs-exists-sync@^0.1.0:
2620 version "0.1.0"
2621 resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
2622
2623fs-extra-p@^4.3.0, fs-extra-p@^4.4.0:
2624 version "4.4.0"
2625 resolved "https://registry.yarnpkg.com/fs-extra-p/-/fs-extra-p-4.4.0.tgz#729c601c4f4c701328921adc7cfe9b236f100660"
2626 dependencies:
2627 bluebird-lst "^1.0.2"
2628 fs-extra "^4.0.0"
2629
2630fs-extra@0.26.7:
2631 version "0.26.7"
2632 resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.26.7.tgz#9ae1fdd94897798edab76d0918cf42d0c3184fa9"
2633 dependencies:
2634 graceful-fs "^4.1.2"
2635 jsonfile "^2.1.0"
2636 klaw "^1.0.0"
2637 path-is-absolute "^1.0.0"
2638 rimraf "^2.2.8"
2639
2640fs-extra@^0.30.0:
2641 version "0.30.0"
2642 resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0"
2643 dependencies:
2644 graceful-fs "^4.1.2"
2645 jsonfile "^2.1.0"
2646 klaw "^1.0.0"
2647 path-is-absolute "^1.0.0"
2648 rimraf "^2.2.8"
2649
2650fs-extra@^2.0.0:
2651 version "2.1.2"
2652 resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.1.2.tgz#046c70163cef9aad46b0e4a7fa467fb22d71de35"
2653 dependencies:
2654 graceful-fs "^4.1.2"
2655 jsonfile "^2.1.0"
2656
2657fs-extra@^3.0.0, fs-extra@^3.0.1:
2658 version "3.0.1"
2659 resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291"
2660 dependencies:
2661 graceful-fs "^4.1.2"
2662 jsonfile "^3.0.0"
2663 universalify "^0.1.0"
2664
2665fs-extra@^4.0.0:
2666 version "4.0.1"
2667 resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.1.tgz#7fc0c6c8957f983f57f306a24e5b9ddd8d0dd880"
2668 dependencies:
2669 graceful-fs "^4.1.2"
2670 jsonfile "^3.0.0"
2671 universalify "^0.1.0"
2672
2673fs.realpath@^1.0.0:
2674 version "1.0.0"
2675 resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
2676
2677fsevents@^1.0.0:
2678 version "1.1.2"
2679 resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4"
2680 dependencies:
2681 nan "^2.3.0"
2682 node-pre-gyp "^0.6.36"
2683
2684fstream-ignore@^1.0.5:
2685 version "1.0.5"
2686 resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105"
2687 dependencies:
2688 fstream "^1.0.0"
2689 inherits "2"
2690 minimatch "^3.0.0"
2691
2692fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
2693 version "1.0.11"
2694 resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
2695 dependencies:
2696 graceful-fs "^4.1.2"
2697 inherits "~2.0.0"
2698 mkdirp ">=0.5 0"
2699 rimraf "2"
2700
2701function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1:
2702 version "1.1.1"
2703 resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
2704
2705functional-red-black-tree@^1.0.1:
2706 version "1.0.1"
2707 resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
2708
2709gauge@~2.7.3:
2710 version "2.7.4"
2711 resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
2712 dependencies:
2713 aproba "^1.0.3"
2714 console-control-strings "^1.0.0"
2715 has-unicode "^2.0.0"
2716 object-assign "^4.1.0"
2717 signal-exit "^3.0.0"
2718 string-width "^1.0.1"
2719 strip-ansi "^3.0.1"
2720 wide-align "^1.1.0"
2721
2722gaze@^0.5.1:
2723 version "0.5.2"
2724 resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f"
2725 dependencies:
2726 globule "~0.1.0"
2727
2728gaze@^1.0.0:
2729 version "1.1.2"
2730 resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105"
2731 dependencies:
2732 globule "^1.0.0"
2733
2734generate-function@^2.0.0:
2735 version "2.0.0"
2736 resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
2737
2738generate-object-property@^1.1.0:
2739 version "1.2.0"
2740 resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
2741 dependencies:
2742 is-property "^1.0.0"
2743
2744get-caller-file@^1.0.1:
2745 version "1.0.2"
2746 resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
2747
2748get-package-info@^1.0.0:
2749 version "1.0.0"
2750 resolved "https://registry.yarnpkg.com/get-package-info/-/get-package-info-1.0.0.tgz#6432796563e28113cd9474dbbd00052985a4999c"
2751 dependencies:
2752 bluebird "^3.1.1"
2753 debug "^2.2.0"
2754 lodash.get "^4.0.0"
2755 read-pkg-up "^2.0.0"
2756
2757get-stdin@^4.0.1:
2758 version "4.0.1"
2759 resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
2760
2761get-stream@^3.0.0:
2762 version "3.0.0"
2763 resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
2764
2765getpass@^0.1.1:
2766 version "0.1.7"
2767 resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
2768 dependencies:
2769 assert-plus "^1.0.0"
2770
2771ghauth@^2.0.0:
2772 version "2.0.1"
2773 resolved "https://registry.yarnpkg.com/ghauth/-/ghauth-2.0.1.tgz#79b7d68b0bcf8e7d0852a23b147539dfd314acf6"
2774 dependencies:
2775 bl "~0.9.4"
2776 hyperquest "~1.2.0"
2777 mkdirp "~0.5.0"
2778 read "~1.0.5"
2779 xtend "~4.0.0"
2780
2781github-url-to-object@^1.4.2:
2782 version "1.6.0"
2783 resolved "https://registry.yarnpkg.com/github-url-to-object/-/github-url-to-object-1.6.0.tgz#891ef7fbbfaba8fed71510acdb1b4e9346a970dc"
2784 dependencies:
2785 is-url "^1.1.0"
2786
2787glob-base@^0.3.0:
2788 version "0.3.0"
2789 resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
2790 dependencies:
2791 glob-parent "^2.0.0"
2792 is-glob "^2.0.0"
2793
2794glob-parent@^2.0.0:
2795 version "2.0.0"
2796 resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
2797 dependencies:
2798 is-glob "^2.0.0"
2799
2800glob-parent@^3.0.0:
2801 version "3.1.0"
2802 resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
2803 dependencies:
2804 is-glob "^3.1.0"
2805 path-dirname "^1.0.0"
2806
2807glob-stream@^4.0.1:
2808 version "4.1.1"
2809 resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-4.1.1.tgz#b842df10d688c7eb6bcfcebd846f3852296b3200"
2810 dependencies:
2811 glob "^4.3.1"
2812 glob2base "^0.0.12"
2813 minimatch "^2.0.1"
2814 ordered-read-streams "^0.1.0"
2815 through2 "^0.6.1"
2816 unique-stream "^2.0.2"
2817
2818glob-stream@^5.3.2:
2819 version "5.3.5"
2820 resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22"
2821 dependencies:
2822 extend "^3.0.0"
2823 glob "^5.0.3"
2824 glob-parent "^3.0.0"
2825 micromatch "^2.3.7"
2826 ordered-read-streams "^0.3.0"
2827 through2 "^0.6.0"
2828 to-absolute-glob "^0.1.1"
2829 unique-stream "^2.0.2"
2830
2831glob-watcher@^0.0.8:
2832 version "0.0.8"
2833 resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.8.tgz#68aeb661e7e2ce8d3634381b2ec415f00c6bc2a4"
2834 dependencies:
2835 gaze "^0.5.1"
2836
2837glob-watcher@^3.0.0:
2838 version "3.2.0"
2839 resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-3.2.0.tgz#ffc1a2d3d07783b672f5e21799a4d0b3fed92daf"
2840 dependencies:
2841 async-done "^1.2.0"
2842 chokidar "^1.4.3"
2843 lodash.debounce "^4.0.6"
2844 object.defaults "^1.0.0"
2845
2846glob2base@^0.0.12:
2847 version "0.0.12"
2848 resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56"
2849 dependencies:
2850 find-index "^0.1.1"
2851
2852glob@^4.3.1:
2853 version "4.5.3"
2854 resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f"
2855 dependencies:
2856 inflight "^1.0.4"
2857 inherits "2"
2858 minimatch "^2.0.1"
2859 once "^1.3.0"
2860
2861glob@^5.0.10, glob@^5.0.3, glob@~5.0.0:
2862 version "5.0.15"
2863 resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
2864 dependencies:
2865 inflight "^1.0.4"
2866 inherits "2"
2867 minimatch "2 || 3"
2868 once "^1.3.0"
2869 path-is-absolute "^1.0.0"
2870
2871glob@^6.0.4:
2872 version "6.0.4"
2873 resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
2874 dependencies:
2875 inflight "^1.0.4"
2876 inherits "2"
2877 minimatch "2 || 3"
2878 once "^1.3.0"
2879 path-is-absolute "^1.0.0"
2880
2881glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@~7.1.1:
2882 version "7.1.2"
2883 resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
2884 dependencies:
2885 fs.realpath "^1.0.0"
2886 inflight "^1.0.4"
2887 inherits "2"
2888 minimatch "^3.0.4"
2889 once "^1.3.0"
2890 path-is-absolute "^1.0.0"
2891
2892glob@~3.1.21:
2893 version "3.1.21"
2894 resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd"
2895 dependencies:
2896 graceful-fs "~1.2.0"
2897 inherits "1"
2898 minimatch "~0.2.11"
2899
2900global-modules@^0.2.3:
2901 version "0.2.3"
2902 resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d"
2903 dependencies:
2904 global-prefix "^0.1.4"
2905 is-windows "^0.2.0"
2906
2907global-prefix@^0.1.4:
2908 version "0.1.5"
2909 resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f"
2910 dependencies:
2911 homedir-polyfill "^1.0.0"
2912 ini "^1.3.4"
2913 is-windows "^0.2.0"
2914 which "^1.2.12"
2915
2916globals@^9.17.0, globals@^9.18.0:
2917 version "9.18.0"
2918 resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
2919
2920globby@^5.0.0:
2921 version "5.0.0"
2922 resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
2923 dependencies:
2924 array-union "^1.0.1"
2925 arrify "^1.0.0"
2926 glob "^7.0.3"
2927 object-assign "^4.0.1"
2928 pify "^2.0.0"
2929 pinkie-promise "^2.0.0"
2930
2931globule@^1.0.0:
2932 version "1.2.0"
2933 resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09"
2934 dependencies:
2935 glob "~7.1.1"
2936 lodash "~4.17.4"
2937 minimatch "~3.0.2"
2938
2939globule@~0.1.0:
2940 version "0.1.0"
2941 resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5"
2942 dependencies:
2943 glob "~3.1.21"
2944 lodash "~1.0.1"
2945 minimatch "~0.2.11"
2946
2947glogg@^1.0.0:
2948 version "1.0.0"
2949 resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5"
2950 dependencies:
2951 sparkles "^1.0.0"
2952
2953got@^6.7.1:
2954 version "6.7.1"
2955 resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0"
2956 dependencies:
2957 create-error-class "^3.0.0"
2958 duplexer3 "^0.1.4"
2959 get-stream "^3.0.0"
2960 is-redirect "^1.0.0"
2961 is-retry-allowed "^1.0.0"
2962 is-stream "^1.0.0"
2963 lowercase-keys "^1.0.0"
2964 safe-buffer "^5.0.1"
2965 timed-out "^4.0.0"
2966 unzip-response "^2.0.1"
2967 url-parse-lax "^1.0.0"
2968
2969graceful-fs@^3.0.0:
2970 version "3.0.11"
2971 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818"
2972 dependencies:
2973 natives "^1.1.0"
2974
2975graceful-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:
2976 version "4.1.11"
2977 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
2978
2979graceful-fs@~1.2.0:
2980 version "1.2.3"
2981 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364"
2982
2983gulp-babel@^6.1.2:
2984 version "6.1.2"
2985 resolved "https://registry.yarnpkg.com/gulp-babel/-/gulp-babel-6.1.2.tgz#7c0176e4ba3f244c60588a0c4b320a45d1adefce"
2986 dependencies:
2987 babel-core "^6.0.2"
2988 gulp-util "^3.0.0"
2989 object-assign "^4.0.1"
2990 replace-ext "0.0.1"
2991 through2 "^2.0.0"
2992 vinyl-sourcemaps-apply "^0.2.0"
2993
2994gulp-cli@1.2.2:
2995 version "1.2.2"
2996 resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-1.2.2.tgz#7392def6316c6e7939a4f296f3f540151ae3a275"
2997 dependencies:
2998 archy "^1.0.0"
2999 chalk "^1.1.0"
3000 fancy-log "^1.1.0"
3001 gulplog "^1.0.0"
3002 interpret "^1.0.0"
3003 liftoff "^2.1.0"
3004 lodash.isfunction "^3.0.8"
3005 lodash.isplainobject "^4.0.4"
3006 lodash.isstring "^4.0.1"
3007 lodash.sortby "^4.5.0"
3008 matchdep "^1.0.0"
3009 mute-stdout "^1.0.0"
3010 pretty-hrtime "^1.0.0"
3011 semver-greatest-satisfied-range "^1.0.0"
3012 tildify "^1.0.0"
3013 v8flags "^2.0.9"
3014 wreck "^6.3.0"
3015 yargs "^3.28.0"
3016
3017gulp-cli@^1.0.0:
3018 version "1.4.0"
3019 resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-1.4.0.tgz#6f5bbe2cd0bdb4849d12cf9e1246a5861f8b4f88"
3020 dependencies:
3021 archy "^1.0.0"
3022 chalk "^1.1.0"
3023 copy-props "^1.4.1"
3024 fancy-log "^1.1.0"
3025 gulplog "^1.0.0"
3026 interpret "^1.0.0"
3027 liftoff "^2.3.0"
3028 lodash.isfunction "^3.0.8"
3029 lodash.isplainobject "^4.0.4"
3030 lodash.sortby "^4.5.0"
3031 matchdep "^1.0.0"
3032 mute-stdout "^1.0.0"
3033 pretty-hrtime "^1.0.0"
3034 semver-greatest-satisfied-range "^1.0.0"
3035 tildify "^1.0.0"
3036 v8flags "^2.0.9"
3037 wreck "^6.3.0"
3038 yargs "^3.28.0"
3039
3040gulp-github-release@^1.2.1:
3041 version "1.2.1"
3042 resolved "https://registry.yarnpkg.com/gulp-github-release/-/gulp-github-release-1.2.1.tgz#e08217880fdd41d8a3a230d217f50d8ff21f47cf"
3043 dependencies:
3044 gulp-util "^3.0.7"
3045 publish-release "^1.3.2"
3046 through2 "^2.0.1"
3047
3048gulp-sass-variables@^1.1.1:
3049 version "1.1.1"
3050 resolved "https://registry.yarnpkg.com/gulp-sass-variables/-/gulp-sass-variables-1.1.1.tgz#95921590f8a1b84a687ebcb3ecbc30a74bcef44d"
3051 dependencies:
3052 gulp-util "^3.0.7"
3053 through2 "^2.0.1"
3054
3055gulp-sass@^3.1.0:
3056 version "3.1.0"
3057 resolved "https://registry.yarnpkg.com/gulp-sass/-/gulp-sass-3.1.0.tgz#53dc4b68a1f5ddfe4424ab4c247655269a8b74b7"
3058 dependencies:
3059 gulp-util "^3.0"
3060 lodash.clonedeep "^4.3.2"
3061 node-sass "^4.2.0"
3062 through2 "^2.0.0"
3063 vinyl-sourcemaps-apply "^0.2.0"
3064
3065gulp-server-livereload@^1.9.2:
3066 version "1.9.2"
3067 resolved "https://registry.yarnpkg.com/gulp-server-livereload/-/gulp-server-livereload-1.9.2.tgz#3db227f3463cfe4f29bf65a013baa162e2a740c6"
3068 dependencies:
3069 commander "^2.8.1"
3070 connect "~3.1.1"
3071 connect-inject "~0.3.2"
3072 glogg "^1.0.0"
3073 gulp-util "^3.0.7"
3074 gulplog "^1.0.0"
3075 lodash "^4.0.0"
3076 node-watch "^0.3.4"
3077 node.extend "~1.0.10"
3078 open "~0.0.5"
3079 proxy-middleware "~0.15.0"
3080 serve-index "~1.1.4"
3081 serve-static "~1.5.2"
3082 socket.io "^1.4.4"
3083 through2 "~0.5.1"
3084 vinyl-fs "^1.0.0"
3085
3086gulp-sourcemaps@1.6.0:
3087 version "1.6.0"
3088 resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz#b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c"
3089 dependencies:
3090 convert-source-map "^1.1.1"
3091 graceful-fs "^4.1.2"
3092 strip-bom "^2.0.0"
3093 through2 "^2.0.0"
3094 vinyl "^1.0.0"
3095
3096gulp-util@^3.0, gulp-util@^3.0.0, gulp-util@^3.0.7:
3097 version "3.0.8"
3098 resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f"
3099 dependencies:
3100 array-differ "^1.0.0"
3101 array-uniq "^1.0.2"
3102 beeper "^1.0.0"
3103 chalk "^1.0.0"
3104 dateformat "^2.0.0"
3105 fancy-log "^1.1.0"
3106 gulplog "^1.0.0"
3107 has-gulplog "^0.1.0"
3108 lodash._reescape "^3.0.0"
3109 lodash._reevaluate "^3.0.0"
3110 lodash._reinterpolate "^3.0.0"
3111 lodash.template "^3.0.0"
3112 minimist "^1.1.0"
3113 multipipe "^0.1.2"
3114 object-assign "^3.0.0"
3115 replace-ext "0.0.1"
3116 through2 "^2.0.0"
3117 vinyl "^0.5.0"
3118
3119gulp@gulpjs/gulp#4.0:
3120 version "4.0.0-alpha.2"
3121 resolved "https://codeload.github.com/gulpjs/gulp/tar.gz/6d71a658c61edb3090221579d8f97dbe086ba2ed"
3122 dependencies:
3123 glob-watcher "^3.0.0"
3124 gulp-cli "^1.0.0"
3125 undertaker "^1.0.0"
3126 vinyl-fs "^2.0.0"
3127
3128gulplog@^1.0.0:
3129 version "1.0.0"
3130 resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5"
3131 dependencies:
3132 glogg "^1.0.0"
3133
3134har-schema@^1.0.5:
3135 version "1.0.5"
3136 resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
3137
3138har-validator@~2.0.6:
3139 version "2.0.6"
3140 resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
3141 dependencies:
3142 chalk "^1.1.1"
3143 commander "^2.9.0"
3144 is-my-json-valid "^2.12.4"
3145 pinkie-promise "^2.0.0"
3146
3147har-validator@~4.2.1:
3148 version "4.2.1"
3149 resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
3150 dependencies:
3151 ajv "^4.9.1"
3152 har-schema "^1.0.5"
3153
3154has-ansi@^2.0.0:
3155 version "2.0.0"
3156 resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
3157 dependencies:
3158 ansi-regex "^2.0.0"
3159
3160has-binary@0.1.7:
3161 version "0.1.7"
3162 resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c"
3163 dependencies:
3164 isarray "0.0.1"
3165
3166has-cors@1.1.0:
3167 version "1.1.0"
3168 resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39"
3169
3170has-flag@^2.0.0:
3171 version "2.0.0"
3172 resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
3173
3174has-gulplog@^0.1.0:
3175 version "0.1.0"
3176 resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce"
3177 dependencies:
3178 sparkles "^1.0.0"
3179
3180has-unicode@^2.0.0:
3181 version "2.0.1"
3182 resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
3183
3184has@^1.0.1:
3185 version "1.0.1"
3186 resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
3187 dependencies:
3188 function-bind "^1.0.2"
3189
3190hashids@^1.1.1:
3191 version "1.1.1"
3192 resolved "https://registry.yarnpkg.com/hashids/-/hashids-1.1.1.tgz#3c36fcc5b3ba1a96a8fa67a632eb7877c41c6d3e"
3193
3194hawk@~3.1.3:
3195 version "3.1.3"
3196 resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
3197 dependencies:
3198 boom "2.x.x"
3199 cryptiles "2.x.x"
3200 hoek "2.x.x"
3201 sntp "1.x.x"
3202
3203history@^3.0.0:
3204 version "3.3.0"
3205 resolved "https://registry.yarnpkg.com/history/-/history-3.3.0.tgz#fcedcce8f12975371545d735461033579a6dae9c"
3206 dependencies:
3207 invariant "^2.2.1"
3208 loose-envify "^1.2.0"
3209 query-string "^4.2.2"
3210 warning "^3.0.0"
3211
3212hoek@2.x.x:
3213 version "2.16.3"
3214 resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
3215
3216hoist-non-react-statics@^1.2.0:
3217 version "1.2.0"
3218 resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb"
3219
3220home-or-tmp@^2.0.0:
3221 version "2.0.0"
3222 resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
3223 dependencies:
3224 os-homedir "^1.0.0"
3225 os-tmpdir "^1.0.1"
3226
3227home-path@^1.0.1:
3228 version "1.0.5"
3229 resolved "https://registry.yarnpkg.com/home-path/-/home-path-1.0.5.tgz#788b29815b12d53bacf575648476e6f9041d133f"
3230
3231homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1:
3232 version "1.0.1"
3233 resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc"
3234 dependencies:
3235 parse-passwd "^1.0.0"
3236
3237hosted-git-info@^2.1.4, hosted-git-info@^2.5.0:
3238 version "2.5.0"
3239 resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
3240
3241http-signature@~1.1.0:
3242 version "1.1.1"
3243 resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
3244 dependencies:
3245 assert-plus "^0.2.0"
3246 jsprim "^1.2.2"
3247 sshpk "^1.7.0"
3248
3249hyperquest@~1.2.0:
3250 version "1.2.0"
3251 resolved "https://registry.yarnpkg.com/hyperquest/-/hyperquest-1.2.0.tgz#39e1fef66888dc7ce0dec6c0dd814f6fc8944ad5"
3252 dependencies:
3253 duplexer2 "~0.0.2"
3254 through2 "~0.6.3"
3255
3256iconv-lite@^0.4.17, iconv-lite@~0.4.13:
3257 version "0.4.18"
3258 resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2"
3259
3260ignore@^3.3.3:
3261 version "3.3.5"
3262 resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.5.tgz#c4e715455f6073a8d7e5dae72d2fc9d71663dba6"
3263
3264import-lazy@^2.1.0:
3265 version "2.1.0"
3266 resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
3267
3268imurmurhash@^0.1.4:
3269 version "0.1.4"
3270 resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
3271
3272in-publish@^2.0.0:
3273 version "2.0.0"
3274 resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51"
3275
3276indent-string@^2.1.0:
3277 version "2.1.0"
3278 resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
3279 dependencies:
3280 repeating "^2.0.0"
3281
3282indexof@0.0.1:
3283 version "0.0.1"
3284 resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
3285
3286inflight@^1.0.4:
3287 version "1.0.6"
3288 resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
3289 dependencies:
3290 once "^1.3.0"
3291 wrappy "1"
3292
3293inherits@1:
3294 version "1.0.2"
3295 resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b"
3296
3297inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
3298 version "2.0.3"
3299 resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
3300
3301ini@^1.3.4, ini@~1.3.0:
3302 version "1.3.4"
3303 resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
3304
3305inquirer@^0.8.2:
3306 version "0.8.5"
3307 resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.8.5.tgz#dbd740cf6ca3b731296a63ce6f6d961851f336df"
3308 dependencies:
3309 ansi-regex "^1.1.1"
3310 chalk "^1.0.0"
3311 cli-width "^1.0.1"
3312 figures "^1.3.5"
3313 lodash "^3.3.1"
3314 readline2 "^0.1.1"
3315 rx "^2.4.3"
3316 through "^2.3.6"
3317
3318inquirer@^3.0.6:
3319 version "3.3.0"
3320 resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
3321 dependencies:
3322 ansi-escapes "^3.0.0"
3323 chalk "^2.0.0"
3324 cli-cursor "^2.1.0"
3325 cli-width "^2.0.0"
3326 external-editor "^2.0.4"
3327 figures "^2.0.0"
3328 lodash "^4.3.0"
3329 mute-stream "0.0.7"
3330 run-async "^2.2.0"
3331 rx-lite "^4.0.8"
3332 rx-lite-aggregates "^4.0.8"
3333 string-width "^2.1.0"
3334 strip-ansi "^4.0.0"
3335 through "^2.3.6"
3336
3337interpret@^1.0.0:
3338 version "1.0.3"
3339 resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90"
3340
3341intl-format-cache@^2.0.5:
3342 version "2.0.5"
3343 resolved "https://registry.yarnpkg.com/intl-format-cache/-/intl-format-cache-2.0.5.tgz#b484cefcb9353f374f25de389a3ceea1af18d7c9"
3344
3345intl-messageformat-parser@1.2.0:
3346 version "1.2.0"
3347 resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-1.2.0.tgz#5906b7f953ab7470e0dc8549097b648b991892ff"
3348
3349intl-messageformat@1.3.0, intl-messageformat@^1.3.0:
3350 version "1.3.0"
3351 resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-1.3.0.tgz#f7d926aded7a3ab19b2dc601efd54e99a4bd4eae"
3352 dependencies:
3353 intl-messageformat-parser "1.2.0"
3354
3355intl-relativeformat@^1.3.0:
3356 version "1.3.0"
3357 resolved "https://registry.yarnpkg.com/intl-relativeformat/-/intl-relativeformat-1.3.0.tgz#893dc7076fccd380cf091a2300c380fa57ace45b"
3358 dependencies:
3359 intl-messageformat "1.3.0"
3360
3361invariant@^2.1.1, invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2:
3362 version "2.2.2"
3363 resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
3364 dependencies:
3365 loose-envify "^1.0.0"
3366
3367invert-kv@^1.0.0:
3368 version "1.0.0"
3369 resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
3370
3371is-absolute@^0.2.3:
3372 version "0.2.6"
3373 resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb"
3374 dependencies:
3375 is-relative "^0.2.1"
3376 is-windows "^0.2.0"
3377
3378is-arrayish@^0.2.1:
3379 version "0.2.1"
3380 resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
3381
3382is-binary-path@^1.0.0:
3383 version "1.0.1"
3384 resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
3385 dependencies:
3386 binary-extensions "^1.0.0"
3387
3388is-buffer@^1.1.5:
3389 version "1.1.5"
3390 resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
3391
3392is-builtin-module@^1.0.0:
3393 version "1.0.0"
3394 resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
3395 dependencies:
3396 builtin-modules "^1.0.0"
3397
3398is-callable@^1.1.1, is-callable@^1.1.3:
3399 version "1.1.3"
3400 resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"
3401
3402is-ci@^1.0.10:
3403 version "1.0.10"
3404 resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e"
3405 dependencies:
3406 ci-info "^1.0.0"
3407
3408is-date-object@^1.0.1:
3409 version "1.0.1"
3410 resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
3411
3412is-dotfile@^1.0.0:
3413 version "1.0.3"
3414 resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
3415
3416is-equal-shallow@^0.1.3:
3417 version "0.1.3"
3418 resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
3419 dependencies:
3420 is-primitive "^2.0.0"
3421
3422is-extendable@^0.1.0, is-extendable@^0.1.1:
3423 version "0.1.1"
3424 resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
3425
3426is-extglob@^1.0.0:
3427 version "1.0.0"
3428 resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
3429
3430is-extglob@^2.1.0:
3431 version "2.1.1"
3432 resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
3433
3434is-finite@^1.0.0:
3435 version "1.0.2"
3436 resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
3437 dependencies:
3438 number-is-nan "^1.0.0"
3439
3440is-fullwidth-code-point@^1.0.0:
3441 version "1.0.0"
3442 resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
3443 dependencies:
3444 number-is-nan "^1.0.0"
3445
3446is-fullwidth-code-point@^2.0.0:
3447 version "2.0.0"
3448 resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
3449
3450is-glob@^2.0.0, is-glob@^2.0.1:
3451 version "2.0.1"
3452 resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
3453 dependencies:
3454 is-extglob "^1.0.0"
3455
3456is-glob@^3.1.0:
3457 version "3.1.0"
3458 resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
3459 dependencies:
3460 is-extglob "^2.1.0"
3461
3462is-my-json-valid@^2.12.4:
3463 version "2.17.1"
3464 resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz#3da98914a70a22f0a8563ef1511a246c6fc55471"
3465 dependencies:
3466 generate-function "^2.0.0"
3467 generate-object-property "^1.1.0"
3468 jsonpointer "^4.0.0"
3469 xtend "^4.0.0"
3470
3471is-npm@^1.0.0:
3472 version "1.0.0"
3473 resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4"
3474
3475is-number@^2.1.0:
3476 version "2.1.0"
3477 resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
3478 dependencies:
3479 kind-of "^3.0.2"
3480
3481is-number@^3.0.0:
3482 version "3.0.0"
3483 resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
3484 dependencies:
3485 kind-of "^3.0.2"
3486
3487is-obj@^1.0.0:
3488 version "1.0.1"
3489 resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
3490
3491is-path-cwd@^1.0.0:
3492 version "1.0.0"
3493 resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
3494
3495is-path-in-cwd@^1.0.0:
3496 version "1.0.0"
3497 resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc"
3498 dependencies:
3499 is-path-inside "^1.0.0"
3500
3501is-path-inside@^1.0.0:
3502 version "1.0.0"
3503 resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f"
3504 dependencies:
3505 path-is-inside "^1.0.1"
3506
3507is-plain-obj@^1.0.0:
3508 version "1.1.0"
3509 resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
3510
3511is-plain-object@^2.0.1, is-plain-object@^2.0.3:
3512 version "2.0.4"
3513 resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
3514 dependencies:
3515 isobject "^3.0.1"
3516
3517is-posix-bracket@^0.1.0:
3518 version "0.1.1"
3519 resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
3520
3521is-primitive@^2.0.0:
3522 version "2.0.0"
3523 resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
3524
3525is-promise@^2.1.0:
3526 version "2.1.0"
3527 resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
3528
3529is-property@^1.0.0:
3530 version "1.0.2"
3531 resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
3532
3533is-redirect@^1.0.0:
3534 version "1.0.0"
3535 resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
3536
3537is-regex@^1.0.4:
3538 version "1.0.4"
3539 resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
3540 dependencies:
3541 has "^1.0.1"
3542
3543is-relative@^0.2.1:
3544 version "0.2.1"
3545 resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.2.1.tgz#d27f4c7d516d175fb610db84bbeef23c3bc97aa5"
3546 dependencies:
3547 is-unc-path "^0.1.1"
3548
3549is-resolvable@^1.0.0:
3550 version "1.0.0"
3551 resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62"
3552 dependencies:
3553 tryit "^1.0.1"
3554
3555is-retry-allowed@^1.0.0:
3556 version "1.1.0"
3557 resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
3558
3559is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0:
3560 version "1.1.0"
3561 resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
3562
3563is-symbol@^1.0.1:
3564 version "1.0.1"
3565 resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
3566
3567is-typedarray@~1.0.0:
3568 version "1.0.0"
3569 resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
3570
3571is-unc-path@^0.1.1:
3572 version "0.1.2"
3573 resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-0.1.2.tgz#6ab053a72573c10250ff416a3814c35178af39b9"
3574 dependencies:
3575 unc-path-regex "^0.1.0"
3576
3577is-url@^1.1.0:
3578 version "1.2.2"
3579 resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.2.tgz#498905a593bf47cc2d9e7f738372bbf7696c7f26"
3580
3581is-utf8@^0.2.0:
3582 version "0.2.1"
3583 resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
3584
3585is-valid-glob@^0.3.0:
3586 version "0.3.0"
3587 resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe"
3588
3589is-windows@^0.2.0:
3590 version "0.2.0"
3591 resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c"
3592
3593is-windows@^1.0.0:
3594 version "1.0.1"
3595 resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.1.tgz#310db70f742d259a16a369202b51af84233310d9"
3596
3597is@~0.3.0:
3598 version "0.3.0"
3599 resolved "https://registry.yarnpkg.com/is/-/is-0.3.0.tgz#a8f71dfc8a6e28371627f26c929098c6f4d5d5d7"
3600
3601isarray@0.0.1:
3602 version "0.0.1"
3603 resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
3604
3605isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
3606 version "1.0.0"
3607 resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
3608
3609isbinaryfile@^3.0.2:
3610 version "3.0.2"
3611 resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621"
3612
3613isemail@1.x.x:
3614 version "1.2.0"
3615 resolved "https://registry.yarnpkg.com/isemail/-/isemail-1.2.0.tgz#be03df8cc3e29de4d2c5df6501263f1fa4595e9a"
3616
3617isexe@^2.0.0:
3618 version "2.0.0"
3619 resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
3620
3621isobject@^2.0.0:
3622 version "2.1.0"
3623 resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
3624 dependencies:
3625 isarray "1.0.0"
3626
3627isobject@^3.0.0, isobject@^3.0.1:
3628 version "3.0.1"
3629 resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
3630
3631isomorphic-fetch@^2.1.1:
3632 version "2.2.1"
3633 resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
3634 dependencies:
3635 node-fetch "^1.0.1"
3636 whatwg-fetch ">=0.10.0"
3637
3638isstream@~0.1.2:
3639 version "0.1.2"
3640 resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
3641
3642joi@^6.10.1:
3643 version "6.10.1"
3644 resolved "https://registry.yarnpkg.com/joi/-/joi-6.10.1.tgz#4d50c318079122000fe5f16af1ff8e1917b77e06"
3645 dependencies:
3646 hoek "2.x.x"
3647 isemail "1.x.x"
3648 moment "2.x.x"
3649 topo "1.x.x"
3650
3651js-base64@^2.1.8:
3652 version "2.1.9"
3653 resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce"
3654
3655js-tokens@^3.0.0, js-tokens@^3.0.2:
3656 version "3.0.2"
3657 resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
3658
3659js-yaml@^3.9.0, js-yaml@^3.9.1:
3660 version "3.9.1"
3661 resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.9.1.tgz#08775cebdfdd359209f0d2acd383c8f86a6904a0"
3662 dependencies:
3663 argparse "^1.0.7"
3664 esprima "^4.0.0"
3665
3666jsbn@~0.1.0:
3667 version "0.1.1"
3668 resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
3669
3670jschardet@^1.4.2:
3671 version "1.5.1"
3672 resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.5.1.tgz#c519f629f86b3a5bedba58a88d311309eec097f9"
3673
3674jsesc@^1.3.0:
3675 version "1.3.0"
3676 resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
3677
3678jsesc@~0.5.0:
3679 version "0.5.0"
3680 resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
3681
3682jshashes@^1.0.6:
3683 version "1.0.7"
3684 resolved "https://registry.yarnpkg.com/jshashes/-/jshashes-1.0.7.tgz#bed8c97a0e9632fd0513916f55f76dd5486be59f"
3685
3686json-schema-traverse@^0.3.0:
3687 version "0.3.1"
3688 resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
3689
3690json-schema@0.2.3:
3691 version "0.2.3"
3692 resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
3693
3694json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1:
3695 version "1.0.1"
3696 resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
3697 dependencies:
3698 jsonify "~0.0.0"
3699
3700json-stringify-safe@~5.0.1:
3701 version "5.0.1"
3702 resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
3703
3704json3@3.3.2:
3705 version "3.3.2"
3706 resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
3707
3708json5@^0.5.0, json5@^0.5.1:
3709 version "0.5.1"
3710 resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
3711
3712jsonfile@^2.1.0, jsonfile@^2.2.3:
3713 version "2.4.0"
3714 resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
3715 optionalDependencies:
3716 graceful-fs "^4.1.6"
3717
3718jsonfile@^3.0.0:
3719 version "3.0.1"
3720 resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66"
3721 optionalDependencies:
3722 graceful-fs "^4.1.6"
3723
3724jsonify@~0.0.0:
3725 version "0.0.0"
3726 resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
3727
3728jsonpointer@^4.0.0:
3729 version "4.0.1"
3730 resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
3731
3732jsonwebtoken@^7.4.1:
3733 version "7.4.3"
3734 resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-7.4.3.tgz#77f5021de058b605a1783fa1283e99812e645638"
3735 dependencies:
3736 joi "^6.10.1"
3737 jws "^3.1.4"
3738 lodash.once "^4.0.0"
3739 ms "^2.0.0"
3740 xtend "^4.0.1"
3741
3742jsprim@^1.2.2:
3743 version "1.4.1"
3744 resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
3745 dependencies:
3746 assert-plus "1.0.0"
3747 extsprintf "1.3.0"
3748 json-schema "0.2.3"
3749 verror "1.10.0"
3750
3751jsx-ast-utils@^1.0.0, jsx-ast-utils@^1.3.4:
3752 version "1.4.1"
3753 resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1"
3754
3755jwa@^1.1.4:
3756 version "1.1.5"
3757 resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.1.5.tgz#a0552ce0220742cd52e153774a32905c30e756e5"
3758 dependencies:
3759 base64url "2.0.0"
3760 buffer-equal-constant-time "1.0.1"
3761 ecdsa-sig-formatter "1.0.9"
3762 safe-buffer "^5.0.1"
3763
3764jws@^3.1.4:
3765 version "3.1.4"
3766 resolved "https://registry.yarnpkg.com/jws/-/jws-3.1.4.tgz#f9e8b9338e8a847277d6444b1464f61880e050a2"
3767 dependencies:
3768 base64url "^2.0.0"
3769 jwa "^1.1.4"
3770 safe-buffer "^5.0.1"
3771
3772keyboard-layout@^2.0.7:
3773 version "2.0.13"
3774 resolved "https://registry.yarnpkg.com/keyboard-layout/-/keyboard-layout-2.0.13.tgz#5b4f5c25835e5d221a7b9da897663100d897487d"
3775 dependencies:
3776 event-kit "^2.0.0"
3777 nan "^2.0.0"
3778
3779keymaster@^1.6.2:
3780 version "1.6.2"
3781 resolved "https://registry.yarnpkg.com/keymaster/-/keymaster-1.6.2.tgz#e1ae54d0ea9488f9f60b66b668f02e9a1946c6eb"
3782
3783kind-of@^3.0.2, kind-of@^3.1.0:
3784 version "3.2.2"
3785 resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
3786 dependencies:
3787 is-buffer "^1.1.5"
3788
3789kind-of@^4.0.0:
3790 version "4.0.0"
3791 resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
3792 dependencies:
3793 is-buffer "^1.1.5"
3794
3795klaw@^1.0.0:
3796 version "1.3.1"
3797 resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
3798 optionalDependencies:
3799 graceful-fs "^4.1.9"
3800
3801last-run@^1.1.0:
3802 version "1.1.1"
3803 resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b"
3804 dependencies:
3805 default-resolution "^2.0.0"
3806 es6-weak-map "^2.0.1"
3807
3808latest-version@^3.0.0:
3809 version "3.1.0"
3810 resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15"
3811 dependencies:
3812 package-json "^4.0.0"
3813
3814lazy-val@^1.0.2:
3815 version "1.0.2"
3816 resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.2.tgz#d9b07fb1fce54cbc99b3c611de431b83249369b6"
3817
3818lazystream@^1.0.0:
3819 version "1.0.0"
3820 resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4"
3821 dependencies:
3822 readable-stream "^2.0.5"
3823
3824lcid@^1.0.0:
3825 version "1.0.0"
3826 resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
3827 dependencies:
3828 invert-kv "^1.0.0"
3829
3830levn@^0.3.0, levn@~0.3.0:
3831 version "0.3.0"
3832 resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
3833 dependencies:
3834 prelude-ls "~1.1.2"
3835 type-check "~0.3.2"
3836
3837liftoff@^2.1.0, liftoff@^2.3.0:
3838 version "2.3.0"
3839 resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.3.0.tgz#a98f2ff67183d8ba7cfaca10548bd7ff0550b385"
3840 dependencies:
3841 extend "^3.0.0"
3842 findup-sync "^0.4.2"
3843 fined "^1.0.1"
3844 flagged-respawn "^0.3.2"
3845 lodash.isplainobject "^4.0.4"
3846 lodash.isstring "^4.0.1"
3847 lodash.mapvalues "^4.4.0"
3848 rechoir "^0.6.2"
3849 resolve "^1.1.7"
3850
3851load-json-file@^1.0.0:
3852 version "1.1.0"
3853 resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
3854 dependencies:
3855 graceful-fs "^4.1.2"
3856 parse-json "^2.2.0"
3857 pify "^2.0.0"
3858 pinkie-promise "^2.0.0"
3859 strip-bom "^2.0.0"
3860
3861load-json-file@^2.0.0:
3862 version "2.0.0"
3863 resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
3864 dependencies:
3865 graceful-fs "^4.1.2"
3866 parse-json "^2.2.0"
3867 pify "^2.0.0"
3868 strip-bom "^3.0.0"
3869
3870loader-fs-cache@^1.0.0:
3871 version "1.0.1"
3872 resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz#56e0bf08bd9708b26a765b68509840c8dec9fdbc"
3873 dependencies:
3874 find-cache-dir "^0.1.1"
3875 mkdirp "0.5.1"
3876
3877loader-utils@^1.0.2:
3878 version "1.1.0"
3879 resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd"
3880 dependencies:
3881 big.js "^3.1.3"
3882 emojis-list "^2.0.0"
3883 json5 "^0.5.0"
3884
3885locate-path@^2.0.0:
3886 version "2.0.0"
3887 resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
3888 dependencies:
3889 p-locate "^2.0.0"
3890 path-exists "^3.0.0"
3891
3892lodash._basecopy@^3.0.0:
3893 version "3.0.1"
3894 resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
3895
3896lodash._basetostring@^3.0.0:
3897 version "3.0.1"
3898 resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5"
3899
3900lodash._basevalues@^3.0.0:
3901 version "3.0.0"
3902 resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7"
3903
3904lodash._getnative@^3.0.0:
3905 version "3.9.1"
3906 resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
3907
3908lodash._isiterateecall@^3.0.0:
3909 version "3.0.9"
3910 resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
3911
3912lodash._reescape@^3.0.0:
3913 version "3.0.0"
3914 resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a"
3915
3916lodash._reevaluate@^3.0.0:
3917 version "3.0.0"
3918 resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed"
3919
3920lodash._reinterpolate@^3.0.0:
3921 version "3.0.0"
3922 resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
3923
3924lodash._root@^3.0.0:
3925 version "3.0.1"
3926 resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692"
3927
3928lodash.assign@^4.2.0:
3929 version "4.2.0"
3930 resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
3931
3932lodash.camelcase@^4.3.0:
3933 version "4.3.0"
3934 resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
3935
3936lodash.clonedeep@^4.3.2:
3937 version "4.5.0"
3938 resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
3939
3940lodash.cond@^4.3.0:
3941 version "4.5.2"
3942 resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5"
3943
3944lodash.debounce@^4.0.6:
3945 version "4.0.8"
3946 resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
3947
3948lodash.escape@^3.0.0:
3949 version "3.2.0"
3950 resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698"
3951 dependencies:
3952 lodash._root "^3.0.0"
3953
3954lodash.get@^4.0.0, lodash.get@^4.4.2:
3955 version "4.4.2"
3956 resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
3957
3958lodash.isarguments@^3.0.0:
3959 version "3.1.0"
3960 resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
3961
3962lodash.isarray@^3.0.0:
3963 version "3.0.4"
3964 resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
3965
3966lodash.isequal@^4.0.0, lodash.isequal@^4.5.0:
3967 version "4.5.0"
3968 resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
3969
3970lodash.isfunction@^3.0.8:
3971 version "3.0.8"
3972 resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.8.tgz#4db709fc81bc4a8fd7127a458a5346c5cdce2c6b"
3973
3974lodash.isplainobject@^4.0.4:
3975 version "4.0.6"
3976 resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
3977
3978lodash.isstring@^4.0.1:
3979 version "4.0.1"
3980 resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
3981
3982lodash.keys@^3.0.0:
3983 version "3.1.2"
3984 resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
3985 dependencies:
3986 lodash._getnative "^3.0.0"
3987 lodash.isarguments "^3.0.0"
3988 lodash.isarray "^3.0.0"
3989
3990lodash.map@^4.5.1:
3991 version "4.6.0"
3992 resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3"
3993
3994lodash.mapvalues@^4.4.0:
3995 version "4.6.0"
3996 resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c"
3997
3998lodash.mergewith@^4.6.0:
3999 version "4.6.0"
4000 resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55"
4001
4002lodash.once@^4.0.0:
4003 version "4.1.1"
4004 resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
4005
4006lodash.restparam@^3.0.0:
4007 version "3.6.1"
4008 resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
4009
4010lodash.sortby@^4.5.0:
4011 version "4.7.0"
4012 resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
4013
4014lodash.template@^3.0.0:
4015 version "3.6.2"
4016 resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f"
4017 dependencies:
4018 lodash._basecopy "^3.0.0"
4019 lodash._basetostring "^3.0.0"
4020 lodash._basevalues "^3.0.0"
4021 lodash._isiterateecall "^3.0.0"
4022 lodash._reinterpolate "^3.0.0"
4023 lodash.escape "^3.0.0"
4024 lodash.keys "^3.0.0"
4025 lodash.restparam "^3.0.0"
4026 lodash.templatesettings "^3.0.0"
4027
4028lodash.templatesettings@^3.0.0:
4029 version "3.1.1"
4030 resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5"
4031 dependencies:
4032 lodash._reinterpolate "^3.0.0"
4033 lodash.escape "^3.0.0"
4034
4035lodash.toarray@^4.4.0:
4036 version "4.4.0"
4037 resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561"
4038
4039lodash@^3.3.1, lodash@^3.6.0:
4040 version "3.10.1"
4041 resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
4042
4043lodash@^4.0.0, lodash@^4.12.0, lodash@^4.16.2, lodash@^4.17.4, lodash@^4.3.0, lodash@~4.17.4:
4044 version "4.17.4"
4045 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
4046
4047lodash@~1.0.1:
4048 version "1.0.2"
4049 resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551"
4050
4051log-symbols@^1.0.2:
4052 version "1.0.2"
4053 resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
4054 dependencies:
4055 chalk "^1.0.0"
4056
4057longest@^1.0.1:
4058 version "1.0.1"
4059 resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
4060
4061loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1:
4062 version "1.3.1"
4063 resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
4064 dependencies:
4065 js-tokens "^3.0.0"
4066
4067loud-rejection@^1.0.0:
4068 version "1.6.0"
4069 resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
4070 dependencies:
4071 currently-unhandled "^0.4.1"
4072 signal-exit "^3.0.0"
4073
4074lowercase-keys@^1.0.0:
4075 version "1.0.0"
4076 resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306"
4077
4078lru-cache@2:
4079 version "2.7.3"
4080 resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952"
4081
4082lru-cache@^4.0.1, lru-cache@^4.0.2:
4083 version "4.1.1"
4084 resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55"
4085 dependencies:
4086 pseudomap "^1.0.2"
4087 yallist "^2.1.2"
4088
4089macaddress@^0.2.7:
4090 version "0.2.8"
4091 resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12"
4092
4093macos-notification-state@^1.1.0:
4094 version "1.1.0"
4095 resolved "https://registry.yarnpkg.com/macos-notification-state/-/macos-notification-state-1.1.0.tgz#ee59671e05c1ec388c0b09101ef611c85b4b4e0e"
4096 dependencies:
4097 bindings "^1.2.1"
4098 nan "^2.4.0"
4099
4100make-dir@^1.0.0:
4101 version "1.0.0"
4102 resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978"
4103 dependencies:
4104 pify "^2.3.0"
4105
4106make-iterator@^1.0.0:
4107 version "1.0.0"
4108 resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.0.tgz#57bef5dc85d23923ba23767324d8e8f8f3d9694b"
4109 dependencies:
4110 kind-of "^3.1.0"
4111
4112map-cache@^0.2.0:
4113 version "0.2.2"
4114 resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
4115
4116map-obj@^1.0.0, map-obj@^1.0.1:
4117 version "1.0.1"
4118 resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
4119
4120matchdep@^1.0.0:
4121 version "1.0.1"
4122 resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-1.0.1.tgz#a57a33804491fbae208aba8f68380437abc2dca5"
4123 dependencies:
4124 findup-sync "~0.3.0"
4125 micromatch "^2.3.7"
4126 resolve "~1.1.6"
4127 stack-trace "0.0.9"
4128
4129mdi@^1.9.33:
4130 version "1.9.33"
4131 resolved "https://registry.yarnpkg.com/mdi/-/mdi-1.9.33.tgz#3caf6d95fc6b800633630bd62ba0cf1fbde6b2e2"
4132
4133mem@^1.1.0:
4134 version "1.1.0"
4135 resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
4136 dependencies:
4137 mimic-fn "^1.0.0"
4138
4139meow@^3.1.0, meow@^3.7.0:
4140 version "3.7.0"
4141 resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
4142 dependencies:
4143 camelcase-keys "^2.0.0"
4144 decamelize "^1.1.2"
4145 loud-rejection "^1.0.0"
4146 map-obj "^1.0.1"
4147 minimist "^1.1.3"
4148 normalize-package-data "^2.3.4"
4149 object-assign "^4.0.1"
4150 read-pkg-up "^1.0.1"
4151 redent "^1.0.0"
4152 trim-newlines "^1.0.0"
4153
4154merge-stream@^0.1.7:
4155 version "0.1.8"
4156 resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-0.1.8.tgz#48a07b3b4a121d74a3edbfdcdb4b08adbf0240b1"
4157 dependencies:
4158 through2 "^0.6.1"
4159
4160merge-stream@^1.0.0:
4161 version "1.0.1"
4162 resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1"
4163 dependencies:
4164 readable-stream "^2.0.1"
4165
4166micromatch@^2.1.5, micromatch@^2.3.7:
4167 version "2.3.11"
4168 resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
4169 dependencies:
4170 arr-diff "^2.0.0"
4171 array-unique "^0.2.1"
4172 braces "^1.8.2"
4173 expand-brackets "^0.1.4"
4174 extglob "^0.3.1"
4175 filename-regex "^2.0.0"
4176 is-extglob "^1.0.0"
4177 is-glob "^2.0.1"
4178 kind-of "^3.0.2"
4179 normalize-path "^2.0.1"
4180 object.omit "^2.0.0"
4181 parse-glob "^3.0.4"
4182 regex-cache "^0.4.2"
4183
4184mime-db@~1.30.0:
4185 version "1.30.0"
4186 resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
4187
4188mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.7:
4189 version "2.1.17"
4190 resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
4191 dependencies:
4192 mime-db "~1.30.0"
4193
4194mime-types@~1.0.0:
4195 version "1.0.2"
4196 resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-1.0.2.tgz#995ae1392ab8affcbfcb2641dd054e943c0d5dce"
4197
4198mime@1.2.11:
4199 version "1.2.11"
4200 resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10"
4201
4202mime@^1.3.4, mime@^1.3.6:
4203 version "1.4.0"
4204 resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.0.tgz#69e9e0db51d44f2a3b56e48b7817d7d137f1a343"
4205
4206mimic-fn@^1.0.0:
4207 version "1.1.0"
4208 resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
4209
4210"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2:
4211 version "3.0.4"
4212 resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
4213 dependencies:
4214 brace-expansion "^1.1.7"
4215
4216minimatch@^2.0.1:
4217 version "2.0.10"
4218 resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7"
4219 dependencies:
4220 brace-expansion "^1.0.0"
4221
4222minimatch@~0.2.11:
4223 version "0.2.14"
4224 resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a"
4225 dependencies:
4226 lru-cache "2"
4227 sigmund "~1.0.0"
4228
4229minimist@0.0.8:
4230 version "0.0.8"
4231 resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
4232
4233minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0:
4234 version "1.2.0"
4235 resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
4236
4237minipass@^2.2.1:
4238 version "2.2.1"
4239 resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.2.1.tgz#5ada97538b1027b4cf7213432428578cb564011f"
4240 dependencies:
4241 yallist "^3.0.0"
4242
4243minizlib@^1.0.4:
4244 version "1.0.4"
4245 resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.0.4.tgz#8ebb51dd8bbe40b0126b5633dbb36b284a2f523c"
4246 dependencies:
4247 minipass "^2.2.1"
4248
4249mkdirp@0.5.0:
4250 version "0.5.0"
4251 resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12"
4252 dependencies:
4253 minimist "0.0.8"
4254
4255mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0:
4256 version "0.5.1"
4257 resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
4258 dependencies:
4259 minimist "0.0.8"
4260
4261mkpath@^0.1.0:
4262 version "0.1.0"
4263 resolved "https://registry.yarnpkg.com/mkpath/-/mkpath-0.1.0.tgz#7554a6f8d871834cc97b5462b122c4c124d6de91"
4264
4265mksnapshot@^0.3.0:
4266 version "0.3.1"
4267 resolved "https://registry.yarnpkg.com/mksnapshot/-/mksnapshot-0.3.1.tgz#2501c05657436d742ce958a4ff92c77e40dd37e6"
4268 dependencies:
4269 decompress-zip "0.3.0"
4270 fs-extra "0.26.7"
4271 request "^2.79.0"
4272
4273mobx-localstorage@^0.1.7:
4274 version "0.1.7"
4275 resolved "https://registry.yarnpkg.com/mobx-localstorage/-/mobx-localstorage-0.1.7.tgz#c0c64366769f390ca4a333f41912eae00cd4a9de"
4276
4277mobx-react-form@^1.32.2:
4278 version "1.32.2"
4279 resolved "https://registry.yarnpkg.com/mobx-react-form/-/mobx-react-form-1.32.2.tgz#5610dd0e4fab006acf2daf1becbedecad182a5a0"
4280 dependencies:
4281 lodash "^4.16.2"
4282
4283mobx-react-router@^3.1.2:
4284 version "3.1.2"
4285 resolved "https://registry.yarnpkg.com/mobx-react-router/-/mobx-react-router-3.1.2.tgz#83328b108393017148d86fea17f611de2d2aacdc"
4286
4287mobx-react@^4.1.0:
4288 version "4.2.2"
4289 resolved "https://registry.yarnpkg.com/mobx-react/-/mobx-react-4.2.2.tgz#db9cc3cafefbd830d0584c1149af5aae67829201"
4290 dependencies:
4291 hoist-non-react-statics "^1.2.0"
4292
4293mobx@^3.1.0:
4294 version "3.2.2"
4295 resolved "https://registry.yarnpkg.com/mobx/-/mobx-3.2.2.tgz#aa671459bededfd9880c948889a3f62bce09279c"
4296
4297moment@2.x.x, moment@^2.17.1:
4298 version "2.18.1"
4299 resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f"
4300
4301ms@0.6.2:
4302 version "0.6.2"
4303 resolved "https://registry.yarnpkg.com/ms/-/ms-0.6.2.tgz#d89c2124c6fdc1353d65a8b77bf1aac4b193708c"
4304
4305ms@0.7.1:
4306 version "0.7.1"
4307 resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
4308
4309ms@0.7.2:
4310 version "0.7.2"
4311 resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765"
4312
4313ms@2.0.0, ms@^2.0.0:
4314 version "2.0.0"
4315 resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
4316
4317multipipe@^0.1.2:
4318 version "0.1.2"
4319 resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b"
4320 dependencies:
4321 duplexer2 "0.0.2"
4322
4323mute-stdout@^1.0.0:
4324 version "1.0.0"
4325 resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-1.0.0.tgz#5b32ea07eb43c9ded6130434cf926f46b2a7fd4d"
4326
4327mute-stream@0.0.4:
4328 version "0.0.4"
4329 resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.4.tgz#a9219960a6d5d5d046597aee51252c6655f7177e"
4330
4331mute-stream@0.0.7, mute-stream@~0.0.4:
4332 version "0.0.7"
4333 resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
4334
4335nan@^2.0.0, nan@^2.0.5, nan@^2.3.0, nan@^2.3.2, nan@^2.4.0, nan@^2.7.0:
4336 version "2.7.0"
4337 resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46"
4338
4339natives@^1.1.0:
4340 version "1.1.0"
4341 resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.0.tgz#e9ff841418a6b2ec7a495e939984f78f163e6e31"
4342
4343natural-compare@^1.4.0:
4344 version "1.4.0"
4345 resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
4346
4347negotiator@0.4.7:
4348 version "0.4.7"
4349 resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.4.7.tgz#a4160f7177ec806738631d0d3052325da42abdc8"
4350
4351negotiator@0.6.1:
4352 version "0.6.1"
4353 resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
4354
4355node-abi@^2.0.0:
4356 version "2.1.1"
4357 resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.1.1.tgz#c9cda256ec8aa99bcab2f6446db38af143338b2a"
4358
4359node-emoji@^1.6.1:
4360 version "1.8.1"
4361 resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.8.1.tgz#6eec6bfb07421e2148c75c6bba72421f8530a826"
4362 dependencies:
4363 lodash.toarray "^4.4.0"
4364
4365node-fetch@^1.0.1:
4366 version "1.7.2"
4367 resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7"
4368 dependencies:
4369 encoding "^0.1.11"
4370 is-stream "^1.0.1"
4371
4372node-gyp@^3.3.1, node-gyp@^3.6.0:
4373 version "3.6.2"
4374 resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60"
4375 dependencies:
4376 fstream "^1.0.0"
4377 glob "^7.0.3"
4378 graceful-fs "^4.1.2"
4379 minimatch "^3.0.2"
4380 mkdirp "^0.5.0"
4381 nopt "2 || 3"
4382 npmlog "0 || 1 || 2 || 3 || 4"
4383 osenv "0"
4384 request "2"
4385 rimraf "2"
4386 semver "~5.3.0"
4387 tar "^2.0.0"
4388 which "1"
4389
4390node-pre-gyp@^0.6.36:
4391 version "0.6.36"
4392 resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786"
4393 dependencies:
4394 mkdirp "^0.5.1"
4395 nopt "^4.0.1"
4396 npmlog "^4.0.2"
4397 rc "^1.1.7"
4398 request "^2.81.0"
4399 rimraf "^2.6.1"
4400 semver "^5.3.0"
4401 tar "^2.2.1"
4402 tar-pack "^3.4.0"
4403
4404node-sass@^4.2.0:
4405 version "4.5.3"
4406 resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.5.3.tgz#d09c9d1179641239d1b97ffc6231fdcec53e1568"
4407 dependencies:
4408 async-foreach "^0.1.3"
4409 chalk "^1.1.1"
4410 cross-spawn "^3.0.0"
4411 gaze "^1.0.0"
4412 get-stdin "^4.0.1"
4413 glob "^7.0.3"
4414 in-publish "^2.0.0"
4415 lodash.assign "^4.2.0"
4416 lodash.clonedeep "^4.3.2"
4417 lodash.mergewith "^4.6.0"
4418 meow "^3.7.0"
4419 mkdirp "^0.5.1"
4420 nan "^2.3.2"
4421 node-gyp "^3.3.1"
4422 npmlog "^4.0.0"
4423 request "^2.79.0"
4424 sass-graph "^2.1.1"
4425 stdout-stream "^1.4.0"
4426
4427node-sass@^4.7.2:
4428 version "4.7.2"
4429 resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.7.2.tgz#9366778ba1469eb01438a9e8592f4262bcb6794e"
4430 dependencies:
4431 async-foreach "^0.1.3"
4432 chalk "^1.1.1"
4433 cross-spawn "^3.0.0"
4434 gaze "^1.0.0"
4435 get-stdin "^4.0.1"
4436 glob "^7.0.3"
4437 in-publish "^2.0.0"
4438 lodash.assign "^4.2.0"
4439 lodash.clonedeep "^4.3.2"
4440 lodash.mergewith "^4.6.0"
4441 meow "^3.7.0"
4442 mkdirp "^0.5.1"
4443 nan "^2.3.2"
4444 node-gyp "^3.3.1"
4445 npmlog "^4.0.0"
4446 request "~2.79.0"
4447 sass-graph "^2.2.4"
4448 stdout-stream "^1.4.0"
4449 "true-case-path" "^1.0.2"
4450
4451node-watch@^0.3.4:
4452 version "0.3.5"
4453 resolved "https://registry.yarnpkg.com/node-watch/-/node-watch-0.3.5.tgz#a07f253a4f538de9d4ca522dd7f1996eeec0d97e"
4454
4455node.extend@~1.0.10:
4456 version "1.0.10"
4457 resolved "https://registry.yarnpkg.com/node.extend/-/node.extend-1.0.10.tgz#3269bddf81c54535f408abc784c32b0d2bd55f6f"
4458 dependencies:
4459 is "~0.3.0"
4460
4461"nopt@2 || 3", nopt@^3.0.1:
4462 version "3.0.6"
4463 resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
4464 dependencies:
4465 abbrev "1"
4466
4467nopt@^4.0.1:
4468 version "4.0.1"
4469 resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
4470 dependencies:
4471 abbrev "1"
4472 osenv "^0.1.4"
4473
4474nopt@~1.0.10:
4475 version "1.0.10"
4476 resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
4477 dependencies:
4478 abbrev "1"
4479
4480normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.4.0:
4481 version "2.4.0"
4482 resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
4483 dependencies:
4484 hosted-git-info "^2.1.4"
4485 is-builtin-module "^1.0.0"
4486 semver "2 || 3 || 4 || 5"
4487 validate-npm-package-license "^3.0.1"
4488
4489normalize-path@^2.0.0, normalize-path@^2.0.1:
4490 version "2.1.1"
4491 resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
4492 dependencies:
4493 remove-trailing-separator "^1.0.1"
4494
4495normalize-url@^1.9.1:
4496 version "1.9.1"
4497 resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c"
4498 dependencies:
4499 object-assign "^4.0.1"
4500 prepend-http "^1.0.0"
4501 query-string "^4.1.0"
4502 sort-keys "^1.0.0"
4503
4504now-and-later@^2.0.0:
4505 version "2.0.0"
4506 resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.0.tgz#bc61cbb456d79cb32207ce47ca05136ff2e7d6ee"
4507 dependencies:
4508 once "^1.3.2"
4509
4510npm-run-path@^2.0.0:
4511 version "2.0.2"
4512 resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
4513 dependencies:
4514 path-key "^2.0.0"
4515
4516"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2:
4517 version "4.1.2"
4518 resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
4519 dependencies:
4520 are-we-there-yet "~1.1.2"
4521 console-control-strings "~1.1.0"
4522 gauge "~2.7.3"
4523 set-blocking "~2.0.0"
4524
4525nugget@^2.0.0, nugget@^2.0.1:
4526 version "2.0.1"
4527 resolved "https://registry.yarnpkg.com/nugget/-/nugget-2.0.1.tgz#201095a487e1ad36081b3432fa3cada4f8d071b0"
4528 dependencies:
4529 debug "^2.1.3"
4530 minimist "^1.1.0"
4531 pretty-bytes "^1.0.2"
4532 progress-stream "^1.1.0"
4533 request "^2.45.0"
4534 single-line-log "^1.1.2"
4535 throttleit "0.0.2"
4536
4537number-is-nan@^1.0.0:
4538 version "1.0.1"
4539 resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
4540
4541oauth-sign@~0.8.1:
4542 version "0.8.2"
4543 resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
4544
4545object-assign@4.1.0:
4546 version "4.1.0"
4547 resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0"
4548
4549object-assign@^2.0.0:
4550 version "2.1.1"
4551 resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa"
4552
4553object-assign@^3.0.0:
4554 version "3.0.0"
4555 resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2"
4556
4557object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
4558 version "4.1.1"
4559 resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
4560
4561object-component@0.0.3:
4562 version "0.0.3"
4563 resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291"
4564
4565object-hash@^1.1.4:
4566 version "1.1.8"
4567 resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.1.8.tgz#28a659cf987d96a4dabe7860289f3b5326c4a03c"
4568
4569object-keys@^1.0.10, object-keys@^1.0.8:
4570 version "1.0.11"
4571 resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
4572
4573object-keys@~0.4.0:
4574 version "0.4.0"
4575 resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336"
4576
4577object.assign@^4.0.4:
4578 version "4.0.4"
4579 resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc"
4580 dependencies:
4581 define-properties "^1.1.2"
4582 function-bind "^1.1.0"
4583 object-keys "^1.0.10"
4584
4585object.defaults@^1.0.0, object.defaults@^1.1.0:
4586 version "1.1.0"
4587 resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf"
4588 dependencies:
4589 array-each "^1.0.1"
4590 array-slice "^1.0.0"
4591 for-own "^1.0.0"
4592 isobject "^3.0.0"
4593
4594object.omit@^2.0.0:
4595 version "2.0.1"
4596 resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
4597 dependencies:
4598 for-own "^0.1.4"
4599 is-extendable "^0.1.1"
4600
4601object.pick@^1.2.0:
4602 version "1.3.0"
4603 resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
4604 dependencies:
4605 isobject "^3.0.1"
4606
4607object.reduce@^1.0.0:
4608 version "1.0.1"
4609 resolved "https://registry.yarnpkg.com/object.reduce/-/object.reduce-1.0.1.tgz#6fe348f2ac7fa0f95ca621226599096825bb03ad"
4610 dependencies:
4611 for-own "^1.0.0"
4612 make-iterator "^1.0.0"
4613
4614on-finished@2.1.0:
4615 version "2.1.0"
4616 resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.1.0.tgz#0c539f09291e8ffadde0c8a25850fb2cedc7022d"
4617 dependencies:
4618 ee-first "1.0.5"
4619
4620once@^1.3.0, once@^1.3.2, once@^1.3.3, once@^1.4.0:
4621 version "1.4.0"
4622 resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
4623 dependencies:
4624 wrappy "1"
4625
4626onetime@^2.0.0:
4627 version "2.0.1"
4628 resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
4629 dependencies:
4630 mimic-fn "^1.0.0"
4631
4632open@~0.0.5:
4633 version "0.0.5"
4634 resolved "https://registry.yarnpkg.com/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc"
4635
4636optionator@^0.8.2:
4637 version "0.8.2"
4638 resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
4639 dependencies:
4640 deep-is "~0.1.3"
4641 fast-levenshtein "~2.0.4"
4642 levn "~0.3.0"
4643 prelude-ls "~1.1.2"
4644 type-check "~0.3.2"
4645 wordwrap "~1.0.0"
4646
4647options@>=0.0.5:
4648 version "0.0.6"
4649 resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f"
4650
4651ora@^1.2.0:
4652 version "1.3.0"
4653 resolved "https://registry.yarnpkg.com/ora/-/ora-1.3.0.tgz#80078dd2b92a934af66a3ad72a5b910694ede51a"
4654 dependencies:
4655 chalk "^1.1.1"
4656 cli-cursor "^2.1.0"
4657 cli-spinners "^1.0.0"
4658 log-symbols "^1.0.2"
4659
4660ordered-read-streams@^0.1.0:
4661 version "0.1.0"
4662 resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126"
4663
4664ordered-read-streams@^0.3.0:
4665 version "0.3.0"
4666 resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b"
4667 dependencies:
4668 is-stream "^1.0.1"
4669 readable-stream "^2.0.1"
4670
4671os-homedir@^1.0.0, os-homedir@^1.0.1:
4672 version "1.0.2"
4673 resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
4674
4675os-locale@^1.4.0:
4676 version "1.4.0"
4677 resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
4678 dependencies:
4679 lcid "^1.0.0"
4680
4681os-locale@^2.0.0:
4682 version "2.1.0"
4683 resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
4684 dependencies:
4685 execa "^0.7.0"
4686 lcid "^1.0.0"
4687 mem "^1.1.0"
4688
4689os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2:
4690 version "1.0.2"
4691 resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
4692
4693osenv@0, osenv@^0.1.4:
4694 version "0.1.4"
4695 resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644"
4696 dependencies:
4697 os-homedir "^1.0.0"
4698 os-tmpdir "^1.0.0"
4699
4700p-finally@^1.0.0:
4701 version "1.0.0"
4702 resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
4703
4704p-limit@^1.1.0:
4705 version "1.1.0"
4706 resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc"
4707
4708p-locate@^2.0.0:
4709 version "2.0.0"
4710 resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
4711 dependencies:
4712 p-limit "^1.1.0"
4713
4714package-json@^4.0.0:
4715 version "4.0.1"
4716 resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed"
4717 dependencies:
4718 got "^6.7.1"
4719 registry-auth-token "^3.0.1"
4720 registry-url "^3.0.3"
4721 semver "^5.1.0"
4722
4723pad-right@^0.2.2:
4724 version "0.2.2"
4725 resolved "https://registry.yarnpkg.com/pad-right/-/pad-right-0.2.2.tgz#6fbc924045d244f2a2a244503060d3bfc6009774"
4726 dependencies:
4727 repeat-string "^1.5.2"
4728
4729parse-color@^1.0.0:
4730 version "1.0.0"
4731 resolved "https://registry.yarnpkg.com/parse-color/-/parse-color-1.0.0.tgz#7b748b95a83f03f16a94f535e52d7f3d94658619"
4732 dependencies:
4733 color-convert "~0.5.0"
4734
4735parse-filepath@^1.0.1:
4736 version "1.0.1"
4737 resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.1.tgz#159d6155d43904d16c10ef698911da1e91969b73"
4738 dependencies:
4739 is-absolute "^0.2.3"
4740 map-cache "^0.2.0"
4741 path-root "^0.1.1"
4742
4743parse-glob@^3.0.4:
4744 version "3.0.4"
4745 resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
4746 dependencies:
4747 glob-base "^0.3.0"
4748 is-dotfile "^1.0.0"
4749 is-extglob "^1.0.0"
4750 is-glob "^2.0.0"
4751
4752parse-json@^2.2.0:
4753 version "2.2.0"
4754 resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
4755 dependencies:
4756 error-ex "^1.2.0"
4757
4758parse-passwd@^1.0.0:
4759 version "1.0.0"
4760 resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
4761
4762parsejson@0.0.3:
4763 version "0.0.3"
4764 resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab"
4765 dependencies:
4766 better-assert "~1.0.0"
4767
4768parseqs@0.0.5:
4769 version "0.0.5"
4770 resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d"
4771 dependencies:
4772 better-assert "~1.0.0"
4773
4774parseuri@0.0.5:
4775 version "0.0.5"
4776 resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a"
4777 dependencies:
4778 better-assert "~1.0.0"
4779
4780parseurl@~1.3.0:
4781 version "1.3.1"
4782 resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56"
4783
4784path-dirname@^1.0.0:
4785 version "1.0.2"
4786 resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
4787
4788path-exists@^2.0.0, path-exists@^2.1.0:
4789 version "2.1.0"
4790 resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
4791 dependencies:
4792 pinkie-promise "^2.0.0"
4793
4794path-exists@^3.0.0:
4795 version "3.0.0"
4796 resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
4797
4798path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
4799 version "1.0.1"
4800 resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
4801
4802path-is-inside@^1.0.1, path-is-inside@^1.0.2:
4803 version "1.0.2"
4804 resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
4805
4806path-key@^2.0.0:
4807 version "2.0.1"
4808 resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
4809
4810path-parse@^1.0.5:
4811 version "1.0.5"
4812 resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
4813
4814path-root-regex@^0.1.0:
4815 version "0.1.2"
4816 resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d"
4817
4818path-root@^0.1.1:
4819 version "0.1.1"
4820 resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7"
4821 dependencies:
4822 path-root-regex "^0.1.0"
4823
4824path-type@^1.0.0:
4825 version "1.1.0"
4826 resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
4827 dependencies:
4828 graceful-fs "^4.1.2"
4829 pify "^2.0.0"
4830 pinkie-promise "^2.0.0"
4831
4832path-type@^2.0.0:
4833 version "2.0.0"
4834 resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
4835 dependencies:
4836 pify "^2.0.0"
4837
4838pend@~1.2.0:
4839 version "1.2.0"
4840 resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
4841
4842performance-now@^0.2.0:
4843 version "0.2.0"
4844 resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
4845
4846performance-now@^2.1.0:
4847 version "2.1.0"
4848 resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
4849
4850pify@^2.0.0, pify@^2.3.0:
4851 version "2.3.0"
4852 resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
4853
4854pinkie-promise@^2.0.0:
4855 version "2.0.1"
4856 resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
4857 dependencies:
4858 pinkie "^2.0.0"
4859
4860pinkie@^2.0.0:
4861 version "2.0.4"
4862 resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
4863
4864pkg-dir@^1.0.0:
4865 version "1.0.0"
4866 resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
4867 dependencies:
4868 find-up "^1.0.0"
4869
4870pkginfo@^0.3.0:
4871 version "0.3.1"
4872 resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21"
4873
4874plist@^2.0.0, plist@^2.0.1, plist@^2.1.0:
4875 version "2.1.0"
4876 resolved "https://registry.yarnpkg.com/plist/-/plist-2.1.0.tgz#57ccdb7a0821df21831217a3cad54e3e146a1025"
4877 dependencies:
4878 base64-js "1.2.0"
4879 xmlbuilder "8.2.2"
4880 xmldom "0.1.x"
4881
4882pluralize@^7.0.0:
4883 version "7.0.0"
4884 resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
4885
4886prelude-ls@~1.1.2:
4887 version "1.1.2"
4888 resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
4889
4890prepend-http@^1.0.0, prepend-http@^1.0.1:
4891 version "1.0.4"
4892 resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
4893
4894preserve@^0.2.0:
4895 version "0.2.0"
4896 resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
4897
4898pretty-bytes@^1.0.2, pretty-bytes@^1.0.4:
4899 version "1.0.4"
4900 resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84"
4901 dependencies:
4902 get-stdin "^4.0.1"
4903 meow "^3.1.0"
4904
4905pretty-bytes@^4.0.2:
4906 version "4.0.2"
4907 resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9"
4908
4909pretty-hrtime@^1.0.0:
4910 version "1.0.3"
4911 resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
4912
4913private@^0.1.6, private@^0.1.7:
4914 version "0.1.7"
4915 resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1"
4916
4917process-nextick-args@^1.0.7, process-nextick-args@~1.0.6:
4918 version "1.0.7"
4919 resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
4920
4921progress-stream@^1.0.1, progress-stream@^1.1.0:
4922 version "1.2.0"
4923 resolved "https://registry.yarnpkg.com/progress-stream/-/progress-stream-1.2.0.tgz#2cd3cfea33ba3a89c9c121ec3347abe9ab125f77"
4924 dependencies:
4925 speedometer "~0.1.2"
4926 through2 "~0.2.3"
4927
4928progress@^2.0.0:
4929 version "2.0.0"
4930 resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
4931
4932promise@^7.1.1:
4933 version "7.3.1"
4934 resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
4935 dependencies:
4936 asap "~2.0.3"
4937
4938prop-types-extended@^0.2.1:
4939 version "0.2.1"
4940 resolved "https://registry.yarnpkg.com/prop-types-extended/-/prop-types-extended-0.2.1.tgz#ce23f3dbc48ccdc76cfa1a4c7e3f7ed9a5dd8259"
4941 dependencies:
4942 invariant "^2.2.0"
4943
4944prop-types@^15.5.10, prop-types@^15.5.6, prop-types@^15.5.7, prop-types@^15.5.8:
4945 version "15.5.10"
4946 resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
4947 dependencies:
4948 fbjs "^0.8.9"
4949 loose-envify "^1.3.1"
4950
4951proxy-middleware@~0.15.0:
4952 version "0.15.0"
4953 resolved "https://registry.yarnpkg.com/proxy-middleware/-/proxy-middleware-0.15.0.tgz#a3fdf1befb730f951965872ac2f6074c61477a56"
4954
4955pseudomap@^1.0.2:
4956 version "1.0.2"
4957 resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
4958
4959publish-release@^1.3.2:
4960 version "1.3.3"
4961 resolved "https://registry.yarnpkg.com/publish-release/-/publish-release-1.3.3.tgz#6cd11df835e14c13b0e08a35d3fb992b918bec3c"
4962 dependencies:
4963 async "^0.9.0"
4964 ghauth "^2.0.0"
4965 github-url-to-object "^1.4.2"
4966 inquirer "^0.8.2"
4967 lodash "^3.6.0"
4968 mime "^1.3.4"
4969 minimist "^1.1.1"
4970 pkginfo "^0.3.0"
4971 pretty-bytes "^1.0.4"
4972 progress-stream "^1.0.1"
4973 request "^2.54.0"
4974 single-line-log "^0.4.1"
4975 string-editor "^0.1.0"
4976
4977punycode@^1.4.1:
4978 version "1.4.1"
4979 resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
4980
4981q@^1.1.2:
4982 version "1.5.0"
4983 resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1"
4984
4985qs@~6.3.0:
4986 version "6.3.2"
4987 resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c"
4988
4989qs@~6.4.0:
4990 version "6.4.0"
4991 resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
4992
4993query-string@^4.1.0, query-string@^4.2.2:
4994 version "4.3.4"
4995 resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb"
4996 dependencies:
4997 object-assign "^4.1.0"
4998 strict-uri-encode "^1.0.0"
4999
5000raf@^3.1.0:
5001 version "3.3.2"
5002 resolved "https://registry.yarnpkg.com/raf/-/raf-3.3.2.tgz#0c13be0b5b49b46f76d6669248d527cf2b02fe27"
5003 dependencies:
5004 performance-now "^2.1.0"
5005
5006randomatic@^1.1.3:
5007 version "1.1.7"
5008 resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c"
5009 dependencies:
5010 is-number "^3.0.0"
5011 kind-of "^4.0.0"
5012
5013range-parser@~1.0.0:
5014 version "1.0.3"
5015 resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.0.3.tgz#6872823535c692e2c2a0103826afd82c2e0ff175"
5016
5017rc@^1.0.1, rc@^1.1.2, rc@^1.1.6, rc@^1.1.7, rc@^1.2.1:
5018 version "1.2.1"
5019 resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95"
5020 dependencies:
5021 deep-extend "~0.4.0"
5022 ini "~1.3.0"
5023 minimist "^1.2.0"
5024 strip-json-comments "~2.0.1"
5025
5026rcedit@^0.9.0:
5027 version "0.9.0"
5028 resolved "https://registry.yarnpkg.com/rcedit/-/rcedit-0.9.0.tgz#3910df57345399e2b0325f4a519007f89e55ef1c"
5029
5030react-addons-css-transition-group@^15.4.2:
5031 version "15.6.0"
5032 resolved "https://registry.yarnpkg.com/react-addons-css-transition-group/-/react-addons-css-transition-group-15.6.0.tgz#69887cf6e4874d25cd66e22a699e29f0d648aba0"
5033 dependencies:
5034 react-transition-group "^1.2.0"
5035
5036react-dom@^15.4.1:
5037 version "15.6.1"
5038 resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.1.tgz#2cb0ed4191038e53c209eb3a79a23e2a4cf99470"
5039 dependencies:
5040 fbjs "^0.8.9"
5041 loose-envify "^1.1.0"
5042 object-assign "^4.1.0"
5043 prop-types "^15.5.10"
5044
5045react-dropzone@^4.2.1:
5046 version "4.2.1"
5047 resolved "https://registry.yarnpkg.com/react-dropzone/-/react-dropzone-4.2.1.tgz#695e80bd0b065f1181e69f2d0f6d1d5cc72664c9"
5048 dependencies:
5049 attr-accept "^1.0.3"
5050 prop-types "^15.5.7"
5051
5052react-electron-web-view@^2.0.1:
5053 version "2.0.1"
5054 resolved "https://registry.yarnpkg.com/react-electron-web-view/-/react-electron-web-view-2.0.1.tgz#984b7bbbeb77e35bcca921dc50120fc8f2b0f27d"
5055 dependencies:
5056 lodash.camelcase "^4.3.0"
5057
5058react-intl@^2.3.0:
5059 version "2.3.0"
5060 resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-2.3.0.tgz#e1df6af5667fdf01cbe4aab20e137251e2ae5142"
5061 dependencies:
5062 intl-format-cache "^2.0.5"
5063 intl-messageformat "^1.3.0"
5064 intl-relativeformat "^1.3.0"
5065 invariant "^2.1.1"
5066
5067react-loader@^2.4.0:
5068 version "2.4.2"
5069 resolved "https://registry.yarnpkg.com/react-loader/-/react-loader-2.4.2.tgz#14e2b9139fc5693da5cdbdc928032d5b1aeb94c2"
5070 dependencies:
5071 create-react-class "^15.5.2"
5072 prop-types "^15.5.8"
5073 spin.js "2.x"
5074
5075react-motion@^0.4.8:
5076 version "0.4.8"
5077 resolved "https://registry.yarnpkg.com/react-motion/-/react-motion-0.4.8.tgz#23bb2dd27c2d8e00d229e45572d105efcf40a35e"
5078 dependencies:
5079 create-react-class "^15.5.2"
5080 performance-now "^0.2.0"
5081 prop-types "^15.5.8"
5082 raf "^3.1.0"
5083
5084react-router-transition@^0.1.1:
5085 version "0.1.1"
5086 resolved "https://registry.yarnpkg.com/react-router-transition/-/react-router-transition-0.1.1.tgz#6cc2cb747cb27e4d5632c82ca750b4312ccd3bd6"
5087 dependencies:
5088 prop-types "^15.5.8"
5089 react-motion "^0.4.8"
5090
5091react-router@^3.0.2:
5092 version "3.0.5"
5093 resolved "https://registry.yarnpkg.com/react-router/-/react-router-3.0.5.tgz#c3b7873758045a8bbc9562aef4ff4bc8cce7c136"
5094 dependencies:
5095 create-react-class "^15.5.1"
5096 history "^3.0.0"
5097 hoist-non-react-statics "^1.2.0"
5098 invariant "^2.2.1"
5099 loose-envify "^1.2.0"
5100 prop-types "^15.5.6"
5101 warning "^3.0.0"
5102
5103react-sortable-hoc@^0.6.7:
5104 version "0.6.7"
5105 resolved "https://registry.yarnpkg.com/react-sortable-hoc/-/react-sortable-hoc-0.6.7.tgz#e30d247bc36dd5a605430c331ac9cb50a5fa72a6"
5106 dependencies:
5107 babel-runtime "^6.11.6"
5108 invariant "^2.2.1"
5109 lodash "^4.12.0"
5110 prop-types "^15.5.7"
5111
5112react-tooltip@^3.2.7:
5113 version "3.3.0"
5114 resolved "https://registry.yarnpkg.com/react-tooltip/-/react-tooltip-3.3.0.tgz#51c08ae0221075e2c43d83cd47fc78466612df7d"
5115 dependencies:
5116 classnames "^2.2.0"
5117 prop-types "^15.5.8"
5118
5119react-transition-group@^1.2.0:
5120 version "1.2.0"
5121 resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-1.2.0.tgz#b51fc921b0c3835a7ef7c571c79fc82c73e9204f"
5122 dependencies:
5123 chain-function "^1.0.0"
5124 dom-helpers "^3.2.0"
5125 loose-envify "^1.3.1"
5126 prop-types "^15.5.6"
5127 warning "^3.0.0"
5128
5129react@^15.4.1:
5130 version "15.6.1"
5131 resolved "https://registry.yarnpkg.com/react/-/react-15.6.1.tgz#baa8434ec6780bde997cdc380b79cd33b96393df"
5132 dependencies:
5133 create-react-class "^15.6.0"
5134 fbjs "^0.8.9"
5135 loose-envify "^1.1.0"
5136 object-assign "^4.1.0"
5137 prop-types "^15.5.10"
5138
5139read-pkg-up@^1.0.1:
5140 version "1.0.1"
5141 resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
5142 dependencies:
5143 find-up "^1.0.0"
5144 read-pkg "^1.0.0"
5145
5146read-pkg-up@^2.0.0:
5147 version "2.0.0"
5148 resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
5149 dependencies:
5150 find-up "^2.0.0"
5151 read-pkg "^2.0.0"
5152
5153read-pkg@^1.0.0:
5154 version "1.1.0"
5155 resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
5156 dependencies:
5157 load-json-file "^1.0.0"
5158 normalize-package-data "^2.3.2"
5159 path-type "^1.0.0"
5160
5161read-pkg@^2.0.0:
5162 version "2.0.0"
5163 resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
5164 dependencies:
5165 load-json-file "^2.0.0"
5166 normalize-package-data "^2.3.2"
5167 path-type "^2.0.0"
5168
5169read@~1.0.5:
5170 version "1.0.7"
5171 resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4"
5172 dependencies:
5173 mute-stream "~0.0.4"
5174
5175"readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.17, readable-stream@~1.0.26:
5176 version "1.0.34"
5177 resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
5178 dependencies:
5179 core-util-is "~1.0.0"
5180 inherits "~2.0.1"
5181 isarray "0.0.1"
5182 string_decoder "~0.10.x"
5183
5184readable-stream@^1.1.8, readable-stream@~1.1.9:
5185 version "1.1.14"
5186 resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
5187 dependencies:
5188 core-util-is "~1.0.0"
5189 inherits "~2.0.1"
5190 isarray "0.0.1"
5191 string_decoder "~0.10.x"
5192
5193readable-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:
5194 version "2.3.3"
5195 resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
5196 dependencies:
5197 core-util-is "~1.0.0"
5198 inherits "~2.0.3"
5199 isarray "~1.0.0"
5200 process-nextick-args "~1.0.6"
5201 safe-buffer "~5.1.1"
5202 string_decoder "~1.0.3"
5203 util-deprecate "~1.0.1"
5204
5205readdirp@^2.0.0:
5206 version "2.1.0"
5207 resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78"
5208 dependencies:
5209 graceful-fs "^4.1.2"
5210 minimatch "^3.0.2"
5211 readable-stream "^2.0.2"
5212 set-immediate-shim "^1.0.1"
5213
5214readline2@^0.1.1:
5215 version "0.1.1"
5216 resolved "https://registry.yarnpkg.com/readline2/-/readline2-0.1.1.tgz#99443ba6e83b830ef3051bfd7dc241a82728d568"
5217 dependencies:
5218 mute-stream "0.0.4"
5219 strip-ansi "^2.0.1"
5220
5221rechoir@^0.6.2:
5222 version "0.6.2"
5223 resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
5224 dependencies:
5225 resolve "^1.1.6"
5226
5227redent@^1.0.0:
5228 version "1.0.0"
5229 resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
5230 dependencies:
5231 indent-string "^2.1.0"
5232 strip-indent "^1.0.1"
5233
5234regenerate@^1.2.1:
5235 version "1.3.2"
5236 resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260"
5237
5238regenerator-runtime@^0.10.5:
5239 version "0.10.5"
5240 resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
5241
5242regenerator-runtime@^0.11.0:
5243 version "0.11.0"
5244 resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1"
5245
5246regenerator-transform@^0.10.0:
5247 version "0.10.1"
5248 resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd"
5249 dependencies:
5250 babel-runtime "^6.18.0"
5251 babel-types "^6.19.0"
5252 private "^0.1.6"
5253
5254regex-cache@^0.4.2:
5255 version "0.4.4"
5256 resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
5257 dependencies:
5258 is-equal-shallow "^0.1.3"
5259
5260regexpu-core@^2.0.0:
5261 version "2.0.0"
5262 resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240"
5263 dependencies:
5264 regenerate "^1.2.1"
5265 regjsgen "^0.2.0"
5266 regjsparser "^0.1.4"
5267
5268registry-auth-token@^3.0.1:
5269 version "3.3.1"
5270 resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.1.tgz#fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006"
5271 dependencies:
5272 rc "^1.1.6"
5273 safe-buffer "^5.0.1"
5274
5275registry-url@^3.0.3:
5276 version "3.1.0"
5277 resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942"
5278 dependencies:
5279 rc "^1.0.1"
5280
5281regjsgen@^0.2.0:
5282 version "0.2.0"
5283 resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
5284
5285regjsparser@^0.1.4:
5286 version "0.1.5"
5287 resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"
5288 dependencies:
5289 jsesc "~0.5.0"
5290
5291remove-trailing-separator@^1.0.1:
5292 version "1.1.0"
5293 resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
5294
5295repeat-element@^1.1.2:
5296 version "1.1.2"
5297 resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
5298
5299repeat-string@^1.5.2:
5300 version "1.6.1"
5301 resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
5302
5303repeating@^2.0.0:
5304 version "2.0.1"
5305 resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
5306 dependencies:
5307 is-finite "^1.0.0"
5308
5309replace-ext@0.0.1:
5310 version "0.0.1"
5311 resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924"
5312
5313request@2, request@^2.45.0, request@^2.54.0, request@^2.79.0, request@^2.81.0:
5314 version "2.81.0"
5315 resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
5316 dependencies:
5317 aws-sign2 "~0.6.0"
5318 aws4 "^1.2.1"
5319 caseless "~0.12.0"
5320 combined-stream "~1.0.5"
5321 extend "~3.0.0"
5322 forever-agent "~0.6.1"
5323 form-data "~2.1.1"
5324 har-validator "~4.2.1"
5325 hawk "~3.1.3"
5326 http-signature "~1.1.0"
5327 is-typedarray "~1.0.0"
5328 isstream "~0.1.2"
5329 json-stringify-safe "~5.0.1"
5330 mime-types "~2.1.7"
5331 oauth-sign "~0.8.1"
5332 performance-now "^0.2.0"
5333 qs "~6.4.0"
5334 safe-buffer "^5.0.1"
5335 stringstream "~0.0.4"
5336 tough-cookie "~2.3.0"
5337 tunnel-agent "^0.6.0"
5338 uuid "^3.0.0"
5339
5340request@~2.79.0:
5341 version "2.79.0"
5342 resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de"
5343 dependencies:
5344 aws-sign2 "~0.6.0"
5345 aws4 "^1.2.1"
5346 caseless "~0.11.0"
5347 combined-stream "~1.0.5"
5348 extend "~3.0.0"
5349 forever-agent "~0.6.1"
5350 form-data "~2.1.1"
5351 har-validator "~2.0.6"
5352 hawk "~3.1.3"
5353 http-signature "~1.1.0"
5354 is-typedarray "~1.0.0"
5355 isstream "~0.1.2"
5356 json-stringify-safe "~5.0.1"
5357 mime-types "~2.1.7"
5358 oauth-sign "~0.8.1"
5359 qs "~6.3.0"
5360 stringstream "~0.0.4"
5361 tough-cookie "~2.3.0"
5362 tunnel-agent "~0.4.1"
5363 uuid "^3.0.0"
5364
5365require-directory@^2.1.1:
5366 version "2.1.1"
5367 resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
5368
5369require-main-filename@^1.0.1:
5370 version "1.0.1"
5371 resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
5372
5373require-uncached@^1.0.3:
5374 version "1.0.3"
5375 resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
5376 dependencies:
5377 caller-path "^0.1.0"
5378 resolve-from "^1.0.0"
5379
5380resolve-dir@^0.1.0:
5381 version "0.1.1"
5382 resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e"
5383 dependencies:
5384 expand-tilde "^1.2.2"
5385 global-modules "^0.2.3"
5386
5387resolve-from@^1.0.0:
5388 version "1.0.1"
5389 resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
5390
5391resolve@^1.1.6, resolve@^1.1.7, resolve@^1.2.0:
5392 version "1.4.0"
5393 resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86"
5394 dependencies:
5395 path-parse "^1.0.5"
5396
5397resolve@~1.1.6:
5398 version "1.1.7"
5399 resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
5400
5401restore-cursor@^2.0.0:
5402 version "2.0.0"
5403 resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
5404 dependencies:
5405 onetime "^2.0.0"
5406 signal-exit "^3.0.2"
5407
5408right-pad@^1.0.1:
5409 version "1.0.1"
5410 resolved "https://registry.yarnpkg.com/right-pad/-/right-pad-1.0.1.tgz#8ca08c2cbb5b55e74dafa96bf7fd1a27d568c8d0"
5411
5412rimraf@2, rimraf@^2.2.8, rimraf@^2.4.0, rimraf@^2.5.1, rimraf@^2.6.1:
5413 version "2.6.1"
5414 resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
5415 dependencies:
5416 glob "^7.0.5"
5417
5418route-parser@^0.0.5:
5419 version "0.0.5"
5420 resolved "https://registry.yarnpkg.com/route-parser/-/route-parser-0.0.5.tgz#7d1d09d335e49094031ea16991a4a79b01bbe1f4"
5421
5422run-async@^2.2.0:
5423 version "2.3.0"
5424 resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
5425 dependencies:
5426 is-promise "^2.1.0"
5427
5428run-series@^1.1.1:
5429 version "1.1.4"
5430 resolved "https://registry.yarnpkg.com/run-series/-/run-series-1.1.4.tgz#89a73ddc5e75c9ef8ab6320c0a1600d6a41179b9"
5431
5432rx-lite-aggregates@^4.0.8:
5433 version "4.0.8"
5434 resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
5435 dependencies:
5436 rx-lite "*"
5437
5438rx-lite@*, rx-lite@^4.0.8:
5439 version "4.0.8"
5440 resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
5441
5442rx@^2.4.3:
5443 version "2.5.3"
5444 resolved "https://registry.yarnpkg.com/rx/-/rx-2.5.3.tgz#21adc7d80f02002af50dae97fd9dbf248755f566"
5445
5446rxjs-serial-subscription@^0.1.1:
5447 version "0.1.1"
5448 resolved "https://registry.yarnpkg.com/rxjs-serial-subscription/-/rxjs-serial-subscription-0.1.1.tgz#a42b1db0bf1094b09231191e2778ca3fcf9ed147"
5449 dependencies:
5450 rxjs "^5.0.0-beta.12"
5451
5452rxjs@^5.0.0-beta.12, rxjs@^5.0.1, rxjs@^5.1.1:
5453 version "5.4.3"
5454 resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.4.3.tgz#0758cddee6033d68e0fd53676f0f3596ce3d483f"
5455 dependencies:
5456 symbol-observable "^1.0.1"
5457
5458safe-buffer@^5.0.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
5459 version "5.1.1"
5460 resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
5461
5462sanitize-filename@^1.6.0, sanitize-filename@^1.6.1:
5463 version "1.6.1"
5464 resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.1.tgz#612da1c96473fa02dccda92dcd5b4ab164a6772a"
5465 dependencies:
5466 truncate-utf8-bytes "^1.0.0"
5467
5468sass-graph@^2.1.1, sass-graph@^2.2.4:
5469 version "2.2.4"
5470 resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49"
5471 dependencies:
5472 glob "^7.0.0"
5473 lodash "^4.0.0"
5474 scss-tokenizer "^0.2.3"
5475 yargs "^7.0.0"
5476
5477sax@^1.2.1:
5478 version "1.2.4"
5479 resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
5480
5481scss-tokenizer@^0.2.3:
5482 version "0.2.3"
5483 resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1"
5484 dependencies:
5485 js-base64 "^2.1.8"
5486 source-map "^0.4.2"
5487
5488semver-diff@^2.0.0:
5489 version "2.1.0"
5490 resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"
5491 dependencies:
5492 semver "^5.0.3"
5493
5494semver-greatest-satisfied-range@^1.0.0:
5495 version "1.1.0"
5496 resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b"
5497 dependencies:
5498 sver-compat "^1.5.0"
5499
5500"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1:
5501 version "5.4.1"
5502 resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
5503
5504semver@~5.3.0:
5505 version "5.3.0"
5506 resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
5507
5508send@0.8.5:
5509 version "0.8.5"
5510 resolved "https://registry.yarnpkg.com/send/-/send-0.8.5.tgz#37f708216e6f50c175e74c69fec53484e2fd82c7"
5511 dependencies:
5512 debug "1.0.4"
5513 depd "0.4.4"
5514 destroy "1.0.3"
5515 escape-html "1.0.1"
5516 fresh "0.2.2"
5517 mime "1.2.11"
5518 ms "0.6.2"
5519 on-finished "2.1.0"
5520 range-parser "~1.0.0"
5521
5522serve-index@~1.1.4:
5523 version "1.1.6"
5524 resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.1.6.tgz#b758318fe781628383f66ac80dd447712ea7781f"
5525 dependencies:
5526 accepts "~1.0.7"
5527 batch "0.5.1"
5528 parseurl "~1.3.0"
5529
5530serve-static@~1.5.2:
5531 version "1.5.4"
5532 resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.5.4.tgz#819fb37ae46bd02dd520b77fcf7fd8f5112f9782"
5533 dependencies:
5534 escape-html "1.0.1"
5535 parseurl "~1.3.0"
5536 send "0.8.5"
5537 utils-merge "1.0.0"
5538
5539set-blocking@^2.0.0, set-blocking@~2.0.0:
5540 version "2.0.0"
5541 resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
5542
5543set-immediate-shim@^1.0.1:
5544 version "1.0.1"
5545 resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61"
5546
5547setimmediate@^1.0.5:
5548 version "1.0.5"
5549 resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
5550
5551shebang-command@^1.2.0:
5552 version "1.2.0"
5553 resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
5554 dependencies:
5555 shebang-regex "^1.0.0"
5556
5557shebang-regex@^1.0.0:
5558 version "1.0.0"
5559 resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
5560
5561sigmund@~1.0.0:
5562 version "1.0.1"
5563 resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
5564
5565signal-exit@^3.0.0, signal-exit@^3.0.2:
5566 version "3.0.2"
5567 resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
5568
5569single-line-log@^0.4.1:
5570 version "0.4.1"
5571 resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-0.4.1.tgz#87a55649f749d783ec0dcd804e8140d9873c7cee"
5572
5573single-line-log@^1.1.2:
5574 version "1.1.2"
5575 resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364"
5576 dependencies:
5577 string-width "^1.0.1"
5578
5579slash@^1.0.0:
5580 version "1.0.0"
5581 resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
5582
5583slice-ansi@0.0.4:
5584 version "0.0.4"
5585 resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
5586
5587smoothscroll-polyfill@^0.3.4:
5588 version "0.3.6"
5589 resolved "https://registry.yarnpkg.com/smoothscroll-polyfill/-/smoothscroll-polyfill-0.3.6.tgz#492be845195157cdc2fc529a95d89e7a71509172"
5590
5591sntp@1.x.x:
5592 version "1.0.9"
5593 resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
5594 dependencies:
5595 hoek "2.x.x"
5596
5597socket.io-adapter@0.5.0:
5598 version "0.5.0"
5599 resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b"
5600 dependencies:
5601 debug "2.3.3"
5602 socket.io-parser "2.3.1"
5603
5604socket.io-client@1.7.4:
5605 version "1.7.4"
5606 resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.4.tgz#ec9f820356ed99ef6d357f0756d648717bdd4281"
5607 dependencies:
5608 backo2 "1.0.2"
5609 component-bind "1.0.0"
5610 component-emitter "1.2.1"
5611 debug "2.3.3"
5612 engine.io-client "~1.8.4"
5613 has-binary "0.1.7"
5614 indexof "0.0.1"
5615 object-component "0.0.3"
5616 parseuri "0.0.5"
5617 socket.io-parser "2.3.1"
5618 to-array "0.1.4"
5619
5620socket.io-parser@2.3.1:
5621 version "2.3.1"
5622 resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0"
5623 dependencies:
5624 component-emitter "1.1.2"
5625 debug "2.2.0"
5626 isarray "0.0.1"
5627 json3 "3.3.2"
5628
5629socket.io@^1.4.4:
5630 version "1.7.4"
5631 resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.4.tgz#2f7ecedc3391bf2d5c73e291fe233e6e34d4dd00"
5632 dependencies:
5633 debug "2.3.3"
5634 engine.io "~1.8.4"
5635 has-binary "0.1.7"
5636 object-assign "4.1.0"
5637 socket.io-adapter "0.5.0"
5638 socket.io-client "1.7.4"
5639 socket.io-parser "2.3.1"
5640
5641sort-keys@^1.0.0:
5642 version "1.1.2"
5643 resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
5644 dependencies:
5645 is-plain-obj "^1.0.0"
5646
5647source-map-support@^0.4.15, source-map-support@^0.4.16:
5648 version "0.4.17"
5649 resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.17.tgz#6f2150553e6375375d0ccb3180502b78c18ba430"
5650 dependencies:
5651 source-map "^0.5.6"
5652
5653source-map@^0.4.2:
5654 version "0.4.4"
5655 resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
5656 dependencies:
5657 amdefine ">=0.0.4"
5658
5659source-map@^0.5.1, source-map@^0.5.6:
5660 version "0.5.7"
5661 resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
5662
5663sparkles@^1.0.0:
5664 version "1.0.0"
5665 resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3"
5666
5667spawn-rx@^2.0.10, spawn-rx@^2.0.7:
5668 version "2.0.11"
5669 resolved "https://registry.yarnpkg.com/spawn-rx/-/spawn-rx-2.0.11.tgz#65451ad65662801daea75549832a782de0048dbf"
5670 dependencies:
5671 debug "^2.5.1"
5672 lodash.assign "^4.2.0"
5673 rxjs "^5.1.1"
5674
5675spdx-correct@~1.0.0:
5676 version "1.0.2"
5677 resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
5678 dependencies:
5679 spdx-license-ids "^1.0.2"
5680
5681spdx-expression-parse@~1.0.0:
5682 version "1.0.4"
5683 resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
5684
5685spdx-license-ids@^1.0.2:
5686 version "1.2.2"
5687 resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
5688
5689speedometer@~0.1.2:
5690 version "0.1.4"
5691 resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d"
5692
5693spin.js@2.x:
5694 version "2.3.2"
5695 resolved "https://registry.yarnpkg.com/spin.js/-/spin.js-2.3.2.tgz#6caa56d520673450fd5cfbc6971e6d0772c37a1a"
5696
5697sprintf-js@~1.0.2:
5698 version "1.0.3"
5699 resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
5700
5701sshpk@^1.7.0:
5702 version "1.13.1"
5703 resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
5704 dependencies:
5705 asn1 "~0.2.3"
5706 assert-plus "^1.0.0"
5707 dashdash "^1.12.0"
5708 getpass "^0.1.1"
5709 optionalDependencies:
5710 bcrypt-pbkdf "^1.0.0"
5711 ecc-jsbn "~0.1.1"
5712 jsbn "~0.1.0"
5713 tweetnacl "~0.14.0"
5714
5715stack-trace@0.0.9:
5716 version "0.0.9"
5717 resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.9.tgz#a8f6eaeca90674c333e7c43953f275b451510695"
5718
5719stat-mode@^0.2.2:
5720 version "0.2.2"
5721 resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502"
5722
5723stdout-stream@^1.4.0:
5724 version "1.4.0"
5725 resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b"
5726 dependencies:
5727 readable-stream "^2.0.1"
5728
5729stream-exhaust@^1.0.1:
5730 version "1.0.2"
5731 resolved "https://registry.yarnpkg.com/stream-exhaust/-/stream-exhaust-1.0.2.tgz#acdac8da59ef2bc1e17a2c0ccf6c320d120e555d"
5732
5733stream-shift@^1.0.0:
5734 version "1.0.0"
5735 resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
5736
5737strict-uri-encode@^1.0.0:
5738 version "1.1.0"
5739 resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
5740
5741string-editor@^0.1.0:
5742 version "0.1.2"
5743 resolved "https://registry.yarnpkg.com/string-editor/-/string-editor-0.1.2.tgz#f5ff1b5ac4aed7ac6c2fb8de236d1551b20f61d0"
5744 dependencies:
5745 editor "^1.0.0"
5746
5747string-width@^1.0.1, string-width@^1.0.2:
5748 version "1.0.2"
5749 resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
5750 dependencies:
5751 code-point-at "^1.0.0"
5752 is-fullwidth-code-point "^1.0.0"
5753 strip-ansi "^3.0.0"
5754
5755string-width@^2.0.0, string-width@^2.1.0:
5756 version "2.1.1"
5757 resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
5758 dependencies:
5759 is-fullwidth-code-point "^2.0.0"
5760 strip-ansi "^4.0.0"
5761
5762string_decoder@~0.10.x:
5763 version "0.10.31"
5764 resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
5765
5766string_decoder@~1.0.3:
5767 version "1.0.3"
5768 resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
5769 dependencies:
5770 safe-buffer "~5.1.0"
5771
5772stringstream@~0.0.4:
5773 version "0.0.5"
5774 resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
5775
5776strip-ansi@^2.0.1:
5777 version "2.0.1"
5778 resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-2.0.1.tgz#df62c1aa94ed2f114e1d0f21fd1d50482b79a60e"
5779 dependencies:
5780 ansi-regex "^1.0.0"
5781
5782strip-ansi@^3.0.0, strip-ansi@^3.0.1:
5783 version "3.0.1"
5784 resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
5785 dependencies:
5786 ansi-regex "^2.0.0"
5787
5788strip-ansi@^4.0.0:
5789 version "4.0.0"
5790 resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
5791 dependencies:
5792 ansi-regex "^3.0.0"
5793
5794strip-bom-stream@^1.0.0:
5795 version "1.0.0"
5796 resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee"
5797 dependencies:
5798 first-chunk-stream "^1.0.0"
5799 strip-bom "^2.0.0"
5800
5801strip-bom@^1.0.0:
5802 version "1.0.0"
5803 resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794"
5804 dependencies:
5805 first-chunk-stream "^1.0.0"
5806 is-utf8 "^0.2.0"
5807
5808strip-bom@^2.0.0:
5809 version "2.0.0"
5810 resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
5811 dependencies:
5812 is-utf8 "^0.2.0"
5813
5814strip-bom@^3.0.0:
5815 version "3.0.0"
5816 resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
5817
5818strip-eof@^1.0.0:
5819 version "1.0.0"
5820 resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
5821
5822strip-indent@^1.0.1:
5823 version "1.0.1"
5824 resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
5825 dependencies:
5826 get-stdin "^4.0.1"
5827
5828strip-json-comments@~2.0.1:
5829 version "2.0.1"
5830 resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
5831
5832sumchecker@^1.2.0:
5833 version "1.3.1"
5834 resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-1.3.1.tgz#79bb3b4456dd04f18ebdbc0d703a1d1daec5105d"
5835 dependencies:
5836 debug "^2.2.0"
5837 es6-promise "^4.0.5"
5838
5839sumchecker@^2.0.1, sumchecker@^2.0.2:
5840 version "2.0.2"
5841 resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-2.0.2.tgz#0f42c10e5d05da5d42eea3e56c3399a37d6c5b3e"
5842 dependencies:
5843 debug "^2.2.0"
5844
5845supports-color@^2.0.0:
5846 version "2.0.0"
5847 resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
5848
5849supports-color@^4.0.0:
5850 version "4.4.0"
5851 resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e"
5852 dependencies:
5853 has-flag "^2.0.0"
5854
5855sver-compat@^1.5.0:
5856 version "1.5.0"
5857 resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8"
5858 dependencies:
5859 es6-iterator "^2.0.1"
5860 es6-symbol "^3.1.1"
5861
5862symbol-observable@^1.0.1:
5863 version "1.0.4"
5864 resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
5865
5866table@^4.0.1:
5867 version "4.0.1"
5868 resolved "https://registry.yarnpkg.com/table/-/table-4.0.1.tgz#a8116c133fac2c61f4a420ab6cdf5c4d61f0e435"
5869 dependencies:
5870 ajv "^4.7.0"
5871 ajv-keywords "^1.0.0"
5872 chalk "^1.1.1"
5873 lodash "^4.0.0"
5874 slice-ansi "0.0.4"
5875 string-width "^2.0.0"
5876
5877tar-pack@^3.4.0:
5878 version "3.4.0"
5879 resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984"
5880 dependencies:
5881 debug "^2.2.0"
5882 fstream "^1.0.10"
5883 fstream-ignore "^1.0.5"
5884 once "^1.3.3"
5885 readable-stream "^2.1.4"
5886 rimraf "^2.5.1"
5887 tar "^2.2.1"
5888 uid-number "^0.0.6"
5889
5890tar@^2.0.0, tar@^2.2.1:
5891 version "2.2.1"
5892 resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
5893 dependencies:
5894 block-stream "*"
5895 fstream "^1.0.2"
5896 inherits "2"
5897
5898tar@^4.0.2:
5899 version "4.0.2"
5900 resolved "https://registry.yarnpkg.com/tar/-/tar-4.0.2.tgz#e8e22bf3eec330e5c616d415a698395e294e8fad"
5901 dependencies:
5902 chownr "^1.0.1"
5903 minipass "^2.2.1"
5904 minizlib "^1.0.4"
5905 mkdirp "^0.5.0"
5906 yallist "^3.0.2"
5907
5908tempfile@^1.1.1:
5909 version "1.1.1"
5910 resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-1.1.1.tgz#5bcc4eaecc4ab2c707d8bc11d99ccc9a2cb287f2"
5911 dependencies:
5912 os-tmpdir "^1.0.0"
5913 uuid "^2.0.1"
5914
5915term-size@^1.2.0:
5916 version "1.2.0"
5917 resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69"
5918 dependencies:
5919 execa "^0.7.0"
5920
5921text-table@~0.2.0:
5922 version "0.2.0"
5923 resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
5924
5925throttleit@0.0.2:
5926 version "0.0.2"
5927 resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf"
5928
5929through2-filter@^2.0.0:
5930 version "2.0.0"
5931 resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec"
5932 dependencies:
5933 through2 "~2.0.0"
5934 xtend "~4.0.0"
5935
5936through2@^0.6.0, through2@^0.6.1, through2@~0.6.3:
5937 version "0.6.5"
5938 resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48"
5939 dependencies:
5940 readable-stream ">=1.0.33-1 <1.1.0-0"
5941 xtend ">=4.0.0 <4.1.0-0"
5942
5943through2@^2.0.0, through2@^2.0.1, through2@~2.0.0:
5944 version "2.0.3"
5945 resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
5946 dependencies:
5947 readable-stream "^2.1.5"
5948 xtend "~4.0.1"
5949
5950through2@~0.2.3:
5951 version "0.2.3"
5952 resolved "https://registry.yarnpkg.com/through2/-/through2-0.2.3.tgz#eb3284da4ea311b6cc8ace3653748a52abf25a3f"
5953 dependencies:
5954 readable-stream "~1.1.9"
5955 xtend "~2.1.1"
5956
5957through2@~0.5.1:
5958 version "0.5.1"
5959 resolved "https://registry.yarnpkg.com/through2/-/through2-0.5.1.tgz#dfdd012eb9c700e2323fd334f38ac622ab372da7"
5960 dependencies:
5961 readable-stream "~1.0.17"
5962 xtend "~3.0.0"
5963
5964through@^2.3.6:
5965 version "2.3.8"
5966 resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
5967
5968tildify@^1.0.0:
5969 version "1.2.0"
5970 resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a"
5971 dependencies:
5972 os-homedir "^1.0.0"
5973
5974time-stamp@^1.0.0:
5975 version "1.1.0"
5976 resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3"
5977
5978timed-out@^4.0.0:
5979 version "4.0.1"
5980 resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
5981
5982tmp@0.0.28:
5983 version "0.0.28"
5984 resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120"
5985 dependencies:
5986 os-tmpdir "~1.0.1"
5987
5988tmp@^0.0.33:
5989 version "0.0.33"
5990 resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
5991 dependencies:
5992 os-tmpdir "~1.0.2"
5993
5994to-absolute-glob@^0.1.1:
5995 version "0.1.1"
5996 resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f"
5997 dependencies:
5998 extend-shallow "^2.0.1"
5999
6000to-array@0.1.4:
6001 version "0.1.4"
6002 resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"
6003
6004to-fast-properties@^1.0.3:
6005 version "1.0.3"
6006 resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
6007
6008topo@1.x.x:
6009 version "1.1.0"
6010 resolved "https://registry.yarnpkg.com/topo/-/topo-1.1.0.tgz#e9d751615d1bb87dc865db182fa1ca0a5ef536d5"
6011 dependencies:
6012 hoek "2.x.x"
6013
6014touch@0.0.3:
6015 version "0.0.3"
6016 resolved "https://registry.yarnpkg.com/touch/-/touch-0.0.3.tgz#51aef3d449571d4f287a5d87c9c8b49181a0db1d"
6017 dependencies:
6018 nopt "~1.0.10"
6019
6020tough-cookie@~2.3.0:
6021 version "2.3.2"
6022 resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a"
6023 dependencies:
6024 punycode "^1.4.1"
6025
6026"traverse@>=0.3.0 <0.4":
6027 version "0.3.9"
6028 resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9"
6029
6030trim-newlines@^1.0.0:
6031 version "1.0.0"
6032 resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
6033
6034trim-right@^1.0.1:
6035 version "1.0.1"
6036 resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
6037
6038"true-case-path@^1.0.2":
6039 version "1.0.2"
6040 resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.2.tgz#7ec91130924766c7f573be3020c34f8fdfd00d62"
6041 dependencies:
6042 glob "^6.0.4"
6043
6044truncate-utf8-bytes@^1.0.0:
6045 version "1.0.2"
6046 resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b"
6047 dependencies:
6048 utf8-byte-length "^1.0.1"
6049
6050tryit@^1.0.1:
6051 version "1.0.3"
6052 resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
6053
6054tunnel-agent@^0.6.0:
6055 version "0.6.0"
6056 resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
6057 dependencies:
6058 safe-buffer "^5.0.1"
6059
6060tunnel-agent@~0.4.1:
6061 version "0.4.3"
6062 resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
6063
6064tweetnacl@^0.14.3, tweetnacl@~0.14.0:
6065 version "0.14.5"
6066 resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
6067
6068type-check@~0.3.2:
6069 version "0.3.2"
6070 resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
6071 dependencies:
6072 prelude-ls "~1.1.2"
6073
6074typedarray@^0.0.6:
6075 version "0.0.6"
6076 resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
6077
6078ua-parser-js@^0.7.9:
6079 version "0.7.14"
6080 resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.14.tgz#110d53fa4c3f326c121292bbeac904d2e03387ca"
6081
6082uid-number@^0.0.6:
6083 version "0.0.6"
6084 resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
6085
6086ultron@1.0.x:
6087 version "1.0.2"
6088 resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa"
6089
6090unc-path-regex@^0.1.0:
6091 version "0.1.2"
6092 resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
6093
6094underscore@^1.6.0:
6095 version "1.8.3"
6096 resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"
6097
6098undertaker-registry@^1.0.0:
6099 version "1.0.0"
6100 resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.0.tgz#2da716c765999d8c94b9f9ed2c006df4923b052b"
6101
6102undertaker@^1.0.0:
6103 version "1.2.0"
6104 resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.2.0.tgz#339da4646252d082dc378e708067299750e11b49"
6105 dependencies:
6106 arr-flatten "^1.0.1"
6107 arr-map "^2.0.0"
6108 bach "^1.0.0"
6109 collection-map "^1.0.0"
6110 es6-weak-map "^2.0.1"
6111 last-run "^1.1.0"
6112 object.defaults "^1.0.0"
6113 object.reduce "^1.0.0"
6114 undertaker-registry "^1.0.0"
6115
6116unique-stream@^2.0.2:
6117 version "2.2.1"
6118 resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369"
6119 dependencies:
6120 json-stable-stringify "^1.0.0"
6121 through2-filter "^2.0.0"
6122
6123unique-string@^1.0.0:
6124 version "1.0.0"
6125 resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a"
6126 dependencies:
6127 crypto-random-string "^1.0.0"
6128
6129universalify@^0.1.0:
6130 version "0.1.1"
6131 resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7"
6132
6133untildify@^3.0.2:
6134 version "3.0.2"
6135 resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.2.tgz#7f1f302055b3fea0f3e81dc78eb36766cb65e3f1"
6136
6137unzip-response@^2.0.1:
6138 version "2.0.1"
6139 resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
6140
6141update-notifier@^2.2.0:
6142 version "2.2.0"
6143 resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.2.0.tgz#1b5837cf90c0736d88627732b661c138f86de72f"
6144 dependencies:
6145 boxen "^1.0.0"
6146 chalk "^1.0.0"
6147 configstore "^3.0.0"
6148 import-lazy "^2.1.0"
6149 is-npm "^1.0.0"
6150 latest-version "^3.0.0"
6151 semver-diff "^2.0.0"
6152 xdg-basedir "^3.0.0"
6153
6154url-parse-lax@^1.0.0:
6155 version "1.0.0"
6156 resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73"
6157 dependencies:
6158 prepend-http "^1.0.1"
6159
6160user-home@^1.1.1:
6161 version "1.1.1"
6162 resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190"
6163
6164utf8-byte-length@^1.0.1:
6165 version "1.0.4"
6166 resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61"
6167
6168util-deprecate@~1.0.1:
6169 version "1.0.2"
6170 resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
6171
6172utils-merge@1.0.0:
6173 version "1.0.0"
6174 resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8"
6175
6176uuid-1345@^0.99.6:
6177 version "0.99.6"
6178 resolved "https://registry.yarnpkg.com/uuid-1345/-/uuid-1345-0.99.6.tgz#b1270ae015a7721c7adec6c46ec169c6098aed40"
6179 dependencies:
6180 macaddress "^0.2.7"
6181
6182uuid@^2.0.1:
6183 version "2.0.3"
6184 resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a"
6185
6186uuid@^3.0.0, uuid@^3.0.1:
6187 version "3.1.0"
6188 resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
6189
6190v8flags@^2.0.9:
6191 version "2.1.1"
6192 resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4"
6193 dependencies:
6194 user-home "^1.1.1"
6195
6196vali-date@^1.0.0:
6197 version "1.0.0"
6198 resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6"
6199
6200validate-npm-package-license@^3.0.1:
6201 version "3.0.1"
6202 resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
6203 dependencies:
6204 spdx-correct "~1.0.0"
6205 spdx-expression-parse "~1.0.0"
6206
6207verror@1.10.0:
6208 version "1.10.0"
6209 resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
6210 dependencies:
6211 assert-plus "^1.0.0"
6212 core-util-is "1.0.2"
6213 extsprintf "^1.2.0"
6214
6215vinyl-fs@^1.0.0:
6216 version "1.0.0"
6217 resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-1.0.0.tgz#d15752e68c2dad74364e7e853473735354692edf"
6218 dependencies:
6219 duplexify "^3.2.0"
6220 glob-stream "^4.0.1"
6221 glob-watcher "^0.0.8"
6222 graceful-fs "^3.0.0"
6223 merge-stream "^0.1.7"
6224 mkdirp "^0.5.0"
6225 object-assign "^2.0.0"
6226 strip-bom "^1.0.0"
6227 through2 "^0.6.1"
6228 vinyl "^0.4.0"
6229
6230vinyl-fs@^2.0.0:
6231 version "2.4.4"
6232 resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.4.tgz#be6ff3270cb55dfd7d3063640de81f25d7532239"
6233 dependencies:
6234 duplexify "^3.2.0"
6235 glob-stream "^5.3.2"
6236 graceful-fs "^4.0.0"
6237 gulp-sourcemaps "1.6.0"
6238 is-valid-glob "^0.3.0"
6239 lazystream "^1.0.0"
6240 lodash.isequal "^4.0.0"
6241 merge-stream "^1.0.0"
6242 mkdirp "^0.5.0"
6243 object-assign "^4.0.0"
6244 readable-stream "^2.0.4"
6245 strip-bom "^2.0.0"
6246 strip-bom-stream "^1.0.0"
6247 through2 "^2.0.0"
6248 through2-filter "^2.0.0"
6249 vali-date "^1.0.0"
6250 vinyl "^1.0.0"
6251
6252vinyl-sourcemaps-apply@^0.2.0:
6253 version "0.2.1"
6254 resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705"
6255 dependencies:
6256 source-map "^0.5.1"
6257
6258vinyl@^0.4.0:
6259 version "0.4.6"
6260 resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847"
6261 dependencies:
6262 clone "^0.2.0"
6263 clone-stats "^0.0.1"
6264
6265vinyl@^0.5.0:
6266 version "0.5.3"
6267 resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde"
6268 dependencies:
6269 clone "^1.0.0"
6270 clone-stats "^0.0.1"
6271 replace-ext "0.0.1"
6272
6273vinyl@^1.0.0:
6274 version "1.2.0"
6275 resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884"
6276 dependencies:
6277 clone "^1.0.0"
6278 clone-stats "^0.0.1"
6279 replace-ext "0.0.1"
6280
6281warning@^3.0.0:
6282 version "3.0.0"
6283 resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c"
6284 dependencies:
6285 loose-envify "^1.0.0"
6286
6287whatwg-fetch@>=0.10.0:
6288 version "2.0.3"
6289 resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
6290
6291which-module@^1.0.0:
6292 version "1.0.0"
6293 resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
6294
6295which-module@^2.0.0:
6296 version "2.0.0"
6297 resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
6298
6299which@1, which@^1.2.12, which@^1.2.9:
6300 version "1.3.0"
6301 resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
6302 dependencies:
6303 isexe "^2.0.0"
6304
6305wide-align@^1.1.0:
6306 version "1.1.2"
6307 resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
6308 dependencies:
6309 string-width "^1.0.2"
6310
6311widest-line@^1.0.0:
6312 version "1.0.0"
6313 resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c"
6314 dependencies:
6315 string-width "^1.0.1"
6316
6317window-size@^0.1.4:
6318 version "0.1.4"
6319 resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876"
6320
6321windows-notification-state@^1.3.0:
6322 version "1.3.0"
6323 resolved "https://registry.yarnpkg.com/windows-notification-state/-/windows-notification-state-1.3.0.tgz#9f727782ecac8d920a408f1026be6f8e08fd902e"
6324 dependencies:
6325 bindings "^1.2.1"
6326 nan "^2.4.0"
6327
6328windows-quiet-hours@^1.2.2:
6329 version "1.2.4"
6330 resolved "https://registry.yarnpkg.com/windows-quiet-hours/-/windows-quiet-hours-1.2.4.tgz#7ae57b13fe9423f2635ac0ed5791f674401a7c7a"
6331 dependencies:
6332 bindings "^1.3.0"
6333 nan "^2.7.0"
6334
6335winreg@1.2.2:
6336 version "1.2.2"
6337 resolved "https://registry.yarnpkg.com/winreg/-/winreg-1.2.2.tgz#8509afa3b71c5bbd110a6d7c6247ec67736c598f"
6338
6339word-wrap@^1.0.3:
6340 version "1.2.3"
6341 resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
6342
6343wordwrap@~1.0.0:
6344 version "1.0.0"
6345 resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
6346
6347wrap-ansi@^2.0.0:
6348 version "2.1.0"
6349 resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
6350 dependencies:
6351 string-width "^1.0.1"
6352 strip-ansi "^3.0.1"
6353
6354wrappy@1:
6355 version "1.0.2"
6356 resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
6357
6358wreck@^6.3.0:
6359 version "6.3.0"
6360 resolved "https://registry.yarnpkg.com/wreck/-/wreck-6.3.0.tgz#a1369769f07bbb62d6a378336a7871fc773c740b"
6361 dependencies:
6362 boom "2.x.x"
6363 hoek "2.x.x"
6364
6365write-file-atomic@^2.0.0:
6366 version "2.3.0"
6367 resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab"
6368 dependencies:
6369 graceful-fs "^4.1.11"
6370 imurmurhash "^0.1.4"
6371 signal-exit "^3.0.2"
6372
6373write@^0.2.1:
6374 version "0.2.1"
6375 resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
6376 dependencies:
6377 mkdirp "^0.5.1"
6378
6379ws@1.1.2:
6380 version "1.1.2"
6381 resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f"
6382 dependencies:
6383 options ">=0.0.5"
6384 ultron "1.0.x"
6385
6386ws@1.1.4:
6387 version "1.1.4"
6388 resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.4.tgz#57f40d036832e5f5055662a397c4de76ed66bf61"
6389 dependencies:
6390 options ">=0.0.5"
6391 ultron "1.0.x"
6392
6393wtf-8@1.0.0:
6394 version "1.0.0"
6395 resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a"
6396
6397xdg-basedir@^3.0.0:
6398 version "3.0.0"
6399 resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4"
6400
6401xelement@^1.0.16:
6402 version "1.0.16"
6403 resolved "https://registry.yarnpkg.com/xelement/-/xelement-1.0.16.tgz#900bb46c20fc2dffadff778a9d2dc36699d0ff7e"
6404 dependencies:
6405 sax "^1.2.1"
6406
6407xmlbuilder@8.2.2:
6408 version "8.2.2"
6409 resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773"
6410
6411xmldom@0.1.x:
6412 version "0.1.27"
6413 resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9"
6414
6415xmlhttprequest-ssl@1.5.3:
6416 version "1.5.3"
6417 resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d"
6418
6419xmlhttprequest@^1.8.0:
6420 version "1.8.0"
6421 resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc"
6422
6423"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1:
6424 version "4.0.1"
6425 resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
6426
6427xtend@~2.1.1:
6428 version "2.1.2"
6429 resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b"
6430 dependencies:
6431 object-keys "~0.4.0"
6432
6433xtend@~3.0.0:
6434 version "3.0.0"
6435 resolved "https://registry.yarnpkg.com/xtend/-/xtend-3.0.0.tgz#5cce7407baf642cba7becda568111c493f59665a"
6436
6437y18n@^3.2.0, y18n@^3.2.1:
6438 version "3.2.1"
6439 resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
6440
6441yallist@^2.1.2:
6442 version "2.1.2"
6443 resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
6444
6445yallist@^3.0.0, yallist@^3.0.2:
6446 version "3.0.2"
6447 resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"
6448
6449yargs-parser@^5.0.0:
6450 version "5.0.0"
6451 resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
6452 dependencies:
6453 camelcase "^3.0.0"
6454
6455yargs-parser@^7.0.0:
6456 version "7.0.0"
6457 resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"
6458 dependencies:
6459 camelcase "^4.1.0"
6460
6461yargs@^3.28.0:
6462 version "3.32.0"
6463 resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995"
6464 dependencies:
6465 camelcase "^2.0.1"
6466 cliui "^3.0.3"
6467 decamelize "^1.1.1"
6468 os-locale "^1.4.0"
6469 string-width "^1.0.1"
6470 window-size "^0.1.4"
6471 y18n "^3.2.0"
6472
6473yargs@^7.0.0, yargs@^7.0.2:
6474 version "7.1.0"
6475 resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"
6476 dependencies:
6477 camelcase "^3.0.0"
6478 cliui "^3.2.0"
6479 decamelize "^1.1.1"
6480 get-caller-file "^1.0.1"
6481 os-locale "^1.4.0"
6482 read-pkg-up "^1.0.1"
6483 require-directory "^2.1.1"
6484 require-main-filename "^1.0.1"
6485 set-blocking "^2.0.0"
6486 string-width "^1.0.2"
6487 which-module "^1.0.0"
6488 y18n "^3.2.1"
6489 yargs-parser "^5.0.0"
6490
6491yargs@^8.0.2:
6492 version "8.0.2"
6493 resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"
6494 dependencies:
6495 camelcase "^4.1.0"
6496 cliui "^3.2.0"
6497 decamelize "^1.1.1"
6498 get-caller-file "^1.0.1"
6499 os-locale "^2.0.0"
6500 read-pkg-up "^2.0.0"
6501 require-directory "^2.1.1"
6502 require-main-filename "^1.0.1"
6503 set-blocking "^2.0.0"
6504 string-width "^2.0.0"
6505 which-module "^2.0.0"
6506 y18n "^3.2.1"
6507 yargs-parser "^7.0.0"
6508
6509yauzl@2.4.1:
6510 version "2.4.1"
6511 resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"
6512 dependencies:
6513 fd-slicer "~1.0.1"
6514
6515yeast@0.1.2:
6516 version "0.1.2"
6517 resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"