{
  "repository": "angular/angular",
  "ref": "57905ca4e67cd078629a15f44381d78e748982ea",
  "methods": [
    {
      "slug": "formal",
      "title": "Formal verification and model checking"
    },
    {
      "slug": "static_analysis",
      "title": "Static analysis"
    },
    {
      "slug": "testing",
      "title": "Testing"
    },
    {
      "slug": "formatting",
      "title": "Formatting and hygiene"
    },
    {
      "slug": "supply_chain",
      "title": "Supply chain"
    },
    {
      "slug": "unclassified",
      "title": "Unclassified"
    }
  ],
  "verifications": [
    {
      "tool": "tsc",
      "method": "static_analysis",
      "commands": [
        "tsc --project scripts/tsconfig.json",
        "tsc -p client --noEmit",
        "tsc -p server --noEmit"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/ci.yml",
          "locator": "jobs.lint.steps[7] (Confirm code builds with typescript as expected)"
        },
        {
          "path": "package.json",
          "locator": "scripts.check-tooling-setup"
        },
        {
          "path": ".github/workflows/pr.yml",
          "locator": "jobs.lint.steps[6] (Confirm code builds with typescript as expected)"
        },
        {
          "path": "ngp-vscode-ng-language-service/package.json",
          "locator": "scripts.compile"
        },
        {
          "path": "ngp-vscode-ng-language-service/package.json",
          "locator": "scripts.typecheck"
        },
        {
          "path": "ngp-vscode-ng-language-service/package.json",
          "locator": "scripts.test"
        },
        {
          "path": "adev/package.json",
          "locator": "dependencies: typescript"
        },
        {
          "path": "dev-app/package.json",
          "locator": "devDependencies: typescript"
        },
        {
          "path": "ngp-vscode-ng-language-service/package.json",
          "locator": "devDependencies: typescript"
        },
        {
          "path": "package.json",
          "locator": "dependencies: typescript"
        },
        {
          "path": "vscode-ng-language-service/package.json",
          "locator": "dependencies: typescript"
        }
      ],
      "upstream": "https://github.com/microsoft/TypeScript",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "jest",
      "method": "testing",
      "commands": [],
      "triggers": [],
      "evidence": [
        {
          "path": "packages/zone.js/test/jest/jest.config.js",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/jestjs/jest",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": true
    },
    {
      "tool": "vitest",
      "method": "testing",
      "commands": [],
      "triggers": [],
      "evidence": [
        {
          "path": "dev-app/package.json",
          "locator": "devDependencies: vitest"
        }
      ],
      "upstream": "https://github.com/vitest-dev/vitest",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": true
    },
    {
      "tool": "prettier",
      "method": "formatting",
      "commands": [],
      "triggers": [],
      "evidence": [
        {
          "path": "adev/package.json",
          "locator": "dependencies: prettier"
        },
        {
          "path": "package.json",
          "locator": "devDependencies: prettier"
        },
        {
          "path": ".prettierrc",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/prettier/prettier",
      "docs": "https://prettier.io/docs/cli#exit-codes",
      "exit_codes": {
        "0": "everything formatted",
        "1": "something was not formatted (--check)",
        "2": "prettier error"
      },
      "autofix": true,
      "declared_only": true
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bazel run --config=debug //vscode-ng-language-service/client/src/tests:test"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "vscode-ng-language-service/package.json",
          "locator": "scripts.test:inspect-client"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bazel run --config=debug //vscode-ng-language-service/common/tests:test"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "vscode-ng-language-service/package.json",
          "locator": "scripts.test:inspect-common"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bazel run --config=debug //vscode-ng-language-service/server/src/tests:test"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "vscode-ng-language-service/package.json",
          "locator": "scripts.test:inspect-server"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bazel run --config=debug //vscode-ng-language-service/syntaxes/test:test"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "vscode-ng-language-service/package.json",
          "locator": "scripts.test:inspect-syntaxes"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bazel test --test_output=streamed //vscode-ng-language-service/integration/e2e:test"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "vscode-ng-language-service/package.json",
          "locator": "scripts.test:e2e"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bazel test --test_output=streamed //vscode-ng-language-service/integration/lsp:test"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "vscode-ng-language-service/package.json",
          "locator": "scripts.test:lsp"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bazel test --test_tag_filters=unit_test //vscode-ng-language-service/..."
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "vscode-ng-language-service/package.json",
          "locator": "scripts.test"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bazelisk test"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/ci.yml",
          "locator": "jobs.zone-js.steps[13]"
        },
        {
          "path": "package.json",
          "locator": "scripts.test"
        },
        {
          "path": ".github/workflows/pr.yml",
          "locator": "jobs.zone-js.steps[12]"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bazelisk test -- //... -//integration/... -//adev/... -//vscode-ng-language-service/... -//devtools/... -//modules/ssr-benchmarks/..."
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/ci.yml",
          "locator": "jobs.test.steps[4] (Run CI tests for framework)"
        },
        {
          "path": "package.json",
          "locator": "scripts.test:ci"
        },
        {
          "path": ".github/workflows/pr.yml",
          "locator": "jobs.test.steps[4] (Run CI tests for framework)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bazelisk test -- //devtools/..."
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.devtools:test:unit"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bazelisk test -- //integration/..."
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/ci.yml",
          "locator": "jobs.integration-tests.steps[4] (Run integration CI tests for framework)"
        },
        {
          "path": "package.json",
          "locator": "scripts.integration-tests:ci"
        },
        {
          "path": ".github/workflows/pr.yml",
          "locator": "jobs.integration-tests.steps[4] (Run integration CI tests for framework)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bazelisk test --//devtools/projects/shell-browser/src:flag_browser=chrome -- //devtools/..."
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/ci.yml",
          "locator": "jobs.devtools.steps[4] (Run unit tests)"
        },
        {
          "path": "package.json",
          "locator": "scripts.devtools:test"
        },
        {
          "path": ".github/workflows/pr.yml",
          "locator": "jobs.devtools.steps[4] (Run unit tests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bazelisk test //... --build_tag_filters=tsec --test_tag_filters=tsec"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.test-tsec"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "cypress open --project ./devtools/cypress"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.devtools:e2e:open"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "cypress run --project ./devtools/cypress"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.devtools:test:e2e"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "ibazel test --test_tag_filters=unit_test //vscode-ng-language-service/..."
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "vscode-ng-language-service/package.json",
          "locator": "scripts.test:watch"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node adev/scripts/update-cross-repo-docs/index.mjs"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/cross-repo-adev-docs.yml",
          "locator": "jobs.update_adev_cross_repo_docs.steps[1] (Generate Docs)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node e2e/build-tests.js"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "ngp-vscode-ng-language-service/package.json",
          "locator": "scripts.test"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node e2e/runTests.js"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "ngp-vscode-ng-language-service/package.json",
          "locator": "scripts.test"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node goldens/public-api/manage.js test"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.public-api:check"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node tools/symbol-extractor/run_all_symbols_extractor_tests.js accept"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.symbol-extractor:update"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node tools/symbol-extractor/run_all_symbols_extractor_tests.js test"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.symbol-extractor:check"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "tslint -c tslint.json --project tsconfig-tslint.json"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/ci.yml",
          "locator": "jobs.lint.steps[2] (Check code lint)"
        },
        {
          "path": "package.json",
          "locator": "scripts.tslint"
        },
        {
          "path": ".github/workflows/pr.yml",
          "locator": "jobs.lint.steps[2] (Check code lint)"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    }
  ]
}
