├── .gitignore ├── docs ├── aqua-tab-bar.png ├── line-numbers.gif ├── settings-1.png ├── settings-2.png ├── settings-3.png ├── settings-4.png ├── vimix-dark.png ├── vimix-light.png ├── splash-screen.png ├── status-on-top.png ├── minimal-terminal.png ├── cursor-line-brighten.gif ├── find-in-project-after.png ├── find-in-project-before.png └── one-line-fuzzy-finder.png ├── .eslintrc ├── .flowconfig ├── lib ├── types.js ├── helpers.js ├── index.js ├── class_names.js ├── class_name_manager.js └── config.js ├── CONTRIBUTING.md ├── package.json ├── LICENSE.md ├── styles ├── experimental.less ├── editor.less ├── find-in-project.less ├── aqua-tab-bar.less ├── tweaks.less └── ui-splash.less ├── CHANGELOG.md ├── spec └── ui-tweaks-spec.js ├── README.md └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /docs/aqua-tab-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/atom-ui-tweaks/master/docs/aqua-tab-bar.png -------------------------------------------------------------------------------- /docs/line-numbers.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/atom-ui-tweaks/master/docs/line-numbers.gif -------------------------------------------------------------------------------- /docs/settings-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/atom-ui-tweaks/master/docs/settings-1.png -------------------------------------------------------------------------------- /docs/settings-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/atom-ui-tweaks/master/docs/settings-2.png -------------------------------------------------------------------------------- /docs/settings-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/atom-ui-tweaks/master/docs/settings-3.png -------------------------------------------------------------------------------- /docs/settings-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/atom-ui-tweaks/master/docs/settings-4.png -------------------------------------------------------------------------------- /docs/vimix-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/atom-ui-tweaks/master/docs/vimix-dark.png -------------------------------------------------------------------------------- /docs/vimix-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/atom-ui-tweaks/master/docs/vimix-light.png -------------------------------------------------------------------------------- /docs/splash-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/atom-ui-tweaks/master/docs/splash-screen.png -------------------------------------------------------------------------------- /docs/status-on-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/atom-ui-tweaks/master/docs/status-on-top.png -------------------------------------------------------------------------------- /docs/minimal-terminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/atom-ui-tweaks/master/docs/minimal-terminal.png -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "standard", 4 | "standard-jsx" 5 | ], 6 | "parser": "babel-eslint" 7 | } 8 | -------------------------------------------------------------------------------- /docs/cursor-line-brighten.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/atom-ui-tweaks/master/docs/cursor-line-brighten.gif -------------------------------------------------------------------------------- /docs/find-in-project-after.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/atom-ui-tweaks/master/docs/find-in-project-after.png -------------------------------------------------------------------------------- /docs/find-in-project-before.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/atom-ui-tweaks/master/docs/find-in-project-before.png -------------------------------------------------------------------------------- /docs/one-line-fuzzy-finder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rstacruz/atom-ui-tweaks/master/docs/one-line-fuzzy-finder.png -------------------------------------------------------------------------------- /.flowconfig: -------------------------------------------------------------------------------- 1 | [ignore] 2 | 3 | [include] 4 | 5 | [libs] 6 | 7 | [lints] 8 | 9 | [options] 10 | 11 | [strict] 12 | -------------------------------------------------------------------------------- /lib/types.js: -------------------------------------------------------------------------------- 1 | /* @flow */ 2 | export type ClassDefinitions = any 3 | 4 | export type ClassNameList = { 5 | [string]: string 6 | } 7 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Dev setup 2 | 3 | ```bash 4 | git clone https://github.com/rstacruz/atom-ui-tweaks.git 5 | cd atom-ui-tweaks 6 | 7 | apm link 8 | ``` 9 | 10 | ## Notes 11 | 12 | ``` 13 | atom.config.get('atom-ui-tweaks.lol') 14 | ``` 15 | -------------------------------------------------------------------------------- /lib/helpers.js: -------------------------------------------------------------------------------- 1 | 'use babel' 2 | 3 | export const PREFIX = 'atom-ui-tweaks' 4 | 5 | /** 6 | * Kebab case string helper. 7 | * 8 | * @example 9 | * kebabify('ui.atomLogoSplashScreen') 10 | * // => 'ui--atom-logo-splash-screen' 11 | */ 12 | export function kebabify (key) { 13 | return key 14 | .toString() 15 | .replace(/[^a-zA-Z0-9]+/g, ' ') 16 | .trim() 17 | .replace(/ /g, '--') 18 | .replace(/[A-Z]/g, letter => `-${letter.toLowerCase()}`) 19 | } 20 | 21 | /** 22 | * Builds class definitions 23 | */ 24 | 25 | export function tuplesToClassDefinitions (tuples) { 26 | return tuples.reduce((result, [key, value]) => { 27 | const className = 28 | value === true 29 | ? `${PREFIX}--${kebabify(key)}` 30 | : `${PREFIX}--${kebabify(key)}--${kebabify(value)}` 31 | 32 | return { 33 | ...result, 34 | [className]: { [key]: value } 35 | } 36 | }, {}) 37 | } 38 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "atom-ui-tweaks", 3 | "author": "Rico Sta. Cruz ", 4 | "main": "./lib/index", 5 | "version": "0.3.0", 6 | "description": "Prettify your Atom editor UI with these sleek tweaks", 7 | "keywords": [ 8 | "ui", 9 | "status on top", 10 | "extra padding" 11 | ], 12 | "repository": "https://github.com/rstacruz/atom-ui-tweaks", 13 | "license": "MIT", 14 | "scripts": { 15 | "lint": "eslint lib", 16 | "prettier:fix": "prettier-eslint --write 'lib/**/*.js'", 17 | "prettier:check": "prettier-eslint --list-different 'lib/**/*.js'" 18 | }, 19 | "engines": { 20 | "atom": ">=1.0.0 <2.0.0" 21 | }, 22 | "devDependencies": { 23 | "babel-eslint": "8.2.6", 24 | "flow-bin": "^0.77.0", 25 | "prettier-eslint-cli": "4.7.1", 26 | "standard": "11.0.1" 27 | }, 28 | "files": [ 29 | "lib", 30 | "styles" 31 | ] 32 | } 33 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018 Rico Sta. Cruz 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /styles/experimental.less: -------------------------------------------------------------------------------- 1 | @import 'ui-variables'; 2 | 3 | /* Fake traffic lights */ 4 | .atom-ui-tweaks--other--fake-traffic-lights { 5 | &.theme-one-dark-ui, 6 | &.theme-one-light-ui { 7 | .status-bar-left::before { 8 | content: ''; 9 | display: inline-block; 10 | vertical-align: middle; 11 | position: relative; 12 | top: -1px; 13 | width: 10px; 14 | height: 10px; 15 | background: #d63031; 16 | border-radius: 50%; 17 | box-shadow: 24px 0 0 #fdcb6e, 48px 0 0 #00b894; 18 | margin-left: 12px; 19 | margin-right: 48px; 20 | } 21 | 22 | status-bar a.current-path { 23 | font-size: 1.1em; 24 | position: relative; 25 | top: -1px; 26 | } 27 | } 28 | } 29 | 30 | /* 31 | * Subtle indicator that staging tweaks is on 32 | */ 33 | 34 | .atom-ui-tweaks--other--enable-staging-tweaks { 35 | status-bar a.current-path::after { 36 | content: ''; 37 | display: inline-block; 38 | width: 2px; 39 | height: 2px; 40 | border-radius: 50%; 41 | background: dodgerblue; 42 | box-shadow: 0 0 3px dodgerblue; 43 | margin-left: 8px; 44 | margin-right: 8px; 45 | vertical-align: middle; 46 | margin-top: -3px; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /styles/editor.less: -------------------------------------------------------------------------------- 1 | @import 'ui-variables'; 2 | 3 | /* 4 | * editor.cursorLineStyle: disabled 5 | */ 6 | 7 | .atom-ui-tweaks--editor--cursor-line-style--disabled, 8 | .atom-ui-tweaks--editor--cursor-line-style--brighten { 9 | atom-text-editor .line.cursor-line { 10 | background: transparent !important; 11 | } 12 | } 13 | 14 | /* 15 | * Mixin for editor.cursorLineStyle 16 | */ 17 | 18 | .highlight-line when (lightness(@syntax-background-color) >= 50%) { 19 | background: transparent !important; 20 | filter: brightness(0.7); 21 | } 22 | 23 | .highlight-line when (lightness(@syntax-background-color) < 50%) { 24 | background: transparent !important; 25 | filter: brightness(1.3); 26 | } 27 | 28 | /* 29 | * editor.cursorLineStyle: brighten 30 | */ 31 | 32 | .atom-ui-tweaks--editor--cursor-line-style--brighten { 33 | atom-text-editor .line.cursor-line, 34 | atom-text-editor .line-number.cursor-line { 35 | .highlight-line(); 36 | } 37 | } 38 | 39 | /* 40 | * editor.forceCommentFontStyle: normal 41 | */ 42 | 43 | .atom-ui-tweaks--editor--force-comment-font-style--normal { 44 | .syntax--comment { 45 | font-style: normal !important; 46 | } 47 | } 48 | 49 | /* 50 | * editor.forceCommentFontStyle: italic 51 | */ 52 | 53 | .atom-ui-tweaks--editor--force-comment-font-style--italic { 54 | .syntax--comment { 55 | font-style: italic !important; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## [v0.3.0] 2 | 3 | > Unreleased 4 | 5 | ### New features 6 | 7 | - Added `atom-ui-tweaks:open-settings` command to easily switch to the settings view. 8 | 9 | ## :nail_care: New tweaks 10 | 11 | - New **Tab** tweaks: 12 | - Aqua style tabs 13 | 14 | - New **Find in Project** tweaks: 15 | - Improved header rows 16 | - Subtle match count 17 | - Subtle highlights 18 | - Subtle line numbers 19 | - Subtle separators 20 | 21 | > 22 | 23 | > 24 | 25 | [v0.3.0]: https://github.com/rstacruz/atom-ui-tweaks/compare/v0.2.0...v0.3.0 26 | 27 | ## [v0.2.0] 28 | 29 | > Jul 23, 2018 30 | 31 | ### :nail_care: New tweaks 32 | 33 | These new pretty tweaks have been added: 34 | 35 | - **UI: Atom logo splash screen** — makes your no-editor view pretty. 36 | 37 | > 38 | 39 | - **Editor: Cursor line style** — disable the highlight on the current line, or restyle how it looks like. 40 | 41 | > 42 | 43 | - **Modal: Simplify backdrop** — fade the editor out when a modal is open. 44 | 45 | - **Modal: Disable animation** — remove the fade-in animation of modal dialog overlays. 46 | 47 | - **Editor: Comment font style** — force italic comments, regardless of syntax theme. 48 | 49 | ### :sparkles: New features 50 | 51 | - Some tweaks are marked as _recommended_ in the settings page. These are my favorite tweaks that I think you'll enjoy. 52 | 53 | - Tweaks introduced in this version are marked as _new_ in the settings page. 54 | 55 | [v0.2.0]: https://github.com/rstacruz/atom-ui-tweaks/compare/v0.1.0...v0.2.0 56 | 57 | ## [v0.1.0] 58 | 59 | > Jul 18, 2018 60 | 61 | - Initial release. 62 | 63 | [v0.1.0]: https://github.com/rstacruz/atom-ui-tweaks/tree/v0.1.0 64 | -------------------------------------------------------------------------------- /lib/index.js: -------------------------------------------------------------------------------- 1 | 'use babel' 2 | /* @flow */ 3 | /* global atom */ 4 | 5 | // $FlowFixMe$ 6 | import { CompositeDisposable } from 'atom' 7 | import { CONFIG } from './config' 8 | import ClassNameManager from './class_name_manager' 9 | 10 | export type State = {} 11 | 12 | export default { 13 | subscriptions: null, 14 | config: CONFIG, 15 | 16 | /** 17 | * Go go gadget atom-ui-tweaks! 18 | */ 19 | 20 | activate (state: State) { 21 | this.manager = new ClassNameManager(this.getHooks()) 22 | 23 | // So they can all be disposed later 24 | this.subscriptions = new CompositeDisposable() 25 | 26 | // Register config observers 27 | const keys = this.manager.getConfigKeys() 28 | keys.forEach((configKey: string) => { 29 | const fullConfigKey = `atom-ui-tweaks.${configKey}` 30 | 31 | this.subscriptions.add( 32 | /* $FlowFixMe$ */ 33 | atom.config.observe(fullConfigKey, value => { 34 | this.onConfigChange(configKey, value) 35 | }) 36 | ) 37 | }) 38 | 39 | this.subscriptions.add( 40 | /* $FlowFixMe$ */ 41 | atom.commands.add( 42 | 'atom-workspace', 43 | 'atom-ui-tweaks:open-settings', 44 | () => { 45 | atom.workspace.open('atom://config/packages/atom-ui-tweaks') 46 | } 47 | ) 48 | ) 49 | }, 50 | 51 | /** 52 | * Handles changes in config keys. Also triggered on the plugin's first 53 | * activation. 54 | */ 55 | 56 | onConfigChange (configKey: string, value: any) { 57 | this.manager.handleConfigChange(configKey, value) 58 | }, 59 | 60 | /** 61 | * Returns hooks to be passed onto `ClassNameManager`. 62 | */ 63 | 64 | getHooks () { 65 | return { 66 | onAdd: (className: string) => { 67 | // $FlowFixMe$ 68 | atom.workspace.element.classList.add(className) 69 | }, 70 | 71 | onRemove: (className: string) => { 72 | // $FlowFixMe$ 73 | atom.workspace.element.classList.remove(className) 74 | } 75 | } 76 | }, 77 | 78 | /** 79 | * Lies in a deep and dreamless slumber. 80 | */ 81 | 82 | deactivate () { 83 | this.manager.teardown() 84 | this.subscriptions.dispose() 85 | }, 86 | 87 | serialize (): State { 88 | return {} 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /lib/class_names.js: -------------------------------------------------------------------------------- 1 | 'use babel' 2 | 3 | import { tuplesToClassDefinitions } from './helpers' 4 | 5 | export const CLASS_TUPLES = [ 6 | ['editor.cursorLineStyle', 'disabled'], 7 | ['editor.cursorLineStyle', 'brighten'], 8 | ['editor.forceCommentFontStyle', 'normal'], 9 | ['editor.forceCommentFontStyle', 'italic'], 10 | ['editor.lineNumberStyle', 'stealth'], 11 | ['editor.stealthIndentGuides', true], 12 | ['editor.topPadding', '16px'], 13 | ['editor.topPadding', '32px'], 14 | ['findInProject.subtleHeaderRows', true], 15 | ['findInProject.subtleMatchCount', true], 16 | ['findInProject.subtleHighlights', true], 17 | ['findInProject.subtleLineNumbers', true], 18 | ['findInProject.subtleSeparators', true], 19 | ['modal.disableAnimation', true], 20 | ['modal.simplifyBackdrop', true], 21 | ['other.enableStagingTweaks', true], 22 | ['other.fakeTrafficLights', true], 23 | ['status.barPosition', 'top'], 24 | ['status.boldFileName', true], 25 | ['status.extraPadding', true], 26 | ['status.hideEncodingStatus', true], 27 | ['status.hideLineEndingStatus', true], 28 | ['status.hideVimModePlusStatus', true], 29 | ['status.inactiveOpacity', '0%'], 30 | ['status.inactiveOpacity', '20%'], 31 | ['status.inactiveOpacity', '60%'], 32 | ['tab.borderRadius', 'large'], 33 | ['tab.borderRadius', 'small'], 34 | ['tab.borderRadius', 'xsmall'], 35 | ['tab.leftMargin', 'large'], 36 | ['tab.leftMargin', 'small'], 37 | ['tab.separatorStyle', 'invisible'], 38 | ['tab.separatorStyle', 'slight'], 39 | ['tab.style', 'aqua'], 40 | ['terminal.cursorColor', 'gray'], 41 | ['terminal.cursorColor', 'teal'], 42 | ['terminal.hideAddNewTerminalButton', true], 43 | ['terminal.hideCloseTerminalButton', true], 44 | ['terminal.hideInsertTextButton', true], 45 | ['terminal.lineHeight', '1.25em'], 46 | ['terminal.reduceSeparatorLineIntensity', true], 47 | ['terminal.stealthToolbar', true], 48 | ['terminal.syntaxAdaptiveBackgroundColor', true], 49 | ['tree.autoHideTabBar', true], 50 | ['tree.reduceIconSize', true], 51 | ['tree.tabBarPosition', 'bottom'], 52 | ['ui.atomLogoSplashScreen', true], 53 | ['ui.compactFuzzyFinder', true], 54 | ['ui.hideFindAndReplaceCloseButton', true], 55 | ['ui.hidePaneSeparators', true] 56 | ] 57 | 58 | /** 59 | * CSS class names, and the config keys associated with them 60 | */ 61 | 62 | export const CLASS_DEFINITIONS = tuplesToClassDefinitions(CLASS_TUPLES) 63 | 64 | export default CLASS_DEFINITIONS 65 | -------------------------------------------------------------------------------- /styles/find-in-project.less: -------------------------------------------------------------------------------- 1 | @import 'ui-variables'; 2 | @import 'syntax-variables'; 3 | 4 | /* 5 | * findInProject.subtleHeaderRows 6 | * Improve visibility of path rows 7 | */ 8 | 9 | .atom-ui-tweaks--find-in-project--subtle-header-rows { 10 | &.theme-one-light-ui, 11 | &.theme-one-dark-ui { 12 | .path-row { 13 | background: @tool-panel-background-color; 14 | // box-shadow: inset 0 1px 0 @input-border-color, 15 | // inset 0 -1px 0 @input-border-color; 16 | } 17 | .path-row .path-name { 18 | color: @syntax-color-constant; 19 | font-weight: bold; 20 | } 21 | } 22 | } 23 | 24 | /* 25 | * findInProject.subtleMatchCount 26 | * Move "(21 matches)" to the right 27 | */ 28 | 29 | .atom-ui-tweaks--find-in-project--subtle-match-count { 30 | &.theme-one-light-ui, 31 | &.theme-one-dark-ui { 32 | .results-view .path-match-number { 33 | float: right; 34 | margin-right: 8px; 35 | font-size: 0.9em; 36 | opacity: 0.2; 37 | } 38 | } 39 | } 40 | 41 | /* 42 | * findInProject.subtleHighlights 43 | * Make the highlights more reasonable 44 | */ 45 | 46 | .atom-ui-tweaks--find-in-project--subtle-highlights { 47 | &.theme-one-light-ui, 48 | &.theme-one-dark-ui { 49 | .results-view .highlight-info { 50 | background: fade(@syntax-color-property, 15%); 51 | text-shadow: none; 52 | border-radius: 2px; 53 | box-shadow: 0 0 4px 1px fade(@syntax-color-property, 5%); 54 | padding: 0.2em 0; 55 | color: @syntax-color-property; 56 | } 57 | } 58 | } 59 | 60 | /* 61 | * findInProject.subtleLineNumbers 62 | * Make line numbers more subtle 63 | */ 64 | 65 | .atom-ui-tweaks--find-in-project--subtle-line-numbers { 66 | &.theme-one-light-ui, 67 | &.theme-one-dark-ui { 68 | .results-view .line-number { 69 | font-size: 0.8em; 70 | margin-right: 14px; 71 | min-width: 3em; 72 | text-align: right; 73 | opacity: 0.4; 74 | } 75 | } 76 | } 77 | 78 | /* 79 | * findInProject.subtleSeparators 80 | */ 81 | 82 | .atom-ui-tweaks--find-in-project--subtle-separators { 83 | &.theme-one-light-ui, 84 | &.theme-one-dark-ui { 85 | .preview-pane .results-view .context-row, 86 | .preview-pane .results-view .match-row, 87 | .preview-pane .results-view .context-row.separator, 88 | .preview-pane .results-view .match-row.separator { 89 | box-shadow: none; 90 | box-shadow: inset 0 1px 0 fade(@panel-heading-border-color, 30%); 91 | } 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /spec/ui-tweaks-spec.js: -------------------------------------------------------------------------------- 1 | 'use babel' 2 | 3 | // Use the command `window:run-package-specs` (cmd-alt-ctrl-p) to run specs. 4 | // 5 | // To run a specific `it` or `describe` block add an `f` to the front (e.g. `fit` 6 | // or `fdescribe`). Remove the `f` to unfocus the block. 7 | 8 | // describe('OneUiTweaks', () => { 9 | // let workspaceElement, activationPromise 10 | // 11 | // beforeEach(() => { 12 | // workspaceElement = atom.views.getView(atom.workspace) 13 | // activationPromise = atom.packages.activatePackage('atom-ui-tweaks') 14 | // }) 15 | // 16 | // describe('when the one-ui-tweaks:toggle event is triggered', () => { 17 | // it('hides and shows the modal panel', () => { 18 | // // Before the activation event the view is not on the DOM, and no panel 19 | // // has been created 20 | // expect(workspaceElement.querySelector('.one-ui-tweaks')).not.toExist() 21 | // 22 | // // This is an activation event, triggering it will cause the package to be 23 | // // activated. 24 | // atom.commands.dispatch(workspaceElement, 'atom-ui-tweaks:about') 25 | // 26 | // waitsForPromise(() => { 27 | // return activationPromise 28 | // }) 29 | // 30 | // runs(() => { 31 | // expect(workspaceElement.querySelector('.one-ui-tweaks')).toExist() 32 | // 33 | // let oneUiTweaksElement = workspaceElement.querySelector( 34 | // '.one-ui-tweaks' 35 | // ) 36 | // expect(oneUiTweaksElement).toExist() 37 | // 38 | // let oneUiTweaksPanel = atom.workspace.panelForItem(oneUiTweaksElement) 39 | // expect(oneUiTweaksPanel.isVisible()).toBe(true) 40 | // atom.commands.dispatch(workspaceElement, 'one-ui-tweaks:toggle') 41 | // expect(oneUiTweaksPanel.isVisible()).toBe(false) 42 | // }) 43 | // }) 44 | // 45 | // it('hides and shows the view', () => { 46 | // // This test shows you an integration test testing at the view level. 47 | // 48 | // // Attaching the workspaceElement to the DOM is required to allow the 49 | // // `toBeVisible()` matchers to work. Anything testing visibility or focus 50 | // // requires that the workspaceElement is on the DOM. Tests that attach the 51 | // // workspaceElement to the DOM are generally slower than those off DOM. 52 | // jasmine.attachToDOM(workspaceElement) 53 | // 54 | // expect(workspaceElement.querySelector('.one-ui-tweaks')).not.toExist() 55 | // 56 | // // This is an activation event, triggering it causes the package to be 57 | // // activated. 58 | // atom.commands.dispatch(workspaceElement, 'one-ui-tweaks:toggle') 59 | // 60 | // waitsForPromise(() => { 61 | // return activationPromise 62 | // }) 63 | // 64 | // runs(() => { 65 | // // Now we can test for view visibility 66 | // let oneUiTweaksElement = workspaceElement.querySelector( 67 | // '.one-ui-tweaks' 68 | // ) 69 | // expect(oneUiTweaksElement).toBeVisible() 70 | // atom.commands.dispatch(workspaceElement, 'one-ui-tweaks:toggle') 71 | // expect(oneUiTweaksElement).not.toBeVisible() 72 | // }) 73 | // }) 74 | // }) 75 | // }) 76 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | 3 |

