├── .github
└── workflows
│ └── rubocop.yml
├── LICENSE
├── README.md
├── eslint
├── .eslintrc.json
├── .gitignore
├── .npmignore
├── CHANGELOG.md
├── README.md
├── flow.js
├── index.js
├── jest.js
├── package.json
├── react.js
├── rules
│ ├── es6.yml
│ ├── etc.yml
│ ├── flowtype.yml
│ ├── import.yml
│ ├── jest.yml
│ └── react.yml
└── yarn.lock
├── rubocop
├── .gitignore
├── .rubocop.yml
├── Gemfile
├── Gemfile.lock
├── README.md
├── Rakefile
├── bin
│ ├── rake
│ └── rubocop
├── lib
│ ├── rubocop.performance.yml
│ ├── rubocop.rails.yml
│ ├── rubocop.rake.yml
│ ├── rubocop.rspec.yml
│ ├── rubocop.sequel.yml
│ └── rubocop.yml
└── rubocop.gemspec
└── stylelint
├── .gitignore
├── .stylelintrc.styled-components.yml
├── .stylelintrc.yml
├── CHANGELOG.md
├── README.md
├── package.json
└── yarn.lock
/.github/workflows/rubocop.yml:
--------------------------------------------------------------------------------
1 | name: Rubocop
2 |
3 | on: [push, pull_request]
4 |
5 | jobs:
6 | lint:
7 | runs-on: ubuntu-latest
8 |
9 | # We want to run on external PRs, but not on our own internal PRs as they'll be run on push event
10 | if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != 'umbrellio/code-style'
11 |
12 | steps:
13 | - uses: actions/checkout@v2
14 |
15 | - uses: ruby/setup-ruby@v1
16 | with:
17 | ruby-version: 3
18 | bundler-cache: true
19 | working-directory: rubocop
20 |
21 | - run: cd rubocop && bundle exec rake
22 |
23 | deploy:
24 | runs-on: ubuntu-latest
25 |
26 | environment: Deploy
27 |
28 | # Run on push to master branch
29 | if: github.event_name == 'push' && github.ref == 'refs/heads/master'
30 |
31 | steps:
32 | - uses: actions/checkout@v1
33 |
34 | - uses: umbrellio/publish-ruby-gem-action@v1.0.4
35 | with:
36 | api-key: ${{ secrets.RUBYGEMS_API_KEY }}
37 | working-directory: rubocop
38 | env:
39 | PUBLISH_JOB: true
40 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017-2019 Umbrellio
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # UMBRELLIO code-style
2 |
3 | Linter settings used in [Umbrellio](https://umbrellio.biz) projects.
4 |
5 | ---
6 |
7 | * [RuboCop](https://github.com/umbrellio/code-style/tree/master/rubocop) `ruby`
8 | * [ESLint](https://github.com/umbrellio/code-style/tree/master/eslint) `js`
9 | * [stylelint](https://github.com/umbrellio/code-style/tree/master/stylelint) `css`
10 | * [EasyCodingStandard](https://github.com/umbrellio/code-style-php) `php`
11 |
12 | ---
13 |
14 | ## Contributing
15 |
16 | - Fork it: (`https://github.com/umbrellio/code-style/fork`)
17 | - Create your feature branch (`git checkout -b feature/my-new-feature`)
18 | - Commit your changes (`git commit -am 'Add some feature'`)
19 | - Push to the branch (`git push origin feature/my-new-feature`)
20 | - Create new Pull Request
21 |
22 | ## License
23 |
24 | Released under MIT License
25 |
26 | ---
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/eslint/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": [
3 | "./index.js",
4 | "./flow.js",
5 | "./jest.js",
6 | "./react.js"
7 | ],
8 | "env": {
9 | "node": true
10 | },
11 | "rules": {
12 | "quote-props": 0,
13 | "no-multiple-empty-lines": 0
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/eslint/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules/
2 | /rules/*.json
3 |
--------------------------------------------------------------------------------
/eslint/.npmignore:
--------------------------------------------------------------------------------
1 | /node_modules/
2 | /rules/*.yml
3 | /.eslintrc.json
4 | /.gitignore
5 | /.hound.yml
6 | /yarn.lock
7 |
--------------------------------------------------------------------------------
/eslint/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Change Log
2 | All notable changes to this project will be documented in this file.
3 |
4 | ## [5.0.0]
5 | ### Changed
6 | - new package versioning scheme;
7 | - updated major dependencies (eslint 5.0 and other eslint sub-projects);
8 |
9 | ## [4.8.0] - PENDING
10 | ### Changed
11 | - Updated ESLint to 4.8.0.
12 | - Updated all ESLint plugins.
13 | - Updated `yamljs` to `0.3.0`.
14 | - Enabled `switch-colon-spacing` and `no-buffer-constructor` rules.
15 |
16 | ## [0.4.5] - 2017-07-25
17 | ### Changed
18 | - Set `arrow` to `false` for `react/jsx-wrap-multilines` rule.
19 |
20 | ## [0.4.4] - 2017-06-23
21 | ### Added
22 | - Set `error` for `no-alert` and `no-console` rules.
23 | ### Changed
24 | - Set `props` to `true` for `no-param-reassign` rule.
25 |
26 | ## [0.4.3] - 2017-06-08
27 | ### Changed
28 | - Changed `quotes` and `jsx-quotes` rules to `double`.
29 |
30 | ## [0.4.2] - 2017-06-06
31 | ### Removed
32 | - `eslint-plugin-curry`
33 |
34 | ## [0.4.1] - 2017-06-06
35 | ### Changed
36 | - Added `ForInStatement` to `no-restricted-syntax` rule.
37 |
38 | ## [0.4.0] - 2017-05-15
39 | ### Added
40 | - Config for [Jest](https://github.com/facebook/jest).
41 | ### Changed
42 | - `newline-per-chained-call` - disabled
43 | - Split one big config into three separate ones: general, React and Flow.
44 |
45 | ## [0.3.3] - 2017-05-12
46 | ### Changed
47 | - `curry/arrow-parens` set to `requireForBlockBody: false`
48 | - `import/prefer-default-export` - disabled
49 |
50 | ## [0.3.2] - 2017-05-11
51 | ### Added
52 | - `no-var: error`
53 |
54 | ## [0.3.1] - 2017-05-02
55 | ### Added
56 | - `eslint-plugin-curry`
57 |
58 | ## [0.3.0] - 2017-04-28
59 | ### Added
60 | - `object-curly-spacing: always`
61 | - Rules for Flow.
62 | ### Changed
63 | - Allow parens in `no-confusing-arrow`
64 |
65 | ## [0.2.0] - 2017-04-14
66 | ### Changed
67 | - Rules are now in Yaml.
68 |
--------------------------------------------------------------------------------
/eslint/README.md:
--------------------------------------------------------------------------------
1 | # eslint-config-umbrellio
2 | [](https://badge.fury.io/js/eslint-config-umbrellio)
3 |
4 | ### Package Versioning (Semver)
5 |
6 | Example: 5.29.0
7 |
8 | **5** - Major ESlint Version
9 | **29** - development updates and dependencies updates
10 | **0** - patches and bug fixes
11 |
12 | ### Installation
13 | with [yarn](https://github.com/yarnpkg/yarn/):
14 |
15 | ```
16 | yarn add -D eslint-config-umbrellio
17 | ```
18 |
19 | Add `umbrellio` to "extends" section of .eslintrc.json:
20 |
21 | ```json
22 | {
23 | "extends": "umbrellio"
24 | }
25 | ```
26 |
27 | You can also enable optional configs:
28 |
29 | ```json
30 | {
31 | "extends": [
32 | "umbrellio",
33 | "umbrellio/flow",
34 | "umbrellio/react",
35 | "umbrellio/jest"
36 | ]
37 | }
38 | ```
39 |
40 | ### Dependencies
41 |
42 | for `umbrellio`:
43 |
44 | ```
45 | yarn add -D eslint-plugin-import eslint-plugin-node eslint-plugin-prefer-object-spread eslint-plugin-promise
46 | ```
47 |
48 | for `umbrellio/flow`:
49 | ```
50 | yarn add -D eslint-plugin-flowtype
51 | ```
52 |
53 | for `umbrellio/react`:
54 |
55 | ```
56 | yarn add -D eslint-plugin-react eslint-plugin-jsx-a11y
57 | ```
58 |
59 | for `umbrellio/jest`:
60 | ```
61 | yarn add -D eslint-plugin-jest
62 | ```
63 |
--------------------------------------------------------------------------------
/eslint/flow.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: ["flowtype"],
3 | extends: ["./rules/flowtype"].map(require.resolve),
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/eslint/index.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: ["import", "node", "prefer-object-spread", "promise"],
3 | extends: ["./rules/es6", "./rules/etc", "./rules/import"].map(require.resolve),
4 | }
5 |
--------------------------------------------------------------------------------
/eslint/jest.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: ["jest"],
3 | extends: ["./rules/jest"].map(require.resolve),
4 | }
5 |
--------------------------------------------------------------------------------
/eslint/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "eslint-config-umbrellio",
3 | "version": "5.0.1",
4 | "description": "ESLint config for Umbrellio javascript code style",
5 | "main": "index.js",
6 | "keywords": [
7 | "eslint",
8 | "config",
9 | "umbrellio"
10 | ],
11 | "repository": "https://github.com/umbrellio/code-style",
12 | "author": "Alexander Komarov ",
13 | "license": "MIT",
14 | "devDependencies": {
15 | "eslint": "^5.16.0",
16 | "eslint-plugin-flowtype": "^3.10.3",
17 | "eslint-plugin-import": "^2.17.3",
18 | "eslint-plugin-jest": "^22.6.4",
19 | "eslint-plugin-jsx-a11y": "^6.2.1",
20 | "eslint-plugin-node": "^9.1.0",
21 | "eslint-plugin-prefer-object-spread": "^1.2.1",
22 | "eslint-plugin-promise": "^4.1.1",
23 | "eslint-plugin-react": "^7.13.0",
24 | "yamljs": "^0.3.0"
25 | },
26 | "peerDependencies": {
27 | "eslint": "^5.16.0"
28 | },
29 | "scripts": {
30 | "build": "yaml2json rules -s",
31 | "lint": "eslint *.js"
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/eslint/react.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: ["react", "jsx-a11y"],
3 | extends: ["./rules/react"].map(require.resolve),
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/eslint/rules/es6.yml:
--------------------------------------------------------------------------------
1 | rules:
2 | accessor-pairs: error
3 | array-callback-return: error
4 | arrow-parens:
5 | - error
6 | - as-needed
7 | arrow-spacing:
8 | - error
9 | - before: true
10 | after: true
11 | block-spacing:
12 | - error
13 | - always
14 | brace-style:
15 | - error
16 | - 1tbs
17 | - allowSingleLine: true
18 | camelcase:
19 | - error
20 | - properties: never
21 | comma-dangle:
22 | - error
23 | - always-multiline
24 | comma-spacing:
25 | - error
26 | - before: false
27 | after: true
28 | comma-style:
29 | - error
30 | - last
31 | constructor-super: error
32 | curly:
33 | - error
34 | - multi-line
35 | dot-location:
36 | - error
37 | - property
38 | dot-notation: error
39 | eol-last: error
40 | eqeqeq:
41 | - error
42 | - always
43 | func-call-spacing:
44 | - error
45 | - never
46 | generator-star-spacing:
47 | - error
48 | - before: false
49 | after: true
50 | handle-callback-err:
51 | - error
52 | - ^(err|error)$
53 | indent:
54 | - error
55 | - 2
56 | - SwitchCase: 1
57 | key-spacing:
58 | - error
59 | - beforeColon: false
60 | afterColon: true
61 | keyword-spacing:
62 | - error
63 | - before: true
64 | after: true
65 | max-len:
66 | - error
67 | - 100
68 | new-cap: error
69 | new-parens: error
70 | newline-per-chained-call: off
71 | no-alert: error
72 | no-array-constructor: error
73 | no-caller: error
74 | no-class-assign: error
75 | no-cond-assign: error
76 | no-confusing-arrow:
77 | - error
78 | - allowParens: true
79 | no-console: error
80 | no-const-assign: error
81 | no-constant-condition:
82 | - error
83 | - checkLoops: false
84 | no-control-regex: error
85 | no-debugger: error
86 | no-delete-var: error
87 | no-dupe-args: error
88 | no-dupe-class-members: error
89 | no-dupe-keys: error
90 | no-duplicate-case: error
91 | no-empty-character-class: error
92 | no-empty-pattern: error
93 | no-eval: error
94 | no-ex-assign: error
95 | no-extend-native: error
96 | no-extra-bind: error
97 | no-extra-boolean-cast: error
98 | no-extra-parens:
99 | - error
100 | - functions
101 | no-fallthrough: error
102 | no-floating-decimal: error
103 | no-func-assign: error
104 | no-global-assign: error
105 | no-implied-eval: error
106 | no-inner-declarations:
107 | - error
108 | - functions
109 | no-invalid-regexp: error
110 | no-irregular-whitespace: error
111 | no-iterator: error
112 | no-label-var: error
113 | no-labels:
114 | - error
115 | - allowLoop: false
116 | allowSwitch: false
117 | no-lone-blocks: error
118 | no-loop-func: error
119 | no-mixed-operators:
120 | - error
121 | - groups:
122 | - ['==', '!=', '===', '!==', '>', '>=', '<', '<=']
123 | - ['&&', '||']
124 | - [in, instanceof]
125 | allowSamePrecedence: true
126 | no-mixed-spaces-and-tabs: error
127 | no-multi-spaces: error
128 | no-multi-str: error
129 | no-multiple-empty-lines:
130 | - error
131 | - max: 1
132 | maxEOF: 0
133 | no-negated-in-lhs: error
134 | no-nested-ternary: error
135 | no-new: error
136 | no-new-func: error
137 | no-new-object: error
138 | no-new-require: error
139 | no-new-symbol: error
140 | no-new-wrappers: error
141 | no-obj-calls: error
142 | no-octal: error
143 | no-octal-escape: error
144 | no-param-reassign:
145 | - error
146 | - props: true
147 | no-path-concat: error
148 | no-plusplus: error
149 | no-proto: error
150 | no-redeclare: off
151 | no-regex-spaces: error
152 | no-restricted-syntax:
153 | - error
154 | - ForOfStatement
155 | - ForInStatement
156 | no-return-assign:
157 | - error
158 | - except-parens
159 | no-return-await: error
160 | no-self-assign: error
161 | no-self-compare: error
162 | no-sequences: error
163 | no-shadow-restricted-names: error
164 | no-sparse-arrays: error
165 | no-tabs: error
166 | no-template-curly-in-string: error
167 | no-this-before-super: error
168 | no-throw-literal: error
169 | no-trailing-spaces: error
170 | no-undef: error
171 | no-undef-init: error
172 | no-unexpected-multiline: error
173 | no-unmodified-loop-condition: error
174 | no-unneeded-ternary:
175 | - error
176 | - defaultAssignment: false
177 | no-unreachable: error
178 | no-unsafe-finally: error
179 | no-unsafe-negation: error
180 | no-unused-expressions:
181 | - error
182 | - allowShortCircuit: true
183 | allowTernary: true
184 | allowTaggedTemplates: true
185 | no-unused-vars:
186 | - error
187 | - vars: all
188 | args: none
189 | ignoreRestSiblings: true
190 | no-use-before-define:
191 | - error
192 | - functions: false
193 | classes: false
194 | variables: false
195 | no-useless-call: error
196 | no-useless-computed-key: error
197 | no-useless-constructor: error
198 | no-useless-escape: error
199 | no-useless-rename: error
200 | no-useless-return: error
201 | no-var: error
202 | no-whitespace-before-property: error
203 | no-with: error
204 | object-curly-spacing:
205 | - error
206 | - always
207 | object-property-newline:
208 | - error
209 | - allowMultiplePropertiesPerLine: true
210 | object-shorthand: error
211 | one-var:
212 | - error
213 | - initialized: never
214 | operator-linebreak:
215 | - error
216 | - after
217 | - overrides:
218 | "?": before
219 | ":": before
220 | padded-blocks:
221 | - error
222 | - blocks: never
223 | switches: never
224 | classes: never
225 | prefer-arrow-callback: error
226 | prefer-const: error
227 | prefer-promise-reject-errors: error
228 | prefer-rest-params: error
229 | prefer-spread: error
230 | prefer-template: error
231 | quotes:
232 | - error
233 | - double
234 | - avoidEscape: true
235 | allowTemplateLiterals: true
236 | quote-props:
237 | - error
238 | - as-needed
239 | radix: error
240 | rest-spread-spacing:
241 | - error
242 | - never
243 | semi:
244 | - error
245 | - never
246 | semi-spacing:
247 | - error
248 | - before: false
249 | after: true
250 | space-before-blocks:
251 | - error
252 | - always
253 | space-before-function-paren:
254 | - error
255 | - always
256 | space-in-parens:
257 | - error
258 | - never
259 | space-infix-ops: error
260 | space-unary-ops:
261 | - error
262 | - words: true
263 | nonwords: false
264 | spaced-comment:
265 | - error
266 | - always
267 | - line:
268 | markers: ['*package', '!', '/', ',']
269 | block:
270 | balanced: true
271 | markers: ['*package', '!', ',', ':', '::', 'flow-include']
272 | exceptions: ['*']
273 | switch-colon-spacing:
274 | - error
275 | - after: true
276 | before: false
277 | symbol-description: error
278 | template-curly-spacing:
279 | - error
280 | - never
281 | template-tag-spacing:
282 | - error
283 | - never
284 | unicode-bom:
285 | - error
286 | - never
287 | use-isnan: error
288 | valid-typeof:
289 | - error
290 | - requireStringLiterals: true
291 | wrap-iife:
292 | - error
293 | - inside
294 | - functionPrototypeMethods: true
295 | yield-star-spacing:
296 | - error
297 | - both
298 | yoda:
299 | - error
300 | - never
301 |
--------------------------------------------------------------------------------
/eslint/rules/etc.yml:
--------------------------------------------------------------------------------
1 | rules:
2 | no-buffer-constructor: error
3 |
4 | prefer-object-spread/prefer-object-spread: error
5 |
6 | node/no-deprecated-api: error
7 | node/process-exit-as-throw: error
8 |
9 | promise/param-names: error
10 |
--------------------------------------------------------------------------------
/eslint/rules/flowtype.yml:
--------------------------------------------------------------------------------
1 | rules:
2 | flowtype/boolean-style:
3 | - error
4 | - boolean
5 | flowtype/delimiter-dangle:
6 | - error
7 | - always-multiline
8 | flowtype/generic-spacing:
9 | - error
10 | - never
11 | flowtype/no-primitive-constructor-types: error
12 | flowtype/object-type-delimiter:
13 | - error
14 | - comma
15 | flowtype/semi:
16 | - error
17 | - never
18 | flowtype/space-after-type-colon:
19 | - error
20 | - always
21 | flowtype/space-before-generic-bracket:
22 | - error
23 | - never
24 | flowtype/space-before-type-colon:
25 | - error
26 | - never
27 | flowtype/union-intersection-spacing:
28 | - error
29 | - always
30 |
--------------------------------------------------------------------------------
/eslint/rules/import.yml:
--------------------------------------------------------------------------------
1 | rules:
2 | import/export: error
3 | import/first: error
4 | import/no-absolute-path: error
5 | import/no-duplicates: error
6 | import/no-mutable-exports: error
7 | import/no-webpack-loader-syntax: error
8 | import/prefer-default-export: off
9 |
--------------------------------------------------------------------------------
/eslint/rules/jest.yml:
--------------------------------------------------------------------------------
1 | rules:
2 | jest/no-disabled-tests: error
3 | jest/no-focused-tests: error
4 | jest/no-identical-title: error
5 | jest/valid-expect: error
6 |
--------------------------------------------------------------------------------
/eslint/rules/react.yml:
--------------------------------------------------------------------------------
1 | rules:
2 | jsx-quotes:
3 | - error
4 | - prefer-double
5 |
6 | react/jsx-boolean-value: error
7 | react/jsx-closing-bracket-location: error
8 | react/jsx-curly-spacing:
9 | - error
10 | - never
11 | react/jsx-equals-spacing:
12 | - error
13 | - never
14 | react/jsx-indent:
15 | - error
16 | - 2
17 | react/jsx-indent-props:
18 | - error
19 | - 2
20 | react/jsx-no-bind:
21 | - error
22 | - allowArrowFunctions: true
23 | allowBind: false
24 | ignoreRefs: true
25 | react/jsx-no-duplicate-props: error
26 | react/jsx-no-undef: error
27 | react/jsx-pascal-case: error
28 | react/jsx-tag-spacing:
29 | - error
30 | - closingSlash: never
31 | beforeSelfClosing: always
32 | afterOpening: never
33 | react/jsx-uses-react: error
34 | react/jsx-uses-vars: error
35 | react/jsx-wrap-multilines:
36 | - error
37 | - declaration: true
38 | assignment: true
39 | return: true
40 | arrow: false
41 | react/no-did-update-set-state: error
42 | react/no-is-mounted: error
43 | react/no-string-refs: error
44 | react/no-unknown-property: error
45 | react/no-unused-prop-types: error
46 | react/prop-types: error
47 | react/prefer-es6-class: error
48 | react/prefer-stateless-function: error
49 | react/react-in-jsx-scope: error
50 | react/require-render-return: error
51 | react/self-closing-comp: error
52 | react/sort-comp:
53 | - error
54 | - order:
55 | - type-annotations
56 | - static-methods
57 | - lifecycle
58 | - everything-else
59 | - render
60 |
61 | jsx-a11y/alt-text: error
62 | jsx-a11y/img-redundant-alt: error
63 | jsx-a11y/aria-role: error
64 | jsx-a11y/no-access-key: error
65 |
--------------------------------------------------------------------------------
/eslint/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":
6 | version "7.0.0"
7 | resolved "https://registry.yarnpkg.com/@babel%2fcode-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8"
8 | integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==
9 | dependencies:
10 | "@babel/highlight" "^7.0.0"
11 |
12 | "@babel/highlight@^7.0.0":
13 | version "7.0.0"
14 | resolved "https://registry.yarnpkg.com/@babel%2fhighlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4"
15 | integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==
16 | dependencies:
17 | chalk "^2.0.0"
18 | esutils "^2.0.2"
19 | js-tokens "^4.0.0"
20 |
21 | acorn-jsx@^5.0.0:
22 | version "5.0.1"
23 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e"
24 | integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==
25 |
26 | acorn@^6.0.7:
27 | version "6.1.1"
28 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f"
29 | integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==
30 |
31 | ajv@^6.9.1:
32 | version "6.10.0"
33 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1"
34 | integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==
35 | dependencies:
36 | fast-deep-equal "^2.0.1"
37 | fast-json-stable-stringify "^2.0.0"
38 | json-schema-traverse "^0.4.1"
39 | uri-js "^4.2.2"
40 |
41 | ansi-escapes@^3.2.0:
42 | version "3.2.0"
43 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
44 | integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
45 |
46 | ansi-regex@^3.0.0:
47 | version "3.0.0"
48 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
49 |
50 | ansi-regex@^4.1.0:
51 | version "4.1.0"
52 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
53 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
54 |
55 | ansi-styles@^3.1.0:
56 | version "3.2.0"
57 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
58 | dependencies:
59 | color-convert "^1.9.0"
60 |
61 | ansi-styles@^3.2.0, ansi-styles@^3.2.1:
62 | version "3.2.1"
63 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
64 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
65 | dependencies:
66 | color-convert "^1.9.0"
67 |
68 | argparse@^1.0.7:
69 | version "1.0.10"
70 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
71 | dependencies:
72 | sprintf-js "~1.0.2"
73 |
74 | aria-query@^3.0.0:
75 | version "3.0.0"
76 | resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc"
77 | integrity sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=
78 | dependencies:
79 | ast-types-flow "0.0.7"
80 | commander "^2.11.0"
81 |
82 | array-includes@^3.0.3:
83 | version "3.0.3"
84 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d"
85 | dependencies:
86 | define-properties "^1.1.2"
87 | es-abstract "^1.7.0"
88 |
89 | ast-types-flow@0.0.7, ast-types-flow@^0.0.7:
90 | version "0.0.7"
91 | resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
92 | integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0=
93 |
94 | astral-regex@^1.0.0:
95 | version "1.0.0"
96 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
97 | integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
98 |
99 | axobject-query@^2.0.2:
100 | version "2.0.2"
101 | resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9"
102 | integrity sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==
103 | dependencies:
104 | ast-types-flow "0.0.7"
105 |
106 | balanced-match@^0.4.1:
107 | version "0.4.2"
108 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
109 |
110 | brace-expansion@^1.1.7:
111 | version "1.1.7"
112 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59"
113 | dependencies:
114 | balanced-match "^0.4.1"
115 | concat-map "0.0.1"
116 |
117 | builtin-modules@^1.0.0:
118 | version "1.1.1"
119 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
120 |
121 | callsites@^3.0.0:
122 | version "3.1.0"
123 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
124 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
125 |
126 | chalk@^2.0.0, chalk@^2.4.2:
127 | version "2.4.2"
128 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
129 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
130 | dependencies:
131 | ansi-styles "^3.2.1"
132 | escape-string-regexp "^1.0.5"
133 | supports-color "^5.3.0"
134 |
135 | chalk@^2.1.0:
136 | version "2.1.0"
137 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e"
138 | dependencies:
139 | ansi-styles "^3.1.0"
140 | escape-string-regexp "^1.0.5"
141 | supports-color "^4.0.0"
142 |
143 | chardet@^0.7.0:
144 | version "0.7.0"
145 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
146 | integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
147 |
148 | cli-cursor@^2.1.0:
149 | version "2.1.0"
150 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
151 | dependencies:
152 | restore-cursor "^2.0.0"
153 |
154 | cli-width@^2.0.0:
155 | version "2.1.0"
156 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a"
157 |
158 | color-convert@^1.9.0:
159 | version "1.9.0"
160 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a"
161 | dependencies:
162 | color-name "^1.1.1"
163 |
164 | color-name@^1.1.1:
165 | version "1.1.3"
166 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
167 |
168 | commander@^2.11.0:
169 | version "2.20.0"
170 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422"
171 | integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==
172 |
173 | concat-map@0.0.1:
174 | version "0.0.1"
175 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
176 |
177 | contains-path@^0.1.0:
178 | version "0.1.0"
179 | resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
180 |
181 | cross-spawn@^6.0.5:
182 | version "6.0.5"
183 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
184 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
185 | dependencies:
186 | nice-try "^1.0.4"
187 | path-key "^2.0.1"
188 | semver "^5.5.0"
189 | shebang-command "^1.2.0"
190 | which "^1.2.9"
191 |
192 | damerau-levenshtein@^1.0.4:
193 | version "1.0.5"
194 | resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz#780cf7144eb2e8dbd1c3bb83ae31100ccc31a414"
195 | integrity sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA==
196 |
197 | debug@^2.6.8:
198 | version "2.6.8"
199 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
200 | dependencies:
201 | ms "2.0.0"
202 |
203 | debug@^2.6.9:
204 | version "2.6.9"
205 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
206 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
207 | dependencies:
208 | ms "2.0.0"
209 |
210 | debug@^4.0.1:
211 | version "4.1.1"
212 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
213 | integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
214 | dependencies:
215 | ms "^2.1.1"
216 |
217 | deep-is@~0.1.3:
218 | version "0.1.3"
219 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
220 |
221 | define-properties@^1.1.2:
222 | version "1.1.2"
223 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
224 | dependencies:
225 | foreach "^2.0.5"
226 | object-keys "^1.0.8"
227 |
228 | doctrine@1.5.0:
229 | version "1.5.0"
230 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
231 | dependencies:
232 | esutils "^2.0.2"
233 | isarray "^1.0.0"
234 |
235 | doctrine@^2.1.0:
236 | version "2.1.0"
237 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
238 | integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==
239 | dependencies:
240 | esutils "^2.0.2"
241 |
242 | doctrine@^3.0.0:
243 | version "3.0.0"
244 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
245 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
246 | dependencies:
247 | esutils "^2.0.2"
248 |
249 | emoji-regex@^7.0.1, emoji-regex@^7.0.2:
250 | version "7.0.3"
251 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
252 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
253 |
254 | error-ex@^1.2.0:
255 | version "1.3.1"
256 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
257 | dependencies:
258 | is-arrayish "^0.2.1"
259 |
260 | es-abstract@^1.11.0:
261 | version "1.13.0"
262 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9"
263 | integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==
264 | dependencies:
265 | es-to-primitive "^1.2.0"
266 | function-bind "^1.1.1"
267 | has "^1.0.3"
268 | is-callable "^1.1.4"
269 | is-regex "^1.0.4"
270 | object-keys "^1.0.12"
271 |
272 | es-abstract@^1.7.0:
273 | version "1.7.0"
274 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c"
275 | dependencies:
276 | es-to-primitive "^1.1.1"
277 | function-bind "^1.1.0"
278 | is-callable "^1.1.3"
279 | is-regex "^1.0.3"
280 |
281 | es-to-primitive@^1.1.1:
282 | version "1.1.1"
283 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
284 | dependencies:
285 | is-callable "^1.1.1"
286 | is-date-object "^1.0.1"
287 | is-symbol "^1.0.1"
288 |
289 | es-to-primitive@^1.2.0:
290 | version "1.2.0"
291 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377"
292 | integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==
293 | dependencies:
294 | is-callable "^1.1.4"
295 | is-date-object "^1.0.1"
296 | is-symbol "^1.0.2"
297 |
298 | escape-string-regexp@^1.0.5:
299 | version "1.0.5"
300 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
301 |
302 | eslint-import-resolver-node@^0.3.2:
303 | version "0.3.2"
304 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a"
305 | integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==
306 | dependencies:
307 | debug "^2.6.9"
308 | resolve "^1.5.0"
309 |
310 | eslint-module-utils@^2.4.0:
311 | version "2.4.0"
312 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz#8b93499e9b00eab80ccb6614e69f03678e84e09a"
313 | integrity sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw==
314 | dependencies:
315 | debug "^2.6.8"
316 | pkg-dir "^2.0.0"
317 |
318 | eslint-plugin-es@^1.4.0:
319 | version "1.4.0"
320 | resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz#475f65bb20c993fc10e8c8fe77d1d60068072da6"
321 | integrity sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw==
322 | dependencies:
323 | eslint-utils "^1.3.0"
324 | regexpp "^2.0.1"
325 |
326 | eslint-plugin-flowtype@^3.10.3:
327 | version "3.10.3"
328 | resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.10.3.tgz#4a249e2fa98679d87cddbc00e22241e2466abe2e"
329 | integrity sha512-b1OzI5drhiDmIG52jiZVR7IWQkiwN1vLD+VqvYuLnpzGBwfdw/mjdXz+qN7XN1IVKQ6pUSV0t4F9TxKoJNkpRA==
330 | dependencies:
331 | lodash "^4.17.11"
332 |
333 | eslint-plugin-import@^2.17.3:
334 | version "2.17.3"
335 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.17.3.tgz#00548b4434c18faebaba04b24ae6198f280de189"
336 | integrity sha512-qeVf/UwXFJbeyLbxuY8RgqDyEKCkqV7YC+E5S5uOjAp4tOc8zj01JP3ucoBM8JcEqd1qRasJSg6LLlisirfy0Q==
337 | dependencies:
338 | array-includes "^3.0.3"
339 | contains-path "^0.1.0"
340 | debug "^2.6.9"
341 | doctrine "1.5.0"
342 | eslint-import-resolver-node "^0.3.2"
343 | eslint-module-utils "^2.4.0"
344 | has "^1.0.3"
345 | lodash "^4.17.11"
346 | minimatch "^3.0.4"
347 | read-pkg-up "^2.0.0"
348 | resolve "^1.11.0"
349 |
350 | eslint-plugin-jest@^22.6.4:
351 | version "22.6.4"
352 | resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.6.4.tgz#2895b047dd82f90f43a58a25cf136220a21c9104"
353 | integrity sha512-36OqnZR/uMCDxXGmTsqU4RwllR0IiB/XF8GW3ODmhsjiITKuI0GpgultWFt193ipN3HARkaIcKowpE6HBvRHNg==
354 |
355 | eslint-plugin-jsx-a11y@^6.2.1:
356 | version "6.2.1"
357 | resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.1.tgz#4ebba9f339b600ff415ae4166e3e2e008831cf0c"
358 | integrity sha512-cjN2ObWrRz0TTw7vEcGQrx+YltMvZoOEx4hWU8eEERDnBIU00OTq7Vr+jA7DFKxiwLNv4tTh5Pq2GUNEa8b6+w==
359 | dependencies:
360 | aria-query "^3.0.0"
361 | array-includes "^3.0.3"
362 | ast-types-flow "^0.0.7"
363 | axobject-query "^2.0.2"
364 | damerau-levenshtein "^1.0.4"
365 | emoji-regex "^7.0.2"
366 | has "^1.0.3"
367 | jsx-ast-utils "^2.0.1"
368 |
369 | eslint-plugin-node@^9.1.0:
370 | version "9.1.0"
371 | resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-9.1.0.tgz#f2fd88509a31ec69db6e9606d76dabc5adc1b91a"
372 | integrity sha512-ZwQYGm6EoV2cfLpE1wxJWsfnKUIXfM/KM09/TlorkukgCAwmkgajEJnPCmyzoFPQQkmvo5DrW/nyKutNIw36Mw==
373 | dependencies:
374 | eslint-plugin-es "^1.4.0"
375 | eslint-utils "^1.3.1"
376 | ignore "^5.1.1"
377 | minimatch "^3.0.4"
378 | resolve "^1.10.1"
379 | semver "^6.1.0"
380 |
381 | eslint-plugin-prefer-object-spread@^1.2.1:
382 | version "1.2.1"
383 | resolved "https://registry.yarnpkg.com/eslint-plugin-prefer-object-spread/-/eslint-plugin-prefer-object-spread-1.2.1.tgz#27fb91853690cceb3ae6101d9c8aecc6a67a402c"
384 |
385 | eslint-plugin-promise@^4.1.1:
386 | version "4.1.1"
387 | resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.1.1.tgz#1e08cb68b5b2cd8839f8d5864c796f56d82746db"
388 | integrity sha512-faAHw7uzlNPy7b45J1guyjazw28M+7gJokKUjC5JSFoYfUEyy6Gw/i7YQvmv2Yk00sUjWcmzXQLpU1Ki/C2IZQ==
389 |
390 | eslint-plugin-react@^7.13.0:
391 | version "7.13.0"
392 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.13.0.tgz#bc13fd7101de67996ea51b33873cd9dc2b7e5758"
393 | integrity sha512-uA5LrHylu8lW/eAH3bEQe9YdzpPaFd9yAJTwTi/i/BKTD7j6aQMKVAdGM/ML72zD6womuSK7EiGtMKuK06lWjQ==
394 | dependencies:
395 | array-includes "^3.0.3"
396 | doctrine "^2.1.0"
397 | has "^1.0.3"
398 | jsx-ast-utils "^2.1.0"
399 | object.fromentries "^2.0.0"
400 | prop-types "^15.7.2"
401 | resolve "^1.10.1"
402 |
403 | eslint-scope@^4.0.3:
404 | version "4.0.3"
405 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
406 | integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==
407 | dependencies:
408 | esrecurse "^4.1.0"
409 | estraverse "^4.1.1"
410 |
411 | eslint-utils@^1.3.0, eslint-utils@^1.3.1:
412 | version "1.3.1"
413 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512"
414 | integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==
415 |
416 | eslint-visitor-keys@^1.0.0:
417 | version "1.0.0"
418 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
419 | integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==
420 |
421 | eslint@^5.16.0:
422 | version "5.16.0"
423 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea"
424 | integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==
425 | dependencies:
426 | "@babel/code-frame" "^7.0.0"
427 | ajv "^6.9.1"
428 | chalk "^2.1.0"
429 | cross-spawn "^6.0.5"
430 | debug "^4.0.1"
431 | doctrine "^3.0.0"
432 | eslint-scope "^4.0.3"
433 | eslint-utils "^1.3.1"
434 | eslint-visitor-keys "^1.0.0"
435 | espree "^5.0.1"
436 | esquery "^1.0.1"
437 | esutils "^2.0.2"
438 | file-entry-cache "^5.0.1"
439 | functional-red-black-tree "^1.0.1"
440 | glob "^7.1.2"
441 | globals "^11.7.0"
442 | ignore "^4.0.6"
443 | import-fresh "^3.0.0"
444 | imurmurhash "^0.1.4"
445 | inquirer "^6.2.2"
446 | js-yaml "^3.13.0"
447 | json-stable-stringify-without-jsonify "^1.0.1"
448 | levn "^0.3.0"
449 | lodash "^4.17.11"
450 | minimatch "^3.0.4"
451 | mkdirp "^0.5.1"
452 | natural-compare "^1.4.0"
453 | optionator "^0.8.2"
454 | path-is-inside "^1.0.2"
455 | progress "^2.0.0"
456 | regexpp "^2.0.1"
457 | semver "^5.5.1"
458 | strip-ansi "^4.0.0"
459 | strip-json-comments "^2.0.1"
460 | table "^5.2.3"
461 | text-table "^0.2.0"
462 |
463 | espree@^5.0.1:
464 | version "5.0.1"
465 | resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a"
466 | integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==
467 | dependencies:
468 | acorn "^6.0.7"
469 | acorn-jsx "^5.0.0"
470 | eslint-visitor-keys "^1.0.0"
471 |
472 | esprima@^4.0.0:
473 | version "4.0.1"
474 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
475 |
476 | esquery@^1.0.1:
477 | version "1.0.1"
478 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
479 | integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==
480 | dependencies:
481 | estraverse "^4.0.0"
482 |
483 | esrecurse@^4.1.0:
484 | version "4.1.0"
485 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220"
486 | dependencies:
487 | estraverse "~4.1.0"
488 | object-assign "^4.0.1"
489 |
490 | estraverse@^4.0.0, estraverse@^4.1.1:
491 | version "4.2.0"
492 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
493 |
494 | estraverse@~4.1.0:
495 | version "4.1.1"
496 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2"
497 |
498 | esutils@^2.0.2:
499 | version "2.0.2"
500 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
501 |
502 | external-editor@^3.0.3:
503 | version "3.0.3"
504 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27"
505 | integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==
506 | dependencies:
507 | chardet "^0.7.0"
508 | iconv-lite "^0.4.24"
509 | tmp "^0.0.33"
510 |
511 | fast-deep-equal@^2.0.1:
512 | version "2.0.1"
513 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
514 | integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
515 |
516 | fast-json-stable-stringify@^2.0.0:
517 | version "2.0.0"
518 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
519 | integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
520 |
521 | fast-levenshtein@~2.0.4:
522 | version "2.0.6"
523 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
524 |
525 | figures@^2.0.0:
526 | version "2.0.0"
527 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
528 | dependencies:
529 | escape-string-regexp "^1.0.5"
530 |
531 | file-entry-cache@^5.0.1:
532 | version "5.0.1"
533 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
534 | integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==
535 | dependencies:
536 | flat-cache "^2.0.1"
537 |
538 | find-up@^2.0.0, find-up@^2.1.0:
539 | version "2.1.0"
540 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
541 | dependencies:
542 | locate-path "^2.0.0"
543 |
544 | flat-cache@^2.0.1:
545 | version "2.0.1"
546 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0"
547 | integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==
548 | dependencies:
549 | flatted "^2.0.0"
550 | rimraf "2.6.3"
551 | write "1.0.3"
552 |
553 | flatted@^2.0.0:
554 | version "2.0.0"
555 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916"
556 | integrity sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==
557 |
558 | foreach@^2.0.5:
559 | version "2.0.5"
560 | resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
561 |
562 | fs.realpath@^1.0.0:
563 | version "1.0.0"
564 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
565 |
566 | function-bind@^1.0.2, function-bind@^1.1.0:
567 | version "1.1.0"
568 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771"
569 |
570 | function-bind@^1.1.1:
571 | version "1.1.1"
572 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
573 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
574 |
575 | functional-red-black-tree@^1.0.1:
576 | version "1.0.1"
577 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
578 |
579 | glob@^7.0.5, glob@^7.1.2:
580 | version "7.1.2"
581 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
582 | dependencies:
583 | fs.realpath "^1.0.0"
584 | inflight "^1.0.4"
585 | inherits "2"
586 | minimatch "^3.0.4"
587 | once "^1.3.0"
588 | path-is-absolute "^1.0.0"
589 |
590 | glob@^7.1.3:
591 | version "7.1.4"
592 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
593 | integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==
594 | dependencies:
595 | fs.realpath "^1.0.0"
596 | inflight "^1.0.4"
597 | inherits "2"
598 | minimatch "^3.0.4"
599 | once "^1.3.0"
600 | path-is-absolute "^1.0.0"
601 |
602 | globals@^11.7.0:
603 | version "11.12.0"
604 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
605 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
606 |
607 | graceful-fs@^4.1.2:
608 | version "4.1.11"
609 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
610 |
611 | has-flag@^2.0.0:
612 | version "2.0.0"
613 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
614 |
615 | has-flag@^3.0.0:
616 | version "3.0.0"
617 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
618 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
619 |
620 | has-symbols@^1.0.0:
621 | version "1.0.0"
622 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
623 | integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=
624 |
625 | has@^1.0.1:
626 | version "1.0.1"
627 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
628 | dependencies:
629 | function-bind "^1.0.2"
630 |
631 | has@^1.0.3:
632 | version "1.0.3"
633 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
634 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
635 | dependencies:
636 | function-bind "^1.1.1"
637 |
638 | hosted-git-info@^2.1.4:
639 | version "2.5.0"
640 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
641 |
642 | iconv-lite@^0.4.24:
643 | version "0.4.24"
644 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
645 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
646 | dependencies:
647 | safer-buffer ">= 2.1.2 < 3"
648 |
649 | ignore@^4.0.6:
650 | version "4.0.6"
651 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
652 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
653 |
654 | ignore@^5.1.1:
655 | version "5.1.2"
656 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.2.tgz#e28e584d43ad7e92f96995019cc43b9e1ac49558"
657 | integrity sha512-vdqWBp7MyzdmHkkRWV5nY+PfGRbYbahfuvsBCh277tq+w9zyNi7h5CYJCK0kmzti9kU+O/cB7sE8HvKv6aXAKQ==
658 |
659 | import-fresh@^3.0.0:
660 | version "3.0.0"
661 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390"
662 | integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==
663 | dependencies:
664 | parent-module "^1.0.0"
665 | resolve-from "^4.0.0"
666 |
667 | imurmurhash@^0.1.4:
668 | version "0.1.4"
669 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
670 |
671 | inflight@^1.0.4:
672 | version "1.0.6"
673 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
674 | dependencies:
675 | once "^1.3.0"
676 | wrappy "1"
677 |
678 | inherits@2:
679 | version "2.0.3"
680 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
681 |
682 | inquirer@^6.2.2:
683 | version "6.3.1"
684 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.3.1.tgz#7a413b5e7950811013a3db491c61d1f3b776e8e7"
685 | integrity sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==
686 | dependencies:
687 | ansi-escapes "^3.2.0"
688 | chalk "^2.4.2"
689 | cli-cursor "^2.1.0"
690 | cli-width "^2.0.0"
691 | external-editor "^3.0.3"
692 | figures "^2.0.0"
693 | lodash "^4.17.11"
694 | mute-stream "0.0.7"
695 | run-async "^2.2.0"
696 | rxjs "^6.4.0"
697 | string-width "^2.1.0"
698 | strip-ansi "^5.1.0"
699 | through "^2.3.6"
700 |
701 | is-arrayish@^0.2.1:
702 | version "0.2.1"
703 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
704 |
705 | is-builtin-module@^1.0.0:
706 | version "1.0.0"
707 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
708 | dependencies:
709 | builtin-modules "^1.0.0"
710 |
711 | is-callable@^1.1.1, is-callable@^1.1.3:
712 | version "1.1.3"
713 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"
714 |
715 | is-callable@^1.1.4:
716 | version "1.1.4"
717 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
718 | integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
719 |
720 | is-date-object@^1.0.1:
721 | version "1.0.1"
722 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
723 |
724 | is-fullwidth-code-point@^2.0.0:
725 | version "2.0.0"
726 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
727 |
728 | is-promise@^2.1.0:
729 | version "2.1.0"
730 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
731 |
732 | is-regex@^1.0.3, is-regex@^1.0.4:
733 | version "1.0.4"
734 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
735 | dependencies:
736 | has "^1.0.1"
737 |
738 | is-symbol@^1.0.1:
739 | version "1.0.1"
740 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
741 |
742 | is-symbol@^1.0.2:
743 | version "1.0.2"
744 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38"
745 | integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==
746 | dependencies:
747 | has-symbols "^1.0.0"
748 |
749 | isarray@^1.0.0:
750 | version "1.0.0"
751 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
752 |
753 | isexe@^2.0.0:
754 | version "2.0.0"
755 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
756 |
757 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
758 | version "4.0.0"
759 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
760 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
761 |
762 | js-yaml@^3.13.0:
763 | version "3.13.1"
764 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
765 | integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
766 | dependencies:
767 | argparse "^1.0.7"
768 | esprima "^4.0.0"
769 |
770 | json-schema-traverse@^0.4.1:
771 | version "0.4.1"
772 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
773 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
774 |
775 | json-stable-stringify-without-jsonify@^1.0.1:
776 | version "1.0.1"
777 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
778 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
779 |
780 | jsx-ast-utils@^2.0.1, jsx-ast-utils@^2.1.0:
781 | version "2.1.0"
782 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.1.0.tgz#0ee4e2c971fb9601c67b5641b71be80faecf0b36"
783 | integrity sha512-yDGDG2DS4JcqhA6blsuYbtsT09xL8AoLuUR2Gb5exrw7UEM19sBcOTq+YBBhrNbl0PUC4R4LnFu+dHg2HKeVvA==
784 | dependencies:
785 | array-includes "^3.0.3"
786 |
787 | levn@^0.3.0, levn@~0.3.0:
788 | version "0.3.0"
789 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
790 | dependencies:
791 | prelude-ls "~1.1.2"
792 | type-check "~0.3.2"
793 |
794 | load-json-file@^2.0.0:
795 | version "2.0.0"
796 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
797 | dependencies:
798 | graceful-fs "^4.1.2"
799 | parse-json "^2.2.0"
800 | pify "^2.0.0"
801 | strip-bom "^3.0.0"
802 |
803 | locate-path@^2.0.0:
804 | version "2.0.0"
805 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
806 | dependencies:
807 | p-locate "^2.0.0"
808 | path-exists "^3.0.0"
809 |
810 | lodash@^4.17.11:
811 | version "4.17.11"
812 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
813 | integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
814 |
815 | loose-envify@^1.4.0:
816 | version "1.4.0"
817 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
818 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
819 | dependencies:
820 | js-tokens "^3.0.0 || ^4.0.0"
821 |
822 | mimic-fn@^1.0.0:
823 | version "1.1.0"
824 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
825 |
826 | minimatch@^3.0.4:
827 | version "3.0.4"
828 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
829 | dependencies:
830 | brace-expansion "^1.1.7"
831 |
832 | minimist@0.0.8:
833 | version "0.0.8"
834 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
835 |
836 | mkdirp@^0.5.1:
837 | version "0.5.1"
838 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
839 | dependencies:
840 | minimist "0.0.8"
841 |
842 | ms@2.0.0:
843 | version "2.0.0"
844 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
845 |
846 | ms@^2.1.1:
847 | version "2.1.2"
848 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
849 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
850 |
851 | mute-stream@0.0.7:
852 | version "0.0.7"
853 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
854 |
855 | natural-compare@^1.4.0:
856 | version "1.4.0"
857 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
858 |
859 | nice-try@^1.0.4:
860 | version "1.0.5"
861 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
862 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
863 |
864 | normalize-package-data@^2.3.2:
865 | version "2.4.0"
866 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
867 | dependencies:
868 | hosted-git-info "^2.1.4"
869 | is-builtin-module "^1.0.0"
870 | semver "2 || 3 || 4 || 5"
871 | validate-npm-package-license "^3.0.1"
872 |
873 | object-assign@^4.0.1, object-assign@^4.1.1:
874 | version "4.1.1"
875 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
876 |
877 | object-keys@^1.0.12:
878 | version "1.1.1"
879 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
880 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
881 |
882 | object-keys@^1.0.8:
883 | version "1.0.11"
884 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
885 |
886 | object.fromentries@^2.0.0:
887 | version "2.0.0"
888 | resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab"
889 | integrity sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==
890 | dependencies:
891 | define-properties "^1.1.2"
892 | es-abstract "^1.11.0"
893 | function-bind "^1.1.1"
894 | has "^1.0.1"
895 |
896 | once@^1.3.0:
897 | version "1.4.0"
898 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
899 | dependencies:
900 | wrappy "1"
901 |
902 | onetime@^2.0.0:
903 | version "2.0.1"
904 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
905 | dependencies:
906 | mimic-fn "^1.0.0"
907 |
908 | optionator@^0.8.2:
909 | version "0.8.2"
910 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
911 | dependencies:
912 | deep-is "~0.1.3"
913 | fast-levenshtein "~2.0.4"
914 | levn "~0.3.0"
915 | prelude-ls "~1.1.2"
916 | type-check "~0.3.2"
917 | wordwrap "~1.0.0"
918 |
919 | os-tmpdir@~1.0.2:
920 | version "1.0.2"
921 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
922 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
923 |
924 | p-limit@^1.1.0:
925 | version "1.1.0"
926 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc"
927 |
928 | p-locate@^2.0.0:
929 | version "2.0.0"
930 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
931 | dependencies:
932 | p-limit "^1.1.0"
933 |
934 | parent-module@^1.0.0:
935 | version "1.0.1"
936 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
937 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
938 | dependencies:
939 | callsites "^3.0.0"
940 |
941 | parse-json@^2.2.0:
942 | version "2.2.0"
943 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
944 | dependencies:
945 | error-ex "^1.2.0"
946 |
947 | path-exists@^3.0.0:
948 | version "3.0.0"
949 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
950 |
951 | path-is-absolute@^1.0.0:
952 | version "1.0.1"
953 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
954 |
955 | path-is-inside@^1.0.2:
956 | version "1.0.2"
957 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
958 |
959 | path-key@^2.0.1:
960 | version "2.0.1"
961 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
962 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
963 |
964 | path-parse@^1.0.6:
965 | version "1.0.6"
966 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
967 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
968 |
969 | path-type@^2.0.0:
970 | version "2.0.0"
971 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
972 | dependencies:
973 | pify "^2.0.0"
974 |
975 | pify@^2.0.0:
976 | version "2.3.0"
977 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
978 |
979 | pkg-dir@^2.0.0:
980 | version "2.0.0"
981 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
982 | integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=
983 | dependencies:
984 | find-up "^2.1.0"
985 |
986 | prelude-ls@~1.1.2:
987 | version "1.1.2"
988 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
989 |
990 | progress@^2.0.0:
991 | version "2.0.0"
992 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
993 |
994 | prop-types@^15.7.2:
995 | version "15.7.2"
996 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
997 | integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
998 | dependencies:
999 | loose-envify "^1.4.0"
1000 | object-assign "^4.1.1"
1001 | react-is "^16.8.1"
1002 |
1003 | punycode@^2.1.0:
1004 | version "2.1.1"
1005 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
1006 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
1007 |
1008 | react-is@^16.8.1:
1009 | version "16.8.6"
1010 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16"
1011 | integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==
1012 |
1013 | read-pkg-up@^2.0.0:
1014 | version "2.0.0"
1015 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
1016 | dependencies:
1017 | find-up "^2.0.0"
1018 | read-pkg "^2.0.0"
1019 |
1020 | read-pkg@^2.0.0:
1021 | version "2.0.0"
1022 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
1023 | dependencies:
1024 | load-json-file "^2.0.0"
1025 | normalize-package-data "^2.3.2"
1026 | path-type "^2.0.0"
1027 |
1028 | regexpp@^2.0.1:
1029 | version "2.0.1"
1030 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
1031 | integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
1032 |
1033 | resolve-from@^4.0.0:
1034 | version "4.0.0"
1035 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
1036 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
1037 |
1038 | resolve@^1.10.1, resolve@^1.11.0, resolve@^1.5.0:
1039 | version "1.11.1"
1040 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e"
1041 | integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==
1042 | dependencies:
1043 | path-parse "^1.0.6"
1044 |
1045 | restore-cursor@^2.0.0:
1046 | version "2.0.0"
1047 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
1048 | dependencies:
1049 | onetime "^2.0.0"
1050 | signal-exit "^3.0.2"
1051 |
1052 | rimraf@2.6.3:
1053 | version "2.6.3"
1054 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
1055 | integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
1056 | dependencies:
1057 | glob "^7.1.3"
1058 |
1059 | run-async@^2.2.0:
1060 | version "2.3.0"
1061 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
1062 | dependencies:
1063 | is-promise "^2.1.0"
1064 |
1065 | rxjs@^6.4.0:
1066 | version "6.5.2"
1067 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7"
1068 | integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==
1069 | dependencies:
1070 | tslib "^1.9.0"
1071 |
1072 | "safer-buffer@>= 2.1.2 < 3":
1073 | version "2.1.2"
1074 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
1075 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
1076 |
1077 | "semver@2 || 3 || 4 || 5":
1078 | version "5.3.0"
1079 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
1080 |
1081 | semver@^5.5.0, semver@^5.5.1:
1082 | version "5.7.0"
1083 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b"
1084 | integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==
1085 |
1086 | semver@^6.1.0:
1087 | version "6.1.1"
1088 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.1.tgz#53f53da9b30b2103cd4f15eab3a18ecbcb210c9b"
1089 | integrity sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ==
1090 |
1091 | shebang-command@^1.2.0:
1092 | version "1.2.0"
1093 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
1094 | dependencies:
1095 | shebang-regex "^1.0.0"
1096 |
1097 | shebang-regex@^1.0.0:
1098 | version "1.0.0"
1099 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
1100 |
1101 | signal-exit@^3.0.2:
1102 | version "3.0.2"
1103 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
1104 |
1105 | slice-ansi@^2.1.0:
1106 | version "2.1.0"
1107 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
1108 | integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
1109 | dependencies:
1110 | ansi-styles "^3.2.0"
1111 | astral-regex "^1.0.0"
1112 | is-fullwidth-code-point "^2.0.0"
1113 |
1114 | spdx-correct@~1.0.0:
1115 | version "1.0.2"
1116 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
1117 | dependencies:
1118 | spdx-license-ids "^1.0.2"
1119 |
1120 | spdx-expression-parse@~1.0.0:
1121 | version "1.0.4"
1122 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
1123 |
1124 | spdx-license-ids@^1.0.2:
1125 | version "1.2.2"
1126 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
1127 |
1128 | sprintf-js@~1.0.2:
1129 | version "1.0.3"
1130 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
1131 |
1132 | string-width@^2.1.0:
1133 | version "2.1.1"
1134 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
1135 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
1136 | dependencies:
1137 | is-fullwidth-code-point "^2.0.0"
1138 | strip-ansi "^4.0.0"
1139 |
1140 | string-width@^3.0.0:
1141 | version "3.1.0"
1142 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
1143 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
1144 | dependencies:
1145 | emoji-regex "^7.0.1"
1146 | is-fullwidth-code-point "^2.0.0"
1147 | strip-ansi "^5.1.0"
1148 |
1149 | strip-ansi@^4.0.0:
1150 | version "4.0.0"
1151 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
1152 | dependencies:
1153 | ansi-regex "^3.0.0"
1154 |
1155 | strip-ansi@^5.1.0:
1156 | version "5.2.0"
1157 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
1158 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
1159 | dependencies:
1160 | ansi-regex "^4.1.0"
1161 |
1162 | strip-bom@^3.0.0:
1163 | version "3.0.0"
1164 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
1165 |
1166 | strip-json-comments@^2.0.1:
1167 | version "2.0.1"
1168 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
1169 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
1170 |
1171 | supports-color@^4.0.0:
1172 | version "4.4.0"
1173 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e"
1174 | dependencies:
1175 | has-flag "^2.0.0"
1176 |
1177 | supports-color@^5.3.0:
1178 | version "5.5.0"
1179 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1180 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1181 | dependencies:
1182 | has-flag "^3.0.0"
1183 |
1184 | table@^5.2.3:
1185 | version "5.4.0"
1186 | resolved "https://registry.yarnpkg.com/table/-/table-5.4.0.tgz#d772a3216e68829920a41a32c18eda286c95d780"
1187 | integrity sha512-nHFDrxmbrkU7JAFKqKbDJXfzrX2UBsWmrieXFTGxiI5e4ncg3VqsZeI4EzNmX0ncp4XNGVeoxIWJXfCIXwrsvw==
1188 | dependencies:
1189 | ajv "^6.9.1"
1190 | lodash "^4.17.11"
1191 | slice-ansi "^2.1.0"
1192 | string-width "^3.0.0"
1193 |
1194 | text-table@^0.2.0:
1195 | version "0.2.0"
1196 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
1197 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
1198 |
1199 | through@^2.3.6:
1200 | version "2.3.8"
1201 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
1202 |
1203 | tmp@^0.0.33:
1204 | version "0.0.33"
1205 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
1206 | integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
1207 | dependencies:
1208 | os-tmpdir "~1.0.2"
1209 |
1210 | tslib@^1.9.0:
1211 | version "1.10.0"
1212 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
1213 | integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
1214 |
1215 | type-check@~0.3.2:
1216 | version "0.3.2"
1217 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
1218 | dependencies:
1219 | prelude-ls "~1.1.2"
1220 |
1221 | uri-js@^4.2.2:
1222 | version "4.2.2"
1223 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
1224 | integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
1225 | dependencies:
1226 | punycode "^2.1.0"
1227 |
1228 | validate-npm-package-license@^3.0.1:
1229 | version "3.0.1"
1230 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
1231 | dependencies:
1232 | spdx-correct "~1.0.0"
1233 | spdx-expression-parse "~1.0.0"
1234 |
1235 | which@^1.2.9:
1236 | version "1.3.0"
1237 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
1238 | dependencies:
1239 | isexe "^2.0.0"
1240 |
1241 | wordwrap@~1.0.0:
1242 | version "1.0.0"
1243 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
1244 |
1245 | wrappy@1:
1246 | version "1.0.2"
1247 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1248 |
1249 | write@1.0.3:
1250 | version "1.0.3"
1251 | resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3"
1252 | integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==
1253 | dependencies:
1254 | mkdirp "^0.5.1"
1255 |
1256 | yamljs@^0.3.0:
1257 | version "0.3.0"
1258 | resolved "https://registry.yarnpkg.com/yamljs/-/yamljs-0.3.0.tgz#dc060bf267447b39f7304e9b2bfbe8b5a7ddb03b"
1259 | dependencies:
1260 | argparse "^1.0.7"
1261 | glob "^7.0.5"
1262 |
--------------------------------------------------------------------------------
/rubocop/.gitignore:
--------------------------------------------------------------------------------
1 | /.bundle/
2 | /.yardoc
3 | /_yardoc/
4 | /coverage/
5 | /doc/
6 | /pkg/
7 | /spec/reports/
8 | /tmp/
9 |
10 | # rspec failure tracking
11 | .rspec_status
12 | *.gem
13 |
--------------------------------------------------------------------------------
/rubocop/.rubocop.yml:
--------------------------------------------------------------------------------
1 | inherit_gem:
2 | rubocop-config-umbrellio: lib/rubocop.yml
3 |
4 | AllCops:
5 | TargetRubyVersion: 3.0
6 |
--------------------------------------------------------------------------------
/rubocop/Gemfile:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | source "https://rubygems.org"
4 |
5 | # Specify your gem's dependencies in rubocop.gemspec
6 | gemspec
7 |
8 | gem "bundler", "~> 2.2"
9 | gem "rake", "~> 13.0"
10 |
--------------------------------------------------------------------------------
/rubocop/Gemfile.lock:
--------------------------------------------------------------------------------
1 | PATH
2 | remote: .
3 | specs:
4 | rubocop-config-umbrellio (1.75.0)
5 | rubocop (~> 1.75.0)
6 | rubocop-factory_bot (~> 2.27.0)
7 | rubocop-performance (~> 1.25.0)
8 | rubocop-rails (~> 2.32.0)
9 | rubocop-rake (~> 0.7.0)
10 | rubocop-rspec (~> 3.6.0)
11 | rubocop-sequel (~> 0.4.0)
12 |
13 | GEM
14 | remote: https://rubygems.org/
15 | specs:
16 | activesupport (8.0.2)
17 | base64
18 | benchmark (>= 0.3)
19 | bigdecimal
20 | concurrent-ruby (~> 1.0, >= 1.3.1)
21 | connection_pool (>= 2.2.5)
22 | drb
23 | i18n (>= 1.6, < 2)
24 | logger (>= 1.4.2)
25 | minitest (>= 5.1)
26 | securerandom (>= 0.3)
27 | tzinfo (~> 2.0, >= 2.0.5)
28 | uri (>= 0.13.1)
29 | ast (2.4.3)
30 | base64 (0.2.0)
31 | benchmark (0.4.0)
32 | bigdecimal (3.1.9)
33 | concurrent-ruby (1.3.5)
34 | connection_pool (2.5.3)
35 | drb (2.2.3)
36 | i18n (1.14.7)
37 | concurrent-ruby (~> 1.0)
38 | json (2.12.2)
39 | language_server-protocol (3.17.0.5)
40 | lint_roller (1.1.0)
41 | logger (1.7.0)
42 | minitest (5.25.5)
43 | parallel (1.27.0)
44 | parser (3.3.8.0)
45 | ast (~> 2.4.1)
46 | racc
47 | prism (1.4.0)
48 | racc (1.8.1)
49 | rack (3.1.15)
50 | rainbow (3.1.1)
51 | rake (13.2.1)
52 | regexp_parser (2.10.0)
53 | rubocop (1.75.7)
54 | json (~> 2.3)
55 | language_server-protocol (~> 3.17.0.2)
56 | lint_roller (~> 1.1.0)
57 | parallel (~> 1.10)
58 | parser (>= 3.3.0.2)
59 | rainbow (>= 2.2.2, < 4.0)
60 | regexp_parser (>= 2.9.3, < 3.0)
61 | rubocop-ast (>= 1.44.0, < 2.0)
62 | ruby-progressbar (~> 1.7)
63 | unicode-display_width (>= 2.4.0, < 4.0)
64 | rubocop-ast (1.44.1)
65 | parser (>= 3.3.7.2)
66 | prism (~> 1.4)
67 | rubocop-factory_bot (2.27.1)
68 | lint_roller (~> 1.1)
69 | rubocop (~> 1.72, >= 1.72.1)
70 | rubocop-performance (1.25.0)
71 | lint_roller (~> 1.1)
72 | rubocop (>= 1.75.0, < 2.0)
73 | rubocop-ast (>= 1.38.0, < 2.0)
74 | rubocop-rails (2.32.0)
75 | activesupport (>= 4.2.0)
76 | lint_roller (~> 1.1)
77 | rack (>= 1.1)
78 | rubocop (>= 1.75.0, < 2.0)
79 | rubocop-ast (>= 1.44.0, < 2.0)
80 | rubocop-rake (0.7.1)
81 | lint_roller (~> 1.1)
82 | rubocop (>= 1.72.1)
83 | rubocop-rspec (3.6.0)
84 | lint_roller (~> 1.1)
85 | rubocop (~> 1.72, >= 1.72.1)
86 | rubocop-sequel (0.4.1)
87 | lint_roller (~> 1.1)
88 | rubocop (>= 1.72.1, < 2)
89 | ruby-progressbar (1.13.0)
90 | securerandom (0.4.1)
91 | tzinfo (2.0.6)
92 | concurrent-ruby (~> 1.0)
93 | unicode-display_width (3.1.4)
94 | unicode-emoji (~> 4.0, >= 4.0.4)
95 | unicode-emoji (4.0.4)
96 | uri (1.0.3)
97 |
98 | PLATFORMS
99 | arm64-darwin-21
100 | ruby
101 | x86_64-darwin-20
102 | x86_64-linux
103 |
104 | DEPENDENCIES
105 | bundler (~> 2.2)
106 | rake (~> 13.0)
107 | rubocop-config-umbrellio!
108 |
109 | BUNDLED WITH
110 | 2.6.9
111 |
--------------------------------------------------------------------------------
/rubocop/README.md:
--------------------------------------------------------------------------------
1 | # Umbrellio code style: rubocop-config-umbrellio
2 | This gem provides default rubocop settings for Umbrellio projects.
3 |
4 | When writing Ruby, we mostly follow this guide: https://github.com/airbnb/ruby.
5 |
6 | ## Usage
7 |
8 | 1. Add `gem 'rubocop-config-umbrellio'` to your Gemfile.
9 |
10 | To test this gem before release, you can add
11 | `gem 'rubocop-config-umbrellio', github: 'umbrellio/code-style'` instead.
12 |
13 | Do `$ bundle install`. If it fails, run `$ bundle update rubocop rubocop-rspec` instead.
14 |
15 | 2. Edit `.rubocop.yml`:
16 |
17 | ```yaml
18 | inherit_gem:
19 | rubocop-config-umbrellio: lib/rubocop.yml
20 | # OR
21 | rubocop-config-umbrellio: lib/rubocop.rails.yml
22 |
23 | AllCops:
24 | TargetRubyVersion: 2.3
25 |
26 | # Optional overrides
27 | ```
28 |
--------------------------------------------------------------------------------
/rubocop/Rakefile:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | require "bundler/gem_tasks"
4 | require "rubocop/rake_task"
5 | require "rubocop"
6 | require "rubocop-performance"
7 | require "rubocop-rspec"
8 |
9 | RuboCop::RakeTask.new(:rubocop) do |t|
10 | t.options = %w[--config ./.rubocop.yml]
11 | t.plugins << "rubocop-rspec"
12 | t.plugins << "rubocop-performance"
13 | end
14 |
15 | task default: :rubocop
16 |
--------------------------------------------------------------------------------
/rubocop/bin/rake:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | # frozen_string_literal: true
3 | #
4 | # This file was generated by Bundler.
5 | #
6 | # The application 'rake' is installed as part of a gem, and
7 | # this file is here to facilitate running it.
8 | #
9 |
10 | require "pathname"
11 | ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
12 | Pathname.new(__FILE__).realpath)
13 |
14 | require "rubygems"
15 | require "bundler/setup"
16 |
17 | load Gem.bin_path("rake", "rake")
18 |
--------------------------------------------------------------------------------
/rubocop/bin/rubocop:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | # frozen_string_literal: true
3 | #
4 | # This file was generated by Bundler.
5 | #
6 | # The application 'rubocop' is installed as part of a gem, and
7 | # this file is here to facilitate running it.
8 | #
9 |
10 | require "pathname"
11 | ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", Pathname.new(__FILE__).realpath)
12 |
13 | require "rubygems"
14 | require "bundler/setup"
15 |
16 | load Gem.bin_path("rubocop", "rubocop")
17 |
--------------------------------------------------------------------------------
/rubocop/lib/rubocop.performance.yml:
--------------------------------------------------------------------------------
1 | plugins: rubocop-performance
2 |
3 | Performance/Caller:
4 | Enabled: true
5 |
6 | Performance/Casecmp:
7 | Enabled: false
8 |
9 | Performance/UnfreezeString:
10 | Enabled: true
11 |
--------------------------------------------------------------------------------
/rubocop/lib/rubocop.rails.yml:
--------------------------------------------------------------------------------
1 | plugins: rubocop-rails
2 |
3 | inherit_gem:
4 | rubocop-config-umbrellio: lib/rubocop.yml
5 |
6 | # Layout
7 |
8 | Layout/LineLength:
9 | Exclude:
10 | - config/environments/*
11 | - lib/**/tasks/**/*
12 |
13 | # Metrics
14 |
15 | Metrics/MethodLength:
16 | Exclude:
17 | - db/**/*
18 | - config/initializers/**/*
19 |
20 | # Rails
21 |
22 | Rails:
23 | Enabled: true
24 |
25 | Rails/ApplicationJob:
26 | Enabled: true
27 |
28 | Rails/ApplicationRecord:
29 | # Use it even you use Sequel
30 | Enabled: true
31 |
32 | Rails/CreateTableWithTimestamps:
33 | # Conflicts with Sequel
34 | Enabled: false
35 |
36 | Rails/Delegate:
37 | Enabled: false
38 |
39 | Rails/HasAndBelongsToMany:
40 | Enabled: false
41 |
42 | Rails/HasManyOrHasOneDependent:
43 | Enabled: false
44 |
45 | Rails/HttpPositionalArguments:
46 | # rails 5 feature https://github.com/bbatsov/rubocop/issues/3629
47 | Enabled: false
48 |
49 | Rails/OutputSafety:
50 | Enabled: false
51 |
52 | Rails/RenderInline:
53 | Enabled: false # See https://github.com/rubocop-hq/rubocop-rails/issues/300
54 |
55 | Rails/SaveBang:
56 | # Disabled by default
57 | Enabled: true
58 |
59 | Rails/SkipsModelValidations:
60 | Enabled: false
61 |
62 | Rails/UnknownEnv:
63 | Environments:
64 | - development
65 | - test
66 | - staging
67 | - production
68 |
69 | Rails/Validation:
70 | Enabled: false
71 |
72 | # Style
73 |
74 | Style/ClassAndModuleChildren:
75 | Enabled: true
76 | EnforcedStyle: compact
77 | Exclude:
78 | - config/**/*
79 |
80 | Style/HashSyntax:
81 | Exclude:
82 | - lib/**/tasks/**/*
83 |
--------------------------------------------------------------------------------
/rubocop/lib/rubocop.rake.yml:
--------------------------------------------------------------------------------
1 | plugins: rubocop-rake
2 |
--------------------------------------------------------------------------------
/rubocop/lib/rubocop.rspec.yml:
--------------------------------------------------------------------------------
1 | plugins:
2 | - rubocop-rspec
3 | - rubocop-factory_bot
4 |
5 | # RSpec
6 |
7 | RSpec/AlignLeftLetBrace:
8 | # Never do it
9 | Enabled: false
10 |
11 | RSpec/AlignRightLetBrace:
12 | # Never do it
13 | Enabled: false
14 |
15 | RSpec/AnyInstance:
16 | Enabled: false
17 |
18 | RSpec/ExampleLength:
19 | Max: 20
20 | Exclude:
21 | - spec/features/**/*
22 |
23 | RSpec/DescribeClass:
24 | Enabled: false
25 |
26 | RSpec/DescribedClass:
27 | Enabled: false
28 |
29 | RSpec/DescribeMethod:
30 | Enabled: false
31 |
32 | RSpec/ContextWording:
33 | Enabled: false
34 |
35 | RSpec/ExpectInHook:
36 | # try not to use expect in before / after / around blocks anyway
37 | Enabled: false
38 |
39 | RSpec/SpecFilePathFormat:
40 | Enabled: false
41 |
42 | RSpec/LeadingSubject:
43 | Enabled: false # Context includes look better at the top of context, I think
44 |
45 | RSpec/LetBeforeExamples:
46 | Enabled: true
47 |
48 | RSpec/LetSetup:
49 | Enabled: false
50 |
51 | RSpec/MessageChain:
52 | Enabled: false
53 |
54 | RSpec/MessageSpies:
55 | Enabled: false
56 |
57 | RSpec/MultipleDescribes:
58 | Enabled: false
59 |
60 | RSpec/MultipleExpectations:
61 | Enabled: false
62 |
63 | RSpec/MultipleSubjects:
64 | Enabled: true
65 |
66 | RSpec/MultipleMemoizedHelpers:
67 | Enabled: false # No idea how to limit amount of lets
68 |
69 | RSpec/NestedGroups:
70 | Enabled: false
71 |
72 | RSpec/ReturnFromStub:
73 | # expect(foo).to receive(:bar) { :baz } # Bad
74 | # expect(foo).to receive(:bar).and_return(:baz) # Good
75 | # expect(foo).to receive(:bar).and_return { Time.current } # Good
76 | Enabled: true
77 |
78 | RSpec/PredicateMatcher:
79 | # Predicate matchers' error messages are shitty, we should not use them unless they aren't
80 | # expect(foo).to be_nil # good
81 | # expect(foo).to be_active # bad if foo.inspect takes 5 screens
82 | # expect(foo.active?).to be_truthy # good
83 | Enabled: false
84 |
85 | RSpec/ScatteredSetup:
86 | Enabled: false
87 |
88 | RSpec/VerifiedDoubles:
89 | Enabled: false
90 |
91 | RSpec/VoidExpect:
92 | Enabled: true
93 |
94 | RSpec/BeEq:
95 | Enabled: false
96 |
97 | RSpec/BeNil:
98 | Enabled: false
99 |
100 | RSpec/ExpectChange:
101 | Enabled: false
102 |
103 | RSpec/NoExpectationExample:
104 | Enabled: false
105 |
--------------------------------------------------------------------------------
/rubocop/lib/rubocop.sequel.yml:
--------------------------------------------------------------------------------
1 | plugins: rubocop-sequel
2 |
--------------------------------------------------------------------------------
/rubocop/lib/rubocop.yml:
--------------------------------------------------------------------------------
1 | inherit_gem:
2 | rubocop-config-umbrellio:
3 | - lib/rubocop.rspec.yml
4 | - lib/rubocop.performance.yml
5 | - lib/rubocop.rake.yml
6 |
7 | AllCops:
8 | NewCops: enable
9 | DisplayCopNames: true
10 | Exclude:
11 | - bin/**/*
12 | - node_modules/**/*
13 | - vendor/**/*
14 | - tmp/**/*
15 |
16 | Gemspec/RequireMFA:
17 | Enabled: false
18 |
19 | # Layout
20 |
21 | Layout/ClassStructure:
22 | Enabled: true
23 |
24 | Layout/EmptyLineAfterGuardClause:
25 | Enabled: false
26 |
27 | Layout/EmptyLinesAroundArguments:
28 | # Conflicts with memery / memoist, try to enable after next rubocop upgrade
29 | Enabled: false
30 |
31 | Layout/FirstArrayElementIndentation:
32 | # Good
33 | # foo([
34 | # :first,
35 | # :second,
36 | # ])
37 | # Bad
38 | # foo([
39 | # :first,
40 | # :second
41 | # ])
42 | EnforcedStyle: consistent
43 |
44 | Layout/FirstHashElementIndentation:
45 | EnforcedStyle: consistent
46 |
47 | Layout/LineLength:
48 | Max: 100
49 | AllowHeredoc: false
50 | AllowURI: false
51 | Exclude:
52 | - Gemfile
53 |
54 | Layout/MultilineMethodCallIndentation:
55 | # We don't like this cop
56 | Enabled: false
57 |
58 | Layout/MultilineOperationIndentation:
59 | Enabled: false
60 |
61 | Layout/ParameterAlignment:
62 | Enabled: true
63 |
64 | Layout/SpaceBeforeBrackets:
65 | Enabled: false # currently broken for cases like `add_primary_key [:some_id]`
66 |
67 | Layout/SpaceInLambdaLiteral:
68 | EnforcedStyle: require_space
69 |
70 | Layout/SpaceInsideArrayLiteralBrackets:
71 | Enabled: false
72 |
73 | # Lint
74 |
75 | Lint/AmbiguousBlockAssociation:
76 | # `scope :name, -> (param) { ... }` is a valid syntax
77 | Enabled: false
78 |
79 | Lint/AmbiguousOperator:
80 | Enabled: false
81 |
82 | Lint/EmptyWhen:
83 | # Good:
84 | # case x
85 | # when :foo
86 | # # return nil
87 | # when :bar
88 | # :bar
89 | # else
90 | # :baz
91 | # end
92 | Enabled: false
93 |
94 | Lint/NonLocalExitFromIterator:
95 | Enabled: false
96 |
97 | Lint/RaiseException:
98 | Enabled: true
99 |
100 | Lint/RescueType:
101 | # It's generally useless, but why not?
102 | Enabled: true
103 |
104 | Lint/ShadowingOuterLocalVariable:
105 | Enabled: false
106 |
107 | Lint/ScriptPermission:
108 | # checks +x on scripts
109 | Enabled: true
110 |
111 | Lint/StructNewOverride:
112 | Enabled: true
113 |
114 | Lint/SuppressedException:
115 | Enabled: false
116 |
117 | # Metrics
118 |
119 | Metrics/AbcSize:
120 | Enabled: false
121 |
122 | Metrics/BlockLength:
123 | Enabled: false
124 |
125 | Metrics/ClassLength:
126 | Enabled: false
127 |
128 | Metrics/CyclomaticComplexity:
129 | Enabled: false
130 |
131 | Metrics/MethodLength:
132 | Max: 20
133 |
134 | Metrics/PerceivedComplexity:
135 | Enabled: false
136 |
137 | # Naming
138 |
139 | Naming/RescuedExceptionsVariableName:
140 | PreferredName: error
141 |
142 | Naming/AccessorMethodName:
143 | # This cop assumes every method is accessor
144 | Enabled: false
145 |
146 | Naming/PredicateName:
147 | # `has_` is generally good
148 | ForbiddenPrefixes:
149 | - is_
150 |
151 | # Security
152 |
153 | Security/YAMLLoad:
154 | Enabled: false
155 |
156 | # Style
157 |
158 | Style/AsciiComments:
159 | Enabled: false
160 |
161 | Style/AndOr:
162 | # `do_something and return`
163 | Enabled: false
164 |
165 | Style/ClassAndModuleChildren:
166 | # Enable it in non-rails projects with EnforcedStyle you prefer
167 | Enabled: false
168 |
169 | Style/CommentAnnotation:
170 | # Also, i think that better to use yard's `@todo` and other in ruby code
171 | Enabled: false
172 |
173 | Style/ConditionalAssignment:
174 | Enabled: false
175 |
176 | Style/Dir:
177 | Enabled: true
178 |
179 | Style/Documentation:
180 | Enabled: false
181 |
182 | Style/DoubleNegation:
183 | # Always return booleans in predicates
184 | Enabled: false
185 |
186 | Style/EmptyCaseCondition:
187 | Enabled: false
188 |
189 | Style/EmptyElse:
190 | Enabled: false
191 |
192 | Style/Encoding:
193 | Enabled: false
194 |
195 | Style/FormatStringToken:
196 | # Bad
197 | # [7] pry(main)> format "%{foo}", foo: 123
198 | # => "123"
199 | # Good
200 | # [8] pry(main)> format "%s", foo: 123
201 | # => "123"
202 | # Also good
203 | # [9] pry(main)> format "%f", foo: 123
204 | # => "123.000000"
205 | Enabled: true
206 |
207 | Style/IfUnlessModifier:
208 | # Doesn't work well with Metrics/LineLength
209 | Enabled: false
210 |
211 | Style/GuardClause:
212 | Enabled: false
213 |
214 | Style/HashEachMethods:
215 | Enabled: true
216 |
217 | Style/HashTransformKeys:
218 | Enabled: true
219 |
220 | Style/HashTransformValues:
221 | Enabled: true
222 |
223 | Style/LambdaCall:
224 | Enabled: false
225 |
226 | Style/ModuleFunction:
227 | Enabled: false
228 |
229 | Style/MultilineTernaryOperator:
230 | Enabled: false
231 |
232 | Style/MultipleComparison:
233 | # Bad
234 | # if foo == 1 || foo == 2
235 | # Good
236 | # [1, 2].include?(foo)
237 | # With activesupport, this is better
238 | # foo.in? [1, 2]
239 | Enabled: true
240 |
241 | Style/NumericLiterals:
242 | Description: 'Use indent in groups of 3 unlesss you meet project-specific rule'
243 | Enabled: false
244 |
245 | Style/ParallelAssignment:
246 | Enabled: false
247 |
248 | Style/PerlBackrefs:
249 | # Disable localy if realy neeeded
250 | Enabled: true
251 |
252 | Style/RaiseArgs:
253 | Description: 'Use `raise, ErrorClass` in all cases but not when you need ErrorClass constructor'
254 | Enabled: false
255 |
256 | Style/RedundantConditional:
257 | Enabled: true
258 |
259 | Style/RegexpLiteral:
260 | EnforcedStyle: mixed
261 | Enabled: true
262 |
263 | Style/RescueModifier:
264 | Enabled: false
265 |
266 | Style/RescueStandardError:
267 | # We forced `rescue` over `rescue StandardError`
268 | Enabled: false
269 |
270 | Style/StringLiterals:
271 | EnforcedStyle: double_quotes
272 | ConsistentQuotesInMultiline: true
273 |
274 | Style/SignalException:
275 | EnforcedStyle: only_raise
276 |
277 | Style/SingleLineBlockParams:
278 | Enabled: false
279 |
280 | Style/StringLiteralsInInterpolation:
281 | Enabled: false
282 |
283 | Style/SymbolArray:
284 | # Be consistent
285 | # Good, array of symbols expected
286 | # :foo.in? &i[foo bar]
287 | # Good, link_to receives array of generic objects
288 | # link_to [:admin, :users]
289 | # Good, if second is not a symbol array, first is not expected to be
290 | # [
291 | # [:foo, :bar]
292 | # [:boo, :bar, baz: true]
293 | # ]
294 | Enabled: false
295 |
296 | Style/TrailingCommaInArguments:
297 | EnforcedStyleForMultiline: comma
298 |
299 | Style/TrailingCommaInArrayLiteral:
300 | EnforcedStyleForMultiline: comma
301 |
302 | Style/TrailingCommaInHashLiteral:
303 | EnforcedStyleForMultiline: comma
304 |
305 | Style/TrivialAccessors:
306 | AllowPredicates: true
307 | Enabled: false
308 |
309 | Style/YodaCondition:
310 | # REVIEW: i sure that we don't need it
311 | Enabled: false
312 |
--------------------------------------------------------------------------------
/rubocop/rubocop.gemspec:
--------------------------------------------------------------------------------
1 | # coding: utf-8
2 | # frozen_string_literal: true
3 |
4 | Gem::Specification.new do |spec|
5 | spec.required_ruby_version = ">= 3.0.0"
6 |
7 | rubocop_version = "1.75.0"
8 |
9 | if ENV.fetch("PUBLISH_JOB", nil)
10 | release_version = "#{rubocop_version}.#{ENV.fetch("GITHUB_RUN_NUMBER")}"
11 | end
12 |
13 | spec.name = "rubocop-config-umbrellio"
14 | spec.version = release_version || rubocop_version
15 | spec.authors = ["Umbrellio"]
16 | spec.email = ["oss@umbrellio.biz"]
17 |
18 | spec.summary = "This gem provides default rubocop settings for Umbrellio projects"
19 | spec.homepage = "https://github.com/umbrellio/code-style"
20 | spec.license = "MIT"
21 |
22 | spec.files = Dir["lib/rubocop.*.yml"] << "lib/rubocop.yml"
23 |
24 | spec.add_dependency "rubocop", "~> #{rubocop_version}"
25 | spec.add_dependency "rubocop-factory_bot", "~> 2.27.0"
26 | spec.add_dependency "rubocop-performance", "~> 1.25.0"
27 | spec.add_dependency "rubocop-rails", "~> 2.32.0"
28 | spec.add_dependency "rubocop-rake", "~> 0.7.0"
29 | spec.add_dependency "rubocop-rspec", "~> 3.6.0"
30 | spec.add_dependency "rubocop-sequel", "~> 0.4.0"
31 | end
32 |
--------------------------------------------------------------------------------
/stylelint/.gitignore:
--------------------------------------------------------------------------------
1 | /*.log
2 | /node_modules/
3 |
--------------------------------------------------------------------------------
/stylelint/.stylelintrc.styled-components.yml:
--------------------------------------------------------------------------------
1 | extends: stylelint-config-umbrellio/.stylelintrc.yml
2 | rules:
3 | rule-empty-line-before: null
4 | value-keyword-case: null
5 | declaration-block-semicolon-newline-after: null
6 | string-quotes: double
7 |
8 |
--------------------------------------------------------------------------------
/stylelint/.stylelintrc.yml:
--------------------------------------------------------------------------------
1 | rules:
2 | # Colors
3 | color-hex-case: lower
4 | color-hex-length: short
5 | color-named: never
6 | color-no-hex: null
7 | color-no-invalid-hex: true
8 | # Fonts
9 | font-family-name-quotes: always-where-recommended
10 | font-family-no-duplicate-names: true
11 | font-weight-notation: null
12 | # Functions
13 | function-calc-no-unspaced-operator: true
14 | function-comma-newline-after: null
15 | function-comma-newline-before: null
16 | function-comma-space-after: always
17 | function-comma-space-before: never
18 | function-linear-gradient-no-nonstandard-direction: true
19 | function-max-empty-lines: 0
20 | function-name-case: lower
21 | function-parentheses-newline-inside: null
22 | function-parentheses-space-inside: never
23 | function-url-no-scheme-relative: true
24 | function-url-quotes:
25 | - always
26 | - except: empty
27 | function-whitespace-after: always
28 | # Numbers
29 | number-leading-zero: never
30 | number-max-precision: null
31 | number-no-trailing-zeros: true
32 | # Strings
33 | string-no-newline: true
34 | string-quotes: single
35 | # Length
36 | length-zero-no-unit: true
37 | # Time
38 | time-min-milliseconds: null
39 | # Units
40 | unit-case: lower
41 | unit-no-unknown: true
42 | # Values
43 | value-keyword-case: lower
44 | value-no-vendor-prefix: null
45 | value-list-comma-newline-after: null
46 | value-list-comma-newline-before: null
47 | value-list-comma-space-after: always
48 | value-list-comma-space-before: never
49 | value-list-max-empty-lines: 0
50 | # Properties
51 | custom-property-empty-line-before: never
52 | shorthand-property-no-redundant-values: true
53 | property-case: lower
54 | property-no-unknown: true
55 | property-no-vendor-prefix: null
56 | # Declarations
57 | keyframe-declaration-no-important: null
58 | declaration-bang-space-after: never
59 | declaration-bang-space-before: always
60 | declaration-colon-newline-after: always-multi-line
61 | declaration-colon-space-after: always
62 | declaration-colon-space-before: never
63 | declaration-empty-line-before: null
64 | declaration-no-important: null
65 | declaration-block-no-duplicate-properties:
66 | - true
67 | - ignore: consecutive-duplicates-with-different-values
68 | declaration-block-no-redundant-longhand-properties: true
69 | declaration-block-no-shorthand-property-overrides: true
70 | declaration-block-semicolon-newline-after: always
71 | declaration-block-semicolon-newline-before: never-multi-line
72 | declaration-block-semicolon-space-after: always-single-line
73 | declaration-block-semicolon-space-before: never
74 | declaration-block-single-line-max-declarations: 1
75 | declaration-block-trailing-semicolon: always
76 | # Blocks
77 | block-closing-brace-empty-line-before: never
78 | block-closing-brace-newline-after: always
79 | block-closing-brace-newline-before: always-multi-line
80 | block-closing-brace-space-after: null
81 | block-closing-brace-space-before: null
82 | block-no-empty: null
83 | block-opening-brace-newline-after: always-multi-line
84 | block-opening-brace-newline-before: null
85 | # Selectors
86 | selector-attribute-brackets-space-inside: never
87 | selector-attribute-operator-space-after: never
88 | selector-attribute-operator-space-before: never
89 | selector-attribute-quotes: always
90 | selector-combinator-space-after: always
91 | selector-combinator-space-before: always
92 | selector-descendant-combinator-no-non-space: true
93 | selector-pseudo-class-case: lower
94 | selector-pseudo-class-no-unknown: true
95 | selector-pseudo-class-parentheses-space-inside: never
96 | selector-pseudo-element-case: lower
97 | selector-pseudo-element-colon-notation: single
98 | selector-pseudo-element-no-unknown: true
99 | selector-type-case: lower
100 | selector-type-no-unknown: true
101 | selector-max-empty-lines: 0
102 | selector-list-comma-newline-after: null
103 | selector-list-comma-newline-before: null
104 | selector-list-comma-space-after: always-single-line
105 | selector-list-comma-space-before: never
106 | # Rules
107 | rule-empty-line-before:
108 | - always
109 | - ignore:
110 | - after-comment
111 | - inside-block
112 | media-feature-colon-space-after: always
113 | media-feature-colon-space-before: never
114 | media-feature-name-case: lower
115 | media-feature-name-no-unknown: true
116 | media-feature-parentheses-space-inside: never
117 | media-feature-range-operator-space-after: always
118 | media-feature-range-operator-space-before: always
119 | media-query-list-comma-space-after: always
120 | media-query-list-comma-space-before: never
121 | at-rule-empty-line-before:
122 | - always
123 | - except:
124 | - after-same-name
125 | - inside-block
126 | at-rule-name-case: lower
127 | at-rule-name-space-after: always
128 | at-rule-no-unknown: true
129 | at-rule-semicolon-newline-after: always
130 | at-rule-semicolon-space-before: never
131 | # Comments
132 | comment-no-empty: true
133 | comment-whitespace-inside: always
134 | # General
135 | indentation: 2
136 | max-empty-lines: 1
137 | max-nesting-depth: 6
138 | max-line-length: 100
139 | no-eol-whitespace: true
140 | no-extra-semicolons: true
141 | no-invalid-double-slash-comments: true
142 | no-missing-end-of-source-newline: true
143 | no-unknown-animations: true
144 |
--------------------------------------------------------------------------------
/stylelint/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Change Log
2 | All notable changes to this project will be documented in this file.
3 |
4 | The format is based on [Keep a Changelog](http://keepachangelog.com/)
5 | and this project adheres to [Semantic Versioning](http://semver.org/).
6 |
7 | ## [0.1.1] - 2019-06-17
8 | ### Changed
9 | - Removed deprecated rule `function-url-data-uris`.
10 |
11 | ## [0.1.1] - 2017-07-03
12 | ### Changed
13 | - Added a separate config for styled-components.
14 |
15 | ## [0.1.0] - 2017-05-16
16 | Initial config.
17 |
--------------------------------------------------------------------------------
/stylelint/README.md:
--------------------------------------------------------------------------------
1 | # stylelint-config-umbrellio
2 | [](https://badge.fury.io/js/stylelint-config-umbrellio)
3 |
4 | Install with [yarn](https://github.com/yarnpkg/yarn):
5 |
6 | ```
7 | yarn add -D stylelint-config-umbrellio
8 | ```
9 |
10 | Add `stylelint-config-umbrellio` to "extends" section of Stylelint config:
11 |
12 | ```json
13 | {
14 | "extends": "stylelint-config-umbrellio"
15 | }
16 | ```
17 |
--------------------------------------------------------------------------------
/stylelint/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "stylelint-config-umbrellio",
3 | "version": "0.1.2",
4 | "description": "Stylelint config used for Umbrellio projects",
5 | "main": ".stylelintrc.yml",
6 | "files": [
7 | ".stylelintrc.yml",
8 | ".stylelintrc.styled-components.yml"
9 | ],
10 | "keywords": [
11 | "stylelint",
12 | "stylelint-config",
13 | "umbrellio"
14 | ],
15 | "repository": "https://github.com/umbrellio/code-style",
16 | "author": "Alexander Komarov ",
17 | "license": "MIT",
18 | "peerDependencies": {
19 | "stylelint": "^7.10.1"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/stylelint/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 |
--------------------------------------------------------------------------------