├── .editorconfig ├── .gitattributes ├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── index.js ├── package-lock.json ├── package.json └── test └── test.js /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 'lts/*' 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | 179 | APPENDIX: How to apply the Apache License to your work. 180 | 181 | To apply the Apache License to your work, attach the following 182 | boilerplate notice, with the fields enclosed by brackets "[]" 183 | replaced with your own identifying information. (Don't include 184 | the brackets!) The text should be enclosed in the appropriate 185 | comment syntax for the file format. We also recommend that a 186 | file or class name and description of purpose be included on the 187 | same "printed page" as the copyright notice for easier 188 | identification within third-party archives. 189 | 190 | Copyright 2015 Google Inc. 191 | 192 | Licensed under the Apache License, Version 2.0 (the "License"); 193 | you may not use this file except in compliance with the License. 194 | You may obtain a copy of the License at 195 | 196 | http://www.apache.org/licenses/LICENSE-2.0 197 | 198 | Unless required by applicable law or agreed to in writing, software 199 | distributed under the License is distributed on an "AS IS" BASIS, 200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 201 | See the License for the specific language governing permissions and 202 | limitations under the License. 203 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # eslint-config-google 2 | 3 | > ESLint [shareable config](http://eslint.org/docs/developer-guide/shareable-configs.html) for the [Google JavaScript style guide (ES2015+ version)](https://google.github.io/styleguide/jsguide.html) 4 | 5 | 6 | ## Installation 7 | 8 | ``` 9 | $ npm install --save-dev eslint eslint-config-google 10 | ``` 11 | 12 | 13 | ## Usage 14 | 15 | Once the `eslint-config-google` package is installed, you can use it by specifying `google` in the [`extends`](http://eslint.org/docs/user-guide/configuring#extending-configuration-files) section of your [ESLint configuration](http://eslint.org/docs/user-guide/configuring). 16 | 17 | ```js 18 | { 19 | "extends": "google", 20 | "rules": { 21 | // Additional, per-project rules... 22 | } 23 | } 24 | ``` 25 | 26 | ### Using the `google` config with `eslint:recommended` 27 | 28 | There are several rules in the [`eslint:recommended` ruleset](http://eslint.org/docs/rules/) that Google style is not opinionated about that you might want to enforce in your project. 29 | 30 | To use Google style in conjunction with ESLint's recommended rule set, extend them both, making sure to list `google` last: 31 | 32 | ```js 33 | { 34 | "extends": ["eslint:recommended", "google"], 35 | "rules": { 36 | // Additional, per-project rules... 37 | } 38 | } 39 | ``` 40 | 41 | To see how the `google` config compares with `eslint:recommended`, refer to the [source code of `index.js`](https://github.com/google/eslint-config-google/blob/main/index.js), which lists every ESLint rule along with whether (and how) it is enforced by the `google` config. 42 | 43 | 44 | ## License 45 | 46 | See [License](https://github.com/google/eslint-config-google/blob/main/LICENSE) 47 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2016 Google Inc. All rights reserved. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | module.exports = { 20 | rules: { 21 | // The rules below are listed in the order they appear on the eslint 22 | // rules page. All rules are listed to make it easier to keep in sync 23 | // as new ESLint rules are added. 24 | // http://eslint.org/docs/rules/ 25 | // - Rules in the `eslint:recommended` ruleset that aren't specifically 26 | // mentioned by the google styleguide are listed but commented out (so 27 | // they don't override a base ruleset). 28 | // - Rules that are recommended but contradict the Google styleguide 29 | // are explicitly set to the Google styleguide value. 30 | 31 | // Possible Errors 32 | // http://eslint.org/docs/rules/#possible-errors 33 | // --------------------------------------------- 34 | // 'for-direction': 'off', 35 | // 'no-await-in-loop': 'off', 36 | // 'no-compare-neg-zero': 'error', // eslint:recommended 37 | 'no-cond-assign': 'off', // eslint:recommended 38 | // 'no-console': 'error', // eslint:recommended 39 | // 'no-constant-condition': 'error', // eslint:recommended 40 | // 'no-control-regex': 'error', // eslint:recommended 41 | // 'no-debugger': 'error', // eslint:recommended 42 | // 'no-dupe-args': 'error', // eslint:recommended 43 | // 'no-dupe-keys': 'error', // eslint:recommended 44 | // 'no-duplicate-case': 'error', // eslint:recommended 45 | // 'no-empty': 'error', // eslint:recommended 46 | // 'no-empty-character-class': 'error', // eslint:recommended 47 | // 'no-ex-assign': 'error', // eslint:recommended 48 | // 'no-extra-boolean-cast': 'error', // eslint:recommended 49 | // 'no-extra-parens': 'off', 50 | // 'no-extra-semi': 'error', // eslint:recommended 51 | // 'no-func-assign': 'error', // eslint:recommended 52 | // 'no-inner-declarations': 'error', // eslint:recommended 53 | // 'no-invalid-regexp': 'error', // eslint:recommended 54 | 'no-irregular-whitespace': 'error', // eslint:recommended 55 | // 'no-obj-calls': 'error', // eslint:recommended 56 | // 'no-prototype-builtins': 'off', 57 | // 'no-regex-spaces': 'error', // eslint:recommended 58 | // 'no-sparse-arrays': 'error', // eslint:recommended 59 | // 'no-template-curly-in-string': 'off', 60 | 'no-unexpected-multiline': 'error', // eslint:recommended 61 | // 'no-unreachable': 'error', // eslint:recommended 62 | // 'no-unsafe-finally': 'error', // eslint:recommended 63 | // 'no-unsafe-negation': 'off', 64 | // 'use-isnan': 'error' // eslint:recommended 65 | // 'valid-typeof': 'error' // eslint:recommended 66 | 67 | 68 | // Best Practices 69 | // http://eslint.org/docs/rules/#best-practices 70 | // -------------------------------------------- 71 | 72 | // 'accessor-pairs': 'off', 73 | // 'array-callback-return': 'off', 74 | // 'block-scoped-var': 'off', 75 | // 'class-methods-use-this': 'off', 76 | // 'complexity': 'off', 77 | // 'consistent-return': 'off' 78 | // TODO(philipwalton): add an option to enforce braces with the 79 | // exception of simple, single-line if statements. 80 | 'curly': ['error', 'multi-line'], 81 | // 'default-case': 'off', 82 | // 'dot-location': 'off', 83 | // 'dot-notation': 'off', 84 | // 'eqeqeq': 'off', 85 | 'guard-for-in': 'error', 86 | // 'no-alert': 'off', 87 | 'no-caller': 'error', 88 | // 'no-case-declarations': 'error', // eslint:recommended 89 | // 'no-div-regex': 'off', 90 | // 'no-else-return': 'off', 91 | // 'no-empty-function': 'off', 92 | // 'no-empty-pattern': 'error', // eslint:recommended 93 | // 'no-eq-null': 'off', 94 | // 'no-eval': 'off', 95 | 'no-extend-native': 'error', 96 | 'no-extra-bind': 'error', 97 | // 'no-extra-label': 'off', 98 | // 'no-fallthrough': 'error', // eslint:recommended 99 | // 'no-floating-decimal': 'off', 100 | // 'no-global-assign': 'off', 101 | // 'no-implicit-coercion': 'off', 102 | // 'no-implicit-globals': 'off', 103 | // 'no-implied-eval': 'off', 104 | 'no-invalid-this': 'error', 105 | // 'no-iterator': 'off', 106 | // 'no-labels': 'off', 107 | // 'no-lone-blocks': 'off', 108 | // 'no-loop-func': 'off', 109 | // 'no-magic-numbers': 'off', 110 | 'no-multi-spaces': 'error', 111 | 'no-multi-str': 'error', 112 | // 'no-new': 'off', 113 | // 'no-new-func': 'off', 114 | 'no-new-wrappers': 'error', 115 | // 'no-octal': 'error', // eslint:recommended 116 | // 'no-octal-escape': 'off', 117 | // 'no-param-reassign': 'off', 118 | // 'no-proto': 'off', 119 | // 'no-redeclare': 'error', // eslint:recommended 120 | // 'no-restricted-properties': 'off', 121 | // 'no-return-assign': 'off', 122 | // 'no-script-url': 'off', 123 | // 'no-self-assign': 'error', // eslint:recommended 124 | // 'no-self-compare': 'off', 125 | // 'no-sequences': 'off', 126 | 'no-throw-literal': 'error', // eslint:recommended 127 | // 'no-unmodified-loop-condition': 'off', 128 | // 'no-unused-expressions': 'off', 129 | // 'no-unused-labels': 'error', // eslint:recommended 130 | // 'no-useless-call': 'off', 131 | // 'no-useless-concat': 'off', 132 | // 'no-useless-escape': 'off', 133 | // 'no-void': 'off', 134 | // 'no-warning-comments': 'off', 135 | 'no-with': 'error', 136 | 'prefer-promise-reject-errors': 'error', 137 | // 'radix': 'off', 138 | // 'require-await': 'off', 139 | // 'vars-on-top': 'off', 140 | // 'wrap-iife': 'off', 141 | // 'yoda': 'off', 142 | 143 | // Strict Mode 144 | // http://eslint.org/docs/rules/#strict-mode 145 | // ----------------------------------------- 146 | // 'strict': 'off', 147 | 148 | // Variables 149 | // http://eslint.org/docs/rules/#variables 150 | // --------------------------------------- 151 | // 'init-declarations': 'off', 152 | // 'no-catch-shadow': 'off', 153 | // 'no-delete-var': 'error', // eslint:recommended 154 | // 'no-label-var': 'off', 155 | // 'no-restricted-globals': 'off', 156 | // 'no-shadow': 'off', 157 | // 'no-shadow-restricted-names': 'off', 158 | // 'no-undef': 'error', // eslint:recommended 159 | // 'no-undef-init': 'off', 160 | // 'no-undefined': 'off', 161 | 'no-unused-vars': ['error', {args: 'none'}], // eslint:recommended 162 | // 'no-use-before-define': 'off', 163 | 164 | // Node.js and CommonJS 165 | // http://eslint.org/docs/rules/#nodejs-and-commonjs 166 | // ------------------------------------------------- 167 | // 'callback-return': 'off', 168 | // 'global-require': 'off', 169 | // 'handle-callback-err': 'off', 170 | // 'no-buffer-constructor': 'off', 171 | // 'no-mixed-requires': 'off', 172 | // 'no-new-require': 'off', 173 | // 'no-path-concat': 'off', 174 | // 'no-process-env': 'off', 175 | // 'no-process-exit': 'off', 176 | // 'no-restricted-modules': 'off', 177 | // 'no-sync': 'off', 178 | 179 | // Stylistic Issues 180 | // http://eslint.org/docs/rules/#stylistic-issues 181 | // ---------------------------------------------- 182 | 'array-bracket-newline': 'off', // eslint:recommended 183 | 'array-bracket-spacing': ['error', 'never'], 184 | 'array-element-newline': 'off', // eslint:recommended 185 | 'block-spacing': ['error', 'never'], 186 | 'brace-style': 'error', 187 | 'camelcase': ['error', {properties: 'never'}], 188 | // 'capitalized-comments': 'off', 189 | 'comma-dangle': ['error', 'always-multiline'], 190 | 'comma-spacing': 'error', 191 | 'comma-style': 'error', 192 | 'computed-property-spacing': 'error', 193 | // 'consistent-this': 'off', 194 | 'eol-last': 'error', 195 | 'func-call-spacing': 'error', 196 | // 'func-name-matching': 'off', 197 | // 'func-names': 'off', 198 | // 'func-style': 'off', 199 | // 'id-blacklist': 'off', 200 | // 'id-length': 'off', 201 | // 'id-match': 'off', 202 | 'indent': [ 203 | 'error', 2, { 204 | 'CallExpression': { 205 | 'arguments': 2, 206 | }, 207 | 'FunctionDeclaration': { 208 | 'body': 1, 209 | 'parameters': 2, 210 | }, 211 | 'FunctionExpression': { 212 | 'body': 1, 213 | 'parameters': 2, 214 | }, 215 | 'MemberExpression': 2, 216 | 'ObjectExpression': 1, 217 | 'SwitchCase': 1, 218 | 'ignoredNodes': [ 219 | 'ConditionalExpression', 220 | ], 221 | }, 222 | ], 223 | // 'jsx-quotes': 'off', 224 | 'key-spacing': 'error', 225 | 'keyword-spacing': 'error', 226 | // 'line-comment-position': 'off', 227 | 'linebreak-style': 'error', 228 | // 'lines-around-comment': 'off', 229 | // 'max-depth': 'off', 230 | 'max-len': ['error', { 231 | code: 80, 232 | tabWidth: 2, 233 | ignoreUrls: true, 234 | ignorePattern: 'goog\.(module|require)', 235 | }], 236 | // 'max-lines': 'off', 237 | // 'max-nested-callbacks': 'off', 238 | // 'max-params': 'off', 239 | // 'max-statements': 'off', 240 | // 'max-statements-per-line': 'off', 241 | // TODO(philipwalton): add a rule to enforce the operator appearing 242 | // at the end of the line. 243 | // 'multiline-ternary': 'off', 244 | 'new-cap': 'error', 245 | // 'new-parens': 'off', 246 | // 'newline-per-chained-call': 'off', 247 | 'no-array-constructor': 'error', 248 | // 'no-bitwise': 'off', 249 | // 'no-continue': 'off', 250 | // 'no-inline-comments': 'off', 251 | // 'no-lonely-if': 'off', 252 | // 'no-mixed-operators': 'off', 253 | 'no-mixed-spaces-and-tabs': 'error', // eslint:recommended 254 | // 'no-multi-assign': 'off', 255 | 'no-multiple-empty-lines': ['error', {max: 2}], 256 | // 'no-negated-condition': 'off', 257 | // 'no-nested-ternary': 'off', 258 | 'no-new-object': 'error', 259 | // 'no-plusplus': 'off', 260 | // 'no-restricted-syntax': 'off', 261 | 'no-tabs': 'error', 262 | // 'no-ternary': 'off', 263 | 'no-trailing-spaces': 'error', 264 | // 'no-underscore-dangle': 'off', 265 | // 'no-unneeded-ternary': 'off', 266 | // 'no-whitespace-before-property': 'off', 267 | // 'nonblock-statement-body-position': 'off', 268 | // 'object-curly-newline': 'off', 269 | 'object-curly-spacing': 'error', 270 | // 'object-property-newline': 'off', 271 | 'one-var': ['error', { 272 | var: 'never', 273 | let: 'never', 274 | const: 'never', 275 | }], 276 | // 'one-var-declaration-per-line': 'off', 277 | // 'operator-assignment': 'off', 278 | 'operator-linebreak': ['error', 'after'], 279 | 'padded-blocks': ['error', 'never'], 280 | // 'padding-line-between-statements': 'off', 281 | 'quote-props': ['error', 'consistent'], 282 | 'quotes': ['error', 'single', {allowTemplateLiterals: true}], 283 | 'semi': 'error', 284 | 'semi-spacing': 'error', 285 | // 'semi-style': 'off', 286 | // 'sort-keys': 'off', 287 | // 'sort-vars': 'off', 288 | 'space-before-blocks': 'error', 289 | 'space-before-function-paren': ['error', { 290 | asyncArrow: 'always', 291 | anonymous: 'never', 292 | named: 'never', 293 | }], 294 | // 'space-in-parens': 'off', 295 | // 'space-infix-ops': 'off', 296 | // 'space-unary-ops': 'off', 297 | 'spaced-comment': ['error', 'always'], 298 | 'switch-colon-spacing': 'error', 299 | // 'template-tag-spacing': 'off', 300 | // 'unicode-bom': 'off', 301 | // 'wrap-regex': 'off', 302 | 303 | // ECMAScript 6 304 | // http://eslint.org/docs/rules/#ecmascript-6 305 | // ------------------------------------------ 306 | // 'arrow-body-style': 'off', 307 | // TODO(philipwalton): technically arrow parens are optional but 308 | // recommended. ESLint doesn't support a *consistent* setting so 309 | // "always" is used. 310 | 'arrow-parens': ['error', 'always'], 311 | // 'arrow-spacing': 'off', 312 | 'constructor-super': 'error', // eslint:recommended 313 | 'generator-star-spacing': ['error', 'after'], 314 | // 'no-class-assign': 'off', 315 | // 'no-confusing-arrow': 'off', 316 | // 'no-const-assign': 'off', // eslint:recommended 317 | // 'no-dupe-class-members': 'off', // eslint:recommended 318 | // 'no-duplicate-imports': 'off', 319 | 'no-new-symbol': 'error', // eslint:recommended 320 | // 'no-restricted-imports': 'off', 321 | 'no-this-before-super': 'error', // eslint:recommended 322 | // 'no-useless-computed-key': 'off', 323 | // 'no-useless-constructor': 'off', 324 | // 'no-useless-rename': 'off', 325 | 'no-var': 'error', 326 | // 'object-shorthand': 'off', 327 | // 'prefer-arrow-callback': 'off', 328 | 'prefer-const': ['error', {destructuring: 'all'}], 329 | // 'prefer-destructuring': 'off', 330 | // 'prefer-numeric-literals': 'off', 331 | 'prefer-rest-params': 'error', 332 | 'prefer-spread': 'error', 333 | // 'prefer-template': 'off', 334 | // 'require-yield': 'error', // eslint:recommended 335 | 'rest-spread-spacing': 'error', 336 | // 'sort-imports': 'off', 337 | // 'symbol-description': 'off', 338 | // 'template-curly-spacing': 'off', 339 | 'yield-star-spacing': ['error', 'after'], 340 | }, 341 | }; 342 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "eslint-config-google", 3 | "version": "0.14.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/code-frame": { 8 | "version": "7.0.0", 9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", 10 | "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", 11 | "dev": true, 12 | "requires": { 13 | "@babel/highlight": "^7.0.0" 14 | } 15 | }, 16 | "@babel/highlight": { 17 | "version": "7.0.0", 18 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", 19 | "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", 20 | "dev": true, 21 | "requires": { 22 | "chalk": "^2.0.0", 23 | "esutils": "^2.0.2", 24 | "js-tokens": "^4.0.0" 25 | } 26 | }, 27 | "acorn": { 28 | "version": "6.1.1", 29 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", 30 | "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", 31 | "dev": true 32 | }, 33 | "acorn-jsx": { 34 | "version": "5.0.1", 35 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", 36 | "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", 37 | "dev": true 38 | }, 39 | "ajv": { 40 | "version": "6.10.0", 41 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", 42 | "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", 43 | "dev": true, 44 | "requires": { 45 | "fast-deep-equal": "^2.0.1", 46 | "fast-json-stable-stringify": "^2.0.0", 47 | "json-schema-traverse": "^0.4.1", 48 | "uri-js": "^4.2.2" 49 | } 50 | }, 51 | "ansi-escapes": { 52 | "version": "3.2.0", 53 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", 54 | "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", 55 | "dev": true 56 | }, 57 | "ansi-regex": { 58 | "version": "3.0.0", 59 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 60 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 61 | "dev": true 62 | }, 63 | "ansi-styles": { 64 | "version": "3.2.1", 65 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 66 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 67 | "dev": true, 68 | "requires": { 69 | "color-convert": "^1.9.0" 70 | } 71 | }, 72 | "argparse": { 73 | "version": "1.0.10", 74 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 75 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 76 | "dev": true, 77 | "requires": { 78 | "sprintf-js": "~1.0.2" 79 | } 80 | }, 81 | "astral-regex": { 82 | "version": "1.0.0", 83 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", 84 | "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", 85 | "dev": true 86 | }, 87 | "balanced-match": { 88 | "version": "1.0.0", 89 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 90 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 91 | "dev": true 92 | }, 93 | "brace-expansion": { 94 | "version": "1.1.11", 95 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 96 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 97 | "dev": true, 98 | "requires": { 99 | "balanced-match": "^1.0.0", 100 | "concat-map": "0.0.1" 101 | } 102 | }, 103 | "callsites": { 104 | "version": "3.1.0", 105 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 106 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 107 | "dev": true 108 | }, 109 | "chalk": { 110 | "version": "2.4.2", 111 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 112 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 113 | "dev": true, 114 | "requires": { 115 | "ansi-styles": "^3.2.1", 116 | "escape-string-regexp": "^1.0.5", 117 | "supports-color": "^5.3.0" 118 | } 119 | }, 120 | "chardet": { 121 | "version": "0.7.0", 122 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", 123 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", 124 | "dev": true 125 | }, 126 | "cli-cursor": { 127 | "version": "2.1.0", 128 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", 129 | "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", 130 | "dev": true, 131 | "requires": { 132 | "restore-cursor": "^2.0.0" 133 | } 134 | }, 135 | "cli-width": { 136 | "version": "2.2.0", 137 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", 138 | "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", 139 | "dev": true 140 | }, 141 | "color-convert": { 142 | "version": "1.9.3", 143 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 144 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 145 | "dev": true, 146 | "requires": { 147 | "color-name": "1.1.3" 148 | } 149 | }, 150 | "color-name": { 151 | "version": "1.1.3", 152 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 153 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 154 | "dev": true 155 | }, 156 | "concat-map": { 157 | "version": "0.0.1", 158 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 159 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 160 | "dev": true 161 | }, 162 | "cross-spawn": { 163 | "version": "6.0.5", 164 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 165 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 166 | "dev": true, 167 | "requires": { 168 | "nice-try": "^1.0.4", 169 | "path-key": "^2.0.1", 170 | "semver": "^5.5.0", 171 | "shebang-command": "^1.2.0", 172 | "which": "^1.2.9" 173 | } 174 | }, 175 | "debug": { 176 | "version": "4.1.1", 177 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 178 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 179 | "dev": true, 180 | "requires": { 181 | "ms": "^2.1.1" 182 | } 183 | }, 184 | "deep-is": { 185 | "version": "0.1.3", 186 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 187 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 188 | "dev": true 189 | }, 190 | "doctrine": { 191 | "version": "3.0.0", 192 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 193 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 194 | "dev": true, 195 | "requires": { 196 | "esutils": "^2.0.2" 197 | } 198 | }, 199 | "emoji-regex": { 200 | "version": "7.0.3", 201 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 202 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", 203 | "dev": true 204 | }, 205 | "escape-string-regexp": { 206 | "version": "1.0.5", 207 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 208 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 209 | "dev": true 210 | }, 211 | "eslint": { 212 | "version": "5.16.0", 213 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", 214 | "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", 215 | "dev": true, 216 | "requires": { 217 | "@babel/code-frame": "^7.0.0", 218 | "ajv": "^6.9.1", 219 | "chalk": "^2.1.0", 220 | "cross-spawn": "^6.0.5", 221 | "debug": "^4.0.1", 222 | "doctrine": "^3.0.0", 223 | "eslint-scope": "^4.0.3", 224 | "eslint-utils": "^1.3.1", 225 | "eslint-visitor-keys": "^1.0.0", 226 | "espree": "^5.0.1", 227 | "esquery": "^1.0.1", 228 | "esutils": "^2.0.2", 229 | "file-entry-cache": "^5.0.1", 230 | "functional-red-black-tree": "^1.0.1", 231 | "glob": "^7.1.2", 232 | "globals": "^11.7.0", 233 | "ignore": "^4.0.6", 234 | "import-fresh": "^3.0.0", 235 | "imurmurhash": "^0.1.4", 236 | "inquirer": "^6.2.2", 237 | "js-yaml": "^3.13.0", 238 | "json-stable-stringify-without-jsonify": "^1.0.1", 239 | "levn": "^0.3.0", 240 | "lodash": "^4.17.11", 241 | "minimatch": "^3.0.4", 242 | "mkdirp": "^0.5.1", 243 | "natural-compare": "^1.4.0", 244 | "optionator": "^0.8.2", 245 | "path-is-inside": "^1.0.2", 246 | "progress": "^2.0.0", 247 | "regexpp": "^2.0.1", 248 | "semver": "^5.5.1", 249 | "strip-ansi": "^4.0.0", 250 | "strip-json-comments": "^2.0.1", 251 | "table": "^5.2.3", 252 | "text-table": "^0.2.0" 253 | } 254 | }, 255 | "eslint-scope": { 256 | "version": "4.0.3", 257 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", 258 | "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", 259 | "dev": true, 260 | "requires": { 261 | "esrecurse": "^4.1.0", 262 | "estraverse": "^4.1.1" 263 | } 264 | }, 265 | "eslint-utils": { 266 | "version": "1.4.2", 267 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz", 268 | "integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==", 269 | "dev": true, 270 | "requires": { 271 | "eslint-visitor-keys": "^1.0.0" 272 | } 273 | }, 274 | "eslint-visitor-keys": { 275 | "version": "1.0.0", 276 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", 277 | "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", 278 | "dev": true 279 | }, 280 | "espree": { 281 | "version": "5.0.1", 282 | "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", 283 | "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", 284 | "dev": true, 285 | "requires": { 286 | "acorn": "^6.0.7", 287 | "acorn-jsx": "^5.0.0", 288 | "eslint-visitor-keys": "^1.0.0" 289 | } 290 | }, 291 | "esprima": { 292 | "version": "4.0.1", 293 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 294 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 295 | "dev": true 296 | }, 297 | "esquery": { 298 | "version": "1.0.1", 299 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", 300 | "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", 301 | "dev": true, 302 | "requires": { 303 | "estraverse": "^4.0.0" 304 | } 305 | }, 306 | "esrecurse": { 307 | "version": "4.2.1", 308 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", 309 | "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", 310 | "dev": true, 311 | "requires": { 312 | "estraverse": "^4.1.0" 313 | } 314 | }, 315 | "estraverse": { 316 | "version": "4.2.0", 317 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 318 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 319 | "dev": true 320 | }, 321 | "esutils": { 322 | "version": "2.0.2", 323 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 324 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 325 | "dev": true 326 | }, 327 | "external-editor": { 328 | "version": "3.0.3", 329 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", 330 | "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", 331 | "dev": true, 332 | "requires": { 333 | "chardet": "^0.7.0", 334 | "iconv-lite": "^0.4.24", 335 | "tmp": "^0.0.33" 336 | } 337 | }, 338 | "fast-deep-equal": { 339 | "version": "2.0.1", 340 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", 341 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", 342 | "dev": true 343 | }, 344 | "fast-json-stable-stringify": { 345 | "version": "2.0.0", 346 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 347 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", 348 | "dev": true 349 | }, 350 | "fast-levenshtein": { 351 | "version": "2.0.6", 352 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 353 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 354 | "dev": true 355 | }, 356 | "figures": { 357 | "version": "2.0.0", 358 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", 359 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", 360 | "dev": true, 361 | "requires": { 362 | "escape-string-regexp": "^1.0.5" 363 | } 364 | }, 365 | "file-entry-cache": { 366 | "version": "5.0.1", 367 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", 368 | "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", 369 | "dev": true, 370 | "requires": { 371 | "flat-cache": "^2.0.1" 372 | } 373 | }, 374 | "flat-cache": { 375 | "version": "2.0.1", 376 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", 377 | "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", 378 | "dev": true, 379 | "requires": { 380 | "flatted": "^2.0.0", 381 | "rimraf": "2.6.3", 382 | "write": "1.0.3" 383 | } 384 | }, 385 | "flatted": { 386 | "version": "2.0.0", 387 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz", 388 | "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==", 389 | "dev": true 390 | }, 391 | "fs.realpath": { 392 | "version": "1.0.0", 393 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 394 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 395 | "dev": true 396 | }, 397 | "functional-red-black-tree": { 398 | "version": "1.0.1", 399 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 400 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 401 | "dev": true 402 | }, 403 | "glob": { 404 | "version": "7.1.4", 405 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", 406 | "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", 407 | "dev": true, 408 | "requires": { 409 | "fs.realpath": "^1.0.0", 410 | "inflight": "^1.0.4", 411 | "inherits": "2", 412 | "minimatch": "^3.0.4", 413 | "once": "^1.3.0", 414 | "path-is-absolute": "^1.0.0" 415 | } 416 | }, 417 | "globals": { 418 | "version": "11.12.0", 419 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 420 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 421 | "dev": true 422 | }, 423 | "has-flag": { 424 | "version": "3.0.0", 425 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 426 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 427 | "dev": true 428 | }, 429 | "iconv-lite": { 430 | "version": "0.4.24", 431 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 432 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 433 | "dev": true, 434 | "requires": { 435 | "safer-buffer": ">= 2.1.2 < 3" 436 | } 437 | }, 438 | "ignore": { 439 | "version": "4.0.6", 440 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", 441 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", 442 | "dev": true 443 | }, 444 | "import-fresh": { 445 | "version": "3.0.0", 446 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.0.0.tgz", 447 | "integrity": "sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==", 448 | "dev": true, 449 | "requires": { 450 | "parent-module": "^1.0.0", 451 | "resolve-from": "^4.0.0" 452 | } 453 | }, 454 | "imurmurhash": { 455 | "version": "0.1.4", 456 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 457 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 458 | "dev": true 459 | }, 460 | "inflight": { 461 | "version": "1.0.6", 462 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 463 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 464 | "dev": true, 465 | "requires": { 466 | "once": "^1.3.0", 467 | "wrappy": "1" 468 | } 469 | }, 470 | "inherits": { 471 | "version": "2.0.3", 472 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 473 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 474 | "dev": true 475 | }, 476 | "inquirer": { 477 | "version": "6.3.1", 478 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz", 479 | "integrity": "sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==", 480 | "dev": true, 481 | "requires": { 482 | "ansi-escapes": "^3.2.0", 483 | "chalk": "^2.4.2", 484 | "cli-cursor": "^2.1.0", 485 | "cli-width": "^2.0.0", 486 | "external-editor": "^3.0.3", 487 | "figures": "^2.0.0", 488 | "lodash": "^4.17.11", 489 | "mute-stream": "0.0.7", 490 | "run-async": "^2.2.0", 491 | "rxjs": "^6.4.0", 492 | "string-width": "^2.1.0", 493 | "strip-ansi": "^5.1.0", 494 | "through": "^2.3.6" 495 | }, 496 | "dependencies": { 497 | "ansi-regex": { 498 | "version": "4.1.0", 499 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 500 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 501 | "dev": true 502 | }, 503 | "strip-ansi": { 504 | "version": "5.2.0", 505 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 506 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 507 | "dev": true, 508 | "requires": { 509 | "ansi-regex": "^4.1.0" 510 | } 511 | } 512 | } 513 | }, 514 | "is-fullwidth-code-point": { 515 | "version": "2.0.0", 516 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 517 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 518 | "dev": true 519 | }, 520 | "is-promise": { 521 | "version": "2.1.0", 522 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", 523 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", 524 | "dev": true 525 | }, 526 | "isexe": { 527 | "version": "2.0.0", 528 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 529 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 530 | "dev": true 531 | }, 532 | "js-tokens": { 533 | "version": "4.0.0", 534 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 535 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 536 | "dev": true 537 | }, 538 | "js-yaml": { 539 | "version": "3.13.1", 540 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", 541 | "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", 542 | "dev": true, 543 | "requires": { 544 | "argparse": "^1.0.7", 545 | "esprima": "^4.0.0" 546 | } 547 | }, 548 | "json-schema-traverse": { 549 | "version": "0.4.1", 550 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 551 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 552 | "dev": true 553 | }, 554 | "json-stable-stringify-without-jsonify": { 555 | "version": "1.0.1", 556 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 557 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 558 | "dev": true 559 | }, 560 | "levn": { 561 | "version": "0.3.0", 562 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 563 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 564 | "dev": true, 565 | "requires": { 566 | "prelude-ls": "~1.1.2", 567 | "type-check": "~0.3.2" 568 | } 569 | }, 570 | "lodash": { 571 | "version": "4.17.15", 572 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", 573 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", 574 | "dev": true 575 | }, 576 | "mimic-fn": { 577 | "version": "1.2.0", 578 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", 579 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", 580 | "dev": true 581 | }, 582 | "minimatch": { 583 | "version": "3.0.4", 584 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 585 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 586 | "dev": true, 587 | "requires": { 588 | "brace-expansion": "^1.1.7" 589 | } 590 | }, 591 | "minimist": { 592 | "version": "0.0.8", 593 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 594 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 595 | "dev": true 596 | }, 597 | "mkdirp": { 598 | "version": "0.5.1", 599 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 600 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 601 | "dev": true, 602 | "requires": { 603 | "minimist": "0.0.8" 604 | } 605 | }, 606 | "ms": { 607 | "version": "2.1.1", 608 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 609 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", 610 | "dev": true 611 | }, 612 | "mute-stream": { 613 | "version": "0.0.7", 614 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", 615 | "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", 616 | "dev": true 617 | }, 618 | "natural-compare": { 619 | "version": "1.4.0", 620 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 621 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 622 | "dev": true 623 | }, 624 | "nice-try": { 625 | "version": "1.0.5", 626 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 627 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", 628 | "dev": true 629 | }, 630 | "once": { 631 | "version": "1.4.0", 632 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 633 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 634 | "dev": true, 635 | "requires": { 636 | "wrappy": "1" 637 | } 638 | }, 639 | "onetime": { 640 | "version": "2.0.1", 641 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", 642 | "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", 643 | "dev": true, 644 | "requires": { 645 | "mimic-fn": "^1.0.0" 646 | } 647 | }, 648 | "optionator": { 649 | "version": "0.8.2", 650 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", 651 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", 652 | "dev": true, 653 | "requires": { 654 | "deep-is": "~0.1.3", 655 | "fast-levenshtein": "~2.0.4", 656 | "levn": "~0.3.0", 657 | "prelude-ls": "~1.1.2", 658 | "type-check": "~0.3.2", 659 | "wordwrap": "~1.0.0" 660 | } 661 | }, 662 | "os-tmpdir": { 663 | "version": "1.0.2", 664 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 665 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 666 | "dev": true 667 | }, 668 | "parent-module": { 669 | "version": "1.0.1", 670 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 671 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 672 | "dev": true, 673 | "requires": { 674 | "callsites": "^3.0.0" 675 | } 676 | }, 677 | "path-is-absolute": { 678 | "version": "1.0.1", 679 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 680 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 681 | "dev": true 682 | }, 683 | "path-is-inside": { 684 | "version": "1.0.2", 685 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 686 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 687 | "dev": true 688 | }, 689 | "path-key": { 690 | "version": "2.0.1", 691 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 692 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 693 | "dev": true 694 | }, 695 | "prelude-ls": { 696 | "version": "1.1.2", 697 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 698 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 699 | "dev": true 700 | }, 701 | "progress": { 702 | "version": "2.0.3", 703 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 704 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 705 | "dev": true 706 | }, 707 | "punycode": { 708 | "version": "2.1.1", 709 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 710 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 711 | "dev": true 712 | }, 713 | "regexpp": { 714 | "version": "2.0.1", 715 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", 716 | "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", 717 | "dev": true 718 | }, 719 | "resolve-from": { 720 | "version": "4.0.0", 721 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 722 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 723 | "dev": true 724 | }, 725 | "restore-cursor": { 726 | "version": "2.0.0", 727 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", 728 | "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", 729 | "dev": true, 730 | "requires": { 731 | "onetime": "^2.0.0", 732 | "signal-exit": "^3.0.2" 733 | } 734 | }, 735 | "rimraf": { 736 | "version": "2.6.3", 737 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", 738 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", 739 | "dev": true, 740 | "requires": { 741 | "glob": "^7.1.3" 742 | } 743 | }, 744 | "run-async": { 745 | "version": "2.3.0", 746 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", 747 | "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", 748 | "dev": true, 749 | "requires": { 750 | "is-promise": "^2.1.0" 751 | } 752 | }, 753 | "rxjs": { 754 | "version": "6.5.2", 755 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", 756 | "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==", 757 | "dev": true, 758 | "requires": { 759 | "tslib": "^1.9.0" 760 | } 761 | }, 762 | "safer-buffer": { 763 | "version": "2.1.2", 764 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 765 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 766 | "dev": true 767 | }, 768 | "semver": { 769 | "version": "5.7.0", 770 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", 771 | "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", 772 | "dev": true 773 | }, 774 | "shebang-command": { 775 | "version": "1.2.0", 776 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 777 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 778 | "dev": true, 779 | "requires": { 780 | "shebang-regex": "^1.0.0" 781 | } 782 | }, 783 | "shebang-regex": { 784 | "version": "1.0.0", 785 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 786 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 787 | "dev": true 788 | }, 789 | "signal-exit": { 790 | "version": "3.0.2", 791 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 792 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 793 | "dev": true 794 | }, 795 | "slice-ansi": { 796 | "version": "2.1.0", 797 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", 798 | "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", 799 | "dev": true, 800 | "requires": { 801 | "ansi-styles": "^3.2.0", 802 | "astral-regex": "^1.0.0", 803 | "is-fullwidth-code-point": "^2.0.0" 804 | } 805 | }, 806 | "sprintf-js": { 807 | "version": "1.0.3", 808 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 809 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 810 | "dev": true 811 | }, 812 | "string-width": { 813 | "version": "2.1.1", 814 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 815 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 816 | "dev": true, 817 | "requires": { 818 | "is-fullwidth-code-point": "^2.0.0", 819 | "strip-ansi": "^4.0.0" 820 | } 821 | }, 822 | "strip-ansi": { 823 | "version": "4.0.0", 824 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 825 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 826 | "dev": true, 827 | "requires": { 828 | "ansi-regex": "^3.0.0" 829 | } 830 | }, 831 | "strip-json-comments": { 832 | "version": "2.0.1", 833 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 834 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 835 | "dev": true 836 | }, 837 | "supports-color": { 838 | "version": "5.5.0", 839 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 840 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 841 | "dev": true, 842 | "requires": { 843 | "has-flag": "^3.0.0" 844 | } 845 | }, 846 | "table": { 847 | "version": "5.3.3", 848 | "resolved": "https://registry.npmjs.org/table/-/table-5.3.3.tgz", 849 | "integrity": "sha512-3wUNCgdWX6PNpOe3amTTPWPuF6VGvgzjKCaO1snFj0z7Y3mUPWf5+zDtxUVGispJkDECPmR29wbzh6bVMOHbcw==", 850 | "dev": true, 851 | "requires": { 852 | "ajv": "^6.9.1", 853 | "lodash": "^4.17.11", 854 | "slice-ansi": "^2.1.0", 855 | "string-width": "^3.0.0" 856 | }, 857 | "dependencies": { 858 | "ansi-regex": { 859 | "version": "4.1.0", 860 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 861 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 862 | "dev": true 863 | }, 864 | "string-width": { 865 | "version": "3.1.0", 866 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 867 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 868 | "dev": true, 869 | "requires": { 870 | "emoji-regex": "^7.0.1", 871 | "is-fullwidth-code-point": "^2.0.0", 872 | "strip-ansi": "^5.1.0" 873 | } 874 | }, 875 | "strip-ansi": { 876 | "version": "5.2.0", 877 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 878 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 879 | "dev": true, 880 | "requires": { 881 | "ansi-regex": "^4.1.0" 882 | } 883 | } 884 | } 885 | }, 886 | "text-table": { 887 | "version": "0.2.0", 888 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 889 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 890 | "dev": true 891 | }, 892 | "through": { 893 | "version": "2.3.8", 894 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 895 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 896 | "dev": true 897 | }, 898 | "tmp": { 899 | "version": "0.0.33", 900 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", 901 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 902 | "dev": true, 903 | "requires": { 904 | "os-tmpdir": "~1.0.2" 905 | } 906 | }, 907 | "tslib": { 908 | "version": "1.9.3", 909 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", 910 | "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", 911 | "dev": true 912 | }, 913 | "type-check": { 914 | "version": "0.3.2", 915 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 916 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 917 | "dev": true, 918 | "requires": { 919 | "prelude-ls": "~1.1.2" 920 | } 921 | }, 922 | "uri-js": { 923 | "version": "4.2.2", 924 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 925 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 926 | "dev": true, 927 | "requires": { 928 | "punycode": "^2.1.0" 929 | } 930 | }, 931 | "which": { 932 | "version": "1.3.1", 933 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 934 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 935 | "dev": true, 936 | "requires": { 937 | "isexe": "^2.0.0" 938 | } 939 | }, 940 | "wordwrap": { 941 | "version": "1.0.0", 942 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 943 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", 944 | "dev": true 945 | }, 946 | "wrappy": { 947 | "version": "1.0.2", 948 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 949 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 950 | "dev": true 951 | }, 952 | "write": { 953 | "version": "1.0.3", 954 | "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", 955 | "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", 956 | "dev": true, 957 | "requires": { 958 | "mkdirp": "^0.5.1" 959 | } 960 | } 961 | } 962 | } 963 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "eslint-config-google", 3 | "version": "0.14.0", 4 | "description": "ESLint shareable config for the Google style", 5 | "license": "Apache-2.0", 6 | "repository": "google/eslint-config-google", 7 | "author": "Google", 8 | "engines": { 9 | "node": ">=0.10.0" 10 | }, 11 | "scripts": { 12 | "test": "node test/test.js" 13 | }, 14 | "files": [ 15 | "index.js" 16 | ], 17 | "keywords": [ 18 | "google", 19 | "code", 20 | "quality", 21 | "style", 22 | "lint", 23 | "linter", 24 | "jscs", 25 | "jshint", 26 | "jslint", 27 | "eslint", 28 | "validate", 29 | "code style", 30 | "strict", 31 | "check", 32 | "checker", 33 | "verify", 34 | "enforce", 35 | "hint" 36 | ], 37 | "devDependencies": { 38 | "eslint": "^5.16.0" 39 | }, 40 | "peerDependencies": { 41 | "eslint": ">=5.16.0" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /test/test.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2016 Google Inc. All rights reserved. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | 'use strict'; 18 | 19 | const assert = require('assert'); 20 | const eslint = require('eslint'); 21 | const conf = require('../'); 22 | 23 | // The source files to lint. 24 | const repoFiles = [ 25 | 'index.js', 26 | 'test/test.js', 27 | ]; 28 | 29 | // Use the rules defined in this repo to test against. 30 | const eslintOpts = { 31 | useEslintrc: false, 32 | envs: ['node', 'es6'], 33 | parserOptions: {ecmaVersion: 2018}, 34 | rules: conf.rules, 35 | }; 36 | 37 | // Runs the linter on the repo files and asserts no errors were found. 38 | const report = new eslint.CLIEngine(eslintOpts).executeOnFiles(repoFiles); 39 | assert.equal(report.errorCount, 0); 40 | assert.equal(report.warningCount, 0); 41 | repoFiles.forEach((file, index) => { 42 | assert(report.results[index].filePath.endsWith(file)); 43 | }); 44 | --------------------------------------------------------------------------------