{
  "bomFormat": "CycloneDX",
  "specVersion": "1.7",
  "serialNumber": "urn:uuid:477b1989-ca60-48a9-85e4-2b35a7f384d1",
  "version": 1,
  "metadata": {
    "timestamp": "2026-09-17T18:44:02Z",
    "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": "str-util",
      "group": "",
      "version": "3.0.4",
      "description": "convert full/half width, Chinese/Japanese number, 中日漢字轉換... others util helper",
      "purl": "pkg:npm/str-util@3.0.4",
      "bom-ref": "pkg:npm/str-util@3.0.4",
      "author": "bluelovers",
      "properties": [
        {
          "name": "cdx:npm:scripts",
          "value": "coverage, test, test:jest, test:jest:coverage, test:jest:snapshot, test:snapshot, test:tsd, npm:publish, npm:publish:lerna, preversion, 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-string/tree/master/packages/str-util#readme"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bluelovers/ws-string.git"
        }
      ]
    },
    "properties": [
      {
        "name": "cdx:bom:componentTypes",
        "value": "npm"
      },
      {
        "name": "cdx:bom:componentNamespaces",
        "value": "@lazy-cjk"
      },
      {
        "name": "cdx:bom:componentSrcFiles",
        "value": "node_modules/@lazy-cjk/fullhalf/package.json\\nnode_modules/@lazy-cjk/japanese/package.json\\nnode_modules/@lazy-cjk/jp-table-comparison/package.json\\nnode_modules/@lazy-cjk/jp-table-convert/package.json\\nnode_modules/@lazy-cjk/str-util-char-code-at/package.json\\nnode_modules/@lazy-cjk/str-util-normalize/package.json\\nnode_modules/@lazy-cjk/str-util-trim/package.json\\nnode_modules/@lazy-cjk/zh2num/package.json\\nnode_modules/chinese-parseint2/package.json\\nnode_modules/cjk-conv/package.json\\nnode_modules/deepmerge/package.json\\nnode_modules/is-fullwidth-code-point/package.json\\nnode_modules/strip-ansi/package.json\\nnode_modules/tslib/package.json\\nnode_modules/uni-string/package.json"
      }
    ]
  },
  "components": [
    {
      "authors": [
        {
          "name": "bluelovers"
        }
      ],
      "group": "",
      "name": "uni-string",
      "version": "2.0.9",
      "description": "Unicode String object",
      "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/uni-string@2.0.9",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/bluelovers/ws-string/tree/master/packages/uni-string#readme"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bluelovers/ws-string.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/uni-string@2.0.9",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/uni-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/uni-string/package.json"
              }
            ],
            "concludedValue": "node_modules/uni-string/package.json"
          }
        ]
      }
    },
    {
      "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": 7
          },
          {
            "location": "lib/han/table.js",
            "line": 12
          },
          {
            "location": "lib/han/zh2jp.js",
            "line": 9
          },
          {
            "location": "lib/is-fullwidth.js",
            "line": 7
          },
          {
            "location": "lib/width.js",
            "line": 7
          }
        ]
      }
    },
    {
      "authors": [
        {
          "name": "Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)"
        }
      ],
      "group": "",
      "name": "strip-ansi",
      "version": "6.0.1",
      "description": "Strip ANSI escape codes from a string",
      "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/strip-ansi@6.0.1",
      "type": "library",
      "bom-ref": "pkg:npm/strip-ansi@6.0.1",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/strip-ansi/package.json"
        },
        {
          "name": "ImportedModules",
          "value": "strip-ansi"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/strip-ansi/package.json"
              }
            ],
            "concludedValue": "node_modules/strip-ansi/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "index.js",
            "line": 20
          },
          {
            "location": "lib/width.js",
            "line": 8
          },
          {
            "location": "index.ts",
            "line": 8
          },
          {
            "location": "lib/width.ts",
            "line": 5
          },
          {
            "location": "lib/width.ts",
            "line": 14
          }
        ]
      },
      "tags": [
        "escape"
      ]
    },
    {
      "authors": [
        {
          "name": "Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)"
        }
      ],
      "group": "",
      "name": "is-fullwidth-code-point",
      "version": "3.0.0",
      "description": "Check if the character represented by a given Unicode code point is fullwidth",
      "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/is-fullwidth-code-point@3.0.0",
      "type": "library",
      "bom-ref": "pkg:npm/is-fullwidth-code-point@3.0.0",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/is-fullwidth-code-point/package.json"
        },
        {
          "name": "ImportedModules",
          "value": "is-fullwidth-code-point"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/is-fullwidth-code-point/package.json"
              }
            ],
            "concludedValue": "node_modules/is-fullwidth-code-point/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "lib/is-fullwidth.js",
            "line": 8
          },
          {
            "location": "lib/is-fullwidth.ts",
            "line": 5
          },
          {
            "location": "lib/is-fullwidth.ts",
            "line": 23
          }
        ]
      }
    },
    {
      "group": "",
      "name": "deepmerge",
      "version": "4.3.1",
      "description": "A library for deep (recursive) merging of Javascript objects",
      "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/deepmerge@4.3.1",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/TehShrike/deepmerge"
        },
        {
          "type": "vcs",
          "url": "git://github.com/TehShrike/deepmerge.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/deepmerge@4.3.1",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/deepmerge/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/deepmerge/package.json"
              }
            ],
            "concludedValue": "node_modules/deepmerge/package.json"
          }
        ]
      }
    },
    {
      "authors": [
        {
          "name": "bluelovers"
        }
      ],
      "group": "",
      "name": "cjk-conv",
      "version": "1.2.153",
      "description": "convert chinese, japanese 簡繁日漢字轉換 ( merge/split submodule from node-novel, regexp-cjk, str-util )",
      "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/cjk-conv@1.2.153",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/bluelovers/ws-regexp/tree/master/packages/cjk-conv#readme"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bluelovers/ws-regexp.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/cjk-conv@1.2.153",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/cjk-conv/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/cjk-conv/package.json"
              }
            ],
            "concludedValue": "node_modules/cjk-conv/package.json"
          }
        ]
      }
    },
    {
      "authors": [
        {
          "name": "kong0107"
        }
      ],
      "group": "",
      "name": "chinese-parseint2",
      "version": "2.0.11",
      "description": "parse Chinese numeric strings to integer",
      "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/chinese-parseint2@2.0.11",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/bluelovers/ws-string/tree/master/packages/chinese-parseint2#readme"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bluelovers/ws-string.git"
        }
      ],
      "type": "framework",
      "bom-ref": "pkg:npm/chinese-parseint2@2.0.11",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/chinese-parseint2/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/chinese-parseint2/package.json"
              }
            ],
            "concludedValue": "node_modules/chinese-parseint2/package.json"
          }
        ]
      },
      "tags": [
        "framework"
      ]
    },
    {
      "authors": [
        {
          "name": "bluelovers"
        }
      ],
      "group": "@lazy-cjk",
      "name": "zh2num",
      "version": "1.0.4",
      "description": "將漢字轉換成數字 Parse Chinese/Japanese numeric strings to integer",
      "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-cjk/zh2num@1.0.4",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/bluelovers/ws-string/tree/master/packages/@lazy-cjk/zh2num#readme"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bluelovers/ws-string.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/@lazy-cjk/zh2num@1.0.4",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@lazy-cjk/zh2num/package.json"
        },
        {
          "name": "ExportedModules",
          "value": "@lazy-cjk/zh2num,num2zh,@lazy-cjk/zh2num/num2zh"
        },
        {
          "name": "ImportedModules",
          "value": "@lazy-cjk/zh2num,zh2num,@lazy-cjk/zh2num/zh2num,num2zh,@lazy-cjk/zh2num/num2zh"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/@lazy-cjk/zh2num/package.json"
              }
            ],
            "concludedValue": "node_modules/@lazy-cjk/zh2num/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "index.js",
            "line": 30
          },
          {
            "location": "lib/han/zh2num.js",
            "line": 7
          },
          {
            "location": "index.ts",
            "line": 16
          },
          {
            "location": "lib/han/zh2num.ts",
            "line": 5
          }
        ]
      },
      "tags": [
        "parse"
      ]
    },
    {
      "authors": [
        {
          "name": "bluelovers"
        }
      ],
      "group": "@lazy-cjk",
      "name": "str-util-trim",
      "version": "1.0.6",
      "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-cjk/str-util-trim@1.0.6",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/bluelovers/ws-string/tree/master/packages/@lazy-cjk/str-util-trim#readme"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bluelovers/ws-string.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/@lazy-cjk/str-util-trim@1.0.6",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@lazy-cjk/str-util-trim/package.json"
        },
        {
          "name": "ExportedModules",
          "value": "@lazy-cjk/str-util-trim,ITrimOptions,@lazy-cjk/str-util-trim/ITrimOptions,default,@lazy-cjk/str-util-trim/default"
        },
        {
          "name": "ImportedModules",
          "value": "@lazy-cjk/str-util-trim"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/@lazy-cjk/str-util-trim/package.json"
              }
            ],
            "concludedValue": "node_modules/@lazy-cjk/str-util-trim/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "index.js",
            "line": 24
          },
          {
            "location": "lib/trim.js",
            "line": 4
          },
          {
            "location": "index.ts",
            "line": 12
          },
          {
            "location": "lib/trim.ts",
            "line": 2
          }
        ]
      }
    },
    {
      "authors": [
        {
          "name": "bluelovers"
        }
      ],
      "group": "@lazy-cjk",
      "name": "str-util-normalize",
      "version": "1.0.6",
      "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-cjk/str-util-normalize@1.0.6",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/bluelovers/ws-string/tree/master/packages/@lazy-cjk/str-util-normalize#readme"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bluelovers/ws-string.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/@lazy-cjk/str-util-normalize@1.0.6",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@lazy-cjk/str-util-normalize/package.json"
        },
        {
          "name": "ExportedModules",
          "value": "@lazy-cjk/str-util-normalize,StripTable,@lazy-cjk/str-util-normalize/StripTable,IOptions,@lazy-cjk/str-util-normalize/IOptions,default,@lazy-cjk/str-util-normalize/default"
        },
        {
          "name": "ImportedModules",
          "value": "@lazy-cjk/str-util-normalize"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/@lazy-cjk/str-util-normalize/package.json"
              }
            ],
            "concludedValue": "node_modules/@lazy-cjk/str-util-normalize/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "index.js",
            "line": 22
          },
          {
            "location": "lib/normalize.js",
            "line": 4
          },
          {
            "location": "index.ts",
            "line": 10
          },
          {
            "location": "lib/normalize.ts",
            "line": 7
          }
        ]
      }
    },
    {
      "authors": [
        {
          "name": "bluelovers"
        }
      ],
      "group": "@lazy-cjk",
      "name": "str-util-char-code-at",
      "version": "1.0.6",
      "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-cjk/str-util-char-code-at@1.0.6",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/bluelovers/ws-string/tree/master/packages/@lazy-cjk/str-util-char-code-at#readme"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bluelovers/ws-string.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/@lazy-cjk/str-util-char-code-at@1.0.6",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@lazy-cjk/str-util-char-code-at/package.json"
        },
        {
          "name": "ExportedModules",
          "value": "@lazy-cjk/str-util-char-code-at"
        },
        {
          "name": "ImportedModules",
          "value": "@lazy-cjk/str-util-char-code-at"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/@lazy-cjk/str-util-char-code-at/package.json"
              }
            ],
            "concludedValue": "node_modules/@lazy-cjk/str-util-char-code-at/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "index.js",
            "line": 33
          },
          {
            "location": "index.ts",
            "line": 17
          }
        ]
      }
    },
    {
      "authors": [
        {
          "name": "bluelovers"
        }
      ],
      "group": "@lazy-cjk",
      "name": "jp-table-convert",
      "version": "1.0.55",
      "description": "轉換 簡繁日 當中共通的 漢字",
      "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-cjk/jp-table-convert@1.0.55",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/bluelovers/ws-regexp/tree/master/packages/@lazy-cjk/jp-table-convert#readme"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bluelovers/ws-regexp.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/@lazy-cjk/jp-table-convert@1.0.55",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@lazy-cjk/jp-table-convert/package.json"
        },
        {
          "name": "ExportedModules",
          "value": "@lazy-cjk/jp-table-convert,zh2jp,@lazy-cjk/jp-table-convert/zh2jp,jp2zhs,@lazy-cjk/jp-table-convert/jp2zhs,jp2zht,@lazy-cjk/jp-table-convert/jp2zht"
        },
        {
          "name": "ImportedModules",
          "value": "@lazy-cjk/jp-table-convert,zh2jp,@lazy-cjk/jp-table-convert/zh2jp"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/@lazy-cjk/jp-table-convert/package.json"
              }
            ],
            "concludedValue": "node_modules/@lazy-cjk/jp-table-convert/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "index.js",
            "line": 26
          },
          {
            "location": "lib/han/zh2jp.js",
            "line": 10
          },
          {
            "location": "lib/han/zh2jp.js",
            "line": 11
          },
          {
            "location": "index.ts",
            "line": 14
          },
          {
            "location": "lib/han/zh2jp.ts",
            "line": 8
          },
          {
            "location": "lib/han/zh2jp.ts",
            "line": 9
          }
        ]
      }
    },
    {
      "authors": [
        {
          "name": "bluelovers"
        }
      ],
      "group": "@lazy-cjk",
      "name": "jp-table-comparison",
      "version": "1.0.35",
      "description": "簡繁日 共通字/轉換表",
      "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-cjk/jp-table-comparison@1.0.35",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/bluelovers/ws-regexp/tree/master/packages/@lazy-cjk/jp-table-comparison#readme"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bluelovers/ws-regexp.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/@lazy-cjk/jp-table-comparison@1.0.35",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@lazy-cjk/jp-table-comparison/package.json"
        },
        {
          "name": "ImportedModules",
          "value": "@lazy-cjk/jp-table-comparison,TABLE,@lazy-cjk/jp-table-comparison/TABLE"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/@lazy-cjk/jp-table-comparison/package.json"
              }
            ],
            "concludedValue": "node_modules/@lazy-cjk/jp-table-comparison/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "lib/han/table.js",
            "line": 13
          },
          {
            "location": "lib/han/table.js",
            "line": 14
          },
          {
            "location": "lib/han/table.ts",
            "line": 11
          },
          {
            "location": "lib/han/table.ts",
            "line": 12
          }
        ]
      }
    },
    {
      "authors": [
        {
          "name": "hakatashi <hakatasiloving@gmail.com> (http://hakatashi.com/)"
        }
      ],
      "group": "@lazy-cjk",
      "name": "japanese",
      "version": "1.2.39",
      "description": "Util collection for Japanese text processing. Hiraganize, Katakanize, and Romanize.",
      "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/%40lazy-cjk/japanese@1.2.39",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/bluelovers/ws-regexp/tree/master/packages/@lazy-cjk/japanese#readme"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bluelovers/ws-regexp.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/@lazy-cjk/japanese@1.2.39",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@lazy-cjk/japanese/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/@lazy-cjk/japanese/package.json"
              }
            ],
            "concludedValue": "node_modules/@lazy-cjk/japanese/package.json"
          }
        ]
      }
    },
    {
      "authors": [
        {
          "name": "bluelovers"
        }
      ],
      "group": "@lazy-cjk",
      "name": "fullhalf",
      "version": "1.0.3",
      "description": "Converts character to full-width/half-width character.",
      "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-cjk/fullhalf@1.0.3",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://github.com/bluelovers/ws-string/tree/master/packages/@lazy-cjk/fullhalf#readme"
        },
        {
          "type": "vcs",
          "url": "git+https://github.com/bluelovers/ws-string.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/@lazy-cjk/fullhalf@1.0.3",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@lazy-cjk/fullhalf/package.json"
        },
        {
          "name": "ImportedModules",
          "value": "@lazy-cjk/fullhalf,toFullNumber,@lazy-cjk/fullhalf/toFullNumber,toHalfNumber,@lazy-cjk/fullhalf/toHalfNumber,toFullEnglish,@lazy-cjk/fullhalf/toFullEnglish,toHalfEnglish,@lazy-cjk/fullhalf/toHalfEnglish,toFullWidth,@lazy-cjk/fullhalf/toFullWidth,toHalfWidth,@lazy-cjk/fullhalf/toHalfWidth,IFactoryFn,@lazy-cjk/fullhalf/IFactoryFn"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/@lazy-cjk/fullhalf/package.json"
              }
            ],
            "concludedValue": "node_modules/@lazy-cjk/fullhalf/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "index.js",
            "line": 13
          },
          {
            "location": "lib/fullhalf.js",
            "line": 7
          },
          {
            "location": "index.ts",
            "line": 7
          },
          {
            "location": "lib/fullhalf.ts",
            "line": 12
          }
        ]
      }
    }
  ],
  "dependencies": [],
  "annotations": [
    {
      "bom-ref": "metadata-annotations",
      "subjects": [
        "pkg:npm/str-util@3.0.4"
      ],
      "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-17T18:44:02Z",
      "text": "This Software Bill-of-Materials (SBOM) document was created on Thursday, September 17, 2026 with cdxgen. The data was captured during the pre-build lifecycle phase without building the application. The document describes an application named 'str-util' with version '3.0.4'. The package type in this SBOM is npm with a single purl namespace '@lazy-cjk' described under components. The components were identified from 15 source files."
    }
  ]
}