[ { "ignores": [ "**/node_modules/**", "**/dist/**", "**/build/**", "**/.cache/**", "**/coverage/**", "**/_code.info.generated/**", "**/*.generated.*", "**/__fixtures__/**", "**/fixtures/**", "**/testdata/**", "**/.git/**", "**/.vscode/**", "**/logs/**", "**/_builds/**", "**/_third-party/**", "**/_excluded.drafts/**", "**/disciplined.methodology/**", "**/.quality-reports/**", ".govlab/_quality.reports.generated/**", "**/_experimental*/**", "**/target/**", "**/_build/**", "**/deps/**", "**/.vite/**", "**/.registry/**", "**/.nyc_output/**", "**/out/**", "**/tmp/**" ] }, { "plugins": [ "govlab", "govlab-context", "unused-imports", "jsonc", "sonarjs", "@typescript-eslint", "html" ] }, { "files": ["**/*.ts", "**/*.tsx", "**/*.mts", "**/*.cts"], "rules": { "accessor-pairs": "error", "array-callback-return": "error", "arrow-body-style": "error", "block-scoped-var": "error", "camelcase": ["error", { "properties": "never" }], "capitalized-comments": "error", "class-methods-use-this": "error", "complexity": ["error", { "maximum": 12 }], "consistent-return": "error", "consistent-this": "error", "constructor-super": "error", "curly": "error", "default-case": "error", "default-case-last": "error", "default-param-last": "error", "dot-notation": "error", "eqeqeq": "error", "for-direction": "error", "func-name-matching": "error", "func-names": "error", "getter-return": "error", "grouped-accessor-pairs": "error", "guard-for-in": "error", "id-denylist": "error", "id-match": "error", "init-declarations": "error", "logical-assignment-operators": "error", "max-classes-per-file": "error", "max-depth": ["error", { "maximum": 3 }], "max-lines": [ "error", { "skipBlankLines": true, "skipComments": true, "max": 200 } ], "max-lines-per-function": [ "error", { "skipBlankLines": true, "skipComments": true, "max": 25 } ], "max-nested-callbacks": "error", "max-params": ["error", { "maximum": 4 }], "max-statements": ["error", { "maximum": 25 }], "new-cap": "error", "no-alert": "error", "no-array-constructor": "error", "no-async-promise-executor": "error", "no-await-in-loop": "error", "no-bitwise": "error", "no-caller": "error", "no-case-declarations": "error", "no-class-assign": "error", "no-compare-neg-zero": "error", "no-cond-assign": "error", "no-console": "error", "no-const-assign": "error", "no-constant-binary-expression": "error", "no-constant-condition": "error", "no-constructor-return": "error", "no-continue": "error", "no-control-regex": "error", "no-debugger": "error", "no-delete-var": "error", "no-div-regex": "error", "no-dupe-args": "error", "no-dupe-class-members": "error", "no-dupe-else-if": "error", "no-dupe-keys": "error", "no-duplicate-case": "error", "no-else-return": "error", "no-empty": "error", "no-empty-character-class": "error", "no-empty-function": "error", "no-empty-pattern": "error", "no-empty-static-block": "error", "no-eq-null": "error", "no-eval": "error", "no-ex-assign": "error", "no-extend-native": "error", "no-extra-bind": "error", "no-extra-boolean-cast": "error", "no-extra-label": "error", "no-fallthrough": "error", "no-func-assign": "error", "no-global-assign": "error", "no-implicit-coercion": "error", "no-implicit-globals": "error", "no-implied-eval": "error", "no-import-assign": "error", "no-inline-comments": "error", "no-inner-declarations": "error", "no-invalid-regexp": "error", "no-invalid-this": "error", "no-irregular-whitespace": "error", "no-iterator": "error", "no-label-var": "error", "no-labels": "error", "no-lone-blocks": "error", "no-lonely-if": "error", "no-loop-func": "error", "no-loss-of-precision": "error", "no-magic-numbers": ["error", { "ignore": [-1, 0, 1] }], "no-misleading-character-class": "error", "no-multi-str": "error", "no-negated-condition": "error", "no-new": "error", "no-new-func": "error", "no-new-native-nonconstructor": "error", "no-new-wrappers": "error", "no-nonoctal-decimal-escape": "error", "no-obj-calls": "error", "no-object-constructor": "error", "no-octal": "error", "no-octal-escape": "error", "no-param-reassign": "error", "no-promise-executor-return": "error", "no-proto": "error", "no-prototype-builtins": "error", "no-redeclare": "error", "no-regex-spaces": "error", "no-restricted-exports": "error", "no-restricted-globals": "error", "no-restricted-imports": "error", "no-restricted-properties": "error", "no-restricted-syntax": "error", "no-return-assign": "error", "no-script-url": "error", "no-self-assign": "error", "no-self-compare": "error", "no-sequences": "error", "no-setter-return": "error", "no-shadow": "error", "no-shadow-restricted-names": "error", "no-sparse-arrays": "error", "no-template-curly-in-string": "error", "no-this-before-super": "error", "no-throw-literal": "error", "no-unassigned-vars": "error", "no-undef": "error", "no-undef-init": "error", "no-undefined": "error", "no-underscore-dangle": "error", "no-unexpected-multiline": "error", "no-unmodified-loop-condition": "error", "no-unreachable": "error", "no-unreachable-loop": "error", "no-unsafe-finally": "error", "no-unsafe-negation": "error", "no-unsafe-optional-chaining": "error", "no-unused-expressions": "error", "no-unused-labels": "error", "no-unused-private-class-members": "error", "no-unused-vars": "error", "no-use-before-define": "error", "no-useless-assignment": "error", "no-useless-backreference": "error", "no-useless-call": "error", "no-useless-catch": "error", "no-useless-computed-key": "error", "no-useless-concat": "error", "no-useless-constructor": "error", "no-useless-escape": "error", "no-useless-rename": "error", "no-useless-return": "error", "no-var": "error", "no-void": "error", "no-warning-comments": "error", "no-with": "error", "object-shorthand": "error", "operator-assignment": "error", "prefer-arrow-callback": "error", "prefer-const": "error", "prefer-destructuring": "error", "prefer-exponentiation-operator": "error", "prefer-named-capture-group": "error", "prefer-numeric-literals": "error", "prefer-object-has-own": "error", "prefer-object-spread": "error", "prefer-promise-reject-errors": "error", "prefer-regex-literals": "error", "prefer-rest-params": "error", "prefer-spread": "error", "prefer-template": "error", "preserve-caught-error": "error", "radix": "error", "require-atomic-updates": "error", "require-await": "error", "require-unicode-regexp": "error", "require-yield": "error", "sort-vars": "error", "strict": "error", "symbol-description": "error", "unicode-bom": "error", "use-isnan": "error", "valid-typeof": "error", "vars-on-top": "error", "yoda": "error", "unused-imports/no-unused-imports": "error", "unused-imports/no-unused-vars": "error", "sonarjs/anchor-precedence": "error", "sonarjs/argument-type": "error", "sonarjs/arguments-order": "error", "sonarjs/arguments-usage": "error", "sonarjs/array-callback-without-return": "error", "sonarjs/array-constructor": "error", "sonarjs/arrow-function-convention": "error", "sonarjs/assertions-in-tests": "error", "sonarjs/async-test-assertions": "error", "sonarjs/aws-apigateway-public-api": "error", "sonarjs/aws-ec2-rds-dms-public": "error", "sonarjs/aws-ec2-unencrypted-ebs-volume": "error", "sonarjs/aws-efs-unencrypted": "error", "sonarjs/aws-iam-all-privileges": "error", "sonarjs/aws-iam-all-resources-accessible": "error", "sonarjs/aws-iam-privilege-escalation": "error", "sonarjs/aws-iam-public-access": "error", "sonarjs/aws-opensearchservice-domain": "error", "sonarjs/aws-rds-unencrypted-databases": "error", "sonarjs/aws-restricted-ip-admin-access": "error", "sonarjs/aws-s3-bucket-granted-access": "error", "sonarjs/aws-s3-bucket-insecure-http": "error", "sonarjs/aws-s3-bucket-public-access": "error", "sonarjs/aws-s3-bucket-versioning": "error", "sonarjs/aws-sagemaker-unencrypted-notebook": "error", "sonarjs/aws-sns-unencrypted-topics": "error", "sonarjs/aws-sqs-unencrypted-queue": "error", "sonarjs/bitwise-operators": "error", "sonarjs/block-scoped-var": "error", "sonarjs/bool-param-default": "error", "sonarjs/call-argument-line": "error", "sonarjs/chai-determinate-assertion": "error", "sonarjs/class-name": "error", "sonarjs/class-prototype": "error", "sonarjs/code-eval": "error", "sonarjs/cognitive-complexity": "error", "sonarjs/comma-or-logical-or-case": "error", "sonarjs/comment-regex": "error", "sonarjs/concise-regex": "error", "sonarjs/conditional-indentation": "error", "sonarjs/confidential-information-logging": "error", "sonarjs/constructor-for-side-effects": "error", "sonarjs/content-length": "error", "sonarjs/content-security-policy": "error", "sonarjs/cookie-no-httponly": "error", "sonarjs/cors": "error", "sonarjs/csrf": "error", "sonarjs/cyclomatic-complexity": "error", "sonarjs/declarations-in-global-scope": "error", "sonarjs/deprecation": "error", "sonarjs/destructuring-assignment-syntax": "error", "sonarjs/different-types-comparison": "error", "sonarjs/disabled-auto-escaping": "error", "sonarjs/disabled-resource-integrity": "error", "sonarjs/disabled-timeout": "error", "sonarjs/dompurify-unsafe-config": "error", "sonarjs/duplicates-in-character-class": "error", "sonarjs/dynamically-constructed-templates": "error", "sonarjs/elseif-without-else": "error", "sonarjs/empty-string-repetition": "error", "sonarjs/encryption-secure-mode": "error", "sonarjs/existing-groups": "error", "sonarjs/expression-complexity": "error", "sonarjs/file-header": "error", "sonarjs/file-name-differ-from-class": "error", "sonarjs/file-permissions": "error", "sonarjs/file-uploads": "error", "sonarjs/fixme-tag": "error", "sonarjs/for-in": "error", "sonarjs/for-loop-increment-sign": "error", "sonarjs/frame-ancestors": "error", "sonarjs/function-inside-loop": "error", "sonarjs/function-name": "error", "sonarjs/function-return-type": "error", "sonarjs/future-reserved-words": "error", "sonarjs/generator-without-yield": "error", "sonarjs/hardcoded-secret-signatures": "error", "sonarjs/hashing": "error", "sonarjs/hidden-files": "error", "sonarjs/hooks-before-test-cases": "error", "sonarjs/in-operator-type-error": "error", "sonarjs/inconsistent-function-call": "error", "sonarjs/index-of-compare-to-positive-number": "error", "sonarjs/insecure-cookie": "error", "sonarjs/insecure-jwt-token": "error", "sonarjs/inverted-assertion-arguments": "error", "sonarjs/jsx-no-leaked-render": "error", "sonarjs/label-position": "error", "sonarjs/link-with-target-blank": "error", "sonarjs/max-lines": "error", "sonarjs/max-lines-per-function": "error", "sonarjs/max-switch-cases": "error", "sonarjs/max-union-size": "error", "sonarjs/misplaced-loop-counter": "error", "sonarjs/nested-control-flow": "error", "sonarjs/new-operator-misuse": "error", "sonarjs/no-all-duplicated-branches": "error", "sonarjs/no-alphabetical-sort": "error", "sonarjs/no-angular-bypass-sanitization": "error", "sonarjs/no-array-delete": "error", "sonarjs/no-associative-arrays": "error", "sonarjs/no-async-constructor": "error", "sonarjs/no-built-in-override": "error", "sonarjs/no-case-label-in-switch": "error", "sonarjs/no-clear-text-protocols": "error", "sonarjs/no-code-after-done": "error", "sonarjs/no-collapsible-if": "error", "sonarjs/no-collection-size-mischeck": "error", "sonarjs/no-commented-code": "error", "sonarjs/no-control-regex": "error", "sonarjs/no-dead-store": "error", "sonarjs/no-delete-var": "error", "sonarjs/no-duplicate-in-composite": "error", "sonarjs/no-duplicate-string": "error", "sonarjs/no-duplicate-test-title": "error", "sonarjs/no-duplicated-branches": "error", "sonarjs/no-element-overwrite": "error", "sonarjs/no-empty-after-reluctant": "error", "sonarjs/no-empty-alternatives": "error", "sonarjs/no-empty-character-class": "error", "sonarjs/no-empty-collection": "error", "sonarjs/no-empty-group": "error", "sonarjs/no-empty-test-file": "error", "sonarjs/no-empty-test-title": "error", "sonarjs/no-equals-in-for-termination": "error", "sonarjs/no-exclusive-tests": "error", "sonarjs/no-extra-arguments": "error", "sonarjs/no-fallthrough": "error", "sonarjs/no-floating-point-equality": "error", "sonarjs/no-for-in-iterable": "error", "sonarjs/no-forced-browser-interaction": "error", "sonarjs/no-function-declaration-in-block": "error", "sonarjs/no-global-this": "error", "sonarjs/no-globals-shadowing": "error", "sonarjs/no-gratuitous-expressions": "error", "sonarjs/no-hardcoded-ip": "error", "sonarjs/no-hardcoded-passwords": "error", "sonarjs/no-hardcoded-secrets": "error", "sonarjs/no-hook-setter-in-body": "error", "sonarjs/no-identical-conditions": "error", "sonarjs/no-identical-expressions": "error", "sonarjs/no-identical-functions": "error", "sonarjs/no-ignored-exceptions": "error", "sonarjs/no-ignored-return": "error", "sonarjs/no-implicit-dependencies": "error", "sonarjs/no-implicit-global": "error", "sonarjs/no-in-misuse": "error", "sonarjs/no-incompatible-assertion-types": "error", "sonarjs/no-incomplete-assertions": "error", "sonarjs/no-inconsistent-returns": "error", "sonarjs/no-incorrect-string-concat": "error", "sonarjs/no-internal-api-use": "error", "sonarjs/no-intrusive-permissions": "error", "sonarjs/no-invalid-regexp": "error", "sonarjs/no-invariant-returns": "error", "sonarjs/no-inverted-boolean-check": "error", "sonarjs/no-ip-forward": "error", "sonarjs/no-labels": "error", "sonarjs/no-literal-call": "error", "sonarjs/no-mime-sniff": "error", "sonarjs/no-misleading-array-reverse": "error", "sonarjs/no-misleading-character-class": "error", "sonarjs/no-mixed-content": "error", "sonarjs/no-nested-assignment": "error", "sonarjs/no-nested-functions": "error", "sonarjs/no-nested-incdec": "error", "sonarjs/no-nested-switch": "error", "sonarjs/no-nested-template-literals": "error", "sonarjs/no-os-command-from-path": "error", "sonarjs/no-parameter-reassignment": "error", "sonarjs/no-primitive-wrappers": "error", "sonarjs/no-redundant-assignments": "error", "sonarjs/no-redundant-boolean": "error", "sonarjs/no-redundant-jump": "error", "sonarjs/no-redundant-optional": "error", "sonarjs/no-redundant-parentheses": "error", "sonarjs/no-reference-error": "error", "sonarjs/no-referrer-policy": "error", "sonarjs/no-regex-spaces": "error", "sonarjs/no-require-or-define": "error", "sonarjs/no-return-type-any": "error", "sonarjs/no-same-argument-assert": "error", "sonarjs/no-same-line-conditional": "error", "sonarjs/no-selector-parameter": "error", "sonarjs/no-session-cookies-on-static-assets": "error", "sonarjs/no-skipped-tests": "error", "sonarjs/no-small-switch": "error", "sonarjs/no-sonar-comments": "error", "sonarjs/no-tab": "error", "sonarjs/no-table-as-layout": "error", "sonarjs/no-trivial-assertions": "error", "sonarjs/no-try-promise": "error", "sonarjs/no-undefined-argument": "error", "sonarjs/no-undefined-assignment": "error", "sonarjs/no-unenclosed-multiline-block": "error", "sonarjs/no-uniq-key": "error", "sonarjs/no-unsafe-unzip": "error", "sonarjs/no-unthrown-error": "error", "sonarjs/no-unused-collection": "error", "sonarjs/no-unused-function-argument": "error", "sonarjs/no-unused-vars": "error", "sonarjs/no-use-of-empty-return-value": "error", "sonarjs/no-useless-catch": "error", "sonarjs/no-useless-increment": "error", "sonarjs/no-useless-intersection": "error", "sonarjs/no-useless-react-setstate": "error", "sonarjs/no-variable-usage-before-declaration": "error", "sonarjs/no-weak-cipher": "error", "sonarjs/no-weak-keys": "error", "sonarjs/no-wildcard-import": "error", "sonarjs/non-existent-operator": "error", "sonarjs/non-number-in-arithmetic-expression": "error", "sonarjs/null-dereference": "error", "sonarjs/object-alt-content": "error", "sonarjs/operation-returning-nan": "error", "sonarjs/os-command": "error", "sonarjs/post-message": "error", "sonarjs/prefer-default-last": "error", "sonarjs/prefer-immediate-return": "error", "sonarjs/prefer-object-literal": "error", "sonarjs/prefer-promise-shorthand": "error", "sonarjs/prefer-read-only-props": "error", "sonarjs/prefer-regexp-exec": "error", "sonarjs/prefer-single-boolean-return": "error", "sonarjs/prefer-specific-assertions": "error", "sonarjs/prefer-type-guard": "error", "sonarjs/prefer-while": "error", "sonarjs/production-debug": "error", "sonarjs/pseudo-random": "error", "sonarjs/public-static-readonly": "error", "sonarjs/publicly-writable-directories": "error", "sonarjs/reduce-initial-value": "error", "sonarjs/redundant-type-aliases": "error", "sonarjs/regex-complexity": "error", "sonarjs/review-blockchain-mnemonic": "error", "sonarjs/session-regeneration": "error", "sonarjs/shorthand-property-grouping": "error", "sonarjs/single-char-in-character-classes": "error", "sonarjs/single-character-alternation": "error", "sonarjs/slow-regex": "error", "sonarjs/sql-queries": "error", "sonarjs/stable-tests": "error", "sonarjs/stateful-regex": "error", "sonarjs/strict-transport-security": "error", "sonarjs/strings-comparison": "error", "sonarjs/super-linear-regex": "error", "sonarjs/table-header": "error", "sonarjs/table-header-reference": "error", "sonarjs/test-check-exception": "error", "sonarjs/todo-tag": "error", "sonarjs/too-many-break-or-continue-in-loop": "error", "sonarjs/unicode-aware-regex": "error", "sonarjs/unused-import": "error", "sonarjs/unused-named-groups": "error", "sonarjs/unverified-certificate": "error", "sonarjs/unverified-hostname": "error", "sonarjs/updated-const-var": "error", "sonarjs/updated-loop-counter": "error", "sonarjs/use-type-alias": "error", "sonarjs/useless-string-operation": "error", "sonarjs/values-not-convertible-to-numbers": "error", "sonarjs/variable-name": "error", "sonarjs/void-use": "error", "sonarjs/weak-ssl": "error", "sonarjs/web-sql-database": "error", "sonarjs/x-powered-by": "error", "sonarjs/xml-parser-xxe": "error", "govlab-context/fragment-single-concern": "error", "govlab/function-style": "error", "govlab/local-camelcase": "error", "govlab/no-async-test-without-await": "error", "govlab/no-barrel-reexport": "error", "govlab/no-bitwise-outside-flags": "error", "govlab/no-boolean-trap": "error", "govlab/no-call-enumeration": "error", "govlab/no-chained-assignment": "error", "govlab/no-concrete-dependency": "error", "govlab/no-conditional-dispatch": "error", "govlab/no-constructor-callback": "error", "govlab/no-deprecated-api": "error", "govlab/no-direct-environment-access": "error", "govlab-context/no-duplicate-fragment": "error", "govlab/no-duplicate-imports": "error", "govlab/no-environment-fallback": "error", "govlab/no-fake-abstract-this": "error", "govlab-context/no-hardcoded-context-token": "error", "govlab/no-hardcoded-secrets": "error", "govlab/no-increment-operator": "error", "govlab-context/no-inline-context-literal": "error", "govlab/no-inline-events": "error", "govlab/no-inline-style": "error", "govlab/no-inline-types": "error", "govlab/no-jsdoc-type-tags": "error", "govlab/no-mixed-concerns": "error", "govlab/no-mutable-parameter": "error", "govlab/no-optional-dependency": "error", "govlab/no-platform-coupling": "error", "govlab/no-regex": "error", "govlab/no-sequential-effect-block": "error", "govlab/no-shell-argument-injection": "error", "govlab/no-timestamp-ordering": "error", "govlab/no-underscore-dead-code": "error", "govlab/no-upward-dependency": "error", "govlab/no-wildcard-exports": "error", "govlab/require-canonical-concept": "error", "govlab/require-central-config": "error", "govlab-context/require-fragment-metadata": "error", "govlab/require-mapped-concept": "error", "govlab/require-private-package": "error", "govlab/require-resource-disposal": "error", "govlab/require-test-coverage": "error", "govlab/require-window-post-message-target-origin": "error", "govlab/sort-imports": "error", "govlab/sort-keys": "error", "govlab/valid-test-surface": "error", "@typescript-eslint/adjacent-overload-signatures": "error", "@typescript-eslint/array-type": "error", "@typescript-eslint/await-thenable": "error", "@typescript-eslint/ban-ts-comment": "error", "@typescript-eslint/ban-tslint-comment": "error", "@typescript-eslint/class-literal-property-style": "error", "@typescript-eslint/class-methods-use-this": "error", "@typescript-eslint/consistent-generic-constructors": "error", "@typescript-eslint/consistent-indexed-object-style": "error", "@typescript-eslint/consistent-return": "error", "@typescript-eslint/consistent-type-assertions": "error", "@typescript-eslint/consistent-type-definitions": "error", "@typescript-eslint/consistent-type-exports": "error", "@typescript-eslint/consistent-type-imports": "error", "@typescript-eslint/default-param-last": "error", "@typescript-eslint/dot-notation": "error", "@typescript-eslint/explicit-function-return-type": "error", "@typescript-eslint/explicit-member-accessibility": "error", "@typescript-eslint/explicit-module-boundary-types": "error", "@typescript-eslint/init-declarations": "error", "@typescript-eslint/max-params": "error", "@typescript-eslint/member-ordering": "error", "@typescript-eslint/method-signature-style": "error", "@typescript-eslint/naming-convention": "error", "@typescript-eslint/no-array-constructor": "error", "@typescript-eslint/no-array-delete": "error", "@typescript-eslint/no-base-to-string": "error", "@typescript-eslint/no-confusing-non-null-assertion": "error", "@typescript-eslint/no-confusing-void-expression": "error", "@typescript-eslint/no-deprecated": "error", "@typescript-eslint/no-dupe-class-members": "error", "@typescript-eslint/no-duplicate-enum-values": "error", "@typescript-eslint/no-duplicate-type-constituents": "error", "@typescript-eslint/no-dynamic-delete": "error", "@typescript-eslint/no-empty-function": "error", "@typescript-eslint/no-empty-interface": "error", "@typescript-eslint/no-empty-object-type": "error", "@typescript-eslint/no-explicit-any": "error", "@typescript-eslint/no-extra-non-null-assertion": "error", "@typescript-eslint/no-extraneous-class": "error", "@typescript-eslint/no-floating-promises": "error", "@typescript-eslint/no-for-in-array": "error", "@typescript-eslint/no-implied-eval": "error", "@typescript-eslint/no-import-type-side-effects": "error", "@typescript-eslint/no-inferrable-types": "error", "@typescript-eslint/no-invalid-this": "error", "@typescript-eslint/no-invalid-void-type": "error", "@typescript-eslint/no-loop-func": "error", "@typescript-eslint/no-loss-of-precision": "error", "@typescript-eslint/no-magic-numbers": [ "error", { "ignore": [-1, 0, 1] } ], "@typescript-eslint/no-meaningless-void-operator": "error", "@typescript-eslint/no-misused-new": "error", "@typescript-eslint/no-misused-promises": "error", "@typescript-eslint/no-misused-spread": "error", "@typescript-eslint/no-mixed-enums": "error", "@typescript-eslint/no-namespace": "error", "@typescript-eslint/no-non-null-asserted-nullish-coalescing": "error", "@typescript-eslint/no-non-null-asserted-optional-chain": "error", "@typescript-eslint/no-non-null-assertion": "error", "@typescript-eslint/no-redeclare": "error", "@typescript-eslint/no-redundant-type-constituents": "error", "@typescript-eslint/no-require-imports": "error", "@typescript-eslint/no-restricted-imports": "error", "@typescript-eslint/no-restricted-types": "error", "@typescript-eslint/no-shadow": "error", "@typescript-eslint/no-this-alias": "error", "@typescript-eslint/no-unnecessary-boolean-literal-compare": "error", "@typescript-eslint/no-unnecessary-condition": "error", "@typescript-eslint/no-unnecessary-parameter-property-assignment": "error", "@typescript-eslint/no-unnecessary-qualifier": "error", "@typescript-eslint/no-unnecessary-template-expression": "error", "@typescript-eslint/no-unnecessary-type-arguments": "error", "@typescript-eslint/no-unnecessary-type-assertion": "error", "@typescript-eslint/no-unnecessary-type-constraint": "error", "@typescript-eslint/no-unnecessary-type-conversion": "error", "@typescript-eslint/no-unnecessary-type-parameters": "error", "@typescript-eslint/no-unsafe-argument": "error", "@typescript-eslint/no-unsafe-assignment": "error", "@typescript-eslint/no-unsafe-call": "error", "@typescript-eslint/no-unsafe-declaration-merging": "error", "@typescript-eslint/no-unsafe-enum-comparison": "error", "@typescript-eslint/no-unsafe-function-type": "error", "@typescript-eslint/no-unsafe-member-access": "error", "@typescript-eslint/no-unsafe-return": "error", "@typescript-eslint/no-unsafe-type-assertion": "error", "@typescript-eslint/no-unsafe-unary-minus": "error", "@typescript-eslint/no-unused-expressions": "error", "@typescript-eslint/no-unused-private-class-members": "error", "@typescript-eslint/no-unused-vars": "error", "@typescript-eslint/no-use-before-define": "error", "@typescript-eslint/no-useless-constructor": "error", "@typescript-eslint/no-useless-default-assignment": "error", "@typescript-eslint/no-useless-empty-export": "error", "@typescript-eslint/no-var-requires": "error", "@typescript-eslint/no-wrapper-object-types": "error", "@typescript-eslint/non-nullable-type-assertion-style": "error", "@typescript-eslint/only-throw-error": "error", "@typescript-eslint/parameter-properties": "error", "@typescript-eslint/prefer-as-const": "error", "@typescript-eslint/prefer-destructuring": "error", "@typescript-eslint/prefer-enum-initializers": "error", "@typescript-eslint/prefer-find": "error", "@typescript-eslint/prefer-for-of": "error", "@typescript-eslint/prefer-function-type": "error", "@typescript-eslint/prefer-includes": "error", "@typescript-eslint/prefer-literal-enum-member": "error", "@typescript-eslint/prefer-namespace-keyword": "error", "@typescript-eslint/prefer-nullish-coalescing": "error", "@typescript-eslint/prefer-optional-chain": "error", "@typescript-eslint/prefer-promise-reject-errors": "error", "@typescript-eslint/prefer-readonly": "error", "@typescript-eslint/prefer-readonly-parameter-types": "error", "@typescript-eslint/prefer-reduce-type-parameter": "error", "@typescript-eslint/prefer-regexp-exec": "error", "@typescript-eslint/prefer-return-this-type": "error", "@typescript-eslint/prefer-string-starts-ends-with": "error", "@typescript-eslint/prefer-ts-expect-error": "error", "@typescript-eslint/promise-function-async": "error", "@typescript-eslint/related-getter-setter-pairs": "error", "@typescript-eslint/require-array-sort-compare": "error", "@typescript-eslint/require-await": "error", "@typescript-eslint/restrict-plus-operands": "error", "@typescript-eslint/restrict-template-expressions": "error", "@typescript-eslint/return-await": "error", "@typescript-eslint/sort-type-constituents": "error", "@typescript-eslint/strict-boolean-expressions": "error", "@typescript-eslint/strict-void-return": "error", "@typescript-eslint/switch-exhaustiveness-check": "error", "@typescript-eslint/triple-slash-reference": "error", "@typescript-eslint/typedef": "error", "@typescript-eslint/unbound-method": "error", "@typescript-eslint/unified-signatures": "error", "@typescript-eslint/use-unknown-in-catch-callback-variable": "error" } }, { "files": ["**/*.js", "**/*.mjs", "**/*.cjs", "**/*.jsx"], "rules": { "accessor-pairs": "error", "array-callback-return": "error", "arrow-body-style": "error", "block-scoped-var": "error", "camelcase": ["error", { "properties": "never" }], "capitalized-comments": "error", "class-methods-use-this": "error", "complexity": ["error", { "maximum": 12 }], "consistent-return": "error", "consistent-this": "error", "constructor-super": "error", "curly": "error", "default-case": "error", "default-case-last": "error", "default-param-last": "error", "dot-notation": "error", "eqeqeq": "error", "for-direction": "error", "func-name-matching": "error", "func-names": "error", "getter-return": "error", "grouped-accessor-pairs": "error", "guard-for-in": "error", "id-denylist": "error", "id-match": "error", "init-declarations": "error", "logical-assignment-operators": "error", "max-classes-per-file": "error", "max-depth": ["error", { "maximum": 3 }], "max-lines": [ "error", { "skipBlankLines": true, "skipComments": true, "max": 200 } ], "max-lines-per-function": [ "error", { "skipBlankLines": true, "skipComments": true, "max": 25 } ], "max-nested-callbacks": "error", "max-params": ["error", { "maximum": 4 }], "max-statements": ["error", { "maximum": 25 }], "new-cap": "error", "no-alert": "error", "no-array-constructor": "error", "no-async-promise-executor": "error", "no-await-in-loop": "error", "no-bitwise": "error", "no-caller": "error", "no-case-declarations": "error", "no-class-assign": "error", "no-compare-neg-zero": "error", "no-cond-assign": "error", "no-console": "error", "no-const-assign": "error", "no-constant-binary-expression": "error", "no-constant-condition": "error", "no-constructor-return": "error", "no-continue": "error", "no-control-regex": "error", "no-debugger": "error", "no-delete-var": "error", "no-div-regex": "error", "no-dupe-args": "error", "no-dupe-class-members": "error", "no-dupe-else-if": "error", "no-dupe-keys": "error", "no-duplicate-case": "error", "no-else-return": "error", "no-empty": "error", "no-empty-character-class": "error", "no-empty-function": "error", "no-empty-pattern": "error", "no-empty-static-block": "error", "no-eq-null": "error", "no-eval": "error", "no-ex-assign": "error", "no-extend-native": "error", "no-extra-bind": "error", "no-extra-boolean-cast": "error", "no-extra-label": "error", "no-fallthrough": "error", "no-func-assign": "error", "no-global-assign": "error", "no-implicit-coercion": "error", "no-implicit-globals": "error", "no-implied-eval": "error", "no-import-assign": "error", "no-inline-comments": "error", "no-inner-declarations": "error", "no-invalid-regexp": "error", "no-invalid-this": "error", "no-irregular-whitespace": "error", "no-iterator": "error", "no-label-var": "error", "no-labels": "error", "no-lone-blocks": "error", "no-lonely-if": "error", "no-loop-func": "error", "no-loss-of-precision": "error", "no-magic-numbers": ["error", { "ignore": [-1, 0, 1] }], "no-misleading-character-class": "error", "no-multi-str": "error", "no-negated-condition": "error", "no-new": "error", "no-new-func": "error", "no-new-native-nonconstructor": "error", "no-new-wrappers": "error", "no-nonoctal-decimal-escape": "error", "no-obj-calls": "error", "no-object-constructor": "error", "no-octal": "error", "no-octal-escape": "error", "no-param-reassign": "error", "no-promise-executor-return": "error", "no-proto": "error", "no-prototype-builtins": "error", "no-redeclare": "error", "no-regex-spaces": "error", "no-restricted-exports": "error", "no-restricted-globals": "error", "no-restricted-imports": "error", "no-restricted-properties": "error", "no-restricted-syntax": "error", "no-return-assign": "error", "no-script-url": "error", "no-self-assign": "error", "no-self-compare": "error", "no-sequences": "error", "no-setter-return": "error", "no-shadow": "error", "no-shadow-restricted-names": "error", "no-sparse-arrays": "error", "no-template-curly-in-string": "error", "no-this-before-super": "error", "no-throw-literal": "error", "no-unassigned-vars": "error", "no-undef": "error", "no-undef-init": "error", "no-undefined": "error", "no-underscore-dangle": "error", "no-unexpected-multiline": "error", "no-unmodified-loop-condition": "error", "no-unreachable": "error", "no-unreachable-loop": "error", "no-unsafe-finally": "error", "no-unsafe-negation": "error", "no-unsafe-optional-chaining": "error", "no-unused-expressions": "error", "no-unused-labels": "error", "no-unused-private-class-members": "error", "no-unused-vars": "error", "no-use-before-define": "error", "no-useless-assignment": "error", "no-useless-backreference": "error", "no-useless-call": "error", "no-useless-catch": "error", "no-useless-computed-key": "error", "no-useless-concat": "error", "no-useless-constructor": "error", "no-useless-escape": "error", "no-useless-rename": "error", "no-useless-return": "error", "no-var": "error", "no-void": "error", "no-warning-comments": "error", "no-with": "error", "object-shorthand": "error", "operator-assignment": "error", "prefer-arrow-callback": "error", "prefer-const": "error", "prefer-destructuring": "error", "prefer-exponentiation-operator": "error", "prefer-named-capture-group": "error", "prefer-numeric-literals": "error", "prefer-object-has-own": "error", "prefer-object-spread": "error", "prefer-promise-reject-errors": "error", "prefer-regex-literals": "error", "prefer-rest-params": "error", "prefer-spread": "error", "prefer-template": "error", "preserve-caught-error": "error", "radix": "error", "require-atomic-updates": "error", "require-await": "error", "require-unicode-regexp": "error", "require-yield": "error", "sort-vars": "error", "strict": "error", "symbol-description": "error", "unicode-bom": "error", "use-isnan": "error", "valid-typeof": "error", "vars-on-top": "error", "yoda": "error", "unused-imports/no-unused-imports": "error", "unused-imports/no-unused-vars": "error", "sonarjs/anchor-precedence": "error", "sonarjs/argument-type": "error", "sonarjs/arguments-order": "error", "sonarjs/arguments-usage": "error", "sonarjs/array-callback-without-return": "error", "sonarjs/array-constructor": "error", "sonarjs/arrow-function-convention": "error", "sonarjs/assertions-in-tests": "error", "sonarjs/async-test-assertions": "error", "sonarjs/aws-apigateway-public-api": "error", "sonarjs/aws-ec2-rds-dms-public": "error", "sonarjs/aws-ec2-unencrypted-ebs-volume": "error", "sonarjs/aws-efs-unencrypted": "error", "sonarjs/aws-iam-all-privileges": "error", "sonarjs/aws-iam-all-resources-accessible": "error", "sonarjs/aws-iam-privilege-escalation": "error", "sonarjs/aws-iam-public-access": "error", "sonarjs/aws-opensearchservice-domain": "error", "sonarjs/aws-rds-unencrypted-databases": "error", "sonarjs/aws-restricted-ip-admin-access": "error", "sonarjs/aws-s3-bucket-granted-access": "error", "sonarjs/aws-s3-bucket-insecure-http": "error", "sonarjs/aws-s3-bucket-public-access": "error", "sonarjs/aws-s3-bucket-versioning": "error", "sonarjs/aws-sagemaker-unencrypted-notebook": "error", "sonarjs/aws-sns-unencrypted-topics": "error", "sonarjs/aws-sqs-unencrypted-queue": "error", "sonarjs/bitwise-operators": "error", "sonarjs/block-scoped-var": "error", "sonarjs/bool-param-default": "error", "sonarjs/call-argument-line": "error", "sonarjs/chai-determinate-assertion": "error", "sonarjs/class-name": "error", "sonarjs/class-prototype": "error", "sonarjs/code-eval": "error", "sonarjs/cognitive-complexity": "error", "sonarjs/comma-or-logical-or-case": "error", "sonarjs/comment-regex": "error", "sonarjs/concise-regex": "error", "sonarjs/conditional-indentation": "error", "sonarjs/confidential-information-logging": "error", "sonarjs/constructor-for-side-effects": "error", "sonarjs/content-length": "error", "sonarjs/content-security-policy": "error", "sonarjs/cookie-no-httponly": "error", "sonarjs/cors": "error", "sonarjs/csrf": "error", "sonarjs/cyclomatic-complexity": "error", "sonarjs/declarations-in-global-scope": "error", "sonarjs/deprecation": "error", "sonarjs/destructuring-assignment-syntax": "error", "sonarjs/different-types-comparison": "error", "sonarjs/disabled-auto-escaping": "error", "sonarjs/disabled-resource-integrity": "error", "sonarjs/disabled-timeout": "error", "sonarjs/dompurify-unsafe-config": "error", "sonarjs/duplicates-in-character-class": "error", "sonarjs/dynamically-constructed-templates": "error", "sonarjs/elseif-without-else": "error", "sonarjs/empty-string-repetition": "error", "sonarjs/encryption-secure-mode": "error", "sonarjs/existing-groups": "error", "sonarjs/expression-complexity": "error", "sonarjs/file-header": "error", "sonarjs/file-name-differ-from-class": "error", "sonarjs/file-permissions": "error", "sonarjs/file-uploads": "error", "sonarjs/fixme-tag": "error", "sonarjs/for-in": "error", "sonarjs/for-loop-increment-sign": "error", "sonarjs/frame-ancestors": "error", "sonarjs/function-inside-loop": "error", "sonarjs/function-name": "error", "sonarjs/function-return-type": "error", "sonarjs/future-reserved-words": "error", "sonarjs/generator-without-yield": "error", "sonarjs/hardcoded-secret-signatures": "error", "sonarjs/hashing": "error", "sonarjs/hidden-files": "error", "sonarjs/hooks-before-test-cases": "error", "sonarjs/in-operator-type-error": "error", "sonarjs/inconsistent-function-call": "error", "sonarjs/index-of-compare-to-positive-number": "error", "sonarjs/insecure-cookie": "error", "sonarjs/insecure-jwt-token": "error", "sonarjs/inverted-assertion-arguments": "error", "sonarjs/jsx-no-leaked-render": "error", "sonarjs/label-position": "error", "sonarjs/link-with-target-blank": "error", "sonarjs/max-lines": "error", "sonarjs/max-lines-per-function": "error", "sonarjs/max-switch-cases": "error", "sonarjs/max-union-size": "error", "sonarjs/misplaced-loop-counter": "error", "sonarjs/nested-control-flow": "error", "sonarjs/new-operator-misuse": "error", "sonarjs/no-all-duplicated-branches": "error", "sonarjs/no-alphabetical-sort": "error", "sonarjs/no-angular-bypass-sanitization": "error", "sonarjs/no-array-delete": "error", "sonarjs/no-associative-arrays": "error", "sonarjs/no-async-constructor": "error", "sonarjs/no-built-in-override": "error", "sonarjs/no-case-label-in-switch": "error", "sonarjs/no-clear-text-protocols": "error", "sonarjs/no-code-after-done": "error", "sonarjs/no-collapsible-if": "error", "sonarjs/no-collection-size-mischeck": "error", "sonarjs/no-commented-code": "error", "sonarjs/no-control-regex": "error", "sonarjs/no-dead-store": "error", "sonarjs/no-delete-var": "error", "sonarjs/no-duplicate-in-composite": "error", "sonarjs/no-duplicate-string": "error", "sonarjs/no-duplicate-test-title": "error", "sonarjs/no-duplicated-branches": "error", "sonarjs/no-element-overwrite": "error", "sonarjs/no-empty-after-reluctant": "error", "sonarjs/no-empty-alternatives": "error", "sonarjs/no-empty-character-class": "error", "sonarjs/no-empty-collection": "error", "sonarjs/no-empty-group": "error", "sonarjs/no-empty-test-file": "error", "sonarjs/no-empty-test-title": "error", "sonarjs/no-equals-in-for-termination": "error", "sonarjs/no-exclusive-tests": "error", "sonarjs/no-extra-arguments": "error", "sonarjs/no-fallthrough": "error", "sonarjs/no-floating-point-equality": "error", "sonarjs/no-for-in-iterable": "error", "sonarjs/no-forced-browser-interaction": "error", "sonarjs/no-function-declaration-in-block": "error", "sonarjs/no-global-this": "error", "sonarjs/no-globals-shadowing": "error", "sonarjs/no-gratuitous-expressions": "error", "sonarjs/no-hardcoded-ip": "error", "sonarjs/no-hardcoded-passwords": "error", "sonarjs/no-hardcoded-secrets": "error", "sonarjs/no-hook-setter-in-body": "error", "sonarjs/no-identical-conditions": "error", "sonarjs/no-identical-expressions": "error", "sonarjs/no-identical-functions": "error", "sonarjs/no-ignored-exceptions": "error", "sonarjs/no-ignored-return": "error", "sonarjs/no-implicit-dependencies": "error", "sonarjs/no-implicit-global": "error", "sonarjs/no-in-misuse": "error", "sonarjs/no-incompatible-assertion-types": "error", "sonarjs/no-incomplete-assertions": "error", "sonarjs/no-inconsistent-returns": "error", "sonarjs/no-incorrect-string-concat": "error", "sonarjs/no-internal-api-use": "error", "sonarjs/no-intrusive-permissions": "error", "sonarjs/no-invalid-regexp": "error", "sonarjs/no-invariant-returns": "error", "sonarjs/no-inverted-boolean-check": "error", "sonarjs/no-ip-forward": "error", "sonarjs/no-labels": "error", "sonarjs/no-literal-call": "error", "sonarjs/no-mime-sniff": "error", "sonarjs/no-misleading-array-reverse": "error", "sonarjs/no-misleading-character-class": "error", "sonarjs/no-mixed-content": "error", "sonarjs/no-nested-assignment": "error", "sonarjs/no-nested-functions": "error", "sonarjs/no-nested-incdec": "error", "sonarjs/no-nested-switch": "error", "sonarjs/no-nested-template-literals": "error", "sonarjs/no-os-command-from-path": "error", "sonarjs/no-parameter-reassignment": "error", "sonarjs/no-primitive-wrappers": "error", "sonarjs/no-redundant-assignments": "error", "sonarjs/no-redundant-boolean": "error", "sonarjs/no-redundant-jump": "error", "sonarjs/no-redundant-optional": "error", "sonarjs/no-redundant-parentheses": "error", "sonarjs/no-reference-error": "error", "sonarjs/no-referrer-policy": "error", "sonarjs/no-regex-spaces": "error", "sonarjs/no-require-or-define": "error", "sonarjs/no-return-type-any": "error", "sonarjs/no-same-argument-assert": "error", "sonarjs/no-same-line-conditional": "error", "sonarjs/no-selector-parameter": "error", "sonarjs/no-session-cookies-on-static-assets": "error", "sonarjs/no-skipped-tests": "error", "sonarjs/no-small-switch": "error", "sonarjs/no-sonar-comments": "error", "sonarjs/no-tab": "error", "sonarjs/no-table-as-layout": "error", "sonarjs/no-trivial-assertions": "error", "sonarjs/no-try-promise": "error", "sonarjs/no-undefined-argument": "error", "sonarjs/no-undefined-assignment": "error", "sonarjs/no-unenclosed-multiline-block": "error", "sonarjs/no-uniq-key": "error", "sonarjs/no-unsafe-unzip": "error", "sonarjs/no-unthrown-error": "error", "sonarjs/no-unused-collection": "error", "sonarjs/no-unused-function-argument": "error", "sonarjs/no-unused-vars": "error", "sonarjs/no-use-of-empty-return-value": "error", "sonarjs/no-useless-catch": "error", "sonarjs/no-useless-increment": "error", "sonarjs/no-useless-intersection": "error", "sonarjs/no-useless-react-setstate": "error", "sonarjs/no-variable-usage-before-declaration": "error", "sonarjs/no-weak-cipher": "error", "sonarjs/no-weak-keys": "error", "sonarjs/no-wildcard-import": "error", "sonarjs/non-existent-operator": "error", "sonarjs/non-number-in-arithmetic-expression": "error", "sonarjs/null-dereference": "error", "sonarjs/object-alt-content": "error", "sonarjs/operation-returning-nan": "error", "sonarjs/os-command": "error", "sonarjs/post-message": "error", "sonarjs/prefer-default-last": "error", "sonarjs/prefer-immediate-return": "error", "sonarjs/prefer-object-literal": "error", "sonarjs/prefer-promise-shorthand": "error", "sonarjs/prefer-read-only-props": "error", "sonarjs/prefer-regexp-exec": "error", "sonarjs/prefer-single-boolean-return": "error", "sonarjs/prefer-specific-assertions": "error", "sonarjs/prefer-type-guard": "error", "sonarjs/prefer-while": "error", "sonarjs/production-debug": "error", "sonarjs/pseudo-random": "error", "sonarjs/public-static-readonly": "error", "sonarjs/publicly-writable-directories": "error", "sonarjs/reduce-initial-value": "error", "sonarjs/redundant-type-aliases": "error", "sonarjs/regex-complexity": "error", "sonarjs/review-blockchain-mnemonic": "error", "sonarjs/session-regeneration": "error", "sonarjs/shorthand-property-grouping": "error", "sonarjs/single-char-in-character-classes": "error", "sonarjs/single-character-alternation": "error", "sonarjs/slow-regex": "error", "sonarjs/sql-queries": "error", "sonarjs/stable-tests": "error", "sonarjs/stateful-regex": "error", "sonarjs/strict-transport-security": "error", "sonarjs/strings-comparison": "error", "sonarjs/super-linear-regex": "error", "sonarjs/table-header": "error", "sonarjs/table-header-reference": "error", "sonarjs/test-check-exception": "error", "sonarjs/todo-tag": "error", "sonarjs/too-many-break-or-continue-in-loop": "error", "sonarjs/unicode-aware-regex": "error", "sonarjs/unused-import": "error", "sonarjs/unused-named-groups": "error", "sonarjs/unverified-certificate": "error", "sonarjs/unverified-hostname": "error", "sonarjs/updated-const-var": "error", "sonarjs/updated-loop-counter": "error", "sonarjs/use-type-alias": "error", "sonarjs/useless-string-operation": "error", "sonarjs/values-not-convertible-to-numbers": "error", "sonarjs/variable-name": "error", "sonarjs/void-use": "error", "sonarjs/weak-ssl": "error", "sonarjs/web-sql-database": "error", "sonarjs/x-powered-by": "error", "sonarjs/xml-parser-xxe": "error", "govlab-context/fragment-single-concern": "error", "govlab/function-style": "error", "govlab/local-camelcase": "error", "govlab/no-async-test-without-await": "error", "govlab/no-barrel-reexport": "error", "govlab/no-bitwise-outside-flags": "error", "govlab/no-boolean-trap": "error", "govlab/no-call-enumeration": "error", "govlab/no-chained-assignment": "error", "govlab/no-concrete-dependency": "error", "govlab/no-conditional-dispatch": "error", "govlab/no-constructor-callback": "error", "govlab/no-deprecated-api": "error", "govlab/no-direct-environment-access": "error", "govlab-context/no-duplicate-fragment": "error", "govlab/no-duplicate-imports": "error", "govlab/no-environment-fallback": "error", "govlab/no-fake-abstract-this": "error", "govlab-context/no-hardcoded-context-token": "error", "govlab/no-hardcoded-secrets": "error", "govlab/no-increment-operator": "error", "govlab-context/no-inline-context-literal": "error", "govlab/no-inline-events": "error", "govlab/no-inline-style": "error", "govlab/no-inline-types": "error", "govlab/no-jsdoc-type-tags": "error", "govlab/no-mixed-concerns": "error", "govlab/no-mutable-parameter": "error", "govlab/no-optional-dependency": "error", "govlab/no-platform-coupling": "error", "govlab/no-regex": "error", "govlab/no-sequential-effect-block": "error", "govlab/no-shell-argument-injection": "error", "govlab/no-timestamp-ordering": "error", "govlab/no-underscore-dead-code": "error", "govlab/no-upward-dependency": "error", "govlab/no-wildcard-exports": "error", "govlab/require-canonical-concept": "error", "govlab/require-central-config": "error", "govlab-context/require-fragment-metadata": "error", "govlab/require-mapped-concept": "error", "govlab/require-private-package": "error", "govlab/require-resource-disposal": "error", "govlab/require-test-coverage": "error", "govlab/require-window-post-message-target-origin": "error", "govlab/sort-imports": "error", "govlab/sort-keys": "error", "govlab/valid-test-surface": "error" } }, { "files": ["**/*.ts", "**/*.tsx", "**/*.mts", "**/*.cts"], "rules": { "no-undef": "off", "class-methods-use-this": "off", "consistent-return": "off", "default-param-last": "off", "dot-notation": "off", "init-declarations": "off", "max-params": "off", "no-array-constructor": "off", "no-dupe-class-members": "off", "no-empty-function": "off", "no-implied-eval": "off", "no-invalid-this": "off", "no-loop-func": "off", "no-loss-of-precision": "off", "no-magic-numbers": "off", "no-redeclare": "off", "no-restricted-imports": "off", "no-shadow": "off", "no-unused-expressions": "off", "no-unused-private-class-members": "off", "no-unused-vars": "off", "no-use-before-define": "off", "no-useless-constructor": "off", "prefer-destructuring": "off", "prefer-promise-reject-errors": "off", "require-await": "off" } }, { "files": [ "**/*.test.ts", "**/*.test.tsx", "**/*.test.mts", "**/*.test.cts", "**/*.spec.ts", "**/*.spec.tsx", "**/*-live-test.ts", "**/*-live-test.mts", "**/tests/**/*.ts", "**/tests/**/*.tsx", "**/tests/**/*.mts", "**/__tests__/**/*.ts", "**/__tests__/**/*.tsx" ], "rules": { "@typescript-eslint/await-thenable": "off", "@typescript-eslint/consistent-return": "off", "@typescript-eslint/consistent-type-exports": "off", "@typescript-eslint/dot-notation": "off", "@typescript-eslint/naming-convention": "off", "@typescript-eslint/no-array-delete": "off", "@typescript-eslint/no-base-to-string": "off", "@typescript-eslint/no-confusing-void-expression": "off", "@typescript-eslint/no-deprecated": "off", "@typescript-eslint/no-duplicate-type-constituents": "off", "@typescript-eslint/no-floating-promises": "off", "@typescript-eslint/no-for-in-array": "off", "@typescript-eslint/no-generated-empty-object-type": "off", "@typescript-eslint/no-implied-eval": "off", "@typescript-eslint/no-meaningless-void-operator": "off", "@typescript-eslint/no-misused-promises": "off", "@typescript-eslint/no-misused-spread": "off", "@typescript-eslint/no-mixed-enums": "off", "@typescript-eslint/no-redundant-type-constituents": "off", "@typescript-eslint/no-unnecessary-boolean-literal-compare": "off", "@typescript-eslint/no-unnecessary-condition": "off", "@typescript-eslint/no-unnecessary-qualifier": "off", "@typescript-eslint/no-unnecessary-template-expression": "off", "@typescript-eslint/no-unnecessary-type-arguments": "off", "@typescript-eslint/no-unnecessary-type-assertion": "off", "@typescript-eslint/no-unnecessary-type-conversion": "off", "@typescript-eslint/no-unnecessary-type-parameters": "off", "@typescript-eslint/no-unsafe-argument": "off", "@typescript-eslint/no-unsafe-assignment": "off", "@typescript-eslint/no-unsafe-call": "off", "@typescript-eslint/no-unsafe-enum-comparison": "off", "@typescript-eslint/no-unsafe-member-access": "off", "@typescript-eslint/no-unsafe-return": "off", "@typescript-eslint/no-unsafe-type-assertion": "off", "@typescript-eslint/no-unsafe-unary-minus": "off", "@typescript-eslint/no-useless-default-assignment": "off", "@typescript-eslint/non-nullable-type-assertion-style": "off", "@typescript-eslint/only-throw-error": "off", "@typescript-eslint/prefer-destructuring": "off", "@typescript-eslint/prefer-find": "off", "@typescript-eslint/prefer-includes": "off", "@typescript-eslint/prefer-nullish-coalescing": "off", "@typescript-eslint/prefer-optional-chain": "off", "@typescript-eslint/prefer-promise-reject-errors": "off", "@typescript-eslint/prefer-readonly": "off", "@typescript-eslint/prefer-readonly-parameter-types": "off", "@typescript-eslint/prefer-reduce-type-parameter": "off", "@typescript-eslint/prefer-regexp-exec": "off", "@typescript-eslint/prefer-return-this-type": "off", "@typescript-eslint/prefer-string-starts-ends-with": "off", "@typescript-eslint/promise-function-async": "off", "@typescript-eslint/related-getter-setter-pairs": "off", "@typescript-eslint/require-array-sort-compare": "off", "@typescript-eslint/require-await": "off", "@typescript-eslint/restrict-plus-operands": "off", "@typescript-eslint/restrict-template-expressions": "off", "@typescript-eslint/return-await": "off", "@typescript-eslint/strict-boolean-expressions": "off", "@typescript-eslint/strict-void-return": "off", "@typescript-eslint/switch-exhaustiveness-check": "off", "@typescript-eslint/unbound-method": "off", "@typescript-eslint/use-unknown-in-catch-callback-variable": "off" } }, { "files": ["**/*.json"], "rules": { "jsonc/array-bracket-newline": "error", "jsonc/array-bracket-spacing": "error", "jsonc/array-element-newline": "error", "jsonc/comma-dangle": "error", "jsonc/comma-style": "error", "jsonc/indent": "error", "jsonc/key-name-casing": "error", "jsonc/key-spacing": "error", "jsonc/no-bigint-literals": "error", "jsonc/no-binary-expression": "error", "jsonc/no-binary-numeric-literals": "error", "jsonc/no-comments": "error", "jsonc/no-dupe-keys": "error", "jsonc/no-escape-sequence-in-identifier": "error", "jsonc/no-floating-decimal": "error", "jsonc/no-hexadecimal-numeric-literals": "error", "jsonc/no-infinity": "error", "jsonc/no-irregular-whitespace": "error", "jsonc/no-multi-str": "error", "jsonc/no-nan": "error", "jsonc/no-number-props": "error", "jsonc/no-numeric-separators": "error", "jsonc/no-octal": "error", "jsonc/no-octal-escape": "error", "jsonc/no-octal-numeric-literals": "error", "jsonc/no-parenthesized": "error", "jsonc/no-plus-sign": "error", "jsonc/no-regexp-literals": "error", "jsonc/no-sparse-arrays": "error", "jsonc/no-template-literals": "error", "jsonc/no-undefined-value": "error", "jsonc/no-unicode-codepoint-escapes": "error", "jsonc/no-useless-escape": "error", "jsonc/object-curly-newline": "error", "jsonc/object-curly-spacing": "error", "jsonc/object-property-newline": "error", "jsonc/quote-props": "error", "jsonc/quotes": "error", "jsonc/space-unary-ops": "error", "jsonc/valid-json-number": "error", "jsonc/vue-custom-block/no-parsing-error": "error" }, "plugins": ["jsonc"] }, { "files": ["**/*.html"], "rules": { "accessor-pairs": "error", "array-callback-return": "error", "arrow-body-style": "error", "block-scoped-var": "error", "camelcase": ["error", { "properties": "never" }], "capitalized-comments": "error", "class-methods-use-this": "error", "complexity": ["error", { "maximum": 12 }], "consistent-return": "error", "consistent-this": "error", "constructor-super": "error", "curly": "error", "default-case": "error", "default-case-last": "error", "default-param-last": "error", "dot-notation": "error", "eqeqeq": "error", "for-direction": "error", "func-name-matching": "error", "func-names": "error", "getter-return": "error", "grouped-accessor-pairs": "error", "guard-for-in": "error", "id-denylist": "error", "id-match": "error", "init-declarations": "error", "logical-assignment-operators": "error", "max-classes-per-file": "error", "max-depth": ["error", { "maximum": 3 }], "max-lines": [ "error", { "skipBlankLines": true, "skipComments": true, "max": 200 } ], "max-lines-per-function": [ "error", { "skipBlankLines": true, "skipComments": true, "max": 25 } ], "max-nested-callbacks": "error", "max-params": ["error", { "maximum": 4 }], "max-statements": ["error", { "maximum": 25 }], "new-cap": "error", "no-alert": "error", "no-array-constructor": "error", "no-async-promise-executor": "error", "no-await-in-loop": "error", "no-bitwise": "error", "no-caller": "error", "no-case-declarations": "error", "no-class-assign": "error", "no-compare-neg-zero": "error", "no-cond-assign": "error", "no-console": "error", "no-const-assign": "error", "no-constant-binary-expression": "error", "no-constant-condition": "error", "no-constructor-return": "error", "no-continue": "error", "no-control-regex": "error", "no-debugger": "error", "no-delete-var": "error", "no-div-regex": "error", "no-dupe-args": "error", "no-dupe-class-members": "error", "no-dupe-else-if": "error", "no-dupe-keys": "error", "no-duplicate-case": "error", "no-else-return": "error", "no-empty": "error", "no-empty-character-class": "error", "no-empty-function": "error", "no-empty-pattern": "error", "no-empty-static-block": "error", "no-eq-null": "error", "no-eval": "error", "no-ex-assign": "error", "no-extend-native": "error", "no-extra-bind": "error", "no-extra-boolean-cast": "error", "no-extra-label": "error", "no-fallthrough": "error", "no-func-assign": "error", "no-global-assign": "error", "no-implicit-coercion": "error", "no-implicit-globals": "error", "no-implied-eval": "error", "no-import-assign": "error", "no-inline-comments": "error", "no-inner-declarations": "error", "no-invalid-regexp": "error", "no-invalid-this": "error", "no-irregular-whitespace": "error", "no-iterator": "error", "no-label-var": "error", "no-labels": "error", "no-lone-blocks": "error", "no-lonely-if": "error", "no-loop-func": "error", "no-loss-of-precision": "error", "no-magic-numbers": ["error", { "ignore": [-1, 0, 1] }], "no-misleading-character-class": "error", "no-multi-str": "error", "no-negated-condition": "error", "no-new": "error", "no-new-func": "error", "no-new-native-nonconstructor": "error", "no-new-wrappers": "error", "no-nonoctal-decimal-escape": "error", "no-obj-calls": "error", "no-object-constructor": "error", "no-octal": "error", "no-octal-escape": "error", "no-param-reassign": "error", "no-promise-executor-return": "error", "no-proto": "error", "no-prototype-builtins": "error", "no-redeclare": "error", "no-regex-spaces": "error", "no-restricted-exports": "error", "no-restricted-globals": "error", "no-restricted-imports": "error", "no-restricted-properties": "error", "no-restricted-syntax": "error", "no-return-assign": "error", "no-script-url": "error", "no-self-assign": "error", "no-self-compare": "error", "no-sequences": "error", "no-setter-return": "error", "no-shadow": "error", "no-shadow-restricted-names": "error", "no-sparse-arrays": "error", "no-template-curly-in-string": "error", "no-this-before-super": "error", "no-throw-literal": "error", "no-unassigned-vars": "error", "no-undef": "error", "no-undef-init": "error", "no-undefined": "error", "no-underscore-dangle": "error", "no-unexpected-multiline": "error", "no-unmodified-loop-condition": "error", "no-unreachable": "error", "no-unreachable-loop": "error", "no-unsafe-finally": "error", "no-unsafe-negation": "error", "no-unsafe-optional-chaining": "error", "no-unused-expressions": "error", "no-unused-labels": "error", "no-unused-private-class-members": "error", "no-unused-vars": "error", "no-use-before-define": "error", "no-useless-assignment": "error", "no-useless-backreference": "error", "no-useless-call": "error", "no-useless-catch": "error", "no-useless-computed-key": "error", "no-useless-concat": "error", "no-useless-constructor": "error", "no-useless-escape": "error", "no-useless-rename": "error", "no-useless-return": "error", "no-var": "error", "no-void": "error", "no-warning-comments": "error", "no-with": "error", "object-shorthand": "error", "operator-assignment": "error", "prefer-arrow-callback": "error", "prefer-const": "error", "prefer-destructuring": "error", "prefer-exponentiation-operator": "error", "prefer-named-capture-group": "error", "prefer-numeric-literals": "error", "prefer-object-has-own": "error", "prefer-object-spread": "error", "prefer-promise-reject-errors": "error", "prefer-regex-literals": "error", "prefer-rest-params": "error", "prefer-spread": "error", "prefer-template": "error", "preserve-caught-error": "error", "radix": "error", "require-atomic-updates": "error", "require-await": "error", "require-unicode-regexp": "error", "require-yield": "error", "sort-vars": "error", "strict": "error", "symbol-description": "error", "unicode-bom": "error", "use-isnan": "error", "valid-typeof": "error", "vars-on-top": "error", "yoda": "error", "unused-imports/no-unused-imports": "error", "unused-imports/no-unused-vars": "error", "sonarjs/anchor-precedence": "error", "sonarjs/argument-type": "error", "sonarjs/arguments-order": "error", "sonarjs/arguments-usage": "error", "sonarjs/array-callback-without-return": "error", "sonarjs/array-constructor": "error", "sonarjs/arrow-function-convention": "error", "sonarjs/assertions-in-tests": "error", "sonarjs/async-test-assertions": "error", "sonarjs/aws-apigateway-public-api": "error", "sonarjs/aws-ec2-rds-dms-public": "error", "sonarjs/aws-ec2-unencrypted-ebs-volume": "error", "sonarjs/aws-efs-unencrypted": "error", "sonarjs/aws-iam-all-privileges": "error", "sonarjs/aws-iam-all-resources-accessible": "error", "sonarjs/aws-iam-privilege-escalation": "error", "sonarjs/aws-iam-public-access": "error", "sonarjs/aws-opensearchservice-domain": "error", "sonarjs/aws-rds-unencrypted-databases": "error", "sonarjs/aws-restricted-ip-admin-access": "error", "sonarjs/aws-s3-bucket-granted-access": "error", "sonarjs/aws-s3-bucket-insecure-http": "error", "sonarjs/aws-s3-bucket-public-access": "error", "sonarjs/aws-s3-bucket-versioning": "error", "sonarjs/aws-sagemaker-unencrypted-notebook": "error", "sonarjs/aws-sns-unencrypted-topics": "error", "sonarjs/aws-sqs-unencrypted-queue": "error", "sonarjs/bitwise-operators": "error", "sonarjs/block-scoped-var": "error", "sonarjs/bool-param-default": "error", "sonarjs/call-argument-line": "error", "sonarjs/chai-determinate-assertion": "error", "sonarjs/class-name": "error", "sonarjs/class-prototype": "error", "sonarjs/code-eval": "error", "sonarjs/cognitive-complexity": "error", "sonarjs/comma-or-logical-or-case": "error", "sonarjs/comment-regex": "error", "sonarjs/concise-regex": "error", "sonarjs/conditional-indentation": "error", "sonarjs/confidential-information-logging": "error", "sonarjs/constructor-for-side-effects": "error", "sonarjs/content-length": "error", "sonarjs/content-security-policy": "error", "sonarjs/cookie-no-httponly": "error", "sonarjs/cors": "error", "sonarjs/csrf": "error", "sonarjs/cyclomatic-complexity": "error", "sonarjs/declarations-in-global-scope": "error", "sonarjs/deprecation": "error", "sonarjs/destructuring-assignment-syntax": "error", "sonarjs/different-types-comparison": "error", "sonarjs/disabled-auto-escaping": "error", "sonarjs/disabled-resource-integrity": "error", "sonarjs/disabled-timeout": "error", "sonarjs/dompurify-unsafe-config": "error", "sonarjs/duplicates-in-character-class": "error", "sonarjs/dynamically-constructed-templates": "error", "sonarjs/elseif-without-else": "error", "sonarjs/empty-string-repetition": "error", "sonarjs/encryption-secure-mode": "error", "sonarjs/existing-groups": "error", "sonarjs/expression-complexity": "error", "sonarjs/file-header": "error", "sonarjs/file-name-differ-from-class": "error", "sonarjs/file-permissions": "error", "sonarjs/file-uploads": "error", "sonarjs/fixme-tag": "error", "sonarjs/for-in": "error", "sonarjs/for-loop-increment-sign": "error", "sonarjs/frame-ancestors": "error", "sonarjs/function-inside-loop": "error", "sonarjs/function-name": "error", "sonarjs/function-return-type": "error", "sonarjs/future-reserved-words": "error", "sonarjs/generator-without-yield": "error", "sonarjs/hardcoded-secret-signatures": "error", "sonarjs/hashing": "error", "sonarjs/hidden-files": "error", "sonarjs/hooks-before-test-cases": "error", "sonarjs/in-operator-type-error": "error", "sonarjs/inconsistent-function-call": "error", "sonarjs/index-of-compare-to-positive-number": "error", "sonarjs/insecure-cookie": "error", "sonarjs/insecure-jwt-token": "error", "sonarjs/inverted-assertion-arguments": "error", "sonarjs/jsx-no-leaked-render": "error", "sonarjs/label-position": "error", "sonarjs/link-with-target-blank": "error", "sonarjs/max-lines": "error", "sonarjs/max-lines-per-function": "error", "sonarjs/max-switch-cases": "error", "sonarjs/max-union-size": "error", "sonarjs/misplaced-loop-counter": "error", "sonarjs/nested-control-flow": "error", "sonarjs/new-operator-misuse": "error", "sonarjs/no-all-duplicated-branches": "error", "sonarjs/no-alphabetical-sort": "error", "sonarjs/no-angular-bypass-sanitization": "error", "sonarjs/no-array-delete": "error", "sonarjs/no-associative-arrays": "error", "sonarjs/no-async-constructor": "error", "sonarjs/no-built-in-override": "error", "sonarjs/no-case-label-in-switch": "error", "sonarjs/no-clear-text-protocols": "error", "sonarjs/no-code-after-done": "error", "sonarjs/no-collapsible-if": "error", "sonarjs/no-collection-size-mischeck": "error", "sonarjs/no-commented-code": "error", "sonarjs/no-control-regex": "error", "sonarjs/no-dead-store": "error", "sonarjs/no-delete-var": "error", "sonarjs/no-duplicate-in-composite": "error", "sonarjs/no-duplicate-string": "error", "sonarjs/no-duplicate-test-title": "error", "sonarjs/no-duplicated-branches": "error", "sonarjs/no-element-overwrite": "error", "sonarjs/no-empty-after-reluctant": "error", "sonarjs/no-empty-alternatives": "error", "sonarjs/no-empty-character-class": "error", "sonarjs/no-empty-collection": "error", "sonarjs/no-empty-group": "error", "sonarjs/no-empty-test-file": "error", "sonarjs/no-empty-test-title": "error", "sonarjs/no-equals-in-for-termination": "error", "sonarjs/no-exclusive-tests": "error", "sonarjs/no-extra-arguments": "error", "sonarjs/no-fallthrough": "error", "sonarjs/no-floating-point-equality": "error", "sonarjs/no-for-in-iterable": "error", "sonarjs/no-forced-browser-interaction": "error", "sonarjs/no-function-declaration-in-block": "error", "sonarjs/no-global-this": "error", "sonarjs/no-globals-shadowing": "error", "sonarjs/no-gratuitous-expressions": "error", "sonarjs/no-hardcoded-ip": "error", "sonarjs/no-hardcoded-passwords": "error", "sonarjs/no-hardcoded-secrets": "error", "sonarjs/no-hook-setter-in-body": "error", "sonarjs/no-identical-conditions": "error", "sonarjs/no-identical-expressions": "error", "sonarjs/no-identical-functions": "error", "sonarjs/no-ignored-exceptions": "error", "sonarjs/no-ignored-return": "error", "sonarjs/no-implicit-dependencies": "error", "sonarjs/no-implicit-global": "error", "sonarjs/no-in-misuse": "error", "sonarjs/no-incompatible-assertion-types": "error", "sonarjs/no-incomplete-assertions": "error", "sonarjs/no-inconsistent-returns": "error", "sonarjs/no-incorrect-string-concat": "error", "sonarjs/no-internal-api-use": "error", "sonarjs/no-intrusive-permissions": "error", "sonarjs/no-invalid-regexp": "error", "sonarjs/no-invariant-returns": "error", "sonarjs/no-inverted-boolean-check": "error", "sonarjs/no-ip-forward": "error", "sonarjs/no-labels": "error", "sonarjs/no-literal-call": "error", "sonarjs/no-mime-sniff": "error", "sonarjs/no-misleading-array-reverse": "error", "sonarjs/no-misleading-character-class": "error", "sonarjs/no-mixed-content": "error", "sonarjs/no-nested-assignment": "error", "sonarjs/no-nested-functions": "error", "sonarjs/no-nested-incdec": "error", "sonarjs/no-nested-switch": "error", "sonarjs/no-nested-template-literals": "error", "sonarjs/no-os-command-from-path": "error", "sonarjs/no-parameter-reassignment": "error", "sonarjs/no-primitive-wrappers": "error", "sonarjs/no-redundant-assignments": "error", "sonarjs/no-redundant-boolean": "error", "sonarjs/no-redundant-jump": "error", "sonarjs/no-redundant-optional": "error", "sonarjs/no-redundant-parentheses": "error", "sonarjs/no-reference-error": "error", "sonarjs/no-referrer-policy": "error", "sonarjs/no-regex-spaces": "error", "sonarjs/no-require-or-define": "error", "sonarjs/no-return-type-any": "error", "sonarjs/no-same-argument-assert": "error", "sonarjs/no-same-line-conditional": "error", "sonarjs/no-selector-parameter": "error", "sonarjs/no-session-cookies-on-static-assets": "error", "sonarjs/no-skipped-tests": "error", "sonarjs/no-small-switch": "error", "sonarjs/no-sonar-comments": "error", "sonarjs/no-tab": "error", "sonarjs/no-table-as-layout": "error", "sonarjs/no-trivial-assertions": "error", "sonarjs/no-try-promise": "error", "sonarjs/no-undefined-argument": "error", "sonarjs/no-undefined-assignment": "error", "sonarjs/no-unenclosed-multiline-block": "error", "sonarjs/no-uniq-key": "error", "sonarjs/no-unsafe-unzip": "error", "sonarjs/no-unthrown-error": "error", "sonarjs/no-unused-collection": "error", "sonarjs/no-unused-function-argument": "error", "sonarjs/no-unused-vars": "error", "sonarjs/no-use-of-empty-return-value": "error", "sonarjs/no-useless-catch": "error", "sonarjs/no-useless-increment": "error", "sonarjs/no-useless-intersection": "error", "sonarjs/no-useless-react-setstate": "error", "sonarjs/no-variable-usage-before-declaration": "error", "sonarjs/no-weak-cipher": "error", "sonarjs/no-weak-keys": "error", "sonarjs/no-wildcard-import": "error", "sonarjs/non-existent-operator": "error", "sonarjs/non-number-in-arithmetic-expression": "error", "sonarjs/null-dereference": "error", "sonarjs/object-alt-content": "error", "sonarjs/operation-returning-nan": "error", "sonarjs/os-command": "error", "sonarjs/post-message": "error", "sonarjs/prefer-default-last": "error", "sonarjs/prefer-immediate-return": "error", "sonarjs/prefer-object-literal": "error", "sonarjs/prefer-promise-shorthand": "error", "sonarjs/prefer-read-only-props": "error", "sonarjs/prefer-regexp-exec": "error", "sonarjs/prefer-single-boolean-return": "error", "sonarjs/prefer-specific-assertions": "error", "sonarjs/prefer-type-guard": "error", "sonarjs/prefer-while": "error", "sonarjs/production-debug": "error", "sonarjs/pseudo-random": "error", "sonarjs/public-static-readonly": "error", "sonarjs/publicly-writable-directories": "error", "sonarjs/reduce-initial-value": "error", "sonarjs/redundant-type-aliases": "error", "sonarjs/regex-complexity": "error", "sonarjs/review-blockchain-mnemonic": "error", "sonarjs/session-regeneration": "error", "sonarjs/shorthand-property-grouping": "error", "sonarjs/single-char-in-character-classes": "error", "sonarjs/single-character-alternation": "error", "sonarjs/slow-regex": "error", "sonarjs/sql-queries": "error", "sonarjs/stable-tests": "error", "sonarjs/stateful-regex": "error", "sonarjs/strict-transport-security": "error", "sonarjs/strings-comparison": "error", "sonarjs/super-linear-regex": "error", "sonarjs/table-header": "error", "sonarjs/table-header-reference": "error", "sonarjs/test-check-exception": "error", "sonarjs/todo-tag": "error", "sonarjs/too-many-break-or-continue-in-loop": "error", "sonarjs/unicode-aware-regex": "error", "sonarjs/unused-import": "error", "sonarjs/unused-named-groups": "error", "sonarjs/unverified-certificate": "error", "sonarjs/unverified-hostname": "error", "sonarjs/updated-const-var": "error", "sonarjs/updated-loop-counter": "error", "sonarjs/use-type-alias": "error", "sonarjs/useless-string-operation": "error", "sonarjs/values-not-convertible-to-numbers": "error", "sonarjs/variable-name": "error", "sonarjs/void-use": "error", "sonarjs/weak-ssl": "error", "sonarjs/web-sql-database": "error", "sonarjs/x-powered-by": "error", "sonarjs/xml-parser-xxe": "error", "govlab-context/fragment-single-concern": "error", "govlab/function-style": "error", "govlab/local-camelcase": "error", "govlab/no-async-test-without-await": "error", "govlab/no-barrel-reexport": "error", "govlab/no-bitwise-outside-flags": "error", "govlab/no-boolean-trap": "error", "govlab/no-call-enumeration": "error", "govlab/no-chained-assignment": "error", "govlab/no-concrete-dependency": "error", "govlab/no-conditional-dispatch": "error", "govlab/no-constructor-callback": "error", "govlab/no-deprecated-api": "error", "govlab/no-direct-environment-access": "error", "govlab-context/no-duplicate-fragment": "error", "govlab/no-duplicate-imports": "error", "govlab/no-environment-fallback": "error", "govlab/no-fake-abstract-this": "error", "govlab-context/no-hardcoded-context-token": "error", "govlab/no-hardcoded-secrets": "error", "govlab/no-increment-operator": "error", "govlab-context/no-inline-context-literal": "error", "govlab/no-inline-events": "error", "govlab/no-inline-style": "error", "govlab/no-inline-types": "error", "govlab/no-jsdoc-type-tags": "error", "govlab/no-mixed-concerns": "error", "govlab/no-mutable-parameter": "error", "govlab/no-optional-dependency": "error", "govlab/no-platform-coupling": "error", "govlab/no-regex": "error", "govlab/no-sequential-effect-block": "error", "govlab/no-shell-argument-injection": "error", "govlab/no-timestamp-ordering": "error", "govlab/no-underscore-dead-code": "error", "govlab/no-upward-dependency": "error", "govlab/no-wildcard-exports": "error", "govlab/require-canonical-concept": "error", "govlab/require-central-config": "error", "govlab-context/require-fragment-metadata": "error", "govlab/require-mapped-concept": "error", "govlab/require-private-package": "error", "govlab/require-resource-disposal": "error", "govlab/require-test-coverage": "error", "govlab/require-window-post-message-target-origin": "error", "govlab/sort-imports": "error", "govlab/sort-keys": "error", "govlab/valid-test-surface": "error" }, "plugins": ["html"] }, { "files": [ "govlab.root/govlab.docs/core/adapters/vcs.adapter.ts", "govlab.root/govlab.quality/core/adapters/dependency.adapter.ts", "govlab.root/govlab.quality/core/lifecycle/invocation.lifecycle.ts", "govlab.root/govlab.stats/core/adapters/vcs.adapter.ts", "{app.root}/banes-lab.deploy/core/probes/vcs.probe.ts" ], "rules": { "sonarjs/no-os-command-from-path": "off" } }, { "rules": { "dot-notation": "off", "govlab/no-concrete-dependency": "off", "govlab/no-bitwise-outside-flags": "off", "govlab/require-central-config": "off", "govlab-deps/no-redundant-type-shim": "error", "govlab-deps/no-undeclared-dependency": "error", "govlab-write/no-raw-file-write": [ "error", { "modules": ["text.persistence.ts"], "writers": [ "writeCanonicalJson", "writeCanonicalText", "writeVerbatim" ] } ], "govlab-local/no-fail-open-guard": "error", "govlab-quality/require-signal-guard": "error", "govlab-test/no-test-without-subject": "error", "jsonc/key-name-casing": "off", "no-bitwise": "off", "complexity": "off", "max-depth": "off", "max-lines": "off", "max-lines-per-function": "off", "max-statements": "off", "no-continue": "off", "no-undefined": "off", "no-use-before-define": "off", "no-void": "off", "sonarjs/arrow-function-convention": [ "error", { "requireParameterParentheses": true } ], "unused-imports/no-unused-vars": [ "error", { "argsIgnorePattern": "^_", "ignoreRestSiblings": true, "varsIgnorePattern": "^_" } ], "no-console": ["error", { "allow": ["warn", "error"] }], "sonarjs/file-header": "off", "sonarjs/max-union-size": ["error", { "threshold": 4 }], "sonarjs/no-duplicate-string": ["error", { "threshold": 5 }], "sonarjs/no-implicit-dependencies": "off", "sonarjs/shorthand-property-grouping": "off", "sonarjs/void-use": "off", "local/centralized-events": "error", "local/centralized-strings": "error", "local/closure-allowlist-entries-are-wired": "error", "local/closure-barrel-must-be-glob": "error", "local/closure-build-script-unimported": "error", "local/closure-discriminated-union-must-be-exhaustive": "error", "local/closure-event-system-has-trajectory": "error", "local/closure-lifecycle-handle-must-be-stored": "error", "local/closure-no-browser-derivation": "error", "local/closure-no-business-inheritance": "error", "local/closure-no-cross-member-relative": "error", "local/closure-no-cross-subsystem-import": "error", "local/closure-no-disable-comments": "error", "local/closure-no-double-cast": "error", "local/closure-no-import-cycles": "error", "local/closure-no-inline-exported-types": "error", "local/closure-no-module-singleton": "error", "local/closure-no-null-managed-instance": "error", "local/closure-no-platform-capability-redefine": "error", "local/closure-no-platform-product-import": "error", "local/closure-no-reachable-dead-exports": "error", "local/closure-no-type-layer-drift": "error", "local/closure-no-undeclared-type-layer": "error", "local/closure-no-unreachable-file": "error", "local/closure-paths-via-ssot": "error", "local/closure-register-needs-consumer": "error", "local/closure-register-verb-reserved": "error", "local/closure-registry-consumer-naming": "error", "local/closure-rule-declarations-resolve": "error", "local/closure-rule-shape": "error", "local/closure-show-flag-polarity": "error", "local/closure-standalone-script-imported": "error", "local/closure-tests-centralized": "error", "local/closure-transitive-liveness": "error", "local/closure-types-centralized": "error", "local/factory-owned-value": "error", "local/file-length": "error", "local/no-comments": "error", "local/no-exclusion-membership": "error", "local/no-hardcoded-exclusions": "error", "local/no-inline-asset-path": "error", "local/no-inline-icon-options": "error", "local/no-inline-style-write": [ "error", { "modules": ["style.registry.ts"] } ], "local/no-linear-scan-lookup": "error", "local/no-literal-strings": "error", "local/no-plaintext-transport": "error", "local/no-port-literal": "error", "local/no-raw-dom": [ "error", { "modules": [ "element.factory.ts", "document.adapter.ts", "diagram.adapter.ts" ] } ], "local/no-string-literal-ids": "error", "local/no-swallowed-failure": "error", "local/require-cache-coverage": "error", "local/require-component": ["error", { "factories": ["createElement"] }], "local/require-pool-registration": "error", "local/require-self-registration": "error", "local/require-snapshot-coverage": "error", "local/retired-collection-id": "error", "local/strings-composition": "error", "local/strings-derived-numbering": "error", "local/strings-diagram-identifiers": "error", "local/strings-harness-neutral": "error", "local/strings-lesson-fields": "error", "local/strings-link-construction": "error", "local/strings-punctuation": "error", "local/strings-sentence-shape": "error", "local/strings-terminology": "error", "local/strings-vocabulary": "error", "local/validated-construction": "error" }, "plugins": [ "local", "govlab-local", "govlab-write", "govlab-deps", "govlab-test", "govlab-quality" ] }, { "files": ["**/*.ts", "**/*.tsx", "**/*.mts", "**/*.cts"], "rules": { "@typescript-eslint/dot-notation": "off", "@typescript-eslint/naming-convention": [ "error", { "format": ["camelCase"], "leadingUnderscore": "allow", "selector": "default", "trailingUnderscore": "allow" }, { "format": ["camelCase", "PascalCase"], "selector": "import" }, { "format": ["camelCase", "UPPER_CASE"], "leadingUnderscore": "allow", "selector": "variable", "trailingUnderscore": "allow" }, { "format": ["PascalCase"], "selector": "typeLike" }, { "format": ["camelCase", "snake_case", "UPPER_CASE"], "leadingUnderscore": "allow", "selector": ["objectLiteralProperty", "typeProperty"] }, { "format": null, "modifiers": ["requiresQuotes"], "selector": ["objectLiteralProperty", "typeProperty"] } ], "@typescript-eslint/method-signature-style": "off", "@typescript-eslint/no-unnecessary-type-parameters": "off", "@typescript-eslint/prefer-readonly-parameter-types": "off", "@typescript-eslint/require-await": "off", "@typescript-eslint/class-methods-use-this": "off", "@typescript-eslint/explicit-function-return-type": "off", "@typescript-eslint/max-params": "off", "@typescript-eslint/no-empty-function": "off", "@typescript-eslint/no-magic-numbers": "off", "@typescript-eslint/no-use-before-define": "off", "@typescript-eslint/consistent-type-imports": [ "error", { "prefer": "type-imports" } ], "@typescript-eslint/no-non-null-assertion": "off", "@typescript-eslint/no-unused-vars": [ "error", { "argsIgnorePattern": "^_", "varsIgnorePattern": "^_" } ] } }, { "ignores": ["**/*.d.ts", "**/*.config.ts"] }, { "files": ["**/*.test.ts", "**/*.fixture.ts"], "rules": { "complexity": "off", "max-depth": "off", "max-lines": "off", "max-lines-per-function": "off", "max-params": "off", "max-statements": "off", "no-inner-declarations": "off", "no-lone-blocks": "off" } }, { "files": ["**/scripts/**/*.ts"], "rules": { "no-console": "off", "no-debugger": "off" } }, { "files": [ "**/govlab.config.ts", "**/govlab.config.js", "**/govlab.config.mjs", "**/govlab.config.cts", "**/govlab.config.mts" ], "rules": { "@typescript-eslint/naming-convention": "off", "max-lines": "off" } } ]