{
  "bomFormat": "CycloneDX",
  "specVersion": "1.7",
  "serialNumber": "urn:uuid:fce4e3ed-5627-4706-ae37-e6bc49aad6b1",
  "version": 1,
  "metadata": {
    "timestamp": "2026-09-14T04:27:45Z",
    "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": "browser-vm",
      "group": "@garfish",
      "version": "1.19.12",
      "description": "vm-sandbox module.",
      "purl": "pkg:npm/%40garfish/browser-vm@1.19.12",
      "bom-ref": "pkg:npm/@garfish/browser-vm@1.19.12",
      "author": "zhouxiao.shaw <codingzx@gmail.com>",
      "properties": [
        {
          "name": "cdx:npm:scripts",
          "value": "build, dev"
        },
        {
          "name": "cdx:npm:buildScripts",
          "value": "build"
        },
        {
          "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/bytedance/garfish"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bytedance/garfish.git"
        }
      ]
    },
    "properties": [
      {
        "name": "cdx:bom:componentTypes",
        "value": "npm"
      },
      {
        "name": "cdx:bom:componentNamespaces",
        "value": "@garfish"
      },
      {
        "name": "cdx:bom:componentSrcFiles",
        "value": "node_modules/@garfish/core/package.json\\nnode_modules/@garfish/hooks/package.json\\nnode_modules/@garfish/loader/package.json\\nnode_modules/@garfish/test-suite/package.json\\nnode_modules/@garfish/utils/package.json"
      }
    ]
  },
  "components": [
    {
      "authors": [
        {
          "name": "zhouxiao <codingzx@gmail.com>"
        }
      ],
      "group": "@garfish",
      "name": "utils",
      "version": "1.19.12",
      "description": "utils module.",
      "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/%40garfish/utils@1.19.12",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/bytedance/garfish"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bytedance/garfish.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/@garfish/utils@1.19.12",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@garfish/utils/package.json"
        },
        {
          "name": "ImportedModules",
          "value": "@garfish/utils,warn,@garfish/utils/warn,hasOwn,@garfish/utils/hasOwn,makeMap,@garfish/utils/makeMap,isObject,@garfish/utils/isObject,deepMerge,@garfish/utils/deepMerge,evalWithEnv,@garfish/utils/evalWithEnv,safeWrapper,@garfish/utils/safeWrapper,isPlainObject,@garfish/utils/isPlainObject,setDocCurrentScript,@garfish/utils/setDocCurrentScript,nextTick,@garfish/utils/nextTick,isPromise,@garfish/utils/isPromise,isAbsolute,@garfish/utils/isAbsolute,transformUrl,@garfish/utils/transformUrl,toWsProtocol,@garfish/utils/toWsProtocol,findTarget,@garfish/utils/findTarget,safari13Deal,@garfish/utils/safari13Deal,__MockBody__,@garfish/utils/__MockBody__,__MockHead__,@garfish/utils/__MockHead__,getType,@garfish/utils/getType,@garfish/utils/def,DOMApis,@garfish/utils/DOMApis,isJsType,@garfish/utils/isJsType,isCssType,@garfish/utils/isCssType,sourceListTags,@garfish/utils/sourceListTags,__REMOVE_NODE__,@garfish/utils/__REMOVE_NODE__"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/@garfish/utils/package.json"
              }
            ],
            "concludedValue": "node_modules/@garfish/utils/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "dist/esm/index.js",
            "line": 49
          },
          {
            "location": "dist/esm/index.js",
            "line": 63
          },
          {
            "location": "dist/esm/index.js",
            "line": 66
          },
          {
            "location": "dist/esm/index.js",
            "line": 69
          },
          {
            "location": "dist/esm/index.js",
            "line": 72
          },
          {
            "location": "dist/esm/index.js",
            "line": 88
          },
          {
            "location": "dist/esm/index.js",
            "line": 89
          },
          {
            "location": "dist/esm/index.js",
            "line": 139
          },
          {
            "location": "dist/esm/index.js",
            "line": 140
          },
          {
            "location": "dist/esm/index.js",
            "line": 143
          },
          {
            "location": "dist/esm/index.js",
            "line": 183
          },
          {
            "location": "dist/esm/index.js",
            "line": 268
          },
          {
            "location": "dist/esm/index.js",
            "line": 295
          },
          {
            "location": "dist/esm/index.js",
            "line": 320
          },
          {
            "location": "dist/esm/index.js",
            "line": 381
          },
          {
            "location": "dist/esm/index.js",
            "line": 389
          },
          {
            "location": "dist/esm/index.js",
            "line": 395
          },
          {
            "location": "dist/esm/index.js",
            "line": 431
          },
          {
            "location": "dist/esm/index.js",
            "line": 437
          },
          {
            "location": "dist/esm/index.js",
            "line": 453
          },
          {
            "location": "dist/esm/index.js",
            "line": 475
          },
          {
            "location": "dist/esm/index.js",
            "line": 476
          },
          {
            "location": "dist/esm/index.js",
            "line": 490
          },
          {
            "location": "dist/esm/index.js",
            "line": 499
          },
          {
            "location": "dist/esm/index.js",
            "line": 507
          },
          {
            "location": "dist/esm/index.js",
            "line": 544
          },
          {
            "location": "dist/esm/index.js",
            "line": 545
          },
          {
            "location": "dist/esm/index.js",
            "line": 546
          },
          {
            "location": "dist/esm/index.js",
            "line": 561
          },
          {
            "location": "dist/esm/index.js",
            "line": 573
          },
          {
            "location": "dist/esm/index.js",
            "line": 599
          },
          {
            "location": "dist/esm/index.js",
            "line": 603
          },
          {
            "location": "dist/esm/index.js",
            "line": 610
          },
          {
            "location": "dist/esm/index.js",
            "line": 626
          },
          {
            "location": "dist/esm/index.js",
            "line": 662
          },
          {
            "location": "dist/esm/index.js",
            "line": 703
          },
          {
            "location": "dist/esm/index.js",
            "line": 706
          },
          {
            "location": "dist/esm/index.js",
            "line": 912
          },
          {
            "location": "dist/esm/index.js",
            "line": 948
          },
          {
            "location": "dist/esm/index.js",
            "line": 949
          },
          {
            "location": "dist/esm/index.js",
            "line": 971
          },
          {
            "location": "dist/esm/index.js",
            "line": 972
          },
          {
            "location": "dist/esm/index.js",
            "line": 1009
          },
          {
            "location": "dist/esm/index.js",
            "line": 1012
          },
          {
            "location": "dist/esm/index.js",
            "line": 1030
          },
          {
            "location": "dist/esm/index.js",
            "line": 1036
          },
          {
            "location": "dist/esm/index.js",
            "line": 1045
          },
          {
            "location": "dist/esm/index.js",
            "line": 1058
          },
          {
            "location": "dist/esm/index.js",
            "line": 1061
          },
          {
            "location": "dist/esm/index.js",
            "line": 1080
          },
          {
            "location": "dist/esm/index.js",
            "line": 1084
          },
          {
            "location": "dist/esm/index.js",
            "line": 1172
          },
          {
            "location": "dist/esm/index.js",
            "line": 1177
          },
          {
            "location": "dist/esm/index.js",
            "line": 1186
          },
          {
            "location": "dist/esm/index.js",
            "line": 1191
          },
          {
            "location": "dist/esm/index.js",
            "line": 1203
          },
          {
            "location": "dist/esm/index.js",
            "line": 1204
          },
          {
            "location": "dist/esm/index.js",
            "line": 1247
          },
          {
            "location": "dist/esm/index.js",
            "line": 1255
          },
          {
            "location": "dist/esm/index.js",
            "line": 1328
          },
          {
            "location": "dist/esm/index.js",
            "line": 1342
          },
          {
            "location": "dist/esm/index.js",
            "line": 1391
          },
          {
            "location": "dist/esm/index.js",
            "line": 1401
          },
          {
            "location": "dist/esm/index.js",
            "line": 1454
          },
          {
            "location": "dist/esm/index.js",
            "line": 1466
          },
          {
            "location": "dist/esm/index.js",
            "line": 1469
          },
          {
            "location": "dist/esm/index.js",
            "line": 1475
          },
          {
            "location": "dist/esm/index.js",
            "line": 1487
          },
          {
            "location": "dist/esm/index.js",
            "line": 1536
          },
          {
            "location": "dist/esm/index.js",
            "line": 1542
          },
          {
            "location": "dist/esm/index.js",
            "line": 1543
          },
          {
            "location": "dist/esm/index.js",
            "line": 1573
          },
          {
            "location": "dist/esm/index.js",
            "line": 1610
          },
          {
            "location": "dist/esm/index.js",
            "line": 1613
          },
          {
            "location": "dist/esm/index.js",
            "line": 1614
          },
          {
            "location": "dist/esm/index.js",
            "line": 1666
          },
          {
            "location": "dist/esm/index.js",
            "line": 1688
          },
          {
            "location": "dist/esm/index.js",
            "line": 1714
          },
          {
            "location": "dist/esm/index.js",
            "line": 1735
          },
          {
            "location": "dist/esm/index.js",
            "line": 1779
          },
          {
            "location": "dist/esm/index.js",
            "line": 1791
          },
          {
            "location": "dist/esm/index.js",
            "line": 1797
          },
          {
            "location": "dist/esm/index.js",
            "line": 1825
          },
          {
            "location": "dist/esm/index.js",
            "line": 1840
          },
          {
            "location": "dist/index.js",
            "line": 76
          },
          {
            "location": "dist/index.js",
            "line": 80
          },
          {
            "location": "dist/index.js",
            "line": 83
          },
          {
            "location": "dist/index.js",
            "line": 86
          },
          {
            "location": "dist/index.js",
            "line": 89
          },
          {
            "location": "dist/index.js",
            "line": 442
          },
          {
            "location": "dist/index.js",
            "line": 547
          },
          {
            "location": "dist/index.js",
            "line": 706
          },
          {
            "location": "dist/index.js",
            "line": 915
          },
          {
            "location": "dist/index.js",
            "line": 937
          },
          {
            "location": "dist/index.js",
            "line": 1443
          },
          {
            "location": "src/dynamicNode/index.ts",
            "line": 1
          },
          {
            "location": "src/dynamicNode/index.ts",
            "line": 16
          },
          {
            "location": "src/dynamicNode/index.ts",
            "line": 36
          },
          {
            "location": "src/dynamicNode/index.ts",
            "line": 107
          },
          {
            "location": "src/dynamicNode/index.ts",
            "line": 119
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 16
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 21
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 55
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 56
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 102
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 105
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 127
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 136
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 145
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 165
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 169
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 192
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 199
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 301
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 306
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 322
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 327
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 341
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 342
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 407
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 417
          },
          {
            "location": "src/modules/history.ts",
            "line": 1
          },
          {
            "location": "src/modules/history.ts",
            "line": 5
          },
          {
            "location": "src/modules/history.ts",
            "line": 13
          },
          {
            "location": "src/modules/network.ts",
            "line": 7
          },
          {
            "location": "src/modules/network.ts",
            "line": 19
          },
          {
            "location": "src/modules/network.ts",
            "line": 38
          },
          {
            "location": "src/modules/network.ts",
            "line": 66
          },
          {
            "location": "src/modules/network.ts",
            "line": 67
          },
          {
            "location": "src/modules/network.ts",
            "line": 84
          },
          {
            "location": "src/modules/network.ts",
            "line": 93
          },
          {
            "location": "src/modules/network.ts",
            "line": 101
          },
          {
            "location": "src/modules/uiEvent.ts",
            "line": 1
          },
          {
            "location": "src/modules/uiEvent.ts",
            "line": 8
          },
          {
            "location": "src/pluginify.ts",
            "line": 2
          },
          {
            "location": "src/pluginify.ts",
            "line": 47
          },
          {
            "location": "src/proxyInterceptor/document.ts",
            "line": 9
          },
          {
            "location": "src/proxyInterceptor/document.ts",
            "line": 15
          },
          {
            "location": "src/proxyInterceptor/document.ts",
            "line": 17
          },
          {
            "location": "src/proxyInterceptor/document.ts",
            "line": 35
          },
          {
            "location": "src/proxyInterceptor/document.ts",
            "line": 53
          },
          {
            "location": "src/proxyInterceptor/document.ts",
            "line": 80
          },
          {
            "location": "src/proxyInterceptor/document.ts",
            "line": 88
          },
          {
            "location": "src/proxyInterceptor/document.ts",
            "line": 98
          },
          {
            "location": "src/proxyInterceptor/document.ts",
            "line": 115
          },
          {
            "location": "src/proxyInterceptor/document.ts",
            "line": 166
          },
          {
            "location": "src/proxyInterceptor/global.ts",
            "line": 1
          },
          {
            "location": "src/proxyInterceptor/global.ts",
            "line": 25
          },
          {
            "location": "src/proxyInterceptor/global.ts",
            "line": 40
          },
          {
            "location": "src/proxyInterceptor/global.ts",
            "line": 50
          },
          {
            "location": "src/proxyInterceptor/global.ts",
            "line": 63
          },
          {
            "location": "src/proxyInterceptor/global.ts",
            "line": 133
          },
          {
            "location": "src/proxyInterceptor/global.ts",
            "line": 139
          },
          {
            "location": "src/proxyInterceptor/global.ts",
            "line": 140
          },
          {
            "location": "src/proxyInterceptor/shared.ts",
            "line": 1
          },
          {
            "location": "src/proxyInterceptor/shared.ts",
            "line": 27
          },
          {
            "location": "src/proxyInterceptor/shared.ts",
            "line": 74
          },
          {
            "location": "src/proxyInterceptor/shared.ts",
            "line": 108
          },
          {
            "location": "src/proxyInterceptor/shared.ts",
            "line": 188
          },
          {
            "location": "src/sandbox.ts",
            "line": 12
          },
          {
            "location": "src/sandbox.ts",
            "line": 54
          },
          {
            "location": "src/sandbox.ts",
            "line": 107
          },
          {
            "location": "src/sandbox.ts",
            "line": 108
          },
          {
            "location": "src/sandbox.ts",
            "line": 113
          },
          {
            "location": "src/sandbox.ts",
            "line": 114
          },
          {
            "location": "src/sandbox.ts",
            "line": 176
          },
          {
            "location": "src/sandbox.ts",
            "line": 205
          },
          {
            "location": "src/sandbox.ts",
            "line": 232
          },
          {
            "location": "src/sandbox.ts",
            "line": 258
          },
          {
            "location": "src/sandbox.ts",
            "line": 325
          },
          {
            "location": "src/sandbox.ts",
            "line": 343
          },
          {
            "location": "src/sandbox.ts",
            "line": 356
          },
          {
            "location": "src/sandbox.ts",
            "line": 392
          },
          {
            "location": "src/utils.ts",
            "line": 1
          },
          {
            "location": "src/utils.ts",
            "line": 28
          },
          {
            "location": "src/utils.ts",
            "line": 29
          },
          {
            "location": "src/utils.ts",
            "line": 100
          },
          {
            "location": "src/utils.ts",
            "line": 101
          },
          {
            "location": "src/utils.ts",
            "line": 106
          },
          {
            "location": "src/utils.ts",
            "line": 154
          }
        ]
      }
    },
    {
      "authors": [
        {
          "name": "zhouxiao <codingzx@gmail.com>"
        }
      ],
      "group": "@garfish",
      "name": "test-suite",
      "version": "1.19.12",
      "description": "garfish test suite.",
      "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/%40garfish/test-suite@1.19.12",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/bytedance/garfish"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bytedance/garfish.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/@garfish/test-suite@1.19.12",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@garfish/test-suite/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/@garfish/test-suite/package.json"
              }
            ],
            "concludedValue": "node_modules/@garfish/test-suite/package.json"
          }
        ]
      },
      "tags": [
        "test"
      ]
    },
    {
      "authors": [
        {
          "name": "chentao.arthur <chentao.arthur@bytedance.com>"
        }
      ],
      "group": "@garfish",
      "name": "loader",
      "version": "1.19.12",
      "description": "loader module.",
      "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/%40garfish/loader@1.19.12",
      "externalReferences": [
        {
          "type": "website",
          "url": "http://garfish.bytedance.com"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bytedance/garfish.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/@garfish/loader@1.19.12",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@garfish/loader/package.json"
        },
        {
          "name": "ImportedModules",
          "value": "@garfish/loader,Loader,@garfish/loader/Loader,StyleManager,@garfish/loader/StyleManager,JavaScriptManager,@garfish/loader/JavaScriptManager,LoaderOptions,@garfish/loader/LoaderOptions"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/@garfish/loader/package.json"
              }
            ],
            "concludedValue": "node_modules/@garfish/loader/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "dist/esm/index.js",
            "line": 52
          },
          {
            "location": "dist/index.js",
            "line": 79
          },
          {
            "location": "src/dynamicNode/processor.ts",
            "line": 1
          },
          {
            "location": "src/sandbox.ts",
            "line": 1
          },
          {
            "location": "src/types.ts",
            "line": 2
          }
        ]
      }
    },
    {
      "authors": [
        {
          "name": "chentao.arthur <chentao.arthur@bytedance.com>"
        }
      ],
      "group": "@garfish",
      "name": "hooks",
      "version": "1.19.12",
      "description": "hooks module.",
      "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/%40garfish/hooks@1.19.12",
      "externalReferences": [
        {
          "type": "website",
          "url": "http://garfish.bytedance.com"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bytedance/garfish.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/@garfish/hooks@1.19.12",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@garfish/hooks/package.json"
        },
        {
          "name": "ImportedModules",
          "value": "@garfish/hooks,SyncHook,@garfish/hooks/SyncHook,SyncWaterfallHook,@garfish/hooks/SyncWaterfallHook,PluginSystem,@garfish/hooks/PluginSystem"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/@garfish/hooks/package.json"
              }
            ],
            "concludedValue": "node_modules/@garfish/hooks/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "dist/esm/index.js",
            "line": 1438
          },
          {
            "location": "dist/index.js",
            "line": 1427
          },
          {
            "location": "src/lifecycle.ts",
            "line": 1
          }
        ]
      }
    },
    {
      "authors": [
        {
          "name": "zhouxiao<codingzx@gmail.com>"
        }
      ],
      "group": "@garfish",
      "name": "core",
      "version": "1.19.12",
      "description": "core module.",
      "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/%40garfish/core@1.19.12",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/bytedance/garfish"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bytedance/garfish.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/@garfish/core@1.19.12",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@garfish/core/package.json"
        },
        {
          "name": "ImportedModules",
          "value": "@garfish/core,interfaces,@garfish/core/interfaces"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/@garfish/core/package.json"
              }
            ],
            "concludedValue": "node_modules/@garfish/core/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "src/lifecycle.ts",
            "line": 2
          },
          {
            "location": "src/pluginify.ts",
            "line": 1
          },
          {
            "location": "src/sandbox.ts",
            "line": 13
          }
        ]
      }
    }
  ],
  "dependencies": [],
  "annotations": [
    {
      "bom-ref": "metadata-annotations",
      "subjects": [
        "pkg:npm/@garfish/browser-vm@1.19.12"
      ],
      "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-09-14T04:27:45Z",
      "text": "This Software Bill-of-Materials (SBOM) document was created on Monday, September 14, 2026 with cdxgen. The data was captured during the pre-build lifecycle phase without building the application. The document describes an application named 'browser-vm' with version '1.19.12'. The package type in this SBOM is npm with a single purl namespace '@garfish' described under components. The components were identified from 5 source files."
    }
  ]
}