4 | 5 |
6 | 7 | # atom-ui-tweaks 8 | 9 | > Prettify your Atom editor UI with these sleek tweaks :nail_care: 10 | 11 | Pimp your Atom editor with these tweaks that make Atom look more sleek and minimal :heart: Install [atom-ui-tweaks](http://atom.io/packages/atom-ui-tweaks) via apm, or Atom's package settings. 12 | 13 | ```bash 14 | apm install atom-ui-tweaks 15 | ``` 16 | 17 | ## Screenshots 18 | 19 | **atom-ui-tweaks** provides a plethora of tweaks in its settings page. Here's an example: 20 | 21 |
22 | 23 |
24 | More screenshots 25 |
26 |
27 | 28 |
29 |
30 | 31 | :sparkles: **Atom logo splash screen** _(below)_ updates the look of the app when no editors are open. _(New in v0.2.0)_ 32 | 33 | > 34 | 35 | :point_right: **Cursor line style** _(below)_ allows you to restyle the highlight on the current line. Shown here is _brighten_: a more subtle way of highlighting than changing the background. _(New in v0.2.0)_ 36 | 37 | > 38 | 39 | :nail_care: **Tab bar style** _(below)_ lets you restyle the tab bar differently. _(New in v0.3.0)_ 40 | 41 | > 42 | 43 | :mag: **Find in Project** _(below)_ tweaks will make the find in project dialog more readable. _(New in v0.3.0)_ 44 | 45 | > 46 | 47 | :hash: **Small line numbers** _(below)_ tweak makes line numbers less prominent, but highlighting the fold points. **Simplified indent guides** will only show indent guides for the blocks that the cursor is in. 48 | 49 | > 50 | 51 | :tophat: **Status on top** _(below)_ moves the statusbar on top. (Also shown: _Increase status bar padding_, _Bold filename_, _Fake traffic lights_) 52 | 53 | > 54 | 55 | :dizzy: **Compact fuzzy finder** _(below)_ shows more lines in the Ctrl+P dialog by reducing each item to a single line. 56 | 57 | > 58 | 59 | :ghost: **Terminal: stealth toolbar** _(below)_ makes the terminal toolbar blend in with the rest of the terminal, making terminals feel more integrated into Atom. (Also shown: _hide insert text button_) 60 | 61 | > 62 | 63 | Here are screenshots with titlebars from the Vimix GTK theme (some extra CSS tweaks to make them integrate better): 64 | 65 | > 66 | 67 | ## Thanks 68 | 69 | **atom-ui-tweaks** © 2018+, Rico Sta. Cruz. Released under the [MIT] License.
70 | Authored and maintained by Rico Sta. Cruz with help from contributors ([list][contributors]). 71 | 72 | > [ricostacruz.com](http://ricostacruz.com)  ·  73 | > GitHub [@rstacruz](https://github.com/rstacruz)  ·  74 | > Twitter [@rstacruz](https://twitter.com/rstacruz) 75 | 76 | [![](https://img.shields.io/github/followers/rstacruz.svg?style=social&label=@rstacruz)](https://github.com/rstacruz)   77 | [![](https://img.shields.io/twitter/follow/rstacruz.svg?style=social&label=@rstacruz)](https://twitter.com/rstacruz) 78 | 79 | [mit]: http://mit-license.org/ 80 | [contributors]: http://github.com/rstacruz/atom-ui-tweaks/contributors 81 | -------------------------------------------------------------------------------- /lib/class_name_manager.js: -------------------------------------------------------------------------------- 1 | 'use babel' 2 | /* @flow */ 3 | 4 | import { CLASS_DEFINITIONS } from './class_names' 5 | import type { ClassDefinitions, ClassNameList } from './types' 6 | 7 | export type ConstructorProps = { 8 | classDefinitions: ClassDefinitions, 9 | onAdd: (className: string) => any, 10 | onRemove: (className: string) => any 11 | } 12 | 13 | /** 14 | * Manages class names in an Atom workspace. 15 | * 16 | * This class has NO dependencies (not even Atom), so it can be easily tested or 17 | * repurposed. 18 | * 19 | * @example 20 | * const manager = new ClassNameManager({ 21 | * onAdd: (className) => { ... }, 22 | * onRemove: (className) => { ... } 23 | * }) 24 | * 25 | * // Will call `onAdd` and `onRemove` hooks as needed 26 | * manager.handleConfigChange('status.hideVimModePlusStatus', true) 27 | * 28 | * // Ensures all classes are removed 29 | * manager.teardown() 30 | */ 31 | 32 | export default class ClassNameManager { 33 | classDefinitions: ClassDefinitions 34 | onAdd: (className: string) => any 35 | onRemove: (className: string) => any 36 | 37 | constructor ({ classDefinitions, onAdd, onRemove }: ConstructorProps) { 38 | this.classDefinitions = classDefinitions || CLASS_DEFINITIONS 39 | this.onAdd = onAdd 40 | this.onRemove = onRemove 41 | } 42 | 43 | /** 44 | * Performs tasks needed as a `configKey` changes its value 45 | */ 46 | 47 | handleConfigChange (configKey: string, value: boolean) { 48 | const classMap = this.getClassNameDerivatives(configKey, value) 49 | 50 | Object.keys(classMap).forEach((className: string) => { 51 | // If the class name is supposed to be present (eg, `true`) 52 | const newValue = classMap[className] 53 | 54 | if (newValue) { 55 | this.onAdd(className) 56 | } else { 57 | this.onRemove(className) 58 | } 59 | }) 60 | } 61 | 62 | /** 63 | * Performs cleanups. 64 | * 65 | * Removes all class names by calling the `onRemove` hook on every className 66 | * we know. Returns nothing. 67 | */ 68 | 69 | teardown () { 70 | Object.keys(this.classDefinitions).forEach((className: string) => { 71 | this.onRemove(className) 72 | }) 73 | } 74 | 75 | /** 76 | * Returns config keys that we want to observe. 77 | * 78 | * @example 79 | * manager.getConfigKeys() 80 | * 81 | * // => [ 82 | * // 'status.hideEncodingStatus', 83 | * // 'status.hideLineEndingStatus', 84 | * // ... 85 | * // ] 86 | */ 87 | 88 | getConfigKeys () { 89 | const classNames = Object.keys(this.classDefinitions) 90 | 91 | return classNames.reduce((result, className) => { 92 | const newClassNames = Object.keys(this.classDefinitions[className] || {}) 93 | return [...result, ...newClassNames] 94 | }, []) 95 | } 96 | 97 | /** 98 | * Gets CSS classNames that are derived from a given `configKey`, along with 99 | * if they're expected to be set or unset. 100 | * 101 | * @example 102 | * getClassNameDerivatives('editor.slightIndentGuides') 103 | * // => { 'atom-ui-tweaks--slight-indent-guides': true } 104 | */ 105 | 106 | getClassNameDerivatives (configKey: string, value: any) { 107 | return Object.keys(this.classDefinitions).reduce( 108 | (result: ClassNameList, className: string) => { 109 | // Config keys associated with a given className 110 | // (eg, `{ 'editor.oneLineCtrlP': true }`) 111 | const definition = this.classDefinitions[className] 112 | 113 | if (!definition.hasOwnProperty(configKey)) return result 114 | 115 | // The config is expected to have this value 116 | const expected = definition[configKey] 117 | 118 | const isMatch = expected === value 119 | return { ...result, [className]: isMatch } 120 | }, 121 | {} 122 | ) 123 | } 124 | } 125 | -------------------------------------------------------------------------------- /styles/aqua-tab-bar.less: -------------------------------------------------------------------------------- 1 | @import 'ui-variables'; 2 | @import 'syntax-variables'; 3 | 4 | @tab-padding: 4px; 5 | 6 | .aqua-tab-bar-background() when (lightness(@syntax-background-color) > 50%) { 7 | background: fade(@syntax-background-color, 5%); 8 | } 9 | 10 | .aqua-tab-bar-background() when (lightness(@syntax-background-color) <= 50%) { 11 | background: fade(@syntax-background-color, 50%); 12 | } 13 | 14 | /* tab.style: aqua */ 15 | .atom-ui-tweaks--tab--style--aqua { 16 | &.theme-one-dark-ui.theme-one-dark-ui.theme-one-dark-ui { 17 | .tab-bar .tab:not(.active) { 18 | .aqua-tab-bar-background(); 19 | } 20 | } 21 | 22 | &.theme-one-light-ui.theme-one-light-ui.theme-one-light-ui { 23 | .tab-bar .tab:not(.active) { 24 | background: fade(white, 50%); 25 | } 26 | } 27 | 28 | &.theme-one-dark-ui.theme-one-dark-ui.theme-one-dark-ui, 29 | &.theme-one-light-ui.theme-one-light-ui.theme-one-light-ui { 30 | // This doesn't look right 31 | // .inset-panel { 32 | // background: linear-gradient( 33 | // to bottom, 34 | // darken(@syntax-background-color, 5%), 35 | // darken(@syntax-background-color, 10%) 120% 36 | // ); 37 | // } 38 | 39 | .tab-bar { 40 | & { 41 | justify-content: center; 42 | border: solid @tab-padding transparent; 43 | border-right-width: @tab-padding * 8; 44 | border-left-width: @tab-padding * 8; 45 | border-top-width: @tab-padding + 2px; 46 | box-sizing: content-box; 47 | box-shadow: none; 48 | } 49 | 50 | .tab { 51 | cursor: pointer; 52 | } 53 | 54 | .tab.active { 55 | font-weight: bold; 56 | background: lighten(@syntax-background-color, 4%); 57 | color: darken(@syntax-text-color, 10%); 58 | } 59 | 60 | .tab, 61 | .tab:last-child { 62 | box-shadow: inset 0 1px 0 lighten(@tab-border-color, 5%), 63 | inset 0 -1px 0 @tab-border-color; 64 | } 65 | 66 | .tab.active, 67 | .tab.active:last-child { 68 | box-shadow: inset 0 1px 0 lighten(@syntax-background-color, 8%), 69 | inset 0 -1px 0 @tab-border-color; 70 | } 71 | 72 | .tab:last-child { 73 | margin-right: 0; 74 | border-top-right-radius: 4px !important; 75 | border-bottom-right-radius: 4px !important; 76 | border-top-left-radius: 0; 77 | border-bottom-left-radius: 0; 78 | } 79 | 80 | & .tab:first-child { 81 | margin-left: 0; 82 | border-top-left-radius: 4px; 83 | border-bottom-left-radius: 4px; 84 | border-top-right-radius: 0; 85 | border-bottom-right-radius: 0; 86 | } 87 | } 88 | } 89 | 90 | // Border below the tab bar 91 | .item-views { 92 | border-top: solid 1px @panel-heading-border-color; 93 | } 94 | 95 | .tab-bar .tab { 96 | border-left: 0; 97 | position: relative; 98 | } 99 | 100 | /* Remove line after the last */ 101 | .tab-bar .tab:last-of-type { 102 | box-shadow: inset 0 -1px @tab-border-color; 103 | } 104 | 105 | .tab-bar .tab.active:last-of-type { 106 | box-shadow: none; 107 | } 108 | 109 | .tab-bar .tab:not(:first-child)::before { 110 | content: ''; 111 | display: block; 112 | position: absolute; 113 | left: 0; 114 | top: 5px; 115 | bottom: 5px; 116 | width: 1px; 117 | opacity: 0.1; 118 | background: @syntax-text-color; 119 | } 120 | 121 | /* Right and Left of the active tab */ 122 | .tab-bar .tab.active + .tab::before, 123 | .tab-bar .tab.active::before { 124 | opacity: 0; 125 | } 126 | 127 | .tab-bar .tab.active:first-child::before { 128 | display: none; 129 | } 130 | } 131 | 132 | /* 133 | * aquaTabBar - Play nicely with status on top 134 | */ 135 | 136 | .atom-ui-tweaks--other--enable-staging-tweaks { 137 | &.theme-one-dark-ui, 138 | &.theme-one-light-ui { 139 | &.atom-ui-tweaks--status--bar-position--top { 140 | .status-bar { 141 | margin-bottom: -0.5 * @tab-padding; 142 | } 143 | } 144 | 145 | &.atom-ui-tweaks--status--extra-padding.atom-ui-tweaks--status--bar-position--top { 146 | .status-bar { 147 | margin-bottom: -1 * @tab-padding; 148 | } 149 | } 150 | } 151 | } 152 | -------------------------------------------------------------------------------- /lib/config.js: -------------------------------------------------------------------------------- 1 | 'use babel' 2 | 3 | const RECOMMENDED = '🔥 *Recommended!*' 4 | const NEW = '✨ (New)' 5 | const EXPERIMENTAL = '⚠️ *Experimental*' 6 | 7 | const BOOL = { 8 | type: 'boolean', 9 | default: false 10 | } 11 | 12 | const CATEGORY = { 13 | type: 'object', 14 | collapsed: true, 15 | order: 0 16 | } 17 | 18 | export const STATUS_CONFIG = { 19 | barPosition: { 20 | title: 'Status bar position', 21 | type: 'string', 22 | enum: [ 23 | { value: 'top', description: 'Top' }, 24 | { value: 'default', description: 'Bottom (default)' } 25 | ], 26 | default: 'default' 27 | }, 28 | 29 | hideEncodingStatus: { 30 | ...BOOL, 31 | title: 'Hide encoding status', 32 | description: 'Hide the encoding dropdown (eg, "UTF-8")' 33 | }, 34 | 35 | hideLineEndingStatus: { 36 | ...BOOL, 37 | title: 'Hide line ending status', 38 | description: 'Hide the line ending dropdown (eg, "LF")' 39 | }, 40 | 41 | hideVimModePlusStatus: { 42 | ...BOOL, 43 | title: 'Hide vim-mode-plus status', 44 | description: 45 | 'Hide the vim mode plus indicator (eg, "N/I"). Only works with the `vim-mode-plus` extension' 46 | }, 47 | 48 | boldFileName: { 49 | ...BOOL, 50 | title: 'Bold file name', 51 | description: 52 | 'Make the file name more visible in the status bar. Great for when the status bar is placed on top' 53 | }, 54 | 55 | extraPadding: { 56 | ...BOOL, 57 | title: 'Extra padding' 58 | }, 59 | 60 | inactiveOpacity: { 61 | title: 'Inactive opacity', 62 | description: 63 | "Fade out the other items in the status bar unless they're hovered", 64 | type: 'string', 65 | enum: [ 66 | { value: '60%', description: '60%' }, 67 | { value: '20%', description: '20%' }, 68 | { value: '0%', description: '0%' }, 69 | { value: 'default', description: 'Disabled (default)' } 70 | ], 71 | default: 'default' 72 | } 73 | } 74 | 75 | export const EDITOR_CONFIG = { 76 | stealthIndentGuides: { 77 | ...BOOL, 78 | title: 'Stealth indent guides', 79 | description: 80 | 'Make most indent guides invisible, except for the current block where the cursor is in. Only works with the `indent-guide-improved` extension' 81 | }, 82 | 83 | topPadding: { 84 | title: 'Top padding', 85 | description: 86 | 'Add extra padding between the tabs and the editor. Only works with the `vim-mode-plus` extension', 87 | type: 'string', 88 | enum: [ 89 | { value: '32px', description: '32px' }, 90 | { value: '16px', description: '16px' }, 91 | { value: 'default', description: '0px (default)' } 92 | ], 93 | default: 'default' 94 | }, 95 | 96 | lineNumberStyle: { 97 | title: 'Line number style', 98 | description: 'Make editor line numbers a bit more subtle', 99 | type: 'string', 100 | default: 'default', 101 | enum: [ 102 | { value: 'stealth', description: 'Stealth' }, 103 | { value: 'default', description: 'Default' } 104 | ] 105 | }, 106 | 107 | forceCommentFontStyle: { 108 | title: 'Comment font style', 109 | description: `${NEW} Force comments to be italic (or not), regardless of syntax theme`, 110 | type: 'string', 111 | default: 'default', 112 | enum: [ 113 | { value: 'normal', description: 'Force normal' }, 114 | { value: 'italic', description: 'Force italic' }, 115 | { value: 'default', description: 'Default' } 116 | ] 117 | }, 118 | 119 | cursorLineStyle: { 120 | title: 'Cursor line style', 121 | description: `${NEW} Adjust the highlight of the current line. *Disabled* will turn it off, while *Brighten* will adjust text brightness instead of adding a background. ${RECOMMENDED}`, 122 | type: 'string', 123 | default: 'default', 124 | enum: [ 125 | { value: 'disabled', description: 'Disabled' }, 126 | { value: 'brighten', description: 'Brighten' }, 127 | { value: 'default', description: 'Default' } 128 | ] 129 | } 130 | } 131 | 132 | export const UI_CONFIG = { 133 | compactFuzzyFinder: { 134 | ...BOOL, 135 | title: 'Compact fuzzy finder', 136 | description: `A compact view for the fuzzy finder (Ctrl+P). Shows more lines by changing the default two-line display into one-line. Requires the \`fuzzy-finder\` core extension. ${RECOMMENDED}` 137 | }, 138 | 139 | hideFindAndReplaceCloseButton: { 140 | ...BOOL, 141 | title: 'Hide "Find and Replace" close button', 142 | description: 143 | 'Hide the close button on Ctrl+F; use `Esc` to close instead. Applies to the find (ctrl-f) and find in project (ctrl-shift-f) panels' 144 | }, 145 | 146 | hidePaneSeparators: { 147 | ...BOOL, 148 | title: 'Hide pane separators', 149 | description: 'Hide the line between the panels in multi-panel mode' 150 | }, 151 | 152 | atomLogoSplashScreen: { 153 | ...BOOL, 154 | title: 'Atom logo splash screen', 155 | description: `${NEW} Show artwork when there are no editors open. Only works with the \`background-tips\` core package` 156 | } 157 | } 158 | 159 | export const TAB_CONFIG = { 160 | separatorStyle: { 161 | title: 'Separator style', 162 | description: 163 | 'Restyle the separators in between tabs in the tab bar. Note that this may be invisible in some syntax themes, and enabling this will remove the 2px line at the left of the active tab', 164 | type: 'string', 165 | default: 'default', 166 | enum: [ 167 | { value: 'slight', description: 'Slight gradient' }, 168 | { value: 'invisible', description: 'Invisible' }, 169 | { value: 'default', description: 'Line (default)' } 170 | ] 171 | }, 172 | 173 | borderRadius: { 174 | title: 'Border radius', 175 | description: 'Round the tabs in the tab bar', 176 | type: 'string', 177 | default: 'default', 178 | enum: [ 179 | { value: 'xsmall', description: 'X-Small' }, 180 | { value: 'small', description: 'Small' }, 181 | { value: 'large', description: 'Large' }, 182 | { value: 'default', description: 'None (default)' } 183 | ] 184 | }, 185 | 186 | leftMargin: { 187 | title: 'Left margin', 188 | description: 189 | 'Add an extra spacing to the left of the tab bar. This prevents tabs from "sticking" to the left side of the window', 190 | type: 'string', 191 | default: 'default', 192 | enum: [ 193 | { value: 'small', description: 'Small' }, 194 | { value: 'large', description: 'Large' }, 195 | { value: 'default', description: 'None (default)' } 196 | ] 197 | }, 198 | 199 | style: { 200 | title: 'Style', 201 | description: `${NEW} Change the style of the tab bar ${EXPERIMENTAL}`, 202 | type: 'string', 203 | default: 'default', 204 | enum: [ 205 | { value: 'aqua', description: 'Aqua pills' }, 206 | { value: 'default', description: 'Default' } 207 | ] 208 | } 209 | } 210 | 211 | export const TREE_CONFIG = { 212 | reduceIconSize: { 213 | ...BOOL, 214 | title: 'Reduce icon size', 215 | description: 216 | 'Make file icons in the tree view a little smaller. Best experienced with the `file-icons` package' 217 | }, 218 | 219 | autoHideTabBar: { 220 | ...BOOL, 221 | title: 'Auto-hide tab bar', 222 | description: 'Hide the sidebar tab bars until the sidebar is hovered upon' 223 | }, 224 | 225 | tabBarPosition: { 226 | type: 'string', 227 | title: 'Tab bar position', 228 | enum: [ 229 | { value: 'bottom', description: 'Bottom' }, 230 | { value: 'default', description: 'Top (default)' } 231 | ], 232 | default: 'default' 233 | } 234 | } 235 | 236 | export const TERMINAL_CONFIG = { 237 | hideCloseTerminalButton: { 238 | ...BOOL, 239 | title: 'Hide "Close terminal" button', 240 | description: 241 | 'Hides the × icon in the status bar. Requires the `platformio-ide-terminal` extension' 242 | }, 243 | 244 | hideAddNewTerminalButton: { 245 | ...BOOL, 246 | title: 'Hide "Add new terminal" button', 247 | description: 248 | 'Hide the + icon in the status bar. Requires the `platformio-ide-terminal` extension' 249 | }, 250 | 251 | hideInsertTextButton: { 252 | ...BOOL, 253 | title: 'Hide "Insert text" button', 254 | description: 255 | 'Hide the button with the keyboard icon in the terminal toolbar. Requires the `platformio-ide-terminal` extension' 256 | }, 257 | 258 | lineHeight: { 259 | title: 'Line height', 260 | type: 'string', 261 | enum: [ 262 | { value: '1.25em', description: '1.25em' }, 263 | { value: 'default', description: 'Default' } 264 | ], 265 | default: 'default' 266 | }, 267 | 268 | stealthToolbar: { 269 | ...BOOL, 270 | title: 'Stealth toolbar', 271 | description: 272 | 'Make the toolbar translucent, and moves it to the bottom for a slimmer profile. Requires the `platformio-ide-terminal` extension' 273 | }, 274 | 275 | cursorColor: { 276 | title: 'Cursor color', 277 | description: 278 | 'Make the cursor less attention-grabbing. Requires the `platformio-ide-terminal` extension', 279 | type: 'string', 280 | enum: [ 281 | { value: 'teal', description: 'Teal' }, 282 | { value: 'gray', description: 'Gray' }, 283 | { value: 'default', description: 'Default' } 284 | ], 285 | default: 'default' 286 | }, 287 | 288 | reduceSeparatorLineIntensity: { 289 | ...BOOL, 290 | title: 'Reduce separator line intensity', 291 | description: 292 | 'Make the line above the terminal blend in better. Makes most difference in light themes. Requires the `platformio-ide-terminal` extension' 293 | }, 294 | 295 | syntaxAdaptiveBackgroundColor: { 296 | ...BOOL, 297 | title: 'Syntax-adaptive background color', 298 | description: 299 | 'Use background colors based on the syntax. Requires the `platformio-ide-terminal` extension' 300 | } 301 | } 302 | 303 | export const MODAL_CONFIG = { 304 | disableAnimation: { 305 | ...BOOL, 306 | title: 'Disable animation', 307 | description: `${NEW} Show modal dialogs instantly without fading in the overlay screen. Gives the impression of a faster, more responsive UI` 308 | }, 309 | 310 | simplifyBackdrop: { 311 | ...BOOL, 312 | title: 'Simplify backdrop', 313 | description: `${NEW} Fade the editor out instead of dimming the entire screen` 314 | } 315 | } 316 | 317 | export const FIND_IN_PROJECT_CONFIG = { 318 | subtleHeaderRows: { 319 | ...BOOL, 320 | title: 'Improve header row visibility', 321 | description: `${NEW} Make filenames easier to see` 322 | }, 323 | 324 | subtleMatchCount: { 325 | ...BOOL, 326 | title: 'Subtle match count', 327 | description: `${NEW} Make the '11 matches' text less distracting` 328 | }, 329 | 330 | subtleHighlights: { 331 | ...BOOL, 332 | title: 'Subtle highlights', 333 | description: `${NEW} Make highlighted text easier to read ${RECOMMENDED}` 334 | }, 335 | 336 | subtleLineNumbers: { 337 | ...BOOL, 338 | title: 'Subtle line numbers', 339 | description: `${NEW} Make line numbers align properly, and make their font sizes a bit smaller` 340 | }, 341 | 342 | subtleSeparators: { 343 | ...BOOL, 344 | title: 'Subtle separators', 345 | description: `${NEW} Lessen the opacity of the lines separating each result` 346 | } 347 | } 348 | 349 | export const OTHER_CONFIG = { 350 | fakeTrafficLights: { 351 | ...BOOL, 352 | title: 'Fake traffic lights in the status bar', 353 | description: "Nope, they don't work" 354 | } 355 | } 356 | 357 | export const CONFIG = { 358 | status: { 359 | ...CATEGORY, 360 | title: 'Status bar', 361 | description: 'Status bar tweaks', 362 | properties: STATUS_CONFIG 363 | }, 364 | 365 | editor: { 366 | ...CATEGORY, 367 | title: 'Editor', 368 | description: 'Editor tweaks', 369 | properties: EDITOR_CONFIG 370 | }, 371 | 372 | ui: { 373 | ...CATEGORY, 374 | title: 'User interface', 375 | description: 'UI tweaks', 376 | properties: UI_CONFIG 377 | }, 378 | 379 | modal: { 380 | ...CATEGORY, 381 | title: 'Modal dialogs', 382 | properties: MODAL_CONFIG 383 | }, 384 | 385 | tab: { 386 | ...CATEGORY, 387 | title: 'Tab bar', 388 | properties: TAB_CONFIG 389 | }, 390 | 391 | tree: { 392 | ...CATEGORY, 393 | title: 'Tree view', 394 | properties: TREE_CONFIG 395 | }, 396 | 397 | terminal: { 398 | ...CATEGORY, 399 | title: 'Terminal', 400 | properties: TERMINAL_CONFIG 401 | }, 402 | 403 | findInProject: { 404 | ...CATEGORY, 405 | title: `Find in Project ${NEW}`, 406 | properties: FIND_IN_PROJECT_CONFIG 407 | }, 408 | 409 | other: { 410 | ...CATEGORY, 411 | title: 'Experimental tweaks (Unsupported)', 412 | collapsed: true, 413 | order: 9, 414 | properties: OTHER_CONFIG 415 | } 416 | } 417 | 418 | export default CONFIG 419 | -------------------------------------------------------------------------------- /styles/tweaks.less: -------------------------------------------------------------------------------- 1 | @import 'ui-variables'; 2 | @import 'syntax-variables'; 3 | 4 | @dark-text-bold: #fff; 5 | @light-text-bold: #111; 6 | 7 | /* One-line ctrl+p */ 8 | .atom-ui-tweaks--ui--compact-fuzzy-finder { 9 | &.theme-one-light-ui, 10 | &.theme-one-dark-ui { 11 | .FuzzyFinderResult { 12 | & { 13 | overflow: hidden; 14 | } 15 | 16 | & > .primary-line { 17 | float: right; 18 | position: static; 19 | color: lighten(@syntax-selection-color, 10%); 20 | } 21 | 22 | &.selected > .primary-line { 23 | color: lighten(@syntax-selection-color, 30%); 24 | } 25 | 26 | & > .primary-line::before { 27 | margin-right: 0; 28 | margin-left: 8px !important; 29 | position: absolute; 30 | left: 3px; 31 | top: 8px; 32 | } 33 | 34 | & > .secondary-line { 35 | float: left; 36 | opacity: 1; 37 | } 38 | } 39 | } 40 | 41 | &.theme-one-light-ui { 42 | .FuzzyFinderResult { 43 | & > .primary-line { 44 | color: @text-color-subtle; 45 | } 46 | 47 | &.selected > .primary-line { 48 | color: @text-color; 49 | } 50 | } 51 | } 52 | } 53 | 54 | /* Hide "utf-8" */ 55 | .atom-ui-tweaks--status--hide-encoding-status { 56 | .status-bar .encoding-status { 57 | display: none; 58 | } 59 | } 60 | 61 | /* Hide "CR/LF" */ 62 | .atom-ui-tweaks--status--hide-line-ending-status { 63 | .status-bar a.line-ending-tile { 64 | display: none; 65 | } 66 | } 67 | 68 | /* Hide "N/I" */ 69 | .atom-ui-tweaks--status--hide-vim-mode-plus-status { 70 | .status-bar #status-bar-vim-mode-plus { 71 | display: none; 72 | } 73 | } 74 | 75 | /* Stealth indent guides (indent-guide-improved) */ 76 | .atom-ui-tweaks--editor--stealth-indent-guides { 77 | .indent-guide-improved { 78 | background-color: transparent; 79 | border-left: dotted 1px #8fa0; 80 | 81 | &.indent-guide-stack { 82 | background-color: transparent; 83 | border-left: dotted 1px #8fa2; 84 | 85 | &.indent-guide-active { 86 | background-color: transparent; 87 | border-left: dotted 1px #8fa4; 88 | } 89 | } 90 | } 91 | } 92 | 93 | /* Status bar on top (lol) */ 94 | .atom-ui-tweaks--status--bar-position--top { 95 | &.theme-one-dark-ui, 96 | &.theme-one-light-ui { 97 | atom-panel-container.footer { 98 | order: -1; 99 | } 100 | } 101 | } 102 | 103 | /* Extra padding on top */ 104 | .atom-ui-tweaks--editor--top-padding--16px { 105 | &.theme-one-dark-ui, 106 | &.theme-one-light-ui { 107 | atom-text-editor.vim-mode-plus:not(.mini) { 108 | padding-top: 16px; 109 | } 110 | } 111 | } 112 | 113 | /* Extra padding on top */ 114 | .atom-ui-tweaks--editor--top-padding--32px { 115 | &.theme-one-dark-ui, 116 | &.theme-one-light-ui { 117 | atom-text-editor.vim-mode-plus:not(.mini) { 118 | padding-top: 32px; 119 | } 120 | } 121 | } 122 | 123 | /* Bold status bar filename */ 124 | .atom-ui-tweaks--status--bold-file-name { 125 | &.theme-one-dark-ui, 126 | &.theme-one-light-ui { 127 | status-bar a.current-path { 128 | font-weight: bold; 129 | font-size: 1.1em; 130 | } 131 | } 132 | 133 | &.theme-one-dark-ui { 134 | status-bar a.current-path { 135 | color: @dark-text-bold; 136 | } 137 | } 138 | 139 | &.theme-one-light-ui { 140 | status-bar a.current-path { 141 | color: @light-text-bold; 142 | } 143 | } 144 | } 145 | 146 | /* 147 | * Hide find and replace close button 148 | * Originally by @simurai 149 | * From: https://github.com/atom/find-and-replace/pull/885#issuecomment-302593400 150 | */ 151 | 152 | .atom-ui-tweaks--ui--hide-find-and-replace-close-button { 153 | .project-find .close-button, 154 | .find-and-replace .close-button { 155 | display: none; 156 | } 157 | } 158 | 159 | /* Reduce icon size */ 160 | .atom-ui-tweaks--tree--reduce-icon-size { 161 | .tree-view .icon::before { 162 | font-size: 13px; 163 | } 164 | 165 | .tree-view .css3-icon::before { 166 | font-size: 11px; 167 | } 168 | } 169 | 170 | /* Hide "add new terminal" icon in status bar */ 171 | .atom-ui-tweaks--terminal--hide-add-new-terminal-button { 172 | .platformio-ide-terminal.status-bar .icon-plus { 173 | display: none; 174 | } 175 | } 176 | 177 | /* Hide "Close terminal" icon in status bar */ 178 | .atom-ui-tweaks--terminal--hide-close-terminal-button { 179 | .platformio-ide-terminal.status-bar .icon-x { 180 | display: none; 181 | } 182 | } 183 | 184 | /* When both tweaks above are active */ 185 | .atom-ui-tweaks--terminal--hide-add-new-terminal-button.atom-ui-tweaks--terminal--hide-close-terminal-button { 186 | .platformio-ide-terminal.status-bar { 187 | margin-left: 0; 188 | margin-right: 0; 189 | } 190 | } 191 | 192 | /* Reduce line height */ 193 | .atom-ui-tweaks--terminal--line-height--1--25em { 194 | .platformio-ide-terminal.terminal-view { 195 | .xterm > .terminal > div { 196 | line-height: 1.25em; 197 | } 198 | } 199 | } 200 | 201 | /* Stealth toolbar */ 202 | .atom-ui-tweaks--terminal--stealth-toolbar { 203 | &.theme-one-dark-ui, 204 | &.theme-one-light-ui { 205 | .platformio-ide-terminal.terminal-view { 206 | border-top: solid 1px #0006; 207 | } 208 | } 209 | 210 | .platformio-ide-terminal.terminal-view { 211 | & { 212 | display: flex; 213 | flex-direction: column; 214 | } 215 | 216 | > .input-block { 217 | order: 10; 218 | } 219 | 220 | > .input-block, 221 | > .input-block > .btn-toolbar { 222 | padding: 2px !important; 223 | } 224 | 225 | > .input-block > .btn-toolbar:not(:hover) { 226 | opacity: 0.1; 227 | transition: opacity 150ms linear; 228 | } 229 | 230 | .btn-group, 231 | .btn { 232 | background: transparent; 233 | border: 0 !important; 234 | box-shadow: none; 235 | } 236 | } 237 | } 238 | 239 | /* Remove 'insert text' button' */ 240 | .atom-ui-tweaks--terminal--hide-insert-text-button { 241 | .platformio-ide-terminal.terminal-view { 242 | button.btn.icon-keyboard { 243 | display: none; 244 | } 245 | } 246 | } 247 | 248 | /* Bottom tab bar for the project pane */ 249 | .atom-ui-tweaks--tree--tab-bar-position--bottom { 250 | &.theme-one-dark-ui, 251 | &.theme-one-light-ui { 252 | atom-dock .tab-bar { 253 | order: 100; 254 | } 255 | } 256 | } 257 | 258 | .atom-ui-tweaks--tree--auto-hide-tab-bar { 259 | &.theme-one-dark-ui, 260 | &.theme-one-light-ui { 261 | atom-dock .tab-bar { 262 | opacity: 0.5; 263 | transform: translate3d(0, -48px, 0); 264 | transition: opacity 150ms linear, transform 150ms ease-out; 265 | } 266 | 267 | atom-dock:hover .tab-bar { 268 | opacity: 1; 269 | transform: translate3d(0, 0, 0); 270 | } 271 | } 272 | } 273 | 274 | .atom-ui-tweaks--tree--tab-bar-position--bottom.atom-ui-tweaks--tree--auto-hide-tab-bar { 275 | &.theme-one-dark-ui, 276 | &.theme-one-light-ui { 277 | atom-dock .tab-bar { 278 | transform: translate3d(0, 48px, 0); 279 | } 280 | 281 | atom-dock:hover .tab-bar { 282 | transform: translate3d(0, 0, 0); 283 | } 284 | } 285 | } 286 | 287 | .atom-ui-tweaks--status--extra-padding { 288 | &.theme-one-dark-ui, 289 | &.theme-one-light-ui { 290 | .status-bar { 291 | border: solid 4px transparent; 292 | box-sizing: content-box; 293 | } 294 | 295 | .status-bar .status-bar-left > * { 296 | margin-left: 2px; 297 | margin-right: 2px; 298 | } 299 | 300 | .status-bar .status-bar-right > * { 301 | margin-left: 6px; 302 | margin-right: 6px; 303 | } 304 | } 305 | } 306 | 307 | /* Teal cursor */ 308 | .atom-ui-tweaks--terminal--cursor-color--teal { 309 | .platformio-ide-terminal.terminal-view { 310 | .terminal-cursor { 311 | border-radius: 1px; 312 | background: #3a88; 313 | } 314 | } 315 | } 316 | 317 | /* Gray cursor */ 318 | .atom-ui-tweaks--terminal--cursor-color--gray { 319 | .platformio-ide-terminal.terminal-view { 320 | .terminal-cursor { 321 | border-radius: 1px; 322 | background: #60708088; 323 | } 324 | } 325 | } 326 | 327 | /* Stealthier status bar */ 328 | .atom-ui-tweaks--status--inactive-opacity--60 { 329 | &.theme-one-dark-ui, 330 | &.theme-one-light-ui { 331 | .status-bar .status-bar-right, 332 | .status-bar .status-bar-left > *:not(.file-info) { 333 | opacity: 0.6; 334 | transition: opacity 150ms linear; 335 | } 336 | 337 | .status-bar:hover .status-bar-right, 338 | .status-bar:hover .status-bar-left > *:not(.file-info) { 339 | opacity: 1; 340 | } 341 | } 342 | } 343 | 344 | /* Stealthier status bar */ 345 | .atom-ui-tweaks--status--inactive-opacity--20 { 346 | &.theme-one-dark-ui, 347 | &.theme-one-light-ui { 348 | .status-bar .status-bar-right, 349 | .status-bar .status-bar-left > *:not(.file-info) { 350 | opacity: 0.2; 351 | transition: opacity 150ms linear; 352 | } 353 | 354 | .status-bar:hover .status-bar-right, 355 | .status-bar:hover .status-bar-left > *:not(.file-info) { 356 | opacity: 1; 357 | } 358 | } 359 | } 360 | 361 | /* Stealthier status bar */ 362 | .atom-ui-tweaks--status--inactive-opacity--0 { 363 | &.theme-one-dark-ui, 364 | &.theme-one-light-ui { 365 | .status-bar .status-bar-right, 366 | .status-bar .status-bar-left > *:not(.file-info) { 367 | opacity: 0; 368 | transition: opacity 150ms linear; 369 | } 370 | 371 | .status-bar:hover .status-bar-right, 372 | .status-bar:hover .status-bar-left > *:not(.file-info) { 373 | opacity: 1; 374 | } 375 | } 376 | } 377 | 378 | /* Hide vertical separator */ 379 | .atom-ui-tweaks--ui--hide-pane-separators { 380 | &.theme-one-dark-ui, 381 | &.theme-one-light-ui { 382 | atom-pane-container atom-pane { 383 | border-right: none; 384 | border-bottom: none; 385 | } 386 | } 387 | } 388 | 389 | /* tab.separatorStyle: invisible */ 390 | .atom-ui-tweaks--tab--separator-style--invisible { 391 | &.theme-one-dark-ui, 392 | &.theme-one-light-ui { 393 | .tab.active::before { 394 | display: none; 395 | } 396 | 397 | .tab { 398 | border-left: 0; 399 | } 400 | 401 | /* Remove line after the last */ 402 | .tab-bar .tab:last-of-type { 403 | box-shadow: inset 0 -1px @tab-border-color; 404 | } 405 | 406 | .tab-bar .tab.active:last-of-type { 407 | box-shadow: none; 408 | } 409 | } 410 | } 411 | 412 | /* tab.separatorStyle: slight */ 413 | .atom-ui-tweaks--tab--separator-style--slight { 414 | /* Disable this when aqua-style tab bars are on; it has its own separator style */ 415 | &:not(.atom-ui-tweaks--tab--style--aqua) { 416 | &.theme-one-dark-ui, 417 | &.theme-one-light-ui { 418 | .tab-bar .tab { 419 | border-left: 0; 420 | position: relative; 421 | } 422 | 423 | /* Remove line after the last */ 424 | .tab-bar .tab:last-of-type { 425 | box-shadow: inset 0 -1px @tab-border-color; 426 | } 427 | 428 | .tab-bar .tab.active:last-of-type { 429 | box-shadow: none; 430 | } 431 | 432 | .tab-bar .tab:not(:first-child)::before { 433 | content: ''; 434 | display: block; 435 | position: absolute; 436 | left: 0; 437 | top: 0; 438 | bottom: 0; 439 | width: 1px; 440 | background: linear-gradient( 441 | to bottom, 442 | transparent 20%, 443 | @tab-border-color 70% 444 | ); 445 | } 446 | 447 | .tab-bar .tab.active::before { 448 | display: none; 449 | } 450 | } 451 | } 452 | } 453 | 454 | /* tab.borderRadius: xsmall */ 455 | .atom-ui-tweaks--tab--border-radius--xsmall { 456 | &.theme-one-dark-ui, 457 | &.theme-one-light-ui { 458 | .tab.active { 459 | border-top-left-radius: 2px; 460 | border-top-right-radius: 2px; 461 | } 462 | } 463 | } 464 | 465 | /* tab.borderRadius: small */ 466 | .atom-ui-tweaks--tab--border-radius--small { 467 | &.theme-one-dark-ui, 468 | &.theme-one-light-ui { 469 | .tab.active { 470 | border-top-left-radius: 4px; 471 | border-top-right-radius: 4px; 472 | } 473 | } 474 | } 475 | 476 | /* tab.borderRadius: small */ 477 | .atom-ui-tweaks--tab--border-radius--large { 478 | &.theme-one-dark-ui, 479 | &.theme-one-light-ui { 480 | .tab.active { 481 | border-top-left-radius: 8px; 482 | border-top-right-radius: 8px; 483 | } 484 | } 485 | } 486 | 487 | .atom-ui-tweaks--tab--left-margin--small { 488 | &.theme-one-dark-ui, 489 | &.theme-one-light-ui { 490 | .tab-bar .tab:first-child { 491 | margin-left: 8px; 492 | } 493 | } 494 | } 495 | 496 | .atom-ui-tweaks--tab--left-margin--large { 497 | &.theme-one-dark-ui, 498 | &.theme-one-light-ui { 499 | .tab-bar .tab:first-child { 500 | margin-left: 16px; 501 | } 502 | } 503 | } 504 | 505 | /* 506 | * Change the color of the separator. Has to happen for the syntax-adaptive 507 | * tweak too 508 | */ 509 | 510 | .atom-ui-tweaks--terminal--reduce-separator-line-intensity, 511 | .atom-ui-tweaks--terminal--syntax-adaptive-background-color { 512 | &.theme-one-dark-ui, 513 | &.theme-one-light-ui { 514 | .platformio-ide-terminal.terminal-view { 515 | border-top: solid 1px @tab-border-color !important; 516 | } 517 | } 518 | } 519 | 520 | .atom-ui-tweaks--editor--line-number-style--stealth { 521 | &.theme-one-dark-ui, 522 | &.theme-one-light-ui { 523 | /* Smaller line numbers */ 524 | .line-number:not(.cursor-line) { 525 | opacity: 0.3; 526 | transform: scale(0.7); 527 | } 528 | 529 | /* Line numbers of foldable areas */ 530 | .line-number.foldable { 531 | opacity: 0.8; 532 | } 533 | 534 | /* Increased visibility of folds */ 535 | .line-number.folded:not(.cursor-line) { 536 | opacity: 1; 537 | background: @background-color-highlight; 538 | border-radius: 3px; 539 | } 540 | } 541 | 542 | &.theme-one-light-ui { 543 | /* Line numbers of foldable areas */ 544 | .line-number.foldable { 545 | opacity: 1; 546 | } 547 | } 548 | 549 | &.theme-one-dark-ui { 550 | /* Line numbers: opacity */ 551 | .line-number:not(.cursor-line) { 552 | opacity: 0.1; 553 | } 554 | 555 | .line-number.foldable:not(.cursor-line) { 556 | opacity: 0.5; 557 | } 558 | } 559 | } 560 | 561 | .atom-ui-tweaks--terminal--syntax-adaptive-background-color { 562 | &.theme-one-dark-ui { 563 | .platformio-ide-terminal.terminal-view { 564 | .standard, 565 | .input-block { 566 | background: darken(@syntax-background-color, 5%); 567 | color: @syntax-text-color; 568 | } 569 | } 570 | } 571 | 572 | &.theme-one-light-ui { 573 | .platformio-ide-terminal.terminal-view { 574 | .standard, 575 | .input-block { 576 | background: lighten(@syntax-background-color, 5%); 577 | color: @syntax-text-color; 578 | } 579 | } 580 | } 581 | } 582 | 583 | /* 584 | * Disable animation in modal fade in 585 | * modal.disableAnimation 586 | */ 587 | 588 | .atom-ui-tweaks--modal--disable-animation { 589 | &.theme-one-dark-ui, 590 | &.theme-one-light-ui { 591 | atom-panel.modal:after { 592 | -webkit-animation: none; 593 | animation: none; 594 | } 595 | } 596 | } 597 | 598 | /* 599 | * Simpler modal backdrop 600 | * modal.simplifyBackdrop 601 | */ 602 | 603 | .atom-ui-tweaks--modal--simplify-backdrop { 604 | &.theme-one-dark-ui, 605 | &.theme-one-light-ui { 606 | atom-panel.modal:after { 607 | background: linear-gradient( 608 | to bottom, 609 | fade(@syntax-background-color, 20%) 10px, 610 | fade(@syntax-background-color, 90%) 60px 611 | ); 612 | opacity: 1; 613 | } 614 | } 615 | } 616 | -------------------------------------------------------------------------------- /styles/ui-splash.less: -------------------------------------------------------------------------------- 1 | @import 'syntax-variables'; 2 | 3 | /* 4 | * Custom splash screen 5 | */ 6 | 7 | @splash-image: url(data:image/png;base64,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); 8 | 9 | .atom-ui-tweaks--ui--atom-logo-splash-screen { 10 | &.theme-one-dark-ui, 11 | &.theme-one-light-ui { 12 | background-tips { 13 | &::before { 14 | content: ''; 15 | display: block; 16 | width: 100%; 17 | animation: splash-screen-fade-in 3000ms linear; 18 | height: 100%; 19 | background-repeat: no-repeat; 20 | background-position: center center; 21 | background-image: @splash-image; 22 | opacity: 0.5; 23 | } 24 | 25 | .message { 26 | position: absolute; 27 | bottom: 40px; 28 | font-size: 0.6em; 29 | white-space: nowrap; 30 | } 31 | 32 | @media (max-height: 450px) { 33 | .message { 34 | display: none; 35 | } 36 | } 37 | 38 | .message .keystroke { 39 | font-style: normal; 40 | font-weight: normal; 41 | font-size: 0.9em; 42 | font-family: @font-family; 43 | margin: 0 0.4em; 44 | border-radius: 3px; 45 | padding: 4px 10px; 46 | } 47 | } 48 | } 49 | } 50 | 51 | @keyframes splash-screen-fade-in { 52 | from { 53 | opacity: 0; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@7.0.0-beta.44": 6 | version "7.0.0-beta.44" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz#2a02643368de80916162be70865c97774f3adbd9" 8 | dependencies: 9 | "@babel/highlight" "7.0.0-beta.44" 10 | 11 | "@babel/generator@7.0.0-beta.44": 12 | version "7.0.0-beta.44" 13 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.44.tgz#c7e67b9b5284afcf69b309b50d7d37f3e5033d42" 14 | dependencies: 15 | "@babel/types" "7.0.0-beta.44" 16 | jsesc "^2.5.1" 17 | lodash "^4.2.0" 18 | source-map "^0.5.0" 19 | trim-right "^1.0.1" 20 | 21 | "@babel/helper-function-name@7.0.0-beta.44": 22 | version "7.0.0-beta.44" 23 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz#e18552aaae2231100a6e485e03854bc3532d44dd" 24 | dependencies: 25 | "@babel/helper-get-function-arity" "7.0.0-beta.44" 26 | "@babel/template" "7.0.0-beta.44" 27 | "@babel/types" "7.0.0-beta.44" 28 | 29 | "@babel/helper-get-function-arity@7.0.0-beta.44": 30 | version "7.0.0-beta.44" 31 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz#d03ca6dd2b9f7b0b1e6b32c56c72836140db3a15" 32 | dependencies: 33 | "@babel/types" "7.0.0-beta.44" 34 | 35 | "@babel/helper-split-export-declaration@7.0.0-beta.44": 36 | version "7.0.0-beta.44" 37 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz#c0b351735e0fbcb3822c8ad8db4e583b05ebd9dc" 38 | dependencies: 39 | "@babel/types" "7.0.0-beta.44" 40 | 41 | "@babel/highlight@7.0.0-beta.44": 42 | version "7.0.0-beta.44" 43 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5" 44 | dependencies: 45 | chalk "^2.0.0" 46 | esutils "^2.0.2" 47 | js-tokens "^3.0.0" 48 | 49 | "@babel/template@7.0.0-beta.44": 50 | version "7.0.0-beta.44" 51 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f" 52 | dependencies: 53 | "@babel/code-frame" "7.0.0-beta.44" 54 | "@babel/types" "7.0.0-beta.44" 55 | babylon "7.0.0-beta.44" 56 | lodash "^4.2.0" 57 | 58 | "@babel/traverse@7.0.0-beta.44": 59 | version "7.0.0-beta.44" 60 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966" 61 | dependencies: 62 | "@babel/code-frame" "7.0.0-beta.44" 63 | "@babel/generator" "7.0.0-beta.44" 64 | "@babel/helper-function-name" "7.0.0-beta.44" 65 | "@babel/helper-split-export-declaration" "7.0.0-beta.44" 66 | "@babel/types" "7.0.0-beta.44" 67 | babylon "7.0.0-beta.44" 68 | debug "^3.1.0" 69 | globals "^11.1.0" 70 | invariant "^2.2.0" 71 | lodash "^4.2.0" 72 | 73 | "@babel/types@7.0.0-beta.44": 74 | version "7.0.0-beta.44" 75 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.44.tgz#6b1b164591f77dec0a0342aca995f2d046b3a757" 76 | dependencies: 77 | esutils "^2.0.2" 78 | lodash "^4.2.0" 79 | to-fast-properties "^2.0.0" 80 | 81 | abbrev@1: 82 | version "1.1.1" 83 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 84 | 85 | acorn-jsx@^3.0.0: 86 | version "3.0.1" 87 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" 88 | dependencies: 89 | acorn "^3.0.4" 90 | 91 | acorn@^3.0.4: 92 | version "3.3.0" 93 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" 94 | 95 | acorn@^5.5.0: 96 | version "5.7.1" 97 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8" 98 | 99 | ajv-keywords@^2.1.0: 100 | version "2.1.1" 101 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" 102 | 103 | ajv@^5.2.3, ajv@^5.3.0: 104 | version "5.5.2" 105 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" 106 | dependencies: 107 | co "^4.6.0" 108 | fast-deep-equal "^1.0.0" 109 | fast-json-stable-stringify "^2.0.0" 110 | json-schema-traverse "^0.3.0" 111 | 112 | ansi-escapes@^3.0.0: 113 | version "3.1.0" 114 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" 115 | 116 | ansi-regex@^2.0.0: 117 | version "2.1.1" 118 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 119 | 120 | ansi-regex@^3.0.0: 121 | version "3.0.0" 122 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 123 | 124 | ansi-styles@^2.2.1: 125 | version "2.2.1" 126 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 127 | 128 | ansi-styles@^3.1.0, ansi-styles@^3.2.0, ansi-styles@^3.2.1: 129 | version "3.2.1" 130 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 131 | dependencies: 132 | color-convert "^1.9.0" 133 | 134 | argparse@^1.0.7: 135 | version "1.0.10" 136 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 137 | dependencies: 138 | sprintf-js "~1.0.2" 139 | 140 | array-includes@^3.0.3: 141 | version "3.0.3" 142 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" 143 | dependencies: 144 | define-properties "^1.1.2" 145 | es-abstract "^1.7.0" 146 | 147 | array-union@^1.0.1: 148 | version "1.0.2" 149 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 150 | dependencies: 151 | array-uniq "^1.0.1" 152 | 153 | array-uniq@^1.0.1: 154 | version "1.0.3" 155 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 156 | 157 | arrify@^1.0.0, arrify@^1.0.1: 158 | version "1.0.1" 159 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 160 | 161 | babel-code-frame@^6.22.0: 162 | version "6.26.0" 163 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 164 | dependencies: 165 | chalk "^1.1.3" 166 | esutils "^2.0.2" 167 | js-tokens "^3.0.2" 168 | 169 | babel-eslint@8.2.6: 170 | version "8.2.6" 171 | resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.6.tgz#6270d0c73205628067c0f7ae1693a9e797acefd9" 172 | dependencies: 173 | "@babel/code-frame" "7.0.0-beta.44" 174 | "@babel/traverse" "7.0.0-beta.44" 175 | "@babel/types" "7.0.0-beta.44" 176 | babylon "7.0.0-beta.44" 177 | eslint-scope "3.7.1" 178 | eslint-visitor-keys "^1.0.0" 179 | 180 | babel-runtime@^6.23.0, babel-runtime@^6.26.0: 181 | version "6.26.0" 182 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" 183 | dependencies: 184 | core-js "^2.4.0" 185 | regenerator-runtime "^0.11.0" 186 | 187 | babylon@7.0.0-beta.44: 188 | version "7.0.0-beta.44" 189 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" 190 | 191 | balanced-match@^1.0.0: 192 | version "1.0.0" 193 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 194 | 195 | boolify@^1.0.0: 196 | version "1.0.1" 197 | resolved "https://registry.yarnpkg.com/boolify/-/boolify-1.0.1.tgz#b5c09e17cacd113d11b7bb3ed384cc012994d86b" 198 | 199 | brace-expansion@^1.1.7: 200 | version "1.1.11" 201 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 202 | dependencies: 203 | balanced-match "^1.0.0" 204 | concat-map "0.0.1" 205 | 206 | buffer-from@^1.0.0: 207 | version "1.1.0" 208 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" 209 | 210 | builtin-modules@^1.0.0, builtin-modules@^1.1.1: 211 | version "1.1.1" 212 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 213 | 214 | caller-path@^0.1.0: 215 | version "0.1.0" 216 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" 217 | dependencies: 218 | callsites "^0.2.0" 219 | 220 | callsites@^0.2.0: 221 | version "0.2.0" 222 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" 223 | 224 | camelcase-keys@^4.1.0: 225 | version "4.2.0" 226 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" 227 | dependencies: 228 | camelcase "^4.1.0" 229 | map-obj "^2.0.0" 230 | quick-lru "^1.0.0" 231 | 232 | camelcase@^4.1.0: 233 | version "4.1.0" 234 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 235 | 236 | chalk@2.3.0: 237 | version "2.3.0" 238 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" 239 | dependencies: 240 | ansi-styles "^3.1.0" 241 | escape-string-regexp "^1.0.5" 242 | supports-color "^4.0.0" 243 | 244 | chalk@^1.1.3: 245 | version "1.1.3" 246 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 247 | dependencies: 248 | ansi-styles "^2.2.1" 249 | escape-string-regexp "^1.0.2" 250 | has-ansi "^2.0.0" 251 | strip-ansi "^3.0.0" 252 | supports-color "^2.0.0" 253 | 254 | chalk@^2.0.0, chalk@^2.1.0: 255 | version "2.4.1" 256 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" 257 | dependencies: 258 | ansi-styles "^3.2.1" 259 | escape-string-regexp "^1.0.5" 260 | supports-color "^5.3.0" 261 | 262 | chardet@^0.4.0: 263 | version "0.4.2" 264 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" 265 | 266 | circular-json@^0.3.1: 267 | version "0.3.3" 268 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" 269 | 270 | cli-cursor@^2.1.0: 271 | version "2.1.0" 272 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 273 | dependencies: 274 | restore-cursor "^2.0.0" 275 | 276 | cli-width@^2.0.0: 277 | version "2.2.0" 278 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" 279 | 280 | cliui@^3.2.0: 281 | version "3.2.0" 282 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" 283 | dependencies: 284 | string-width "^1.0.1" 285 | strip-ansi "^3.0.1" 286 | wrap-ansi "^2.0.0" 287 | 288 | co@^4.6.0: 289 | version "4.6.0" 290 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 291 | 292 | code-point-at@^1.0.0: 293 | version "1.1.0" 294 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 295 | 296 | color-convert@^1.9.0: 297 | version "1.9.2" 298 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147" 299 | dependencies: 300 | color-name "1.1.1" 301 | 302 | color-name@1.1.1: 303 | version "1.1.1" 304 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" 305 | 306 | common-tags@^1.4.0: 307 | version "1.8.0" 308 | resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" 309 | 310 | concat-map@0.0.1: 311 | version "0.0.1" 312 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 313 | 314 | concat-stream@^1.6.0: 315 | version "1.6.2" 316 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" 317 | dependencies: 318 | buffer-from "^1.0.0" 319 | inherits "^2.0.3" 320 | readable-stream "^2.2.2" 321 | typedarray "^0.0.6" 322 | 323 | contains-path@^0.1.0: 324 | version "0.1.0" 325 | resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" 326 | 327 | core-js@^2.4.0: 328 | version "2.5.7" 329 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" 330 | 331 | core-util-is@~1.0.0: 332 | version "1.0.2" 333 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 334 | 335 | cross-spawn@^5.0.1, cross-spawn@^5.1.0: 336 | version "5.1.0" 337 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 338 | dependencies: 339 | lru-cache "^4.0.1" 340 | shebang-command "^1.2.0" 341 | which "^1.2.9" 342 | 343 | debug-log@^1.0.0: 344 | version "1.0.1" 345 | resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" 346 | 347 | debug@^2.6.8, debug@^2.6.9: 348 | version "2.6.9" 349 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 350 | dependencies: 351 | ms "2.0.0" 352 | 353 | debug@^3.1.0: 354 | version "3.1.0" 355 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 356 | dependencies: 357 | ms "2.0.0" 358 | 359 | decamelize@^1.1.1: 360 | version "1.2.0" 361 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 362 | 363 | deep-is@~0.1.3: 364 | version "0.1.3" 365 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 366 | 367 | define-properties@^1.1.2: 368 | version "1.1.2" 369 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" 370 | dependencies: 371 | foreach "^2.0.5" 372 | object-keys "^1.0.8" 373 | 374 | deglob@^2.1.0: 375 | version "2.1.1" 376 | resolved "https://registry.yarnpkg.com/deglob/-/deglob-2.1.1.tgz#d268e168727799862e8eac07042e165957c1f3be" 377 | dependencies: 378 | find-root "^1.0.0" 379 | glob "^7.0.5" 380 | ignore "^3.0.9" 381 | pkg-config "^1.1.0" 382 | run-parallel "^1.1.2" 383 | uniq "^1.0.1" 384 | 385 | del@^2.0.2: 386 | version "2.2.2" 387 | resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" 388 | dependencies: 389 | globby "^5.0.0" 390 | is-path-cwd "^1.0.0" 391 | is-path-in-cwd "^1.0.0" 392 | object-assign "^4.0.1" 393 | pify "^2.0.0" 394 | pinkie-promise "^2.0.0" 395 | rimraf "^2.2.8" 396 | 397 | dlv@^1.1.0: 398 | version "1.1.2" 399 | resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.2.tgz#270f6737b30d25b6657a7e962c784403f85137e5" 400 | 401 | doctrine@1.5.0: 402 | version "1.5.0" 403 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" 404 | dependencies: 405 | esutils "^2.0.2" 406 | isarray "^1.0.0" 407 | 408 | doctrine@^2.0.2, doctrine@^2.1.0: 409 | version "2.1.0" 410 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 411 | dependencies: 412 | esutils "^2.0.2" 413 | 414 | error-ex@^1.2.0, error-ex@^1.3.1: 415 | version "1.3.2" 416 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 417 | dependencies: 418 | is-arrayish "^0.2.1" 419 | 420 | es-abstract@^1.7.0: 421 | version "1.12.0" 422 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" 423 | dependencies: 424 | es-to-primitive "^1.1.1" 425 | function-bind "^1.1.1" 426 | has "^1.0.1" 427 | is-callable "^1.1.3" 428 | is-regex "^1.0.4" 429 | 430 | es-to-primitive@^1.1.1: 431 | version "1.1.1" 432 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" 433 | dependencies: 434 | is-callable "^1.1.1" 435 | is-date-object "^1.0.1" 436 | is-symbol "^1.0.1" 437 | 438 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 439 | version "1.0.5" 440 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 441 | 442 | eslint-config-standard-jsx@5.0.0: 443 | version "5.0.0" 444 | resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-5.0.0.tgz#4abfac554f38668e0078c664569e7b2384e5d2aa" 445 | 446 | eslint-config-standard@11.0.0: 447 | version "11.0.0" 448 | resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz#87ee0d3c9d95382dc761958cbb23da9eea31e0ba" 449 | 450 | eslint-import-resolver-node@^0.3.1: 451 | version "0.3.2" 452 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" 453 | dependencies: 454 | debug "^2.6.9" 455 | resolve "^1.5.0" 456 | 457 | eslint-module-utils@^2.1.1: 458 | version "2.2.0" 459 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746" 460 | dependencies: 461 | debug "^2.6.8" 462 | pkg-dir "^1.0.0" 463 | 464 | eslint-plugin-import@~2.9.0: 465 | version "2.9.0" 466 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz#26002efbfca5989b7288ac047508bd24f217b169" 467 | dependencies: 468 | builtin-modules "^1.1.1" 469 | contains-path "^0.1.0" 470 | debug "^2.6.8" 471 | doctrine "1.5.0" 472 | eslint-import-resolver-node "^0.3.1" 473 | eslint-module-utils "^2.1.1" 474 | has "^1.0.1" 475 | lodash "^4.17.4" 476 | minimatch "^3.0.3" 477 | read-pkg-up "^2.0.0" 478 | 479 | eslint-plugin-node@~6.0.0: 480 | version "6.0.1" 481 | resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz#bf19642298064379315d7a4b2a75937376fa05e4" 482 | dependencies: 483 | ignore "^3.3.6" 484 | minimatch "^3.0.4" 485 | resolve "^1.3.3" 486 | semver "^5.4.1" 487 | 488 | eslint-plugin-promise@~3.7.0: 489 | version "3.7.0" 490 | resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz#f4bde5c2c77cdd69557a8f69a24d1ad3cfc9e67e" 491 | 492 | eslint-plugin-react@~7.7.0: 493 | version "7.7.0" 494 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz#f606c719dbd8a1a2b3d25c16299813878cca0160" 495 | dependencies: 496 | doctrine "^2.0.2" 497 | has "^1.0.1" 498 | jsx-ast-utils "^2.0.1" 499 | prop-types "^15.6.0" 500 | 501 | eslint-plugin-standard@~3.0.1: 502 | version "3.0.1" 503 | resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz#34d0c915b45edc6f010393c7eef3823b08565cf2" 504 | 505 | eslint-scope@3.7.1: 506 | version "3.7.1" 507 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" 508 | dependencies: 509 | esrecurse "^4.1.0" 510 | estraverse "^4.1.1" 511 | 512 | eslint-scope@^3.7.1: 513 | version "3.7.3" 514 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" 515 | dependencies: 516 | esrecurse "^4.1.0" 517 | estraverse "^4.1.1" 518 | 519 | eslint-visitor-keys@^1.0.0: 520 | version "1.0.0" 521 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" 522 | 523 | eslint@^4.0.0, eslint@^4.5.0: 524 | version "4.19.1" 525 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" 526 | dependencies: 527 | ajv "^5.3.0" 528 | babel-code-frame "^6.22.0" 529 | chalk "^2.1.0" 530 | concat-stream "^1.6.0" 531 | cross-spawn "^5.1.0" 532 | debug "^3.1.0" 533 | doctrine "^2.1.0" 534 | eslint-scope "^3.7.1" 535 | eslint-visitor-keys "^1.0.0" 536 | espree "^3.5.4" 537 | esquery "^1.0.0" 538 | esutils "^2.0.2" 539 | file-entry-cache "^2.0.0" 540 | functional-red-black-tree "^1.0.1" 541 | glob "^7.1.2" 542 | globals "^11.0.1" 543 | ignore "^3.3.3" 544 | imurmurhash "^0.1.4" 545 | inquirer "^3.0.6" 546 | is-resolvable "^1.0.0" 547 | js-yaml "^3.9.1" 548 | json-stable-stringify-without-jsonify "^1.0.1" 549 | levn "^0.3.0" 550 | lodash "^4.17.4" 551 | minimatch "^3.0.2" 552 | mkdirp "^0.5.1" 553 | natural-compare "^1.4.0" 554 | optionator "^0.8.2" 555 | path-is-inside "^1.0.2" 556 | pluralize "^7.0.0" 557 | progress "^2.0.0" 558 | regexpp "^1.0.1" 559 | require-uncached "^1.0.3" 560 | semver "^5.3.0" 561 | strip-ansi "^4.0.0" 562 | strip-json-comments "~2.0.1" 563 | table "4.0.2" 564 | text-table "~0.2.0" 565 | 566 | eslint@~4.18.0: 567 | version "4.18.2" 568 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.18.2.tgz#0f81267ad1012e7d2051e186a9004cc2267b8d45" 569 | dependencies: 570 | ajv "^5.3.0" 571 | babel-code-frame "^6.22.0" 572 | chalk "^2.1.0" 573 | concat-stream "^1.6.0" 574 | cross-spawn "^5.1.0" 575 | debug "^3.1.0" 576 | doctrine "^2.1.0" 577 | eslint-scope "^3.7.1" 578 | eslint-visitor-keys "^1.0.0" 579 | espree "^3.5.2" 580 | esquery "^1.0.0" 581 | esutils "^2.0.2" 582 | file-entry-cache "^2.0.0" 583 | functional-red-black-tree "^1.0.1" 584 | glob "^7.1.2" 585 | globals "^11.0.1" 586 | ignore "^3.3.3" 587 | imurmurhash "^0.1.4" 588 | inquirer "^3.0.6" 589 | is-resolvable "^1.0.0" 590 | js-yaml "^3.9.1" 591 | json-stable-stringify-without-jsonify "^1.0.1" 592 | levn "^0.3.0" 593 | lodash "^4.17.4" 594 | minimatch "^3.0.2" 595 | mkdirp "^0.5.1" 596 | natural-compare "^1.4.0" 597 | optionator "^0.8.2" 598 | path-is-inside "^1.0.2" 599 | pluralize "^7.0.0" 600 | progress "^2.0.0" 601 | require-uncached "^1.0.3" 602 | semver "^5.3.0" 603 | strip-ansi "^4.0.0" 604 | strip-json-comments "~2.0.1" 605 | table "4.0.2" 606 | text-table "~0.2.0" 607 | 608 | espree@^3.5.2, espree@^3.5.4: 609 | version "3.5.4" 610 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" 611 | dependencies: 612 | acorn "^5.5.0" 613 | acorn-jsx "^3.0.0" 614 | 615 | esprima@^4.0.0: 616 | version "4.0.1" 617 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 618 | 619 | esquery@^1.0.0: 620 | version "1.0.1" 621 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" 622 | dependencies: 623 | estraverse "^4.0.0" 624 | 625 | esrecurse@^4.1.0: 626 | version "4.2.1" 627 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" 628 | dependencies: 629 | estraverse "^4.1.0" 630 | 631 | estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: 632 | version "4.2.0" 633 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 634 | 635 | esutils@^2.0.2: 636 | version "2.0.2" 637 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 638 | 639 | execa@^0.7.0: 640 | version "0.7.0" 641 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" 642 | dependencies: 643 | cross-spawn "^5.0.1" 644 | get-stream "^3.0.0" 645 | is-stream "^1.1.0" 646 | npm-run-path "^2.0.0" 647 | p-finally "^1.0.0" 648 | signal-exit "^3.0.0" 649 | strip-eof "^1.0.0" 650 | 651 | external-editor@^2.0.4: 652 | version "2.2.0" 653 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" 654 | dependencies: 655 | chardet "^0.4.0" 656 | iconv-lite "^0.4.17" 657 | tmp "^0.0.33" 658 | 659 | fast-deep-equal@^1.0.0: 660 | version "1.1.0" 661 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" 662 | 663 | fast-json-stable-stringify@^2.0.0: 664 | version "2.0.0" 665 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 666 | 667 | fast-levenshtein@~2.0.4: 668 | version "2.0.6" 669 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 670 | 671 | figures@^2.0.0: 672 | version "2.0.0" 673 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 674 | dependencies: 675 | escape-string-regexp "^1.0.5" 676 | 677 | file-entry-cache@^2.0.0: 678 | version "2.0.0" 679 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" 680 | dependencies: 681 | flat-cache "^1.2.1" 682 | object-assign "^4.0.1" 683 | 684 | find-root@^1.0.0: 685 | version "1.1.0" 686 | resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" 687 | 688 | find-up@^1.0.0: 689 | version "1.1.2" 690 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 691 | dependencies: 692 | path-exists "^2.0.0" 693 | pinkie-promise "^2.0.0" 694 | 695 | find-up@^2.0.0, find-up@^2.1.0: 696 | version "2.1.0" 697 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 698 | dependencies: 699 | locate-path "^2.0.0" 700 | 701 | flat-cache@^1.2.1: 702 | version "1.3.0" 703 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" 704 | dependencies: 705 | circular-json "^0.3.1" 706 | del "^2.0.2" 707 | graceful-fs "^4.1.2" 708 | write "^0.2.1" 709 | 710 | flow-bin@^0.77.0: 711 | version "0.77.0" 712 | resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.77.0.tgz#4e5c93929f289a0c28e08fb361a9734944a11297" 713 | 714 | foreach@^2.0.5: 715 | version "2.0.5" 716 | resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" 717 | 718 | fs.realpath@^1.0.0: 719 | version "1.0.0" 720 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 721 | 722 | function-bind@^1.1.1: 723 | version "1.1.1" 724 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 725 | 726 | functional-red-black-tree@^1.0.1: 727 | version "1.0.1" 728 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 729 | 730 | get-caller-file@^1.0.1: 731 | version "1.0.3" 732 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" 733 | 734 | get-stdin@^5.0.1: 735 | version "5.0.1" 736 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" 737 | 738 | get-stdin@^6.0.0: 739 | version "6.0.0" 740 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" 741 | 742 | get-stream@^3.0.0: 743 | version "3.0.0" 744 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 745 | 746 | glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: 747 | version "7.1.2" 748 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 749 | dependencies: 750 | fs.realpath "^1.0.0" 751 | inflight "^1.0.4" 752 | inherits "2" 753 | minimatch "^3.0.4" 754 | once "^1.3.0" 755 | path-is-absolute "^1.0.0" 756 | 757 | glob@~7.0.6: 758 | version "7.0.6" 759 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a" 760 | dependencies: 761 | fs.realpath "^1.0.0" 762 | inflight "^1.0.4" 763 | inherits "2" 764 | minimatch "^3.0.2" 765 | once "^1.3.0" 766 | path-is-absolute "^1.0.0" 767 | 768 | globals@^11.0.1, globals@^11.1.0: 769 | version "11.7.0" 770 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673" 771 | 772 | globby@^5.0.0: 773 | version "5.0.0" 774 | resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" 775 | dependencies: 776 | array-union "^1.0.1" 777 | arrify "^1.0.0" 778 | glob "^7.0.3" 779 | object-assign "^4.0.1" 780 | pify "^2.0.0" 781 | pinkie-promise "^2.0.0" 782 | 783 | graceful-fs@^4.1.2: 784 | version "4.1.11" 785 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 786 | 787 | has-ansi@^2.0.0: 788 | version "2.0.0" 789 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 790 | dependencies: 791 | ansi-regex "^2.0.0" 792 | 793 | has-flag@^2.0.0: 794 | version "2.0.0" 795 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" 796 | 797 | has-flag@^3.0.0: 798 | version "3.0.0" 799 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 800 | 801 | has@^1.0.1: 802 | version "1.0.3" 803 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 804 | dependencies: 805 | function-bind "^1.1.1" 806 | 807 | hosted-git-info@^2.1.4: 808 | version "2.7.1" 809 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" 810 | 811 | iconv-lite@^0.4.17: 812 | version "0.4.23" 813 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" 814 | dependencies: 815 | safer-buffer ">= 2.1.2 < 3" 816 | 817 | ignore@^3.0.9, ignore@^3.2.7, ignore@^3.3.3, ignore@^3.3.6: 818 | version "3.3.10" 819 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" 820 | 821 | imurmurhash@^0.1.4: 822 | version "0.1.4" 823 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 824 | 825 | indent-string@^3.1.0, indent-string@^3.2.0: 826 | version "3.2.0" 827 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" 828 | 829 | inflight@^1.0.4: 830 | version "1.0.6" 831 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 832 | dependencies: 833 | once "^1.3.0" 834 | wrappy "1" 835 | 836 | inherits@2, inherits@^2.0.3, inherits@~2.0.3: 837 | version "2.0.3" 838 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 839 | 840 | inquirer@^3.0.6: 841 | version "3.3.0" 842 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" 843 | dependencies: 844 | ansi-escapes "^3.0.0" 845 | chalk "^2.0.0" 846 | cli-cursor "^2.1.0" 847 | cli-width "^2.0.0" 848 | external-editor "^2.0.4" 849 | figures "^2.0.0" 850 | lodash "^4.3.0" 851 | mute-stream "0.0.7" 852 | run-async "^2.2.0" 853 | rx-lite "^4.0.8" 854 | rx-lite-aggregates "^4.0.8" 855 | string-width "^2.1.0" 856 | strip-ansi "^4.0.0" 857 | through "^2.3.6" 858 | 859 | invariant@^2.2.0: 860 | version "2.2.4" 861 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" 862 | dependencies: 863 | loose-envify "^1.0.0" 864 | 865 | invert-kv@^1.0.0: 866 | version "1.0.0" 867 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" 868 | 869 | is-arrayish@^0.2.1: 870 | version "0.2.1" 871 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 872 | 873 | is-builtin-module@^1.0.0: 874 | version "1.0.0" 875 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" 876 | dependencies: 877 | builtin-modules "^1.0.0" 878 | 879 | is-callable@^1.1.1, is-callable@^1.1.3: 880 | version "1.1.4" 881 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" 882 | 883 | is-date-object@^1.0.1: 884 | version "1.0.1" 885 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" 886 | 887 | is-fullwidth-code-point@^1.0.0: 888 | version "1.0.0" 889 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 890 | dependencies: 891 | number-is-nan "^1.0.0" 892 | 893 | is-fullwidth-code-point@^2.0.0: 894 | version "2.0.0" 895 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 896 | 897 | is-path-cwd@^1.0.0: 898 | version "1.0.0" 899 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" 900 | 901 | is-path-in-cwd@^1.0.0: 902 | version "1.0.1" 903 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" 904 | dependencies: 905 | is-path-inside "^1.0.0" 906 | 907 | is-path-inside@^1.0.0: 908 | version "1.0.1" 909 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" 910 | dependencies: 911 | path-is-inside "^1.0.1" 912 | 913 | is-promise@^2.1.0: 914 | version "2.1.0" 915 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 916 | 917 | is-regex@^1.0.4: 918 | version "1.0.4" 919 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" 920 | dependencies: 921 | has "^1.0.1" 922 | 923 | is-resolvable@^1.0.0: 924 | version "1.1.0" 925 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" 926 | 927 | is-stream@^1.1.0: 928 | version "1.1.0" 929 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 930 | 931 | is-symbol@^1.0.1: 932 | version "1.0.1" 933 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" 934 | 935 | isarray@^1.0.0, isarray@~1.0.0: 936 | version "1.0.0" 937 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 938 | 939 | isexe@^2.0.0: 940 | version "2.0.0" 941 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 942 | 943 | js-tokens@^3.0.0, js-tokens@^3.0.2: 944 | version "3.0.2" 945 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 946 | 947 | "js-tokens@^3.0.0 || ^4.0.0": 948 | version "4.0.0" 949 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 950 | 951 | js-yaml@^3.9.1: 952 | version "3.12.0" 953 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" 954 | dependencies: 955 | argparse "^1.0.7" 956 | esprima "^4.0.0" 957 | 958 | jsesc@^2.5.1: 959 | version "2.5.1" 960 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" 961 | 962 | json-parse-better-errors@^1.0.1: 963 | version "1.0.2" 964 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 965 | 966 | json-schema-traverse@^0.3.0: 967 | version "0.3.1" 968 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" 969 | 970 | json-stable-stringify-without-jsonify@^1.0.1: 971 | version "1.0.1" 972 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 973 | 974 | jsx-ast-utils@^2.0.1: 975 | version "2.0.1" 976 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" 977 | dependencies: 978 | array-includes "^3.0.3" 979 | 980 | lcid@^1.0.0: 981 | version "1.0.0" 982 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" 983 | dependencies: 984 | invert-kv "^1.0.0" 985 | 986 | levn@^0.3.0, levn@~0.3.0: 987 | version "0.3.0" 988 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 989 | dependencies: 990 | prelude-ls "~1.1.2" 991 | type-check "~0.3.2" 992 | 993 | load-json-file@^2.0.0: 994 | version "2.0.0" 995 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" 996 | dependencies: 997 | graceful-fs "^4.1.2" 998 | parse-json "^2.2.0" 999 | pify "^2.0.0" 1000 | strip-bom "^3.0.0" 1001 | 1002 | load-json-file@^4.0.0: 1003 | version "4.0.0" 1004 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" 1005 | dependencies: 1006 | graceful-fs "^4.1.2" 1007 | parse-json "^4.0.0" 1008 | pify "^3.0.0" 1009 | strip-bom "^3.0.0" 1010 | 1011 | locate-path@^2.0.0: 1012 | version "2.0.0" 1013 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 1014 | dependencies: 1015 | p-locate "^2.0.0" 1016 | path-exists "^3.0.0" 1017 | 1018 | lodash.memoize@^4.1.2: 1019 | version "4.1.2" 1020 | resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" 1021 | 1022 | lodash.merge@^4.6.0: 1023 | version "4.6.1" 1024 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54" 1025 | 1026 | lodash.unescape@4.0.1: 1027 | version "4.0.1" 1028 | resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" 1029 | 1030 | lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0: 1031 | version "4.17.10" 1032 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" 1033 | 1034 | loglevel-colored-level-prefix@^1.0.0: 1035 | version "1.0.0" 1036 | resolved "https://registry.yarnpkg.com/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz#6a40218fdc7ae15fc76c3d0f3e676c465388603e" 1037 | dependencies: 1038 | chalk "^1.1.3" 1039 | loglevel "^1.4.1" 1040 | 1041 | loglevel@^1.4.1: 1042 | version "1.6.1" 1043 | resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa" 1044 | 1045 | loose-envify@^1.0.0, loose-envify@^1.3.1: 1046 | version "1.4.0" 1047 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 1048 | dependencies: 1049 | js-tokens "^3.0.0 || ^4.0.0" 1050 | 1051 | lru-cache@^4.0.1: 1052 | version "4.1.3" 1053 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" 1054 | dependencies: 1055 | pseudomap "^1.0.2" 1056 | yallist "^2.1.2" 1057 | 1058 | make-plural@^4.1.1: 1059 | version "4.2.0" 1060 | resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-4.2.0.tgz#03edfc34a2aee630a57e209369ef26ee3ca69590" 1061 | optionalDependencies: 1062 | minimist "^1.2.0" 1063 | 1064 | map-obj@^2.0.0: 1065 | version "2.0.0" 1066 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" 1067 | 1068 | mem@^1.1.0: 1069 | version "1.1.0" 1070 | resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" 1071 | dependencies: 1072 | mimic-fn "^1.0.0" 1073 | 1074 | messageformat-parser@^1.1.0: 1075 | version "1.1.0" 1076 | resolved "https://registry.yarnpkg.com/messageformat-parser/-/messageformat-parser-1.1.0.tgz#13ba2250a76bbde8e0fca0dbb3475f95c594a90a" 1077 | 1078 | messageformat@^1.0.2: 1079 | version "1.1.1" 1080 | resolved "https://registry.yarnpkg.com/messageformat/-/messageformat-1.1.1.tgz#ceaa2e6c86929d4807058275a7372b1bd963bdf6" 1081 | dependencies: 1082 | glob "~7.0.6" 1083 | make-plural "^4.1.1" 1084 | messageformat-parser "^1.1.0" 1085 | nopt "~3.0.6" 1086 | reserved-words "^0.1.2" 1087 | 1088 | mimic-fn@^1.0.0: 1089 | version "1.2.0" 1090 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 1091 | 1092 | minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: 1093 | version "3.0.4" 1094 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1095 | dependencies: 1096 | brace-expansion "^1.1.7" 1097 | 1098 | minimist@0.0.8: 1099 | version "0.0.8" 1100 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1101 | 1102 | minimist@^1.1.0, minimist@^1.2.0: 1103 | version "1.2.0" 1104 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1105 | 1106 | mkdirp@^0.5.1: 1107 | version "0.5.1" 1108 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1109 | dependencies: 1110 | minimist "0.0.8" 1111 | 1112 | ms@2.0.0: 1113 | version "2.0.0" 1114 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1115 | 1116 | mute-stream@0.0.7: 1117 | version "0.0.7" 1118 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 1119 | 1120 | natural-compare@^1.4.0: 1121 | version "1.4.0" 1122 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1123 | 1124 | nopt@~3.0.6: 1125 | version "3.0.6" 1126 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" 1127 | dependencies: 1128 | abbrev "1" 1129 | 1130 | normalize-package-data@^2.3.2: 1131 | version "2.4.0" 1132 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" 1133 | dependencies: 1134 | hosted-git-info "^2.1.4" 1135 | is-builtin-module "^1.0.0" 1136 | semver "2 || 3 || 4 || 5" 1137 | validate-npm-package-license "^3.0.1" 1138 | 1139 | npm-run-path@^2.0.0: 1140 | version "2.0.2" 1141 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 1142 | dependencies: 1143 | path-key "^2.0.0" 1144 | 1145 | number-is-nan@^1.0.0: 1146 | version "1.0.1" 1147 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1148 | 1149 | object-assign@^4.0.1, object-assign@^4.1.1: 1150 | version "4.1.1" 1151 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1152 | 1153 | object-keys@^1.0.8: 1154 | version "1.0.12" 1155 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" 1156 | 1157 | once@^1.3.0: 1158 | version "1.4.0" 1159 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1160 | dependencies: 1161 | wrappy "1" 1162 | 1163 | onetime@^2.0.0: 1164 | version "2.0.1" 1165 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 1166 | dependencies: 1167 | mimic-fn "^1.0.0" 1168 | 1169 | optionator@^0.8.2: 1170 | version "0.8.2" 1171 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 1172 | dependencies: 1173 | deep-is "~0.1.3" 1174 | fast-levenshtein "~2.0.4" 1175 | levn "~0.3.0" 1176 | prelude-ls "~1.1.2" 1177 | type-check "~0.3.2" 1178 | wordwrap "~1.0.0" 1179 | 1180 | os-locale@^2.0.0: 1181 | version "2.1.0" 1182 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" 1183 | dependencies: 1184 | execa "^0.7.0" 1185 | lcid "^1.0.0" 1186 | mem "^1.1.0" 1187 | 1188 | os-tmpdir@~1.0.2: 1189 | version "1.0.2" 1190 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 1191 | 1192 | p-finally@^1.0.0: 1193 | version "1.0.0" 1194 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 1195 | 1196 | p-limit@^1.1.0: 1197 | version "1.3.0" 1198 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 1199 | dependencies: 1200 | p-try "^1.0.0" 1201 | 1202 | p-locate@^2.0.0: 1203 | version "2.0.0" 1204 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 1205 | dependencies: 1206 | p-limit "^1.1.0" 1207 | 1208 | p-try@^1.0.0: 1209 | version "1.0.0" 1210 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 1211 | 1212 | parse-json@^2.2.0: 1213 | version "2.2.0" 1214 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 1215 | dependencies: 1216 | error-ex "^1.2.0" 1217 | 1218 | parse-json@^4.0.0: 1219 | version "4.0.0" 1220 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" 1221 | dependencies: 1222 | error-ex "^1.3.1" 1223 | json-parse-better-errors "^1.0.1" 1224 | 1225 | path-exists@^2.0.0: 1226 | version "2.1.0" 1227 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 1228 | dependencies: 1229 | pinkie-promise "^2.0.0" 1230 | 1231 | path-exists@^3.0.0: 1232 | version "3.0.0" 1233 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 1234 | 1235 | path-is-absolute@^1.0.0: 1236 | version "1.0.1" 1237 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1238 | 1239 | path-is-inside@^1.0.1, path-is-inside@^1.0.2: 1240 | version "1.0.2" 1241 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 1242 | 1243 | path-key@^2.0.0: 1244 | version "2.0.1" 1245 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 1246 | 1247 | path-parse@^1.0.5: 1248 | version "1.0.5" 1249 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" 1250 | 1251 | path-type@^2.0.0: 1252 | version "2.0.0" 1253 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" 1254 | dependencies: 1255 | pify "^2.0.0" 1256 | 1257 | pify@^2.0.0: 1258 | version "2.3.0" 1259 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 1260 | 1261 | pify@^3.0.0: 1262 | version "3.0.0" 1263 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 1264 | 1265 | pinkie-promise@^2.0.0: 1266 | version "2.0.1" 1267 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 1268 | dependencies: 1269 | pinkie "^2.0.0" 1270 | 1271 | pinkie@^2.0.0: 1272 | version "2.0.4" 1273 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 1274 | 1275 | pkg-conf@^2.0.0: 1276 | version "2.1.0" 1277 | resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" 1278 | dependencies: 1279 | find-up "^2.0.0" 1280 | load-json-file "^4.0.0" 1281 | 1282 | pkg-config@^1.1.0: 1283 | version "1.1.1" 1284 | resolved "https://registry.yarnpkg.com/pkg-config/-/pkg-config-1.1.1.tgz#557ef22d73da3c8837107766c52eadabde298fe4" 1285 | dependencies: 1286 | debug-log "^1.0.0" 1287 | find-root "^1.0.0" 1288 | xtend "^4.0.1" 1289 | 1290 | pkg-dir@^1.0.0: 1291 | version "1.0.0" 1292 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" 1293 | dependencies: 1294 | find-up "^1.0.0" 1295 | 1296 | pluralize@^7.0.0: 1297 | version "7.0.0" 1298 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" 1299 | 1300 | prelude-ls@~1.1.2: 1301 | version "1.1.2" 1302 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 1303 | 1304 | prettier-eslint-cli@4.7.1: 1305 | version "4.7.1" 1306 | resolved "https://registry.yarnpkg.com/prettier-eslint-cli/-/prettier-eslint-cli-4.7.1.tgz#3d103c494baa4e80b99ad53e2b9db7620101859f" 1307 | dependencies: 1308 | arrify "^1.0.1" 1309 | babel-runtime "^6.23.0" 1310 | boolify "^1.0.0" 1311 | camelcase-keys "^4.1.0" 1312 | chalk "2.3.0" 1313 | common-tags "^1.4.0" 1314 | eslint "^4.5.0" 1315 | find-up "^2.1.0" 1316 | get-stdin "^5.0.1" 1317 | glob "^7.1.1" 1318 | ignore "^3.2.7" 1319 | indent-string "^3.1.0" 1320 | lodash.memoize "^4.1.2" 1321 | loglevel-colored-level-prefix "^1.0.0" 1322 | messageformat "^1.0.2" 1323 | prettier-eslint "^8.5.0" 1324 | rxjs "^5.3.0" 1325 | yargs "10.0.3" 1326 | 1327 | prettier-eslint@^8.5.0: 1328 | version "8.8.2" 1329 | resolved "https://registry.yarnpkg.com/prettier-eslint/-/prettier-eslint-8.8.2.tgz#fcb29a48ab4524e234680797fe70e9d136ccaf0b" 1330 | dependencies: 1331 | babel-runtime "^6.26.0" 1332 | common-tags "^1.4.0" 1333 | dlv "^1.1.0" 1334 | eslint "^4.0.0" 1335 | indent-string "^3.2.0" 1336 | lodash.merge "^4.6.0" 1337 | loglevel-colored-level-prefix "^1.0.0" 1338 | prettier "^1.7.0" 1339 | pretty-format "^23.0.1" 1340 | require-relative "^0.8.7" 1341 | typescript "^2.5.1" 1342 | typescript-eslint-parser "^16.0.0" 1343 | vue-eslint-parser "^2.0.2" 1344 | 1345 | prettier@^1.7.0: 1346 | version "1.13.7" 1347 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.13.7.tgz#850f3b8af784a49a6ea2d2eaa7ed1428a34b7281" 1348 | 1349 | pretty-format@^23.0.1: 1350 | version "23.2.0" 1351 | resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.2.0.tgz#3b0aaa63c018a53583373c1cb3a5d96cc5e83017" 1352 | dependencies: 1353 | ansi-regex "^3.0.0" 1354 | ansi-styles "^3.2.0" 1355 | 1356 | process-nextick-args@~2.0.0: 1357 | version "2.0.0" 1358 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 1359 | 1360 | progress@^2.0.0: 1361 | version "2.0.0" 1362 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" 1363 | 1364 | prop-types@^15.6.0: 1365 | version "15.6.2" 1366 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" 1367 | dependencies: 1368 | loose-envify "^1.3.1" 1369 | object-assign "^4.1.1" 1370 | 1371 | pseudomap@^1.0.2: 1372 | version "1.0.2" 1373 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 1374 | 1375 | quick-lru@^1.0.0: 1376 | version "1.1.0" 1377 | resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" 1378 | 1379 | read-pkg-up@^2.0.0: 1380 | version "2.0.0" 1381 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" 1382 | dependencies: 1383 | find-up "^2.0.0" 1384 | read-pkg "^2.0.0" 1385 | 1386 | read-pkg@^2.0.0: 1387 | version "2.0.0" 1388 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" 1389 | dependencies: 1390 | load-json-file "^2.0.0" 1391 | normalize-package-data "^2.3.2" 1392 | path-type "^2.0.0" 1393 | 1394 | readable-stream@^2.2.2: 1395 | version "2.3.6" 1396 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 1397 | dependencies: 1398 | core-util-is "~1.0.0" 1399 | inherits "~2.0.3" 1400 | isarray "~1.0.0" 1401 | process-nextick-args "~2.0.0" 1402 | safe-buffer "~5.1.1" 1403 | string_decoder "~1.1.1" 1404 | util-deprecate "~1.0.1" 1405 | 1406 | regenerator-runtime@^0.11.0: 1407 | version "0.11.1" 1408 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" 1409 | 1410 | regexpp@^1.0.1: 1411 | version "1.1.0" 1412 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" 1413 | 1414 | require-directory@^2.1.1: 1415 | version "2.1.1" 1416 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 1417 | 1418 | require-main-filename@^1.0.1: 1419 | version "1.0.1" 1420 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 1421 | 1422 | require-relative@^0.8.7: 1423 | version "0.8.7" 1424 | resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" 1425 | 1426 | require-uncached@^1.0.3: 1427 | version "1.0.3" 1428 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" 1429 | dependencies: 1430 | caller-path "^0.1.0" 1431 | resolve-from "^1.0.0" 1432 | 1433 | reserved-words@^0.1.2: 1434 | version "0.1.2" 1435 | resolved "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.2.tgz#00a0940f98cd501aeaaac316411d9adc52b31ab1" 1436 | 1437 | resolve-from@^1.0.0: 1438 | version "1.0.1" 1439 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" 1440 | 1441 | resolve@^1.3.3, resolve@^1.5.0: 1442 | version "1.8.1" 1443 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" 1444 | dependencies: 1445 | path-parse "^1.0.5" 1446 | 1447 | restore-cursor@^2.0.0: 1448 | version "2.0.0" 1449 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 1450 | dependencies: 1451 | onetime "^2.0.0" 1452 | signal-exit "^3.0.2" 1453 | 1454 | rimraf@^2.2.8: 1455 | version "2.6.2" 1456 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 1457 | dependencies: 1458 | glob "^7.0.5" 1459 | 1460 | run-async@^2.2.0: 1461 | version "2.3.0" 1462 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" 1463 | dependencies: 1464 | is-promise "^2.1.0" 1465 | 1466 | run-parallel@^1.1.2: 1467 | version "1.1.9" 1468 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" 1469 | 1470 | rx-lite-aggregates@^4.0.8: 1471 | version "4.0.8" 1472 | resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" 1473 | dependencies: 1474 | rx-lite "*" 1475 | 1476 | rx-lite@*, rx-lite@^4.0.8: 1477 | version "4.0.8" 1478 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" 1479 | 1480 | rxjs@^5.3.0: 1481 | version "5.5.11" 1482 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.11.tgz#f733027ca43e3bec6b994473be4ab98ad43ced87" 1483 | dependencies: 1484 | symbol-observable "1.0.1" 1485 | 1486 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1487 | version "5.1.2" 1488 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1489 | 1490 | "safer-buffer@>= 2.1.2 < 3": 1491 | version "2.1.2" 1492 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1493 | 1494 | "semver@2 || 3 || 4 || 5", semver@5.5.0, semver@^5.3.0, semver@^5.4.1: 1495 | version "5.5.0" 1496 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" 1497 | 1498 | set-blocking@^2.0.0: 1499 | version "2.0.0" 1500 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 1501 | 1502 | shebang-command@^1.2.0: 1503 | version "1.2.0" 1504 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 1505 | dependencies: 1506 | shebang-regex "^1.0.0" 1507 | 1508 | shebang-regex@^1.0.0: 1509 | version "1.0.0" 1510 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 1511 | 1512 | signal-exit@^3.0.0, signal-exit@^3.0.2: 1513 | version "3.0.2" 1514 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 1515 | 1516 | slice-ansi@1.0.0: 1517 | version "1.0.0" 1518 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" 1519 | dependencies: 1520 | is-fullwidth-code-point "^2.0.0" 1521 | 1522 | source-map@^0.5.0: 1523 | version "0.5.7" 1524 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 1525 | 1526 | spdx-correct@^3.0.0: 1527 | version "3.0.0" 1528 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" 1529 | dependencies: 1530 | spdx-expression-parse "^3.0.0" 1531 | spdx-license-ids "^3.0.0" 1532 | 1533 | spdx-exceptions@^2.1.0: 1534 | version "2.1.0" 1535 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" 1536 | 1537 | spdx-expression-parse@^3.0.0: 1538 | version "3.0.0" 1539 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" 1540 | dependencies: 1541 | spdx-exceptions "^2.1.0" 1542 | spdx-license-ids "^3.0.0" 1543 | 1544 | spdx-license-ids@^3.0.0: 1545 | version "3.0.0" 1546 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" 1547 | 1548 | sprintf-js@~1.0.2: 1549 | version "1.0.3" 1550 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1551 | 1552 | standard-engine@~8.0.0: 1553 | version "8.0.1" 1554 | resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-8.0.1.tgz#0b77be8d7ab963675717dbeac1ef1d6675fb62f0" 1555 | dependencies: 1556 | deglob "^2.1.0" 1557 | get-stdin "^6.0.0" 1558 | minimist "^1.1.0" 1559 | pkg-conf "^2.0.0" 1560 | 1561 | standard@11.0.1: 1562 | version "11.0.1" 1563 | resolved "https://registry.yarnpkg.com/standard/-/standard-11.0.1.tgz#49be40c76f1d564964b22bbf7309929ad0335e29" 1564 | dependencies: 1565 | eslint "~4.18.0" 1566 | eslint-config-standard "11.0.0" 1567 | eslint-config-standard-jsx "5.0.0" 1568 | eslint-plugin-import "~2.9.0" 1569 | eslint-plugin-node "~6.0.0" 1570 | eslint-plugin-promise "~3.7.0" 1571 | eslint-plugin-react "~7.7.0" 1572 | eslint-plugin-standard "~3.0.1" 1573 | standard-engine "~8.0.0" 1574 | 1575 | string-width@^1.0.1: 1576 | version "1.0.2" 1577 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 1578 | dependencies: 1579 | code-point-at "^1.0.0" 1580 | is-fullwidth-code-point "^1.0.0" 1581 | strip-ansi "^3.0.0" 1582 | 1583 | string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: 1584 | version "2.1.1" 1585 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 1586 | dependencies: 1587 | is-fullwidth-code-point "^2.0.0" 1588 | strip-ansi "^4.0.0" 1589 | 1590 | string_decoder@~1.1.1: 1591 | version "1.1.1" 1592 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 1593 | dependencies: 1594 | safe-buffer "~5.1.0" 1595 | 1596 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 1597 | version "3.0.1" 1598 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1599 | dependencies: 1600 | ansi-regex "^2.0.0" 1601 | 1602 | strip-ansi@^4.0.0: 1603 | version "4.0.0" 1604 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 1605 | dependencies: 1606 | ansi-regex "^3.0.0" 1607 | 1608 | strip-bom@^3.0.0: 1609 | version "3.0.0" 1610 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1611 | 1612 | strip-eof@^1.0.0: 1613 | version "1.0.0" 1614 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 1615 | 1616 | strip-json-comments@~2.0.1: 1617 | version "2.0.1" 1618 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1619 | 1620 | supports-color@^2.0.0: 1621 | version "2.0.0" 1622 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1623 | 1624 | supports-color@^4.0.0: 1625 | version "4.5.0" 1626 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" 1627 | dependencies: 1628 | has-flag "^2.0.0" 1629 | 1630 | supports-color@^5.3.0: 1631 | version "5.4.0" 1632 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" 1633 | dependencies: 1634 | has-flag "^3.0.0" 1635 | 1636 | symbol-observable@1.0.1: 1637 | version "1.0.1" 1638 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" 1639 | 1640 | table@4.0.2: 1641 | version "4.0.2" 1642 | resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" 1643 | dependencies: 1644 | ajv "^5.2.3" 1645 | ajv-keywords "^2.1.0" 1646 | chalk "^2.1.0" 1647 | lodash "^4.17.4" 1648 | slice-ansi "1.0.0" 1649 | string-width "^2.1.1" 1650 | 1651 | text-table@~0.2.0: 1652 | version "0.2.0" 1653 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1654 | 1655 | through@^2.3.6: 1656 | version "2.3.8" 1657 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1658 | 1659 | tmp@^0.0.33: 1660 | version "0.0.33" 1661 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 1662 | dependencies: 1663 | os-tmpdir "~1.0.2" 1664 | 1665 | to-fast-properties@^2.0.0: 1666 | version "2.0.0" 1667 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 1668 | 1669 | trim-right@^1.0.1: 1670 | version "1.0.1" 1671 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" 1672 | 1673 | type-check@~0.3.2: 1674 | version "0.3.2" 1675 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 1676 | dependencies: 1677 | prelude-ls "~1.1.2" 1678 | 1679 | typedarray@^0.0.6: 1680 | version "0.0.6" 1681 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 1682 | 1683 | typescript-eslint-parser@^16.0.0: 1684 | version "16.0.1" 1685 | resolved "https://registry.yarnpkg.com/typescript-eslint-parser/-/typescript-eslint-parser-16.0.1.tgz#b40681c7043b222b9772748b700a000b241c031b" 1686 | dependencies: 1687 | lodash.unescape "4.0.1" 1688 | semver "5.5.0" 1689 | 1690 | typescript@^2.5.1: 1691 | version "2.9.2" 1692 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c" 1693 | 1694 | uniq@^1.0.1: 1695 | version "1.0.1" 1696 | resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" 1697 | 1698 | util-deprecate@~1.0.1: 1699 | version "1.0.2" 1700 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1701 | 1702 | validate-npm-package-license@^3.0.1: 1703 | version "3.0.3" 1704 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" 1705 | dependencies: 1706 | spdx-correct "^3.0.0" 1707 | spdx-expression-parse "^3.0.0" 1708 | 1709 | vue-eslint-parser@^2.0.2: 1710 | version "2.0.3" 1711 | resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz#c268c96c6d94cfe3d938a5f7593959b0ca3360d1" 1712 | dependencies: 1713 | debug "^3.1.0" 1714 | eslint-scope "^3.7.1" 1715 | eslint-visitor-keys "^1.0.0" 1716 | espree "^3.5.2" 1717 | esquery "^1.0.0" 1718 | lodash "^4.17.4" 1719 | 1720 | which-module@^2.0.0: 1721 | version "2.0.0" 1722 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 1723 | 1724 | which@^1.2.9: 1725 | version "1.3.1" 1726 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 1727 | dependencies: 1728 | isexe "^2.0.0" 1729 | 1730 | wordwrap@~1.0.0: 1731 | version "1.0.0" 1732 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 1733 | 1734 | wrap-ansi@^2.0.0: 1735 | version "2.1.0" 1736 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 1737 | dependencies: 1738 | string-width "^1.0.1" 1739 | strip-ansi "^3.0.1" 1740 | 1741 | wrappy@1: 1742 | version "1.0.2" 1743 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1744 | 1745 | write@^0.2.1: 1746 | version "0.2.1" 1747 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" 1748 | dependencies: 1749 | mkdirp "^0.5.1" 1750 | 1751 | xtend@^4.0.1: 1752 | version "4.0.1" 1753 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 1754 | 1755 | y18n@^3.2.1: 1756 | version "3.2.1" 1757 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" 1758 | 1759 | yallist@^2.1.2: 1760 | version "2.1.2" 1761 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 1762 | 1763 | yargs-parser@^8.0.0: 1764 | version "8.1.0" 1765 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" 1766 | dependencies: 1767 | camelcase "^4.1.0" 1768 | 1769 | yargs@10.0.3: 1770 | version "10.0.3" 1771 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.0.3.tgz#6542debd9080ad517ec5048fb454efe9e4d4aaae" 1772 | dependencies: 1773 | cliui "^3.2.0" 1774 | decamelize "^1.1.1" 1775 | find-up "^2.1.0" 1776 | get-caller-file "^1.0.1" 1777 | os-locale "^2.0.0" 1778 | require-directory "^2.1.1" 1779 | require-main-filename "^1.0.1" 1780 | set-blocking "^2.0.0" 1781 | string-width "^2.0.0" 1782 | which-module "^2.0.0" 1783 | y18n "^3.2.1" 1784 | yargs-parser "^8.0.0" 1785 | --------------------------------------------------------------------------------