{
  "bomFormat": "CycloneDX",
  "specVersion": "1.7",
  "serialNumber": "urn:uuid:087c5435-7de8-42ca-a47e-eadac2fbd9d7",
  "version": 1,
  "metadata": {
    "timestamp": "2026-09-16T19:33:49Z",
    "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": "sanitize-filename",
      "group": "@lazy-node",
      "version": "1.0.15",
      "description": "檔案名稱安全化模組 - 將字串轉換為安全的檔案名稱，移除或替換不安全的字元，支援多種選項來自訂處理方式",
      "purl": "pkg:npm/%40lazy-node/sanitize-filename@1.0.15",
      "bom-ref": "pkg:npm/@lazy-node/sanitize-filename@1.0.15",
      "author": "bluelovers",
      "properties": [
        {
          "name": "cdx:npm:scripts",
          "value": "coverage, test, test:jest, test:jest:coverage, test:jest:snapshot, test:snapshot, test:tsd, preversion, prepublishOnly, ncu, sort-package-json, tsc:showConfig"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "type": "application",
      "licenses": [
        {
          "license": {
            "id": "ISC",
            "url": "https://opensource.org/licenses/ISC",
            "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/bluelovers/ws-iconv/tree/master/packages/@lazy-node/sanitize-filename#readme"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bluelovers/ws-iconv.git"
        }
      ]
    },
    "properties": [
      {
        "name": "cdx:bom:componentTypes",
        "value": "npm"
      },
      {
        "name": "cdx:bom:componentNamespaces",
        "value": "@lazy-node"
      },
      {
        "name": "cdx:bom:componentSrcFiles",
        "value": "node_modules/@lazy-node/windows-unsafe-filename/package.json\\nnode_modules/filenamify/package.json\\nnode_modules/get-random-string/package.json\\nnode_modules/tslib/package.json\\nnode_modules/zero-width/package.json"
      }
    ]
  },
  "components": [
    {
      "authors": [
        {
          "name": "bluelovers"
        }
      ],
      "group": "",
      "name": "zero-width",
      "version": "1.0.29",
      "description": "remove zero-width and some other util about space",
      "scope": "required",
      "licenses": [
        {
          "license": {
            "id": "ISC",
            "url": "https://opensource.org/licenses/ISC",
            "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/zero-width@1.0.29",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/bluelovers/ws-string/tree/master/packages/zero-width#readme"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bluelovers/ws-string.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/zero-width@1.0.29",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/zero-width/package.json"
        },
        {
          "name": "ImportedModules",
          "value": "zero-width,nbspToSpace,zero-width/nbspToSpace,removeBom,zero-width/removeBom,removeZeroWidth,zero-width/removeZeroWidth,trimWithZeroWidth,zero-width/trimWithZeroWidth"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/zero-width/package.json"
              }
            ],
            "concludedValue": "node_modules/zero-width/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "index.js",
            "line": 18
          },
          {
            "location": "index.ts",
            "line": 18
          },
          {
            "location": "index.ts",
            "line": 69
          },
          {
            "location": "index.ts",
            "line": 71
          },
          {
            "location": "index.ts",
            "line": 73
          },
          {
            "location": "index.ts",
            "line": 75
          }
        ]
      }
    },
    {
      "authors": [
        {
          "name": "Microsoft Corp."
        }
      ],
      "group": "",
      "name": "tslib",
      "version": "2.8.1",
      "description": "Runtime library for TypeScript helper functions",
      "scope": "required",
      "licenses": [
        {
          "license": {
            "id": "0BSD",
            "url": "https://opensource.org/licenses/0BSD",
            "properties": [
              {
                "name": "cdx:license:category",
                "value": "Permissive"
              },
              {
                "name": "cdx:license:foss",
                "value": "true"
              },
              {
                "name": "cdx:license:osiApproved",
                "value": "true"
              },
              {
                "name": "cdx:license:fsfLibre",
                "value": "false"
              },
              {
                "name": "cdx:license:deprecated",
                "value": "false"
              }
            ]
          }
        }
      ],
      "purl": "pkg:npm/tslib@2.8.1",
      "externalReferences": [
        {
          "type": "website",
          "url": "https://www.typescriptlang.org/"
        },
        {
          "type": "vcs",
          "url": "https://github.com/Microsoft/tslib.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/tslib@2.8.1",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/tslib/package.json"
        },
        {
          "name": "ImportedModules",
          "value": "tslib"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/tslib/package.json"
              }
            ],
            "concludedValue": "node_modules/tslib/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "index.js",
            "line": 16
          }
        ]
      }
    },
    {
      "authors": [
        {
          "name": "Rhodion Souza Araujo"
        }
      ],
      "group": "",
      "name": "get-random-string",
      "version": "1.0.9",
      "description": "Generate a string with random chars.",
      "scope": "optional",
      "licenses": [
        {
          "license": {
            "id": "ISC",
            "url": "https://opensource.org/licenses/ISC",
            "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/get-random-string@1.0.9",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/Rhodion/get-random-string.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/get-random-string@1.0.9",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/get-random-string/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/get-random-string/package.json"
              }
            ],
            "concludedValue": "node_modules/get-random-string/package.json"
          }
        ]
      }
    },
    {
      "authors": [
        {
          "name": "Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)"
        }
      ],
      "group": "",
      "name": "filenamify",
      "version": "4.3.0",
      "description": "Convert a string to a valid safe filename",
      "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/filenamify@4.3.0",
      "type": "library",
      "bom-ref": "pkg:npm/filenamify@4.3.0",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/filenamify/package.json"
        },
        {
          "name": "ImportedModules",
          "value": "filenamify,filenamify/filenamify,Options,filenamify/filenamify/Options"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/filenamify/package.json"
              }
            ],
            "concludedValue": "node_modules/filenamify/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "index.js",
            "line": 17
          },
          {
            "location": "index.ts",
            "line": 11
          },
          {
            "location": "index.ts",
            "line": 12
          },
          {
            "location": "index.ts",
            "line": 105
          }
        ]
      }
    },
    {
      "authors": [
        {
          "name": "bluelovers"
        }
      ],
      "group": "@lazy-node",
      "name": "windows-unsafe-filename",
      "version": "1.0.16",
      "description": "Windows 不安全檔案名稱檢測模組 - 檢測和處理 Windows 系統中不安全的檔案名稱，支援保留字元和裝置名稱檢測",
      "scope": "required",
      "licenses": [
        {
          "license": {
            "id": "ISC",
            "url": "https://opensource.org/licenses/ISC",
            "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/%40lazy-node/windows-unsafe-filename@1.0.16",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/bluelovers/ws-iconv/tree/master/packages/@lazy-node/windows-unsafe-filename#readme"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bluelovers/ws-iconv.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/@lazy-node/windows-unsafe-filename@1.0.16",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@lazy-node/windows-unsafe-filename/package.json"
        },
        {
          "name": "ImportedModules",
          "value": "@lazy-node/windows-unsafe-filename,newRegExpWindowsUnsafeName,@lazy-node/windows-unsafe-filename/newRegExpWindowsUnsafeName,replaceWindowsUnsafeName,@lazy-node/windows-unsafe-filename/replaceWindowsUnsafeName"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/@lazy-node/windows-unsafe-filename/package.json"
              }
            ],
            "concludedValue": "node_modules/@lazy-node/windows-unsafe-filename/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "index.js",
            "line": 19
          },
          {
            "location": "index.ts",
            "line": 22
          },
          {
            "location": "index.ts",
            "line": 99
          },
          {
            "location": "index.ts",
            "line": 124
          }
        ]
      }
    }
  ],
  "dependencies": [],
  "annotations": [
    {
      "bom-ref": "metadata-annotations",
      "subjects": [
        "pkg:npm/@lazy-node/sanitize-filename@1.0.15"
      ],
      "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-16T19:33:49Z",
      "text": "This Software Bill-of-Materials (SBOM) document was created on Wednesday, September 16, 2026 with cdxgen. The data was captured during the pre-build lifecycle phase without building the application. The document describes an application named 'sanitize-filename' with version '1.0.15'. The package type in this SBOM is npm with a single purl namespace '@lazy-node' described under components. The components were identified from 5 source files."
    }
  ]
}