code.gitea.io/gitea@v1.22.3/.eslintrc.yaml (about)

     1  root: true
     2  reportUnusedDisableDirectives: true
     3  
     4  ignorePatterns:
     5    - /web_src/js/vendor
     6    - /web_src/fomantic
     7  
     8  parserOptions:
     9    sourceType: module
    10    ecmaVersion: latest
    11  
    12  plugins:
    13    - "@eslint-community/eslint-plugin-eslint-comments"
    14    - "@stylistic/eslint-plugin-js"
    15    - eslint-plugin-array-func
    16    - eslint-plugin-github
    17    - eslint-plugin-i
    18    - eslint-plugin-jquery
    19    - eslint-plugin-no-jquery
    20    - eslint-plugin-no-use-extend-native
    21    - eslint-plugin-regexp
    22    - eslint-plugin-sonarjs
    23    - eslint-plugin-unicorn
    24    - eslint-plugin-vitest
    25    - eslint-plugin-vitest-globals
    26    - eslint-plugin-wc
    27  
    28  env:
    29    es2024: true
    30    node: true
    31  
    32  overrides:
    33    - files: ["web_src/**/*"]
    34      globals:
    35        __webpack_public_path__: true
    36        process: false # https://github.com/webpack/webpack/issues/15833
    37    - files: ["web_src/**/*", "docs/**/*"]
    38      env:
    39        browser: true
    40        node: false
    41    - files: ["web_src/**/*worker.*"]
    42      env:
    43        worker: true
    44      rules:
    45        no-restricted-globals: [2, addEventListener, blur, close, closed, confirm, defaultStatus, defaultstatus, error, event, external, find, focus, frameElement, frames, history, innerHeight, innerWidth, isFinite, isNaN, length, locationbar, menubar, moveBy, moveTo, name, onblur, onerror, onfocus, onload, onresize, onunload, open, opener, opera, outerHeight, outerWidth, pageXOffset, pageYOffset, parent, print, removeEventListener, resizeBy, resizeTo, screen, screenLeft, screenTop, screenX, screenY, scroll, scrollbars, scrollBy, scrollTo, scrollX, scrollY, status, statusbar, stop, toolbar, top]
    46    - files: ["*.config.*"]
    47      rules:
    48        i/no-unused-modules: [0]
    49    - files: ["**/*.test.*", "web_src/js/test/setup.js"]
    50      env:
    51        vitest-globals/env: true
    52      rules:
    53        vitest/consistent-test-filename: [0]
    54        vitest/consistent-test-it: [0]
    55        vitest/expect-expect: [0]
    56        vitest/max-expects: [0]
    57        vitest/max-nested-describe: [0]
    58        vitest/no-alias-methods: [0]
    59        vitest/no-commented-out-tests: [0]
    60        vitest/no-conditional-expect: [0]
    61        vitest/no-conditional-in-test: [0]
    62        vitest/no-conditional-tests: [0]
    63        vitest/no-disabled-tests: [0]
    64        vitest/no-done-callback: [0]
    65        vitest/no-duplicate-hooks: [0]
    66        vitest/no-focused-tests: [0]
    67        vitest/no-hooks: [0]
    68        vitest/no-identical-title: [2]
    69        vitest/no-interpolation-in-snapshots: [0]
    70        vitest/no-large-snapshots: [0]
    71        vitest/no-mocks-import: [0]
    72        vitest/no-restricted-matchers: [0]
    73        vitest/no-restricted-vi-methods: [0]
    74        vitest/no-standalone-expect: [0]
    75        vitest/no-test-prefixes: [0]
    76        vitest/no-test-return-statement: [0]
    77        vitest/prefer-called-with: [0]
    78        vitest/prefer-comparison-matcher: [0]
    79        vitest/prefer-each: [0]
    80        vitest/prefer-equality-matcher: [0]
    81        vitest/prefer-expect-resolves: [0]
    82        vitest/prefer-hooks-in-order: [0]
    83        vitest/prefer-hooks-on-top: [2]
    84        vitest/prefer-lowercase-title: [0]
    85        vitest/prefer-mock-promise-shorthand: [0]
    86        vitest/prefer-snapshot-hint: [0]
    87        vitest/prefer-spy-on: [0]
    88        vitest/prefer-strict-equal: [0]
    89        vitest/prefer-to-be: [0]
    90        vitest/prefer-to-be-falsy: [0]
    91        vitest/prefer-to-be-object: [0]
    92        vitest/prefer-to-be-truthy: [0]
    93        vitest/prefer-to-contain: [0]
    94        vitest/prefer-to-have-length: [0]
    95        vitest/prefer-todo: [0]
    96        vitest/require-hook: [0]
    97        vitest/require-to-throw-message: [0]
    98        vitest/require-top-level-describe: [0]
    99        vitest/valid-describe-callback: [2]
   100        vitest/valid-expect: [2]
   101        vitest/valid-title: [2]
   102    - files: ["web_src/js/modules/fetch.js", "web_src/js/standalone/**/*"]
   103      rules:
   104        no-restricted-syntax: [2, WithStatement, ForInStatement, LabeledStatement, SequenceExpression]
   105  
   106  rules:
   107    "@eslint-community/eslint-comments/disable-enable-pair": [2]
   108    "@eslint-community/eslint-comments/no-aggregating-enable": [2]
   109    "@eslint-community/eslint-comments/no-duplicate-disable": [2]
   110    "@eslint-community/eslint-comments/no-restricted-disable": [0]
   111    "@eslint-community/eslint-comments/no-unlimited-disable": [2]
   112    "@eslint-community/eslint-comments/no-unused-disable": [2]
   113    "@eslint-community/eslint-comments/no-unused-enable": [2]
   114    "@eslint-community/eslint-comments/no-use": [0]
   115    "@eslint-community/eslint-comments/require-description": [0]
   116    "@stylistic/js/array-bracket-newline": [0]
   117    "@stylistic/js/array-bracket-spacing": [2, never]
   118    "@stylistic/js/array-element-newline": [0]
   119    "@stylistic/js/arrow-parens": [2, always]
   120    "@stylistic/js/arrow-spacing": [2, {before: true, after: true}]
   121    "@stylistic/js/block-spacing": [0]
   122    "@stylistic/js/brace-style": [2, 1tbs, {allowSingleLine: true}]
   123    "@stylistic/js/comma-dangle": [2, always-multiline]
   124    "@stylistic/js/comma-spacing": [2, {before: false, after: true}]
   125    "@stylistic/js/comma-style": [2, last]
   126    "@stylistic/js/computed-property-spacing": [2, never]
   127    "@stylistic/js/dot-location": [2, property]
   128    "@stylistic/js/eol-last": [2]
   129    "@stylistic/js/function-call-spacing": [2, never]
   130    "@stylistic/js/function-call-argument-newline": [0]
   131    "@stylistic/js/function-paren-newline": [0]
   132    "@stylistic/js/generator-star-spacing": [0]
   133    "@stylistic/js/implicit-arrow-linebreak": [0]
   134    "@stylistic/js/indent": [2, 2, {ignoreComments: true, SwitchCase: 1}]
   135    "@stylistic/js/key-spacing": [2]
   136    "@stylistic/js/keyword-spacing": [2]
   137    "@stylistic/js/linebreak-style": [2, unix]
   138    "@stylistic/js/lines-around-comment": [0]
   139    "@stylistic/js/lines-between-class-members": [0]
   140    "@stylistic/js/max-len": [0]
   141    "@stylistic/js/max-statements-per-line": [0]
   142    "@stylistic/js/multiline-ternary": [0]
   143    "@stylistic/js/new-parens": [2]
   144    "@stylistic/js/newline-per-chained-call": [0]
   145    "@stylistic/js/no-confusing-arrow": [0]
   146    "@stylistic/js/no-extra-parens": [0]
   147    "@stylistic/js/no-extra-semi": [2]
   148    "@stylistic/js/no-floating-decimal": [0]
   149    "@stylistic/js/no-mixed-operators": [0]
   150    "@stylistic/js/no-mixed-spaces-and-tabs": [2]
   151    "@stylistic/js/no-multi-spaces": [2, {ignoreEOLComments: true, exceptions: {Property: true}}]
   152    "@stylistic/js/no-multiple-empty-lines": [2, {max: 1, maxEOF: 0, maxBOF: 0}]
   153    "@stylistic/js/no-tabs": [2]
   154    "@stylistic/js/no-trailing-spaces": [2]
   155    "@stylistic/js/no-whitespace-before-property": [2]
   156    "@stylistic/js/nonblock-statement-body-position": [2]
   157    "@stylistic/js/object-curly-newline": [0]
   158    "@stylistic/js/object-curly-spacing": [2, never]
   159    "@stylistic/js/object-property-newline": [0]
   160    "@stylistic/js/one-var-declaration-per-line": [0]
   161    "@stylistic/js/operator-linebreak": [2, after]
   162    "@stylistic/js/padded-blocks": [2, never]
   163    "@stylistic/js/padding-line-between-statements": [0]
   164    "@stylistic/js/quote-props": [0]
   165    "@stylistic/js/quotes": [2, single, {avoidEscape: true, allowTemplateLiterals: true}]
   166    "@stylistic/js/rest-spread-spacing": [2, never]
   167    "@stylistic/js/semi": [2, always, {omitLastInOneLineBlock: true}]
   168    "@stylistic/js/semi-spacing": [2, {before: false, after: true}]
   169    "@stylistic/js/semi-style": [2, last]
   170    "@stylistic/js/space-before-blocks": [2, always]
   171    "@stylistic/js/space-before-function-paren": [2, {anonymous: ignore, named: never, asyncArrow: always}]
   172    "@stylistic/js/space-in-parens": [2, never]
   173    "@stylistic/js/space-infix-ops": [2]
   174    "@stylistic/js/space-unary-ops": [2]
   175    "@stylistic/js/spaced-comment": [2, always]
   176    "@stylistic/js/switch-colon-spacing": [2]
   177    "@stylistic/js/template-curly-spacing": [2, never]
   178    "@stylistic/js/template-tag-spacing": [2, never]
   179    "@stylistic/js/wrap-iife": [2, inside]
   180    "@stylistic/js/wrap-regex": [0]
   181    "@stylistic/js/yield-star-spacing": [2, after]
   182    accessor-pairs: [2]
   183    array-callback-return: [2, {checkForEach: true}]
   184    array-func/avoid-reverse: [2]
   185    array-func/from-map: [2]
   186    array-func/no-unnecessary-this-arg: [2]
   187    array-func/prefer-array-from: [2]
   188    array-func/prefer-flat-map: [0] # handled by unicorn/prefer-array-flat-map
   189    array-func/prefer-flat: [0] # handled by unicorn/prefer-array-flat
   190    arrow-body-style: [0]
   191    block-scoped-var: [2]
   192    camelcase: [0]
   193    capitalized-comments: [0]
   194    class-methods-use-this: [0]
   195    complexity: [0]
   196    consistent-return: [0]
   197    consistent-this: [0]
   198    constructor-super: [2]
   199    curly: [0]
   200    default-case-last: [2]
   201    default-case: [0]
   202    default-param-last: [0]
   203    dot-notation: [0]
   204    eqeqeq: [2]
   205    for-direction: [2]
   206    func-name-matching: [2]
   207    func-names: [0]
   208    func-style: [0]
   209    getter-return: [2]
   210    github/a11y-aria-label-is-well-formatted: [0]
   211    github/a11y-no-title-attribute: [0]
   212    github/a11y-no-visually-hidden-interactive-element: [0]
   213    github/a11y-role-supports-aria-props: [0]
   214    github/a11y-svg-has-accessible-name: [0]
   215    github/array-foreach: [0]
   216    github/async-currenttarget: [2]
   217    github/async-preventdefault: [2]
   218    github/authenticity-token: [0]
   219    github/get-attribute: [0]
   220    github/js-class-name: [0]
   221    github/no-blur: [0]
   222    github/no-d-none: [0]
   223    github/no-dataset: [2]
   224    github/no-dynamic-script-tag: [2]
   225    github/no-implicit-buggy-globals: [2]
   226    github/no-inner-html: [0]
   227    github/no-innerText: [2]
   228    github/no-then: [2]
   229    github/no-useless-passive: [2]
   230    github/prefer-observers: [2]
   231    github/require-passive-events: [2]
   232    github/unescaped-html-literal: [0]
   233    grouped-accessor-pairs: [2]
   234    guard-for-in: [0]
   235    id-blacklist: [0]
   236    id-length: [0]
   237    id-match: [0]
   238    i/consistent-type-specifier-style: [0]
   239    i/default: [0]
   240    i/dynamic-import-chunkname: [0]
   241    i/export: [2]
   242    i/exports-last: [0]
   243    i/extensions: [2, always, {ignorePackages: true}]
   244    i/first: [2]
   245    i/group-exports: [0]
   246    i/max-dependencies: [0]
   247    i/named: [2]
   248    i/namespace: [0]
   249    i/newline-after-import: [0]
   250    i/no-absolute-path: [0]
   251    i/no-amd: [2]
   252    i/no-anonymous-default-export: [0]
   253    i/no-commonjs: [2]
   254    i/no-cycle: [2, {ignoreExternal: true, maxDepth: 1}]
   255    i/no-default-export: [0]
   256    i/no-deprecated: [0]
   257    i/no-dynamic-require: [0]
   258    i/no-empty-named-blocks: [2]
   259    i/no-extraneous-dependencies: [2]
   260    i/no-import-module-exports: [0]
   261    i/no-internal-modules: [0]
   262    i/no-mutable-exports: [0]
   263    i/no-named-as-default-member: [0]
   264    i/no-named-as-default: [2]
   265    i/no-named-default: [0]
   266    i/no-named-export: [0]
   267    i/no-namespace: [0]
   268    i/no-nodejs-modules: [0]
   269    i/no-relative-packages: [0]
   270    i/no-relative-parent-imports: [0]
   271    i/no-restricted-paths: [0]
   272    i/no-self-import: [2]
   273    i/no-unassigned-import: [0]
   274    i/no-unresolved: [2, {commonjs: true, ignore: ["\\?.+$", ^vitest/]}]
   275    i/no-unused-modules: [2, {unusedExports: true}]
   276    i/no-useless-path-segments: [2, {commonjs: true}]
   277    i/no-webpack-loader-syntax: [2]
   278    i/order: [0]
   279    i/prefer-default-export: [0]
   280    i/unambiguous: [0]
   281    init-declarations: [0]
   282    jquery/no-ajax-events: [2]
   283    jquery/no-ajax: [2]
   284    jquery/no-animate: [2]
   285    jquery/no-attr: [2]
   286    jquery/no-bind: [2]
   287    jquery/no-class: [0]
   288    jquery/no-clone: [2]
   289    jquery/no-closest: [0]
   290    jquery/no-css: [2]
   291    jquery/no-data: [0]
   292    jquery/no-deferred: [2]
   293    jquery/no-delegate: [2]
   294    jquery/no-each: [0]
   295    jquery/no-extend: [2]
   296    jquery/no-fade: [2]
   297    jquery/no-filter: [0]
   298    jquery/no-find: [0]
   299    jquery/no-global-eval: [2]
   300    jquery/no-grep: [2]
   301    jquery/no-has: [2]
   302    jquery/no-hide: [2]
   303    jquery/no-html: [0]
   304    jquery/no-in-array: [2]
   305    jquery/no-is-array: [2]
   306    jquery/no-is-function: [2]
   307    jquery/no-is: [2]
   308    jquery/no-load: [2]
   309    jquery/no-map: [2]
   310    jquery/no-merge: [2]
   311    jquery/no-param: [2]
   312    jquery/no-parent: [0]
   313    jquery/no-parents: [2]
   314    jquery/no-parse-html: [2]
   315    jquery/no-prop: [2]
   316    jquery/no-proxy: [2]
   317    jquery/no-ready: [2]
   318    jquery/no-serialize: [2]
   319    jquery/no-show: [2]
   320    jquery/no-size: [2]
   321    jquery/no-sizzle: [2]
   322    jquery/no-slide: [2]
   323    jquery/no-submit: [2]
   324    jquery/no-text: [0]
   325    jquery/no-toggle: [2]
   326    jquery/no-trigger: [0]
   327    jquery/no-trim: [2]
   328    jquery/no-val: [0]
   329    jquery/no-when: [2]
   330    jquery/no-wrap: [2]
   331    line-comment-position: [0]
   332    logical-assignment-operators: [0]
   333    max-classes-per-file: [0]
   334    max-depth: [0]
   335    max-lines-per-function: [0]
   336    max-lines: [0]
   337    max-nested-callbacks: [0]
   338    max-params: [0]
   339    max-statements: [0]
   340    multiline-comment-style: [2, separate-lines]
   341    new-cap: [0]
   342    no-alert: [0]
   343    no-array-constructor: [2]
   344    no-async-promise-executor: [0]
   345    no-await-in-loop: [0]
   346    no-bitwise: [0]
   347    no-buffer-constructor: [0]
   348    no-caller: [2]
   349    no-case-declarations: [2]
   350    no-class-assign: [2]
   351    no-compare-neg-zero: [2]
   352    no-cond-assign: [2, except-parens]
   353    no-console: [1, {allow: [debug, info, warn, error]}]
   354    no-const-assign: [2]
   355    no-constant-binary-expression: [2]
   356    no-constant-condition: [0]
   357    no-constructor-return: [2]
   358    no-continue: [0]
   359    no-control-regex: [0]
   360    no-debugger: [1]
   361    no-delete-var: [2]
   362    no-div-regex: [0]
   363    no-dupe-args: [2]
   364    no-dupe-class-members: [2]
   365    no-dupe-else-if: [2]
   366    no-dupe-keys: [2]
   367    no-duplicate-case: [2]
   368    no-duplicate-imports: [2]
   369    no-else-return: [2]
   370    no-empty-character-class: [2]
   371    no-empty-function: [0]
   372    no-empty-pattern: [2]
   373    no-empty-static-block: [2]
   374    no-empty: [2, {allowEmptyCatch: true}]
   375    no-eq-null: [2]
   376    no-eval: [2]
   377    no-ex-assign: [2]
   378    no-extend-native: [2]
   379    no-extra-bind: [2]
   380    no-extra-boolean-cast: [2]
   381    no-extra-label: [0]
   382    no-fallthrough: [2]
   383    no-func-assign: [2]
   384    no-global-assign: [2]
   385    no-implicit-coercion: [2]
   386    no-implicit-globals: [0]
   387    no-implied-eval: [2]
   388    no-import-assign: [2]
   389    no-inline-comments: [0]
   390    no-inner-declarations: [2]
   391    no-invalid-regexp: [2]
   392    no-invalid-this: [0]
   393    no-irregular-whitespace: [2]
   394    no-iterator: [2]
   395    no-jquery/no-ajax-events: [2]
   396    no-jquery/no-ajax: [2]
   397    no-jquery/no-and-self: [2]
   398    no-jquery/no-animate-toggle: [2]
   399    no-jquery/no-animate: [2]
   400    no-jquery/no-append-html: [2]
   401    no-jquery/no-attr: [2]
   402    no-jquery/no-bind: [2]
   403    no-jquery/no-box-model: [2]
   404    no-jquery/no-browser: [2]
   405    no-jquery/no-camel-case: [2]
   406    no-jquery/no-class-state: [0]
   407    no-jquery/no-class: [0]
   408    no-jquery/no-clone: [2]
   409    no-jquery/no-closest: [0]
   410    no-jquery/no-constructor-attributes: [2]
   411    no-jquery/no-contains: [2]
   412    no-jquery/no-context-prop: [2]
   413    no-jquery/no-css: [2]
   414    no-jquery/no-data: [0]
   415    no-jquery/no-deferred: [2]
   416    no-jquery/no-delegate: [2]
   417    no-jquery/no-each-collection: [0]
   418    no-jquery/no-each-util: [0]
   419    no-jquery/no-each: [0]
   420    no-jquery/no-error-shorthand: [2]
   421    no-jquery/no-error: [2]
   422    no-jquery/no-escape-selector: [2]
   423    no-jquery/no-event-shorthand: [2]
   424    no-jquery/no-extend: [2]
   425    no-jquery/no-fade: [2]
   426    no-jquery/no-filter: [0]
   427    no-jquery/no-find-collection: [0]
   428    no-jquery/no-find-util: [2]
   429    no-jquery/no-find: [0]
   430    no-jquery/no-fx-interval: [2]
   431    no-jquery/no-global-eval: [2]
   432    no-jquery/no-global-selector: [0]
   433    no-jquery/no-grep: [2]
   434    no-jquery/no-has: [2]
   435    no-jquery/no-hold-ready: [2]
   436    no-jquery/no-html: [0]
   437    no-jquery/no-in-array: [2]
   438    no-jquery/no-is-array: [2]
   439    no-jquery/no-is-empty-object: [2]
   440    no-jquery/no-is-function: [2]
   441    no-jquery/no-is-numeric: [2]
   442    no-jquery/no-is-plain-object: [2]
   443    no-jquery/no-is-window: [2]
   444    no-jquery/no-is: [2]
   445    no-jquery/no-jquery-constructor: [0]
   446    no-jquery/no-live: [2]
   447    no-jquery/no-load-shorthand: [2]
   448    no-jquery/no-load: [2]
   449    no-jquery/no-map-collection: [0]
   450    no-jquery/no-map-util: [2]
   451    no-jquery/no-map: [2]
   452    no-jquery/no-merge: [2]
   453    no-jquery/no-node-name: [2]
   454    no-jquery/no-noop: [2]
   455    no-jquery/no-now: [2]
   456    no-jquery/no-on-ready: [2]
   457    no-jquery/no-other-methods: [0]
   458    no-jquery/no-other-utils: [2]
   459    no-jquery/no-param: [2]
   460    no-jquery/no-parent: [0]
   461    no-jquery/no-parents: [2]
   462    no-jquery/no-parse-html-literal: [0]
   463    no-jquery/no-parse-html: [2]
   464    no-jquery/no-parse-json: [2]
   465    no-jquery/no-parse-xml: [2]
   466    no-jquery/no-prop: [2]
   467    no-jquery/no-proxy: [2]
   468    no-jquery/no-ready-shorthand: [2]
   469    no-jquery/no-ready: [2]
   470    no-jquery/no-selector-prop: [2]
   471    no-jquery/no-serialize: [2]
   472    no-jquery/no-size: [2]
   473    no-jquery/no-sizzle: [2]
   474    no-jquery/no-slide: [2]
   475    no-jquery/no-sub: [2]
   476    no-jquery/no-support: [2]
   477    no-jquery/no-text: [0]
   478    no-jquery/no-trigger: [0]
   479    no-jquery/no-trim: [2]
   480    no-jquery/no-type: [2]
   481    no-jquery/no-unique: [2]
   482    no-jquery/no-unload-shorthand: [2]
   483    no-jquery/no-val: [0]
   484    no-jquery/no-visibility: [2]
   485    no-jquery/no-when: [2]
   486    no-jquery/no-wrap: [2]
   487    no-jquery/variable-pattern: [2]
   488    no-label-var: [2]
   489    no-labels: [0] # handled by no-restricted-syntax
   490    no-lone-blocks: [2]
   491    no-lonely-if: [0]
   492    no-loop-func: [0]
   493    no-loss-of-precision: [2]
   494    no-magic-numbers: [0]
   495    no-misleading-character-class: [2]
   496    no-multi-assign: [0]
   497    no-multi-str: [2]
   498    no-negated-condition: [0]
   499    no-nested-ternary: [0]
   500    no-new-func: [2]
   501    no-new-native-nonconstructor: [2]
   502    no-new-object: [2]
   503    no-new-symbol: [2]
   504    no-new-wrappers: [2]
   505    no-new: [0]
   506    no-nonoctal-decimal-escape: [2]
   507    no-obj-calls: [2]
   508    no-octal-escape: [2]
   509    no-octal: [2]
   510    no-param-reassign: [0]
   511    no-plusplus: [0]
   512    no-promise-executor-return: [0]
   513    no-proto: [2]
   514    no-prototype-builtins: [2]
   515    no-redeclare: [2]
   516    no-regex-spaces: [2]
   517    no-restricted-exports: [0]
   518    no-restricted-globals: [2, addEventListener, blur, close, closed, confirm, defaultStatus, defaultstatus, error, event, external, find, focus, frameElement, frames, history, innerHeight, innerWidth, isFinite, isNaN, length, location, locationbar, menubar, moveBy, moveTo, name, onblur, onerror, onfocus, onload, onresize, onunload, open, opener, opera, outerHeight, outerWidth, pageXOffset, pageYOffset, parent, print, removeEventListener, resizeBy, resizeTo, screen, screenLeft, screenTop, screenX, screenY, scroll, scrollbars, scrollBy, scrollTo, scrollX, scrollY, self, status, statusbar, stop, toolbar, top, __dirname, __filename]
   519    no-restricted-imports: [0]
   520    no-restricted-syntax: [2, WithStatement, ForInStatement, LabeledStatement, SequenceExpression, {selector: "CallExpression[callee.name='fetch']", message: "use modules/fetch.js instead"}]
   521    no-return-assign: [0]
   522    no-script-url: [2]
   523    no-self-assign: [2, {props: true}]
   524    no-self-compare: [2]
   525    no-sequences: [2]
   526    no-setter-return: [2]
   527    no-shadow-restricted-names: [2]
   528    no-shadow: [0]
   529    no-sparse-arrays: [2]
   530    no-template-curly-in-string: [2]
   531    no-ternary: [0]
   532    no-this-before-super: [2]
   533    no-throw-literal: [2]
   534    no-undef-init: [2]
   535    no-undef: [2, {typeof: true}]
   536    no-undefined: [0]
   537    no-underscore-dangle: [0]
   538    no-unexpected-multiline: [2]
   539    no-unmodified-loop-condition: [2]
   540    no-unneeded-ternary: [2]
   541    no-unreachable-loop: [2]
   542    no-unreachable: [2]
   543    no-unsafe-finally: [2]
   544    no-unsafe-negation: [2]
   545    no-unused-expressions: [2]
   546    no-unused-labels: [2]
   547    no-unused-private-class-members: [2]
   548    no-unused-vars: [2, {args: all, argsIgnorePattern: ^_, varsIgnorePattern: ^_, caughtErrorsIgnorePattern: ^_, destructuredArrayIgnorePattern: ^_, ignoreRestSiblings: false}]
   549    no-use-before-define: [2, {functions: false, classes: true, variables: true, allowNamedExports: true}]
   550    no-use-extend-native/no-use-extend-native: [2]
   551    no-useless-backreference: [2]
   552    no-useless-call: [2]
   553    no-useless-catch: [2]
   554    no-useless-computed-key: [2]
   555    no-useless-concat: [2]
   556    no-useless-constructor: [2]
   557    no-useless-escape: [2]
   558    no-useless-rename: [2]
   559    no-useless-return: [2]
   560    no-var: [2]
   561    no-void: [2]
   562    no-warning-comments: [0]
   563    no-with: [0] # handled by no-restricted-syntax
   564    object-shorthand: [2, always]
   565    one-var-declaration-per-line: [0]
   566    one-var: [0]
   567    operator-assignment: [2, always]
   568    operator-linebreak: [2, after]
   569    prefer-arrow-callback: [2, {allowNamedFunctions: true, allowUnboundThis: true}]
   570    prefer-const: [2, {destructuring: all, ignoreReadBeforeAssign: true}]
   571    prefer-destructuring: [0]
   572    prefer-exponentiation-operator: [2]
   573    prefer-named-capture-group: [0]
   574    prefer-numeric-literals: [2]
   575    prefer-object-has-own: [2]
   576    prefer-object-spread: [2]
   577    prefer-promise-reject-errors: [2, {allowEmptyReject: false}]
   578    prefer-regex-literals: [2]
   579    prefer-rest-params: [2]
   580    prefer-spread: [2]
   581    prefer-template: [2]
   582    radix: [2, as-needed]
   583    regexp/confusing-quantifier: [2]
   584    regexp/control-character-escape: [2]
   585    regexp/hexadecimal-escape: [0]
   586    regexp/letter-case: [0]
   587    regexp/match-any: [2]
   588    regexp/negation: [2]
   589    regexp/no-contradiction-with-assertion: [0]
   590    regexp/no-control-character: [0]
   591    regexp/no-dupe-characters-character-class: [2]
   592    regexp/no-dupe-disjunctions: [2]
   593    regexp/no-empty-alternative: [2]
   594    regexp/no-empty-capturing-group: [2]
   595    regexp/no-empty-character-class: [0]
   596    regexp/no-empty-group: [2]
   597    regexp/no-empty-lookarounds-assertion: [2]
   598    regexp/no-empty-string-literal: [2]
   599    regexp/no-escape-backspace: [2]
   600    regexp/no-extra-lookaround-assertions: [0]
   601    regexp/no-invalid-regexp: [2]
   602    regexp/no-invisible-character: [2]
   603    regexp/no-lazy-ends: [2]
   604    regexp/no-legacy-features: [2]
   605    regexp/no-misleading-capturing-group: [0]
   606    regexp/no-misleading-unicode-character: [0]
   607    regexp/no-missing-g-flag: [2]
   608    regexp/no-non-standard-flag: [2]
   609    regexp/no-obscure-range: [2]
   610    regexp/no-octal: [2]
   611    regexp/no-optional-assertion: [2]
   612    regexp/no-potentially-useless-backreference: [2]
   613    regexp/no-standalone-backslash: [2]
   614    regexp/no-super-linear-backtracking: [0]
   615    regexp/no-super-linear-move: [0]
   616    regexp/no-trivially-nested-assertion: [2]
   617    regexp/no-trivially-nested-quantifier: [2]
   618    regexp/no-unused-capturing-group: [0]
   619    regexp/no-useless-assertions: [2]
   620    regexp/no-useless-backreference: [2]
   621    regexp/no-useless-character-class: [2]
   622    regexp/no-useless-dollar-replacements: [2]
   623    regexp/no-useless-escape: [2]
   624    regexp/no-useless-flag: [2]
   625    regexp/no-useless-lazy: [2]
   626    regexp/no-useless-non-capturing-group: [2]
   627    regexp/no-useless-quantifier: [2]
   628    regexp/no-useless-range: [2]
   629    regexp/no-useless-set-operand: [2]
   630    regexp/no-useless-string-literal: [2]
   631    regexp/no-useless-two-nums-quantifier: [2]
   632    regexp/no-zero-quantifier: [2]
   633    regexp/optimal-lookaround-quantifier: [2]
   634    regexp/optimal-quantifier-concatenation: [0]
   635    regexp/prefer-character-class: [0]
   636    regexp/prefer-d: [0]
   637    regexp/prefer-escape-replacement-dollar-char: [0]
   638    regexp/prefer-lookaround: [0]
   639    regexp/prefer-named-backreference: [0]
   640    regexp/prefer-named-capture-group: [0]
   641    regexp/prefer-named-replacement: [0]
   642    regexp/prefer-plus-quantifier: [2]
   643    regexp/prefer-predefined-assertion: [2]
   644    regexp/prefer-quantifier: [0]
   645    regexp/prefer-question-quantifier: [2]
   646    regexp/prefer-range: [2]
   647    regexp/prefer-regexp-exec: [2]
   648    regexp/prefer-regexp-test: [2]
   649    regexp/prefer-result-array-groups: [0]
   650    regexp/prefer-set-operation: [2]
   651    regexp/prefer-star-quantifier: [2]
   652    regexp/prefer-unicode-codepoint-escapes: [2]
   653    regexp/prefer-w: [0]
   654    regexp/require-unicode-regexp: [0]
   655    regexp/simplify-set-operations: [2]
   656    regexp/sort-alternatives: [0]
   657    regexp/sort-character-class-elements: [0]
   658    regexp/sort-flags: [0]
   659    regexp/strict: [2]
   660    regexp/unicode-escape: [0]
   661    regexp/use-ignore-case: [0]
   662    require-atomic-updates: [0]
   663    require-await: [0]
   664    require-unicode-regexp: [0]
   665    require-yield: [2]
   666    sonarjs/cognitive-complexity: [0]
   667    sonarjs/elseif-without-else: [0]
   668    sonarjs/max-switch-cases: [0]
   669    sonarjs/no-all-duplicated-branches: [2]
   670    sonarjs/no-collapsible-if: [0]
   671    sonarjs/no-collection-size-mischeck: [2]
   672    sonarjs/no-duplicate-string: [0]
   673    sonarjs/no-duplicated-branches: [0]
   674    sonarjs/no-element-overwrite: [2]
   675    sonarjs/no-empty-collection: [2]
   676    sonarjs/no-extra-arguments: [2]
   677    sonarjs/no-gratuitous-expressions: [2]
   678    sonarjs/no-identical-conditions: [2]
   679    sonarjs/no-identical-expressions: [2]
   680    sonarjs/no-identical-functions: [2, 5]
   681    sonarjs/no-ignored-return: [2]
   682    sonarjs/no-inverted-boolean-check: [2]
   683    sonarjs/no-nested-switch: [0]
   684    sonarjs/no-nested-template-literals: [0]
   685    sonarjs/no-one-iteration-loop: [2]
   686    sonarjs/no-redundant-boolean: [2]
   687    sonarjs/no-redundant-jump: [2]
   688    sonarjs/no-same-line-conditional: [2]
   689    sonarjs/no-small-switch: [0]
   690    sonarjs/no-unused-collection: [2]
   691    sonarjs/no-use-of-empty-return-value: [2]
   692    sonarjs/no-useless-catch: [2]
   693    sonarjs/non-existent-operator: [2]
   694    sonarjs/prefer-immediate-return: [0]
   695    sonarjs/prefer-object-literal: [0]
   696    sonarjs/prefer-single-boolean-return: [0]
   697    sonarjs/prefer-while: [2]
   698    sort-imports: [0]
   699    sort-keys: [0]
   700    sort-vars: [0]
   701    strict: [0]
   702    symbol-description: [2]
   703    unicode-bom: [2, never]
   704    unicorn/better-regex: [0]
   705    unicorn/catch-error-name: [0]
   706    unicorn/consistent-destructuring: [2]
   707    unicorn/consistent-function-scoping: [2]
   708    unicorn/custom-error-definition: [0]
   709    unicorn/empty-brace-spaces: [2]
   710    unicorn/error-message: [0]
   711    unicorn/escape-case: [0]
   712    unicorn/expiring-todo-comments: [0]
   713    unicorn/explicit-length-check: [0]
   714    unicorn/filename-case: [0]
   715    unicorn/import-index: [0]
   716    unicorn/import-style: [0]
   717    unicorn/new-for-builtins: [2]
   718    unicorn/no-abusive-eslint-disable: [0]
   719    unicorn/no-anonymous-default-export: [0]
   720    unicorn/no-array-callback-reference: [0]
   721    unicorn/no-array-for-each: [2]
   722    unicorn/no-array-method-this-argument: [2]
   723    unicorn/no-array-push-push: [2]
   724    unicorn/no-array-reduce: [2]
   725    unicorn/no-await-expression-member: [0]
   726    unicorn/no-await-in-promise-methods: [2]
   727    unicorn/no-console-spaces: [0]
   728    unicorn/no-document-cookie: [2]
   729    unicorn/no-empty-file: [2]
   730    unicorn/no-for-loop: [0]
   731    unicorn/no-hex-escape: [0]
   732    unicorn/no-instanceof-array: [0]
   733    unicorn/no-invalid-remove-event-listener: [2]
   734    unicorn/no-keyword-prefix: [0]
   735    unicorn/no-lonely-if: [2]
   736    unicorn/no-negated-condition: [0]
   737    unicorn/no-nested-ternary: [0]
   738    unicorn/no-new-array: [0]
   739    unicorn/no-new-buffer: [0]
   740    unicorn/no-null: [0]
   741    unicorn/no-object-as-default-parameter: [0]
   742    unicorn/no-process-exit: [0]
   743    unicorn/no-single-promise-in-promise-methods: [2]
   744    unicorn/no-static-only-class: [2]
   745    unicorn/no-thenable: [2]
   746    unicorn/no-this-assignment: [2]
   747    unicorn/no-typeof-undefined: [2]
   748    unicorn/no-unnecessary-await: [2]
   749    unicorn/no-unnecessary-polyfills: [2]
   750    unicorn/no-unreadable-array-destructuring: [0]
   751    unicorn/no-unreadable-iife: [2]
   752    unicorn/no-unused-properties: [2]
   753    unicorn/no-useless-fallback-in-spread: [2]
   754    unicorn/no-useless-length-check: [2]
   755    unicorn/no-useless-promise-resolve-reject: [2]
   756    unicorn/no-useless-spread: [2]
   757    unicorn/no-useless-switch-case: [2]
   758    unicorn/no-useless-undefined: [0]
   759    unicorn/no-zero-fractions: [2]
   760    unicorn/number-literal-case: [0]
   761    unicorn/numeric-separators-style: [0]
   762    unicorn/prefer-add-event-listener: [2]
   763    unicorn/prefer-array-find: [2]
   764    unicorn/prefer-array-flat-map: [2]
   765    unicorn/prefer-array-flat: [2]
   766    unicorn/prefer-array-index-of: [2]
   767    unicorn/prefer-array-some: [2]
   768    unicorn/prefer-at: [0]
   769    unicorn/prefer-blob-reading-methods: [2]
   770    unicorn/prefer-code-point: [0]
   771    unicorn/prefer-date-now: [2]
   772    unicorn/prefer-default-parameters: [0]
   773    unicorn/prefer-dom-node-append: [2]
   774    unicorn/prefer-dom-node-dataset: [0]
   775    unicorn/prefer-dom-node-remove: [2]
   776    unicorn/prefer-dom-node-text-content: [2]
   777    unicorn/prefer-event-target: [2]
   778    unicorn/prefer-export-from: [0]
   779    unicorn/prefer-includes: [2]
   780    unicorn/prefer-json-parse-buffer: [0]
   781    unicorn/prefer-keyboard-event-key: [2]
   782    unicorn/prefer-logical-operator-over-ternary: [2]
   783    unicorn/prefer-math-trunc: [2]
   784    unicorn/prefer-modern-dom-apis: [0]
   785    unicorn/prefer-modern-math-apis: [2]
   786    unicorn/prefer-module: [2]
   787    unicorn/prefer-native-coercion-functions: [2]
   788    unicorn/prefer-negative-index: [2]
   789    unicorn/prefer-node-protocol: [2]
   790    unicorn/prefer-number-properties: [0]
   791    unicorn/prefer-object-from-entries: [2]
   792    unicorn/prefer-object-has-own: [0]
   793    unicorn/prefer-optional-catch-binding: [2]
   794    unicorn/prefer-prototype-methods: [0]
   795    unicorn/prefer-query-selector: [0]
   796    unicorn/prefer-reflect-apply: [0]
   797    unicorn/prefer-regexp-test: [2]
   798    unicorn/prefer-set-has: [0]
   799    unicorn/prefer-set-size: [2]
   800    unicorn/prefer-spread: [0]
   801    unicorn/prefer-string-replace-all: [0]
   802    unicorn/prefer-string-slice: [0]
   803    unicorn/prefer-string-starts-ends-with: [2]
   804    unicorn/prefer-string-trim-start-end: [2]
   805    unicorn/prefer-switch: [0]
   806    unicorn/prefer-ternary: [0]
   807    unicorn/prefer-text-content: [2]
   808    unicorn/prefer-top-level-await: [0]
   809    unicorn/prefer-type-error: [0]
   810    unicorn/prevent-abbreviations: [0]
   811    unicorn/relative-url-style: [2]
   812    unicorn/require-array-join-separator: [2]
   813    unicorn/require-number-to-fixed-digits-argument: [2]
   814    unicorn/require-post-message-target-origin: [0]
   815    unicorn/string-content: [0]
   816    unicorn/switch-case-braces: [0]
   817    unicorn/template-indent: [2]
   818    unicorn/text-encoding-identifier-case: [0]
   819    unicorn/throw-new-error: [2]
   820    use-isnan: [2]
   821    valid-typeof: [2, {requireStringLiterals: true}]
   822    vars-on-top: [0]
   823    wc/attach-shadow-constructor: [2]
   824    wc/define-tag-after-class-definition: [0]
   825    wc/expose-class-on-global: [0]
   826    wc/file-name-matches-element: [2]
   827    wc/guard-define-call: [0]
   828    wc/guard-super-call: [2]
   829    wc/max-elements-per-file: [0]
   830    wc/no-child-traversal-in-attributechangedcallback: [2]
   831    wc/no-child-traversal-in-connectedcallback: [2]
   832    wc/no-closed-shadow-root: [2]
   833    wc/no-constructor-attributes: [2]
   834    wc/no-constructor-params: [2]
   835    wc/no-constructor: [2]
   836    wc/no-customized-built-in-elements: [2]
   837    wc/no-exports-with-element: [0]
   838    wc/no-invalid-element-name: [2]
   839    wc/no-invalid-extends: [2]
   840    wc/no-method-prefixed-with-on: [2]
   841    wc/no-self-class: [2]
   842    wc/no-typos: [2]
   843    wc/require-listener-teardown: [2]
   844    wc/tag-name-matches-class: [2]
   845    yoda: [2, never]