diff --git a/.codacy/.gitignore b/.codacy/.gitignore new file mode 100644 index 0000000..9ab870d --- /dev/null +++ b/.codacy/.gitignore @@ -0,0 +1 @@ +generated/ diff --git a/.codacy/codacy.config.baseline.json b/.codacy/codacy.config.baseline.json new file mode 100644 index 0000000..40b9e77 --- /dev/null +++ b/.codacy/codacy.config.baseline.json @@ -0,0 +1,1813 @@ +{ + "version": 1, + "metadata": { + "source": "auto", + "provider": null, + "organization": null, + "repositoryId": null, + "repositoryName": null, + "createdAt": "2026-09-28T19:43:06.362Z", + "updatedAt": "2026-09-28T19:43:06.362Z", + "languages": [ + "JSON", + "Javascript", + "Markdown", + "TypeScript", + "YAML" + ] + }, + "tools": [ + { + "toolId": "jackson", + "patterns": [ + { + "patternId": "jackson_duplicate-keys" + }, + { + "patternId": "jackson_parse-error" + } + ] + }, + { + "toolId": "markdownlint", + "patterns": [ + { + "patternId": "markdownlint_MD001" + }, + { + "patternId": "markdownlint_MD003" + }, + { + "patternId": "markdownlint_MD004" + }, + { + "patternId": "markdownlint_MD005" + }, + { + "patternId": "markdownlint_MD007" + }, + { + "patternId": "markdownlint_MD010" + }, + { + "patternId": "markdownlint_MD011" + }, + { + "patternId": "markdownlint_MD012" + }, + { + "patternId": "markdownlint_MD014" + }, + { + "patternId": "markdownlint_MD018" + }, + { + "patternId": "markdownlint_MD019" + }, + { + "patternId": "markdownlint_MD020" + }, + { + "patternId": "markdownlint_MD021" + }, + { + "patternId": "markdownlint_MD022" + }, + { + "patternId": "markdownlint_MD023" + }, + { + "patternId": "markdownlint_MD024" + }, + { + "patternId": "markdownlint_MD025" + }, + { + "patternId": "markdownlint_MD026" + }, + { + "patternId": "markdownlint_MD027" + }, + { + "patternId": "markdownlint_MD028" + }, + { + "patternId": "markdownlint_MD029" + }, + { + "patternId": "markdownlint_MD030" + }, + { + "patternId": "markdownlint_MD032" + }, + { + "patternId": "markdownlint_MD033" + }, + { + "patternId": "markdownlint_MD034" + }, + { + "patternId": "markdownlint_MD035" + }, + { + "patternId": "markdownlint_MD036" + }, + { + "patternId": "markdownlint_MD037" + }, + { + "patternId": "markdownlint_MD038" + }, + { + "patternId": "markdownlint_MD039" + }, + { + "patternId": "markdownlint_MD042" + }, + { + "patternId": "markdownlint_MD044" + }, + { + "patternId": "markdownlint_MD045" + }, + { + "patternId": "markdownlint_MD046" + }, + { + "patternId": "markdownlint_MD048" + }, + { + "patternId": "markdownlint_MD049" + }, + { + "patternId": "markdownlint_MD050" + }, + { + "patternId": "markdownlint_MD051" + }, + { + "patternId": "markdownlint_MD052" + }, + { + "patternId": "markdownlint_MD053" + }, + { + "patternId": "markdownlint_MD054" + }, + { + "patternId": "markdownlint_MD055" + }, + { + "patternId": "markdownlint_MD056" + } + ] + }, + { + "toolId": "Trivy", + "patterns": [ + { + "patternId": "Trivy_malicious_packages" + }, + { + "patternId": "Trivy_secret" + }, + { + "patternId": "Trivy_vulnerability_critical" + }, + { + "patternId": "Trivy_vulnerability_high" + }, + { + "patternId": "Trivy_vulnerability_medium" + }, + { + "patternId": "Trivy_vulnerability_minor" + } + ] + }, + { + "toolId": "Semgrep", + "patterns": [ + { + "patternId": "Semgrep_dockerfile.security.dockerd-socket-mount.dockerfile-dockerd-socket-mount" + }, + { + "patternId": "Semgrep_generic.secrets.security.detected-onfido-live-api-token.detected-onfido-live-api-token" + }, + { + "patternId": "Semgrep_generic.secrets.security.detected-stripe-restricted-api-key.detected-stripe-restricted-api-key" + }, + { + "patternId": "Semgrep_generic.secrets.security.detected-username-and-password-in-uri.detected-username-and-password-in-uri" + }, + { + "patternId": "Semgrep_generic.secrets.security.google-maps-apikeyleak.google-maps-apikeyleak" + }, + { + "patternId": "Semgrep_javascript.argon2.security.unsafe-argon2-config.unsafe-argon2-config" + }, + { + "patternId": "Semgrep_javascript.browser.security.open-redirect.js-open-redirect" + }, + { + "patternId": "Semgrep_javascript.browser.security.raw-html-concat.raw-html-concat" + }, + { + "patternId": "Semgrep_javascript.browser.security.wildcard-postmessage-configuration.wildcard-postmessage-configuration" + }, + { + "patternId": "Semgrep_javascript.chrome-remote-interface.security.audit.chrome-remote-interface-compilescript-injection.chrome-remote-interface-compilescript-injection" + }, + { + "patternId": "Semgrep_javascript.deno.security.audit.deno-dangerous-run.deno-dangerous-run" + }, + { + "patternId": "Semgrep_javascript.intercom.security.audit.intercom-settings-user-identifier-without-user-hash.intercom-settings-user-identifier-without-user-hash" + }, + { + "patternId": "Semgrep_javascript.jose.security.jwt-hardcode.hardcoded-jwt-secret" + }, + { + "patternId": "Semgrep_javascript.jose.security.jwt-none-alg.jwt-none-alg" + }, + { + "patternId": "Semgrep_javascript.jsonwebtoken.security.jwt-hardcode.hardcoded-jwt-secret" + }, + { + "patternId": "Semgrep_javascript.jsonwebtoken.security.jwt-none-alg.jwt-none-alg" + }, + { + "patternId": "Semgrep_javascript.jwt-simple.security.jwt-simple-noverify.jwt-simple-noverify" + }, + { + "patternId": "Semgrep_javascript.lang.security.audit.code-string-concat.code-string-concat" + }, + { + "patternId": "Semgrep_javascript.lang.security.audit.sqli.node-knex-sqli.node-knex-sqli" + }, + { + "patternId": "Semgrep_javascript.lang.security.detect-eval-with-expression.detect-eval-with-expression" + }, + { + "patternId": "Semgrep_javascript.node-crypto.security.aead-no-final.aead-no-final" + }, + { + "patternId": "Semgrep_javascript.node-crypto.security.create-de-cipher-no-iv.create-de-cipher-no-iv" + }, + { + "patternId": "Semgrep_javascript.node-crypto.security.gcm-no-tag-length.gcm-no-tag-length" + }, + { + "patternId": "Semgrep_javascript.passport-jwt.security.passport-hardcode.hardcoded-passport-secret" + }, + { + "patternId": "Semgrep_json.aws.security.public-s3-bucket.public-s3-bucket" + }, + { + "patternId": "Semgrep_json.aws.security.public-s3-policy-statement.public-s3-policy-statement" + }, + { + "patternId": "Semgrep_json.aws.security.wildcard-assume-role.wildcard-assume-role" + }, + { + "patternId": "Semgrep_problem-based-packs.insecure-transport.js-node.bypass-tls-verification.bypass-tls-verification" + }, + { + "patternId": "Semgrep_problem-based-packs.insecure-transport.js-node.disallow-old-tls-versions1.disallow-old-tls-versions1" + }, + { + "patternId": "Semgrep_problem-based-packs.insecure-transport.js-node.disallow-old-tls-versions2.disallow-old-tls-versions2" + }, + { + "patternId": "Semgrep_problem-based-packs.insecure-transport.js-node.ftp-request.ftp-request" + }, + { + "patternId": "Semgrep_problem-based-packs.insecure-transport.js-node.http-request.http-request" + }, + { + "patternId": "Semgrep_problem-based-packs.insecure-transport.js-node.rest-http-client-support.rest-http-client-support" + }, + { + "patternId": "Semgrep_problem-based-packs.insecure-transport.js-node.telnet-request.telnet-request" + }, + { + "patternId": "Semgrep_yaml.argo.security.argo-workflow-parameter-command-injection.argo-workflow-parameter-command-injection" + }, + { + "patternId": "Semgrep_yaml.docker-compose.security.privileged-service.privileged-service" + }, + { + "patternId": "Semgrep_yaml.openapi.security.openai-consequential-action-false.openai-consequential-action-false" + }, + { + "patternId": "Semgrep_yaml.openapi.security.use-of-basic-authentication.use-of-basic-authentication" + }, + { + "patternId": "Semgrep_yaml_spring_rule-SpringActuatorFullyEnabled" + } + ] + }, + { + "toolId": "spectral", + "patterns": [ + { + "patternId": "spectral_array-items" + }, + { + "patternId": "spectral_asyncapi-3-channel-no-empty-parameter" + }, + { + "patternId": "spectral_asyncapi-3-channel-no-query-nor-fragment" + }, + { + "patternId": "spectral_asyncapi-3-channel-no-trailing-slash" + }, + { + "patternId": "spectral_asyncapi-3-channel-servers" + }, + { + "patternId": "spectral_asyncapi-3-document-resolved" + }, + { + "patternId": "spectral_asyncapi-3-document-unresolved" + }, + { + "patternId": "spectral_asyncapi-3-headers-schema-type-object" + }, + { + "patternId": "spectral_asyncapi-3-operation-description" + }, + { + "patternId": "spectral_asyncapi-3-operation-security" + }, + { + "patternId": "spectral_asyncapi-3-payload-unsupported-schemaFormat" + }, + { + "patternId": "spectral_asyncapi-3-server-no-empty-variable" + }, + { + "patternId": "spectral_asyncapi-3-server-no-trailing-slash" + }, + { + "patternId": "spectral_asyncapi-3-tags" + }, + { + "patternId": "spectral_asyncapi-3-tags-uniqueness" + }, + { + "patternId": "spectral_asyncapi-channel-no-empty-parameter" + }, + { + "patternId": "spectral_asyncapi-channel-no-query-nor-fragment" + }, + { + "patternId": "spectral_asyncapi-channel-no-trailing-slash" + }, + { + "patternId": "spectral_asyncapi-channel-parameters" + }, + { + "patternId": "spectral_asyncapi-channel-servers" + }, + { + "patternId": "spectral_asyncapi-headers-schema-type-object" + }, + { + "patternId": "spectral_asyncapi-info-contact" + }, + { + "patternId": "spectral_asyncapi-info-contact-properties" + }, + { + "patternId": "spectral_asyncapi-info-description" + }, + { + "patternId": "spectral_asyncapi-info-license" + }, + { + "patternId": "spectral_asyncapi-latest-version" + }, + { + "patternId": "spectral_asyncapi-message-examples" + }, + { + "patternId": "spectral_asyncapi-message-messageId-uniqueness" + }, + { + "patternId": "spectral_asyncapi-operation-description" + }, + { + "patternId": "spectral_asyncapi-operation-operationId" + }, + { + "patternId": "spectral_asyncapi-operation-operationId-uniqueness" + }, + { + "patternId": "spectral_asyncapi-operation-security" + }, + { + "patternId": "spectral_asyncapi-payload" + }, + { + "patternId": "spectral_asyncapi-payload-default" + }, + { + "patternId": "spectral_asyncapi-payload-examples" + }, + { + "patternId": "spectral_asyncapi-payload-unsupported-schemaFormat" + }, + { + "patternId": "spectral_asyncapi-schema" + }, + { + "patternId": "spectral_asyncapi-schema-default" + }, + { + "patternId": "spectral_asyncapi-schema-examples" + }, + { + "patternId": "spectral_asyncapi-server-no-empty-variable" + }, + { + "patternId": "spectral_asyncapi-server-no-trailing-slash" + }, + { + "patternId": "spectral_asyncapi-servers" + }, + { + "patternId": "spectral_asyncapi-server-security" + }, + { + "patternId": "spectral_asyncapi-server-variables" + }, + { + "patternId": "spectral_asyncapi-tags" + }, + { + "patternId": "spectral_asyncapi-tags-uniqueness" + }, + { + "patternId": "spectral_asyncapi-unused-components-schema" + }, + { + "patternId": "spectral_asyncapi-unused-components-server" + }, + { + "patternId": "spectral_duplicated-entry-in-enum" + }, + { + "patternId": "spectral_info-contact" + }, + { + "patternId": "spectral_info-description" + }, + { + "patternId": "spectral_no-eval-in-markdown" + }, + { + "patternId": "spectral_no-$ref-siblings" + }, + { + "patternId": "spectral_no-script-tags-in-markdown" + }, + { + "patternId": "spectral_oas2-anyOf" + }, + { + "patternId": "spectral_oas2-api-host" + }, + { + "patternId": "spectral_oas2-api-schemes" + }, + { + "patternId": "spectral_oas2-discriminator" + }, + { + "patternId": "spectral_oas2-host-trailing-slash" + }, + { + "patternId": "spectral_oas2-oneOf" + }, + { + "patternId": "spectral_oas2-operation-formData-consume-check" + }, + { + "patternId": "spectral_oas2-operation-security-defined" + }, + { + "patternId": "spectral_oas2-schema" + }, + { + "patternId": "spectral_oas2-unused-definition" + }, + { + "patternId": "spectral_oas2-valid-media-example" + }, + { + "patternId": "spectral_oas2-valid-schema-example" + }, + { + "patternId": "spectral_oas3_1-callbacks-in-webhook" + }, + { + "patternId": "spectral_oas3_1-servers-in-webhook" + }, + { + "patternId": "spectral_oas3-api-servers" + }, + { + "patternId": "spectral_oas3-callbacks-in-callbacks" + }, + { + "patternId": "spectral_oas3-examples-value-or-externalValue" + }, + { + "patternId": "spectral_oas3-operation-security-defined" + }, + { + "patternId": "spectral_oas3-schema" + }, + { + "patternId": "spectral_oas3-server-trailing-slash" + }, + { + "patternId": "spectral_oas3-server-variables" + }, + { + "patternId": "spectral_oas3-unused-component" + }, + { + "patternId": "spectral_oas3-valid-media-example" + }, + { + "patternId": "spectral_oas3-valid-schema-example" + }, + { + "patternId": "spectral_openapi-tags-uniqueness" + }, + { + "patternId": "spectral_operation-description" + }, + { + "patternId": "spectral_operation-operationId" + }, + { + "patternId": "spectral_operation-operationId-unique" + }, + { + "patternId": "spectral_operation-operationId-valid-in-url" + }, + { + "patternId": "spectral_operation-parameters" + }, + { + "patternId": "spectral_operation-success-response" + }, + { + "patternId": "spectral_operation-tag-defined" + }, + { + "patternId": "spectral_operation-tags" + }, + { + "patternId": "spectral_path-declarations-must-exist" + }, + { + "patternId": "spectral_path-keys-no-trailing-slash" + }, + { + "patternId": "spectral_path-not-include-query" + }, + { + "patternId": "spectral_path-params" + }, + { + "patternId": "spectral_typed-enum" + } + ] + }, + { + "toolId": "ESLint9", + "patterns": [ + { + "patternId": "ESLint9_constructor-super" + }, + { + "patternId": "ESLint9_for-direction" + }, + { + "patternId": "ESLint9_getter-return" + }, + { + "patternId": "ESLint9_no-async-promise-executor" + }, + { + "patternId": "ESLint9_no-case-declarations" + }, + { + "patternId": "ESLint9_no-class-assign" + }, + { + "patternId": "ESLint9_no-compare-neg-zero" + }, + { + "patternId": "ESLint9_no-cond-assign" + }, + { + "patternId": "ESLint9_no-constant-binary-expression" + }, + { + "patternId": "ESLint9_no-constant-condition" + }, + { + "patternId": "ESLint9_no-const-assign" + }, + { + "patternId": "ESLint9_no-control-regex" + }, + { + "patternId": "ESLint9_no-debugger" + }, + { + "patternId": "ESLint9_no-delete-var" + }, + { + "patternId": "ESLint9_no-dupe-args" + }, + { + "patternId": "ESLint9_no-dupe-class-members" + }, + { + "patternId": "ESLint9_no-dupe-else-if" + }, + { + "patternId": "ESLint9_no-dupe-keys" + }, + { + "patternId": "ESLint9_no-duplicate-case" + }, + { + "patternId": "ESLint9_no-empty" + }, + { + "patternId": "ESLint9_no-empty-character-class" + }, + { + "patternId": "ESLint9_no-empty-pattern" + }, + { + "patternId": "ESLint9_no-empty-static-block" + }, + { + "patternId": "ESLint9_no-ex-assign" + }, + { + "patternId": "ESLint9_no-extra-boolean-cast" + }, + { + "patternId": "ESLint9_no-fallthrough" + }, + { + "patternId": "ESLint9_no-func-assign" + }, + { + "patternId": "ESLint9_no-global-assign" + }, + { + "patternId": "ESLint9_no-import-assign" + }, + { + "patternId": "ESLint9_no-invalid-regexp" + }, + { + "patternId": "ESLint9_no-irregular-whitespace" + }, + { + "patternId": "ESLint9_no-loss-of-precision" + }, + { + "patternId": "ESLint9_no-misleading-character-class" + }, + { + "patternId": "ESLint9_no-new-native-nonconstructor" + }, + { + "patternId": "ESLint9_no-nonoctal-decimal-escape" + }, + { + "patternId": "ESLint9_no-obj-calls" + }, + { + "patternId": "ESLint9_no-octal" + }, + { + "patternId": "ESLint9_no-prototype-builtins" + }, + { + "patternId": "ESLint9_no-redeclare" + }, + { + "patternId": "ESLint9_no-regex-spaces" + }, + { + "patternId": "ESLint9_no-self-assign" + }, + { + "patternId": "ESLint9_no-setter-return" + }, + { + "patternId": "ESLint9_no-shadow-restricted-names" + }, + { + "patternId": "ESLint9_no-sparse-arrays" + }, + { + "patternId": "ESLint9_no-this-before-super" + }, + { + "patternId": "ESLint9_no-undef" + }, + { + "patternId": "ESLint9_no-unexpected-multiline" + }, + { + "patternId": "ESLint9_no-unreachable" + }, + { + "patternId": "ESLint9_no-unsafe-finally" + }, + { + "patternId": "ESLint9_no-unsafe-negation" + }, + { + "patternId": "ESLint9_no-unsafe-optional-chaining" + }, + { + "patternId": "ESLint9_no-unused-labels" + }, + { + "patternId": "ESLint9_no-unused-private-class-members" + }, + { + "patternId": "ESLint9_no-unused-vars" + }, + { + "patternId": "ESLint9_no-useless-backreference" + }, + { + "patternId": "ESLint9_no-useless-catch" + }, + { + "patternId": "ESLint9_no-useless-escape" + }, + { + "patternId": "ESLint9_no-with" + }, + { + "patternId": "ESLint9_require-yield" + }, + { + "patternId": "ESLint9_security_detect-bidi-characters" + }, + { + "patternId": "ESLint9_security_detect-buffer-noassert" + }, + { + "patternId": "ESLint9_security_detect-child-process" + }, + { + "patternId": "ESLint9_security_detect-disable-mustache-escape" + }, + { + "patternId": "ESLint9_security_detect-eval-with-expression" + }, + { + "patternId": "ESLint9_security_detect-new-buffer" + }, + { + "patternId": "ESLint9_security_detect-no-csrf-before-method-override" + }, + { + "patternId": "ESLint9_security_detect-non-literal-fs-filename" + }, + { + "patternId": "ESLint9_security_detect-non-literal-regexp" + }, + { + "patternId": "ESLint9_security_detect-non-literal-require" + }, + { + "patternId": "ESLint9_security_detect-object-injection" + }, + { + "patternId": "ESLint9_security_detect-possible-timing-attacks" + }, + { + "patternId": "ESLint9_security_detect-pseudoRandomBytes" + }, + { + "patternId": "ESLint9_security_detect-unsafe-regex" + }, + { + "patternId": "ESLint9_security-node_detect-absence-of-name-option-in-exrpress-session" + }, + { + "patternId": "ESLint9_security-node_detect-child-process" + }, + { + "patternId": "ESLint9_security-node_detect-dangerous-redirects" + }, + { + "patternId": "ESLint9_security-node_detect-eval-with-expr" + }, + { + "patternId": "ESLint9_security-node_detect-html-injection" + }, + { + "patternId": "ESLint9_security-node_detect-improper-exception-handling" + }, + { + "patternId": "ESLint9_security-node_detect-non-literal-require-calls" + }, + { + "patternId": "ESLint9_security-node_detect-nosql-injection" + }, + { + "patternId": "ESLint9_security-node_detect-option-multiplestatements-in-mysql" + }, + { + "patternId": "ESLint9_security-node_detect-option-rejectunauthorized-in-nodejs-httpsrequest" + }, + { + "patternId": "ESLint9_security-node_detect-option-unsafe-in-serialize-javascript-npm-package" + }, + { + "patternId": "ESLint9_security-node_detect-possible-timing-attacks" + }, + { + "patternId": "ESLint9_security-node_detect-security-missconfiguration-cookie" + }, + { + "patternId": "ESLint9_security-node_detect-unhandled-async-errors" + }, + { + "patternId": "ESLint9_security-node_detect-unhandled-event-errors" + }, + { + "patternId": "ESLint9_security-node_disable-ssl-across-node-server" + }, + { + "patternId": "ESLint9_security-node_non-literal-reg-expr" + }, + { + "patternId": "ESLint9_@typescript-eslint_adjacent-overload-signatures" + }, + { + "patternId": "ESLint9_@typescript-eslint_array-type" + }, + { + "patternId": "ESLint9_@typescript-eslint_await-thenable" + }, + { + "patternId": "ESLint9_@typescript-eslint_ban-ts-comment" + }, + { + "patternId": "ESLint9_@typescript-eslint_ban-tslint-comment" + }, + { + "patternId": "ESLint9_@typescript-eslint_class-literal-property-style" + }, + { + "patternId": "ESLint9_@typescript-eslint_class-methods-use-this" + }, + { + "patternId": "ESLint9_@typescript-eslint_consistent-generic-constructors" + }, + { + "patternId": "ESLint9_@typescript-eslint_consistent-indexed-object-style" + }, + { + "patternId": "ESLint9_@typescript-eslint_consistent-return" + }, + { + "patternId": "ESLint9_@typescript-eslint_consistent-type-assertions" + }, + { + "patternId": "ESLint9_@typescript-eslint_consistent-type-definitions" + }, + { + "patternId": "ESLint9_@typescript-eslint_consistent-type-exports" + }, + { + "patternId": "ESLint9_@typescript-eslint_default-param-last" + }, + { + "patternId": "ESLint9_@typescript-eslint_dot-notation" + }, + { + "patternId": "ESLint9_@typescript-eslint_explicit-function-return-type" + }, + { + "patternId": "ESLint9_@typescript-eslint_explicit-member-accessibility" + }, + { + "patternId": "ESLint9_@typescript-eslint_explicit-module-boundary-types" + }, + { + "patternId": "ESLint9_@typescript-eslint_init-declarations" + }, + { + "patternId": "ESLint9_@typescript-eslint_max-params" + }, + { + "patternId": "ESLint9_@typescript-eslint_member-ordering" + }, + { + "patternId": "ESLint9_@typescript-eslint_method-signature-style" + }, + { + "patternId": "ESLint9_@typescript-eslint_naming-convention" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-array-constructor" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-array-delete" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-base-to-string" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-confusing-non-null-assertion" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-confusing-void-expression" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-deprecated" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-dupe-class-members" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-duplicate-enum-values" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-duplicate-type-constituents" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-dynamic-delete" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-empty-function" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-empty-interface" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-empty-object-type" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-explicit-any" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-extraneous-class" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-extra-non-null-assertion" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-floating-promises" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-for-in-array" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-implied-eval" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-import-type-side-effects" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-inferrable-types" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-invalid-this" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-invalid-void-type" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-loop-func" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-loss-of-precision" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-magic-numbers" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-meaningless-void-operator" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-misused-new" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-misused-promises" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-misused-spread" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-mixed-enums" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-namespace" + }, + { + "patternId": "ESLint9_@typescript-eslint_non-nullable-type-assertion-style" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-non-null-asserted-nullish-coalescing" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-non-null-asserted-optional-chain" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-non-null-assertion" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-redeclare" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-redundant-type-constituents" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-require-imports" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-restricted-imports" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-restricted-types" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-shadow" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-this-alias" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-type-alias" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unnecessary-boolean-literal-compare" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unnecessary-condition" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unnecessary-parameter-property-assignment" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unnecessary-qualifier" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unnecessary-template-expression" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unnecessary-type-arguments" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unnecessary-type-assertion" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unnecessary-type-constraint" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unnecessary-type-conversion" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unnecessary-type-parameters" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unsafe-argument" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unsafe-assignment" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unsafe-call" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unsafe-declaration-merging" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unsafe-enum-comparison" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unsafe-function-type" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unsafe-member-access" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unsafe-return" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unsafe-type-assertion" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unsafe-unary-minus" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unused-expressions" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unused-private-class-members" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unused-vars" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-use-before-define" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-useless-constructor" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-useless-default-assignment" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-useless-empty-export" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-var-requires" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-wrapper-object-types" + }, + { + "patternId": "ESLint9_@typescript-eslint_only-throw-error" + }, + { + "patternId": "ESLint9_@typescript-eslint_parameter-properties" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-as-const" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-destructuring" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-enum-initializers" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-find" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-for-of" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-function-type" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-includes" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-literal-enum-member" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-namespace-keyword" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-nullish-coalescing" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-optional-chain" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-promise-reject-errors" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-readonly" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-readonly-parameter-types" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-reduce-type-parameter" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-regexp-exec" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-return-this-type" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-string-starts-ends-with" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-ts-expect-error" + }, + { + "patternId": "ESLint9_@typescript-eslint_promise-function-async" + }, + { + "patternId": "ESLint9_@typescript-eslint_related-getter-setter-pairs" + }, + { + "patternId": "ESLint9_@typescript-eslint_require-array-sort-compare" + }, + { + "patternId": "ESLint9_@typescript-eslint_require-await" + }, + { + "patternId": "ESLint9_@typescript-eslint_restrict-plus-operands" + }, + { + "patternId": "ESLint9_@typescript-eslint_restrict-template-expressions" + }, + { + "patternId": "ESLint9_@typescript-eslint_return-await" + }, + { + "patternId": "ESLint9_@typescript-eslint_sort-type-constituents" + }, + { + "patternId": "ESLint9_@typescript-eslint_strict-boolean-expressions" + }, + { + "patternId": "ESLint9_@typescript-eslint_strict-void-return" + }, + { + "patternId": "ESLint9_@typescript-eslint_switch-exhaustiveness-check" + }, + { + "patternId": "ESLint9_@typescript-eslint_triple-slash-reference" + }, + { + "patternId": "ESLint9_@typescript-eslint_typedef" + }, + { + "patternId": "ESLint9_@typescript-eslint_unbound-method" + }, + { + "patternId": "ESLint9_@typescript-eslint_unified-signatures" + }, + { + "patternId": "ESLint9_@typescript-eslint_use-unknown-in-catch-callback-variable" + }, + { + "patternId": "ESLint9_use-isnan" + }, + { + "patternId": "ESLint9_valid-typeof" + }, + { + "patternId": "ESLint9_xss_no-location-href-assign" + } + ] + }, + { + "toolId": "Checkov", + "patterns": [ + { + "patternId": "Checkov_CKV_BITBUCKET_1" + }, + { + "patternId": "Checkov_CKV_GITHUB_1" + }, + { + "patternId": "Checkov_CKV_GITHUB_10" + }, + { + "patternId": "Checkov_CKV_GITHUB_11" + }, + { + "patternId": "Checkov_CKV_GITHUB_12" + }, + { + "patternId": "Checkov_CKV_GITHUB_13" + }, + { + "patternId": "Checkov_CKV_GITHUB_14" + }, + { + "patternId": "Checkov_CKV_GITHUB_15" + }, + { + "patternId": "Checkov_CKV_GITHUB_16" + }, + { + "patternId": "Checkov_CKV_GITHUB_17" + }, + { + "patternId": "Checkov_CKV_GITHUB_18" + }, + { + "patternId": "Checkov_CKV_GITHUB_19" + }, + { + "patternId": "Checkov_CKV_GITHUB_2" + }, + { + "patternId": "Checkov_CKV_GITHUB_20" + }, + { + "patternId": "Checkov_CKV_GITHUB_21" + }, + { + "patternId": "Checkov_CKV_GITHUB_22" + }, + { + "patternId": "Checkov_CKV_GITHUB_23" + }, + { + "patternId": "Checkov_CKV_GITHUB_26" + }, + { + "patternId": "Checkov_CKV_GITHUB_27" + }, + { + "patternId": "Checkov_CKV_GITHUB_28" + }, + { + "patternId": "Checkov_CKV_GITHUB_3" + }, + { + "patternId": "Checkov_CKV_GITHUB_4" + }, + { + "patternId": "Checkov_CKV_GITHUB_5" + }, + { + "patternId": "Checkov_CKV_GITHUB_6" + }, + { + "patternId": "Checkov_CKV_GITHUB_7" + }, + { + "patternId": "Checkov_CKV_GITHUB_8" + }, + { + "patternId": "Checkov_CKV_GITHUB_9" + }, + { + "patternId": "Checkov_CKV_GITLAB_1" + }, + { + "patternId": "Checkov_CKV_OPENAPI_1" + }, + { + "patternId": "Checkov_CKV_OPENAPI_10" + }, + { + "patternId": "Checkov_CKV_OPENAPI_11" + }, + { + "patternId": "Checkov_CKV_OPENAPI_12" + }, + { + "patternId": "Checkov_CKV_OPENAPI_13" + }, + { + "patternId": "Checkov_CKV_OPENAPI_14" + }, + { + "patternId": "Checkov_CKV_OPENAPI_15" + }, + { + "patternId": "Checkov_CKV_OPENAPI_16" + }, + { + "patternId": "Checkov_CKV_OPENAPI_17" + }, + { + "patternId": "Checkov_CKV_OPENAPI_18" + }, + { + "patternId": "Checkov_CKV_OPENAPI_19" + }, + { + "patternId": "Checkov_CKV_OPENAPI_2" + }, + { + "patternId": "Checkov_CKV_OPENAPI_20" + }, + { + "patternId": "Checkov_CKV_OPENAPI_21" + }, + { + "patternId": "Checkov_CKV_OPENAPI_3" + }, + { + "patternId": "Checkov_CKV_OPENAPI_4" + }, + { + "patternId": "Checkov_CKV_OPENAPI_5" + }, + { + "patternId": "Checkov_CKV_OPENAPI_6" + }, + { + "patternId": "Checkov_CKV_OPENAPI_7" + }, + { + "patternId": "Checkov_CKV_OPENAPI_8" + }, + { + "patternId": "Checkov_CKV_OPENAPI_9" + }, + { + "patternId": "Checkov_CKV_SECRET_1" + }, + { + "patternId": "Checkov_CKV_SECRET_11" + }, + { + "patternId": "Checkov_CKV_SECRET_12" + }, + { + "patternId": "Checkov_CKV_SECRET_13" + }, + { + "patternId": "Checkov_CKV_SECRET_14" + }, + { + "patternId": "Checkov_CKV_SECRET_15" + }, + { + "patternId": "Checkov_CKV_SECRET_16" + }, + { + "patternId": "Checkov_CKV_SECRET_17" + }, + { + "patternId": "Checkov_CKV_SECRET_18" + }, + { + "patternId": "Checkov_CKV_SECRET_19" + }, + { + "patternId": "Checkov_CKV_SECRET_2" + }, + { + "patternId": "Checkov_CKV_SECRET_3" + }, + { + "patternId": "Checkov_CKV_SECRET_4" + }, + { + "patternId": "Checkov_CKV_SECRET_5" + }, + { + "patternId": "Checkov_CKV_SECRET_6" + }, + { + "patternId": "Checkov_CKV_SECRET_7" + }, + { + "patternId": "Checkov_CKV_SECRET_8" + }, + { + "patternId": "Checkov_CKV_SECRET_9" + } + ] + }, + { + "toolId": "Lizard", + "patterns": [ + { + "patternId": "Lizard_ccn-minor" + }, + { + "patternId": "Lizard_file-nloc-medium" + }, + { + "patternId": "Lizard_nloc-medium" + }, + { + "patternId": "Lizard_parameter-count-medium" + }, + { + "patternId": "Lizard_file-nloc-critical" + } + ] + }, + { + "toolId": "Agentlinter", + "patterns": [ + { + "patternId": "Agentlinter_blueprint_constraints-defined" + }, + { + "patternId": "Agentlinter_blueprint_coverage" + }, + { + "patternId": "Agentlinter_blueprint_identity-defined" + }, + { + "patternId": "Agentlinter_clarity_actionable-instructions" + }, + { + "patternId": "Agentlinter_clarity_action-without-context" + }, + { + "patternId": "Agentlinter_clarity_ambiguous-pronoun" + }, + { + "patternId": "Agentlinter_clarity_compound-instruction" + }, + { + "patternId": "Agentlinter_clarity_duplicate-content" + }, + { + "patternId": "Agentlinter_clarity_english-config-files" + }, + { + "patternId": "Agentlinter_clarity_escape-hatch-missing" + }, + { + "patternId": "Agentlinter_clarity_has-examples" + }, + { + "patternId": "Agentlinter_clarity_instruction-density" + }, + { + "patternId": "Agentlinter_clarity_naked-conditional" + }, + { + "patternId": "Agentlinter_clarity_no-contradictions" + }, + { + "patternId": "Agentlinter_clarity_no-vague-instructions" + }, + { + "patternId": "Agentlinter_clarity_obvious-statements" + }, + { + "patternId": "Agentlinter_clarity_priority-signal-missing" + }, + { + "patternId": "Agentlinter_clarity_sentence-complexity" + }, + { + "patternId": "Agentlinter_clarity_token-budget-range" + }, + { + "patternId": "Agentlinter_clarity_token-efficiency-score" + }, + { + "patternId": "Agentlinter_clarity_undefined-term" + }, + { + "patternId": "Agentlinter_claude-code_agent-focus" + }, + { + "patternId": "Agentlinter_claude-code_descriptive-ratio" + }, + { + "patternId": "Agentlinter_claude-code_hooks-structure" + }, + { + "patternId": "Agentlinter_claude-code_instruction-count" + }, + { + "patternId": "Agentlinter_claude-code_progressive-disclosure" + }, + { + "patternId": "Agentlinter_claude-code_relevance-trap" + }, + { + "patternId": "Agentlinter_claude-code_skills-vs-commands" + }, + { + "patternId": "Agentlinter_completeness_command-coverage" + }, + { + "patternId": "Agentlinter_completeness_freshness-file-paths" + }, + { + "patternId": "Agentlinter_completeness_has-boundaries" + }, + { + "patternId": "Agentlinter_completeness_has-error-handling" + }, + { + "patternId": "Agentlinter_completeness_has-identity" + }, + { + "patternId": "Agentlinter_completeness_has-output-format" + }, + { + "patternId": "Agentlinter_completeness_has-priorities" + }, + { + "patternId": "Agentlinter_completeness_has-tools" + }, + { + "patternId": "Agentlinter_completeness_has-user-context" + }, + { + "patternId": "Agentlinter_completeness_has-workflow" + }, + { + "patternId": "Agentlinter_completeness_session-learning-hooks" + }, + { + "patternId": "Agentlinter_completeness_verification-criteria-required" + }, + { + "patternId": "Agentlinter_consistency_circular-dependency" + }, + { + "patternId": "Agentlinter_consistency_identity-alignment" + }, + { + "patternId": "Agentlinter_consistency_language-mixing" + }, + { + "patternId": "Agentlinter_consistency_naming-convention" + }, + { + "patternId": "Agentlinter_consistency_no-duplicate-instructions" + }, + { + "patternId": "Agentlinter_consistency_outdated-cross-references" + }, + { + "patternId": "Agentlinter_consistency_permission-conflict" + }, + { + "patternId": "Agentlinter_consistency_priority-conflict" + }, + { + "patternId": "Agentlinter_consistency_referenced-files-exist" + }, + { + "patternId": "Agentlinter_consistency_stale-date" + }, + { + "patternId": "Agentlinter_consistency_stale-file-reference" + }, + { + "patternId": "Agentlinter_consistency_stale-package-reference" + }, + { + "patternId": "Agentlinter_consistency_timezone-locale-drift" + }, + { + "patternId": "Agentlinter_consistency_tone-voice-alignment" + }, + { + "patternId": "Agentlinter_memory_has-context-window-awareness" + }, + { + "patternId": "Agentlinter_memory_has-file-based-notes" + }, + { + "patternId": "Agentlinter_memory_has-handoff-protocol" + }, + { + "patternId": "Agentlinter_memory_has-learning-loop" + }, + { + "patternId": "Agentlinter_memory_has-memory-strategy" + }, + { + "patternId": "Agentlinter_memory_has-state-tracking" + }, + { + "patternId": "Agentlinter_memory_no-mental-notes" + }, + { + "patternId": "Agentlinter_remote-ready_env-vars-documented" + }, + { + "patternId": "Agentlinter_remote-ready_model-settings-specified" + }, + { + "patternId": "Agentlinter_remote-ready_workspace-path-specified" + }, + { + "patternId": "Agentlinter_runtime_auth-mode" + }, + { + "patternId": "Agentlinter_runtime_config-exists" + }, + { + "patternId": "Agentlinter_runtime_config-secrets" + }, + { + "patternId": "Agentlinter_runtime_dm-policy" + }, + { + "patternId": "Agentlinter_runtime_gateway-bind" + }, + { + "patternId": "Agentlinter_runtime_group-policy" + }, + { + "patternId": "Agentlinter_runtime_token-strength" + }, + { + "patternId": "Agentlinter_security_api-key-exposure" + }, + { + "patternId": "Agentlinter_security_env-var-references" + }, + { + "patternId": "Agentlinter_security_has-injection-defense" + }, + { + "patternId": "Agentlinter_security_has-permission-boundaries" + }, + { + "patternId": "Agentlinter_security_no-injection-defense" + }, + { + "patternId": "Agentlinter_security_no-pii-exposure" + }, + { + "patternId": "Agentlinter_security_no-secrets" + }, + { + "patternId": "Agentlinter_security_prompt-injection-vulnerability" + }, + { + "patternId": "Agentlinter_skill-safety_dangerous-commands" + }, + { + "patternId": "Agentlinter_skill-safety_data-exfiltration" + }, + { + "patternId": "Agentlinter_skill-safety_excessive-permissions" + }, + { + "patternId": "Agentlinter_skill-safety_has-metadata" + }, + { + "patternId": "Agentlinter_skill-safety_injection-vectors" + }, + { + "patternId": "Agentlinter_skill-safety_sensitive-paths" + }, + { + "patternId": "Agentlinter_skill-safety_skill-description-when-to-use" + }, + { + "patternId": "Agentlinter_skill-safety_skill-name-match-dir" + }, + { + "patternId": "Agentlinter_structure_circular-import" + }, + { + "patternId": "Agentlinter_structure_dead-import" + }, + { + "patternId": "Agentlinter_structure_file-size" + }, + { + "patternId": "Agentlinter_structure_has-file-map" + }, + { + "patternId": "Agentlinter_structure_has-main-file" + }, + { + "patternId": "Agentlinter_structure_has-sections" + }, + { + "patternId": "Agentlinter_structure_has-version-or-update-date" + }, + { + "patternId": "Agentlinter_structure_heading-hierarchy" + }, + { + "patternId": "Agentlinter_structure_modular-files" + }, + { + "patternId": "Agentlinter_structure_no-empty-sections" + }, + { + "patternId": "Agentlinter_structure_position-risk-warning" + }, + { + "patternId": "Agentlinter_token-budget_compressible-padding" + }, + { + "patternId": "Agentlinter_token-budget_section-weight" + }, + { + "patternId": "Agentlinter_token-budget_total-tokens" + }, + { + "patternId": "Agentlinter_token-budget_under-150-tokens" + } + ] + } + ], + "exclude": [] +} diff --git a/.codacy/codacy.config.json b/.codacy/codacy.config.json new file mode 100644 index 0000000..40b9e77 --- /dev/null +++ b/.codacy/codacy.config.json @@ -0,0 +1,1813 @@ +{ + "version": 1, + "metadata": { + "source": "auto", + "provider": null, + "organization": null, + "repositoryId": null, + "repositoryName": null, + "createdAt": "2026-09-28T19:43:06.362Z", + "updatedAt": "2026-09-28T19:43:06.362Z", + "languages": [ + "JSON", + "Javascript", + "Markdown", + "TypeScript", + "YAML" + ] + }, + "tools": [ + { + "toolId": "jackson", + "patterns": [ + { + "patternId": "jackson_duplicate-keys" + }, + { + "patternId": "jackson_parse-error" + } + ] + }, + { + "toolId": "markdownlint", + "patterns": [ + { + "patternId": "markdownlint_MD001" + }, + { + "patternId": "markdownlint_MD003" + }, + { + "patternId": "markdownlint_MD004" + }, + { + "patternId": "markdownlint_MD005" + }, + { + "patternId": "markdownlint_MD007" + }, + { + "patternId": "markdownlint_MD010" + }, + { + "patternId": "markdownlint_MD011" + }, + { + "patternId": "markdownlint_MD012" + }, + { + "patternId": "markdownlint_MD014" + }, + { + "patternId": "markdownlint_MD018" + }, + { + "patternId": "markdownlint_MD019" + }, + { + "patternId": "markdownlint_MD020" + }, + { + "patternId": "markdownlint_MD021" + }, + { + "patternId": "markdownlint_MD022" + }, + { + "patternId": "markdownlint_MD023" + }, + { + "patternId": "markdownlint_MD024" + }, + { + "patternId": "markdownlint_MD025" + }, + { + "patternId": "markdownlint_MD026" + }, + { + "patternId": "markdownlint_MD027" + }, + { + "patternId": "markdownlint_MD028" + }, + { + "patternId": "markdownlint_MD029" + }, + { + "patternId": "markdownlint_MD030" + }, + { + "patternId": "markdownlint_MD032" + }, + { + "patternId": "markdownlint_MD033" + }, + { + "patternId": "markdownlint_MD034" + }, + { + "patternId": "markdownlint_MD035" + }, + { + "patternId": "markdownlint_MD036" + }, + { + "patternId": "markdownlint_MD037" + }, + { + "patternId": "markdownlint_MD038" + }, + { + "patternId": "markdownlint_MD039" + }, + { + "patternId": "markdownlint_MD042" + }, + { + "patternId": "markdownlint_MD044" + }, + { + "patternId": "markdownlint_MD045" + }, + { + "patternId": "markdownlint_MD046" + }, + { + "patternId": "markdownlint_MD048" + }, + { + "patternId": "markdownlint_MD049" + }, + { + "patternId": "markdownlint_MD050" + }, + { + "patternId": "markdownlint_MD051" + }, + { + "patternId": "markdownlint_MD052" + }, + { + "patternId": "markdownlint_MD053" + }, + { + "patternId": "markdownlint_MD054" + }, + { + "patternId": "markdownlint_MD055" + }, + { + "patternId": "markdownlint_MD056" + } + ] + }, + { + "toolId": "Trivy", + "patterns": [ + { + "patternId": "Trivy_malicious_packages" + }, + { + "patternId": "Trivy_secret" + }, + { + "patternId": "Trivy_vulnerability_critical" + }, + { + "patternId": "Trivy_vulnerability_high" + }, + { + "patternId": "Trivy_vulnerability_medium" + }, + { + "patternId": "Trivy_vulnerability_minor" + } + ] + }, + { + "toolId": "Semgrep", + "patterns": [ + { + "patternId": "Semgrep_dockerfile.security.dockerd-socket-mount.dockerfile-dockerd-socket-mount" + }, + { + "patternId": "Semgrep_generic.secrets.security.detected-onfido-live-api-token.detected-onfido-live-api-token" + }, + { + "patternId": "Semgrep_generic.secrets.security.detected-stripe-restricted-api-key.detected-stripe-restricted-api-key" + }, + { + "patternId": "Semgrep_generic.secrets.security.detected-username-and-password-in-uri.detected-username-and-password-in-uri" + }, + { + "patternId": "Semgrep_generic.secrets.security.google-maps-apikeyleak.google-maps-apikeyleak" + }, + { + "patternId": "Semgrep_javascript.argon2.security.unsafe-argon2-config.unsafe-argon2-config" + }, + { + "patternId": "Semgrep_javascript.browser.security.open-redirect.js-open-redirect" + }, + { + "patternId": "Semgrep_javascript.browser.security.raw-html-concat.raw-html-concat" + }, + { + "patternId": "Semgrep_javascript.browser.security.wildcard-postmessage-configuration.wildcard-postmessage-configuration" + }, + { + "patternId": "Semgrep_javascript.chrome-remote-interface.security.audit.chrome-remote-interface-compilescript-injection.chrome-remote-interface-compilescript-injection" + }, + { + "patternId": "Semgrep_javascript.deno.security.audit.deno-dangerous-run.deno-dangerous-run" + }, + { + "patternId": "Semgrep_javascript.intercom.security.audit.intercom-settings-user-identifier-without-user-hash.intercom-settings-user-identifier-without-user-hash" + }, + { + "patternId": "Semgrep_javascript.jose.security.jwt-hardcode.hardcoded-jwt-secret" + }, + { + "patternId": "Semgrep_javascript.jose.security.jwt-none-alg.jwt-none-alg" + }, + { + "patternId": "Semgrep_javascript.jsonwebtoken.security.jwt-hardcode.hardcoded-jwt-secret" + }, + { + "patternId": "Semgrep_javascript.jsonwebtoken.security.jwt-none-alg.jwt-none-alg" + }, + { + "patternId": "Semgrep_javascript.jwt-simple.security.jwt-simple-noverify.jwt-simple-noverify" + }, + { + "patternId": "Semgrep_javascript.lang.security.audit.code-string-concat.code-string-concat" + }, + { + "patternId": "Semgrep_javascript.lang.security.audit.sqli.node-knex-sqli.node-knex-sqli" + }, + { + "patternId": "Semgrep_javascript.lang.security.detect-eval-with-expression.detect-eval-with-expression" + }, + { + "patternId": "Semgrep_javascript.node-crypto.security.aead-no-final.aead-no-final" + }, + { + "patternId": "Semgrep_javascript.node-crypto.security.create-de-cipher-no-iv.create-de-cipher-no-iv" + }, + { + "patternId": "Semgrep_javascript.node-crypto.security.gcm-no-tag-length.gcm-no-tag-length" + }, + { + "patternId": "Semgrep_javascript.passport-jwt.security.passport-hardcode.hardcoded-passport-secret" + }, + { + "patternId": "Semgrep_json.aws.security.public-s3-bucket.public-s3-bucket" + }, + { + "patternId": "Semgrep_json.aws.security.public-s3-policy-statement.public-s3-policy-statement" + }, + { + "patternId": "Semgrep_json.aws.security.wildcard-assume-role.wildcard-assume-role" + }, + { + "patternId": "Semgrep_problem-based-packs.insecure-transport.js-node.bypass-tls-verification.bypass-tls-verification" + }, + { + "patternId": "Semgrep_problem-based-packs.insecure-transport.js-node.disallow-old-tls-versions1.disallow-old-tls-versions1" + }, + { + "patternId": "Semgrep_problem-based-packs.insecure-transport.js-node.disallow-old-tls-versions2.disallow-old-tls-versions2" + }, + { + "patternId": "Semgrep_problem-based-packs.insecure-transport.js-node.ftp-request.ftp-request" + }, + { + "patternId": "Semgrep_problem-based-packs.insecure-transport.js-node.http-request.http-request" + }, + { + "patternId": "Semgrep_problem-based-packs.insecure-transport.js-node.rest-http-client-support.rest-http-client-support" + }, + { + "patternId": "Semgrep_problem-based-packs.insecure-transport.js-node.telnet-request.telnet-request" + }, + { + "patternId": "Semgrep_yaml.argo.security.argo-workflow-parameter-command-injection.argo-workflow-parameter-command-injection" + }, + { + "patternId": "Semgrep_yaml.docker-compose.security.privileged-service.privileged-service" + }, + { + "patternId": "Semgrep_yaml.openapi.security.openai-consequential-action-false.openai-consequential-action-false" + }, + { + "patternId": "Semgrep_yaml.openapi.security.use-of-basic-authentication.use-of-basic-authentication" + }, + { + "patternId": "Semgrep_yaml_spring_rule-SpringActuatorFullyEnabled" + } + ] + }, + { + "toolId": "spectral", + "patterns": [ + { + "patternId": "spectral_array-items" + }, + { + "patternId": "spectral_asyncapi-3-channel-no-empty-parameter" + }, + { + "patternId": "spectral_asyncapi-3-channel-no-query-nor-fragment" + }, + { + "patternId": "spectral_asyncapi-3-channel-no-trailing-slash" + }, + { + "patternId": "spectral_asyncapi-3-channel-servers" + }, + { + "patternId": "spectral_asyncapi-3-document-resolved" + }, + { + "patternId": "spectral_asyncapi-3-document-unresolved" + }, + { + "patternId": "spectral_asyncapi-3-headers-schema-type-object" + }, + { + "patternId": "spectral_asyncapi-3-operation-description" + }, + { + "patternId": "spectral_asyncapi-3-operation-security" + }, + { + "patternId": "spectral_asyncapi-3-payload-unsupported-schemaFormat" + }, + { + "patternId": "spectral_asyncapi-3-server-no-empty-variable" + }, + { + "patternId": "spectral_asyncapi-3-server-no-trailing-slash" + }, + { + "patternId": "spectral_asyncapi-3-tags" + }, + { + "patternId": "spectral_asyncapi-3-tags-uniqueness" + }, + { + "patternId": "spectral_asyncapi-channel-no-empty-parameter" + }, + { + "patternId": "spectral_asyncapi-channel-no-query-nor-fragment" + }, + { + "patternId": "spectral_asyncapi-channel-no-trailing-slash" + }, + { + "patternId": "spectral_asyncapi-channel-parameters" + }, + { + "patternId": "spectral_asyncapi-channel-servers" + }, + { + "patternId": "spectral_asyncapi-headers-schema-type-object" + }, + { + "patternId": "spectral_asyncapi-info-contact" + }, + { + "patternId": "spectral_asyncapi-info-contact-properties" + }, + { + "patternId": "spectral_asyncapi-info-description" + }, + { + "patternId": "spectral_asyncapi-info-license" + }, + { + "patternId": "spectral_asyncapi-latest-version" + }, + { + "patternId": "spectral_asyncapi-message-examples" + }, + { + "patternId": "spectral_asyncapi-message-messageId-uniqueness" + }, + { + "patternId": "spectral_asyncapi-operation-description" + }, + { + "patternId": "spectral_asyncapi-operation-operationId" + }, + { + "patternId": "spectral_asyncapi-operation-operationId-uniqueness" + }, + { + "patternId": "spectral_asyncapi-operation-security" + }, + { + "patternId": "spectral_asyncapi-payload" + }, + { + "patternId": "spectral_asyncapi-payload-default" + }, + { + "patternId": "spectral_asyncapi-payload-examples" + }, + { + "patternId": "spectral_asyncapi-payload-unsupported-schemaFormat" + }, + { + "patternId": "spectral_asyncapi-schema" + }, + { + "patternId": "spectral_asyncapi-schema-default" + }, + { + "patternId": "spectral_asyncapi-schema-examples" + }, + { + "patternId": "spectral_asyncapi-server-no-empty-variable" + }, + { + "patternId": "spectral_asyncapi-server-no-trailing-slash" + }, + { + "patternId": "spectral_asyncapi-servers" + }, + { + "patternId": "spectral_asyncapi-server-security" + }, + { + "patternId": "spectral_asyncapi-server-variables" + }, + { + "patternId": "spectral_asyncapi-tags" + }, + { + "patternId": "spectral_asyncapi-tags-uniqueness" + }, + { + "patternId": "spectral_asyncapi-unused-components-schema" + }, + { + "patternId": "spectral_asyncapi-unused-components-server" + }, + { + "patternId": "spectral_duplicated-entry-in-enum" + }, + { + "patternId": "spectral_info-contact" + }, + { + "patternId": "spectral_info-description" + }, + { + "patternId": "spectral_no-eval-in-markdown" + }, + { + "patternId": "spectral_no-$ref-siblings" + }, + { + "patternId": "spectral_no-script-tags-in-markdown" + }, + { + "patternId": "spectral_oas2-anyOf" + }, + { + "patternId": "spectral_oas2-api-host" + }, + { + "patternId": "spectral_oas2-api-schemes" + }, + { + "patternId": "spectral_oas2-discriminator" + }, + { + "patternId": "spectral_oas2-host-trailing-slash" + }, + { + "patternId": "spectral_oas2-oneOf" + }, + { + "patternId": "spectral_oas2-operation-formData-consume-check" + }, + { + "patternId": "spectral_oas2-operation-security-defined" + }, + { + "patternId": "spectral_oas2-schema" + }, + { + "patternId": "spectral_oas2-unused-definition" + }, + { + "patternId": "spectral_oas2-valid-media-example" + }, + { + "patternId": "spectral_oas2-valid-schema-example" + }, + { + "patternId": "spectral_oas3_1-callbacks-in-webhook" + }, + { + "patternId": "spectral_oas3_1-servers-in-webhook" + }, + { + "patternId": "spectral_oas3-api-servers" + }, + { + "patternId": "spectral_oas3-callbacks-in-callbacks" + }, + { + "patternId": "spectral_oas3-examples-value-or-externalValue" + }, + { + "patternId": "spectral_oas3-operation-security-defined" + }, + { + "patternId": "spectral_oas3-schema" + }, + { + "patternId": "spectral_oas3-server-trailing-slash" + }, + { + "patternId": "spectral_oas3-server-variables" + }, + { + "patternId": "spectral_oas3-unused-component" + }, + { + "patternId": "spectral_oas3-valid-media-example" + }, + { + "patternId": "spectral_oas3-valid-schema-example" + }, + { + "patternId": "spectral_openapi-tags-uniqueness" + }, + { + "patternId": "spectral_operation-description" + }, + { + "patternId": "spectral_operation-operationId" + }, + { + "patternId": "spectral_operation-operationId-unique" + }, + { + "patternId": "spectral_operation-operationId-valid-in-url" + }, + { + "patternId": "spectral_operation-parameters" + }, + { + "patternId": "spectral_operation-success-response" + }, + { + "patternId": "spectral_operation-tag-defined" + }, + { + "patternId": "spectral_operation-tags" + }, + { + "patternId": "spectral_path-declarations-must-exist" + }, + { + "patternId": "spectral_path-keys-no-trailing-slash" + }, + { + "patternId": "spectral_path-not-include-query" + }, + { + "patternId": "spectral_path-params" + }, + { + "patternId": "spectral_typed-enum" + } + ] + }, + { + "toolId": "ESLint9", + "patterns": [ + { + "patternId": "ESLint9_constructor-super" + }, + { + "patternId": "ESLint9_for-direction" + }, + { + "patternId": "ESLint9_getter-return" + }, + { + "patternId": "ESLint9_no-async-promise-executor" + }, + { + "patternId": "ESLint9_no-case-declarations" + }, + { + "patternId": "ESLint9_no-class-assign" + }, + { + "patternId": "ESLint9_no-compare-neg-zero" + }, + { + "patternId": "ESLint9_no-cond-assign" + }, + { + "patternId": "ESLint9_no-constant-binary-expression" + }, + { + "patternId": "ESLint9_no-constant-condition" + }, + { + "patternId": "ESLint9_no-const-assign" + }, + { + "patternId": "ESLint9_no-control-regex" + }, + { + "patternId": "ESLint9_no-debugger" + }, + { + "patternId": "ESLint9_no-delete-var" + }, + { + "patternId": "ESLint9_no-dupe-args" + }, + { + "patternId": "ESLint9_no-dupe-class-members" + }, + { + "patternId": "ESLint9_no-dupe-else-if" + }, + { + "patternId": "ESLint9_no-dupe-keys" + }, + { + "patternId": "ESLint9_no-duplicate-case" + }, + { + "patternId": "ESLint9_no-empty" + }, + { + "patternId": "ESLint9_no-empty-character-class" + }, + { + "patternId": "ESLint9_no-empty-pattern" + }, + { + "patternId": "ESLint9_no-empty-static-block" + }, + { + "patternId": "ESLint9_no-ex-assign" + }, + { + "patternId": "ESLint9_no-extra-boolean-cast" + }, + { + "patternId": "ESLint9_no-fallthrough" + }, + { + "patternId": "ESLint9_no-func-assign" + }, + { + "patternId": "ESLint9_no-global-assign" + }, + { + "patternId": "ESLint9_no-import-assign" + }, + { + "patternId": "ESLint9_no-invalid-regexp" + }, + { + "patternId": "ESLint9_no-irregular-whitespace" + }, + { + "patternId": "ESLint9_no-loss-of-precision" + }, + { + "patternId": "ESLint9_no-misleading-character-class" + }, + { + "patternId": "ESLint9_no-new-native-nonconstructor" + }, + { + "patternId": "ESLint9_no-nonoctal-decimal-escape" + }, + { + "patternId": "ESLint9_no-obj-calls" + }, + { + "patternId": "ESLint9_no-octal" + }, + { + "patternId": "ESLint9_no-prototype-builtins" + }, + { + "patternId": "ESLint9_no-redeclare" + }, + { + "patternId": "ESLint9_no-regex-spaces" + }, + { + "patternId": "ESLint9_no-self-assign" + }, + { + "patternId": "ESLint9_no-setter-return" + }, + { + "patternId": "ESLint9_no-shadow-restricted-names" + }, + { + "patternId": "ESLint9_no-sparse-arrays" + }, + { + "patternId": "ESLint9_no-this-before-super" + }, + { + "patternId": "ESLint9_no-undef" + }, + { + "patternId": "ESLint9_no-unexpected-multiline" + }, + { + "patternId": "ESLint9_no-unreachable" + }, + { + "patternId": "ESLint9_no-unsafe-finally" + }, + { + "patternId": "ESLint9_no-unsafe-negation" + }, + { + "patternId": "ESLint9_no-unsafe-optional-chaining" + }, + { + "patternId": "ESLint9_no-unused-labels" + }, + { + "patternId": "ESLint9_no-unused-private-class-members" + }, + { + "patternId": "ESLint9_no-unused-vars" + }, + { + "patternId": "ESLint9_no-useless-backreference" + }, + { + "patternId": "ESLint9_no-useless-catch" + }, + { + "patternId": "ESLint9_no-useless-escape" + }, + { + "patternId": "ESLint9_no-with" + }, + { + "patternId": "ESLint9_require-yield" + }, + { + "patternId": "ESLint9_security_detect-bidi-characters" + }, + { + "patternId": "ESLint9_security_detect-buffer-noassert" + }, + { + "patternId": "ESLint9_security_detect-child-process" + }, + { + "patternId": "ESLint9_security_detect-disable-mustache-escape" + }, + { + "patternId": "ESLint9_security_detect-eval-with-expression" + }, + { + "patternId": "ESLint9_security_detect-new-buffer" + }, + { + "patternId": "ESLint9_security_detect-no-csrf-before-method-override" + }, + { + "patternId": "ESLint9_security_detect-non-literal-fs-filename" + }, + { + "patternId": "ESLint9_security_detect-non-literal-regexp" + }, + { + "patternId": "ESLint9_security_detect-non-literal-require" + }, + { + "patternId": "ESLint9_security_detect-object-injection" + }, + { + "patternId": "ESLint9_security_detect-possible-timing-attacks" + }, + { + "patternId": "ESLint9_security_detect-pseudoRandomBytes" + }, + { + "patternId": "ESLint9_security_detect-unsafe-regex" + }, + { + "patternId": "ESLint9_security-node_detect-absence-of-name-option-in-exrpress-session" + }, + { + "patternId": "ESLint9_security-node_detect-child-process" + }, + { + "patternId": "ESLint9_security-node_detect-dangerous-redirects" + }, + { + "patternId": "ESLint9_security-node_detect-eval-with-expr" + }, + { + "patternId": "ESLint9_security-node_detect-html-injection" + }, + { + "patternId": "ESLint9_security-node_detect-improper-exception-handling" + }, + { + "patternId": "ESLint9_security-node_detect-non-literal-require-calls" + }, + { + "patternId": "ESLint9_security-node_detect-nosql-injection" + }, + { + "patternId": "ESLint9_security-node_detect-option-multiplestatements-in-mysql" + }, + { + "patternId": "ESLint9_security-node_detect-option-rejectunauthorized-in-nodejs-httpsrequest" + }, + { + "patternId": "ESLint9_security-node_detect-option-unsafe-in-serialize-javascript-npm-package" + }, + { + "patternId": "ESLint9_security-node_detect-possible-timing-attacks" + }, + { + "patternId": "ESLint9_security-node_detect-security-missconfiguration-cookie" + }, + { + "patternId": "ESLint9_security-node_detect-unhandled-async-errors" + }, + { + "patternId": "ESLint9_security-node_detect-unhandled-event-errors" + }, + { + "patternId": "ESLint9_security-node_disable-ssl-across-node-server" + }, + { + "patternId": "ESLint9_security-node_non-literal-reg-expr" + }, + { + "patternId": "ESLint9_@typescript-eslint_adjacent-overload-signatures" + }, + { + "patternId": "ESLint9_@typescript-eslint_array-type" + }, + { + "patternId": "ESLint9_@typescript-eslint_await-thenable" + }, + { + "patternId": "ESLint9_@typescript-eslint_ban-ts-comment" + }, + { + "patternId": "ESLint9_@typescript-eslint_ban-tslint-comment" + }, + { + "patternId": "ESLint9_@typescript-eslint_class-literal-property-style" + }, + { + "patternId": "ESLint9_@typescript-eslint_class-methods-use-this" + }, + { + "patternId": "ESLint9_@typescript-eslint_consistent-generic-constructors" + }, + { + "patternId": "ESLint9_@typescript-eslint_consistent-indexed-object-style" + }, + { + "patternId": "ESLint9_@typescript-eslint_consistent-return" + }, + { + "patternId": "ESLint9_@typescript-eslint_consistent-type-assertions" + }, + { + "patternId": "ESLint9_@typescript-eslint_consistent-type-definitions" + }, + { + "patternId": "ESLint9_@typescript-eslint_consistent-type-exports" + }, + { + "patternId": "ESLint9_@typescript-eslint_default-param-last" + }, + { + "patternId": "ESLint9_@typescript-eslint_dot-notation" + }, + { + "patternId": "ESLint9_@typescript-eslint_explicit-function-return-type" + }, + { + "patternId": "ESLint9_@typescript-eslint_explicit-member-accessibility" + }, + { + "patternId": "ESLint9_@typescript-eslint_explicit-module-boundary-types" + }, + { + "patternId": "ESLint9_@typescript-eslint_init-declarations" + }, + { + "patternId": "ESLint9_@typescript-eslint_max-params" + }, + { + "patternId": "ESLint9_@typescript-eslint_member-ordering" + }, + { + "patternId": "ESLint9_@typescript-eslint_method-signature-style" + }, + { + "patternId": "ESLint9_@typescript-eslint_naming-convention" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-array-constructor" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-array-delete" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-base-to-string" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-confusing-non-null-assertion" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-confusing-void-expression" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-deprecated" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-dupe-class-members" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-duplicate-enum-values" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-duplicate-type-constituents" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-dynamic-delete" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-empty-function" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-empty-interface" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-empty-object-type" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-explicit-any" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-extraneous-class" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-extra-non-null-assertion" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-floating-promises" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-for-in-array" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-implied-eval" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-import-type-side-effects" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-inferrable-types" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-invalid-this" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-invalid-void-type" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-loop-func" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-loss-of-precision" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-magic-numbers" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-meaningless-void-operator" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-misused-new" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-misused-promises" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-misused-spread" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-mixed-enums" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-namespace" + }, + { + "patternId": "ESLint9_@typescript-eslint_non-nullable-type-assertion-style" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-non-null-asserted-nullish-coalescing" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-non-null-asserted-optional-chain" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-non-null-assertion" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-redeclare" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-redundant-type-constituents" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-require-imports" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-restricted-imports" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-restricted-types" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-shadow" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-this-alias" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-type-alias" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unnecessary-boolean-literal-compare" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unnecessary-condition" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unnecessary-parameter-property-assignment" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unnecessary-qualifier" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unnecessary-template-expression" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unnecessary-type-arguments" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unnecessary-type-assertion" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unnecessary-type-constraint" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unnecessary-type-conversion" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unnecessary-type-parameters" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unsafe-argument" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unsafe-assignment" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unsafe-call" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unsafe-declaration-merging" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unsafe-enum-comparison" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unsafe-function-type" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unsafe-member-access" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unsafe-return" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unsafe-type-assertion" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unsafe-unary-minus" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unused-expressions" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unused-private-class-members" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-unused-vars" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-use-before-define" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-useless-constructor" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-useless-default-assignment" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-useless-empty-export" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-var-requires" + }, + { + "patternId": "ESLint9_@typescript-eslint_no-wrapper-object-types" + }, + { + "patternId": "ESLint9_@typescript-eslint_only-throw-error" + }, + { + "patternId": "ESLint9_@typescript-eslint_parameter-properties" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-as-const" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-destructuring" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-enum-initializers" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-find" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-for-of" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-function-type" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-includes" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-literal-enum-member" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-namespace-keyword" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-nullish-coalescing" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-optional-chain" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-promise-reject-errors" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-readonly" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-readonly-parameter-types" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-reduce-type-parameter" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-regexp-exec" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-return-this-type" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-string-starts-ends-with" + }, + { + "patternId": "ESLint9_@typescript-eslint_prefer-ts-expect-error" + }, + { + "patternId": "ESLint9_@typescript-eslint_promise-function-async" + }, + { + "patternId": "ESLint9_@typescript-eslint_related-getter-setter-pairs" + }, + { + "patternId": "ESLint9_@typescript-eslint_require-array-sort-compare" + }, + { + "patternId": "ESLint9_@typescript-eslint_require-await" + }, + { + "patternId": "ESLint9_@typescript-eslint_restrict-plus-operands" + }, + { + "patternId": "ESLint9_@typescript-eslint_restrict-template-expressions" + }, + { + "patternId": "ESLint9_@typescript-eslint_return-await" + }, + { + "patternId": "ESLint9_@typescript-eslint_sort-type-constituents" + }, + { + "patternId": "ESLint9_@typescript-eslint_strict-boolean-expressions" + }, + { + "patternId": "ESLint9_@typescript-eslint_strict-void-return" + }, + { + "patternId": "ESLint9_@typescript-eslint_switch-exhaustiveness-check" + }, + { + "patternId": "ESLint9_@typescript-eslint_triple-slash-reference" + }, + { + "patternId": "ESLint9_@typescript-eslint_typedef" + }, + { + "patternId": "ESLint9_@typescript-eslint_unbound-method" + }, + { + "patternId": "ESLint9_@typescript-eslint_unified-signatures" + }, + { + "patternId": "ESLint9_@typescript-eslint_use-unknown-in-catch-callback-variable" + }, + { + "patternId": "ESLint9_use-isnan" + }, + { + "patternId": "ESLint9_valid-typeof" + }, + { + "patternId": "ESLint9_xss_no-location-href-assign" + } + ] + }, + { + "toolId": "Checkov", + "patterns": [ + { + "patternId": "Checkov_CKV_BITBUCKET_1" + }, + { + "patternId": "Checkov_CKV_GITHUB_1" + }, + { + "patternId": "Checkov_CKV_GITHUB_10" + }, + { + "patternId": "Checkov_CKV_GITHUB_11" + }, + { + "patternId": "Checkov_CKV_GITHUB_12" + }, + { + "patternId": "Checkov_CKV_GITHUB_13" + }, + { + "patternId": "Checkov_CKV_GITHUB_14" + }, + { + "patternId": "Checkov_CKV_GITHUB_15" + }, + { + "patternId": "Checkov_CKV_GITHUB_16" + }, + { + "patternId": "Checkov_CKV_GITHUB_17" + }, + { + "patternId": "Checkov_CKV_GITHUB_18" + }, + { + "patternId": "Checkov_CKV_GITHUB_19" + }, + { + "patternId": "Checkov_CKV_GITHUB_2" + }, + { + "patternId": "Checkov_CKV_GITHUB_20" + }, + { + "patternId": "Checkov_CKV_GITHUB_21" + }, + { + "patternId": "Checkov_CKV_GITHUB_22" + }, + { + "patternId": "Checkov_CKV_GITHUB_23" + }, + { + "patternId": "Checkov_CKV_GITHUB_26" + }, + { + "patternId": "Checkov_CKV_GITHUB_27" + }, + { + "patternId": "Checkov_CKV_GITHUB_28" + }, + { + "patternId": "Checkov_CKV_GITHUB_3" + }, + { + "patternId": "Checkov_CKV_GITHUB_4" + }, + { + "patternId": "Checkov_CKV_GITHUB_5" + }, + { + "patternId": "Checkov_CKV_GITHUB_6" + }, + { + "patternId": "Checkov_CKV_GITHUB_7" + }, + { + "patternId": "Checkov_CKV_GITHUB_8" + }, + { + "patternId": "Checkov_CKV_GITHUB_9" + }, + { + "patternId": "Checkov_CKV_GITLAB_1" + }, + { + "patternId": "Checkov_CKV_OPENAPI_1" + }, + { + "patternId": "Checkov_CKV_OPENAPI_10" + }, + { + "patternId": "Checkov_CKV_OPENAPI_11" + }, + { + "patternId": "Checkov_CKV_OPENAPI_12" + }, + { + "patternId": "Checkov_CKV_OPENAPI_13" + }, + { + "patternId": "Checkov_CKV_OPENAPI_14" + }, + { + "patternId": "Checkov_CKV_OPENAPI_15" + }, + { + "patternId": "Checkov_CKV_OPENAPI_16" + }, + { + "patternId": "Checkov_CKV_OPENAPI_17" + }, + { + "patternId": "Checkov_CKV_OPENAPI_18" + }, + { + "patternId": "Checkov_CKV_OPENAPI_19" + }, + { + "patternId": "Checkov_CKV_OPENAPI_2" + }, + { + "patternId": "Checkov_CKV_OPENAPI_20" + }, + { + "patternId": "Checkov_CKV_OPENAPI_21" + }, + { + "patternId": "Checkov_CKV_OPENAPI_3" + }, + { + "patternId": "Checkov_CKV_OPENAPI_4" + }, + { + "patternId": "Checkov_CKV_OPENAPI_5" + }, + { + "patternId": "Checkov_CKV_OPENAPI_6" + }, + { + "patternId": "Checkov_CKV_OPENAPI_7" + }, + { + "patternId": "Checkov_CKV_OPENAPI_8" + }, + { + "patternId": "Checkov_CKV_OPENAPI_9" + }, + { + "patternId": "Checkov_CKV_SECRET_1" + }, + { + "patternId": "Checkov_CKV_SECRET_11" + }, + { + "patternId": "Checkov_CKV_SECRET_12" + }, + { + "patternId": "Checkov_CKV_SECRET_13" + }, + { + "patternId": "Checkov_CKV_SECRET_14" + }, + { + "patternId": "Checkov_CKV_SECRET_15" + }, + { + "patternId": "Checkov_CKV_SECRET_16" + }, + { + "patternId": "Checkov_CKV_SECRET_17" + }, + { + "patternId": "Checkov_CKV_SECRET_18" + }, + { + "patternId": "Checkov_CKV_SECRET_19" + }, + { + "patternId": "Checkov_CKV_SECRET_2" + }, + { + "patternId": "Checkov_CKV_SECRET_3" + }, + { + "patternId": "Checkov_CKV_SECRET_4" + }, + { + "patternId": "Checkov_CKV_SECRET_5" + }, + { + "patternId": "Checkov_CKV_SECRET_6" + }, + { + "patternId": "Checkov_CKV_SECRET_7" + }, + { + "patternId": "Checkov_CKV_SECRET_8" + }, + { + "patternId": "Checkov_CKV_SECRET_9" + } + ] + }, + { + "toolId": "Lizard", + "patterns": [ + { + "patternId": "Lizard_ccn-minor" + }, + { + "patternId": "Lizard_file-nloc-medium" + }, + { + "patternId": "Lizard_nloc-medium" + }, + { + "patternId": "Lizard_parameter-count-medium" + }, + { + "patternId": "Lizard_file-nloc-critical" + } + ] + }, + { + "toolId": "Agentlinter", + "patterns": [ + { + "patternId": "Agentlinter_blueprint_constraints-defined" + }, + { + "patternId": "Agentlinter_blueprint_coverage" + }, + { + "patternId": "Agentlinter_blueprint_identity-defined" + }, + { + "patternId": "Agentlinter_clarity_actionable-instructions" + }, + { + "patternId": "Agentlinter_clarity_action-without-context" + }, + { + "patternId": "Agentlinter_clarity_ambiguous-pronoun" + }, + { + "patternId": "Agentlinter_clarity_compound-instruction" + }, + { + "patternId": "Agentlinter_clarity_duplicate-content" + }, + { + "patternId": "Agentlinter_clarity_english-config-files" + }, + { + "patternId": "Agentlinter_clarity_escape-hatch-missing" + }, + { + "patternId": "Agentlinter_clarity_has-examples" + }, + { + "patternId": "Agentlinter_clarity_instruction-density" + }, + { + "patternId": "Agentlinter_clarity_naked-conditional" + }, + { + "patternId": "Agentlinter_clarity_no-contradictions" + }, + { + "patternId": "Agentlinter_clarity_no-vague-instructions" + }, + { + "patternId": "Agentlinter_clarity_obvious-statements" + }, + { + "patternId": "Agentlinter_clarity_priority-signal-missing" + }, + { + "patternId": "Agentlinter_clarity_sentence-complexity" + }, + { + "patternId": "Agentlinter_clarity_token-budget-range" + }, + { + "patternId": "Agentlinter_clarity_token-efficiency-score" + }, + { + "patternId": "Agentlinter_clarity_undefined-term" + }, + { + "patternId": "Agentlinter_claude-code_agent-focus" + }, + { + "patternId": "Agentlinter_claude-code_descriptive-ratio" + }, + { + "patternId": "Agentlinter_claude-code_hooks-structure" + }, + { + "patternId": "Agentlinter_claude-code_instruction-count" + }, + { + "patternId": "Agentlinter_claude-code_progressive-disclosure" + }, + { + "patternId": "Agentlinter_claude-code_relevance-trap" + }, + { + "patternId": "Agentlinter_claude-code_skills-vs-commands" + }, + { + "patternId": "Agentlinter_completeness_command-coverage" + }, + { + "patternId": "Agentlinter_completeness_freshness-file-paths" + }, + { + "patternId": "Agentlinter_completeness_has-boundaries" + }, + { + "patternId": "Agentlinter_completeness_has-error-handling" + }, + { + "patternId": "Agentlinter_completeness_has-identity" + }, + { + "patternId": "Agentlinter_completeness_has-output-format" + }, + { + "patternId": "Agentlinter_completeness_has-priorities" + }, + { + "patternId": "Agentlinter_completeness_has-tools" + }, + { + "patternId": "Agentlinter_completeness_has-user-context" + }, + { + "patternId": "Agentlinter_completeness_has-workflow" + }, + { + "patternId": "Agentlinter_completeness_session-learning-hooks" + }, + { + "patternId": "Agentlinter_completeness_verification-criteria-required" + }, + { + "patternId": "Agentlinter_consistency_circular-dependency" + }, + { + "patternId": "Agentlinter_consistency_identity-alignment" + }, + { + "patternId": "Agentlinter_consistency_language-mixing" + }, + { + "patternId": "Agentlinter_consistency_naming-convention" + }, + { + "patternId": "Agentlinter_consistency_no-duplicate-instructions" + }, + { + "patternId": "Agentlinter_consistency_outdated-cross-references" + }, + { + "patternId": "Agentlinter_consistency_permission-conflict" + }, + { + "patternId": "Agentlinter_consistency_priority-conflict" + }, + { + "patternId": "Agentlinter_consistency_referenced-files-exist" + }, + { + "patternId": "Agentlinter_consistency_stale-date" + }, + { + "patternId": "Agentlinter_consistency_stale-file-reference" + }, + { + "patternId": "Agentlinter_consistency_stale-package-reference" + }, + { + "patternId": "Agentlinter_consistency_timezone-locale-drift" + }, + { + "patternId": "Agentlinter_consistency_tone-voice-alignment" + }, + { + "patternId": "Agentlinter_memory_has-context-window-awareness" + }, + { + "patternId": "Agentlinter_memory_has-file-based-notes" + }, + { + "patternId": "Agentlinter_memory_has-handoff-protocol" + }, + { + "patternId": "Agentlinter_memory_has-learning-loop" + }, + { + "patternId": "Agentlinter_memory_has-memory-strategy" + }, + { + "patternId": "Agentlinter_memory_has-state-tracking" + }, + { + "patternId": "Agentlinter_memory_no-mental-notes" + }, + { + "patternId": "Agentlinter_remote-ready_env-vars-documented" + }, + { + "patternId": "Agentlinter_remote-ready_model-settings-specified" + }, + { + "patternId": "Agentlinter_remote-ready_workspace-path-specified" + }, + { + "patternId": "Agentlinter_runtime_auth-mode" + }, + { + "patternId": "Agentlinter_runtime_config-exists" + }, + { + "patternId": "Agentlinter_runtime_config-secrets" + }, + { + "patternId": "Agentlinter_runtime_dm-policy" + }, + { + "patternId": "Agentlinter_runtime_gateway-bind" + }, + { + "patternId": "Agentlinter_runtime_group-policy" + }, + { + "patternId": "Agentlinter_runtime_token-strength" + }, + { + "patternId": "Agentlinter_security_api-key-exposure" + }, + { + "patternId": "Agentlinter_security_env-var-references" + }, + { + "patternId": "Agentlinter_security_has-injection-defense" + }, + { + "patternId": "Agentlinter_security_has-permission-boundaries" + }, + { + "patternId": "Agentlinter_security_no-injection-defense" + }, + { + "patternId": "Agentlinter_security_no-pii-exposure" + }, + { + "patternId": "Agentlinter_security_no-secrets" + }, + { + "patternId": "Agentlinter_security_prompt-injection-vulnerability" + }, + { + "patternId": "Agentlinter_skill-safety_dangerous-commands" + }, + { + "patternId": "Agentlinter_skill-safety_data-exfiltration" + }, + { + "patternId": "Agentlinter_skill-safety_excessive-permissions" + }, + { + "patternId": "Agentlinter_skill-safety_has-metadata" + }, + { + "patternId": "Agentlinter_skill-safety_injection-vectors" + }, + { + "patternId": "Agentlinter_skill-safety_sensitive-paths" + }, + { + "patternId": "Agentlinter_skill-safety_skill-description-when-to-use" + }, + { + "patternId": "Agentlinter_skill-safety_skill-name-match-dir" + }, + { + "patternId": "Agentlinter_structure_circular-import" + }, + { + "patternId": "Agentlinter_structure_dead-import" + }, + { + "patternId": "Agentlinter_structure_file-size" + }, + { + "patternId": "Agentlinter_structure_has-file-map" + }, + { + "patternId": "Agentlinter_structure_has-main-file" + }, + { + "patternId": "Agentlinter_structure_has-sections" + }, + { + "patternId": "Agentlinter_structure_has-version-or-update-date" + }, + { + "patternId": "Agentlinter_structure_heading-hierarchy" + }, + { + "patternId": "Agentlinter_structure_modular-files" + }, + { + "patternId": "Agentlinter_structure_no-empty-sections" + }, + { + "patternId": "Agentlinter_structure_position-risk-warning" + }, + { + "patternId": "Agentlinter_token-budget_compressible-padding" + }, + { + "patternId": "Agentlinter_token-budget_section-weight" + }, + { + "patternId": "Agentlinter_token-budget_total-tokens" + }, + { + "patternId": "Agentlinter_token-budget_under-150-tokens" + } + ] + } + ], + "exclude": [] +} diff --git a/astro.config.mjs b/astro.config.mjs index 793f908..2a3ece0 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -7,14 +7,14 @@ export default defineConfig({ site: 'https://docs.woiken.com', integrations: [ starlight({ - title: 'My Docs', + title: 'Woiken Docs', social: [{ icon: 'github', label: 'GitHub', href: 'https://github.com/withastro/starlight' }], sidebar: [ { label: 'Guides', items: [ // Each item here is one entry in the navigation menu. - { label: 'Example Guide', slug: 'guides/example' }, + { label: 'Getting Started', slug: 'guides/example' }, ], }, { diff --git a/src/content/docs/guides/example.md b/src/content/docs/guides/example.md index ebd0f3b..e292bd7 100644 --- a/src/content/docs/guides/example.md +++ b/src/content/docs/guides/example.md @@ -1,5 +1,5 @@ --- -title: Example Guide +title: Getting Started description: A guide in my new Starlight docs site. --- diff --git a/src/content/docs/index.mdx b/src/content/docs/index.mdx index e6ed51f..f1306a4 100644 --- a/src/content/docs/index.mdx +++ b/src/content/docs/index.mdx @@ -1,13 +1,13 @@ --- -title: Welcome to Starlight -description: Get started building your docs site with Starlight. +title: Welcome to Woiken Docs +description: Guides and reference for Woiken. template: splash # Remove or comment out this line to display the site sidebar on this page. hero: tagline: Congrats on setting up a new Starlight project! image: file: ../../assets/houston.webp actions: - - text: Example Guide + - text: Getting Started link: /guides/example/ icon: right-arrow - text: Read the Starlight docs diff --git a/src/content/docs/reference/example.md b/src/content/docs/reference/example.md index 0224f09..169f7d7 100644 --- a/src/content/docs/reference/example.md +++ b/src/content/docs/reference/example.md @@ -1,5 +1,5 @@ --- -title: Example Reference +title: Woiken Reference description: A reference page in my new Starlight docs site. ---