{
  "bomFormat": "CycloneDX",
  "specVersion": "1.7",
  "serialNumber": "urn:uuid:ab229350-6294-4c54-9478-23cf26f0a5f2",
  "version": 1,
  "metadata": {
    "timestamp": "2026-08-25T13:36:51Z",
    "tools": {
      "components": [
        {
          "group": "@cyclonedx",
          "name": "cdxgen",
          "version": "12.8.4",
          "purl": "pkg:npm/%40cyclonedx/cdxgen@12.8.4",
          "type": "application",
          "bom-ref": "pkg:npm/@cyclonedx/cdxgen@12.8.4",
          "publisher": "OWASP Foundation",
          "authors": [
            {
              "name": "OWASP Foundation"
            }
          ]
        }
      ]
    },
    "authors": [
      {
        "name": "OWASP Foundation"
      }
    ],
    "lifecycles": [
      {
        "phase": "pre-build"
      }
    ],
    "component": {
      "name": "eslint-plugin",
      "group": "@angular-eslint",
      "version": "21.3.0",
      "description": "ESLint plugin for Angular applications, following https://angular.dev/style-guide",
      "purl": "pkg:npm/%40angular-eslint/eslint-plugin@21.3.0",
      "bom-ref": "pkg:npm/@angular-eslint/eslint-plugin@21.3.0",
      "properties": [
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "type": "application",
      "licenses": [
        {
          "license": {
            "id": "MIT",
            "url": "https://opensource.org/licenses/MIT",
            "properties": [
              {
                "name": "cdx:license:category",
                "value": "Permissive"
              },
              {
                "name": "cdx:license:foss",
                "value": "true"
              },
              {
                "name": "cdx:license:osiApproved",
                "value": "true"
              },
              {
                "name": "cdx:license:fsfLibre",
                "value": "true"
              },
              {
                "name": "cdx:license:deprecated",
                "value": "false"
              }
            ]
          }
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/angular-eslint/angular-eslint.git"
        }
      ]
    },
    "properties": [
      {
        "name": "cdx:bom:componentTypes",
        "value": "npm"
      },
      {
        "name": "cdx:bom:componentNamespaces",
        "value": "@angular-eslint\\n@typescript-eslint"
      },
      {
        "name": "cdx:bom:componentSrcFiles",
        "value": "node_modules/@angular-eslint/bundled-angular-compiler/package.json\\nnode_modules/@angular-eslint/test-utils/package.json\\nnode_modules/@angular-eslint/utils/package.json\\nnode_modules/@typescript-eslint/utils/package.json\\nnode_modules/eslint/package.json\\nnode_modules/ts-api-utils/package.json\\nnode_modules/typescript/package.json"
      }
    ]
  },
  "components": [
    {
      "authors": [
        {
          "name": "Microsoft Corp."
        }
      ],
      "group": "",
      "name": "typescript",
      "version": "5.9.3",
      "description": "TypeScript is a language for application scale JavaScript development",
      "scope": "required",
      "licenses": [
        {
          "license": {
            "id": "Apache-2.0",
            "url": "https://opensource.org/licenses/Apache-2.0",
            "properties": [
              {
                "name": "cdx:license:category",
                "value": "Permissive"
              },
              {
                "name": "cdx:license:foss",
                "value": "true"
              },
              {
                "name": "cdx:license:osiApproved",
                "value": "true"
              },
              {
                "name": "cdx:license:fsfLibre",
                "value": "true"
              },
              {
                "name": "cdx:license:deprecated",
                "value": "false"
              }
            ]
          }
        }
      ],
      "purl": "pkg:npm/typescript@5.9.3",
      "externalReferences": [
        {
          "type": "website",
          "url": "https://www.typescriptlang.org/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/microsoft/TypeScript.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/typescript@5.9.3",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/typescript/package.json"
        },
        {
          "name": "ImportedModules",
          "value": "typescript"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/typescript/package.json"
              }
            ],
            "concludedValue": "node_modules/typescript/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "dist/utils/jsdoc.js",
            "line": 47
          },
          {
            "location": "src/utils/jsdoc.ts",
            "line": 6
          }
        ]
      }
    },
    {
      "authors": [
        {
          "name": "JoshuaKGoldberg <npm@joshuakgoldberg.com>"
        }
      ],
      "group": "",
      "name": "ts-api-utils",
      "version": "2.4.0",
      "description": "Utility functions for working with TypeScript's API. Successor to the wonderful tsutils. 🛠️️",
      "scope": "required",
      "licenses": [
        {
          "license": {
            "id": "MIT",
            "url": "https://opensource.org/licenses/MIT",
            "properties": [
              {
                "name": "cdx:license:category",
                "value": "Permissive"
              },
              {
                "name": "cdx:license:foss",
                "value": "true"
              },
              {
                "name": "cdx:license:osiApproved",
                "value": "true"
              },
              {
                "name": "cdx:license:fsfLibre",
                "value": "true"
              },
              {
                "name": "cdx:license:deprecated",
                "value": "false"
              }
            ]
          }
        }
      ],
      "purl": "pkg:npm/ts-api-utils@2.4.0",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/JoshuaKGoldberg/ts-api-utils"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/ts-api-utils@2.4.0",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/ts-api-utils/package.json"
        },
        {
          "name": "ImportedModules",
          "value": "ts-api-utils"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/ts-api-utils/package.json"
              }
            ],
            "concludedValue": "node_modules/ts-api-utils/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "dist/utils/jsdoc.js",
            "line": 48
          },
          {
            "location": "src/utils/jsdoc.ts",
            "line": 7
          },
          {
            "location": "src/utils/jsdoc.ts",
            "line": 86
          },
          {
            "location": "src/utils/jsdoc.ts",
            "line": 166
          },
          {
            "location": "src/utils/jsdoc.ts",
            "line": 170
          }
        ]
      },
      "tags": [
        "api"
      ]
    },
    {
      "authors": [
        {
          "name": "Nicholas C. Zakas <nicholas+npm@nczconsulting.com>"
        }
      ],
      "group": "",
      "name": "eslint",
      "version": "10.0.2",
      "description": "An AST-based pattern checker for JavaScript.",
      "scope": "optional",
      "licenses": [
        {
          "license": {
            "id": "MIT",
            "url": "https://opensource.org/licenses/MIT",
            "properties": [
              {
                "name": "cdx:license:category",
                "value": "Permissive"
              },
              {
                "name": "cdx:license:foss",
                "value": "true"
              },
              {
                "name": "cdx:license:osiApproved",
                "value": "true"
              },
              {
                "name": "cdx:license:fsfLibre",
                "value": "true"
              },
              {
                "name": "cdx:license:deprecated",
                "value": "false"
              }
            ]
          }
        }
      ],
      "purl": "pkg:npm/eslint@10.0.2",
      "externalReferences": [
        {
          "type": "website",
          "url": "https://eslint.org"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/eslint@10.0.2",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/eslint/package.json"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/eslint/package.json"
              }
            ],
            "concludedValue": "node_modules/eslint/package.json"
          }
        ]
      }
    },
    {
      "group": "@typescript-eslint",
      "name": "utils",
      "version": "8.56.1",
      "description": "Utilities for working with TypeScript + ESLint together",
      "scope": "required",
      "licenses": [
        {
          "license": {
            "id": "MIT",
            "url": "https://opensource.org/licenses/MIT",
            "properties": [
              {
                "name": "cdx:license:category",
                "value": "Permissive"
              },
              {
                "name": "cdx:license:foss",
                "value": "true"
              },
              {
                "name": "cdx:license:osiApproved",
                "value": "true"
              },
              {
                "name": "cdx:license:fsfLibre",
                "value": "true"
              },
              {
                "name": "cdx:license:deprecated",
                "value": "false"
              }
            ]
          }
        }
      ],
      "purl": "pkg:npm/%40typescript-eslint/utils@8.56.1",
      "externalReferences": [
        {
          "type": "website",
          "url": "https://typescript-eslint.io/packages/utils"
        },
        {
          "type": "vcs",
          "url": "https://github.com/typescript-eslint/typescript-eslint.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/@typescript-eslint/utils@8.56.1",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@typescript-eslint/utils/package.json"
        },
        {
          "name": "ImportedModules",
          "value": "@typescript-eslint/utils,TSESTree,@typescript-eslint/utils/TSESTree,ASTUtils,@typescript-eslint/utils/ASTUtils,AST_NODE_TYPES,@typescript-eslint/utils/AST_NODE_TYPES,TSESLint,@typescript-eslint/utils/TSESLint,ESLintUtils,@typescript-eslint/utils/ESLintUtils,ParserServicesWithTypeInformation,@typescript-eslint/utils/ParserServicesWithTypeInformation,@typescript-eslint/utils/eslint-utils,getParserServices,@typescript-eslint/utils/eslint-utils/getParserServices"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/@typescript-eslint/utils/package.json"
              }
            ],
            "concludedValue": "node_modules/@typescript-eslint/utils/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "dist/rules/component-selector.js",
            "line": 5
          },
          {
            "location": "dist/rules/computed-must-return.js",
            "line": 5
          },
          {
            "location": "dist/rules/no-conflicting-lifecycle.js",
            "line": 5
          },
          {
            "location": "dist/rules/no-duplicates-in-metadata-arrays.js",
            "line": 6
          },
          {
            "location": "dist/rules/no-implicit-take-until-destroyed.js",
            "line": 5
          },
          {
            "location": "dist/rules/no-input-prefix.js",
            "line": 5
          },
          {
            "location": "dist/rules/no-input-rename.js",
            "line": 5
          },
          {
            "location": "dist/rules/no-inputs-metadata-property.js",
            "line": 5
          },
          {
            "location": "dist/rules/no-lifecycle-call.js",
            "line": 5
          },
          {
            "location": "dist/rules/no-output-rename.js",
            "line": 5
          },
          {
            "location": "dist/rules/no-outputs-metadata-property.js",
            "line": 5
          },
          {
            "location": "dist/rules/no-uncalled-signals.js",
            "line": 4
          },
          {
            "location": "dist/rules/prefer-inject.js",
            "line": 5
          },
          {
            "location": "dist/rules/prefer-signals.js",
            "line": 5
          },
          {
            "location": "dist/rules/require-lifecycle-on-prototype.js",
            "line": 4
          },
          {
            "location": "dist/rules/require-localize-metadata.js",
            "line": 4
          },
          {
            "location": "dist/rules/runtime-localize.js",
            "line": 4
          },
          {
            "location": "dist/rules/use-component-selector.js",
            "line": 5
          },
          {
            "location": "dist/utils/create-eslint-rule.js",
            "line": 4
          },
          {
            "location": "dist/utils/jsdoc.js",
            "line": 46
          },
          {
            "location": "src/rules/component-class-suffix.ts",
            "line": 6
          },
          {
            "location": "src/rules/component-max-inline-declarations.ts",
            "line": 2
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 7
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 8
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 264
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 266
          },
          {
            "location": "src/rules/computed-must-return.ts",
            "line": 2
          },
          {
            "location": "src/rules/consistent-component-styles.ts",
            "line": 2
          },
          {
            "location": "src/rules/contextual-decorator.ts",
            "line": 2
          },
          {
            "location": "src/rules/contextual-lifecycle.ts",
            "line": 2
          },
          {
            "location": "src/rules/directive-class-suffix.ts",
            "line": 6
          },
          {
            "location": "src/rules/directive-selector.ts",
            "line": 7
          },
          {
            "location": "src/rules/no-async-lifecycle-method.ts",
            "line": 2
          },
          {
            "location": "src/rules/no-attribute-decorator.ts",
            "line": 1
          },
          {
            "location": "src/rules/no-conflicting-lifecycle.ts",
            "line": 2
          },
          {
            "location": "src/rules/no-conflicting-lifecycle.ts",
            "line": 3
          },
          {
            "location": "src/rules/no-conflicting-lifecycle.ts",
            "line": 80
          },
          {
            "location": "src/rules/no-duplicates-in-metadata-arrays.ts",
            "line": 3
          },
          {
            "location": "src/rules/no-duplicates-in-metadata-arrays.ts",
            "line": 4
          },
          {
            "location": "src/rules/no-empty-lifecycle-method.ts",
            "line": 8
          },
          {
            "location": "src/rules/no-forward-ref.ts",
            "line": 1
          },
          {
            "location": "src/rules/no-implicit-take-until-destroyed.ts",
            "line": 2
          },
          {
            "location": "src/rules/no-input-prefix.ts",
            "line": 6
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 9
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 10
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 86
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 131
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 154
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 216
          },
          {
            "location": "src/rules/no-inputs-metadata-property.ts",
            "line": 2
          },
          {
            "location": "src/rules/no-inputs-metadata-property.ts",
            "line": 3
          },
          {
            "location": "src/rules/no-inputs-metadata-property.ts",
            "line": 48
          },
          {
            "location": "src/rules/no-lifecycle-call.ts",
            "line": 2
          },
          {
            "location": "src/rules/no-lifecycle-call.ts",
            "line": 3
          },
          {
            "location": "src/rules/no-lifecycle-call.ts",
            "line": 57
          },
          {
            "location": "src/rules/no-lifecycle-call.ts",
            "line": 58
          },
          {
            "location": "src/rules/no-output-native.ts",
            "line": 6
          },
          {
            "location": "src/rules/no-output-on-prefix.ts",
            "line": 2
          },
          {
            "location": "src/rules/no-output-rename.ts",
            "line": 7
          },
          {
            "location": "src/rules/no-output-rename.ts",
            "line": 8
          },
          {
            "location": "src/rules/no-output-rename.ts",
            "line": 60
          },
          {
            "location": "src/rules/no-output-rename.ts",
            "line": 109
          },
          {
            "location": "src/rules/no-output-rename.ts",
            "line": 163
          },
          {
            "location": "src/rules/no-outputs-metadata-property.ts",
            "line": 2
          },
          {
            "location": "src/rules/no-outputs-metadata-property.ts",
            "line": 3
          },
          {
            "location": "src/rules/no-outputs-metadata-property.ts",
            "line": 48
          },
          {
            "location": "src/rules/no-pipe-impure.ts",
            "line": 2
          },
          {
            "location": "src/rules/no-queries-metadata-property.ts",
            "line": 2
          },
          {
            "location": "src/rules/no-uncalled-signals.ts",
            "line": 6
          },
          {
            "location": "src/rules/no-uncalled-signals.ts",
            "line": 50
          },
          {
            "location": "src/rules/pipe-prefix.ts",
            "line": 7
          },
          {
            "location": "src/rules/prefer-inject.ts",
            "line": 2
          },
          {
            "location": "src/rules/prefer-on-push-component-change-detection.ts",
            "line": 7
          },
          {
            "location": "src/rules/prefer-output-readonly.ts",
            "line": 2
          },
          {
            "location": "src/rules/prefer-signal-model.ts",
            "line": 6
          },
          {
            "location": "src/rules/prefer-signals.ts",
            "line": 5
          },
          {
            "location": "src/rules/prefer-signals.ts",
            "line": 6
          },
          {
            "location": "src/rules/prefer-signals.ts",
            "line": 175
          },
          {
            "location": "src/rules/prefer-standalone.ts",
            "line": 2
          },
          {
            "location": "src/rules/relative-url-prefix.ts",
            "line": 2
          },
          {
            "location": "src/rules/require-lifecycle-on-prototype.ts",
            "line": 1
          },
          {
            "location": "src/rules/require-lifecycle-on-prototype.ts",
            "line": 2
          },
          {
            "location": "src/rules/require-localize-metadata.ts",
            "line": 1
          },
          {
            "location": "src/rules/require-localize-metadata.ts",
            "line": 2
          },
          {
            "location": "src/rules/require-localize-metadata.ts",
            "line": 71
          },
          {
            "location": "src/rules/runtime-localize.ts",
            "line": 1
          },
          {
            "location": "src/rules/runtime-localize.ts",
            "line": 2
          },
          {
            "location": "src/rules/runtime-localize.ts",
            "line": 29
          },
          {
            "location": "src/rules/sort-keys-in-type-decorator.ts",
            "line": 2
          },
          {
            "location": "src/rules/sort-lifecycle-methods.ts",
            "line": 2
          },
          {
            "location": "src/rules/use-component-selector.ts",
            "line": 2
          },
          {
            "location": "src/rules/use-component-selector.ts",
            "line": 3
          },
          {
            "location": "src/rules/use-component-selector.ts",
            "line": 32
          },
          {
            "location": "src/rules/use-component-view-encapsulation.ts",
            "line": 7
          },
          {
            "location": "src/rules/use-injectable-provided-in.ts",
            "line": 2
          },
          {
            "location": "src/rules/use-lifecycle-interface.ts",
            "line": 7
          },
          {
            "location": "src/rules/use-pipe-transform-interface.ts",
            "line": 2
          },
          {
            "location": "src/utils/create-eslint-rule.ts",
            "line": 1
          },
          {
            "location": "src/utils/create-eslint-rule.ts",
            "line": 26
          },
          {
            "location": "src/utils/jsdoc.ts",
            "line": 4
          },
          {
            "location": "src/utils/jsdoc.ts",
            "line": 5
          },
          {
            "location": "dist/rules/no-developer-preview.js",
            "line": 5
          },
          {
            "location": "dist/rules/no-experimental.js",
            "line": 5
          },
          {
            "location": "src/rules/no-developer-preview.ts",
            "line": 2
          },
          {
            "location": "src/rules/no-developer-preview.ts",
            "line": 28
          },
          {
            "location": "src/rules/no-experimental.ts",
            "line": 2
          },
          {
            "location": "src/rules/no-experimental.ts",
            "line": 28
          }
        ]
      }
    },
    {
      "group": "@angular-eslint",
      "name": "utils",
      "version": "21.3.0",
      "scope": "required",
      "licenses": [
        {
          "license": {
            "id": "MIT",
            "url": "https://opensource.org/licenses/MIT",
            "properties": [
              {
                "name": "cdx:license:category",
                "value": "Permissive"
              },
              {
                "name": "cdx:license:foss",
                "value": "true"
              },
              {
                "name": "cdx:license:osiApproved",
                "value": "true"
              },
              {
                "name": "cdx:license:fsfLibre",
                "value": "true"
              },
              {
                "name": "cdx:license:deprecated",
                "value": "false"
              }
            ]
          }
        }
      ],
      "purl": "pkg:npm/%40angular-eslint/utils@21.3.0",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/angular-eslint/angular-eslint.git"
        }
      ],
      "type": "framework",
      "bom-ref": "pkg:npm/@angular-eslint/utils@21.3.0",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@angular-eslint/utils/package.json"
        },
        {
          "name": "ImportedModules",
          "value": "@angular-eslint/utils,ASTUtils,@angular-eslint/utils/ASTUtils,Selectors,@angular-eslint/utils/Selectors,toHumanReadableText,@angular-eslint/utils/toHumanReadableText,arrayify,@angular-eslint/utils/arrayify,SelectorUtils,@angular-eslint/utils/SelectorUtils,toPattern,@angular-eslint/utils/toPattern,RuleFixes,@angular-eslint/utils/RuleFixes,isNotNullOrUndefined,@angular-eslint/utils/isNotNullOrUndefined,capitalize,@angular-eslint/utils/capitalize,getAriaAttributeKeys,@angular-eslint/utils/getAriaAttributeKeys,kebabToCamelCase,@angular-eslint/utils/kebabToCamelCase,withoutBracketsAndWhitespaces,@angular-eslint/utils/withoutBracketsAndWhitespaces,getNativeEventNames,@angular-eslint/utils/getNativeEventNames,CommentUtils,@angular-eslint/utils/CommentUtils"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/@angular-eslint/utils/package.json"
              }
            ],
            "concludedValue": "node_modules/@angular-eslint/utils/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "dist/rules/component-class-suffix.js",
            "line": 4
          },
          {
            "location": "dist/rules/component-max-inline-declarations.js",
            "line": 4
          },
          {
            "location": "dist/rules/component-selector.js",
            "line": 4
          },
          {
            "location": "dist/rules/consistent-component-styles.js",
            "line": 4
          },
          {
            "location": "dist/rules/contextual-decorator.js",
            "line": 4
          },
          {
            "location": "dist/rules/contextual-lifecycle.js",
            "line": 4
          },
          {
            "location": "dist/rules/directive-class-suffix.js",
            "line": 4
          },
          {
            "location": "dist/rules/directive-selector.js",
            "line": 4
          },
          {
            "location": "dist/rules/no-async-lifecycle-method.js",
            "line": 4
          },
          {
            "location": "dist/rules/no-conflicting-lifecycle.js",
            "line": 4
          },
          {
            "location": "dist/rules/no-duplicates-in-metadata-arrays.js",
            "line": 4
          },
          {
            "location": "dist/rules/no-empty-lifecycle-method.js",
            "line": 4
          },
          {
            "location": "dist/rules/no-implicit-take-until-destroyed.js",
            "line": 4
          },
          {
            "location": "dist/rules/no-input-prefix.js",
            "line": 4
          },
          {
            "location": "dist/rules/no-input-rename.js",
            "line": 4
          },
          {
            "location": "dist/rules/no-inputs-metadata-property.js",
            "line": 4
          },
          {
            "location": "dist/rules/no-lifecycle-call.js",
            "line": 4
          },
          {
            "location": "dist/rules/no-output-native.js",
            "line": 4
          },
          {
            "location": "dist/rules/no-output-on-prefix.js",
            "line": 4
          },
          {
            "location": "dist/rules/no-output-rename.js",
            "line": 4
          },
          {
            "location": "dist/rules/no-outputs-metadata-property.js",
            "line": 4
          },
          {
            "location": "dist/rules/no-pipe-impure.js",
            "line": 4
          },
          {
            "location": "dist/rules/no-queries-metadata-property.js",
            "line": 4
          },
          {
            "location": "dist/rules/pipe-prefix.js",
            "line": 4
          },
          {
            "location": "dist/rules/prefer-host-metadata-property.js",
            "line": 4
          },
          {
            "location": "dist/rules/prefer-inject.js",
            "line": 4
          },
          {
            "location": "dist/rules/prefer-on-push-component-change-detection.js",
            "line": 4
          },
          {
            "location": "dist/rules/prefer-output-emitter-ref.js",
            "line": 4
          },
          {
            "location": "dist/rules/prefer-output-readonly.js",
            "line": 4
          },
          {
            "location": "dist/rules/prefer-signal-model.js",
            "line": 4
          },
          {
            "location": "dist/rules/prefer-signals.js",
            "line": 4
          },
          {
            "location": "dist/rules/prefer-standalone.js",
            "line": 4
          },
          {
            "location": "dist/rules/relative-url-prefix.js",
            "line": 4
          },
          {
            "location": "dist/rules/require-lifecycle-on-prototype.js",
            "line": 6
          },
          {
            "location": "dist/rules/sort-keys-in-type-decorator.js",
            "line": 4
          },
          {
            "location": "dist/rules/sort-lifecycle-methods.js",
            "line": 4
          },
          {
            "location": "dist/rules/use-component-selector.js",
            "line": 4
          },
          {
            "location": "dist/rules/use-component-view-encapsulation.js",
            "line": 4
          },
          {
            "location": "dist/rules/use-injectable-provided-in.js",
            "line": 4
          },
          {
            "location": "dist/rules/use-lifecycle-interface.js",
            "line": 4
          },
          {
            "location": "dist/rules/use-pipe-transform-interface.js",
            "line": 4
          },
          {
            "location": "src/rules/component-class-suffix.ts",
            "line": 5
          },
          {
            "location": "src/rules/component-class-suffix.ts",
            "line": 51
          },
          {
            "location": "src/rules/component-class-suffix.ts",
            "line": 60
          },
          {
            "location": "src/rules/component-max-inline-declarations.ts",
            "line": 1
          },
          {
            "location": "src/rules/component-max-inline-declarations.ts",
            "line": 20
          },
          {
            "location": "src/rules/component-max-inline-declarations.ts",
            "line": 24
          },
          {
            "location": "src/rules/component-max-inline-declarations.ts",
            "line": 92
          },
          {
            "location": "src/rules/component-max-inline-declarations.ts",
            "line": 116
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 6
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 128
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 132
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 141
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 146
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 156
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 172
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 205
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 209
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 211
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 223
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 231
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 234
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 245
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 247
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 257
          },
          {
            "location": "src/rules/component-selector.ts",
            "line": 263
          },
          {
            "location": "src/rules/consistent-component-styles.ts",
            "line": 1
          },
          {
            "location": "src/rules/consistent-component-styles.ts",
            "line": 62
          },
          {
            "location": "src/rules/consistent-component-styles.ts",
            "line": 77
          },
          {
            "location": "src/rules/consistent-component-styles.ts",
            "line": 105
          },
          {
            "location": "src/rules/consistent-component-styles.ts",
            "line": 122
          },
          {
            "location": "src/rules/contextual-decorator.ts",
            "line": 1
          },
          {
            "location": "src/rules/contextual-decorator.ts",
            "line": 49
          },
          {
            "location": "src/rules/contextual-decorator.ts",
            "line": 59
          },
          {
            "location": "src/rules/contextual-decorator.ts",
            "line": 75
          },
          {
            "location": "src/rules/contextual-decorator.ts",
            "line": 77
          },
          {
            "location": "src/rules/contextual-lifecycle.ts",
            "line": 1
          },
          {
            "location": "src/rules/contextual-lifecycle.ts",
            "line": 32
          },
          {
            "location": "src/rules/contextual-lifecycle.ts",
            "line": 35
          },
          {
            "location": "src/rules/contextual-lifecycle.ts",
            "line": 39
          },
          {
            "location": "src/rules/directive-class-suffix.ts",
            "line": 5
          },
          {
            "location": "src/rules/directive-class-suffix.ts",
            "line": 44
          },
          {
            "location": "src/rules/directive-class-suffix.ts",
            "line": 52
          },
          {
            "location": "src/rules/directive-class-suffix.ts",
            "line": 54
          },
          {
            "location": "src/rules/directive-class-suffix.ts",
            "line": 69
          },
          {
            "location": "src/rules/directive-selector.ts",
            "line": 6
          },
          {
            "location": "src/rules/directive-selector.ts",
            "line": 118
          },
          {
            "location": "src/rules/directive-selector.ts",
            "line": 122
          },
          {
            "location": "src/rules/directive-selector.ts",
            "line": 131
          },
          {
            "location": "src/rules/directive-selector.ts",
            "line": 136
          },
          {
            "location": "src/rules/directive-selector.ts",
            "line": 146
          },
          {
            "location": "src/rules/directive-selector.ts",
            "line": 155
          },
          {
            "location": "src/rules/directive-selector.ts",
            "line": 169
          },
          {
            "location": "src/rules/directive-selector.ts",
            "line": 173
          },
          {
            "location": "src/rules/directive-selector.ts",
            "line": 180
          },
          {
            "location": "src/rules/directive-selector.ts",
            "line": 184
          },
          {
            "location": "src/rules/directive-selector.ts",
            "line": 186
          },
          {
            "location": "src/rules/no-async-lifecycle-method.ts",
            "line": 1
          },
          {
            "location": "src/rules/no-async-lifecycle-method.ts",
            "line": 23
          },
          {
            "location": "src/rules/no-async-lifecycle-method.ts",
            "line": 31
          },
          {
            "location": "src/rules/no-async-lifecycle-method.ts",
            "line": 36
          },
          {
            "location": "src/rules/no-conflicting-lifecycle.ts",
            "line": 1
          },
          {
            "location": "src/rules/no-conflicting-lifecycle.ts",
            "line": 40
          },
          {
            "location": "src/rules/no-conflicting-lifecycle.ts",
            "line": 49
          },
          {
            "location": "src/rules/no-conflicting-lifecycle.ts",
            "line": 52
          },
          {
            "location": "src/rules/no-conflicting-lifecycle.ts",
            "line": 54
          },
          {
            "location": "src/rules/no-conflicting-lifecycle.ts",
            "line": 68
          },
          {
            "location": "src/rules/no-conflicting-lifecycle.ts",
            "line": 77
          },
          {
            "location": "src/rules/no-conflicting-lifecycle.ts",
            "line": 81
          },
          {
            "location": "src/rules/no-duplicates-in-metadata-arrays.ts",
            "line": 1
          },
          {
            "location": "src/rules/no-duplicates-in-metadata-arrays.ts",
            "line": 27
          },
          {
            "location": "src/rules/no-duplicates-in-metadata-arrays.ts",
            "line": 34
          },
          {
            "location": "src/rules/no-duplicates-in-metadata-arrays.ts",
            "line": 38
          },
          {
            "location": "src/rules/no-empty-lifecycle-method.ts",
            "line": 7
          },
          {
            "location": "src/rules/no-empty-lifecycle-method.ts",
            "line": 36
          },
          {
            "location": "src/rules/no-empty-lifecycle-method.ts",
            "line": 44
          },
          {
            "location": "src/rules/no-empty-lifecycle-method.ts",
            "line": 49
          },
          {
            "location": "src/rules/no-empty-lifecycle-method.ts",
            "line": 51
          },
          {
            "location": "src/rules/no-empty-lifecycle-method.ts",
            "line": 66
          },
          {
            "location": "src/rules/no-empty-lifecycle-method.ts",
            "line": 67
          },
          {
            "location": "src/rules/no-empty-lifecycle-method.ts",
            "line": 80
          },
          {
            "location": "src/rules/no-empty-lifecycle-method.ts",
            "line": 88
          },
          {
            "location": "src/rules/no-implicit-take-until-destroyed.ts",
            "line": 1
          },
          {
            "location": "src/rules/no-implicit-take-until-destroyed.ts",
            "line": 57
          },
          {
            "location": "src/rules/no-implicit-take-until-destroyed.ts",
            "line": 60
          },
          {
            "location": "src/rules/no-implicit-take-until-destroyed.ts",
            "line": 70
          },
          {
            "location": "src/rules/no-implicit-take-until-destroyed.ts",
            "line": 99
          },
          {
            "location": "src/rules/no-input-prefix.ts",
            "line": 5
          },
          {
            "location": "src/rules/no-input-prefix.ts",
            "line": 46
          },
          {
            "location": "src/rules/no-input-prefix.ts",
            "line": 53
          },
          {
            "location": "src/rules/no-input-prefix.ts",
            "line": 71
          },
          {
            "location": "src/rules/no-input-prefix.ts",
            "line": 81
          },
          {
            "location": "src/rules/no-input-prefix.ts",
            "line": 88
          },
          {
            "location": "src/rules/no-input-prefix.ts",
            "line": 91
          },
          {
            "location": "src/rules/no-input-prefix.ts",
            "line": 98
          },
          {
            "location": "src/rules/no-input-prefix.ts",
            "line": 101
          },
          {
            "location": "src/rules/no-input-prefix.ts",
            "line": 102
          },
          {
            "location": "src/rules/no-input-prefix.ts",
            "line": 107
          },
          {
            "location": "src/rules/no-input-prefix.ts",
            "line": 120
          },
          {
            "location": "src/rules/no-input-prefix.ts",
            "line": 128
          },
          {
            "location": "src/rules/no-input-prefix.ts",
            "line": 143
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 8
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 58
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 65
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 73
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 79
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 91
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 92
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 99
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 109
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 114
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 118
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 205
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 213
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 223
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 224
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 231
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 243
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 267
          },
          {
            "location": "src/rules/no-input-rename.ts",
            "line": 281
          },
          {
            "location": "src/rules/no-inputs-metadata-property.ts",
            "line": 1
          },
          {
            "location": "src/rules/no-inputs-metadata-property.ts",
            "line": 29
          },
          {
            "location": "src/rules/no-inputs-metadata-property.ts",
            "line": 40
          },
          {
            "location": "src/rules/no-inputs-metadata-property.ts",
            "line": 45
          },
          {
            "location": "src/rules/no-lifecycle-call.ts",
            "line": 1
          },
          {
            "location": "src/rules/no-lifecycle-call.ts",
            "line": 24
          },
          {
            "location": "src/rules/no-lifecycle-call.ts",
            "line": 33
          },
          {
            "location": "src/rules/no-lifecycle-call.ts",
            "line": 40
          },
          {
            "location": "src/rules/no-lifecycle-call.ts",
            "line": 41
          },
          {
            "location": "src/rules/no-lifecycle-call.ts",
            "line": 64
          },
          {
            "location": "src/rules/no-output-native.ts",
            "line": 5
          },
          {
            "location": "src/rules/no-output-native.ts",
            "line": 30
          },
          {
            "location": "src/rules/no-output-native.ts",
            "line": 41
          },
          {
            "location": "src/rules/no-output-on-prefix.ts",
            "line": 1
          },
          {
            "location": "src/rules/no-output-on-prefix.ts",
            "line": 37
          },
          {
            "location": "src/rules/no-output-rename.ts",
            "line": 6
          },
          {
            "location": "src/rules/no-output-rename.ts",
            "line": 47
          },
          {
            "location": "src/rules/no-output-rename.ts",
            "line": 53
          },
          {
            "location": "src/rules/no-output-rename.ts",
            "line": 65
          },
          {
            "location": "src/rules/no-output-rename.ts",
            "line": 66
          },
          {
            "location": "src/rules/no-output-rename.ts",
            "line": 74
          },
          {
            "location": "src/rules/no-output-rename.ts",
            "line": 79
          },
          {
            "location": "src/rules/no-output-rename.ts",
            "line": 83
          },
          {
            "location": "src/rules/no-output-rename.ts",
            "line": 152
          },
          {
            "location": "src/rules/no-output-rename.ts",
            "line": 160
          },
          {
            "location": "src/rules/no-output-rename.ts",
            "line": 171
          },
          {
            "location": "src/rules/no-output-rename.ts",
            "line": 172
          },
          {
            "location": "src/rules/no-output-rename.ts",
            "line": 184
          },
          {
            "location": "src/rules/no-output-rename.ts",
            "line": 201
          },
          {
            "location": "src/rules/no-output-rename.ts",
            "line": 215
          },
          {
            "location": "src/rules/no-outputs-metadata-property.ts",
            "line": 1
          },
          {
            "location": "src/rules/no-outputs-metadata-property.ts",
            "line": 29
          },
          {
            "location": "src/rules/no-outputs-metadata-property.ts",
            "line": 40
          },
          {
            "location": "src/rules/no-outputs-metadata-property.ts",
            "line": 45
          },
          {
            "location": "src/rules/no-pipe-impure.ts",
            "line": 1
          },
          {
            "location": "src/rules/no-pipe-impure.ts",
            "line": 29
          },
          {
            "location": "src/rules/no-pipe-impure.ts",
            "line": 41
          },
          {
            "location": "src/rules/no-queries-metadata-property.ts",
            "line": 1
          },
          {
            "location": "src/rules/no-queries-metadata-property.ts",
            "line": 29
          },
          {
            "location": "src/rules/pipe-prefix.ts",
            "line": 6
          },
          {
            "location": "src/rules/pipe-prefix.ts",
            "line": 58
          },
          {
            "location": "src/rules/pipe-prefix.ts",
            "line": 82
          },
          {
            "location": "src/rules/pipe-prefix.ts",
            "line": 85
          },
          {
            "location": "src/rules/pipe-prefix.ts",
            "line": 100
          },
          {
            "location": "src/rules/pipe-prefix.ts",
            "line": 111
          },
          {
            "location": "src/rules/prefer-host-metadata-property.ts",
            "line": 1
          },
          {
            "location": "src/rules/prefer-inject.ts",
            "line": 1
          },
          {
            "location": "src/rules/prefer-inject.ts",
            "line": 27
          },
          {
            "location": "src/rules/prefer-inject.ts",
            "line": 50
          },
          {
            "location": "src/rules/prefer-inject.ts",
            "line": 89
          },
          {
            "location": "src/rules/prefer-on-push-component-change-detection.ts",
            "line": 6
          },
          {
            "location": "src/rules/prefer-on-push-component-change-detection.ts",
            "line": 35
          },
          {
            "location": "src/rules/prefer-on-push-component-change-detection.ts",
            "line": 56
          },
          {
            "location": "src/rules/prefer-on-push-component-change-detection.ts",
            "line": 58
          },
          {
            "location": "src/rules/prefer-on-push-component-change-detection.ts",
            "line": 64
          },
          {
            "location": "src/rules/prefer-on-push-component-change-detection.ts",
            "line": 71
          },
          {
            "location": "src/rules/prefer-on-push-component-change-detection.ts",
            "line": 77
          },
          {
            "location": "src/rules/prefer-on-push-component-change-detection.ts",
            "line": 93
          },
          {
            "location": "src/rules/prefer-on-push-component-change-detection.ts",
            "line": 97
          },
          {
            "location": "src/rules/prefer-output-emitter-ref.ts",
            "line": 1
          },
          {
            "location": "src/rules/prefer-output-readonly.ts",
            "line": 1
          },
          {
            "location": "src/rules/prefer-signal-model.ts",
            "line": 5
          },
          {
            "location": "src/rules/prefer-signal-model.ts",
            "line": 39
          },
          {
            "location": "src/rules/prefer-signal-model.ts",
            "line": 48
          },
          {
            "location": "src/rules/prefer-signal-model.ts",
            "line": 68
          },
          {
            "location": "src/rules/prefer-signals.ts",
            "line": 1
          },
          {
            "location": "src/rules/prefer-standalone.ts",
            "line": 1
          },
          {
            "location": "src/rules/prefer-standalone.ts",
            "line": 32
          },
          {
            "location": "src/rules/prefer-standalone.ts",
            "line": 40
          },
          {
            "location": "src/rules/prefer-standalone.ts",
            "line": 45
          },
          {
            "location": "src/rules/relative-url-prefix.ts",
            "line": 1
          },
          {
            "location": "src/rules/relative-url-prefix.ts",
            "line": 39
          },
          {
            "location": "src/rules/relative-url-prefix.ts",
            "line": 61
          },
          {
            "location": "src/rules/relative-url-prefix.ts",
            "line": 65
          },
          {
            "location": "src/rules/require-lifecycle-on-prototype.ts",
            "line": 4
          },
          {
            "location": "src/rules/require-lifecycle-on-prototype.ts",
            "line": 13
          },
          {
            "location": "src/rules/sort-keys-in-type-decorator.ts",
            "line": 1
          },
          {
            "location": "src/rules/sort-keys-in-type-decorator.ts",
            "line": 132
          },
          {
            "location": "src/rules/sort-keys-in-type-decorator.ts",
            "line": 137
          },
          {
            "location": "src/rules/sort-keys-in-type-decorator.ts",
            "line": 264
          },
          {
            "location": "src/rules/sort-keys-in-type-decorator.ts",
            "line": 280
          },
          {
            "location": "src/rules/sort-keys-in-type-decorator.ts",
            "line": 287
          },
          {
            "location": "src/rules/sort-lifecycle-methods.ts",
            "line": 1
          },
          {
            "location": "src/rules/sort-lifecycle-methods.ts",
            "line": 29
          },
          {
            "location": "src/rules/sort-lifecycle-methods.ts",
            "line": 32
          },
          {
            "location": "src/rules/sort-lifecycle-methods.ts",
            "line": 40
          },
          {
            "location": "src/rules/sort-lifecycle-methods.ts",
            "line": 45
          },
          {
            "location": "src/rules/sort-lifecycle-methods.ts",
            "line": 46
          },
          {
            "location": "src/rules/use-component-selector.ts",
            "line": 1
          },
          {
            "location": "src/rules/use-component-selector.ts",
            "line": 26
          },
          {
            "location": "src/rules/use-component-selector.ts",
            "line": 30
          },
          {
            "location": "src/rules/use-component-selector.ts",
            "line": 31
          },
          {
            "location": "src/rules/use-component-view-encapsulation.ts",
            "line": 6
          },
          {
            "location": "src/rules/use-component-view-encapsulation.ts",
            "line": 36
          },
          {
            "location": "src/rules/use-component-view-encapsulation.ts",
            "line": 51
          },
          {
            "location": "src/rules/use-component-view-encapsulation.ts",
            "line": 54
          },
          {
            "location": "src/rules/use-component-view-encapsulation.ts",
            "line": 59
          },
          {
            "location": "src/rules/use-injectable-provided-in.ts",
            "line": 1
          },
          {
            "location": "src/rules/use-injectable-provided-in.ts",
            "line": 37
          },
          {
            "location": "src/rules/use-injectable-provided-in.ts",
            "line": 50
          },
          {
            "location": "src/rules/use-injectable-provided-in.ts",
            "line": 55
          },
          {
            "location": "src/rules/use-injectable-provided-in.ts",
            "line": 57
          },
          {
            "location": "src/rules/use-lifecycle-interface.ts",
            "line": 6
          },
          {
            "location": "src/rules/use-lifecycle-interface.ts",
            "line": 31
          },
          {
            "location": "src/rules/use-lifecycle-interface.ts",
            "line": 46
          },
          {
            "location": "src/rules/use-lifecycle-interface.ts",
            "line": 54
          },
          {
            "location": "src/rules/use-lifecycle-interface.ts",
            "line": 58
          },
          {
            "location": "src/rules/use-lifecycle-interface.ts",
            "line": 71
          },
          {
            "location": "src/rules/use-lifecycle-interface.ts",
            "line": 73
          },
          {
            "location": "src/rules/use-pipe-transform-interface.ts",
            "line": 1
          },
          {
            "location": "src/rules/use-pipe-transform-interface.ts",
            "line": 35
          },
          {
            "location": "src/rules/use-pipe-transform-interface.ts",
            "line": 41
          }
        ]
      },
      "tags": [
        "framework"
      ]
    },
    {
      "group": "@angular-eslint",
      "name": "test-utils",
      "version": "21.3.0",
      "scope": "required",
      "licenses": [
        {
          "license": {
            "id": "MIT",
            "url": "https://opensource.org/licenses/MIT",
            "properties": [
              {
                "name": "cdx:license:category",
                "value": "Permissive"
              },
              {
                "name": "cdx:license:foss",
                "value": "true"
              },
              {
                "name": "cdx:license:osiApproved",
                "value": "true"
              },
              {
                "name": "cdx:license:fsfLibre",
                "value": "true"
              },
              {
                "name": "cdx:license:deprecated",
                "value": "false"
              }
            ]
          }
        }
      ],
      "purl": "pkg:npm/%40angular-eslint/test-utils@21.3.0",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/angular-eslint/angular-eslint.git"
        }
      ],
      "type": "framework",
      "bom-ref": "pkg:npm/@angular-eslint/test-utils@21.3.0",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@angular-eslint/test-utils/package.json"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/@angular-eslint/test-utils/package.json"
              }
            ],
            "concludedValue": "node_modules/@angular-eslint/test-utils/package.json"
          }
        ]
      },
      "tags": [
        "framework"
      ]
    },
    {
      "group": "@angular-eslint",
      "name": "bundled-angular-compiler",
      "version": "21.3.0",
      "description": "A CJS bundled version of @angular/compiler",
      "scope": "required",
      "licenses": [
        {
          "license": {
            "id": "MIT",
            "url": "https://opensource.org/licenses/MIT",
            "properties": [
              {
                "name": "cdx:license:category",
                "value": "Permissive"
              },
              {
                "name": "cdx:license:foss",
                "value": "true"
              },
              {
                "name": "cdx:license:osiApproved",
                "value": "true"
              },
              {
                "name": "cdx:license:fsfLibre",
                "value": "true"
              },
              {
                "name": "cdx:license:deprecated",
                "value": "false"
              }
            ]
          }
        }
      ],
      "purl": "pkg:npm/%40angular-eslint/bundled-angular-compiler@21.3.0",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/angular-eslint/angular-eslint.git"
        }
      ],
      "type": "framework",
      "bom-ref": "pkg:npm/@angular-eslint/bundled-angular-compiler@21.3.0",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@angular-eslint/bundled-angular-compiler/package.json"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/@angular-eslint/bundled-angular-compiler/package.json"
              }
            ],
            "concludedValue": "node_modules/@angular-eslint/bundled-angular-compiler/package.json"
          }
        ]
      },
      "tags": [
        "framework"
      ]
    }
  ],
  "dependencies": [],
  "annotations": [
    {
      "bom-ref": "metadata-annotations",
      "subjects": [
        "pkg:npm/@angular-eslint/eslint-plugin@21.3.0"
      ],
      "annotator": {
        "component": {
          "group": "@cyclonedx",
          "name": "cdxgen",
          "version": "12.8.4",
          "purl": "pkg:npm/%40cyclonedx/cdxgen@12.8.4",
          "type": "application",
          "bom-ref": "pkg:npm/@cyclonedx/cdxgen@12.8.4",
          "publisher": "OWASP Foundation",
          "authors": [
            {
              "name": "OWASP Foundation"
            }
          ]
        }
      },
      "timestamp": "2026-08-25T13:36:51Z",
      "text": "This Software Bill-of-Materials (SBOM) document was created on Tuesday, August 25, 2026 with cdxgen. The data was captured during the pre-build lifecycle phase without building the application. The document describes an application named 'eslint-plugin' with version '21.3.0'. The package type in this SBOM is npm with 2 purl namespaces described under components. The components were identified from 7 source files."
    }
  ]
}