@@ -12,9 +12,7 @@ tab_width = 4
 | 
			
		||||
trim_trailing_whitespace = true
 | 
			
		||||
 | 
			
		||||
[*.json]
 | 
			
		||||
indent_size = 2
 | 
			
		||||
indent_style = space
 | 
			
		||||
 | 
			
		||||
[*.yml]
 | 
			
		||||
indent_size = 2
 | 
			
		||||
indent_style = space
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								.github/workflows/publish.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								.github/workflows/publish.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
name: Publish
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  create:
 | 
			
		||||
    tags:
 | 
			
		||||
      - v*
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  build:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
      - uses: actions/setup-node@v1
 | 
			
		||||
        with:
 | 
			
		||||
          node-version: '13.x'
 | 
			
		||||
      - run: yarn install
 | 
			
		||||
      - run: yarn run build
 | 
			
		||||
      - run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_AUTH_TOKEN }}" > ~/.npmrc
 | 
			
		||||
      - run: npm publish
 | 
			
		||||
@@ -1,19 +0,0 @@
 | 
			
		||||
image: "node:latest"
 | 
			
		||||
 | 
			
		||||
cache:
 | 
			
		||||
  paths:
 | 
			
		||||
    - node_modules/
 | 
			
		||||
 | 
			
		||||
job-publish:
 | 
			
		||||
  only:
 | 
			
		||||
    - tags
 | 
			
		||||
 | 
			
		||||
  before_script:
 | 
			
		||||
    - curl -o- -L https://yarnpkg.com/install.sh | bash
 | 
			
		||||
    - export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH"
 | 
			
		||||
 | 
			
		||||
  script:
 | 
			
		||||
    - yarn install
 | 
			
		||||
    - yarn run build
 | 
			
		||||
    - echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc
 | 
			
		||||
    - npm publish
 | 
			
		||||
							
								
								
									
										55
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										55
									
								
								README.md
									
									
									
									
									
								
							@@ -1 +1,56 @@
 | 
			
		||||
# Personal ESLint configuration
 | 
			
		||||
 | 
			
		||||
## Configurations
 | 
			
		||||
 | 
			
		||||
* `javascript`
 | 
			
		||||
* `typescript`
 | 
			
		||||
* `vue-javascript`
 | 
			
		||||
* `vue-typescript`
 | 
			
		||||
 | 
			
		||||
## Example
 | 
			
		||||
 | 
			
		||||
* Install dependencies:
 | 
			
		||||
 | 
			
		||||
