You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

.eslintrc.yaml 26KB

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