{
  "bomFormat": "CycloneDX",
  "specVersion": "1.7",
  "serialNumber": "urn:uuid:969799a8-c671-42d6-b3a8-599b6a4d5e8e",
  "version": 1,
  "metadata": {
    "timestamp": "2026-07-25T09:31:04Z",
    "tools": {
      "components": [
        {
          "group": "@cyclonedx",
          "name": "cdxgen",
          "version": "12.3.3",
          "purl": "pkg:npm/%40cyclonedx/cdxgen@12.3.3",
          "type": "application",
          "bom-ref": "pkg:npm/@cyclonedx/cdxgen@12.3.3",
          "publisher": "OWASP Foundation",
          "authors": [
            {
              "name": "OWASP Foundation"
            }
          ]
        }
      ]
    },
    "authors": [
      {
        "name": "OWASP Foundation"
      }
    ],
    "lifecycles": [
      {
        "phase": "pre-build"
      }
    ],
    "component": {
      "name": "freeport-async",
      "group": "",
      "version": "2.0.0",
      "description": "Finds an available port for your application to use.",
      "purl": "pkg:npm/freeport-async@2.0.0",
      "bom-ref": "pkg:npm/freeport-async@2.0.0",
      "author": "Expo",
      "properties": [
        {
          "name": "cdx:npm:scripts",
          "value": "test"
        }
      ],
      "type": "application",
      "licenses": [
        {
          "license": {
            "id": "MIT",
            "url": "https://opensource.org/licenses/MIT"
          }
        }
      ],
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/expo/freeport-async/blob/master/README.md"
        },
        {
          "type": "vcs",
          "url": "https://github.com/expo/freeport-async.git"
        }
      ]
    },
    "properties": [
      {
        "name": "cdx:bom:componentTypes",
        "value": "npm"
      },
      {
        "name": "cdx:bom:componentSrcFiles",
        "value": "yarn.lock"
      }
    ]
  },
  "components": [
    {
      "group": "",
      "name": "balanced-match",
      "version": "1.0.0",
      "scope": "optional",
      "hashes": [
        {
          "alg": "SHA-1",
          "content": "89b4d199ab2bee49de164ea02b89ce462d71b767"
        }
      ],
      "purl": "pkg:npm/balanced-match@1.0.0",
      "type": "library",
      "bom-ref": "pkg:npm/balanced-match@1.0.0",
      "properties": [
        {
          "name": "SrcFile",
          "value": "yarn.lock"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 1,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 1,
                "value": "yarn.lock"
              }
            ],
            "concludedValue": "yarn.lock"
          }
        ]
      }
    },
    {
      "group": "",
      "name": "brace-expansion",
      "version": "1.1.11",
      "scope": "optional",
      "hashes": [
        {
          "alg": "SHA-512",
          "content": "882b8f1c3160ac75fb1f6bc423fe71a73d3bcd21c1d344e9ba0aa1998b5598c3bae75f260ae44ca0e60595d101974835f3bb9fa3375a1e058a71815beb5a8688"
        }
      ],
      "purl": "pkg:npm/brace-expansion@1.1.11",
      "type": "library",
      "bom-ref": "pkg:npm/brace-expansion@1.1.11",
      "properties": [
        {
          "name": "SrcFile",
          "value": "yarn.lock"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 1,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 1,
                "value": "yarn.lock"
              }
            ],
            "concludedValue": "yarn.lock"
          }
        ]
      }
    },
    {
      "group": "",
      "name": "concat-map",
      "version": "0.0.1",
      "scope": "optional",
      "hashes": [
        {
          "alg": "SHA-1",
          "content": "d8a96bd77fd68df7793a73036a3ba0d5405d477b"
        }
      ],
      "purl": "pkg:npm/concat-map@0.0.1",
      "type": "library",
      "bom-ref": "pkg:npm/concat-map@0.0.1",
      "properties": [
        {
          "name": "SrcFile",
          "value": "yarn.lock"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 1,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 1,
                "value": "yarn.lock"
              }
            ],
            "concludedValue": "yarn.lock"
          }
        ]
      }
    },
    {
      "group": "",
      "name": "minimatch",
      "version": "3.0.4",
      "scope": "optional",
      "hashes": [
        {
          "alg": "SHA-512",
          "content": "c891d5404872a8f2d44e0b7d07cdcf5eee96debc7832fbc7bd252f4e8a20a70a060ce510fb20eb4741d1a2dfb23827423bbbb8857de959fb7a91604172a87450"
        }
      ],
      "purl": "pkg:npm/minimatch@3.0.4",
      "type": "library",
      "bom-ref": "pkg:npm/minimatch@3.0.4",
      "properties": [
        {
          "name": "SrcFile",
          "value": "yarn.lock"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 1,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 1,
                "value": "yarn.lock"
              }
            ],
            "concludedValue": "yarn.lock"
          }
        ]
      }
    },
    {
      "group": "",
      "name": "project-repl",
      "version": "1.5.0",
      "scope": "optional",
      "hashes": [
        {
          "alg": "SHA-512",
          "content": "b2cf37d69f5d173bfc244a77a852523ac08e93ae99e1a7f0331bf25eb9080a971ee63cadab2aa772e68f26341f54da52ddfc69382c30a84da067701c6eb99d08"
        }
      ],
      "purl": "pkg:npm/project-repl@1.5.0",
      "type": "library",
      "bom-ref": "pkg:npm/project-repl@1.5.0",
      "properties": [
        {
          "name": "SrcFile",
          "value": "yarn.lock"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 1,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 1,
                "value": "yarn.lock"
              }
            ],
            "concludedValue": "yarn.lock"
          }
        ]
      }
    },
    {
      "group": "",
      "name": "recursive-readdir",
      "version": "2.2.2",
      "scope": "optional",
      "hashes": [
        {
          "alg": "SHA-512",
          "content": "9d109c5bd4a3ecdb99c1ad97bc7f5ca3c34f7975018593fb091289b54f9c4ba3d6f45a42205a08e626f4353d59adb36e3e8472d3297209a50bf068a1e0b4b216"
        }
      ],
      "purl": "pkg:npm/recursive-readdir@2.2.2",
      "type": "library",
      "bom-ref": "pkg:npm/recursive-readdir@2.2.2",
      "properties": [
        {
          "name": "SrcFile",
          "value": "yarn.lock"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 1,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 1,
                "value": "yarn.lock"
              }
            ],
            "concludedValue": "yarn.lock"
          }
        ]
      }
    }
  ],
  "dependencies": [
    {
      "ref": "pkg:npm/balanced-match@1.0.0",
      "dependsOn": []
    },
    {
      "ref": "pkg:npm/brace-expansion@1.1.11",
      "dependsOn": [
        "pkg:npm/balanced-match@1.0.0",
        "pkg:npm/concat-map@0.0.1"
      ]
    },
    {
      "ref": "pkg:npm/concat-map@0.0.1",
      "dependsOn": []
    },
    {
      "ref": "pkg:npm/minimatch@3.0.4",
      "dependsOn": [
        "pkg:npm/brace-expansion@1.1.11"
      ]
    },
    {
      "ref": "pkg:npm/project-repl@1.5.0",
      "dependsOn": [
        "pkg:npm/recursive-readdir@2.2.2"
      ]
    },
    {
      "ref": "pkg:npm/recursive-readdir@2.2.2",
      "dependsOn": [
        "pkg:npm/minimatch@3.0.4"
      ]
    },
    {
      "ref": "pkg:npm/freeport-async@2.0.0",
      "dependsOn": [
        "pkg:npm/balanced-match@1.0.0",
        "pkg:npm/brace-expansion@1.1.11",
        "pkg:npm/concat-map@0.0.1",
        "pkg:npm/minimatch@3.0.4",
        "pkg:npm/project-repl@1.5.0",
        "pkg:npm/recursive-readdir@2.2.2"
      ]
    }
  ],
  "annotations": [
    {
      "bom-ref": "metadata-annotations",
      "subjects": [
        "pkg:npm/freeport-async@2.0.0"
      ],
      "annotator": {
        "component": {
          "group": "@cyclonedx",
          "name": "cdxgen",
          "version": "12.3.3",
          "purl": "pkg:npm/%40cyclonedx/cdxgen@12.3.3",
          "type": "application",
          "bom-ref": "pkg:npm/@cyclonedx/cdxgen@12.3.3",
          "publisher": "OWASP Foundation",
          "authors": [
            {
              "name": "OWASP Foundation"
            }
          ]
        }
      },
      "timestamp": "2026-07-25T09:31:04Z",
      "text": "This Software Bill-of-Materials (SBOM) document was created on Saturday, July 25, 2026 with cdxgen. The data was captured during the pre-build lifecycle phase without building the application. The document describes an application named 'freeport-async' with version '2.0.0'."
    }
  ]
}