loading up the forgejo repo on tangled to test page performance
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request 'chore: move to Eslint flat config' (#5662) from gusted/forgejo-flat-config into forgejo

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5662
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>

Gusted 7a29ab4d ee75b784

+1425 -1465
-806
.eslintrc.yaml
··· 1 - root: true 2 - reportUnusedDisableDirectives: true 3 - 4 - ignorePatterns: 5 - - /web_src/js/vendor 6 - - /web_src/fomantic 7 - - /public/assets/js 8 - 9 - parserOptions: 10 - sourceType: module 11 - ecmaVersion: latest 12 - 13 - plugins: 14 - - "@eslint-community/eslint-plugin-eslint-comments" 15 - - "@stylistic/eslint-plugin-js" 16 - - "@vitest" 17 - - eslint-plugin-array-func 18 - - eslint-plugin-github 19 - - eslint-plugin-i 20 - - eslint-plugin-no-jquery 21 - - eslint-plugin-no-use-extend-native 22 - - eslint-plugin-regexp 23 - - eslint-plugin-sonarjs 24 - - eslint-plugin-unicorn 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 - line-comment-position: [0] 283 - logical-assignment-operators: [0] 284 - max-classes-per-file: [0] 285 - max-depth: [0] 286 - max-lines-per-function: [0] 287 - max-lines: [0] 288 - max-nested-callbacks: [0] 289 - max-params: [0] 290 - max-statements: [0] 291 - multiline-comment-style: [2, separate-lines] 292 - new-cap: [0] 293 - no-alert: [0] 294 - no-array-constructor: [2] 295 - no-async-promise-executor: [0] 296 - no-await-in-loop: [0] 297 - no-bitwise: [0] 298 - no-buffer-constructor: [0] 299 - no-caller: [2] 300 - no-case-declarations: [2] 301 - no-class-assign: [2] 302 - no-compare-neg-zero: [2] 303 - no-cond-assign: [2, except-parens] 304 - no-console: [1, {allow: [debug, info, warn, error]}] 305 - no-const-assign: [2] 306 - no-constant-binary-expression: [2] 307 - no-constant-condition: [0] 308 - no-constructor-return: [2] 309 - no-continue: [0] 310 - no-control-regex: [0] 311 - no-debugger: [1] 312 - no-delete-var: [2] 313 - no-div-regex: [0] 314 - no-dupe-args: [2] 315 - no-dupe-class-members: [2] 316 - no-dupe-else-if: [2] 317 - no-dupe-keys: [2] 318 - no-duplicate-case: [2] 319 - no-duplicate-imports: [2] 320 - no-else-return: [2] 321 - no-empty-character-class: [2] 322 - no-empty-function: [0] 323 - no-empty-pattern: [2] 324 - no-empty-static-block: [2] 325 - no-empty: [2, {allowEmptyCatch: true}] 326 - no-eq-null: [2] 327 - no-eval: [2] 328 - no-ex-assign: [2] 329 - no-extend-native: [2] 330 - no-extra-bind: [2] 331 - no-extra-boolean-cast: [2] 332 - no-extra-label: [0] 333 - no-fallthrough: [2] 334 - no-func-assign: [2] 335 - no-global-assign: [2] 336 - no-implicit-coercion: [2] 337 - no-implicit-globals: [0] 338 - no-implied-eval: [2] 339 - no-import-assign: [2] 340 - no-inline-comments: [0] 341 - no-inner-declarations: [2] 342 - no-invalid-regexp: [2] 343 - no-invalid-this: [0] 344 - no-irregular-whitespace: [2] 345 - no-iterator: [2] 346 - no-jquery/no-ajax-events: [2] 347 - no-jquery/no-ajax: [2] 348 - no-jquery/no-and-self: [2] 349 - no-jquery/no-animate-toggle: [2] 350 - no-jquery/no-animate: [2] 351 - no-jquery/no-append-html: [2] 352 - no-jquery/no-attr: [2] 353 - no-jquery/no-bind: [2] 354 - no-jquery/no-box-model: [2] 355 - no-jquery/no-browser: [2] 356 - no-jquery/no-camel-case: [2] 357 - no-jquery/no-class-state: [2] 358 - no-jquery/no-class: [0] 359 - no-jquery/no-clone: [2] 360 - no-jquery/no-closest: [0] 361 - no-jquery/no-constructor-attributes: [2] 362 - no-jquery/no-contains: [2] 363 - no-jquery/no-context-prop: [2] 364 - no-jquery/no-css: [2] 365 - no-jquery/no-data: [0] 366 - no-jquery/no-deferred: [2] 367 - no-jquery/no-delegate: [2] 368 - no-jquery/no-each-collection: [0] 369 - no-jquery/no-each-util: [0] 370 - no-jquery/no-each: [0] 371 - no-jquery/no-error-shorthand: [2] 372 - no-jquery/no-error: [2] 373 - no-jquery/no-escape-selector: [2] 374 - no-jquery/no-event-shorthand: [2] 375 - no-jquery/no-extend: [2] 376 - no-jquery/no-fade: [2] 377 - no-jquery/no-filter: [0] 378 - no-jquery/no-find-collection: [0] 379 - no-jquery/no-find-util: [2] 380 - no-jquery/no-find: [0] 381 - no-jquery/no-fx-interval: [2] 382 - no-jquery/no-global-eval: [2] 383 - no-jquery/no-global-selector: [0] 384 - no-jquery/no-grep: [2] 385 - no-jquery/no-has: [2] 386 - no-jquery/no-hold-ready: [2] 387 - no-jquery/no-html: [0] 388 - no-jquery/no-in-array: [2] 389 - no-jquery/no-is-array: [2] 390 - no-jquery/no-is-empty-object: [2] 391 - no-jquery/no-is-function: [2] 392 - no-jquery/no-is-numeric: [2] 393 - no-jquery/no-is-plain-object: [2] 394 - no-jquery/no-is-window: [2] 395 - no-jquery/no-is: [2] 396 - no-jquery/no-jquery-constructor: [0] 397 - no-jquery/no-live: [2] 398 - no-jquery/no-load-shorthand: [2] 399 - no-jquery/no-load: [2] 400 - no-jquery/no-map-collection: [0] 401 - no-jquery/no-map-util: [2] 402 - no-jquery/no-map: [2] 403 - no-jquery/no-merge: [2] 404 - no-jquery/no-node-name: [2] 405 - no-jquery/no-noop: [2] 406 - no-jquery/no-now: [2] 407 - no-jquery/no-on-ready: [2] 408 - no-jquery/no-other-methods: [0] 409 - no-jquery/no-other-utils: [2] 410 - no-jquery/no-param: [2] 411 - no-jquery/no-parent: [0] 412 - no-jquery/no-parents: [2] 413 - no-jquery/no-parse-html-literal: [2] 414 - no-jquery/no-parse-html: [2] 415 - no-jquery/no-parse-json: [2] 416 - no-jquery/no-parse-xml: [2] 417 - no-jquery/no-prop: [2] 418 - no-jquery/no-proxy: [2] 419 - no-jquery/no-ready-shorthand: [2] 420 - no-jquery/no-ready: [2] 421 - no-jquery/no-selector-prop: [2] 422 - no-jquery/no-serialize: [2] 423 - no-jquery/no-size: [2] 424 - no-jquery/no-sizzle: [0] 425 - no-jquery/no-slide: [2] 426 - no-jquery/no-sub: [2] 427 - no-jquery/no-support: [2] 428 - no-jquery/no-text: [0] 429 - no-jquery/no-trigger: [0] 430 - no-jquery/no-trim: [2] 431 - no-jquery/no-type: [2] 432 - no-jquery/no-unique: [2] 433 - no-jquery/no-unload-shorthand: [2] 434 - no-jquery/no-val: [0] 435 - no-jquery/no-visibility: [2] 436 - no-jquery/no-when: [2] 437 - no-jquery/no-wrap: [2] 438 - no-jquery/variable-pattern: [2] 439 - no-label-var: [2] 440 - no-labels: [0] # handled by no-restricted-syntax 441 - no-lone-blocks: [2] 442 - no-lonely-if: [0] 443 - no-loop-func: [0] 444 - no-loss-of-precision: [2] 445 - no-magic-numbers: [0] 446 - no-misleading-character-class: [2] 447 - no-multi-assign: [0] 448 - no-multi-str: [2] 449 - no-negated-condition: [0] 450 - no-nested-ternary: [0] 451 - no-new-func: [2] 452 - no-new-native-nonconstructor: [2] 453 - no-new-object: [2] 454 - no-new-symbol: [2] 455 - no-new-wrappers: [2] 456 - no-new: [0] 457 - no-nonoctal-decimal-escape: [2] 458 - no-obj-calls: [2] 459 - no-octal-escape: [2] 460 - no-octal: [2] 461 - no-param-reassign: [0] 462 - no-plusplus: [0] 463 - no-promise-executor-return: [0] 464 - no-proto: [2] 465 - no-prototype-builtins: [2] 466 - no-redeclare: [2] 467 - no-regex-spaces: [2] 468 - no-restricted-exports: [0] 469 - 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] 470 - no-restricted-imports: [0] 471 - no-restricted-syntax: [2, WithStatement, ForInStatement, LabeledStatement, SequenceExpression, {selector: "CallExpression[callee.name='fetch']", message: "use modules/fetch.js instead"}] 472 - no-return-assign: [0] 473 - no-script-url: [2] 474 - no-self-assign: [2, {props: true}] 475 - no-self-compare: [2] 476 - no-sequences: [2] 477 - no-setter-return: [2] 478 - no-shadow-restricted-names: [2] 479 - no-shadow: [0] 480 - no-sparse-arrays: [2] 481 - no-template-curly-in-string: [2] 482 - no-ternary: [0] 483 - no-this-before-super: [2] 484 - no-throw-literal: [2] 485 - no-undef-init: [2] 486 - no-undef: [2, {typeof: true}] 487 - no-undefined: [0] 488 - no-underscore-dangle: [0] 489 - no-unexpected-multiline: [2] 490 - no-unmodified-loop-condition: [2] 491 - no-unneeded-ternary: [2] 492 - no-unreachable-loop: [2] 493 - no-unreachable: [2] 494 - no-unsafe-finally: [2] 495 - no-unsafe-negation: [2] 496 - no-unused-expressions: [2] 497 - no-unused-labels: [2] 498 - no-unused-private-class-members: [2] 499 - no-unused-vars: [2, {args: all, argsIgnorePattern: ^_, varsIgnorePattern: ^_, caughtErrorsIgnorePattern: ^_, destructuredArrayIgnorePattern: ^_, ignoreRestSiblings: false}] 500 - no-use-before-define: [2, {functions: false, classes: true, variables: true, allowNamedExports: true}] 501 - no-use-extend-native/no-use-extend-native: [2] 502 - no-useless-backreference: [2] 503 - no-useless-call: [2] 504 - no-useless-catch: [2] 505 - no-useless-computed-key: [2] 506 - no-useless-concat: [2] 507 - no-useless-constructor: [2] 508 - no-useless-escape: [2] 509 - no-useless-rename: [2] 510 - no-useless-return: [2] 511 - no-var: [2] 512 - no-void: [2] 513 - no-warning-comments: [0] 514 - no-with: [0] # handled by no-restricted-syntax 515 - object-shorthand: [2, always] 516 - one-var-declaration-per-line: [0] 517 - one-var: [0] 518 - operator-assignment: [2, always] 519 - operator-linebreak: [2, after] 520 - prefer-arrow-callback: [2, {allowNamedFunctions: true, allowUnboundThis: true}] 521 - prefer-const: [2, {destructuring: all, ignoreReadBeforeAssign: true}] 522 - prefer-destructuring: [0] 523 - prefer-exponentiation-operator: [2] 524 - prefer-named-capture-group: [0] 525 - prefer-numeric-literals: [2] 526 - prefer-object-has-own: [2] 527 - prefer-object-spread: [2] 528 - prefer-promise-reject-errors: [2, {allowEmptyReject: false}] 529 - prefer-regex-literals: [2] 530 - prefer-rest-params: [2] 531 - prefer-spread: [2] 532 - prefer-template: [2] 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 - sonarjs/cognitive-complexity: [0] 618 - sonarjs/elseif-without-else: [0] 619 - sonarjs/max-switch-cases: [0] 620 - sonarjs/no-all-duplicated-branches: [2] 621 - sonarjs/no-collapsible-if: [0] 622 - sonarjs/no-collection-size-mischeck: [2] 623 - sonarjs/no-duplicate-string: [0] 624 - sonarjs/no-duplicated-branches: [0] 625 - sonarjs/no-element-overwrite: [2] 626 - sonarjs/no-empty-collection: [2] 627 - sonarjs/no-extra-arguments: [2] 628 - sonarjs/no-gratuitous-expressions: [2] 629 - sonarjs/no-identical-conditions: [2] 630 - sonarjs/no-identical-expressions: [2] 631 - sonarjs/no-identical-functions: [2, 5] 632 - sonarjs/no-ignored-return: [2] 633 - sonarjs/no-inverted-boolean-check: [2] 634 - sonarjs/no-nested-switch: [0] 635 - sonarjs/no-nested-template-literals: [0] 636 - sonarjs/no-one-iteration-loop: [2] 637 - sonarjs/no-redundant-boolean: [2] 638 - sonarjs/no-redundant-jump: [2] 639 - sonarjs/no-same-line-conditional: [2] 640 - sonarjs/no-small-switch: [0] 641 - sonarjs/no-unused-collection: [2] 642 - sonarjs/no-use-of-empty-return-value: [2] 643 - sonarjs/no-useless-catch: [2] 644 - sonarjs/non-existent-operator: [2] 645 - sonarjs/prefer-immediate-return: [0] 646 - sonarjs/prefer-object-literal: [0] 647 - sonarjs/prefer-single-boolean-return: [0] 648 - sonarjs/prefer-while: [2] 649 - sort-imports: [0] 650 - sort-keys: [0] 651 - sort-vars: [0] 652 - strict: [0] 653 - symbol-description: [2] 654 - unicode-bom: [2, never] 655 - unicorn/better-regex: [0] 656 - unicorn/catch-error-name: [0] 657 - unicorn/consistent-destructuring: [2] 658 - unicorn/consistent-empty-array-spread: [2] 659 - unicorn/consistent-existence-index-check: [2] 660 - unicorn/consistent-function-scoping: [2] 661 - unicorn/custom-error-definition: [0] 662 - unicorn/empty-brace-spaces: [2] 663 - unicorn/error-message: [0] 664 - unicorn/escape-case: [0] 665 - unicorn/expiring-todo-comments: [0] 666 - unicorn/explicit-length-check: [0] 667 - unicorn/filename-case: [0] 668 - unicorn/import-index: [0] 669 - unicorn/import-style: [0] 670 - unicorn/new-for-builtins: [2] 671 - unicorn/no-abusive-eslint-disable: [0] 672 - unicorn/no-anonymous-default-export: [0] 673 - unicorn/no-array-callback-reference: [0] 674 - unicorn/no-array-for-each: [2] 675 - unicorn/no-array-method-this-argument: [2] 676 - unicorn/no-array-push-push: [2] 677 - unicorn/no-array-reduce: [2] 678 - unicorn/no-await-expression-member: [0] 679 - unicorn/no-await-in-promise-methods: [2] 680 - unicorn/no-console-spaces: [0] 681 - unicorn/no-document-cookie: [2] 682 - unicorn/no-empty-file: [2] 683 - unicorn/no-for-loop: [0] 684 - unicorn/no-hex-escape: [0] 685 - unicorn/no-instanceof-array: [0] 686 - unicorn/no-invalid-fetch-options: [2] 687 - unicorn/no-invalid-remove-event-listener: [2] 688 - unicorn/no-keyword-prefix: [0] 689 - unicorn/no-length-as-slice-end: [2] 690 - unicorn/no-lonely-if: [2] 691 - unicorn/no-magic-array-flat-depth: [0] 692 - unicorn/no-negated-condition: [0] 693 - unicorn/no-negation-in-equality-check: [2] 694 - unicorn/no-nested-ternary: [0] 695 - unicorn/no-new-array: [0] 696 - unicorn/no-new-buffer: [0] 697 - unicorn/no-null: [0] 698 - unicorn/no-object-as-default-parameter: [0] 699 - unicorn/no-process-exit: [0] 700 - unicorn/no-single-promise-in-promise-methods: [2] 701 - unicorn/no-static-only-class: [2] 702 - unicorn/no-thenable: [2] 703 - unicorn/no-this-assignment: [2] 704 - unicorn/no-typeof-undefined: [2] 705 - unicorn/no-unnecessary-await: [2] 706 - unicorn/no-unnecessary-polyfills: [2] 707 - unicorn/no-unreadable-array-destructuring: [0] 708 - unicorn/no-unreadable-iife: [2] 709 - unicorn/no-unused-properties: [2] 710 - unicorn/no-useless-fallback-in-spread: [2] 711 - unicorn/no-useless-length-check: [2] 712 - unicorn/no-useless-promise-resolve-reject: [2] 713 - unicorn/no-useless-spread: [2] 714 - unicorn/no-useless-switch-case: [2] 715 - unicorn/no-useless-undefined: [0] 716 - unicorn/no-zero-fractions: [2] 717 - unicorn/number-literal-case: [0] 718 - unicorn/numeric-separators-style: [0] 719 - unicorn/prefer-add-event-listener: [2] 720 - unicorn/prefer-array-find: [2] 721 - unicorn/prefer-array-flat-map: [2] 722 - unicorn/prefer-array-flat: [2] 723 - unicorn/prefer-array-index-of: [2] 724 - unicorn/prefer-array-some: [2] 725 - unicorn/prefer-at: [0] 726 - unicorn/prefer-blob-reading-methods: [2] 727 - unicorn/prefer-code-point: [0] 728 - unicorn/prefer-date-now: [2] 729 - unicorn/prefer-default-parameters: [0] 730 - unicorn/prefer-dom-node-append: [2] 731 - unicorn/prefer-dom-node-dataset: [0] 732 - unicorn/prefer-dom-node-remove: [2] 733 - unicorn/prefer-dom-node-text-content: [2] 734 - unicorn/prefer-event-target: [2] 735 - unicorn/prefer-export-from: [0] 736 - unicorn/prefer-global-this: [0] 737 - unicorn/prefer-includes: [2] 738 - unicorn/prefer-json-parse-buffer: [0] 739 - unicorn/prefer-keyboard-event-key: [2] 740 - unicorn/prefer-logical-operator-over-ternary: [2] 741 - unicorn/prefer-math-min-max: [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-raw: [0] 761 - unicorn/prefer-string-replace-all: [0] 762 - unicorn/prefer-string-slice: [0] 763 - unicorn/prefer-string-starts-ends-with: [2] 764 - unicorn/prefer-string-trim-start-end: [2] 765 - unicorn/prefer-structured-clone: [2] 766 - unicorn/prefer-switch: [0] 767 - unicorn/prefer-ternary: [0] 768 - unicorn/prefer-text-content: [2] 769 - unicorn/prefer-top-level-await: [0] 770 - unicorn/prefer-type-error: [0] 771 - unicorn/prevent-abbreviations: [0] 772 - unicorn/relative-url-style: [2] 773 - unicorn/require-array-join-separator: [2] 774 - unicorn/require-number-to-fixed-digits-argument: [2] 775 - unicorn/require-post-message-target-origin: [0] 776 - unicorn/string-content: [0] 777 - unicorn/switch-case-braces: [0] 778 - unicorn/template-indent: [2] 779 - unicorn/text-encoding-identifier-case: [0] 780 - unicorn/throw-new-error: [2] 781 - use-isnan: [2] 782 - valid-typeof: [2, {requireStringLiterals: true}] 783 - vars-on-top: [0] 784 - wc/attach-shadow-constructor: [2] 785 - wc/define-tag-after-class-definition: [0] 786 - wc/expose-class-on-global: [0] 787 - wc/file-name-matches-element: [2] 788 - wc/guard-define-call: [0] 789 - wc/guard-super-call: [2] 790 - wc/max-elements-per-file: [0] 791 - wc/no-child-traversal-in-attributechangedcallback: [2] 792 - wc/no-child-traversal-in-connectedcallback: [2] 793 - wc/no-closed-shadow-root: [2] 794 - wc/no-constructor-attributes: [2] 795 - wc/no-constructor-params: [2] 796 - wc/no-constructor: [2] 797 - wc/no-customized-built-in-elements: [2] 798 - wc/no-exports-with-element: [0] 799 - wc/no-invalid-element-name: [2] 800 - wc/no-invalid-extends: [2] 801 - wc/no-method-prefixed-with-on: [2] 802 - wc/no-self-class: [2] 803 - wc/no-typos: [2] 804 - wc/require-listener-teardown: [2] 805 - wc/tag-name-matches-class: [2] 806 - yoda: [2, never]
+3 -3
Makefile
··· 164 164 GO_DIRS := build cmd models modules routers services tests 165 165 WEB_DIRS := web_src/js web_src/css 166 166 167 - ESLINT_FILES := web_src/js tools *.js tests/e2e/*.js tests/e2e/shared/*.js 167 + ESLINT_FILES := web_src/js tools *.js *.mjs tests/e2e/*.js tests/e2e/shared/*.js 168 168 STYLELINT_FILES := web_src/css web_src/js/components/*.vue 169 169 SPELLCHECK_FILES := $(GO_DIRS) $(WEB_DIRS) docs/content templates options/locale/locale_en-US.ini .github $(wildcard *.go *.js *.md *.yml *.yaml *.toml) 170 170 ··· 437 437 438 438 .PHONY: lint-js 439 439 lint-js: node_modules 440 - npx eslint --color --max-warnings=0 --ext js,vue $(ESLINT_FILES) 440 + npx eslint --color --max-warnings=0 $(ESLINT_FILES) 441 441 442 442 .PHONY: lint-js-fix 443 443 lint-js-fix: node_modules 444 - npx eslint --color --max-warnings=0 --ext js,vue $(ESLINT_FILES) --fix 444 + npx eslint --color --max-warnings=0 $(ESLINT_FILES) --fix 445 445 446 446 .PHONY: lint-css 447 447 lint-css: node_modules
+1159
eslint.config.mjs
··· 1 + import eslintCommunityEslintPluginEslintComments from '@eslint-community/eslint-plugin-eslint-comments'; 2 + import stylisticEslintPluginJs from '@stylistic/eslint-plugin-js'; 3 + import vitest from '@vitest/eslint-plugin'; 4 + import arrayFunc from 'eslint-plugin-array-func'; 5 + import eslintPluginImportX from 'eslint-plugin-import-x'; 6 + import noJquery from 'eslint-plugin-no-jquery'; 7 + import noUseExtendNative from 'eslint-plugin-no-use-extend-native'; 8 + import regexp from 'eslint-plugin-regexp'; 9 + import sonarjs from 'eslint-plugin-sonarjs'; 10 + import unicorn from 'eslint-plugin-unicorn'; 11 + import playwright from 'eslint-plugin-playwright'; 12 + import vitestGlobals from 'eslint-plugin-vitest-globals'; 13 + import wc from 'eslint-plugin-wc'; 14 + import globals from 'globals'; 15 + import vue from 'eslint-plugin-vue'; 16 + import vueScopedCss from 'eslint-plugin-vue-scoped-css'; 17 + 18 + export default [{ 19 + ignores: ['web_src/js/vendor', 'web_src/fomantic', 'public/assets/js'], 20 + }, { 21 + plugins: { 22 + '@eslint-community/eslint-comments': eslintCommunityEslintPluginEslintComments, 23 + '@stylistic/js': stylisticEslintPluginJs, 24 + '@vitest': vitest, 25 + 'array-func': arrayFunc, 26 + 'import-x': eslintPluginImportX, 27 + 'no-jquery': noJquery, 28 + 'no-use-extend-native': noUseExtendNative, 29 + regexp, 30 + sonarjs, 31 + unicorn, 32 + playwright, 33 + 'vitest-globals': vitestGlobals, 34 + vue, 35 + 'vue-scoped-css': vueScopedCss, 36 + wc, 37 + }, 38 + 39 + linterOptions: { 40 + reportUnusedDisableDirectives: true, 41 + }, 42 + 43 + languageOptions: { 44 + globals: { 45 + ...globals.node, 46 + }, 47 + parserOptions: { 48 + ecmaVersion: 'latest', 49 + }, 50 + 51 + ecmaVersion: 'latest', 52 + sourceType: 'module', 53 + }, 54 + rules: { 55 + '@eslint-community/eslint-comments/disable-enable-pair': [2], 56 + '@eslint-community/eslint-comments/no-aggregating-enable': [2], 57 + '@eslint-community/eslint-comments/no-duplicate-disable': [2], 58 + '@eslint-community/eslint-comments/no-restricted-disable': [0], 59 + '@eslint-community/eslint-comments/no-unlimited-disable': [2], 60 + '@eslint-community/eslint-comments/no-unused-disable': [2], 61 + '@eslint-community/eslint-comments/no-unused-enable': [2], 62 + '@eslint-community/eslint-comments/no-use': [0], 63 + '@eslint-community/eslint-comments/require-description': [0], 64 + '@stylistic/js/array-bracket-newline': [0], 65 + '@stylistic/js/array-bracket-spacing': [2, 'never'], 66 + '@stylistic/js/array-element-newline': [0], 67 + '@stylistic/js/arrow-parens': [2, 'always'], 68 + 69 + '@stylistic/js/arrow-spacing': [2, { 70 + before: true, 71 + after: true, 72 + }], 73 + 74 + '@stylistic/js/block-spacing': [0], 75 + 76 + '@stylistic/js/brace-style': [2, '1tbs', { 77 + allowSingleLine: true, 78 + }], 79 + 80 + '@stylistic/js/comma-dangle': [2, 'always-multiline'], 81 + 82 + '@stylistic/js/comma-spacing': [2, { 83 + before: false, 84 + after: true, 85 + }], 86 + 87 + '@stylistic/js/comma-style': [2, 'last'], 88 + '@stylistic/js/computed-property-spacing': [2, 'never'], 89 + '@stylistic/js/dot-location': [2, 'property'], 90 + '@stylistic/js/eol-last': [2], 91 + '@stylistic/js/function-call-spacing': [2, 'never'], 92 + '@stylistic/js/function-call-argument-newline': [0], 93 + '@stylistic/js/function-paren-newline': [0], 94 + '@stylistic/js/generator-star-spacing': [0], 95 + '@stylistic/js/implicit-arrow-linebreak': [0], 96 + 97 + '@stylistic/js/indent': [2, 2, { 98 + ignoreComments: true, 99 + SwitchCase: 1, 100 + }], 101 + 102 + '@stylistic/js/key-spacing': [2], 103 + '@stylistic/js/keyword-spacing': [2], 104 + '@stylistic/js/linebreak-style': [2, 'unix'], 105 + '@stylistic/js/lines-around-comment': [0], 106 + '@stylistic/js/lines-between-class-members': [0], 107 + '@stylistic/js/max-len': [0], 108 + '@stylistic/js/max-statements-per-line': [0], 109 + '@stylistic/js/multiline-ternary': [0], 110 + '@stylistic/js/new-parens': [2], 111 + '@stylistic/js/newline-per-chained-call': [0], 112 + '@stylistic/js/no-confusing-arrow': [0], 113 + '@stylistic/js/no-extra-parens': [0], 114 + '@stylistic/js/no-extra-semi': [2], 115 + '@stylistic/js/no-floating-decimal': [0], 116 + '@stylistic/js/no-mixed-operators': [0], 117 + '@stylistic/js/no-mixed-spaces-and-tabs': [2], 118 + 119 + '@stylistic/js/no-multi-spaces': [2, { 120 + ignoreEOLComments: true, 121 + 122 + exceptions: { 123 + Property: true, 124 + }, 125 + }], 126 + 127 + '@stylistic/js/no-multiple-empty-lines': [2, { 128 + max: 1, 129 + maxEOF: 0, 130 + maxBOF: 0, 131 + }], 132 + 133 + '@stylistic/js/no-tabs': [2], 134 + '@stylistic/js/no-trailing-spaces': [2], 135 + '@stylistic/js/no-whitespace-before-property': [2], 136 + '@stylistic/js/nonblock-statement-body-position': [2], 137 + '@stylistic/js/object-curly-newline': [0], 138 + '@stylistic/js/object-curly-spacing': [2, 'never'], 139 + '@stylistic/js/object-property-newline': [0], 140 + '@stylistic/js/one-var-declaration-per-line': [0], 141 + '@stylistic/js/operator-linebreak': [2, 'after'], 142 + '@stylistic/js/padded-blocks': [2, 'never'], 143 + '@stylistic/js/padding-line-between-statements': [0], 144 + '@stylistic/js/quote-props': [0], 145 + 146 + '@stylistic/js/quotes': [2, 'single', { 147 + avoidEscape: true, 148 + allowTemplateLiterals: true, 149 + }], 150 + 151 + '@stylistic/js/rest-spread-spacing': [2, 'never'], 152 + 153 + '@stylistic/js/semi': [2, 'always', { 154 + omitLastInOneLineBlock: true, 155 + }], 156 + 157 + '@stylistic/js/semi-spacing': [2, { 158 + before: false, 159 + after: true, 160 + }], 161 + 162 + '@stylistic/js/semi-style': [2, 'last'], 163 + '@stylistic/js/space-before-blocks': [2, 'always'], 164 + 165 + '@stylistic/js/space-before-function-paren': [2, { 166 + anonymous: 'ignore', 167 + named: 'never', 168 + asyncArrow: 'always', 169 + }], 170 + 171 + '@stylistic/js/space-in-parens': [2, 'never'], 172 + '@stylistic/js/space-infix-ops': [2], 173 + '@stylistic/js/space-unary-ops': [2], 174 + '@stylistic/js/spaced-comment': [2, 'always'], 175 + '@stylistic/js/switch-colon-spacing': [2], 176 + '@stylistic/js/template-curly-spacing': [2, 'never'], 177 + '@stylistic/js/template-tag-spacing': [2, 'never'], 178 + '@stylistic/js/wrap-iife': [2, 'inside'], 179 + '@stylistic/js/wrap-regex': [0], 180 + '@stylistic/js/yield-star-spacing': [2, 'after'], 181 + 'accessor-pairs': [2], 182 + 183 + 'array-callback-return': [2, { 184 + checkForEach: true, 185 + }], 186 + 187 + 'array-func/avoid-reverse': [2], 188 + 'array-func/from-map': [2], 189 + 'array-func/no-unnecessary-this-arg': [2], 190 + 'array-func/prefer-array-from': [2], 191 + 'array-func/prefer-flat-map': [0], 192 + 'array-func/prefer-flat': [0], 193 + 'arrow-body-style': [0], 194 + 'block-scoped-var': [2], 195 + camelcase: [0], 196 + 'capitalized-comments': [0], 197 + 'class-methods-use-this': [0], 198 + complexity: [0], 199 + 'consistent-return': [0], 200 + 'consistent-this': [0], 201 + 'constructor-super': [2], 202 + curly: [0], 203 + 'default-case-last': [2], 204 + 'default-case': [0], 205 + 'default-param-last': [0], 206 + 'dot-notation': [0], 207 + eqeqeq: [2], 208 + 'for-direction': [2], 209 + 'func-name-matching': [2], 210 + 'func-names': [0], 211 + 'func-style': [0], 212 + 'getter-return': [2], 213 + 'grouped-accessor-pairs': [2], 214 + 'guard-for-in': [0], 215 + 'id-blacklist': [0], 216 + 'id-length': [0], 217 + 'id-match': [0], 218 + 'init-declarations': [0], 219 + 'line-comment-position': [0], 220 + 'logical-assignment-operators': [0], 221 + 'max-classes-per-file': [0], 222 + 'max-depth': [0], 223 + 'max-lines-per-function': [0], 224 + 'max-lines': [0], 225 + 'max-nested-callbacks': [0], 226 + 'max-params': [0], 227 + 'max-statements': [0], 228 + 'multiline-comment-style': [2, 'separate-lines'], 229 + 'new-cap': [0], 230 + 'no-alert': [0], 231 + 'no-array-constructor': [2], 232 + 'no-async-promise-executor': [0], 233 + 'no-await-in-loop': [0], 234 + 'no-bitwise': [0], 235 + 'no-buffer-constructor': [0], 236 + 'no-caller': [2], 237 + 'no-case-declarations': [2], 238 + 'no-class-assign': [2], 239 + 'no-compare-neg-zero': [2], 240 + 'no-cond-assign': [2, 'except-parens'], 241 + 242 + 'no-console': [1, { 243 + allow: ['debug', 'info', 'warn', 'error'], 244 + }], 245 + 246 + 'no-const-assign': [2], 247 + 'no-constant-binary-expression': [2], 248 + 'no-constant-condition': [0], 249 + 'no-constructor-return': [2], 250 + 'no-continue': [0], 251 + 'no-control-regex': [0], 252 + 'no-debugger': [1], 253 + 'no-delete-var': [2], 254 + 'no-div-regex': [0], 255 + 'no-dupe-args': [2], 256 + 'no-dupe-class-members': [2], 257 + 'no-dupe-else-if': [2], 258 + 'no-dupe-keys': [2], 259 + 'no-duplicate-case': [2], 260 + 'no-duplicate-imports': [2], 261 + 'no-else-return': [2], 262 + 'no-empty-character-class': [2], 263 + 'no-empty-function': [0], 264 + 'no-empty-pattern': [2], 265 + 'no-empty-static-block': [2], 266 + 267 + 'no-empty': [2, { 268 + allowEmptyCatch: true, 269 + }], 270 + 271 + 'no-eq-null': [2], 272 + 'no-eval': [2], 273 + 'no-ex-assign': [2], 274 + 'no-extend-native': [2], 275 + 'no-extra-bind': [2], 276 + 'no-extra-boolean-cast': [2], 277 + 'no-extra-label': [0], 278 + 'no-fallthrough': [2], 279 + 'no-func-assign': [2], 280 + 'no-global-assign': [2], 281 + 'no-implicit-coercion': [2], 282 + 'no-implicit-globals': [0], 283 + 'no-implied-eval': [2], 284 + 'no-import-assign': [2], 285 + 'no-inline-comments': [0], 286 + 'no-inner-declarations': [2], 287 + 'no-invalid-regexp': [2], 288 + 'no-invalid-this': [0], 289 + 'no-irregular-whitespace': [2], 290 + 'no-iterator': [2], 291 + 'no-jquery/no-ajax-events': [2], 292 + 'no-jquery/no-ajax': [2], 293 + 'no-jquery/no-and-self': [2], 294 + 'no-jquery/no-animate-toggle': [2], 295 + 'no-jquery/no-animate': [2], 296 + 'no-jquery/no-append-html': [2], 297 + 'no-jquery/no-attr': [2], 298 + 'no-jquery/no-bind': [2], 299 + 'no-jquery/no-box-model': [2], 300 + 'no-jquery/no-browser': [2], 301 + 'no-jquery/no-camel-case': [2], 302 + 'no-jquery/no-class-state': [2], 303 + 'no-jquery/no-class': [0], 304 + 'no-jquery/no-clone': [2], 305 + 'no-jquery/no-closest': [0], 306 + 'no-jquery/no-constructor-attributes': [2], 307 + 'no-jquery/no-contains': [2], 308 + 'no-jquery/no-context-prop': [2], 309 + 'no-jquery/no-css': [2], 310 + 'no-jquery/no-data': [0], 311 + 'no-jquery/no-deferred': [2], 312 + 'no-jquery/no-delegate': [2], 313 + 'no-jquery/no-each-collection': [0], 314 + 'no-jquery/no-each-util': [0], 315 + 'no-jquery/no-each': [0], 316 + 'no-jquery/no-error-shorthand': [2], 317 + 'no-jquery/no-error': [2], 318 + 'no-jquery/no-escape-selector': [2], 319 + 'no-jquery/no-event-shorthand': [2], 320 + 'no-jquery/no-extend': [2], 321 + 'no-jquery/no-fade': [2], 322 + 'no-jquery/no-filter': [0], 323 + 'no-jquery/no-find-collection': [0], 324 + 'no-jquery/no-find-util': [2], 325 + 'no-jquery/no-find': [0], 326 + 'no-jquery/no-fx-interval': [2], 327 + 'no-jquery/no-global-eval': [2], 328 + 'no-jquery/no-global-selector': [0], 329 + 'no-jquery/no-grep': [2], 330 + 'no-jquery/no-has': [2], 331 + 'no-jquery/no-hold-ready': [2], 332 + 'no-jquery/no-html': [0], 333 + 'no-jquery/no-in-array': [2], 334 + 'no-jquery/no-is-array': [2], 335 + 'no-jquery/no-is-empty-object': [2], 336 + 'no-jquery/no-is-function': [2], 337 + 'no-jquery/no-is-numeric': [2], 338 + 'no-jquery/no-is-plain-object': [2], 339 + 'no-jquery/no-is-window': [2], 340 + 'no-jquery/no-is': [2], 341 + 'no-jquery/no-jquery-constructor': [0], 342 + 'no-jquery/no-live': [2], 343 + 'no-jquery/no-load-shorthand': [2], 344 + 'no-jquery/no-load': [2], 345 + 'no-jquery/no-map-collection': [0], 346 + 'no-jquery/no-map-util': [2], 347 + 'no-jquery/no-map': [2], 348 + 'no-jquery/no-merge': [2], 349 + 'no-jquery/no-node-name': [2], 350 + 'no-jquery/no-noop': [2], 351 + 'no-jquery/no-now': [2], 352 + 'no-jquery/no-on-ready': [2], 353 + 'no-jquery/no-other-methods': [0], 354 + 'no-jquery/no-other-utils': [2], 355 + 'no-jquery/no-param': [2], 356 + 'no-jquery/no-parent': [0], 357 + 'no-jquery/no-parents': [2], 358 + 'no-jquery/no-parse-html-literal': [2], 359 + 'no-jquery/no-parse-html': [2], 360 + 'no-jquery/no-parse-json': [2], 361 + 'no-jquery/no-parse-xml': [2], 362 + 'no-jquery/no-prop': [2], 363 + 'no-jquery/no-proxy': [2], 364 + 'no-jquery/no-ready-shorthand': [2], 365 + 'no-jquery/no-ready': [2], 366 + 'no-jquery/no-selector-prop': [2], 367 + 'no-jquery/no-serialize': [2], 368 + 'no-jquery/no-size': [2], 369 + 'no-jquery/no-sizzle': [0], 370 + 'no-jquery/no-slide': [2], 371 + 'no-jquery/no-sub': [2], 372 + 'no-jquery/no-support': [2], 373 + 'no-jquery/no-text': [0], 374 + 'no-jquery/no-trigger': [0], 375 + 'no-jquery/no-trim': [2], 376 + 'no-jquery/no-type': [2], 377 + 'no-jquery/no-unique': [2], 378 + 'no-jquery/no-unload-shorthand': [2], 379 + 'no-jquery/no-val': [0], 380 + 'no-jquery/no-visibility': [2], 381 + 'no-jquery/no-when': [2], 382 + 'no-jquery/no-wrap': [2], 383 + 'no-jquery/variable-pattern': [2], 384 + 'no-label-var': [2], 385 + 'no-labels': [0], 386 + 'no-lone-blocks': [2], 387 + 'no-lonely-if': [0], 388 + 'no-loop-func': [0], 389 + 'no-loss-of-precision': [2], 390 + 'no-magic-numbers': [0], 391 + 'no-misleading-character-class': [2], 392 + 'no-multi-assign': [0], 393 + 'no-multi-str': [2], 394 + 'no-negated-condition': [0], 395 + 'no-nested-ternary': [0], 396 + 'no-new-func': [2], 397 + 'no-new-native-nonconstructor': [2], 398 + 'no-new-object': [2], 399 + 'no-new-symbol': [2], 400 + 'no-new-wrappers': [2], 401 + 'no-new': [0], 402 + 'no-nonoctal-decimal-escape': [2], 403 + 'no-obj-calls': [2], 404 + 'no-octal-escape': [2], 405 + 'no-octal': [2], 406 + 'no-param-reassign': [0], 407 + 'no-plusplus': [0], 408 + 'no-promise-executor-return': [0], 409 + 'no-proto': [2], 410 + 'no-prototype-builtins': [2], 411 + 'no-redeclare': [2], 412 + 'no-regex-spaces': [2], 413 + 'no-restricted-exports': [0], 414 + 415 + 'no-restricted-globals': [ 416 + 2, 417 + 'addEventListener', 418 + 'blur', 419 + 'close', 420 + 'closed', 421 + 'confirm', 422 + 'defaultStatus', 423 + 'defaultstatus', 424 + 'error', 425 + 'event', 426 + 'external', 427 + 'find', 428 + 'focus', 429 + 'frameElement', 430 + 'frames', 431 + 'history', 432 + 'innerHeight', 433 + 'innerWidth', 434 + 'isFinite', 435 + 'isNaN', 436 + 'length', 437 + 'location', 438 + 'locationbar', 439 + 'menubar', 440 + 'moveBy', 441 + 'moveTo', 442 + 'name', 443 + 'onblur', 444 + 'onerror', 445 + 'onfocus', 446 + 'onload', 447 + 'onresize', 448 + 'onunload', 449 + 'open', 450 + 'opener', 451 + 'opera', 452 + 'outerHeight', 453 + 'outerWidth', 454 + 'pageXOffset', 455 + 'pageYOffset', 456 + 'parent', 457 + 'print', 458 + 'removeEventListener', 459 + 'resizeBy', 460 + 'resizeTo', 461 + 'screen', 462 + 'screenLeft', 463 + 'screenTop', 464 + 'screenX', 465 + 'screenY', 466 + 'scroll', 467 + 'scrollbars', 468 + 'scrollBy', 469 + 'scrollTo', 470 + 'scrollX', 471 + 'scrollY', 472 + 'self', 473 + 'status', 474 + 'statusbar', 475 + 'stop', 476 + 'toolbar', 477 + 'top', 478 + '__dirname', 479 + '__filename', 480 + ], 481 + 482 + 'no-restricted-imports': [0], 483 + 484 + 'no-restricted-syntax': [ 485 + 2, 486 + 'WithStatement', 487 + 'ForInStatement', 488 + 'LabeledStatement', 489 + 'SequenceExpression', 490 + { 491 + selector: "CallExpression[callee.name='fetch']", 492 + message: 'use modules/fetch.js instead', 493 + }, 494 + ], 495 + 496 + 'no-return-assign': [0], 497 + 'no-script-url': [2], 498 + 499 + 'no-self-assign': [2, { 500 + props: true, 501 + }], 502 + 503 + 'no-self-compare': [2], 504 + 'no-sequences': [2], 505 + 'no-setter-return': [2], 506 + 'no-shadow-restricted-names': [2], 507 + 'no-shadow': [0], 508 + 'no-sparse-arrays': [2], 509 + 'no-template-curly-in-string': [2], 510 + 'no-ternary': [0], 511 + 'no-this-before-super': [2], 512 + 'no-throw-literal': [2], 513 + 'no-undef-init': [2], 514 + 515 + 'no-undef': [2, { 516 + typeof: true, 517 + }], 518 + 519 + 'no-undefined': [0], 520 + 'no-underscore-dangle': [0], 521 + 'no-unexpected-multiline': [2], 522 + 'no-unmodified-loop-condition': [2], 523 + 'no-unneeded-ternary': [2], 524 + 'no-unreachable-loop': [2], 525 + 'no-unreachable': [2], 526 + 'no-unsafe-finally': [2], 527 + 'no-unsafe-negation': [2], 528 + 'no-unused-expressions': [2], 529 + 'no-unused-labels': [2], 530 + 'no-unused-private-class-members': [2], 531 + 532 + 'no-unused-vars': [2, { 533 + args: 'all', 534 + argsIgnorePattern: '^_', 535 + varsIgnorePattern: '^_', 536 + caughtErrorsIgnorePattern: '^_', 537 + destructuredArrayIgnorePattern: '^_', 538 + ignoreRestSiblings: false, 539 + }], 540 + 541 + 'no-use-before-define': [2, { 542 + functions: false, 543 + classes: true, 544 + variables: true, 545 + allowNamedExports: true, 546 + }], 547 + 548 + 'no-use-extend-native/no-use-extend-native': [2], 549 + 'no-useless-backreference': [2], 550 + 'no-useless-call': [2], 551 + 'no-useless-catch': [2], 552 + 'no-useless-computed-key': [2], 553 + 'no-useless-concat': [2], 554 + 'no-useless-constructor': [2], 555 + 'no-useless-escape': [2], 556 + 'no-useless-rename': [2], 557 + 'no-useless-return': [2], 558 + 'no-var': [2], 559 + 'no-void': [2], 560 + 'no-warning-comments': [0], 561 + 'no-with': [0], 562 + 'object-shorthand': [2, 'always'], 563 + 'one-var-declaration-per-line': [0], 564 + 'one-var': [0], 565 + 'operator-assignment': [2, 'always'], 566 + 'operator-linebreak': [2, 'after'], 567 + 568 + 'prefer-arrow-callback': [2, { 569 + allowNamedFunctions: true, 570 + allowUnboundThis: true, 571 + }], 572 + 573 + 'prefer-const': [2, { 574 + destructuring: 'all', 575 + ignoreReadBeforeAssign: true, 576 + }], 577 + 578 + 'prefer-destructuring': [0], 579 + 'prefer-exponentiation-operator': [2], 580 + 'prefer-named-capture-group': [0], 581 + 'prefer-numeric-literals': [2], 582 + 'prefer-object-has-own': [2], 583 + 'prefer-object-spread': [2], 584 + 585 + 'prefer-promise-reject-errors': [2, { 586 + allowEmptyReject: false, 587 + }], 588 + 589 + 'prefer-regex-literals': [2], 590 + 'prefer-rest-params': [2], 591 + 'prefer-spread': [2], 592 + 'prefer-template': [2], 593 + radix: [2, 'as-needed'], 594 + 'regexp/confusing-quantifier': [2], 595 + 'regexp/control-character-escape': [2], 596 + 'regexp/hexadecimal-escape': [0], 597 + 'regexp/letter-case': [0], 598 + 'regexp/match-any': [2], 599 + 'regexp/negation': [2], 600 + 'regexp/no-contradiction-with-assertion': [0], 601 + 'regexp/no-control-character': [0], 602 + 'regexp/no-dupe-characters-character-class': [2], 603 + 'regexp/no-dupe-disjunctions': [2], 604 + 'regexp/no-empty-alternative': [2], 605 + 'regexp/no-empty-capturing-group': [2], 606 + 'regexp/no-empty-character-class': [0], 607 + 'regexp/no-empty-group': [2], 608 + 'regexp/no-empty-lookarounds-assertion': [2], 609 + 'regexp/no-empty-string-literal': [2], 610 + 'regexp/no-escape-backspace': [2], 611 + 'regexp/no-extra-lookaround-assertions': [0], 612 + 'regexp/no-invalid-regexp': [2], 613 + 'regexp/no-invisible-character': [2], 614 + 'regexp/no-lazy-ends': [2], 615 + 'regexp/no-legacy-features': [2], 616 + 'regexp/no-misleading-capturing-group': [0], 617 + 'regexp/no-misleading-unicode-character': [0], 618 + 'regexp/no-missing-g-flag': [2], 619 + 'regexp/no-non-standard-flag': [2], 620 + 'regexp/no-obscure-range': [2], 621 + 'regexp/no-octal': [2], 622 + 'regexp/no-optional-assertion': [2], 623 + 'regexp/no-potentially-useless-backreference': [2], 624 + 'regexp/no-standalone-backslash': [2], 625 + 'regexp/no-super-linear-backtracking': [0], 626 + 'regexp/no-super-linear-move': [0], 627 + 'regexp/no-trivially-nested-assertion': [2], 628 + 'regexp/no-trivially-nested-quantifier': [2], 629 + 'regexp/no-unused-capturing-group': [0], 630 + 'regexp/no-useless-assertions': [2], 631 + 'regexp/no-useless-backreference': [2], 632 + 'regexp/no-useless-character-class': [2], 633 + 'regexp/no-useless-dollar-replacements': [2], 634 + 'regexp/no-useless-escape': [2], 635 + 'regexp/no-useless-flag': [2], 636 + 'regexp/no-useless-lazy': [2], 637 + 'regexp/no-useless-non-capturing-group': [2], 638 + 'regexp/no-useless-quantifier': [2], 639 + 'regexp/no-useless-range': [2], 640 + 'regexp/no-useless-set-operand': [2], 641 + 'regexp/no-useless-string-literal': [2], 642 + 'regexp/no-useless-two-nums-quantifier': [2], 643 + 'regexp/no-zero-quantifier': [2], 644 + 'regexp/optimal-lookaround-quantifier': [2], 645 + 'regexp/optimal-quantifier-concatenation': [0], 646 + 'regexp/prefer-character-class': [0], 647 + 'regexp/prefer-d': [0], 648 + 'regexp/prefer-escape-replacement-dollar-char': [0], 649 + 'regexp/prefer-lookaround': [0], 650 + 'regexp/prefer-named-backreference': [0], 651 + 'regexp/prefer-named-capture-group': [0], 652 + 'regexp/prefer-named-replacement': [0], 653 + 'regexp/prefer-plus-quantifier': [2], 654 + 'regexp/prefer-predefined-assertion': [2], 655 + 'regexp/prefer-quantifier': [0], 656 + 'regexp/prefer-question-quantifier': [2], 657 + 'regexp/prefer-range': [2], 658 + 'regexp/prefer-regexp-exec': [2], 659 + 'regexp/prefer-regexp-test': [2], 660 + 'regexp/prefer-result-array-groups': [0], 661 + 'regexp/prefer-set-operation': [2], 662 + 'regexp/prefer-star-quantifier': [2], 663 + 'regexp/prefer-unicode-codepoint-escapes': [2], 664 + 'regexp/prefer-w': [0], 665 + 'regexp/require-unicode-regexp': [0], 666 + 'regexp/simplify-set-operations': [2], 667 + 'regexp/sort-alternatives': [0], 668 + 'regexp/sort-character-class-elements': [0], 669 + 'regexp/sort-flags': [0], 670 + 'regexp/strict': [2], 671 + 'regexp/unicode-escape': [0], 672 + 'regexp/use-ignore-case': [0], 673 + 'require-atomic-updates': [0], 674 + 'require-await': [0], 675 + 'require-unicode-regexp': [0], 676 + 'require-yield': [2], 677 + 'sonarjs/cognitive-complexity': [0], 678 + 'sonarjs/elseif-without-else': [0], 679 + 'sonarjs/max-switch-cases': [0], 680 + 'sonarjs/no-all-duplicated-branches': [2], 681 + 'sonarjs/no-collapsible-if': [0], 682 + 'sonarjs/no-collection-size-mischeck': [2], 683 + 'sonarjs/no-duplicate-string': [0], 684 + 'sonarjs/no-duplicated-branches': [0], 685 + 'sonarjs/no-element-overwrite': [2], 686 + 'sonarjs/no-empty-collection': [2], 687 + 'sonarjs/no-extra-arguments': [2], 688 + 'sonarjs/no-gratuitous-expressions': [2], 689 + 'sonarjs/no-identical-conditions': [2], 690 + 'sonarjs/no-identical-expressions': [2], 691 + 'sonarjs/no-identical-functions': [2, 5], 692 + 'sonarjs/no-ignored-return': [2], 693 + 'sonarjs/no-inverted-boolean-check': [2], 694 + 'sonarjs/no-nested-switch': [0], 695 + 'sonarjs/no-nested-template-literals': [0], 696 + 'sonarjs/no-one-iteration-loop': [2], 697 + 'sonarjs/no-redundant-boolean': [2], 698 + 'sonarjs/no-redundant-jump': [2], 699 + 'sonarjs/no-same-line-conditional': [2], 700 + 'sonarjs/no-small-switch': [0], 701 + 'sonarjs/no-unused-collection': [2], 702 + 'sonarjs/no-use-of-empty-return-value': [2], 703 + 'sonarjs/no-useless-catch': [2], 704 + 'sonarjs/non-existent-operator': [2], 705 + 'sonarjs/prefer-immediate-return': [0], 706 + 'sonarjs/prefer-object-literal': [0], 707 + 'sonarjs/prefer-single-boolean-return': [0], 708 + 'sonarjs/prefer-while': [2], 709 + 'sort-imports': [0], 710 + 'sort-keys': [0], 711 + 'sort-vars': [0], 712 + strict: [0], 713 + 'symbol-description': [2], 714 + 'unicode-bom': [2, 'never'], 715 + 'unicorn/better-regex': [0], 716 + 'unicorn/catch-error-name': [0], 717 + 'unicorn/consistent-destructuring': [2], 718 + 'unicorn/consistent-empty-array-spread': [2], 719 + 'unicorn/consistent-existence-index-check': [2], 720 + 'unicorn/consistent-function-scoping': [2], 721 + 'unicorn/custom-error-definition': [0], 722 + 'unicorn/empty-brace-spaces': [2], 723 + 'unicorn/error-message': [0], 724 + 'unicorn/escape-case': [0], 725 + 'unicorn/expiring-todo-comments': [0], 726 + 'unicorn/explicit-length-check': [0], 727 + 'unicorn/filename-case': [0], 728 + 'unicorn/import-index': [0], 729 + 'unicorn/import-style': [0], 730 + 'unicorn/new-for-builtins': [2], 731 + 'unicorn/no-abusive-eslint-disable': [0], 732 + 'unicorn/no-anonymous-default-export': [0], 733 + 'unicorn/no-array-callback-reference': [0], 734 + 'unicorn/no-array-for-each': [2], 735 + 'unicorn/no-array-method-this-argument': [2], 736 + 'unicorn/no-array-push-push': [2], 737 + 'unicorn/no-array-reduce': [2], 738 + 'unicorn/no-await-expression-member': [0], 739 + 'unicorn/no-await-in-promise-methods': [2], 740 + 'unicorn/no-console-spaces': [0], 741 + 'unicorn/no-document-cookie': [2], 742 + 'unicorn/no-empty-file': [2], 743 + 'unicorn/no-for-loop': [0], 744 + 'unicorn/no-hex-escape': [0], 745 + 'unicorn/no-instanceof-array': [0], 746 + 'unicorn/no-invalid-fetch-options': [2], 747 + 'unicorn/no-invalid-remove-event-listener': [2], 748 + 'unicorn/no-keyword-prefix': [0], 749 + 'unicorn/no-length-as-slice-end': [2], 750 + 'unicorn/no-lonely-if': [2], 751 + 'unicorn/no-magic-array-flat-depth': [0], 752 + 'unicorn/no-negated-condition': [0], 753 + 'unicorn/no-negation-in-equality-check': [2], 754 + 'unicorn/no-nested-ternary': [0], 755 + 'unicorn/no-new-array': [0], 756 + 'unicorn/no-new-buffer': [0], 757 + 'unicorn/no-null': [0], 758 + 'unicorn/no-object-as-default-parameter': [0], 759 + 'unicorn/no-process-exit': [0], 760 + 'unicorn/no-single-promise-in-promise-methods': [2], 761 + 'unicorn/no-static-only-class': [2], 762 + 'unicorn/no-thenable': [2], 763 + 'unicorn/no-this-assignment': [2], 764 + 'unicorn/no-typeof-undefined': [2], 765 + 'unicorn/no-unnecessary-await': [2], 766 + 'unicorn/no-unnecessary-polyfills': [2], 767 + 'unicorn/no-unreadable-array-destructuring': [0], 768 + 'unicorn/no-unreadable-iife': [2], 769 + 'unicorn/no-unused-properties': [2], 770 + 'unicorn/no-useless-fallback-in-spread': [2], 771 + 'unicorn/no-useless-length-check': [2], 772 + 'unicorn/no-useless-promise-resolve-reject': [2], 773 + 'unicorn/no-useless-spread': [2], 774 + 'unicorn/no-useless-switch-case': [2], 775 + 'unicorn/no-useless-undefined': [0], 776 + 'unicorn/no-zero-fractions': [2], 777 + 'unicorn/number-literal-case': [0], 778 + 'unicorn/numeric-separators-style': [0], 779 + 'unicorn/prefer-add-event-listener': [2], 780 + 'unicorn/prefer-array-find': [2], 781 + 'unicorn/prefer-array-flat-map': [2], 782 + 'unicorn/prefer-array-flat': [2], 783 + 'unicorn/prefer-array-index-of': [2], 784 + 'unicorn/prefer-array-some': [2], 785 + 'unicorn/prefer-at': [0], 786 + 'unicorn/prefer-blob-reading-methods': [2], 787 + 'unicorn/prefer-code-point': [0], 788 + 'unicorn/prefer-date-now': [2], 789 + 'unicorn/prefer-default-parameters': [0], 790 + 'unicorn/prefer-dom-node-append': [2], 791 + 'unicorn/prefer-dom-node-dataset': [0], 792 + 'unicorn/prefer-dom-node-remove': [2], 793 + 'unicorn/prefer-dom-node-text-content': [2], 794 + 'unicorn/prefer-event-target': [2], 795 + 'unicorn/prefer-export-from': [0], 796 + 'unicorn/prefer-global-this': [0], 797 + 'unicorn/prefer-includes': [2], 798 + 'unicorn/prefer-json-parse-buffer': [0], 799 + 'unicorn/prefer-keyboard-event-key': [2], 800 + 'unicorn/prefer-logical-operator-over-ternary': [2], 801 + 'unicorn/prefer-math-min-max': [2], 802 + 'unicorn/prefer-math-trunc': [2], 803 + 'unicorn/prefer-modern-dom-apis': [0], 804 + 'unicorn/prefer-modern-math-apis': [2], 805 + 'unicorn/prefer-module': [2], 806 + 'unicorn/prefer-native-coercion-functions': [2], 807 + 'unicorn/prefer-negative-index': [2], 808 + 'unicorn/prefer-node-protocol': [2], 809 + 'unicorn/prefer-number-properties': [0], 810 + 'unicorn/prefer-object-from-entries': [2], 811 + 'unicorn/prefer-object-has-own': [0], 812 + 'unicorn/prefer-optional-catch-binding': [2], 813 + 'unicorn/prefer-prototype-methods': [0], 814 + 'unicorn/prefer-query-selector': [0], 815 + 'unicorn/prefer-reflect-apply': [0], 816 + 'unicorn/prefer-regexp-test': [2], 817 + 'unicorn/prefer-set-has': [0], 818 + 'unicorn/prefer-set-size': [2], 819 + 'unicorn/prefer-spread': [0], 820 + 'unicorn/prefer-string-raw': [0], 821 + 'unicorn/prefer-string-replace-all': [0], 822 + 'unicorn/prefer-string-slice': [0], 823 + 'unicorn/prefer-string-starts-ends-with': [2], 824 + 'unicorn/prefer-string-trim-start-end': [2], 825 + 'unicorn/prefer-structured-clone': [2], 826 + 'unicorn/prefer-switch': [0], 827 + 'unicorn/prefer-ternary': [0], 828 + 'unicorn/prefer-text-content': [2], 829 + 'unicorn/prefer-top-level-await': [0], 830 + 'unicorn/prefer-type-error': [0], 831 + 'unicorn/prevent-abbreviations': [0], 832 + 'unicorn/relative-url-style': [2], 833 + 'unicorn/require-array-join-separator': [2], 834 + 'unicorn/require-number-to-fixed-digits-argument': [2], 835 + 'unicorn/require-post-message-target-origin': [0], 836 + 'unicorn/string-content': [0], 837 + 'unicorn/switch-case-braces': [0], 838 + 'unicorn/template-indent': [2], 839 + 'unicorn/text-encoding-identifier-case': [0], 840 + 'unicorn/throw-new-error': [2], 841 + 'use-isnan': [2], 842 + 843 + 'valid-typeof': [2, { 844 + requireStringLiterals: true, 845 + }], 846 + 847 + 'vars-on-top': [0], 848 + 'wc/attach-shadow-constructor': [2], 849 + 'wc/define-tag-after-class-definition': [0], 850 + 'wc/expose-class-on-global': [0], 851 + 'wc/file-name-matches-element': [2], 852 + 'wc/guard-define-call': [0], 853 + 'wc/guard-super-call': [2], 854 + 'wc/max-elements-per-file': [0], 855 + 'wc/no-child-traversal-in-attributechangedcallback': [2], 856 + 'wc/no-child-traversal-in-connectedcallback': [2], 857 + 'wc/no-closed-shadow-root': [2], 858 + 'wc/no-constructor-attributes': [2], 859 + 'wc/no-constructor-params': [2], 860 + 'wc/no-constructor': [2], 861 + 'wc/no-customized-built-in-elements': [2], 862 + 'wc/no-exports-with-element': [0], 863 + 'wc/no-invalid-element-name': [2], 864 + 'wc/no-invalid-extends': [2], 865 + 'wc/no-method-prefixed-with-on': [2], 866 + 'wc/no-self-class': [2], 867 + 'wc/no-typos': [2], 868 + 'wc/require-listener-teardown': [2], 869 + 'wc/tag-name-matches-class': [2], 870 + yoda: [2, 'never'], 871 + }, 872 + }, 873 + { 874 + ignores: ['*.vue', '**/*.vue'], 875 + rules: { 876 + 'import-x/consistent-type-specifier-style': [0], 877 + 'import-x/default': [0], 878 + 'import-x/dynamic-import-chunkname': [0], 879 + 'import-x/export': [2], 880 + 'import-x/exports-last': [0], 881 + 882 + 'import-x/extensions': [2, 'always', { 883 + ignorePackages: true, 884 + }], 885 + 886 + 'import-x/first': [2], 887 + 'import-x/group-exports': [0], 888 + 'import-x/max-dependencies': [0], 889 + 'import-x/named': [2], 890 + 'import-x/namespace': [0], 891 + 'import-x/newline-after-import': [0], 892 + 'import-x/no-absolute-path': [0], 893 + 'import-x/no-amd': [2], 894 + 'import-x/no-anonymous-default-export': [0], 895 + 'import-x/no-commonjs': [2], 896 + 897 + 'import-x/no-cycle': [2, { 898 + ignoreExternal: true, 899 + maxDepth: 1, 900 + }], 901 + 902 + 'import-x/no-default-export': [0], 903 + 'import-x/no-deprecated': [0], 904 + 'import-x/no-dynamic-require': [0], 905 + 'import-x/no-empty-named-blocks': [2], 906 + 'import-x/no-extraneous-dependencies': [2], 907 + 'import-x/no-import-module-exports': [0], 908 + 'import-x/no-internal-modules': [0], 909 + 'import-x/no-mutable-exports': [0], 910 + 'import-x/no-named-as-default-member': [0], 911 + 'import-x/no-named-as-default': [2], 912 + 'import-x/no-named-default': [0], 913 + 'import-x/no-named-export': [0], 914 + 'import-x/no-namespace': [0], 915 + 'import-x/no-nodejs-modules': [0], 916 + 'import-x/no-relative-packages': [0], 917 + 'import-x/no-relative-parent-imports': [0], 918 + 'import-x/no-restricted-paths': [0], 919 + 'import-x/no-self-import': [2], 920 + 'import-x/no-unassigned-import': [0], 921 + 922 + 'import-x/no-unresolved': [2, { 923 + commonjs: true, 924 + ignore: ['\\?.+$', '^vitest/'], 925 + }], 926 + 927 + 'import-x/no-useless-path-segments': [2, { 928 + commonjs: true, 929 + }], 930 + 931 + 'import-x/no-webpack-loader-syntax': [2], 932 + 'import-x/order': [0], 933 + 'import-x/prefer-default-export': [0], 934 + 'import-x/unambiguous': [0], 935 + }, 936 + }, 937 + { 938 + files: ['web_src/**/*'], 939 + languageOptions: { 940 + globals: { 941 + __webpack_public_path__: true, 942 + process: false, 943 + }, 944 + }, 945 + }, { 946 + files: ['web_src/**/*', 'docs/**/*'], 947 + 948 + languageOptions: { 949 + globals: { 950 + ...globals.browser, 951 + }, 952 + }, 953 + }, { 954 + files: ['web_src/**/*worker.*'], 955 + 956 + languageOptions: { 957 + globals: { 958 + ...globals.worker, 959 + }, 960 + }, 961 + 962 + rules: { 963 + 'no-restricted-globals': [ 964 + 2, 965 + 'addEventListener', 966 + 'blur', 967 + 'close', 968 + 'closed', 969 + 'confirm', 970 + 'defaultStatus', 971 + 'defaultstatus', 972 + 'error', 973 + 'event', 974 + 'external', 975 + 'find', 976 + 'focus', 977 + 'frameElement', 978 + 'frames', 979 + 'history', 980 + 'innerHeight', 981 + 'innerWidth', 982 + 'isFinite', 983 + 'isNaN', 984 + 'length', 985 + 'locationbar', 986 + 'menubar', 987 + 'moveBy', 988 + 'moveTo', 989 + 'name', 990 + 'onblur', 991 + 'onerror', 992 + 'onfocus', 993 + 'onload', 994 + 'onresize', 995 + 'onunload', 996 + 'open', 997 + 'opener', 998 + 'opera', 999 + 'outerHeight', 1000 + 'outerWidth', 1001 + 'pageXOffset', 1002 + 'pageYOffset', 1003 + 'parent', 1004 + 'print', 1005 + 'removeEventListener', 1006 + 'resizeBy', 1007 + 'resizeTo', 1008 + 'screen', 1009 + 'screenLeft', 1010 + 'screenTop', 1011 + 'screenX', 1012 + 'screenY', 1013 + 'scroll', 1014 + 'scrollbars', 1015 + 'scrollBy', 1016 + 'scrollTo', 1017 + 'scrollX', 1018 + 'scrollY', 1019 + 'status', 1020 + 'statusbar', 1021 + 'stop', 1022 + 'toolbar', 1023 + 'top', 1024 + ], 1025 + }, 1026 + }, { 1027 + files: ['**/*.config.*'], 1028 + languageOptions: { 1029 + ecmaVersion: 'latest', 1030 + }, 1031 + rules: { 1032 + 'import-x/no-unused-modules': [0], 1033 + 'import-x/no-unresolved': [0], 1034 + }, 1035 + }, { 1036 + files: ['**/*.test.*', 'web_src/js/test/setup.js'], 1037 + languageOptions: { 1038 + globals: { 1039 + ...vitestGlobals.environments.env.globals, 1040 + }, 1041 + }, 1042 + 1043 + rules: { 1044 + '@vitest/consistent-test-filename': [0], 1045 + '@vitest/consistent-test-it': [0], 1046 + '@vitest/expect-expect': [0], 1047 + '@vitest/max-expects': [0], 1048 + '@vitest/max-nested-describe': [0], 1049 + '@vitest/no-alias-methods': [0], 1050 + '@vitest/no-commented-out-tests': [0], 1051 + '@vitest/no-conditional-expect': [0], 1052 + '@vitest/no-conditional-in-test': [0], 1053 + '@vitest/no-conditional-tests': [0], 1054 + '@vitest/no-disabled-tests': [0], 1055 + '@vitest/no-done-callback': [0], 1056 + '@vitest/no-duplicate-hooks': [0], 1057 + '@vitest/no-focused-tests': [0], 1058 + '@vitest/no-hooks': [0], 1059 + '@vitest/no-identical-title': [2], 1060 + '@vitest/no-interpolation-in-snapshots': [0], 1061 + '@vitest/no-large-snapshots': [0], 1062 + '@vitest/no-mocks-import': [0], 1063 + '@vitest/no-restricted-matchers': [0], 1064 + '@vitest/no-restricted-vi-methods': [0], 1065 + '@vitest/no-standalone-expect': [0], 1066 + '@vitest/no-test-prefixes': [0], 1067 + '@vitest/no-test-return-statement': [0], 1068 + '@vitest/prefer-called-with': [0], 1069 + '@vitest/prefer-comparison-matcher': [0], 1070 + '@vitest/prefer-each': [0], 1071 + '@vitest/prefer-equality-matcher': [0], 1072 + '@vitest/prefer-expect-resolves': [0], 1073 + '@vitest/prefer-hooks-in-order': [0], 1074 + '@vitest/prefer-hooks-on-top': [2], 1075 + '@vitest/prefer-lowercase-title': [0], 1076 + '@vitest/prefer-mock-promise-shorthand': [0], 1077 + '@vitest/prefer-snapshot-hint': [0], 1078 + '@vitest/prefer-spy-on': [0], 1079 + '@vitest/prefer-strict-equal': [0], 1080 + '@vitest/prefer-to-be': [0], 1081 + '@vitest/prefer-to-be-falsy': [0], 1082 + '@vitest/prefer-to-be-object': [0], 1083 + '@vitest/prefer-to-be-truthy': [0], 1084 + '@vitest/prefer-to-contain': [0], 1085 + '@vitest/prefer-to-have-length': [0], 1086 + '@vitest/prefer-todo': [0], 1087 + '@vitest/require-hook': [0], 1088 + '@vitest/require-to-throw-message': [0], 1089 + '@vitest/require-top-level-describe': [0], 1090 + '@vitest/valid-describe-callback': [2], 1091 + '@vitest/valid-expect': [2], 1092 + '@vitest/valid-title': [2], 1093 + }, 1094 + }, { 1095 + files: ['web_src/js/modules/fetch.js', 'web_src/js/standalone/**/*'], 1096 + 1097 + rules: { 1098 + 'no-restricted-syntax': [ 1099 + 2, 1100 + 'WithStatement', 1101 + 'ForInStatement', 1102 + 'LabeledStatement', 1103 + 'SequenceExpression', 1104 + ], 1105 + }, 1106 + }, { 1107 + files: ['tests/e2e/**/*.js'], 1108 + languageOptions: { 1109 + globals: { 1110 + ...globals.browser, 1111 + }, 1112 + 1113 + ecmaVersion: 'latest', 1114 + sourceType: 'module', 1115 + }, 1116 + rules: { 1117 + ...playwright.configs['flat/recommended'].rules, 1118 + 'playwright/no-conditional-in-test': [0], 1119 + 'playwright/no-conditional-expect': [0], 1120 + 'playwright/no-networkidle': [0], 1121 + 1122 + 'playwright/no-skipped-test': [ 1123 + 2, 1124 + { 1125 + allowConditional: true, 1126 + }, 1127 + ], 1128 + 1129 + 'playwright/prefer-comparison-matcher': [2], 1130 + 'playwright/prefer-equality-matcher': [2], 1131 + 'playwright/prefer-to-contain': [2], 1132 + 'playwright/prefer-to-have-length': [2], 1133 + 'playwright/require-to-throw-message': [2], 1134 + }, 1135 + }, 1136 + ...vue.configs['flat/recommended'], 1137 + { 1138 + files: ['web_src/js/components/*.vue'], 1139 + languageOptions: { 1140 + globals: { 1141 + ...globals.browser, 1142 + }, 1143 + 1144 + ecmaVersion: 'latest', 1145 + sourceType: 'module', 1146 + }, 1147 + rules: { 1148 + 'vue/attributes-order': [0], 1149 + 'vue/html-closing-bracket-spacing': [2, { 1150 + startTag: 'never', 1151 + endTag: 'never', 1152 + selfClosingTag: 'never', 1153 + }], 1154 + 'vue/max-attributes-per-line': [0], 1155 + 'vue-scoped-css/enforce-style-type': [0], 1156 + }, 1157 + }, 1158 + 1159 + ];
+258 -606
package-lock.json
··· 70 70 "@vitest/coverage-v8": "2.1.3", 71 71 "@vitest/eslint-plugin": "1.1.7", 72 72 "@vue/test-utils": "2.4.6", 73 - "eslint": "8.57.1", 73 + "eslint": "9.13.0", 74 74 "eslint-plugin-array-func": "4.0.0", 75 - "eslint-plugin-github": "5.0.2", 76 - "eslint-plugin-i": "2.29.1", 75 + "eslint-plugin-import-x": "4.3.1", 77 76 "eslint-plugin-no-jquery": "3.0.2", 78 77 "eslint-plugin-no-use-extend-native": "0.5.0", 79 78 "eslint-plugin-playwright": "1.6.2", ··· 84 83 "eslint-plugin-vue": "9.28.0", 85 84 "eslint-plugin-vue-scoped-css": "2.8.1", 86 85 "eslint-plugin-wc": "2.2.0", 86 + "globals": "15.11.0", 87 87 "happy-dom": "15.7.4", 88 88 "license-checker-rseidelsohn": "4.4.2", 89 89 "markdownlint-cli": "0.42.0", ··· 3019 3019 "node": "^12.0.0 || ^14.0.0 || >=16.0.0" 3020 3020 } 3021 3021 }, 3022 + "node_modules/@eslint/config-array": { 3023 + "version": "0.18.0", 3024 + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", 3025 + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", 3026 + "dev": true, 3027 + "license": "Apache-2.0", 3028 + "dependencies": { 3029 + "@eslint/object-schema": "^2.1.4", 3030 + "debug": "^4.3.1", 3031 + "minimatch": "^3.1.2" 3032 + }, 3033 + "engines": { 3034 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3035 + } 3036 + }, 3037 + "node_modules/@eslint/config-array/node_modules/brace-expansion": { 3038 + "version": "1.1.11", 3039 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 3040 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 3041 + "dev": true, 3042 + "license": "MIT", 3043 + "dependencies": { 3044 + "balanced-match": "^1.0.0", 3045 + "concat-map": "0.0.1" 3046 + } 3047 + }, 3048 + "node_modules/@eslint/config-array/node_modules/minimatch": { 3049 + "version": "3.1.2", 3050 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 3051 + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 3052 + "dev": true, 3053 + "license": "ISC", 3054 + "dependencies": { 3055 + "brace-expansion": "^1.1.7" 3056 + }, 3057 + "engines": { 3058 + "node": "*" 3059 + } 3060 + }, 3061 + "node_modules/@eslint/core": { 3062 + "version": "0.7.0", 3063 + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.7.0.tgz", 3064 + "integrity": "sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==", 3065 + "dev": true, 3066 + "license": "Apache-2.0", 3067 + "engines": { 3068 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3069 + } 3070 + }, 3022 3071 "node_modules/@eslint/eslintrc": { 3023 - "version": "2.1.4", 3024 - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", 3025 - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", 3072 + "version": "3.1.0", 3073 + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", 3074 + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", 3026 3075 "dev": true, 3027 3076 "license": "MIT", 3028 3077 "dependencies": { 3029 3078 "ajv": "^6.12.4", 3030 3079 "debug": "^4.3.2", 3031 - "espree": "^9.6.0", 3032 - "globals": "^13.19.0", 3080 + "espree": "^10.0.1", 3081 + "globals": "^14.0.0", 3033 3082 "ignore": "^5.2.0", 3034 3083 "import-fresh": "^3.2.1", 3035 3084 "js-yaml": "^4.1.0", ··· 3037 3086 "strip-json-comments": "^3.1.1" 3038 3087 }, 3039 3088 "engines": { 3040 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 3089 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3041 3090 }, 3042 3091 "funding": { 3043 3092 "url": "https://opencollective.com/eslint" ··· 3071 3120 "concat-map": "0.0.1" 3072 3121 } 3073 3122 }, 3074 - "node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": { 3075 - "version": "3.4.3", 3076 - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", 3077 - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", 3123 + "node_modules/@eslint/eslintrc/node_modules/globals": { 3124 + "version": "14.0.0", 3125 + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", 3126 + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", 3078 3127 "dev": true, 3079 - "license": "Apache-2.0", 3128 + "license": "MIT", 3080 3129 "engines": { 3081 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 3082 - }, 3083 - "funding": { 3084 - "url": "https://opencollective.com/eslint" 3085 - } 3086 - }, 3087 - "node_modules/@eslint/eslintrc/node_modules/espree": { 3088 - "version": "9.6.1", 3089 - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", 3090 - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", 3091 - "dev": true, 3092 - "license": "BSD-2-Clause", 3093 - "dependencies": { 3094 - "acorn": "^8.9.0", 3095 - "acorn-jsx": "^5.3.2", 3096 - "eslint-visitor-keys": "^3.4.1" 3097 - }, 3098 - "engines": { 3099 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 3130 + "node": ">=18" 3100 3131 }, 3101 3132 "funding": { 3102 - "url": "https://opencollective.com/eslint" 3133 + "url": "https://github.com/sponsors/sindresorhus" 3103 3134 } 3104 3135 }, 3105 3136 "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { ··· 3123 3154 } 3124 3155 }, 3125 3156 "node_modules/@eslint/js": { 3126 - "version": "8.57.1", 3127 - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", 3128 - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", 3157 + "version": "9.13.0", 3158 + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.13.0.tgz", 3159 + "integrity": "sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==", 3129 3160 "dev": true, 3130 3161 "license": "MIT", 3131 3162 "engines": { 3132 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 3163 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3133 3164 } 3134 3165 }, 3135 - "node_modules/@github/browserslist-config": { 3136 - "version": "1.0.0", 3137 - "resolved": "https://registry.npmjs.org/@github/browserslist-config/-/browserslist-config-1.0.0.tgz", 3138 - "integrity": "sha512-gIhjdJp/c2beaIWWIlsXdqXVRUz3r2BxBCpfz/F3JXHvSAQ1paMYjLH+maEATtENg+k5eLV7gA+9yPp762ieuw==", 3166 + "node_modules/@eslint/object-schema": { 3167 + "version": "2.1.4", 3168 + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", 3169 + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", 3170 + "dev": true, 3171 + "license": "Apache-2.0", 3172 + "engines": { 3173 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3174 + } 3175 + }, 3176 + "node_modules/@eslint/plugin-kit": { 3177 + "version": "0.2.1", 3178 + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.1.tgz", 3179 + "integrity": "sha512-HFZ4Mp26nbWk9d/BpvP0YNL6W4UoZF0VFcTw/aPPA8RpOxeFQgK+ClABGgAUXs9Y/RGX/l1vOmrqz1MQt9MNuw==", 3139 3180 "dev": true, 3140 - "license": "MIT" 3181 + "license": "Apache-2.0", 3182 + "dependencies": { 3183 + "levn": "^0.4.1" 3184 + }, 3185 + "engines": { 3186 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 3187 + } 3141 3188 }, 3142 3189 "node_modules/@github/combobox-nav": { 3143 3190 "version": "2.3.1", ··· 3167 3214 "dom-input-range": "^1.2.0" 3168 3215 } 3169 3216 }, 3170 - "node_modules/@humanwhocodes/config-array": { 3171 - "version": "0.13.0", 3172 - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", 3173 - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", 3174 - "deprecated": "Use @eslint/config-array instead", 3217 + "node_modules/@humanfs/core": { 3218 + "version": "0.19.0", 3219 + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.0.tgz", 3220 + "integrity": "sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==", 3175 3221 "dev": true, 3176 3222 "license": "Apache-2.0", 3177 - "dependencies": { 3178 - "@humanwhocodes/object-schema": "^2.0.3", 3179 - "debug": "^4.3.1", 3180 - "minimatch": "^3.0.5" 3181 - }, 3182 3223 "engines": { 3183 - "node": ">=10.10.0" 3224 + "node": ">=18.18.0" 3184 3225 } 3185 3226 }, 3186 - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { 3187 - "version": "1.1.11", 3188 - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 3189 - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 3227 + "node_modules/@humanfs/node": { 3228 + "version": "0.16.5", 3229 + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.5.tgz", 3230 + "integrity": "sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==", 3190 3231 "dev": true, 3191 - "license": "MIT", 3192 - "dependencies": { 3193 - "balanced-match": "^1.0.0", 3194 - "concat-map": "0.0.1" 3195 - } 3196 - }, 3197 - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { 3198 - "version": "3.1.2", 3199 - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 3200 - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 3201 - "dev": true, 3202 - "license": "ISC", 3232 + "license": "Apache-2.0", 3203 3233 "dependencies": { 3204 - "brace-expansion": "^1.1.7" 3234 + "@humanfs/core": "^0.19.0", 3235 + "@humanwhocodes/retry": "^0.3.0" 3205 3236 }, 3206 3237 "engines": { 3207 - "node": "*" 3238 + "node": ">=18.18.0" 3208 3239 } 3209 3240 }, 3210 3241 "node_modules/@humanwhocodes/module-importer": { ··· 3221 3252 "url": "https://github.com/sponsors/nzakas" 3222 3253 } 3223 3254 }, 3224 - "node_modules/@humanwhocodes/object-schema": { 3225 - "version": "2.0.3", 3226 - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", 3227 - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", 3228 - "deprecated": "Use @eslint/object-schema instead", 3255 + "node_modules/@humanwhocodes/retry": { 3256 + "version": "0.3.1", 3257 + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", 3258 + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", 3229 3259 "dev": true, 3230 - "license": "BSD-3-Clause" 3260 + "license": "Apache-2.0", 3261 + "engines": { 3262 + "node": ">=18.18" 3263 + }, 3264 + "funding": { 3265 + "type": "github", 3266 + "url": "https://github.com/sponsors/nzakas" 3267 + } 3231 3268 }, 3232 3269 "node_modules/@iconify/types": { 3233 3270 "version": "2.0.0", ··· 3597 3634 "optional": true, 3598 3635 "engines": { 3599 3636 "node": ">=14" 3600 - } 3601 - }, 3602 - "node_modules/@pkgr/core": { 3603 - "version": "0.1.1", 3604 - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", 3605 - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", 3606 - "dev": true, 3607 - "license": "MIT", 3608 - "engines": { 3609 - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" 3610 - }, 3611 - "funding": { 3612 - "url": "https://opencollective.com/unts" 3613 3637 } 3614 3638 }, 3615 3639 "node_modules/@playwright/test": { ··· 4603 4627 "dev": true, 4604 4628 "license": "MIT" 4605 4629 }, 4606 - "node_modules/@typescript-eslint/eslint-plugin": { 4607 - "version": "8.10.0", 4608 - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.10.0.tgz", 4609 - "integrity": "sha512-phuB3hoP7FFKbRXxjl+DRlQDuJqhpOnm5MmtROXyWi3uS/Xg2ZXqiQfcG2BJHiN4QKyzdOJi3NEn/qTnjUlkmQ==", 4610 - "dev": true, 4611 - "license": "MIT", 4612 - "dependencies": { 4613 - "@eslint-community/regexpp": "^4.10.0", 4614 - "@typescript-eslint/scope-manager": "8.10.0", 4615 - "@typescript-eslint/type-utils": "8.10.0", 4616 - "@typescript-eslint/utils": "8.10.0", 4617 - "@typescript-eslint/visitor-keys": "8.10.0", 4618 - "graphemer": "^1.4.0", 4619 - "ignore": "^5.3.1", 4620 - "natural-compare": "^1.4.0", 4621 - "ts-api-utils": "^1.3.0" 4622 - }, 4623 - "engines": { 4624 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4625 - }, 4626 - "funding": { 4627 - "type": "opencollective", 4628 - "url": "https://opencollective.com/typescript-eslint" 4629 - }, 4630 - "peerDependencies": { 4631 - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", 4632 - "eslint": "^8.57.0 || ^9.0.0" 4633 - }, 4634 - "peerDependenciesMeta": { 4635 - "typescript": { 4636 - "optional": true 4637 - } 4638 - } 4639 - }, 4640 - "node_modules/@typescript-eslint/parser": { 4641 - "version": "8.10.0", 4642 - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.10.0.tgz", 4643 - "integrity": "sha512-E24l90SxuJhytWJ0pTQydFT46Nk0Z+bsLKo/L8rtQSL93rQ6byd1V/QbDpHUTdLPOMsBCcYXZweADNCfOCmOAg==", 4644 - "dev": true, 4645 - "license": "BSD-2-Clause", 4646 - "dependencies": { 4647 - "@typescript-eslint/scope-manager": "8.10.0", 4648 - "@typescript-eslint/types": "8.10.0", 4649 - "@typescript-eslint/typescript-estree": "8.10.0", 4650 - "@typescript-eslint/visitor-keys": "8.10.0", 4651 - "debug": "^4.3.4" 4652 - }, 4653 - "engines": { 4654 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4655 - }, 4656 - "funding": { 4657 - "type": "opencollective", 4658 - "url": "https://opencollective.com/typescript-eslint" 4659 - }, 4660 - "peerDependencies": { 4661 - "eslint": "^8.57.0 || ^9.0.0" 4662 - }, 4663 - "peerDependenciesMeta": { 4664 - "typescript": { 4665 - "optional": true 4666 - } 4667 - } 4668 - }, 4669 4630 "node_modules/@typescript-eslint/scope-manager": { 4670 4631 "version": "8.10.0", 4671 4632 "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.10.0.tgz", ··· 4682 4643 "funding": { 4683 4644 "type": "opencollective", 4684 4645 "url": "https://opencollective.com/typescript-eslint" 4685 - } 4686 - }, 4687 - "node_modules/@typescript-eslint/type-utils": { 4688 - "version": "8.10.0", 4689 - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.10.0.tgz", 4690 - "integrity": "sha512-PCpUOpyQSpxBn230yIcK+LeCQaXuxrgCm2Zk1S+PTIRJsEfU6nJ0TtwyH8pIwPK/vJoA+7TZtzyAJSGBz+s/dg==", 4691 - "dev": true, 4692 - "license": "MIT", 4693 - "dependencies": { 4694 - "@typescript-eslint/typescript-estree": "8.10.0", 4695 - "@typescript-eslint/utils": "8.10.0", 4696 - "debug": "^4.3.4", 4697 - "ts-api-utils": "^1.3.0" 4698 - }, 4699 - "engines": { 4700 - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4701 - }, 4702 - "funding": { 4703 - "type": "opencollective", 4704 - "url": "https://opencollective.com/typescript-eslint" 4705 - }, 4706 - "peerDependenciesMeta": { 4707 - "typescript": { 4708 - "optional": true 4709 - } 4710 4646 } 4711 4647 }, 4712 4648 "node_modules/@typescript-eslint/types": { ··· 4821 4757 "funding": { 4822 4758 "url": "https://opencollective.com/eslint" 4823 4759 } 4824 - }, 4825 - "node_modules/@ungap/structured-clone": { 4826 - "version": "1.2.0", 4827 - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", 4828 - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", 4829 - "dev": true, 4830 - "license": "ISC" 4831 4760 }, 4832 4761 "node_modules/@vitejs/plugin-vue": { 4833 4762 "version": "5.1.4", ··· 5567 5496 "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 5568 5497 "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 5569 5498 "license": "Python-2.0" 5570 - }, 5571 - "node_modules/aria-query": { 5572 - "version": "5.3.2", 5573 - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", 5574 - "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", 5575 - "dev": true, 5576 - "license": "Apache-2.0", 5577 - "engines": { 5578 - "node": ">= 0.4" 5579 - } 5580 5499 }, 5581 5500 "node_modules/array-buffer-byte-length": { 5582 5501 "version": "1.0.1", ··· 8012 7931 } 8013 7932 }, 8014 7933 "node_modules/eslint": { 8015 - "version": "8.57.1", 8016 - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", 8017 - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", 8018 - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", 7934 + "version": "9.13.0", 7935 + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.13.0.tgz", 7936 + "integrity": "sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==", 8019 7937 "dev": true, 8020 7938 "license": "MIT", 8021 7939 "dependencies": { 8022 7940 "@eslint-community/eslint-utils": "^4.2.0", 8023 - "@eslint-community/regexpp": "^4.6.1", 8024 - "@eslint/eslintrc": "^2.1.4", 8025 - "@eslint/js": "8.57.1", 8026 - "@humanwhocodes/config-array": "^0.13.0", 7941 + "@eslint-community/regexpp": "^4.11.0", 7942 + "@eslint/config-array": "^0.18.0", 7943 + "@eslint/core": "^0.7.0", 7944 + "@eslint/eslintrc": "^3.1.0", 7945 + "@eslint/js": "9.13.0", 7946 + "@eslint/plugin-kit": "^0.2.0", 7947 + "@humanfs/node": "^0.16.5", 8027 7948 "@humanwhocodes/module-importer": "^1.0.1", 8028 - "@nodelib/fs.walk": "^1.2.8", 8029 - "@ungap/structured-clone": "^1.2.0", 7949 + "@humanwhocodes/retry": "^0.3.1", 7950 + "@types/estree": "^1.0.6", 7951 + "@types/json-schema": "^7.0.15", 8030 7952 "ajv": "^6.12.4", 8031 7953 "chalk": "^4.0.0", 8032 7954 "cross-spawn": "^7.0.2", 8033 7955 "debug": "^4.3.2", 8034 - "doctrine": "^3.0.0", 8035 7956 "escape-string-regexp": "^4.0.0", 8036 - "eslint-scope": "^7.2.2", 8037 - "eslint-visitor-keys": "^3.4.3", 8038 - "espree": "^9.6.1", 8039 - "esquery": "^1.4.2", 7957 + "eslint-scope": "^8.1.0", 7958 + "eslint-visitor-keys": "^4.1.0", 7959 + "espree": "^10.2.0", 7960 + "esquery": "^1.5.0", 8040 7961 "esutils": "^2.0.2", 8041 7962 "fast-deep-equal": "^3.1.3", 8042 - "file-entry-cache": "^6.0.1", 7963 + "file-entry-cache": "^8.0.0", 8043 7964 "find-up": "^5.0.0", 8044 7965 "glob-parent": "^6.0.2", 8045 - "globals": "^13.19.0", 8046 - "graphemer": "^1.4.0", 8047 7966 "ignore": "^5.2.0", 8048 7967 "imurmurhash": "^0.1.4", 8049 7968 "is-glob": "^4.0.0", 8050 - "is-path-inside": "^3.0.3", 8051 - "js-yaml": "^4.1.0", 8052 7969 "json-stable-stringify-without-jsonify": "^1.0.1", 8053 - "levn": "^0.4.1", 8054 7970 "lodash.merge": "^4.6.2", 8055 7971 "minimatch": "^3.1.2", 8056 7972 "natural-compare": "^1.4.0", 8057 7973 "optionator": "^0.9.3", 8058 - "strip-ansi": "^6.0.1", 8059 7974 "text-table": "^0.2.0" 8060 7975 }, 8061 7976 "bin": { 8062 7977 "eslint": "bin/eslint.js" 8063 7978 }, 8064 7979 "engines": { 8065 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 7980 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8066 7981 }, 8067 7982 "funding": { 8068 - "url": "https://opencollective.com/eslint" 7983 + "url": "https://eslint.org/donate" 7984 + }, 7985 + "peerDependencies": { 7986 + "jiti": "*" 7987 + }, 7988 + "peerDependenciesMeta": { 7989 + "jiti": { 7990 + "optional": true 7991 + } 8069 7992 } 8070 7993 }, 8071 7994 "node_modules/eslint-compat-utils": { ··· 8084 8007 "eslint": ">=6.0.0" 8085 8008 } 8086 8009 }, 8087 - "node_modules/eslint-config-prettier": { 8088 - "version": "9.1.0", 8089 - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", 8090 - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", 8091 - "dev": true, 8092 - "license": "MIT", 8093 - "bin": { 8094 - "eslint-config-prettier": "bin/cli.js" 8095 - }, 8096 - "peerDependencies": { 8097 - "eslint": ">=7.0.0" 8098 - } 8099 - }, 8100 8010 "node_modules/eslint-import-resolver-node": { 8101 8011 "version": "0.3.9", 8102 8012 "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", ··· 8160 8070 "eslint": ">=8.40.0" 8161 8071 } 8162 8072 }, 8163 - "node_modules/eslint-plugin-escompat": { 8164 - "version": "3.11.3", 8165 - "resolved": "https://registry.npmjs.org/eslint-plugin-escompat/-/eslint-plugin-escompat-3.11.3.tgz", 8166 - "integrity": "sha512-Gz/eTJzl7fK9SPBkvB3t+xc1iribxRc5Fgu6Z7206b5q1d7kG0t8Drtin8MRY4UgGBg8Zu1HG6RGzR35LCUpLA==", 8167 - "dev": true, 8168 - "license": "MIT", 8169 - "dependencies": { 8170 - "browserslist": "^4.23.1" 8171 - }, 8172 - "peerDependencies": { 8173 - "eslint": ">=5.14.1" 8174 - } 8175 - }, 8176 - "node_modules/eslint-plugin-eslint-comments": { 8177 - "version": "3.2.0", 8178 - "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", 8179 - "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", 8180 - "dev": true, 8181 - "license": "MIT", 8182 - "dependencies": { 8183 - "escape-string-regexp": "^1.0.5", 8184 - "ignore": "^5.0.5" 8185 - }, 8186 - "engines": { 8187 - "node": ">=6.5.0" 8188 - }, 8189 - "funding": { 8190 - "url": "https://github.com/sponsors/mysticatea" 8191 - }, 8192 - "peerDependencies": { 8193 - "eslint": ">=4.19.1" 8194 - } 8195 - }, 8196 - "node_modules/eslint-plugin-eslint-comments/node_modules/escape-string-regexp": { 8197 - "version": "1.0.5", 8198 - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 8199 - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 8200 - "dev": true, 8201 - "license": "MIT", 8202 - "engines": { 8203 - "node": ">=0.8.0" 8204 - } 8205 - }, 8206 - "node_modules/eslint-plugin-filenames": { 8207 - "version": "1.3.2", 8208 - "resolved": "https://registry.npmjs.org/eslint-plugin-filenames/-/eslint-plugin-filenames-1.3.2.tgz", 8209 - "integrity": "sha512-tqxJTiEM5a0JmRCUYQmxw23vtTxrb2+a3Q2mMOPhFxvt7ZQQJmdiuMby9B/vUAuVMghyP7oET+nIf6EO6CBd/w==", 8210 - "dev": true, 8211 - "license": "MIT", 8212 - "dependencies": { 8213 - "lodash.camelcase": "4.3.0", 8214 - "lodash.kebabcase": "4.1.1", 8215 - "lodash.snakecase": "4.1.1", 8216 - "lodash.upperfirst": "4.3.1" 8217 - }, 8218 - "peerDependencies": { 8219 - "eslint": "*" 8220 - } 8221 - }, 8222 - "node_modules/eslint-plugin-github": { 8223 - "version": "5.0.2", 8224 - "resolved": "https://registry.npmjs.org/eslint-plugin-github/-/eslint-plugin-github-5.0.2.tgz", 8225 - "integrity": "sha512-nMdzWJQ5CimjQDY6SFeJ0KIXuNFf0dgDWEd4eP3UWfuTuP/dXcZJDg7MQRvAFt743T1zUi4+/HdOihfu8xJkLA==", 8226 - "dev": true, 8227 - "license": "MIT", 8228 - "dependencies": { 8229 - "@github/browserslist-config": "^1.0.0", 8230 - "@typescript-eslint/eslint-plugin": "^8.0.0", 8231 - "@typescript-eslint/parser": "^8.0.0", 8232 - "aria-query": "^5.3.0", 8233 - "eslint-config-prettier": ">=8.0.0", 8234 - "eslint-plugin-escompat": "^3.3.3", 8235 - "eslint-plugin-eslint-comments": "^3.2.0", 8236 - "eslint-plugin-filenames": "^1.3.2", 8237 - "eslint-plugin-i18n-text": "^1.0.1", 8238 - "eslint-plugin-import": "^2.25.2", 8239 - "eslint-plugin-jsx-a11y": "^6.7.1", 8240 - "eslint-plugin-no-only-tests": "^3.0.0", 8241 - "eslint-plugin-prettier": "^5.0.0", 8242 - "eslint-rule-documentation": ">=1.0.0", 8243 - "jsx-ast-utils": "^3.3.2", 8244 - "prettier": "^3.0.0", 8245 - "svg-element-attributes": "^1.3.1" 8246 - }, 8247 - "bin": { 8248 - "eslint-ignore-errors": "bin/eslint-ignore-errors.js" 8249 - }, 8250 - "peerDependencies": { 8251 - "eslint": "^8.0.1" 8252 - } 8253 - }, 8254 - "node_modules/eslint-plugin-i": { 8255 - "version": "2.29.1", 8256 - "resolved": "https://registry.npmjs.org/eslint-plugin-i/-/eslint-plugin-i-2.29.1.tgz", 8257 - "integrity": "sha512-ORizX37MelIWLbMyqI7hi8VJMf7A0CskMmYkB+lkCX3aF4pkGV7kwx5bSEb4qx7Yce2rAf9s34HqDRPjGRZPNQ==", 8258 - "dev": true, 8259 - "license": "MIT", 8260 - "dependencies": { 8261 - "debug": "^4.3.4", 8262 - "doctrine": "^3.0.0", 8263 - "eslint-import-resolver-node": "^0.3.9", 8264 - "eslint-module-utils": "^2.8.0", 8265 - "get-tsconfig": "^4.7.2", 8266 - "is-glob": "^4.0.3", 8267 - "minimatch": "^3.1.2", 8268 - "semver": "^7.5.4" 8269 - }, 8270 - "engines": { 8271 - "node": ">=12" 8272 - }, 8273 - "funding": { 8274 - "url": "https://opencollective.com/unts" 8275 - }, 8276 - "peerDependencies": { 8277 - "eslint": "^7.2.0 || ^8" 8278 - } 8279 - }, 8280 - "node_modules/eslint-plugin-i/node_modules/brace-expansion": { 8281 - "version": "1.1.11", 8282 - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 8283 - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 8284 - "dev": true, 8285 - "license": "MIT", 8286 - "dependencies": { 8287 - "balanced-match": "^1.0.0", 8288 - "concat-map": "0.0.1" 8289 - } 8290 - }, 8291 - "node_modules/eslint-plugin-i/node_modules/minimatch": { 8292 - "version": "3.1.2", 8293 - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 8294 - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 8295 - "dev": true, 8296 - "license": "ISC", 8297 - "dependencies": { 8298 - "brace-expansion": "^1.1.7" 8299 - }, 8300 - "engines": { 8301 - "node": "*" 8302 - } 8303 - }, 8304 - "node_modules/eslint-plugin-i18n-text": { 8305 - "version": "1.0.1", 8306 - "resolved": "https://registry.npmjs.org/eslint-plugin-i18n-text/-/eslint-plugin-i18n-text-1.0.1.tgz", 8307 - "integrity": "sha512-3G3UetST6rdqhqW9SfcfzNYMpQXS7wNkJvp6dsXnjzGiku6Iu5hl3B0kmk6lIcFPwYjhQIY+tXVRtK9TlGT7RA==", 8308 - "dev": true, 8309 - "license": "MIT", 8310 - "peerDependencies": { 8311 - "eslint": ">=5.0.0" 8312 - } 8313 - }, 8314 8073 "node_modules/eslint-plugin-import": { 8315 8074 "version": "2.31.0", 8316 8075 "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", ··· 8345 8104 "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" 8346 8105 } 8347 8106 }, 8107 + "node_modules/eslint-plugin-import-x": { 8108 + "version": "4.3.1", 8109 + "resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-4.3.1.tgz", 8110 + "integrity": "sha512-5TriWkXulDl486XnYYRgsL+VQoS/7mhN/2ci02iLCuL7gdhbiWxnsuL/NTcaKY9fpMgsMFjWZBtIGW7pb+RX0g==", 8111 + "dev": true, 8112 + "license": "MIT", 8113 + "dependencies": { 8114 + "@typescript-eslint/utils": "^8.1.0", 8115 + "debug": "^4.3.4", 8116 + "doctrine": "^3.0.0", 8117 + "eslint-import-resolver-node": "^0.3.9", 8118 + "get-tsconfig": "^4.7.3", 8119 + "is-glob": "^4.0.3", 8120 + "minimatch": "^9.0.3", 8121 + "semver": "^7.6.3", 8122 + "stable-hash": "^0.0.4", 8123 + "tslib": "^2.6.3" 8124 + }, 8125 + "engines": { 8126 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 8127 + }, 8128 + "peerDependencies": { 8129 + "eslint": "^8.57.0 || ^9.0.0" 8130 + } 8131 + }, 8132 + "node_modules/eslint-plugin-import-x/node_modules/minimatch": { 8133 + "version": "9.0.5", 8134 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", 8135 + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", 8136 + "dev": true, 8137 + "license": "ISC", 8138 + "dependencies": { 8139 + "brace-expansion": "^2.0.1" 8140 + }, 8141 + "engines": { 8142 + "node": ">=16 || 14 >=14.17" 8143 + }, 8144 + "funding": { 8145 + "url": "https://github.com/sponsors/isaacs" 8146 + } 8147 + }, 8348 8148 "node_modules/eslint-plugin-import/node_modules/brace-expansion": { 8349 8149 "version": "1.1.11", 8350 8150 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", ··· 8477 8277 "eslint": ">=8.0.0" 8478 8278 } 8479 8279 }, 8480 - "node_modules/eslint-plugin-no-only-tests": { 8481 - "version": "3.3.0", 8482 - "resolved": "https://registry.npmjs.org/eslint-plugin-no-only-tests/-/eslint-plugin-no-only-tests-3.3.0.tgz", 8483 - "integrity": "sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==", 8484 - "dev": true, 8485 - "license": "MIT", 8486 - "engines": { 8487 - "node": ">=5.0.0" 8488 - } 8489 - }, 8490 8280 "node_modules/eslint-plugin-no-use-extend-native": { 8491 8281 "version": "0.5.0", 8492 8282 "resolved": "https://registry.npmjs.org/eslint-plugin-no-use-extend-native/-/eslint-plugin-no-use-extend-native-0.5.0.tgz", ··· 8528 8318 } 8529 8319 } 8530 8320 }, 8531 - "node_modules/eslint-plugin-prettier": { 8532 - "version": "5.2.1", 8533 - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", 8534 - "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", 8321 + "node_modules/eslint-plugin-playwright/node_modules/globals": { 8322 + "version": "13.24.0", 8323 + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", 8324 + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", 8535 8325 "dev": true, 8536 8326 "license": "MIT", 8537 8327 "dependencies": { 8538 - "prettier-linter-helpers": "^1.0.0", 8539 - "synckit": "^0.9.1" 8328 + "type-fest": "^0.20.2" 8540 8329 }, 8541 8330 "engines": { 8542 - "node": "^14.18.0 || >=16.0.0" 8331 + "node": ">=8" 8543 8332 }, 8544 8333 "funding": { 8545 - "url": "https://opencollective.com/eslint-plugin-prettier" 8546 - }, 8547 - "peerDependencies": { 8548 - "@types/eslint": ">=8.0.0", 8549 - "eslint": ">=8.0.0", 8550 - "eslint-config-prettier": "*", 8551 - "prettier": ">=3.0.0" 8552 - }, 8553 - "peerDependenciesMeta": { 8554 - "@types/eslint": { 8555 - "optional": true 8556 - }, 8557 - "eslint-config-prettier": { 8558 - "optional": true 8559 - } 8334 + "url": "https://github.com/sponsors/sindresorhus" 8560 8335 } 8561 8336 }, 8562 8337 "node_modules/eslint-plugin-react": { 8563 - "version": "7.37.1", 8564 - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.1.tgz", 8565 - "integrity": "sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==", 8338 + "version": "7.36.1", 8339 + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.36.1.tgz", 8340 + "integrity": "sha512-/qwbqNXZoq+VP30s1d4Nc1C5GTxjJQjk4Jzs4Wq2qzxFM7dSmuG2UkIjg2USMLh3A/aVcUNrK7v0J5U1XEGGwA==", 8566 8341 "dev": true, 8567 8342 "license": "MIT", 8568 8343 "dependencies": { ··· 8590 8365 }, 8591 8366 "peerDependencies": { 8592 8367 "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" 8593 - } 8594 - }, 8595 - "node_modules/eslint-plugin-react-hooks": { 8596 - "version": "4.6.2", 8597 - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", 8598 - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", 8599 - "dev": true, 8600 - "license": "MIT", 8601 - "engines": { 8602 - "node": ">=10" 8603 - }, 8604 - "peerDependencies": { 8605 - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" 8606 8368 } 8607 8369 }, 8608 8370 "node_modules/eslint-plugin-react/node_modules/brace-expansion": { ··· 9143 8905 "url": "https://opencollective.com/typescript-eslint" 9144 8906 } 9145 8907 }, 8908 + "node_modules/eslint-plugin-sonarjs/node_modules/eslint-plugin-react-hooks": { 8909 + "version": "4.6.2", 8910 + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", 8911 + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", 8912 + "dev": true, 8913 + "license": "MIT", 8914 + "engines": { 8915 + "node": ">=10" 8916 + }, 8917 + "peerDependencies": { 8918 + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" 8919 + } 8920 + }, 9146 8921 "node_modules/eslint-plugin-sonarjs/node_modules/eslint-scope": { 9147 8922 "version": "8.0.2", 9148 8923 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", ··· 9207 8982 "eslint": ">=8.56.0" 9208 8983 } 9209 8984 }, 9210 - "node_modules/eslint-plugin-unicorn/node_modules/globals": { 9211 - "version": "15.11.0", 9212 - "resolved": "https://registry.npmjs.org/globals/-/globals-15.11.0.tgz", 9213 - "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==", 9214 - "dev": true, 9215 - "license": "MIT", 9216 - "engines": { 9217 - "node": ">=18" 9218 - }, 9219 - "funding": { 9220 - "url": "https://github.com/sponsors/sindresorhus" 9221 - } 9222 - }, 9223 8985 "node_modules/eslint-plugin-vitest-globals": { 9224 8986 "version": "1.5.0", 9225 8987 "resolved": "https://registry.npmjs.org/eslint-plugin-vitest-globals/-/eslint-plugin-vitest-globals-1.5.0.tgz", ··· 9277 9039 "vue-eslint-parser": ">=7.1.0" 9278 9040 } 9279 9041 }, 9042 + "node_modules/eslint-plugin-vue/node_modules/globals": { 9043 + "version": "13.24.0", 9044 + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", 9045 + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", 9046 + "dev": true, 9047 + "license": "MIT", 9048 + "dependencies": { 9049 + "type-fest": "^0.20.2" 9050 + }, 9051 + "engines": { 9052 + "node": ">=8" 9053 + }, 9054 + "funding": { 9055 + "url": "https://github.com/sponsors/sindresorhus" 9056 + } 9057 + }, 9280 9058 "node_modules/eslint-plugin-wc": { 9281 9059 "version": "2.2.0", 9282 9060 "resolved": "https://registry.npmjs.org/eslint-plugin-wc/-/eslint-plugin-wc-2.2.0.tgz", ··· 9291 9069 "eslint": ">=8.40.0" 9292 9070 } 9293 9071 }, 9294 - "node_modules/eslint-rule-documentation": { 9295 - "version": "1.0.23", 9296 - "resolved": "https://registry.npmjs.org/eslint-rule-documentation/-/eslint-rule-documentation-1.0.23.tgz", 9297 - "integrity": "sha512-pWReu3fkohwyvztx/oQWWgld2iad25TfUdi6wvhhaDPIQjHU/pyvlKgXFw1kX31SQK2Nq9MH+vRDWB0ZLy8fYw==", 9298 - "dev": true, 9299 - "license": "MIT", 9300 - "engines": { 9301 - "node": ">=4.0.0" 9302 - } 9303 - }, 9304 9072 "node_modules/eslint-scope": { 9305 9073 "version": "7.2.2", 9306 9074 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", ··· 9331 9099 "url": "https://opencollective.com/eslint" 9332 9100 } 9333 9101 }, 9102 + "node_modules/eslint/node_modules/@types/estree": { 9103 + "version": "1.0.6", 9104 + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", 9105 + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", 9106 + "dev": true, 9107 + "license": "MIT" 9108 + }, 9334 9109 "node_modules/eslint/node_modules/ajv": { 9335 9110 "version": "6.12.6", 9336 9111 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", ··· 9359 9134 "concat-map": "0.0.1" 9360 9135 } 9361 9136 }, 9362 - "node_modules/eslint/node_modules/eslint-visitor-keys": { 9363 - "version": "3.4.3", 9364 - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", 9365 - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", 9366 - "dev": true, 9367 - "license": "Apache-2.0", 9368 - "engines": { 9369 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 9370 - }, 9371 - "funding": { 9372 - "url": "https://opencollective.com/eslint" 9373 - } 9374 - }, 9375 - "node_modules/eslint/node_modules/espree": { 9376 - "version": "9.6.1", 9377 - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", 9378 - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", 9137 + "node_modules/eslint/node_modules/eslint-scope": { 9138 + "version": "8.1.0", 9139 + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.1.0.tgz", 9140 + "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==", 9379 9141 "dev": true, 9380 9142 "license": "BSD-2-Clause", 9381 9143 "dependencies": { 9382 - "acorn": "^8.9.0", 9383 - "acorn-jsx": "^5.3.2", 9384 - "eslint-visitor-keys": "^3.4.1" 9144 + "esrecurse": "^4.3.0", 9145 + "estraverse": "^5.2.0" 9385 9146 }, 9386 9147 "engines": { 9387 - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 9148 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 9388 9149 }, 9389 9150 "funding": { 9390 9151 "url": "https://opencollective.com/eslint" ··· 9592 9353 } 9593 9354 }, 9594 9355 "node_modules/file-entry-cache": { 9595 - "version": "6.0.1", 9596 - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", 9597 - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", 9356 + "version": "8.0.0", 9357 + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", 9358 + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", 9598 9359 "dev": true, 9599 9360 "license": "MIT", 9600 9361 "dependencies": { 9601 - "flat-cache": "^3.0.4" 9362 + "flat-cache": "^4.0.0" 9602 9363 }, 9603 9364 "engines": { 9604 - "node": "^10.12.0 || >=12.0.0" 9365 + "node": ">=16.0.0" 9605 9366 } 9606 9367 }, 9607 9368 "node_modules/fill-range": { ··· 9643 9404 } 9644 9405 }, 9645 9406 "node_modules/flat-cache": { 9646 - "version": "3.2.0", 9647 - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", 9648 - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", 9407 + "version": "4.0.1", 9408 + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", 9409 + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", 9649 9410 "dev": true, 9650 9411 "license": "MIT", 9651 9412 "dependencies": { 9652 9413 "flatted": "^3.2.9", 9653 - "keyv": "^4.5.3", 9654 - "rimraf": "^3.0.2" 9414 + "keyv": "^4.5.4" 9655 9415 }, 9656 9416 "engines": { 9657 - "node": "^10.12.0 || >=12.0.0" 9417 + "node": ">=16" 9658 9418 } 9659 9419 }, 9660 9420 "node_modules/flatted": { ··· 9993 9753 } 9994 9754 }, 9995 9755 "node_modules/globals": { 9996 - "version": "13.24.0", 9997 - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", 9998 - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", 9756 + "version": "15.11.0", 9757 + "resolved": "https://registry.npmjs.org/globals/-/globals-15.11.0.tgz", 9758 + "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==", 9999 9759 "dev": true, 10000 9760 "license": "MIT", 10001 - "dependencies": { 10002 - "type-fest": "^0.20.2" 10003 - }, 10004 9761 "engines": { 10005 - "node": ">=8" 9762 + "node": ">=18" 10006 9763 }, 10007 9764 "funding": { 10008 9765 "url": "https://github.com/sponsors/sindresorhus" ··· 10776 10533 "dependencies": { 10777 10534 "lowercase-keys": "^1.0.0", 10778 10535 "obj-props": "^1.0.0" 10779 - } 10780 - }, 10781 - "node_modules/is-path-inside": { 10782 - "version": "3.0.3", 10783 - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", 10784 - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", 10785 - "dev": true, 10786 - "license": "MIT", 10787 - "engines": { 10788 - "node": ">=8" 10789 10536 } 10790 10537 }, 10791 10538 "node_modules/is-plain-object": { ··· 11610 11357 "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", 11611 11358 "license": "MIT" 11612 11359 }, 11613 - "node_modules/lodash.camelcase": { 11614 - "version": "4.3.0", 11615 - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", 11616 - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", 11617 - "dev": true, 11618 - "license": "MIT" 11619 - }, 11620 11360 "node_modules/lodash.clonedeep": { 11621 11361 "version": "4.5.0", 11622 11362 "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", ··· 11631 11371 "dev": true, 11632 11372 "license": "MIT" 11633 11373 }, 11634 - "node_modules/lodash.kebabcase": { 11635 - "version": "4.1.1", 11636 - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", 11637 - "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", 11638 - "dev": true, 11639 - "license": "MIT" 11640 - }, 11641 11374 "node_modules/lodash.merge": { 11642 11375 "version": "4.6.2", 11643 11376 "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", ··· 11645 11378 "dev": true, 11646 11379 "license": "MIT" 11647 11380 }, 11648 - "node_modules/lodash.snakecase": { 11649 - "version": "4.1.1", 11650 - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", 11651 - "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", 11652 - "dev": true, 11653 - "license": "MIT" 11654 - }, 11655 11381 "node_modules/lodash.sortedlastindex": { 11656 11382 "version": "4.1.0", 11657 11383 "resolved": "https://registry.npmjs.org/lodash.sortedlastindex/-/lodash.sortedlastindex-4.1.0.tgz", ··· 11670 11396 "version": "4.4.2", 11671 11397 "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", 11672 11398 "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", 11673 - "dev": true, 11674 - "license": "MIT" 11675 - }, 11676 - "node_modules/lodash.upperfirst": { 11677 - "version": "4.3.1", 11678 - "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", 11679 - "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", 11680 11399 "dev": true, 11681 11400 "license": "MIT" 11682 11401 }, ··· 13304 13023 "node": ">= 0.8.0" 13305 13024 } 13306 13025 }, 13307 - "node_modules/prettier": { 13308 - "version": "3.3.3", 13309 - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", 13310 - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", 13311 - "dev": true, 13312 - "license": "MIT", 13313 - "bin": { 13314 - "prettier": "bin/prettier.cjs" 13315 - }, 13316 - "engines": { 13317 - "node": ">=14" 13318 - }, 13319 - "funding": { 13320 - "url": "https://github.com/prettier/prettier?sponsor=1" 13321 - } 13322 - }, 13323 - "node_modules/prettier-linter-helpers": { 13324 - "version": "1.0.0", 13325 - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", 13326 - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", 13327 - "dev": true, 13328 - "license": "MIT", 13329 - "dependencies": { 13330 - "fast-diff": "^1.1.2" 13331 - }, 13332 - "engines": { 13333 - "node": ">=6.0.0" 13334 - } 13335 - }, 13336 13026 "node_modules/pretty-ms": { 13337 13027 "version": "9.0.0", 13338 13028 "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.0.0.tgz", ··· 13964 13654 "node": ">=0.10.0" 13965 13655 } 13966 13656 }, 13967 - "node_modules/rimraf": { 13968 - "version": "3.0.2", 13969 - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 13970 - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 13971 - "deprecated": "Rimraf versions prior to v4 are no longer supported", 13972 - "dev": true, 13973 - "license": "ISC", 13974 - "dependencies": { 13975 - "glob": "^7.1.3" 13976 - }, 13977 - "bin": { 13978 - "rimraf": "bin.js" 13979 - }, 13980 - "funding": { 13981 - "url": "https://github.com/sponsors/isaacs" 13982 - } 13983 - }, 13984 13657 "node_modules/robust-predicates": { 13985 13658 "version": "3.0.2", 13986 13659 "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", ··· 14529 14202 "spdx-expression-parse": "^3.0.0", 14530 14203 "spdx-ranges": "^2.0.0" 14531 14204 } 14205 + }, 14206 + "node_modules/stable-hash": { 14207 + "version": "0.0.4", 14208 + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.4.tgz", 14209 + "integrity": "sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==", 14210 + "dev": true, 14211 + "license": "MIT" 14532 14212 }, 14533 14213 "node_modules/stackback": { 14534 14214 "version": "0.0.2", ··· 15133 14813 "url": "https://github.com/sponsors/ljharb" 15134 14814 } 15135 14815 }, 15136 - "node_modules/svg-element-attributes": { 15137 - "version": "1.3.1", 15138 - "resolved": "https://registry.npmjs.org/svg-element-attributes/-/svg-element-attributes-1.3.1.tgz", 15139 - "integrity": "sha512-Bh05dSOnJBf3miNMqpsormfNtfidA/GxQVakhtn0T4DECWKeXQRQUceYjJ+OxYiiLdGe4Jo9iFV8wICFapFeIA==", 15140 - "dev": true, 15141 - "license": "MIT", 15142 - "funding": { 15143 - "type": "github", 15144 - "url": "https://github.com/sponsors/wooorm" 15145 - } 15146 - }, 15147 14816 "node_modules/svg-tags": { 15148 14817 "version": "1.0.0", 15149 14818 "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", ··· 15203 14872 }, 15204 14873 "engines": { 15205 14874 "node": ">=14" 15206 - } 15207 - }, 15208 - "node_modules/synckit": { 15209 - "version": "0.9.2", 15210 - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", 15211 - "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", 15212 - "dev": true, 15213 - "license": "MIT", 15214 - "dependencies": { 15215 - "@pkgr/core": "^0.1.0", 15216 - "tslib": "^2.6.2" 15217 - }, 15218 - "engines": { 15219 - "node": "^14.18.0 || >=16.0.0" 15220 - }, 15221 - "funding": { 15222 - "url": "https://opencollective.com/unts" 15223 14875 } 15224 14876 }, 15225 14877 "node_modules/table": {
+3 -3
package.json
··· 69 69 "@vitest/coverage-v8": "2.1.3", 70 70 "@vitest/eslint-plugin": "1.1.7", 71 71 "@vue/test-utils": "2.4.6", 72 - "eslint": "8.57.1", 72 + "eslint": "9.13.0", 73 73 "eslint-plugin-array-func": "4.0.0", 74 - "eslint-plugin-github": "5.0.2", 75 - "eslint-plugin-i": "2.29.1", 74 + "eslint-plugin-import-x": "4.3.1", 76 75 "eslint-plugin-no-jquery": "3.0.2", 77 76 "eslint-plugin-no-use-extend-native": "0.5.0", 78 77 "eslint-plugin-playwright": "1.6.2", ··· 83 82 "eslint-plugin-vue": "9.28.0", 84 83 "eslint-plugin-vue-scoped-css": "2.8.1", 85 84 "eslint-plugin-wc": "2.2.0", 85 + "globals": "15.11.0", 86 86 "happy-dom": "15.7.4", 87 87 "license-checker-rseidelsohn": "4.4.2", 88 88 "markdownlint-cli": "0.42.0",
-24
tests/e2e/.eslintrc.yaml
··· 1 - plugins: 2 - - eslint-plugin-playwright 3 - 4 - extends: 5 - - ../../.eslintrc.yaml 6 - - plugin:playwright/recommended 7 - 8 - parserOptions: 9 - sourceType: module 10 - ecmaVersion: latest 11 - 12 - env: 13 - browser: true 14 - 15 - rules: 16 - playwright/no-conditional-in-test: [0] 17 - playwright/no-conditional-expect: [0] 18 - playwright/no-networkidle: [0] 19 - playwright/no-skipped-test: [2, {allowConditional: true}] 20 - playwright/prefer-comparison-matcher: [2] 21 - playwright/prefer-equality-matcher: [2] 22 - playwright/prefer-to-contain: [2] 23 - playwright/prefer-to-have-length: [2] 24 - playwright/require-to-throw-message: [2]
+2 -2
tools/generate-images.js
··· 1 1 #!/usr/bin/env node 2 - import imageminZopfli from 'imagemin-zopfli'; // eslint-disable-line i/no-unresolved 3 - import {loadSVGFromString, Canvas, Rect, util} from 'fabric/node'; // eslint-disable-line i/no-unresolved 2 + import imageminZopfli from 'imagemin-zopfli'; // eslint-disable-line import-x/no-unresolved 3 + import {loadSVGFromString, Canvas, Rect, util} from 'fabric/node'; // eslint-disable-line import-x/no-unresolved 4 4 import {optimize} from 'svgo'; 5 5 import {readFile, writeFile} from 'node:fs/promises'; 6 6 import {argv, exit} from 'node:process';
-21
web_src/js/components/.eslintrc.yaml
··· 1 - plugins: 2 - - eslint-plugin-vue 3 - - eslint-plugin-vue-scoped-css 4 - 5 - extends: 6 - - ../../../.eslintrc.yaml 7 - - plugin:vue/vue3-recommended 8 - - plugin:vue-scoped-css/vue3-recommended 9 - 10 - parserOptions: 11 - sourceType: module 12 - ecmaVersion: latest 13 - 14 - env: 15 - browser: true 16 - 17 - rules: 18 - vue/attributes-order: [0] 19 - vue/html-closing-bracket-spacing: [2, {startTag: never, endTag: never, selfClosingTag: never}] 20 - vue/max-attributes-per-line: [0] 21 - vue-scoped-css/enforce-style-type: [0]