```shell script
 | 
			
		||||
npm install --save-dev @typescript-eslint/eslint-plugin @typescript-eslint/parser         \
 | 
			
		||||
                       @valentineus/eslint-config eslint eslint-plugin-eslint-comments    \
 | 
			
		||||
                       eslint-plugin-import eslint-plugin-security eslint-plugin-sonarjs  \
 | 
			
		||||
                       eslint-plugin-unicorn eslint-plugin-vue
 | 
			
		||||
 
 | 
			
		||||
# or
 | 
			
		||||
yarn add --dev @typescript-eslint/eslint-plugin @typescript-eslint/parser         \
 | 
			
		||||
               @valentineus/eslint-config eslint eslint-plugin-eslint-comments    \
 | 
			
		||||
               eslint-plugin-import eslint-plugin-security eslint-plugin-sonarjs  \
 | 
			
		||||
               eslint-plugin-unicorn eslint-plugin-vue
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* Create config file:
 | 
			
		||||
 | 
			
		||||
```json
 | 
			
		||||
{
 | 
			
		||||
  "env": {
 | 
			
		||||
    "browser": true,
 | 
			
		||||
    "es6": true
 | 
			
		||||
  },
 | 
			
		||||
  "extends": [
 | 
			
		||||
    "@valentineus/eslint-config/vue-typescript"
 | 
			
		||||
  ],
 | 
			
		||||
  "globals": {
 | 
			
		||||
    "Atomics": "readonly",
 | 
			
		||||
    "SharedArrayBuffer": "readonly"
 | 
			
		||||
  },
 | 
			
		||||
  "parserOptions": {
 | 
			
		||||
    "createDefaultProgram": true,
 | 
			
		||||
    "ecmaVersion": 2020,
 | 
			
		||||
    "project": "tsconfig.json",
 | 
			
		||||
    "sourceType": "module",
 | 
			
		||||
    "tsconfigRootDir": "."
 | 
			
		||||
  },
 | 
			
		||||
  "rules": {}
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## License
 | 
			
		||||
 | 
			
		||||
[Apache-2.0](LICENSE.txt).
 | 
			
		||||
Copyright (c) [Valentin Popov](mailto:info@valentineus.link).
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										65
									
								
								ROADMAP.md
									
									
									
									
									
								
							
							
						
						
									
										65
									
								
								ROADMAP.md
									
									
									
									
									
								
							@@ -331,7 +331,7 @@
 | 
			
		||||
- [ ] "no-unused-modules"
 | 
			
		||||
- [ ] "no-useless-path-segments"
 | 
			
		||||
- [X] "no-webpack-loader-syntax"
 | 
			
		||||
- [ ] "order"
 | 
			
		||||
- [X] "order"
 | 
			
		||||
- [ ] "prefer-default-export"
 | 
			
		||||
- [ ] "unambiguous"
 | 
			
		||||
 | 
			
		||||
@@ -353,31 +353,31 @@
 | 
			
		||||
 | 
			
		||||
## SonarJS
 | 
			
		||||
 | 
			
		||||
- [ ] "cognitive-complexity"
 | 
			
		||||
- [ ] "max-switch-cases"
 | 
			
		||||
- [ ] "no-all-duplicated-branches"
 | 
			
		||||
- [ ] "no-collapsible-if"
 | 
			
		||||
- [ ] "no-collection-size-mischeck"
 | 
			
		||||
- [ ] "no-duplicate-string"
 | 
			
		||||
- [ ] "no-duplicated-branches"
 | 
			
		||||
- [ ] "no-element-overwrite"
 | 
			
		||||
- [ ] "no-extra-arguments"
 | 
			
		||||
- [ ] "no-identical-conditions"
 | 
			
		||||
- [ ] "no-identical-expressions"
 | 
			
		||||
- [ ] "no-identical-functions"
 | 
			
		||||
- [ ] "no-inverted-boolean-check"
 | 
			
		||||
- [ ] "no-one-iteration-loop"
 | 
			
		||||
- [ ] "no-redundant-boolean"
 | 
			
		||||
- [ ] "no-redundant-jump"
 | 
			
		||||
- [ ] "no-same-line-conditional"
 | 
			
		||||
- [ ] "no-small-switch"
 | 
			
		||||
- [ ] "no-unused-collection"
 | 
			
		||||
- [ ] "no-use-of-empty-return-value"
 | 
			
		||||
- [ ] "no-useless-catch"
 | 
			
		||||
- [ ] "prefer-immediate-return"
 | 
			
		||||
- [ ] "prefer-object-literal"
 | 
			
		||||
- [ ] "prefer-single-boolean-return"
 | 
			
		||||
- [ ] "prefer-while"
 | 
			
		||||
- [X] "cognitive-complexity"
 | 
			
		||||
- [X] "max-switch-cases"
 | 
			
		||||
- [X] "no-all-duplicated-branches"
 | 
			
		||||
- [X] "no-collapsible-if"
 | 
			
		||||
- [X] "no-collection-size-mischeck"
 | 
			
		||||
- [X] "no-duplicate-string"
 | 
			
		||||
- [X] "no-duplicated-branches"
 | 
			
		||||
- [X] "no-element-overwrite"
 | 
			
		||||
- [X] "no-extra-arguments"
 | 
			
		||||
- [X] "no-identical-conditions"
 | 
			
		||||
- [X] "no-identical-expressions"
 | 
			
		||||
- [X] "no-identical-functions"
 | 
			
		||||
- [X] "no-inverted-boolean-check"
 | 
			
		||||
- [X] "no-one-iteration-loop"
 | 
			
		||||
- [X] "no-redundant-boolean"
 | 
			
		||||
- [X] "no-redundant-jump"
 | 
			
		||||
- [X] "no-same-line-conditional"
 | 
			
		||||
- [X] "no-small-switch"
 | 
			
		||||
- [X] "no-unused-collection"
 | 
			
		||||
- [X] "no-use-of-empty-return-value"
 | 
			
		||||
- [X] "no-useless-catch"
 | 
			
		||||
- [X] "prefer-immediate-return"
 | 
			
		||||
- [X] "prefer-object-literal"
 | 
			
		||||
- [X] "prefer-single-boolean-return"
 | 
			
		||||
- [X] "prefer-while"
 | 
			
		||||
 | 
			
		||||
## TypeScript
 | 
			
		||||
 | 
			
		||||
@@ -389,6 +389,7 @@
 | 
			
		||||
- [ ] "ban-types"
 | 
			
		||||
- [ ] "brace-style"
 | 
			
		||||
- [ ] "camelcase"
 | 
			
		||||
- [X] "class-literal-property-style"
 | 
			
		||||
- [ ] "class-name-casing"
 | 
			
		||||
- [X] "comma-spacing"
 | 
			
		||||
- [ ] "consistent-type-assertions"
 | 
			
		||||
@@ -406,6 +407,7 @@
 | 
			
		||||
- [ ] "member-ordering"
 | 
			
		||||
- [ ] "naming-convention"
 | 
			
		||||
- [ ] "no-array-constructor"
 | 
			
		||||
- [X] "no-base-to-string"
 | 
			
		||||
- [ ] "no-dupe-class-members"
 | 
			
		||||
- [ ] "no-dynamic-delete"
 | 
			
		||||
- [ ] "no-empty-function"
 | 
			
		||||
@@ -431,10 +433,13 @@
 | 
			
		||||
- [ ] "no-throw-literal"
 | 
			
		||||
- [X] "no-type-alias"
 | 
			
		||||
- [ ] "no-unnecessary-boolean-literal-compare"
 | 
			
		||||
- [ ] "no-unnecessary-condition"
 | 
			
		||||
- [X] "no-unnecessary-condition"
 | 
			
		||||
- [ ] "no-unnecessary-qualifier"
 | 
			
		||||
- [ ] "no-unnecessary-type-arguments"
 | 
			
		||||
- [ ] "no-unnecessary-type-assertion"
 | 
			
		||||
- [X] "no-unnecessary-type-assertion"
 | 
			
		||||
- [X] "no-unsafe-call"
 | 
			
		||||
- [X] "no-unsafe-member-access"
 | 
			
		||||
- [X] "no-unsafe-return"
 | 
			
		||||
- [X] "no-untyped-public-signature"
 | 
			
		||||
- [ ] "no-unused-expressions"
 | 
			
		||||
- [X] "no-unused-vars"
 | 
			
		||||
@@ -450,6 +455,7 @@
 | 
			
		||||
- [ ] "prefer-nullish-coalescing"
 | 
			
		||||
- [ ] "prefer-optional-chain"
 | 
			
		||||
- [ ] "prefer-readonly"
 | 
			
		||||
- [X] "prefer-readonly-parameter-types"
 | 
			
		||||
- [ ] "prefer-regexp-exec"
 | 
			
		||||
- [ ] "prefer-string-starts-ends-with"
 | 
			
		||||
- [ ] "promise-function-async"
 | 
			
		||||
@@ -507,9 +513,11 @@
 | 
			
		||||
- [ ] "prefer-negative-index"
 | 
			
		||||
- [ ] "prefer-node-append"
 | 
			
		||||
- [ ] "prefer-node-remove"
 | 
			
		||||
- [X] "prefer-number-properties"
 | 
			
		||||
- [ ] "prefer-query-selector"
 | 
			
		||||
- [ ] "prefer-reflect-apply"
 | 
			
		||||
- [ ] "prefer-replace-all"
 | 
			
		||||
- [X] "prefer-set-has"
 | 
			
		||||
- [ ] "prefer-spread"
 | 
			
		||||
- [ ] "prefer-starts-ends-with"
 | 
			
		||||
- [ ] "prefer-string-slice"
 | 
			
		||||
@@ -517,7 +525,6 @@
 | 
			
		||||
- [ ] "prefer-trim-start-end"
 | 
			
		||||
- [ ] "prefer-type-error"
 | 
			
		||||
- [X] "prevent-abbreviations"
 | 
			
		||||
- [ ] "regex-shorthand"
 | 
			
		||||
- [ ] "throw-new-error"
 | 
			
		||||
 | 
			
		||||
## Vue
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										18
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								package.json
									
									
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "@valentineus/eslint-config",
 | 
			
		||||
  "version": "0.0.13",
 | 
			
		||||
  "version": "0.0.14",
 | 
			
		||||
  "description": "Personal ESLint configuration",
 | 
			
		||||
  "main": "index.js",
 | 
			
		||||
  "repository": "git@code.valentineus.link:eslint-config.git",
 | 
			
		||||
@@ -13,30 +13,30 @@
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@rollup/plugin-json": "^4.0.2",
 | 
			
		||||
    "@rollup/plugin-typescript": "^3.0.0",
 | 
			
		||||
    "@typescript-eslint/eslint-plugin": "^2.20.0",
 | 
			
		||||
    "@typescript-eslint/parser": "^2.20.0",
 | 
			
		||||
    "@typescript-eslint/eslint-plugin": "^2.25.0",
 | 
			
		||||
    "@typescript-eslint/parser": "^2.25.0",
 | 
			
		||||
    "eslint": "^6.8.0",
 | 
			
		||||
    "eslint-plugin-eslint-comments": "^3.1.2",
 | 
			
		||||
    "eslint-plugin-import": "^2.20.1",
 | 
			
		||||
    "eslint-plugin-security": "^1.4.0",
 | 
			
		||||
    "eslint-plugin-sonarjs": "^0.5.0",
 | 
			
		||||
    "eslint-plugin-unicorn": "^16.1.1",
 | 
			
		||||
    "eslint-plugin-vue": "^6.2.1",
 | 
			
		||||
    "eslint-plugin-unicorn": "^18.0.0",
 | 
			
		||||
    "eslint-plugin-vue": "^6.2.2",
 | 
			
		||||
    "rollup": "^1.31.1",
 | 
			
		||||
    "rollup-plugin-terser": "^5.2.0",
 | 
			
		||||
    "tslib": "^1.10.0",
 | 
			
		||||
    "typescript": "^3.7.5"
 | 
			
		||||
  },
 | 
			
		||||
  "peerDependencies": {
 | 
			
		||||
    "@typescript-eslint/eslint-plugin": "^2.19.0",
 | 
			
		||||
    "@typescript-eslint/parser": "^2.19.0",
 | 
			
		||||
    "@typescript-eslint/eslint-plugin": "^2.25.0",
 | 
			
		||||
    "@typescript-eslint/parser": "^2.25.0",
 | 
			
		||||
    "eslint": "^6.8.0",
 | 
			
		||||
    "eslint-plugin-eslint-comments": "^3.1.2",
 | 
			
		||||
    "eslint-plugin-import": "^2.20.1",
 | 
			
		||||
    "eslint-plugin-security": "^1.4.0",
 | 
			
		||||
    "eslint-plugin-sonarjs": "^0.5.0",
 | 
			
		||||
    "eslint-plugin-unicorn": "^16.1.1",
 | 
			
		||||
    "eslint-plugin-vue": "^6.1.2"
 | 
			
		||||
    "eslint-plugin-unicorn": "^18.0.0",
 | 
			
		||||
    "eslint-plugin-vue": "^6.2.2"
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
import rComments from "./rules/eslint-comments/default.json";
 | 
			
		||||
import rDefault from "./rules/javascript/default.json";
 | 
			
		||||
import rImport from "./rules/import/default.json";
 | 
			
		||||
import rDefault from "./rules/javascript/default.json";
 | 
			
		||||
import rSecurity from "./rules/security/default.json";
 | 
			
		||||
import rSonarJS from "./rules/sonarjs/default.json";
 | 
			
		||||
import rUnicorn from "./rules/unicorn/default.json";
 | 
			
		||||
 
 | 
			
		||||
@@ -13,5 +13,30 @@
 | 
			
		||||
  ],
 | 
			
		||||
  "import/no-webpack-loader-syntax": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "import/order": [
 | 
			
		||||
    "error",
 | 
			
		||||
    {
 | 
			
		||||
      "alphabetize": {
 | 
			
		||||
        "caseInsensitive": false,
 | 
			
		||||
        "order": "asc"
 | 
			
		||||
      },
 | 
			
		||||
      "groups": [
 | 
			
		||||
        [
 | 
			
		||||
          "builtin",
 | 
			
		||||
          "external"
 | 
			
		||||
        ],
 | 
			
		||||
        [
 | 
			
		||||
          "internal",
 | 
			
		||||
          "parent",
 | 
			
		||||
          "sibling"
 | 
			
		||||
        ],
 | 
			
		||||
        [
 | 
			
		||||
          "index"
 | 
			
		||||
        ],
 | 
			
		||||
        "unknown"
 | 
			
		||||
      ],
 | 
			
		||||
      "newlines-between": "always"
 | 
			
		||||
    }
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1,80 @@
 | 
			
		||||
{}
 | 
			
		||||
{
 | 
			
		||||
  "sonarjs/cognitive-complexity": [
 | 
			
		||||
    "warn",
 | 
			
		||||
    25
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/max-switch-cases": [
 | 
			
		||||
    "warn",
 | 
			
		||||
    30
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/no-all-duplicated-branches": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/no-collapsible-if": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/no-collection-size-mischeck": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/no-duplicate-string": [
 | 
			
		||||
    "warn",
 | 
			
		||||
    5
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/no-duplicated-branches": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/no-element-overwrite": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/no-extra-arguments": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/no-identical-conditions": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/no-identical-expressions": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/no-identical-functions": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/no-inverted-boolean-check": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/no-one-iteration-loop": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/no-redundant-boolean": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/no-redundant-jump": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/no-same-line-conditional": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/no-small-switch": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/no-unused-collection": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/no-use-of-empty-return-value": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/no-useless-catch": [
 | 
			
		||||
    "warn"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/prefer-immediate-return": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/prefer-object-literal": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/prefer-single-boolean-return": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "sonarjs/prefer-while": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,10 @@
 | 
			
		||||
  "@typescript-eslint/await-thenable": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "@typescript-eslint/class-literal-property-style": [
 | 
			
		||||
    "error",
 | 
			
		||||
    "getters"
 | 
			
		||||
  ],
 | 
			
		||||
  "@typescript-eslint/comma-spacing": [
 | 
			
		||||
    "error",
 | 
			
		||||
    {
 | 
			
		||||
@@ -64,6 +68,9 @@
 | 
			
		||||
      "prefixWithI": "always"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "@typescript-eslint/no-base-to-string": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "@typescript-eslint/no-empty-interface": [
 | 
			
		||||
    "warn",
 | 
			
		||||
    {
 | 
			
		||||
@@ -73,7 +80,7 @@
 | 
			
		||||
  "@typescript-eslint/no-explicit-any": [
 | 
			
		||||
    "warn",
 | 
			
		||||
    {
 | 
			
		||||
      "fixToUnknown": false,
 | 
			
		||||
      "fixToUnknown": true,
 | 
			
		||||
      "ignoreRestArgs": false
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
@@ -115,6 +122,26 @@
 | 
			
		||||
      "allowTupleTypes": "in-unions-and-intersections"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "@typescript-eslint/no-unnecessary-condition": [
 | 
			
		||||
    "error",
 | 
			
		||||
    {
 | 
			
		||||
      "allowConstantLoopConditions": false,
 | 
			
		||||
      "checkArrayPredicates": true,
 | 
			
		||||
      "ignoreRhs": true
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "@typescript-eslint/no-unnecessary-type-assertion": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "@typescript-eslint/no-unsafe-call": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "@typescript-eslint/no-unsafe-member-access": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "@typescript-eslint/no-unsafe-return": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "@typescript-eslint/no-untyped-public-signature": [
 | 
			
		||||
    "warn",
 | 
			
		||||
    {
 | 
			
		||||
@@ -151,6 +178,12 @@
 | 
			
		||||
  "@typescript-eslint/no-var-requires": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "@typescript-eslint/prefer-readonly-parameter-types": [
 | 
			
		||||
    "error",
 | 
			
		||||
    {
 | 
			
		||||
      "checkParameterProperties": true
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "@typescript-eslint/quotes": [
 | 
			
		||||
    "error",
 | 
			
		||||
    "double",
 | 
			
		||||
@@ -188,6 +221,8 @@
 | 
			
		||||
  "@typescript-eslint/type-annotation-spacing": [
 | 
			
		||||
    "error",
 | 
			
		||||
    {
 | 
			
		||||
      "after": true,
 | 
			
		||||
      "before": true,
 | 
			
		||||
      "overrides": {
 | 
			
		||||
        "arrow": {
 | 
			
		||||
          "after": true,
 | 
			
		||||
@@ -196,6 +231,22 @@
 | 
			
		||||
        "colon": {
 | 
			
		||||
          "after": true,
 | 
			
		||||
          "before": false
 | 
			
		||||
        },
 | 
			
		||||
        "parameter": {
 | 
			
		||||
          "after": true,
 | 
			
		||||
          "before": true
 | 
			
		||||
        },
 | 
			
		||||
        "property": {
 | 
			
		||||
          "after": true,
 | 
			
		||||
          "before": true
 | 
			
		||||
        },
 | 
			
		||||
        "returnType": {
 | 
			
		||||
          "after": true,
 | 
			
		||||
          "before": true
 | 
			
		||||
        },
 | 
			
		||||
        "variable": {
 | 
			
		||||
          "after": true,
 | 
			
		||||
          "before": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
@@ -209,7 +260,8 @@
 | 
			
		||||
      "objectDestructuring": true,
 | 
			
		||||
      "parameter": true,
 | 
			
		||||
      "propertyDeclaration": true,
 | 
			
		||||
      "variableDeclaration": true
 | 
			
		||||
      "variableDeclaration": true,
 | 
			
		||||
      "variableDeclarationIgnoreFunction": false
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "comma-spacing": [
 | 
			
		||||
 
 | 
			
		||||
@@ -17,6 +17,12 @@
 | 
			
		||||
  "unicorn/no-console-spaces": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "unicorn/prefer-number-properties": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "unicorn/prefer-set-has": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ],
 | 
			
		||||
  "unicorn/prevent-abbreviations": [
 | 
			
		||||
    "error",
 | 
			
		||||
    {
 | 
			
		||||
@@ -31,5 +37,8 @@
 | 
			
		||||
      "replacements": {},
 | 
			
		||||
      "whitelist": {}
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "unicorn/string-content": [
 | 
			
		||||
    "error"
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,9 @@ module.exports = {
 | 
			
		||||
		"plugin:import/typescript",
 | 
			
		||||
	],
 | 
			
		||||
	"parser": "@typescript-eslint/parser",
 | 
			
		||||
	"parserOptions": {
 | 
			
		||||
		createDefaultProgram: true,
 | 
			
		||||
	},
 | 
			
		||||
	"plugins": [
 | 
			
		||||
		"@typescript-eslint",
 | 
			
		||||
	],
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,7 @@ module.exports = {
 | 
			
		||||
	],
 | 
			
		||||
	"parser": "vue-eslint-parser",
 | 
			
		||||
	"parserOptions": {
 | 
			
		||||
		createDefaultProgram: true,
 | 
			
		||||
		extraFileExtensions: [
 | 
			
		||||
			".vue",
 | 
			
		||||
		],
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										110
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										110
									
								
								yarn.lock
									
									
									
									
									
								
							@@ -65,40 +65,40 @@
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
 | 
			
		||||
  integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==
 | 
			
		||||
 | 
			
		||||
"@typescript-eslint/eslint-plugin@^2.20.0":
 | 
			
		||||
  version "2.20.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.20.0.tgz#a522d0e1e4898f7c9c6a8e1ed3579b60867693fa"
 | 
			
		||||
  integrity sha512-cimIdVDV3MakiGJqMXw51Xci6oEDEoPkvh8ggJe2IIzcc0fYqAxOXN6Vbeanahz6dLZq64W+40iUEc9g32FLDQ==
 | 
			
		||||
"@typescript-eslint/eslint-plugin@^2.25.0":
 | 
			
		||||
  version "2.25.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.25.0.tgz#0b60917332f20dcff54d0eb9be2a9e9f4c9fbd02"
 | 
			
		||||
  integrity sha512-W2YyMtjmlrOjtXc+FtTelVs9OhuR6OlYc4XKIslJ8PUJOqgYYAPRJhAqkYRQo3G4sjvG8jSodsNycEn4W2gHUw==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@typescript-eslint/experimental-utils" "2.20.0"
 | 
			
		||||
    eslint-utils "^1.4.3"
 | 
			
		||||
    "@typescript-eslint/experimental-utils" "2.25.0"
 | 
			
		||||
    functional-red-black-tree "^1.0.1"
 | 
			
		||||
    regexpp "^3.0.0"
 | 
			
		||||
    tsutils "^3.17.1"
 | 
			
		||||
 | 
			
		||||
"@typescript-eslint/experimental-utils@2.20.0":
 | 
			
		||||
  version "2.20.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.20.0.tgz#3b6fa5a6b8885f126d5a4280e0d44f0f41e73e32"
 | 
			
		||||
  integrity sha512-fEBy9xYrwG9hfBLFEwGW2lKwDRTmYzH3DwTmYbT+SMycmxAoPl0eGretnBFj/s+NfYBG63w/5c3lsvqqz5mYag==
 | 
			
		||||
"@typescript-eslint/experimental-utils@2.25.0":
 | 
			
		||||
  version "2.25.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.25.0.tgz#13691c4fe368bd377b1e5b1e4ad660b220bf7714"
 | 
			
		||||
  integrity sha512-0IZ4ZR5QkFYbaJk+8eJ2kYeA+1tzOE1sBjbwwtSV85oNWYUBep+EyhlZ7DLUCyhMUGuJpcCCFL0fDtYAP1zMZw==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@types/json-schema" "^7.0.3"
 | 
			
		||||
    "@typescript-eslint/typescript-estree" "2.20.0"
 | 
			
		||||
    "@typescript-eslint/typescript-estree" "2.25.0"
 | 
			
		||||
    eslint-scope "^5.0.0"
 | 
			
		||||
    eslint-utils "^2.0.0"
 | 
			
		||||
 | 
			
		||||
"@typescript-eslint/parser@^2.20.0":
 | 
			
		||||
  version "2.20.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.20.0.tgz#608e5bb06ba98a415b64ace994c79ab20f9772a9"
 | 
			
		||||
  integrity sha512-o8qsKaosLh2qhMZiHNtaHKTHyCHc3Triq6aMnwnWj7budm3xAY9owSZzV1uon5T9cWmJRJGzTFa90aex4m77Lw==
 | 
			
		||||
"@typescript-eslint/parser@^2.25.0":
 | 
			
		||||
  version "2.25.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.25.0.tgz#abfb3d999084824d9a756d9b9c0f36fba03adb76"
 | 
			
		||||
  integrity sha512-mccBLaBSpNVgp191CP5W+8U1crTyXsRziWliCqzj02kpxdjKMvFHGJbK33NroquH3zB/gZ8H511HEsJBa2fNEg==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    "@types/eslint-visitor-keys" "^1.0.0"
 | 
			
		||||
    "@typescript-eslint/experimental-utils" "2.20.0"
 | 
			
		||||
    "@typescript-eslint/typescript-estree" "2.20.0"
 | 
			
		||||
    "@typescript-eslint/experimental-utils" "2.25.0"
 | 
			
		||||
    "@typescript-eslint/typescript-estree" "2.25.0"
 | 
			
		||||
    eslint-visitor-keys "^1.1.0"
 | 
			
		||||
 | 
			
		||||
"@typescript-eslint/typescript-estree@2.20.0":
 | 
			
		||||
  version "2.20.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.20.0.tgz#90a0f5598826b35b966ca83483b1a621b1a4d0c9"
 | 
			
		||||
  integrity sha512-WlFk8QtI8pPaE7JGQGxU7nGcnk1ccKAJkhbVookv94ZcAef3m6oCE/jEDL6dGte3JcD7reKrA0o55XhBRiVT3A==
 | 
			
		||||
"@typescript-eslint/typescript-estree@2.25.0":
 | 
			
		||||
  version "2.25.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.25.0.tgz#b790497556734b7476fa7dd3fa539955a5c79e2c"
 | 
			
		||||
  integrity sha512-VUksmx5lDxSi6GfmwSK7SSoIKSw9anukWWNitQPqt58LuYrKalzsgeuignbqnB+rK/xxGlSsCy8lYnwFfB6YJg==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    debug "^4.1.1"
 | 
			
		||||
    eslint-visitor-keys "^1.1.0"
 | 
			
		||||
@@ -431,32 +431,27 @@ eslint-plugin-sonarjs@^0.5.0:
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.5.0.tgz#ce17b2daba65a874c2862213a9e38e8986ad7d7d"
 | 
			
		||||
  integrity sha512-XW5MnzlRjhXpIdbULC/qAdJYHWw3rRLws/DyawdlPU/IdVr9AmRK1r2LaCvabwKOAW2XYYSo3kDX58E4MrB7PQ==
 | 
			
		||||
 | 
			
		||||
eslint-plugin-unicorn@^16.1.1:
 | 
			
		||||
  version "16.1.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-16.1.1.tgz#012c598d71914ef30f5d386dd85110e59f2ef999"
 | 
			
		||||
  integrity sha512-IMxCsntb0T8s660Irc40gtzXtxuXHcOn36G9G8OYKfiseBD/kNrA1cNJhsJ0xQteDASGrFwqdzBsYEkUvczhOA==
 | 
			
		||||
eslint-plugin-unicorn@^18.0.0:
 | 
			
		||||
  version "18.0.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-18.0.0.tgz#94a8477d47f4d25fc931a27658dff44c0fcbc192"
 | 
			
		||||
  integrity sha512-2mk3Cz6H2LCsKSEmJ7Wmqm/XbMAQ55+PjSBFM2Yh1/A7uk2gryNNhdfbFDycsjs/ylqk0m7LJ4qPpK9OlP8f9A==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    ci-info "^2.0.0"
 | 
			
		||||
    clean-regexp "^1.0.0"
 | 
			
		||||
    eslint-ast-utils "^1.1.0"
 | 
			
		||||
    eslint-template-visitor "^1.1.0"
 | 
			
		||||
    import-modules "^2.0.0"
 | 
			
		||||
    lodash.camelcase "^4.3.0"
 | 
			
		||||
    lodash.defaultsdeep "^4.6.1"
 | 
			
		||||
    lodash.kebabcase "^4.1.1"
 | 
			
		||||
    lodash.snakecase "^4.1.1"
 | 
			
		||||
    lodash.upperfirst "^4.3.1"
 | 
			
		||||
    lodash "^4.17.15"
 | 
			
		||||
    read-pkg-up "^7.0.1"
 | 
			
		||||
    regexp-tree "^0.1.17"
 | 
			
		||||
    regexpp "^3.0.0"
 | 
			
		||||
    regexp-tree "^0.1.21"
 | 
			
		||||
    reserved-words "^0.1.2"
 | 
			
		||||
    safe-regex "^2.1.1"
 | 
			
		||||
    semver "^7.1.2"
 | 
			
		||||
    semver "^7.1.3"
 | 
			
		||||
 | 
			
		||||
eslint-plugin-vue@^6.2.1:
 | 
			
		||||
  version "6.2.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.2.1.tgz#ca802df5c33146aed1e56bb21d250c1abb6120a3"
 | 
			
		||||
  integrity sha512-MiIDOotoWseIfLIfGeDzF6sDvHkVvGd2JgkvjyHtN3q4RoxdAXrAMuI3SXTOKatljgacKwpNAYShmcKZa4yZzw==
 | 
			
		||||
eslint-plugin-vue@^6.2.2:
 | 
			
		||||
  version "6.2.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz#27fecd9a3a24789b0f111ecdd540a9e56198e0fe"
 | 
			
		||||
  integrity sha512-Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    natural-compare "^1.4.0"
 | 
			
		||||
    semver "^5.6.0"
 | 
			
		||||
@@ -486,6 +481,13 @@ eslint-utils@^1.4.3:
 | 
			
		||||
  dependencies:
 | 
			
		||||
    eslint-visitor-keys "^1.1.0"
 | 
			
		||||
 | 
			
		||||
eslint-utils@^2.0.0:
 | 
			
		||||
  version "2.0.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd"
 | 
			
		||||
  integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    eslint-visitor-keys "^1.1.0"
 | 
			
		||||
 | 
			
		||||
eslint-visitor-keys@^1.1.0:
 | 
			
		||||
  version "1.1.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2"
 | 
			
		||||
@@ -929,36 +931,11 @@ locate-path@^5.0.0:
 | 
			
		||||
  dependencies:
 | 
			
		||||
    p-locate "^4.1.0"
 | 
			
		||||
 | 
			
		||||
lodash.camelcase@^4.3.0:
 | 
			
		||||
  version "4.3.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
 | 
			
		||||
  integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
 | 
			
		||||
 | 
			
		||||
lodash.defaultsdeep@^4.6.1:
 | 
			
		||||
  version "4.6.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6"
 | 
			
		||||
  integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==
 | 
			
		||||
 | 
			
		||||
lodash.get@^4.4.2:
 | 
			
		||||
  version "4.4.2"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
 | 
			
		||||
  integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
 | 
			
		||||
 | 
			
		||||
lodash.kebabcase@^4.1.1:
 | 
			
		||||
  version "4.1.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36"
 | 
			
		||||
  integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY=
 | 
			
		||||
 | 
			
		||||
lodash.snakecase@^4.1.1:
 | 
			
		||||
  version "4.1.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d"
 | 
			
		||||
  integrity sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40=
 | 
			
		||||
 | 
			
		||||
lodash.upperfirst@^4.3.1:
 | 
			
		||||
  version "4.3.1"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce"
 | 
			
		||||
  integrity sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984=
 | 
			
		||||
 | 
			
		||||
lodash.zip@^4.2.0:
 | 
			
		||||
  version "4.2.0"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020"
 | 
			
		||||
@@ -1256,7 +1233,12 @@ read-pkg@^5.2.0:
 | 
			
		||||
    parse-json "^5.0.0"
 | 
			
		||||
    type-fest "^0.6.0"
 | 
			
		||||
 | 
			
		||||
regexp-tree@^0.1.17, regexp-tree@~0.1.1:
 | 
			
		||||
regexp-tree@^0.1.21:
 | 
			
		||||
  version "0.1.21"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.21.tgz#55e2246b7f7d36f1b461490942fa780299c400d7"
 | 
			
		||||
  integrity sha512-kUUXjX4AnqnR8KRTCrayAo9PzYMRKmVoGgaz2tBuz0MF3g1ZbGebmtW0yFHfFK9CmBjQKeYIgoL22pFLBJY7sw==
 | 
			
		||||
 | 
			
		||||
regexp-tree@~0.1.1:
 | 
			
		||||
  version "0.1.19"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.19.tgz#9326e91d8d1d23298dd33a78cf5e788f57cdc359"
 | 
			
		||||
  integrity sha512-mVeVLF/qg5qFbZSW0f7pXbuVX73dKIjuhOyC2JLKxzmpya75O4qLcvI9j0jp31Iz7IAkEVHa1UErDCAqaLKo5A==
 | 
			
		||||
@@ -1378,7 +1360,7 @@ semver@^6.1.2, semver@^6.3.0:
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
 | 
			
		||||
  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
 | 
			
		||||
 | 
			
		||||
semver@^7.1.2:
 | 
			
		||||
semver@^7.1.3:
 | 
			
		||||
  version "7.1.3"
 | 
			
		||||
  resolved "https://registry.yarnpkg.com/semver/-/semver-7.1.3.tgz#e4345ce73071c53f336445cfc19efb1c311df2a6"
 | 
			
		||||
  integrity sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user