|  | 
 | # Licensed to the Apache Software Foundation (ASF) under one | 
 | # or more contributor license agreements.  See the NOTICE file | 
 | # distributed with this work for additional information | 
 | # regarding copyright ownership.  The ASF licenses this file | 
 | # to you under the Apache License, Version 2.0 (the | 
 | # "License"); you may not use this file except in compliance | 
 | # with the License.  You may obtain a copy of the License at | 
 | # | 
 | #   http://www.apache.org/licenses/LICENSE-2.0 | 
 | # | 
 | # Unless required by applicable law or agreed to in writing, | 
 | # software distributed under the License is distributed on an | 
 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
 | # KIND, either express or implied.  See the License for the | 
 | # specific language governing permissions and limitations | 
 | # under the License. | 
 |  | 
 | # Note: | 
 | # If eslint does not work in VSCode, please check: | 
 | # (1) Whether "@typescript-eslint/eslint-plugin" and "@typescript-eslint/parser" | 
 | # are npm installed locally. Should better in the same version. | 
 | # (2) Whether "VSCode ESlint extension" is installed. | 
 | # (3) If the project folder is not the root folder of your working space, please | 
 | # config the "VSCode ESlint extension" in "settings": | 
 | # ```json | 
 | # "eslint.workingDirectories": [{"mode": "auto"}] | 
 | # ``` | 
 | # Note that it should be "workingDirectories" rather than "WorkingDirectories". | 
 |  | 
 | root: true | 
 | rules: | 
 |     # Check the rules in: node_modules/@typescript-eslint/eslint-plugin/README.md | 
 |     no-console: | 
 |         - 2 | 
 |         - | 
 |             allow: | 
 |                 - "warn" | 
 |                 - "error" | 
 |     prefer-const: 1 | 
 |     no-constant-condition: 0 | 
 |     comma-dangle: 2 | 
 |     no-debugger: 2 | 
 |     no-dupe-keys: 2 | 
 |     no-empty-character-class: 2 | 
 |     no-ex-assign: 2 | 
 |     no-extra-boolean-cast: 0 | 
 |     no-func-assign: 2 | 
 |     no-inner-declarations: 2 | 
 |     no-invalid-regexp: 2 | 
 |     no-negated-in-lhs: 2 | 
 |     no-obj-calls: 2 | 
 |     no-sparse-arrays: 2 | 
 |     no-unreachable: 2 | 
 |     use-isnan: 2 | 
 |     valid-typeof: 2 | 
 |     block-scoped-var: 2 | 
 |     curly: | 
 |         - 2 | 
 |         - "all" | 
 |     eqeqeq: | 
 |         - 2 | 
 |         - "allow-null" | 
 |     guard-for-in: 2 | 
 |     no-else-return: 0 | 
 |     no-labels: | 
 |         - 2 | 
 |         - | 
 |             allowLoop: true | 
 |     no-eval: 2 | 
 |     no-extend-native: 2 | 
 |     no-extra-bind: 0 | 
 |     no-implied-eval: 2 | 
 |     no-iterator: 2 | 
 |     no-irregular-whitespace: 2 | 
 |     no-lone-blocks: 2 | 
 |     no-loop-func: 2 | 
 |     no-multi-str: 2 | 
 |     no-native-reassign: 2 | 
 |     no-new-wrappers: 2 | 
 |     no-octal: 2 | 
 |     no-octal-escape: 2 | 
 |     no-proto: 2 | 
 |     no-self-compare: 2 | 
 |     no-unneeded-ternary: 2 | 
 |     no-with: 2 | 
 |     radix: 2 | 
 |     wrap-iife: | 
 |         - 2 | 
 |         - "any" | 
 |     no-delete-var: 2 | 
 |     no-dupe-args: 2 | 
 |     no-duplicate-case: 2 | 
 |     no-label-var: 2 | 
 |     no-shadow-restricted-names: 2 | 
 |     no-undef: 2 | 
 |     no-undef-init: 2 | 
 |     "no-use-before-define": "off" | 
 |     "@typescript-eslint/no-use-before-define": 0 | 
 |     brace-style: | 
 |         - 2 | 
 |         - "stroustrup" | 
 |         - {} | 
 |     comma-spacing: | 
 |         - 2 | 
 |         - | 
 |             before: false | 
 |             after: true | 
 |     comma-style: | 
 |         - 2 | 
 |         - "last" | 
 |     new-parens: 2 | 
 |     no-array-constructor: 2 | 
 |     no-multi-spaces: | 
 |         - 1 | 
 |         - | 
 |             ignoreEOLComments: true | 
 |             exceptions: | 
 |                 Property: true | 
 |     no-new-object: 2 | 
 |     no-trailing-spaces: 2 | 
 |     no-extra-parens: | 
 |         - 2 | 
 |         - "functions" | 
 |     no-mixed-spaces-and-tabs: 2 | 
 |     one-var: | 
 |         - 2 | 
 |         - "never" | 
 |     operator-linebreak: | 
 |         - 2 | 
 |         - "before" | 
 |         - | 
 |             overrides: | 
 |                 "=": "after" | 
 |     "quotes": "off" | 
 |     "@typescript-eslint/quotes": | 
 |         - 2 | 
 |         - "single" | 
 |     "semi": "off" | 
 |     "@typescript-eslint/semi": | 
 |         - 2 | 
 |         - "always" | 
 |     semi-spacing: 2 | 
 |     keyword-spacing: 2 | 
 |     key-spacing: | 
 |         - 2 | 
 |         - | 
 |             beforeColon: false | 
 |             afterColon: true | 
 |     "space-before-function-paren": "off" | 
 |     "@typescript-eslint/space-before-function-paren": | 
 |         - 2 | 
 |         - | 
 |             anonymous: "always" | 
 |             named: "never" | 
 |     space-before-blocks: | 
 |         - 2 | 
 |         - "always" | 
 |     computed-property-spacing: | 
 |         - 2 | 
 |         - "never" | 
 |     space-in-parens: | 
 |         - 2 | 
 |         - "never" | 
 |     space-unary-ops: 2 | 
 |     spaced-comment: "error" | 
 |  | 
 |     max-nested-callbacks: | 
 |         - 1 | 
 |         - 5 | 
 |     max-depth: | 
 |         - 1 | 
 |         - 6 | 
 |     max-len: | 
 |         - 2 | 
 |         - 120 | 
 |         - 4 | 
 |         - | 
 |             ignoreUrls: true | 
 |             ignoreComments: true | 
 |     max-params: | 
 |         - 1 | 
 |         - 15 | 
 |  | 
 |     space-infix-ops: 2 | 
 |     dot-notation: | 
 |         - 2 | 
 |         - | 
 |             allowKeywords: true | 
 |             allowPattern: "^catch$" | 
 |  | 
 |     arrow-spacing: 2 | 
 |     constructor-super: 2 | 
 |     no-confusing-arrow: | 
 |         - 2 | 
 |         - | 
 |             allowParens: true | 
 |     no-class-assign: 2 | 
 |     no-const-assign: 2 | 
 |     # no-dupe-class-members: 2 | 
 |     no-this-before-super: 0 | 
 |     no-var: 2 | 
 |     no-duplicate-imports: 2 | 
 |     prefer-rest-params: 0 | 
 |     unicode-bom: 2 | 
 |     max-statements-per-line: 2 | 
 |  | 
 |     no-useless-constructor: 0 | 
 |  | 
 |     "func-call-spacing": "off" | 
 |     "@typescript-eslint/func-call-spacing": "error" | 
 |  | 
 |     "no-unused-vars": "off" | 
 |     "@typescript-eslint/no-unused-vars": | 
 |         - 1 | 
 |         - | 
 |             vars: "local" | 
 |             args: "none" | 
 |     # Avoid dangerous usage of globals. | 
 |     "no-restricted-globals": | 
 |         - 2 | 
 |         - "event" | 
 |         - "name" | 
 |         - "length" | 
 |         - "orientation" | 
 |         - "top" | 
 |         - "parent" | 
 |         - "location" | 
 |         - "closed" |