@cyclonedx/cyclonedx-library 1.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/NOTICE +5 -0
- package/README.md +152 -0
- package/dist.node/_index.node.js +53 -0
- package/dist.node/_index.node.js.map +1 -0
- package/dist.node/enums/attachmentEncoding.js +26 -0
- package/dist.node/enums/attachmentEncoding.js.map +1 -0
- package/dist.node/enums/componentScope.js +28 -0
- package/dist.node/enums/componentScope.js.map +1 -0
- package/dist.node/enums/componentType.js +33 -0
- package/dist.node/enums/componentType.js.map +1 -0
- package/dist.node/enums/externalReferenceType.js +41 -0
- package/dist.node/enums/externalReferenceType.js.map +1 -0
- package/dist.node/enums/hashAlogorithm.js +37 -0
- package/dist.node/enums/hashAlogorithm.js.map +1 -0
- package/dist.node/enums/index.js +40 -0
- package/dist.node/enums/index.js.map +1 -0
- package/dist.node/factories/index.js +36 -0
- package/dist.node/factories/index.js.map +1 -0
- package/dist.node/factories/licenseFactory.js +56 -0
- package/dist.node/factories/licenseFactory.js.map +1 -0
- package/dist.node/helpers/types.js +26 -0
- package/dist.node/helpers/types.js.map +1 -0
- package/dist.node/models/attachment.js +30 -0
- package/dist.node/models/attachment.js.map +1 -0
- package/dist.node/models/bom.js +67 -0
- package/dist.node/models/bom.js.map +1 -0
- package/dist.node/models/bomRef.js +37 -0
- package/dist.node/models/bomRef.js.map +1 -0
- package/dist.node/models/component.js +96 -0
- package/dist.node/models/component.js.map +1 -0
- package/dist.node/models/externalReference.js +40 -0
- package/dist.node/models/externalReference.js.map +1 -0
- package/dist.node/models/hash.js +29 -0
- package/dist.node/models/hash.js.map +1 -0
- package/dist.node/models/index.js +47 -0
- package/dist.node/models/index.js.map +1 -0
- package/dist.node/models/license.js +103 -0
- package/dist.node/models/license.js.map +1 -0
- package/dist.node/models/metadata.js +35 -0
- package/dist.node/models/metadata.js.map +1 -0
- package/dist.node/models/organizationalContact.js +41 -0
- package/dist.node/models/organizationalContact.js.map +1 -0
- package/dist.node/models/organizationalEntity.js +31 -0
- package/dist.node/models/organizationalEntity.js.map +1 -0
- package/dist.node/models/swid.js +58 -0
- package/dist.node/models/swid.js.map +1 -0
- package/dist.node/models/tool.js +45 -0
- package/dist.node/models/tool.js.map +1 -0
- package/dist.node/resources.node.js +55 -0
- package/dist.node/resources.node.js.map +1 -0
- package/dist.node/serialize/_index.node.js +37 -0
- package/dist.node/serialize/_index.node.js.map +1 -0
- package/dist.node/serialize/baseSerializer.js +56 -0
- package/dist.node/serialize/baseSerializer.js.map +1 -0
- package/dist.node/serialize/bomRefDiscriminator.js +66 -0
- package/dist.node/serialize/bomRefDiscriminator.js.map +1 -0
- package/dist.node/serialize/index.js +55 -0
- package/dist.node/serialize/index.js.map +1 -0
- package/dist.node/serialize/json/index.js +47 -0
- package/dist.node/serialize/json/index.js.map +1 -0
- package/dist.node/serialize/json/normalize.js +431 -0
- package/dist.node/serialize/json/normalize.js.map +1 -0
- package/dist.node/serialize/json/types.js +35 -0
- package/dist.node/serialize/json/types.js.map +1 -0
- package/dist.node/serialize/jsonSerializer.js +55 -0
- package/dist.node/serialize/jsonSerializer.js.map +1 -0
- package/dist.node/serialize/types.js +21 -0
- package/dist.node/serialize/types.js.map +1 -0
- package/dist.node/serialize/xml/index.js +47 -0
- package/dist.node/serialize/xml/index.js.map +1 -0
- package/dist.node/serialize/xml/normalize.js +560 -0
- package/dist.node/serialize/xml/normalize.js.map +1 -0
- package/dist.node/serialize/xml/types.js +31 -0
- package/dist.node/serialize/xml/types.js.map +1 -0
- package/dist.node/serialize/xmlBaseSerializer.js +52 -0
- package/dist.node/serialize/xmlBaseSerializer.js.map +1 -0
- package/dist.node/serialize/xmlSerializer.node.js +30 -0
- package/dist.node/serialize/xmlSerializer.node.js.map +1 -0
- package/dist.node/spdx.js +35 -0
- package/dist.node/spdx.js.map +1 -0
- package/dist.node/spec.js +229 -0
- package/dist.node/spec.js.map +1 -0
- package/dist.node/types/cpe.js +28 -0
- package/dist.node/types/cpe.js.map +1 -0
- package/dist.node/types/index.js +39 -0
- package/dist.node/types/index.js.map +1 -0
- package/dist.node/types/integer.js +36 -0
- package/dist.node/types/integer.js.map +1 -0
- package/dist.node/types/mimeType.js +28 -0
- package/dist.node/types/mimeType.js.map +1 -0
- package/dist.node/types/urn.js +28 -0
- package/dist.node/types/urn.js.map +1 -0
- package/dist.web/lib.dev.js +3487 -0
- package/dist.web/lib.dev.js.map +1 -0
- package/dist.web/lib.js +2 -0
- package/dist.web/lib.js.LICENSE.txt +18 -0
- package/libs/universal-node-xml/index.d.ts +33 -0
- package/libs/universal-node-xml/index.js +42 -0
- package/libs/universal-node-xml/stringifiers/helpers.js +17 -0
- package/libs/universal-node-xml/stringifiers/xmlbuilder2.js +51 -0
- package/package.json +86 -0
- package/res/README.md +27 -0
- package/res/bom-1.0.SNAPSHOT.xsd +247 -0
- package/res/bom-1.1.SNAPSHOT.xsd +731 -0
- package/res/bom-1.2-strict.SNAPSHOT.schema.json +1026 -0
- package/res/bom-1.2.SNAPSHOT.schema.json +997 -0
- package/res/bom-1.2.SNAPSHOT.xsd +1418 -0
- package/res/bom-1.3-strict.SNAPSHOT.schema.json +1085 -0
- package/res/bom-1.3.SNAPSHOT.schema.json +1054 -0
- package/res/bom-1.3.SNAPSHOT.xsd +1631 -0
- package/res/bom-1.4.SNAPSHOT.schema.json +1697 -0
- package/res/bom-1.4.SNAPSHOT.xsd +2407 -0
- package/res/jsf-0.82.SNAPSHOT.schema.json +244 -0
- package/res/spdx.SNAPSHOT.schema.json +533 -0
- package/res/spdx.SNAPSHOT.xsd +2639 -0
- package/src/_index.node.ts +31 -0
- package/src/_index.web.ts +27 -0
- package/src/enums/attachmentEncoding.ts +22 -0
- package/src/enums/componentScope.ts +24 -0
- package/src/enums/componentType.ts +29 -0
- package/src/enums/externalReferenceType.ts +37 -0
- package/src/enums/hashAlogorithm.ts +33 -0
- package/src/enums/index.ts +24 -0
- package/src/factories/index.ts +20 -0
- package/src/factories/licenseFactory.ts +62 -0
- package/src/helpers/README.md +3 -0
- package/src/helpers/types.ts +28 -0
- package/src/models/attachment.ts +37 -0
- package/src/models/bom.ts +85 -0
- package/src/models/bomRef.ts +41 -0
- package/src/models/component.ts +136 -0
- package/src/models/externalReference.ts +48 -0
- package/src/models/hash.ts +38 -0
- package/src/models/index.ts +31 -0
- package/src/models/license.ts +133 -0
- package/src/models/metadata.ts +50 -0
- package/src/models/organizationalContact.ts +49 -0
- package/src/models/organizationalEntity.ts +38 -0
- package/src/models/swid.ts +71 -0
- package/src/models/tool.ts +58 -0
- package/src/resources.node.ts +59 -0
- package/src/serialize/_index.node.ts +23 -0
- package/src/serialize/_index.web.ts +23 -0
- package/src/serialize/baseSerializer.ts +52 -0
- package/src/serialize/bomRefDiscriminator.ts +69 -0
- package/src/serialize/index.ts +35 -0
- package/src/serialize/json/index.ts +23 -0
- package/src/serialize/json/normalize.ts +450 -0
- package/src/serialize/json/types.ts +187 -0
- package/src/serialize/jsonSerializer.ts +59 -0
- package/src/serialize/types.ts +38 -0
- package/src/serialize/xml/index.ts +23 -0
- package/src/serialize/xml/normalize.ts +590 -0
- package/src/serialize/xml/types.ts +112 -0
- package/src/serialize/xmlBaseSerializer.ts +52 -0
- package/src/serialize/xmlSerializer.node.ts +35 -0
- package/src/serialize/xmlSerializer.web.ts +89 -0
- package/src/spdx.ts +48 -0
- package/src/spec.ts +289 -0
- package/src/types/cpe.ts +33 -0
- package/src/types/index.ts +23 -0
- package/src/types/integer.ts +50 -0
- package/src/types/mimeType.ts +31 -0
- package/src/types/urn.ts +33 -0
- package/tsconfig.json +108 -0
- package/tsconfig.node.json +8 -0
- package/tsconfig.web.json +5 -0
- package/webpack.config.js +74 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lib.dev.js","mappings":"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","sources":["webpack://CycloneDX_library/webpack/universalModuleDefinition","webpack://CycloneDX_library/./src/_index.web.ts","webpack://CycloneDX_library/./src/enums/attachmentEncoding.ts","webpack://CycloneDX_library/./src/enums/componentScope.ts","webpack://CycloneDX_library/./src/enums/componentType.ts","webpack://CycloneDX_library/./src/enums/externalReferenceType.ts","webpack://CycloneDX_library/./src/enums/hashAlogorithm.ts","webpack://CycloneDX_library/./src/enums/index.ts","webpack://CycloneDX_library/./src/factories/index.ts","webpack://CycloneDX_library/./src/factories/licenseFactory.ts","webpack://CycloneDX_library/./src/helpers/types.ts","webpack://CycloneDX_library/./src/models/attachment.ts","webpack://CycloneDX_library/./src/models/bom.ts","webpack://CycloneDX_library/./src/models/bomRef.ts","webpack://CycloneDX_library/./src/models/component.ts","webpack://CycloneDX_library/./src/models/externalReference.ts","webpack://CycloneDX_library/./src/models/hash.ts","webpack://CycloneDX_library/./src/models/index.ts","webpack://CycloneDX_library/./src/models/license.ts","webpack://CycloneDX_library/./src/models/metadata.ts","webpack://CycloneDX_library/./src/models/organizationalContact.ts","webpack://CycloneDX_library/./src/models/organizationalEntity.ts","webpack://CycloneDX_library/./src/models/swid.ts","webpack://CycloneDX_library/./src/models/tool.ts","webpack://CycloneDX_library/./src/serialize/_index.web.ts","webpack://CycloneDX_library/./src/serialize/baseSerializer.ts","webpack://CycloneDX_library/./src/serialize/bomRefDiscriminator.ts","webpack://CycloneDX_library/./src/serialize/index.ts","webpack://CycloneDX_library/./src/serialize/json/index.ts","webpack://CycloneDX_library/./src/serialize/json/normalize.ts","webpack://CycloneDX_library/./src/serialize/json/types.ts","webpack://CycloneDX_library/./src/serialize/jsonSerializer.ts","webpack://CycloneDX_library/./src/serialize/types.ts","webpack://CycloneDX_library/./src/serialize/xml/index.ts","webpack://CycloneDX_library/./src/serialize/xml/normalize.ts","webpack://CycloneDX_library/./src/serialize/xml/types.ts","webpack://CycloneDX_library/./src/serialize/xmlBaseSerializer.ts","webpack://CycloneDX_library/./src/serialize/xmlSerializer.web.ts","webpack://CycloneDX_library/./src/spdx.ts","webpack://CycloneDX_library/./src/spec.ts","webpack://CycloneDX_library/./src/types/cpe.ts","webpack://CycloneDX_library/./src/types/index.ts","webpack://CycloneDX_library/./src/types/integer.ts","webpack://CycloneDX_library/./src/types/mimeType.ts","webpack://CycloneDX_library/./src/types/urn.ts","webpack://CycloneDX_library/webpack/bootstrap","webpack://CycloneDX_library/webpack/before-startup","webpack://CycloneDX_library/webpack/startup","webpack://CycloneDX_library/webpack/after-startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"CycloneDX_library\"] = factory();\n\telse\n\t\troot[\"CycloneDX_library\"] = factory();\n})(self, () => {\nreturn ","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nexport * as Types from './types'\nexport * as Enums from './enums'\nexport * as SPDX from './spdx'\nexport * as Models from './models'\nexport * as Factories from './factories'\nexport * as Spec from './spec'\nexport * as Serialize from './serialize/_index.web'\n// do not export the helpers, they are for internal use only\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nexport enum AttachmentEncoding {\n Base64 = 'base64',\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nexport enum ComponentScope {\n Required = 'required',\n Optional = 'optional',\n Excluded = 'excluded',\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nexport enum ComponentType {\n Application = 'application',\n Framework = 'framework',\n Library = 'library',\n Container = 'container',\n OperatingSystem = 'operating-system',\n Device = 'device',\n Firmware = 'firmware',\n File = 'file',\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nexport enum ExternalReferenceType {\n VCS = 'vcs',\n IssueTracker = 'issue-tracker',\n Website = 'website',\n Advisories = 'advisories',\n BOM = 'bom',\n MailingList = 'mailing-list',\n Social = 'social',\n Chat = 'chat',\n Documentation = 'documentation',\n Support = 'support',\n Distribution = 'distribution',\n License = 'license',\n BuildMeta = 'build-meta',\n BuildSystem = 'build-system',\n ReleaseNotes = 'release-notes',\n Other = 'other',\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nexport enum HashAlgorithm {\n MD5 = 'MD5',\n 'SHA-1' = 'SHA-1',\n 'SHA-256' = 'SHA-256',\n 'SHA-384' = 'SHA-384',\n 'SHA-512' = 'SHA-512',\n 'SHA3-256' = 'SHA3-256',\n 'SHA3-384' = 'SHA3-384',\n 'SHA3-512' = 'SHA3-512',\n 'BLAKE2b-256' = 'BLAKE2b-256',\n 'BLAKE2b-384' = 'BLAKE2b-384',\n 'BLAKE2b-512' = 'BLAKE2b-512',\n BLAKE3 = 'BLAKE3',\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nexport * from './attachmentEncoding'\nexport * from './componentScope'\nexport * from './componentType'\nexport * from './externalReferenceType'\nexport * from './hashAlogorithm'\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nexport * from './licenseFactory'\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport { DisjunctiveLicense, License, LicenseExpression, NamedLicense, SpdxLicense } from '../models'\nimport { fixupSpdxId } from '../spdx'\n\nexport class LicenseFactory {\n makeFromString (value: string): License {\n try {\n return this.makeExpression(value)\n } catch (Error) {\n return this.makeDisjunctive(value)\n }\n }\n\n /**\n * @throws {RangeError} if expression is not eligible\n */\n makeExpression (value: string): LicenseExpression {\n return new LicenseExpression(value)\n }\n\n makeDisjunctive (value: string): DisjunctiveLicense {\n try {\n return this.makeDisjunctiveWithId(value)\n } catch (error) {\n return this.makeDisjunctiveWithName(value)\n }\n }\n\n /**\n * @throws {RangeError} if value is not supported SPDX id\n */\n makeDisjunctiveWithId (value: string | any): SpdxLicense {\n const spdxId = fixupSpdxId(String(value))\n if (undefined === spdxId) {\n throw new RangeError('Unsupported SPDX id')\n }\n\n return new SpdxLicense(spdxId)\n }\n\n makeDisjunctiveWithName (value: string | any): NamedLicense {\n return new NamedLicense(String(value))\n }\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nexport type NotUndefined<T> = T extends undefined ? never : T\n\nexport function isNotUndefined<T> (value: T | undefined): value is NotUndefined<T> {\n return value !== undefined\n}\n\nexport interface Stringable {\n toString: () => string\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport { AttachmentEncoding } from '../enums'\n\ninterface OptionalProperties {\n contentType?: Attachment['contentType']\n encoding?: Attachment['encoding']\n}\n\nexport class Attachment {\n contentType?: string\n content: string\n encoding?: AttachmentEncoding\n\n constructor (content: string, op: OptionalProperties = {}) {\n this.contentType = op.contentType\n this.content = content\n this.encoding = op.encoding\n }\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport { isPositiveInteger, isUrnUuid, PositiveInteger, UrnUuid } from '../types'\nimport { Metadata } from './metadata'\nimport { ComponentRepository } from './component'\n\ninterface OptionalProperties {\n metadata?: Bom['metadata']\n components?: Bom['components']\n version?: Bom['version']\n serialNumber?: Bom['serialNumber']\n}\n\nexport class Bom {\n metadata: Metadata\n components: ComponentRepository\n\n /** @see version */\n #version: PositiveInteger = 1\n\n /** @see serialNumber */\n #serialNumber?: UrnUuid\n\n // Property `bomFormat` is not part of model, it is runtime information.\n // Property `specVersion` is not part of model, it is runtime information.\n\n // Property `dependencies` is not part of this model, but part of `Component` and other models.\n // The dependency graph can be normalized on render-time, no need to store it in the bom model.\n\n /**\n * @throws {TypeError} if {@see op.version} is not {@see PositiveInteger} nor {@see undefined}\n * @throws {TypeError} if {@see op.serialNumber} is neither {@see UrnUuid} nor {@see undefined}\n */\n constructor (op: OptionalProperties = {}) {\n this.metadata = op.metadata ?? new Metadata()\n this.components = op.components ?? new ComponentRepository()\n this.version = op.version ?? this.version\n this.serialNumber = op.serialNumber\n }\n\n get version (): PositiveInteger {\n return this.#version\n }\n\n /**\n * @throws {TypeError} if value is not {@see PositiveInteger}\n */\n set version (value: PositiveInteger) {\n if (!isPositiveInteger(value)) {\n throw new TypeError('Not PositiveInteger')\n }\n this.#version = value\n }\n\n get serialNumber (): UrnUuid | undefined {\n return this.#serialNumber\n }\n\n /**\n * @throws {TypeError} if value is neither {@see UrnUuid} nor {@see undefined}\n */\n set serialNumber (value: UrnUuid | undefined) {\n if (value !== undefined && !isUrnUuid(value)) {\n throw new TypeError('Not UrnUuid nor undefined')\n }\n this.#serialNumber = value\n }\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\n/**\n * Proxy for the BomRef.\n * This way a `BomRef` gets unique by the in-memory-address of the object.\n */\nexport class BomRef {\n value?: string\n\n constructor (value?: string) {\n this.value = value\n }\n\n compare (other: BomRef): number {\n return (this.toString()).localeCompare(other.toString())\n }\n\n toString (): string {\n return this.value ?? ''\n }\n}\n\nexport class BomRefRepository extends Set<BomRef> {\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport { PackageURL } from 'packageurl-js'\n\nimport { CPE, isCPE } from '../types'\nimport { ComponentScope, ComponentType } from '../enums'\nimport { BomRef, BomRefRepository } from './bomRef'\nimport { HashRepository } from './hash'\nimport { OrganizationalEntity } from './organizationalEntity'\nimport { ExternalReferenceRepository } from './externalReference'\nimport { LicenseRepository } from './license'\nimport { SWID } from './swid'\n\ninterface OptionalProperties {\n bomRef?: BomRef['value']\n author?: Component['author']\n copyright?: Component['copyright']\n description?: Component['description']\n externalReferences?: Component['externalReferences']\n group?: Component['group']\n hashes?: Component['hashes']\n licenses?: Component['licenses']\n publisher?: Component['publisher']\n purl?: Component['purl']\n scope?: Component['scope']\n supplier?: Component['supplier']\n swid?: Component['swid']\n version?: Component['version']\n dependencies?: Component['dependencies']\n cpe?: Component['cpe']\n}\n\nexport class Component {\n type: ComponentType\n name: string\n author?: string\n copyright?: string\n description?: string\n externalReferences: ExternalReferenceRepository\n group?: string\n hashes: HashRepository\n licenses: LicenseRepository\n publisher?: string\n purl?: PackageURL\n scope?: ComponentScope\n supplier?: OrganizationalEntity\n swid?: SWID\n version?: string\n dependencies: BomRefRepository\n\n /** @see bomRef */\n readonly #bomRef: BomRef\n\n /** @see cpe */\n #cpe?: CPE\n\n /**\n * @throws {TypeError} if {@see op.cpe} is neither {@see CPE} nor {@see undefined}\n */\n constructor (type: ComponentType, name: string, op: OptionalProperties = {}) {\n this.#bomRef = new BomRef(op.bomRef)\n this.type = type\n this.name = name\n this.author = op.author\n this.copyright = op.copyright\n this.externalReferences = op.externalReferences ?? new ExternalReferenceRepository()\n this.group = op.group\n this.hashes = op.hashes ?? new HashRepository()\n this.licenses = op.licenses ?? new LicenseRepository()\n this.publisher = op.publisher\n this.purl = op.purl\n this.scope = op.scope\n this.swid = op.swid\n this.version = op.version\n this.dependencies = op.dependencies ?? new BomRefRepository()\n this.cpe = op.cpe\n }\n\n get bomRef (): BomRef {\n return this.#bomRef\n }\n\n get cpe (): CPE | undefined {\n return this.#cpe\n }\n\n /**\n * @throws {TypeError} if value is neither {@see CPE} nor {@see undefined}\n */\n set cpe (value: CPE | undefined) {\n if (value !== undefined && !isCPE(value)) {\n throw new TypeError('Not CPE nor undefined')\n }\n this.#cpe = value\n }\n\n compare (other: Component): number {\n const bomRefCompare = this.bomRef.compare(other.bomRef)\n if (bomRefCompare !== 0) {\n return bomRefCompare\n }\n if (this.purl !== undefined && other.purl !== undefined) {\n return this.purl.toString().localeCompare(other.purl.toString())\n }\n if (this.#cpe !== undefined && other.#cpe !== undefined) {\n return this.#cpe.toString().localeCompare(other.#cpe.toString())\n }\n /* eslint-disable-next-line @typescript-eslint/strict-boolean-expressions -- run compares in weighted order */\n return (this.group ?? '').localeCompare(other.group ?? '') ||\n this.name.localeCompare(other.name) ||\n (this.version ?? '').localeCompare(other.version ?? '')\n }\n}\n\nexport class ComponentRepository extends Set<Component> {\n static compareItems (a: Component, b: Component): number {\n return a.compare(b)\n }\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport { ExternalReferenceType } from '../enums'\n\ninterface OptionalProperties {\n comment?: ExternalReference['comment']\n}\n\nexport class ExternalReference {\n url: URL | string\n type: ExternalReferenceType\n comment?: string\n\n constructor (url: URL | string, type: ExternalReferenceType, op: OptionalProperties = {}) {\n this.url = url\n this.type = type\n this.comment = op.comment\n }\n\n compare (other: ExternalReference): number {\n /* eslint-disable-next-line @typescript-eslint/strict-boolean-expressions -- run compares in weighted order */\n return this.type.localeCompare(other.type) ||\n this.url.toString().localeCompare(other.url.toString())\n }\n}\n\nexport class ExternalReferenceRepository extends Set<ExternalReference> {\n static compareItems (a: ExternalReference, b: ExternalReference): number {\n return a.compare(b)\n }\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport { HashAlgorithm } from '../enums'\n\n// no regex for the HashContent in here. It applies at runtime of a normalization/serialization process.\nexport type HashContent = string\n\nexport type Hash = readonly [\n // order matters: it must reflect [key, value] of HashRepository -\n // this way a HashRepository can be constructed from multiple Hash objects.\n algorithm: HashAlgorithm,\n content: HashContent\n]\n\nexport class HashRepository extends Map<Hash[0], Hash[1]> {\n static compareItems (a: Hash, b: Hash): number {\n /* eslint-disable-next-line @typescript-eslint/strict-boolean-expressions -- run compares in weighted order */\n return a[0].localeCompare(b[0]) ||\n a[1].localeCompare(b[1])\n }\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nexport * from './attachment'\nexport * from './bom'\nexport * from './bomRef'\nexport * from './component'\nexport * from './externalReference'\nexport * from './hash'\nexport * from './license'\nexport * from './metadata'\nexport * from './organizationalContact'\nexport * from './organizationalEntity'\nexport * from './swid'\nexport * from './tool'\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport { isSupportedSpdxId, SpdxId } from '../spdx'\nimport { Attachment } from './attachment'\n\nexport class LicenseExpression {\n static isEligibleExpression (expression: string | any): boolean {\n // smallest known: (A or B)\n return typeof expression === 'string' &&\n expression.length >= 8 &&\n expression[0] === '(' &&\n expression[expression.length - 1] === ')'\n }\n\n /** @see expression */\n #expression!: string\n\n /**\n * @throws {RangeError} if {@see expression} is not eligible({@see LicenseExpression.isEligibleExpression})\n */\n constructor (expression: string) {\n this.expression = expression\n }\n\n get expression (): string {\n return this.#expression\n }\n\n /**\n * @throws {RangeError} if expression is not eligible({@see LicenseExpression.isEligibleExpression})\n */\n set expression (value: string) {\n if (!LicenseExpression.isEligibleExpression(value)) {\n throw new RangeError('Not eligible expression')\n }\n this.#expression = value\n }\n\n compare (other: LicenseExpression): number {\n return this.#expression.localeCompare(other.#expression)\n }\n}\n\ninterface NamedLicenseOptionalProperties {\n text?: NamedLicense['text']\n url?: NamedLicense['url']\n}\n\nexport class NamedLicense {\n name: string\n text?: Attachment\n url?: URL | string\n\n constructor (name: string, op: NamedLicenseOptionalProperties = {}) {\n this.name = name\n this.text = op.text\n this.url = op.url\n }\n\n compare (other: NamedLicense): number {\n return this.name.localeCompare(other.name)\n }\n}\n\ninterface SpdxLicenseOptionalProperties {\n text?: SpdxLicense['text']\n url?: SpdxLicense['url']\n}\n\nexport class SpdxLicense {\n text?: Attachment\n url?: URL | string\n\n /** @see id */\n #id!: SpdxId\n\n /**\n * @throws {RangeError} if {@see id} is not supported SPDX id({@see isSupportedSpdxId})\n */\n constructor (id: SpdxId, op: SpdxLicenseOptionalProperties = {}) {\n this.id = id\n this.text = op.text\n this.url = op.url\n }\n\n get id (): SpdxId {\n return this.#id\n }\n\n /**\n * @throws {RangeError} if value is not supported SPDX id({@see isSupportedSpdxId})\n */\n set id (value: SpdxId) {\n if (!isSupportedSpdxId(value)) {\n throw new RangeError('Unknown SPDX id')\n }\n this.#id = value\n }\n\n compare (other: SpdxLicense): number {\n return this.#id.localeCompare(other.#id)\n }\n}\n\nexport type DisjunctiveLicense = NamedLicense | SpdxLicense\nexport type License = DisjunctiveLicense | LicenseExpression\n\nexport class LicenseRepository extends Set<License> {\n static compareItems (a: License, b: License): number {\n if (a.constructor === b.constructor) {\n // @ts-expect-error -- classes are from same type -> they are comparable\n return a.compare(b)\n }\n return a.constructor.name.localeCompare(b.constructor.name)\n }\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport { Component } from './component'\nimport { ToolRepository } from './tool'\nimport { OrganizationalEntity } from './organizationalEntity'\nimport { OrganizationalContactRepository } from './organizationalContact'\n\ninterface OptionalProperties {\n timestamp?: Metadata['timestamp']\n tools?: Metadata['tools']\n authors?: Metadata['authors']\n component?: Metadata['component']\n manufacture?: Metadata['manufacture']\n supplier?: Metadata['supplier']\n}\n\nexport class Metadata {\n timestamp?: Date\n tools: ToolRepository\n authors: OrganizationalContactRepository\n component?: Component\n manufacture?: OrganizationalEntity\n supplier?: OrganizationalEntity\n\n constructor (op: OptionalProperties = {}) {\n this.timestamp = op.timestamp\n this.tools = op.tools ?? new ToolRepository()\n this.authors = op.authors ?? new OrganizationalContactRepository()\n this.component = op.component\n this.manufacture = op.manufacture\n this.supplier = op.supplier\n }\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\ninterface OptionalProperties {\n name?: OrganizationalContact['name']\n email?: OrganizationalContact['email']\n phone?: OrganizationalContact['phone']\n}\n\nexport class OrganizationalContact {\n name?: string\n email?: string\n phone?: string\n\n constructor (op: OptionalProperties = {}) {\n this.name = op.name\n this.email = op.email\n this.phone = op.phone\n }\n\n compare (other: OrganizationalContact): number {\n /* eslint-disable-next-line @typescript-eslint/strict-boolean-expressions -- run compares in weighted order */\n return (this.name ?? '').localeCompare(other.name ?? '') ||\n (this.email ?? '').localeCompare(other.email ?? '') ||\n (this.phone ?? '').localeCompare(other.phone ?? '')\n }\n}\n\nexport class OrganizationalContactRepository extends Set<OrganizationalContact> {\n static compareItems (a: OrganizationalContact, b: OrganizationalContact): number {\n return a.compare(b)\n }\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport { OrganizationalContactRepository } from './organizationalContact'\n\ninterface OptionalProperties {\n name?: OrganizationalEntity['name']\n url?: OrganizationalEntity['url']\n contact?: OrganizationalEntity['contact']\n}\n\nexport class OrganizationalEntity {\n name?: string\n url: Set<URL | string>\n contact: OrganizationalContactRepository\n\n constructor (op: OptionalProperties = {}) {\n this.name = op.name\n this.url = op.url ?? new Set()\n this.contact = op.contact ?? new OrganizationalContactRepository()\n }\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport { isNonNegativeInteger, NonNegativeInteger } from '../types'\nimport { Attachment } from './attachment'\n\ninterface OptionalProperties {\n version?: SWID['version']\n patch?: SWID['patch']\n text?: SWID['text']\n url?: SWID['url']\n tagVersion?: SWID['tagVersion']\n}\n\n/**\n * @see {@link https://csrc.nist.gov/projects/Software-Identification-SWID}\n */\nexport class SWID {\n tagId: string\n name: string\n version?: string\n patch?: boolean\n text?: Attachment\n url?: URL | string\n\n /** @see tagVersion */\n #tagVersion?: NonNegativeInteger\n\n /**\n * @throws {TypeError} if {@see op.tagVersion} is neither {@see NonNegativeInteger} nor {@see undefined}\n */\n constructor (tagId: string, name: string, op: OptionalProperties = {}) {\n this.tagId = tagId\n this.name = name\n this.version = op.version\n this.patch = op.patch\n this.text = op.text\n this.url = op.url\n this.tagVersion = op.tagVersion\n }\n\n get tagVersion (): NonNegativeInteger | undefined {\n return this.#tagVersion\n }\n\n /**\n * @throws {TypeError} if value is neither {@see NonNegativeInteger} nor {@see undefined}\n */\n set tagVersion (value: NonNegativeInteger | undefined) {\n if (value !== undefined && !isNonNegativeInteger(value)) {\n throw new TypeError('Not NonNegativeInteger nor undefined')\n }\n this.#tagVersion = value\n }\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport { HashRepository } from './hash'\nimport { ExternalReferenceRepository } from './externalReference'\n\ninterface OptionalProperties {\n vendor?: Tool['vendor']\n name?: Tool['name']\n version?: Tool['version']\n hashes?: Tool['hashes']\n externalReferences?: Tool['externalReferences']\n}\n\nexport class Tool {\n vendor?: string\n name?: string\n version?: string\n hashes: HashRepository\n externalReferences: ExternalReferenceRepository\n\n constructor (op: OptionalProperties = {}) {\n this.vendor = op.vendor\n this.name = op.name\n this.version = op.version\n this.hashes = op.hashes ?? new HashRepository()\n this.externalReferences = op.externalReferences ?? new ExternalReferenceRepository()\n }\n\n compare (other: Tool): number {\n /* eslint-disable-next-line @typescript-eslint/strict-boolean-expressions -- run compares in weighted order */\n return (this.vendor ?? '').localeCompare(other.vendor ?? '') ||\n (this.name ?? '').localeCompare(other.name ?? '') ||\n (this.version ?? '').localeCompare(other.version ?? '')\n }\n}\n\nexport class ToolRepository extends Set<Tool> {\n static compareItems (a: Tool, b: Tool): number {\n return a.compare(b)\n }\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nexport * from './index'\n\nexport * from './xmlSerializer.web'\n// export * from './xmlDeserializer.web' // TODO\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport { Bom, BomRef } from '../models'\nimport { BomRefDiscriminator } from './bomRefDiscriminator'\nimport { NormalizerOptions, Serializer, SerializerOptions } from './types'\n\nexport abstract class BaseSerializer<NormalizedBom> implements Serializer {\n serialize (bom: Bom, options?: SerializerOptions & NormalizerOptions): string {\n const bomRefDiscriminator = new BomRefDiscriminator(this.#getAllBomRefs(bom))\n try {\n // This IS NOT the place to put meaning to the BomRef values. This would be out of scope.\n // This IS the place to make BomRef values (temporary) unique in their own document scope.\n bomRefDiscriminator.discriminate()\n\n const normalized = this._normalize(bom, options)\n return this._serialize(normalized, options)\n } finally {\n bomRefDiscriminator.reset()\n }\n }\n\n #getAllBomRefs (bom: Bom): Iterable<BomRef> {\n const bomRefs = new Set<BomRef>()\n if (bom.metadata.component !== undefined) {\n bomRefs.add(bom.metadata.component.bomRef)\n }\n for (const { bomRef } of bom.components) {\n bomRefs.add(bomRef)\n }\n return bomRefs.values()\n }\n\n protected abstract _normalize (bom: Bom, options?: NormalizerOptions): NormalizedBom\n protected abstract _serialize (normalizedBom: NormalizedBom, options?: SerializerOptions): string\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport { BomRef } from '../models'\n\nexport class BomRefDiscriminator {\n readonly #originalValues: ReadonlyMap<BomRef, string | undefined>\n\n readonly #prefix: string\n\n constructor (bomRefs: Iterable<BomRef>, prefix: string = 'BomRef') {\n this.#originalValues = new Map(\n Array.from(bomRefs).map(ref => [ref, ref.value])\n )\n this.#prefix = prefix\n }\n\n [Symbol.iterator] (): IterableIterator<BomRef> {\n return this.#originalValues.keys()\n }\n\n discriminate (): void {\n const knownRefValues = new Set<string>()\n for (const [bomRef] of this.#originalValues) {\n let value = bomRef.value\n if (value === undefined || knownRefValues.has(value)) {\n value = this.#makeUniqueId()\n bomRef.value = value\n }\n knownRefValues.add(value)\n }\n }\n\n reset (): void {\n for (const [bomRef, originalValue] of this.#originalValues) {\n bomRef.value = originalValue\n }\n }\n\n /**\n * generate a string in the format:\n * <prefix>.<some-characters>.<some-characters>\n */\n #makeUniqueId (): string {\n return `${\n this.#prefix\n }${\n Math.random().toString(32).substring(1)\n }${\n Math.random().toString(32).substring(1)\n }`\n }\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\n// not everything is public, yet\n\nexport * as Types from './types'\n\nexport * from './baseSerializer'\n// export * from './baseDeserializer' // TODO\n\nexport * from './bomRefDiscriminator'\n\nexport * as JSON from './json'\nexport * from './jsonSerializer'\n// export * from './jsonDeserializer' // TODO\n\nexport * as XML from './xml'\nexport * from './xmlBaseSerializer'\n// export * from './xmlBaseDeserializer' // TODO\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nexport * as Types from './types'\n\nexport * as Normalize from './normalize'\n// export * as Denormalize from './denormalize' // TODO\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport { isNotUndefined, Stringable } from '../../helpers/types'\nimport * as Models from '../../models'\nimport { Protocol as Spec, Version as SpecVersion } from '../../spec'\nimport { NormalizerOptions } from '../types'\nimport { JsonSchema, Normalized } from './types'\n\nexport class Factory {\n readonly #spec: Spec\n\n constructor (spec: Spec) {\n this.#spec = spec\n }\n\n get spec (): Spec {\n return this.#spec\n }\n\n makeForBom (): BomNormalizer {\n return new BomNormalizer(this)\n }\n\n makeForMetadata (): MetadataNormalizer {\n return new MetadataNormalizer(this)\n }\n\n makeForComponent (): ComponentNormalizer {\n return new ComponentNormalizer(this)\n }\n\n makeForTool (): ToolNormalizer {\n return new ToolNormalizer(this)\n }\n\n makeForOrganizationalContact (): OrganizationalContactNormalizer {\n return new OrganizationalContactNormalizer(this)\n }\n\n makeForOrganizationalEntity (): OrganizationalEntityNormalizer {\n return new OrganizationalEntityNormalizer(this)\n }\n\n makeForHash (): HashNormalizer {\n return new HashNormalizer(this)\n }\n\n makeForLicense (): LicenseNormalizer {\n return new LicenseNormalizer(this)\n }\n\n makeForSWID (): SWIDNormalizer {\n return new SWIDNormalizer(this)\n }\n\n makeForExternalReference (): ExternalReferenceNormalizer {\n return new ExternalReferenceNormalizer(this)\n }\n\n makeForAttachment (): AttachmentNormalizer {\n return new AttachmentNormalizer(this)\n }\n\n makeForDependencyGraph (): DependencyGraphNormalizer {\n return new DependencyGraphNormalizer(this)\n }\n}\n\nconst schemaUrl: ReadonlyMap<SpecVersion, string> = new Map([\n [SpecVersion.v1dot2, 'http://cyclonedx.org/schema/bom-1.2b.schema.json'],\n [SpecVersion.v1dot3, 'http://cyclonedx.org/schema/bom-1.3a.schema.json'],\n [SpecVersion.v1dot4, 'http://cyclonedx.org/schema/bom-1.4.schema.json']\n])\n\ninterface Normalizer {\n normalize: (data: object, options: NormalizerOptions) => object | undefined\n\n normalizeIter?: (data: Iterable<object>, options: NormalizerOptions) => object[]\n}\n\nabstract class Base implements Normalizer {\n protected readonly _factory: Factory\n\n constructor (factory: Factory) {\n this._factory = factory\n }\n\n abstract normalize (data: object, options: NormalizerOptions): object | undefined\n}\n\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing, @typescript-eslint/strict-boolean-expressions --\n * since empty strings need to be treated as undefined/null\n */\n\nexport class BomNormalizer extends Base {\n normalize (data: Models.Bom, options: NormalizerOptions): Normalized.Bom {\n return {\n $schema: schemaUrl.get(this._factory.spec.version),\n bomFormat: 'CycloneDX',\n specVersion: this._factory.spec.version,\n version: data.version,\n serialNumber: data.serialNumber,\n metadata: this._factory.makeForMetadata().normalize(data.metadata, options),\n components: data.components.size > 0\n ? this._factory.makeForComponent().normalizeIter(data.components, options)\n // spec < 1.4 requires `component` to be array\n : [],\n dependencies: this._factory.spec.supportsDependencyGraph\n ? this._factory.makeForDependencyGraph().normalize(data, options)\n : undefined\n }\n }\n}\n\nexport class MetadataNormalizer extends Base {\n normalize (data: Models.Metadata, options: NormalizerOptions): Normalized.Metadata {\n const orgEntityNormalizer = this._factory.makeForOrganizationalEntity()\n return {\n timestamp: data.timestamp?.toISOString(),\n tools: data.tools.size > 0\n ? this._factory.makeForTool().normalizeIter(data.tools, options)\n : undefined,\n authors: data.authors.size > 0\n ? this._factory.makeForOrganizationalContact().normalizeIter(data.authors, options)\n : undefined,\n component: data.component === undefined\n ? undefined\n : this._factory.makeForComponent().normalize(data.component, options),\n manufacture: data.manufacture === undefined\n ? undefined\n : orgEntityNormalizer.normalize(data.manufacture, options),\n supplier: data.supplier === undefined\n ? undefined\n : orgEntityNormalizer.normalize(data.supplier, options)\n }\n }\n}\n\nexport class ToolNormalizer extends Base {\n normalize (data: Models.Tool, options: NormalizerOptions): Normalized.Tool {\n return {\n vendor: data.vendor || undefined,\n name: data.name || undefined,\n version: data.version || undefined,\n hashes: data.hashes.size > 0\n ? this._factory.makeForHash().normalizeIter(data.hashes, options)\n : undefined,\n externalReferences: this._factory.spec.supportsToolReferences && data.externalReferences.size > 0\n ? this._factory.makeForExternalReference().normalizeIter(data.externalReferences, options)\n : undefined\n }\n }\n\n normalizeIter (data: Iterable<Models.Tool>, options: NormalizerOptions): Normalized.Tool[] {\n const tools = Array.from(data)\n if (options.sortLists ?? false) {\n tools.sort(Models.ToolRepository.compareItems)\n }\n return tools.map(t => this.normalize(t, options))\n }\n}\n\nexport class HashNormalizer extends Base {\n normalize ([algorithm, content]: Models.Hash, options: NormalizerOptions): Normalized.Hash | undefined {\n const spec = this._factory.spec\n return spec.supportsHashAlgorithm(algorithm) && spec.supportsHashValue(content)\n ? {\n alg: algorithm,\n content: content\n }\n : undefined\n }\n\n normalizeIter (data: Iterable<Models.Hash>, options: NormalizerOptions): Normalized.Hash[] {\n const hashes = Array.from(data)\n if (options.sortLists ?? false) {\n hashes.sort(Models.HashRepository.compareItems)\n }\n return hashes.map(h => this.normalize(h, options))\n .filter(isNotUndefined)\n }\n}\n\nexport class OrganizationalContactNormalizer extends Base {\n normalize (data: Models.OrganizationalContact, options: NormalizerOptions): Normalized.OrganizationalContact {\n return {\n name: data.name || undefined,\n email: JsonSchema.isIdnEmail(data.email)\n ? data.email\n : undefined,\n phone: data.phone || undefined\n }\n }\n\n normalizeIter (data: Iterable<Models.OrganizationalContact>, options: NormalizerOptions): Normalized.OrganizationalContact[] {\n const contacts = Array.from(data)\n if (options.sortLists ?? false) {\n contacts.sort(Models.OrganizationalContactRepository.compareItems)\n }\n return contacts.map(c => this.normalize(c, options))\n }\n}\n\nexport class OrganizationalEntityNormalizer extends Base {\n normalize (data: Models.OrganizationalEntity, options: NormalizerOptions): Normalized.OrganizationalEntity {\n const urls = normalizeStringableIter(data.url, options)\n .filter(JsonSchema.isIriReference)\n return {\n name: data.name || undefined,\n /** must comply to {@link https://datatracker.ietf.org/doc/html/rfc3987} */\n url: urls.length > 0\n ? urls\n : undefined,\n contact: data.contact.size > 0\n ? this._factory.makeForOrganizationalContact().normalizeIter(data.contact, options)\n : undefined\n }\n }\n}\n\nexport class ComponentNormalizer extends Base {\n normalize (data: Models.Component, options: NormalizerOptions): Normalized.Component | undefined {\n return this._factory.spec.supportsComponentType(data.type)\n ? {\n type: data.type,\n name: data.name,\n group: data.group || undefined,\n // version fallback to string for spec < 1.4\n version: data.version || '',\n 'bom-ref': data.bomRef.value || undefined,\n supplier: data.supplier === undefined\n ? undefined\n : this._factory.makeForOrganizationalEntity().normalize(data.supplier, options),\n author: data.author || undefined,\n publisher: data.publisher || undefined,\n description: data.description || undefined,\n scope: data.scope,\n hashes: data.hashes.size > 0\n ? this._factory.makeForHash().normalizeIter(data.hashes, options)\n : undefined,\n licenses: data.licenses.size > 0\n ? this._factory.makeForLicense().normalizeIter(data.licenses, options)\n : undefined,\n copyright: data.copyright || undefined,\n cpe: data.cpe || undefined,\n purl: data.purl?.toString(),\n swid: data.swid === undefined\n ? undefined\n : this._factory.makeForSWID().normalize(data.swid, options),\n externalReferences: data.externalReferences.size > 0\n ? this._factory.makeForExternalReference().normalizeIter(data.externalReferences, options)\n : undefined\n }\n : undefined\n }\n\n normalizeIter (data: Iterable<Models.Component>, options: NormalizerOptions): Normalized.Component[] {\n const components = Array.from(data)\n if (options.sortLists ?? false) {\n components.sort(Models.ComponentRepository.compareItems)\n }\n return components.map(c => this.normalize(c, options))\n .filter(isNotUndefined)\n }\n}\n\nexport class LicenseNormalizer extends Base {\n normalize (data: Models.License, options: NormalizerOptions): Normalized.License {\n switch (true) {\n case data instanceof Models.NamedLicense:\n return this.#normalizeNamedLicense(data as Models.NamedLicense, options)\n case data instanceof Models.SpdxLicense:\n return this.#normalizeSpdxLicense(data as Models.SpdxLicense, options)\n case data instanceof Models.LicenseExpression:\n return this.#normalizeLicenseExpression(data as Models.LicenseExpression)\n default:\n // this case is not expected to happen - and therefore is undocumented\n throw new TypeError('Unexpected LicenseChoice')\n }\n }\n\n #normalizeNamedLicense (data: Models.NamedLicense, options: NormalizerOptions): Normalized.NamedLicense {\n return {\n license: {\n name: data.name,\n text: data.text === undefined\n ? undefined\n : this._factory.makeForAttachment().normalize(data.text, options),\n url: data.url?.toString()\n }\n }\n }\n\n #normalizeSpdxLicense (data: Models.SpdxLicense, options: NormalizerOptions): Normalized.SpdxLicense {\n return {\n license: {\n id: data.id,\n text: data.text === undefined\n ? undefined\n : this._factory.makeForAttachment().normalize(data.text, options),\n url: data.url?.toString()\n }\n }\n }\n\n #normalizeLicenseExpression (data: Models.LicenseExpression): Normalized.LicenseExpression {\n return {\n expression: data.expression\n }\n }\n\n normalizeIter (data: Iterable<Models.License>, options: NormalizerOptions): Normalized.License[] {\n const licenses = Array.from(data)\n if (options.sortLists ?? false) {\n licenses.sort(Models.LicenseRepository.compareItems)\n }\n return licenses.map(c => this.normalize(c, options))\n }\n}\n\nexport class SWIDNormalizer extends Base {\n normalize (data: Models.SWID, options: NormalizerOptions): Normalized.SWID {\n const url = data.url?.toString()\n return {\n tagId: data.tagId,\n name: data.name,\n version: data.version || undefined,\n tagVersion: data.tagVersion,\n patch: data.patch,\n text: data.text === undefined\n ? undefined\n : this._factory.makeForAttachment().normalize(data.text, options),\n url: JsonSchema.isIriReference(url)\n ? url\n : undefined\n }\n }\n}\n\nexport class ExternalReferenceNormalizer extends Base {\n normalize (data: Models.ExternalReference, options: NormalizerOptions): Normalized.ExternalReference | undefined {\n return this._factory.spec.supportsExternalReferenceType(data.type)\n ? {\n url: data.url.toString(),\n type: data.type,\n comment: data.comment || undefined\n }\n : undefined\n }\n\n normalizeIter (data: Iterable<Models.ExternalReference>, options: NormalizerOptions): Normalized.ExternalReference[] {\n const refs = Array.from(data)\n if (options.sortLists ?? false) {\n refs.sort(Models.ExternalReferenceRepository.compareItems)\n }\n return refs.map(r => this.normalize(r, options))\n .filter(isNotUndefined)\n }\n}\n\nexport class AttachmentNormalizer extends Base {\n normalize (data: Models.Attachment, options: NormalizerOptions): Normalized.Attachment {\n return {\n content: data.content,\n contentType: data.contentType || undefined,\n encoding: data.encoding\n }\n }\n}\n\nexport class DependencyGraphNormalizer extends Base {\n normalize (data: Models.Bom, options: NormalizerOptions): Normalized.Dependency[] | undefined {\n if (!data.metadata.component?.bomRef.value) {\n // the graph is missing the entry point -> omit the graph\n return undefined\n }\n\n const allRefs = new Map<Models.BomRef, Models.BomRefRepository>()\n for (const c of data.components) {\n allRefs.set(c.bomRef, new Models.BomRefRepository(c.dependencies))\n }\n allRefs.set(data.metadata.component.bomRef, data.metadata.component.dependencies)\n\n const normalized: Normalized.Dependency[] = []\n for (const [ref, deps] of allRefs) {\n const dep = this.#normalizeDependency(ref, deps, allRefs, options)\n if (isNotUndefined(dep)) {\n normalized.push(dep)\n }\n }\n\n if (options.sortLists ?? false) {\n normalized.sort(({ ref: a }, { ref: b }) => a.localeCompare(b))\n }\n\n return normalized\n }\n\n #normalizeDependency (\n ref: Models.BomRef,\n deps: Models.BomRefRepository,\n allRefs: Map<Models.BomRef, Models.BomRefRepository>,\n options: NormalizerOptions\n ): Normalized.Dependency | undefined {\n const bomRef = ref.toString()\n if (bomRef.length === 0) {\n // no value -> cannot render\n return undefined\n }\n\n const dependsOn: string[] = normalizeStringableIter(\n Array.from(deps).filter(d => allRefs.has(d) && d !== ref),\n options\n ).filter(d => d.length > 0)\n\n return {\n ref: bomRef,\n dependsOn: dependsOn.length > 0\n ? dependsOn\n : undefined\n }\n }\n}\n\n/* eslint-enable @typescript-eslint/prefer-nullish-coalescing, @typescript-eslint/strict-boolean-expressions */\n\nfunction normalizeStringableIter (data: Iterable<Stringable>, options: NormalizerOptions): string[] {\n const r: string[] = Array.from(data, d => d.toString())\n if (options.sortLists ?? false) {\n r.sort((a, b) => a.localeCompare(b))\n }\n return r\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport * as Enums from '../../enums'\nimport { HashContent } from '../../models'\nimport { SpdxId } from '../../spdx'\nimport { CPE, Integer, UrnUuid } from '../../types'\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace JsonSchema {\n\n /**\n * @see isIriReference\n */\n export type IriReference = string\n /**\n * Test whether format is JSON::iri-reference - best-effort.\n *\n * @see {@link https://datatracker.ietf.org/doc/html/rfc3987}\n */\n export function isIriReference (value: IriReference | any): value is IriReference {\n return typeof value === 'string' &&\n value.length > 0\n // TODO add more validation according to spec\n }\n\n /**\n * @see isIdnEmail\n */\n export type IdnEmail = string\n /**\n * Test whether format is JSON::idn-email - best-effort.\n *\n * @see {@link https://datatracker.ietf.org/doc/html/rfc6531}\n */\n export function isIdnEmail (value: IdnEmail | any): value is IdnEmail {\n return typeof value === 'string' &&\n value.length > 0\n // TODO add more validation according to spec\n }\n\n export type DateTime = string\n\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace Normalized {\n\n export type RefType = string\n\n export interface Bom {\n $schema?: string\n bomFormat: 'CycloneDX'\n specVersion: string\n version: Integer\n serialNumber?: UrnUuid\n metadata?: Metadata\n components?: Component[]\n externalReferences?: ExternalReference[]\n dependencies?: Dependency[]\n }\n\n export interface Metadata {\n timestamp?: JsonSchema.DateTime\n tools?: Tool[]\n authors?: OrganizationalContact[]\n component?: Component\n manufacture?: OrganizationalEntity\n supplier?: OrganizationalEntity\n licenses?: License[]\n }\n\n export interface Tool {\n vendor?: string\n name?: string\n version?: string\n hashes?: Hash[]\n externalReferences?: ExternalReference[]\n }\n\n export interface OrganizationalContact {\n name?: string\n email?: JsonSchema.IdnEmail\n phone?: string\n }\n\n export interface OrganizationalEntity {\n name?: string\n url?: JsonSchema.IriReference[]\n contact?: OrganizationalContact[]\n }\n\n export interface Hash {\n alg: Enums.HashAlgorithm\n content: HashContent\n }\n\n export interface Component {\n type: Enums.ComponentType\n name: string\n 'mime-type'?: string\n 'bom-ref'?: RefType\n supplier?: OrganizationalEntity\n author?: string\n publisher?: string\n group?: string\n version?: string\n description?: string\n scope?: Enums.ComponentScope\n hashes?: Hash[]\n licenses?: License[]\n copyright?: string\n cpe?: CPE\n purl?: string\n swid?: SWID\n modified?: boolean\n externalReferences?: ExternalReference[]\n components?: Component[]\n }\n\n export interface NamedLicense {\n license: {\n name: string\n text?: Attachment\n url?: string\n }\n }\n\n export interface SpdxLicense {\n license: {\n /** @see {@link http://cyclonedx.org/schema/spdx} */\n id: SpdxId\n text?: Attachment\n url?: string\n }\n }\n\n export interface LicenseExpression {\n expression: string\n }\n\n export type License = NamedLicense | SpdxLicense | LicenseExpression\n\n export interface SWID {\n tagId: string\n name: string\n version?: string\n tagVersion?: Integer\n patch?: boolean\n text?: Attachment\n url?: JsonSchema.IriReference\n }\n\n export interface ExternalReference {\n url: string\n type: Enums.ExternalReferenceType\n comment?: string\n }\n\n export interface Attachment {\n content?: string\n contentType?: string\n encoding?: Enums.AttachmentEncoding\n }\n\n export interface Dependency {\n ref: RefType\n dependsOn?: RefType[]\n }\n\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport { Bom } from '../models'\nimport { Format, UnsupportedFormatError } from '../spec'\nimport { NormalizerOptions, SerializerOptions } from './types'\nimport { BaseSerializer } from './baseSerializer'\nimport { Factory as NormalizerFactory } from './json/normalize'\nimport { Normalized } from './json/types'\n\n/**\n * Multi purpose Json serializer.\n */\nexport class JsonSerializer extends BaseSerializer<Normalized.Bom> {\n readonly #normalizerFactory: NormalizerFactory\n\n /**\n * @throws {UnsupportedFormatError} if {@see normalizerFactory.spec} does not support {@see Format.JSON}.\n */\n constructor (normalizerFactory: NormalizerFactory) {\n if (!normalizerFactory.spec.supportsFormat(Format.JSON)) {\n throw new UnsupportedFormatError('Spec does not support JSON format.')\n }\n\n super()\n this.#normalizerFactory = normalizerFactory\n }\n\n protected _normalize (\n bom: Bom,\n options: NormalizerOptions = {}\n ): Normalized.Bom {\n return this.#normalizerFactory.makeForBom()\n .normalize(bom, options)\n }\n\n protected _serialize (\n bom: Normalized.Bom,\n { space }: SerializerOptions = {}\n ): string {\n return JSON.stringify(bom, null, space)\n }\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport { Bom } from '../models'\n\nexport interface NormalizerOptions {\n /**\n * Whether to sort lists in normalization results. Sorted lists make the output reproducible.\n */\n sortLists?: boolean\n}\n\nexport interface SerializerOptions {\n /**\n * Add indention in the serialization result. Indention increases readability for humans.\n */\n space?: string | number\n}\n\nexport interface Serializer {\n serialize: (bom: Bom, options?: SerializerOptions & NormalizerOptions) => string\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nexport * as Types from './types'\n\nexport * as Normalize from './normalize'\n// export * as Denormalize from './denormalize' // TODO\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport { isNotUndefined, Stringable } from '../../helpers/types'\nimport * as Models from '../../models'\nimport { Protocol as Spec, Version as SpecVersion } from '../../spec'\nimport { NormalizerOptions } from '../types'\nimport { SimpleXml, XmlSchema } from './types'\n\nexport class Factory {\n readonly #spec: Spec\n\n constructor (spec: Spec) {\n this.#spec = spec\n }\n\n get spec (): Spec {\n return this.#spec\n }\n\n makeForBom (): BomNormalizer {\n return new BomNormalizer(this)\n }\n\n makeForMetadata (): MetadataNormalizer {\n return new MetadataNormalizer(this)\n }\n\n makeForComponent (): ComponentNormalizer {\n return new ComponentNormalizer(this)\n }\n\n makeForTool (): ToolNormalizer {\n return new ToolNormalizer(this)\n }\n\n makeForOrganizationalContact (): OrganizationalContactNormalizer {\n return new OrganizationalContactNormalizer(this)\n }\n\n makeForOrganizationalEntity (): OrganizationalEntityNormalizer {\n return new OrganizationalEntityNormalizer(this)\n }\n\n makeForHash (): HashNormalizer {\n return new HashNormalizer(this)\n }\n\n makeForLicense (): LicenseNormalizer {\n return new LicenseNormalizer(this)\n }\n\n makeForSWID (): SWIDNormalizer {\n return new SWIDNormalizer(this)\n }\n\n makeForExternalReference (): ExternalReferenceNormalizer {\n return new ExternalReferenceNormalizer(this)\n }\n\n makeForAttachment (): AttachmentNormalizer {\n return new AttachmentNormalizer(this)\n }\n\n makeForDependencyGraph (): DependencyGraphNormalizer {\n return new DependencyGraphNormalizer(this)\n }\n}\n\nconst xmlNamespace: ReadonlyMap<SpecVersion, string> = new Map([\n [SpecVersion.v1dot2, 'http://cyclonedx.org/schema/bom/1.2'],\n [SpecVersion.v1dot3, 'http://cyclonedx.org/schema/bom/1.3'],\n [SpecVersion.v1dot4, 'http://cyclonedx.org/schema/bom/1.4']\n])\n\ninterface Normalizer {\n normalize: (data: object, options: NormalizerOptions, elementName?: string) => object | undefined\n\n normalizeIter?: (data: Iterable<object>, options: NormalizerOptions, elementName: string) => object[]\n}\n\nabstract class Base implements Normalizer {\n protected readonly _factory: Factory\n\n constructor (factory: Factory) {\n this._factory = factory\n }\n\n /**\n * @param {*} data\n * @param {NormalizerOptions} options\n * @param {string} [elementName] element name. XML defines structures; the element's name is defined on usage of a structure.\n */\n abstract normalize (data: object, options: NormalizerOptions, elementName?: string): object | undefined\n}\n\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing, @typescript-eslint/strict-boolean-expressions --\n * since empty strings need to be treated as undefined/null\n */\n\nexport class BomNormalizer extends Base {\n normalize (data: Models.Bom, options: NormalizerOptions): SimpleXml.Element {\n const components: SimpleXml.Element = {\n // spec < 1.4 always requires a 'components' element\n type: 'element',\n name: 'components',\n children: data.components.size > 0\n ? this._factory.makeForComponent().normalizeIter(data.components, options, 'component')\n : undefined\n }\n return {\n type: 'element',\n // the element's name is hardcoded in the XSD\n name: 'bom',\n namespace: xmlNamespace.get(this._factory.spec.version),\n attributes: {\n version: data.version,\n serialNumber: data.serialNumber\n },\n children: [\n data.metadata\n ? this._factory.makeForMetadata().normalize(data.metadata, options, 'metadata')\n : undefined,\n components,\n this._factory.spec.supportsDependencyGraph\n ? this._factory.makeForDependencyGraph().normalize(data, options, 'dependencies')\n : undefined\n ].filter(isNotUndefined)\n }\n }\n}\n\nexport class MetadataNormalizer extends Base {\n normalize (data: Models.Metadata, options: NormalizerOptions, elementName: string): SimpleXml.Element {\n const orgEntityNormalizer = this._factory.makeForOrganizationalEntity()\n const timestamp: SimpleXml.Element | undefined = data.timestamp === undefined\n ? undefined\n : {\n type: 'element',\n name: 'timestamp',\n children: data.timestamp.toISOString()\n }\n const tools: SimpleXml.Element | undefined = data.tools.size > 0\n ? {\n type: 'element',\n name: 'tools',\n children: this._factory.makeForTool().normalizeIter(data.tools, options, 'tool')\n }\n : undefined\n const authors: SimpleXml.Element | undefined = data.authors.size > 0\n ? {\n type: 'element',\n name: 'authors',\n children: this._factory.makeForOrganizationalContact()\n .normalizeIter(data.authors, options, 'author')\n }\n : undefined\n return {\n type: 'element',\n name: elementName,\n children: [\n timestamp,\n tools,\n authors,\n data.component === undefined\n ? undefined\n : this._factory.makeForComponent().normalize(data.component, options, 'component'),\n data.manufacture === undefined\n ? undefined\n : orgEntityNormalizer.normalize(data.manufacture, options, 'manufacture'),\n data.supplier === undefined\n ? undefined\n : orgEntityNormalizer.normalize(data.supplier, options, 'supplier')\n ].filter(isNotUndefined)\n }\n }\n}\n\nexport class ToolNormalizer extends Base {\n normalize (data: Models.Tool, options: NormalizerOptions, elementName: string): SimpleXml.Element {\n const hashes: SimpleXml.Element | undefined = data.hashes.size > 0\n ? {\n type: 'element',\n name: 'hashes',\n children: this._factory.makeForHash().normalizeIter(data.hashes, options, 'hash')\n }\n : undefined\n const externalReferences: SimpleXml.Element | undefined =\n this._factory.spec.supportsToolReferences && data.externalReferences.size > 0\n ? {\n type: 'element',\n name: 'externalReferences',\n children: this._factory.makeForExternalReference()\n .normalizeIter(data.externalReferences, options, 'reference')\n }\n : undefined\n return {\n type: 'element',\n name: elementName,\n children: [\n makeOptionalTextElement(data.vendor, 'vendor'),\n makeOptionalTextElement(data.name, 'name'),\n makeOptionalTextElement(data.version, 'version'),\n hashes,\n externalReferences\n ].filter(isNotUndefined)\n }\n }\n\n normalizeIter (data: Iterable<Models.Tool>, options: NormalizerOptions, elementName: string): SimpleXml.Element[] {\n const tools = Array.from(data)\n if (options.sortLists) {\n tools.sort(Models.ToolRepository.compareItems)\n }\n return tools.map(t => this.normalize(t, options, elementName))\n }\n}\n\nexport class HashNormalizer extends Base {\n normalize ([algorithm, content]: Models.Hash, options: NormalizerOptions, elementName: string): SimpleXml.Element | undefined {\n const spec = this._factory.spec\n return spec.supportsHashAlgorithm(algorithm) && spec.supportsHashValue(content)\n ? {\n type: 'element',\n name: elementName,\n attributes: { alg: algorithm },\n children: content\n }\n : undefined\n }\n\n normalizeIter (data: Iterable<Models.Hash>, options: NormalizerOptions, elementName: string): SimpleXml.Element[] {\n const hashes = Array.from(data)\n if (options.sortLists ?? false) {\n hashes.sort(Models.HashRepository.compareItems)\n }\n return hashes.map(h => this.normalize(h, options, elementName))\n .filter(isNotUndefined)\n }\n}\n\nexport class OrganizationalContactNormalizer extends Base {\n normalize (data: Models.OrganizationalContact, options: NormalizerOptions, elementName: string): SimpleXml.Element {\n return {\n type: 'element',\n name: elementName,\n children: [\n makeOptionalTextElement(data.name, 'name'),\n makeOptionalTextElement(data.email, 'email'),\n makeOptionalTextElement(data.phone, 'phone')\n ].filter(isNotUndefined)\n }\n }\n\n normalizeIter (data: Iterable<Models.OrganizationalContact>, options: NormalizerOptions, elementName: string): SimpleXml.Element[] {\n const contacts = Array.from(data)\n if (options.sortLists ?? false) {\n contacts.sort(Models.OrganizationalContactRepository.compareItems)\n }\n return contacts.map(c => this.normalize(c, options, elementName))\n }\n}\n\nexport class OrganizationalEntityNormalizer extends Base {\n normalize (data: Models.OrganizationalEntity, options: NormalizerOptions, elementName: string): SimpleXml.Element {\n return {\n type: 'element',\n name: elementName,\n children: [\n makeOptionalTextElement(data.name, 'name'),\n ...makeTextElementIter(data.url, options, 'url')\n .filter(({ children: u }) => XmlSchema.isAnyURI(u)),\n ...this._factory.makeForOrganizationalContact().normalizeIter(data.contact, options, 'contact')\n ].filter(isNotUndefined)\n }\n }\n}\n\nexport class ComponentNormalizer extends Base {\n normalize (data: Models.Component, options: NormalizerOptions, elementName: string): SimpleXml.Element | undefined {\n if (!this._factory.spec.supportsComponentType(data.type)) {\n return undefined\n }\n const supplier: SimpleXml.Element | undefined = data.supplier === undefined\n ? undefined\n : this._factory.makeForOrganizationalEntity().normalize(data.supplier, options, 'supplier')\n const hashes: SimpleXml.Element | undefined = data.hashes.size > 0\n ? {\n type: 'element',\n name: 'hashes',\n children: this._factory.makeForHash().normalizeIter(data.hashes, options, 'hash')\n }\n : undefined\n const licenses: SimpleXml.Element | undefined = data.licenses.size > 0\n ? {\n type: 'element',\n name: 'licenses',\n children: this._factory.makeForLicense().normalizeIter(data.licenses, options)\n }\n : undefined\n const swid: SimpleXml.Element | undefined = data.swid === undefined\n ? undefined\n : this._factory.makeForSWID().normalize(data.swid, options, 'swid')\n const extRefs: SimpleXml.Element | undefined = data.externalReferences.size > 0\n ? {\n type: 'element',\n name: 'externalReferences',\n children: this._factory.makeForExternalReference()\n .normalizeIter(data.externalReferences, options, 'reference')\n }\n : undefined\n return {\n type: 'element',\n name: elementName,\n attributes: {\n type: data.type,\n 'bom-ref': data.bomRef.value\n },\n children: [\n supplier,\n makeOptionalTextElement(data.author, 'author'),\n makeOptionalTextElement(data.publisher, 'publisher'),\n makeOptionalTextElement(data.group, 'group'),\n makeTextElement(data.name, 'name'),\n makeTextElement(\n // version fallback to string for spec < 1.4\n data.version ?? '',\n 'version'\n ),\n makeOptionalTextElement(data.description, 'description'),\n makeOptionalTextElement(data.scope, 'description'),\n hashes,\n licenses,\n makeOptionalTextElement(data.copyright, 'copyright'),\n makeOptionalTextElement(data.cpe, 'cpe'),\n makeOptionalTextElement(data.purl, 'purl'),\n swid,\n extRefs\n ].filter(isNotUndefined)\n }\n }\n\n normalizeIter (data: Iterable<Models.Component>, options: NormalizerOptions, elementName: string): SimpleXml.Element[] {\n const components = Array.from(data)\n if (options.sortLists ?? false) {\n components.sort(Models.ComponentRepository.compareItems)\n }\n return components.map(c => this.normalize(c, options, elementName))\n .filter(isNotUndefined)\n }\n}\n\nexport class LicenseNormalizer extends Base {\n normalize (data: Models.License, options: NormalizerOptions): SimpleXml.Element {\n switch (true) {\n case data instanceof Models.NamedLicense:\n return this.#normalizeNamedLicense(data as Models.NamedLicense, options)\n case data instanceof Models.SpdxLicense:\n return this.#normalizeSpdxLicense(data as Models.SpdxLicense, options)\n case data instanceof Models.LicenseExpression:\n return this.#normalizeLicenseExpression(data as Models.LicenseExpression)\n default:\n // this case is not expected to happen - and therefore is undocumented\n throw new TypeError('Unexpected LicenseChoice')\n }\n }\n\n #normalizeNamedLicense (data: Models.NamedLicense, options: NormalizerOptions): SimpleXml.Element {\n const url = data.url?.toString()\n return {\n type: 'element',\n name: 'license',\n children: [\n makeTextElement(data.name, 'name'),\n data.text === undefined\n ? undefined\n : this._factory.makeForAttachment().normalize(data.text, options, 'text'),\n XmlSchema.isAnyURI(url)\n ? makeTextElement(url, 'url')\n : undefined\n ].filter(isNotUndefined)\n }\n }\n\n #normalizeSpdxLicense (data: Models.SpdxLicense, options: NormalizerOptions): SimpleXml.Element {\n const url = data.url?.toString()\n return {\n type: 'element',\n name: 'license',\n children: [\n makeTextElement(data.id, 'id'),\n data.text === undefined\n ? undefined\n : this._factory.makeForAttachment().normalize(data.text, options, 'text'),\n XmlSchema.isAnyURI(url)\n ? makeTextElement(url, 'url')\n : undefined\n ].filter(isNotUndefined)\n }\n }\n\n #normalizeLicenseExpression (data: Models.LicenseExpression): SimpleXml.Element {\n return makeTextElement(data.expression, 'expression')\n }\n\n normalizeIter (data: Models.LicenseRepository, options: NormalizerOptions): SimpleXml.Element[] {\n const licenses = Array.from(data)\n if (options.sortLists ?? false) {\n licenses.sort(Models.LicenseRepository.compareItems)\n }\n return licenses.map(c => this.normalize(c, options))\n }\n}\n\nexport class SWIDNormalizer extends Base {\n normalize (data: Models.SWID, options: NormalizerOptions, elementName: string): SimpleXml.Element {\n const url = data.url?.toString()\n return {\n type: 'element',\n name: elementName,\n attributes: {\n tagId: data.tagId,\n name: data.name,\n version: data.version || undefined,\n tagVersion: data.tagVersion,\n patch: data.patch === undefined\n ? undefined\n : (data.patch ? 'true' : 'false')\n },\n children: [\n data.text === undefined\n ? undefined\n : this._factory.makeForAttachment().normalize(data.text, options, 'text'),\n XmlSchema.isAnyURI(url)\n ? makeTextElement(url, 'url')\n : undefined\n ].filter(isNotUndefined)\n }\n }\n}\n\nexport class ExternalReferenceNormalizer extends Base {\n normalize (data: Models.ExternalReference, options: NormalizerOptions, elementName: string): SimpleXml.Element | undefined {\n const url = data.url.toString()\n return this._factory.spec.supportsExternalReferenceType(data.type) &&\n XmlSchema.isAnyURI(url)\n ? {\n type: 'element',\n name: elementName,\n attributes: {\n type: data.type\n },\n children: [\n makeTextElement(url, 'url'),\n makeOptionalTextElement(data.comment, 'comment')\n ].filter(isNotUndefined)\n }\n : undefined\n }\n\n normalizeIter (data: Iterable<Models.ExternalReference>, options: NormalizerOptions, elementName: string): SimpleXml.Element[] {\n const references = Array.from(data)\n if (options.sortLists ?? false) {\n references.sort(Models.ExternalReferenceRepository.compareItems)\n }\n return references.map(r => this.normalize(r, options, elementName))\n .filter(isNotUndefined)\n }\n}\n\nexport class AttachmentNormalizer extends Base {\n normalize (data: Models.Attachment, options: NormalizerOptions, elementName: string): SimpleXml.Element {\n return {\n type: 'element',\n name: elementName,\n attributes: {\n 'content-type': data.contentType || undefined,\n encoding: data.encoding || undefined\n },\n children: data.content\n }\n }\n}\n\nexport class DependencyGraphNormalizer extends Base {\n normalize (data: Models.Bom, options: NormalizerOptions, elementName: string): SimpleXml.Element | undefined {\n if (!data.metadata.component?.bomRef.value) {\n // the graph is missing the entry point -> omit the graph\n return undefined\n }\n\n const allRefs = new Map<Models.BomRef, Models.BomRefRepository>()\n for (const c of data.components) {\n allRefs.set(c.bomRef, new Models.BomRefRepository(c.dependencies))\n }\n allRefs.set(data.metadata.component.bomRef, data.metadata.component.dependencies)\n\n const normalized: Array<(SimpleXml.Element & { attributes: { ref: string } })> = []\n for (const [ref, deps] of allRefs) {\n const dep = this.#normalizeDependency(ref, deps, allRefs, options)\n if (isNotUndefined(dep)) {\n normalized.push(dep)\n }\n }\n\n if (options.sortLists ?? false) {\n normalized.sort(\n ({ attributes: { ref: a } }, { attributes: { ref: b } }) => a.localeCompare(b))\n }\n\n return {\n type: 'element',\n name: elementName,\n children: normalized\n }\n }\n\n #normalizeDependency (\n ref: Models.BomRef,\n deps: Models.BomRefRepository,\n allRefs: Map<Models.BomRef, Models.BomRefRepository>,\n options: NormalizerOptions\n ): undefined | (SimpleXml.Element & { attributes: { ref: string } }) {\n const bomRef = ref.toString()\n if (bomRef.length === 0) {\n // no value -> cannot render\n return undefined\n }\n\n const dependsOn: string[] = Array.from(deps).filter(d => allRefs.has(d) && d !== ref)\n .map(d => d.toString()).filter(d => d.length > 0)\n if (options.sortLists ?? false) {\n dependsOn.sort((a, b) => a.localeCompare(b))\n }\n\n return {\n type: 'element',\n name: 'dependency',\n attributes: { ref: bomRef },\n children: dependsOn.map(d => ({\n type: 'element',\n name: 'dependency',\n attributes: { ref: d }\n }))\n }\n }\n}\n\n/* eslint-enable @typescript-eslint/prefer-nullish-coalescing, @typescript-eslint/strict-boolean-expressions */\n\ntype StrictTextElement = SimpleXml.TextElement & { children: string }\n\nfunction makeOptionalTextElement (data: null | undefined | Stringable, elementName: string): undefined | StrictTextElement {\n const s = data?.toString() ?? ''\n return s.length > 0\n ? makeTextElement(s, elementName)\n : undefined\n}\n\nfunction makeTextElement (data: Stringable, elementName: string): StrictTextElement {\n return {\n type: 'element',\n name: elementName,\n children: data.toString()\n }\n}\n\nfunction makeTextElementIter (data: Iterable<Stringable>, options: NormalizerOptions, elementName: string): StrictTextElement[] {\n const r: StrictTextElement[] = Array.from(data, d => makeTextElement(d, elementName))\n if (options.sortLists ?? false) {\n r.sort(({ children: a }, { children: b }) => a.localeCompare(b))\n }\n return r\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace XmlSchema {\n\n /**\n * @see isAnyURI\n */\n export type AnyURI = string\n /**\n * Test whether format is XML::anyURI - best-effort.\n *\n * @see {@link http://www.w3.org/TR/xmlschema-2/#anyURI}\n * @see {@link http://www.datypic.com/sc/xsd/t-xsd_anyURI.html}\n */\n export function isAnyURI (value: AnyURI | any): value is AnyURI {\n return typeof value === 'string' &&\n value.length > 0 &&\n Array.from(value).filter(c => c === '#').length <= 1\n // TODO add more validation according to spec\n }\n\n}\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace SimpleXml {\n\n /**\n * Attribute's name.\n *\n * Must be alphanumeric.\n * Must start with alpha.\n * Must not contain whitespace characters.\n * Should not be literal \"xmlns\".\n */\n export type AttributeName = string\n\n /**\n * Element's name.\n *\n * Must be alphanumeric.\n * Must start with alpha.\n * Must not contain whitespace characters.\n */\n export type ElementName = string\n\n /**\n * Textual representation.\n *\n * Be aware that low-/high-bytes could be represented as numbers.\n * They might need to be converted on serialization.\n */\n export type Text = string | number\n\n /**\n * Unset representation.\n *\n * Do NOT allow null here, as it is context-aware sometimes an empty string or unset,\n * in a space where context is unknown.\n */\n export type Unset = undefined\n\n export interface ElementAttributes {\n [key: AttributeName]: Text | Unset\n }\n\n export type ElementChildren = Iterable<Comment | Element> | Text | Unset\n\n /**\n * Element node.\n */\n export interface Element {\n type: 'element'\n name: ElementName\n namespace?: string | URL\n attributes?: ElementAttributes\n children?: ElementChildren\n }\n\n /**\n * Element node with textual content\n */\n export interface TextElement extends Element {\n children: Text\n }\n\n /**\n * Comment node.\n */\n export interface Comment {\n type: 'comment'\n text?: Text\n }\n\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport { Bom } from '../models'\nimport { Format, UnsupportedFormatError } from '../spec'\nimport { BaseSerializer } from './baseSerializer'\nimport { NormalizerOptions } from './types'\nimport { Factory as NormalizerFactory } from './xml/normalize'\nimport { SimpleXml } from './xml/types'\n\n/**\n * Base XML serializer.\n */\nexport abstract class XmlBaseSerializer extends BaseSerializer<SimpleXml.Element> {\n readonly #normalizerFactory: NormalizerFactory\n\n /**\n * @throws {UnsupportedFormatError} if {@see normalizerFactory.spec} does not support {@see Format.XML}.\n */\n constructor (normalizerFactory: NormalizerFactory) {\n if (!normalizerFactory.spec.supportsFormat(Format.JSON)) {\n throw new UnsupportedFormatError('Spec does not support JSON format.')\n }\n\n super()\n this.#normalizerFactory = normalizerFactory\n }\n\n protected _normalize (\n bom: Bom,\n options: NormalizerOptions = {}\n ): SimpleXml.Element {\n return this.#normalizerFactory.makeForBom()\n .normalize(bom, options)\n }\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport { isNotUndefined } from '../helpers/types'\nimport { SerializerOptions } from './types'\nimport { XmlBaseSerializer } from './xmlBaseSerializer'\nimport { SimpleXml } from './xml/types'\n\n/**\n * XML serializer for web browsers.\n */\nexport class XmlSerializer extends XmlBaseSerializer {\n protected _serialize (\n normalizedBom: SimpleXml.Element,\n { space }: SerializerOptions = {}\n ): string {\n const doc = this.#buildXmlDocument(normalizedBom)\n // TODO: add indention based on `space`\n return (new XMLSerializer()).serializeToString(doc)\n }\n\n #buildXmlDocument (\n normalizedBom: SimpleXml.Element\n ): XMLDocument {\n const namespace = null\n const doc = document.implementation.createDocument(namespace, null)\n doc.appendChild(this.#buildElement(normalizedBom, doc, namespace))\n return doc\n }\n\n #getNS (element: SimpleXml.Element): string | null {\n const ns = (element.namespace ?? element.attributes?.xmlns)?.toString() ?? ''\n return ns.length > 0\n ? ns\n : null\n }\n\n #buildElement (element: SimpleXml.Element, doc: XMLDocument, parentNS: string | null): Element {\n const ns = this.#getNS(element) ?? parentNS\n const node: Element = doc.createElementNS(ns, element.name)\n if (isNotUndefined(element.attributes)) {\n this.#setAttributes(node, element.attributes)\n }\n if (isNotUndefined(element.children)) {\n this.#setChildren(node, element.children, ns)\n }\n return node\n }\n\n #setAttributes (node: Element, attributes: SimpleXml.ElementAttributes): void {\n for (const [name, value] of Object.entries(attributes)) {\n if (isNotUndefined(value) && name !== 'xmlns') {\n // reminder: cannot change a namespace(xmlns) after the fact.\n node.setAttribute(name, `${value}`)\n }\n }\n }\n\n #setChildren (node: Element, children: SimpleXml.ElementChildren, parentNS: string | null = null): void {\n if (typeof children === 'string' || typeof children === 'number') {\n node.textContent = children.toString()\n return\n }\n\n const doc = node.ownerDocument\n for (const child of (children as Iterable<SimpleXml.Comment | SimpleXml.Element>)) {\n if (child.type === 'element') {\n node.appendChild(this.#buildElement(child, doc, parentNS))\n }\n // comments are not implemented, yet\n }\n }\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\n/* eslint-disable */\n/* @ts-ignore: TS6059 -- this works as long as the file/path is available in dist-package */\nimport {enum as _spdxSpecEnum} from '../res/spdx.SNAPSHOT.schema.json'\n/* eslint-enable */\n\n/**\n * One of the known SPDX licence identifiers.\n * @see {@link http://cyclonedx.org/schema/spdx}\n * @see isSupportedSpdxId\n * @see fixupSpdxId\n */\nexport type SpdxId = string\n\nconst spdxIds: ReadonlySet<SpdxId> = new Set(_spdxSpecEnum)\n\nconst spdxLowerToActual: ReadonlyMap<string, SpdxId> = new Map(\n _spdxSpecEnum.map(spdxId => [spdxId.toLowerCase(), spdxId])\n)\n\nexport function isSupportedSpdxId (value: SpdxId | any): value is SpdxId {\n return spdxIds.has(value)\n}\n\n/** Try to convert a string to `SpdxId`. */\nexport function fixupSpdxId (value: string | any): SpdxId | undefined {\n return typeof value === 'string' && value.length > 0\n ? spdxLowerToActual.get(value.toLowerCase())\n : undefined\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nimport { ComponentType, ExternalReferenceType, HashAlgorithm } from './enums'\nimport { HashContent } from './models'\n\nexport enum Version {\n v1dot0 = '1.0',\n v1dot1 = '1.1',\n v1dot2 = '1.2',\n v1dot3 = '1.3',\n v1dot4 = '1.4',\n}\n\nexport enum Format {\n XML = 'xml',\n JSON = 'json',\n}\n\nexport class UnsupportedFormatError extends Error {\n}\n\nexport interface Protocol {\n readonly version: Version\n\n supportsFormat: (f: Format | any) => boolean\n\n supportsComponentType: (ct: ComponentType | any) => boolean\n\n supportsHashAlgorithm: (ha: HashAlgorithm | any) => boolean\n\n supportsHashValue: (hv: HashContent | any) => boolean\n\n supportsExternalReferenceType: (ert: ExternalReferenceType | any) => boolean\n\n readonly supportsDependencyGraph: boolean\n\n readonly supportsToolReferences: boolean\n}\n\n/**\n * @internal This class was never intended to be public,\n * but it is a helper to get the exact spec-versions implemented according to {@see Protocol}.\n */\nclass Spec implements Protocol {\n readonly #version: Version\n readonly #formats: ReadonlySet<Format>\n readonly #componentTypes: ReadonlySet<ComponentType>\n readonly #hashAlgorithms: ReadonlySet<HashAlgorithm>\n readonly #hashValuePattern: RegExp\n readonly #externalReferenceTypes: ReadonlySet<ExternalReferenceType>\n readonly #supportsDependencyGraph: boolean\n readonly #supportsToolReferences: boolean\n\n constructor (\n version: Version,\n formats: Iterable<Format>,\n componentTypes: Iterable<ComponentType>,\n hashAlgorithms: Iterable<HashAlgorithm>,\n hashValuePattern: RegExp,\n externalReferenceTypes: Iterable<ExternalReferenceType>,\n supportsDependencyGraph: boolean,\n supportsToolReferences: boolean\n ) {\n this.#version = version\n this.#formats = new Set(formats)\n this.#componentTypes = new Set(componentTypes)\n this.#hashAlgorithms = new Set(hashAlgorithms)\n this.#hashValuePattern = hashValuePattern\n this.#externalReferenceTypes = new Set(externalReferenceTypes)\n this.#supportsDependencyGraph = supportsDependencyGraph\n this.#supportsToolReferences = supportsToolReferences\n }\n\n get version (): Version {\n return this.#version\n }\n\n supportsFormat (f: Format | any): boolean {\n return this.#formats.has(f)\n }\n\n supportsComponentType (ct: ComponentType | any): boolean {\n return this.#componentTypes.has(ct)\n }\n\n supportsHashAlgorithm (ha: HashAlgorithm | any): boolean {\n return this.#hashAlgorithms.has(ha)\n }\n\n supportsHashValue (hv: HashContent | any): boolean {\n return typeof hv === 'string' &&\n this.#hashValuePattern.test(hv)\n }\n\n supportsExternalReferenceType (ert: ExternalReferenceType | any): boolean {\n return this.#externalReferenceTypes.has(ert)\n }\n\n get supportsDependencyGraph (): boolean {\n return this.#supportsDependencyGraph\n }\n\n get supportsToolReferences (): boolean {\n return this.#supportsToolReferences\n }\n}\n\n/** Specification v1.2 */\nexport const Spec1dot2: Readonly<Protocol> = Object.freeze(new Spec(\n Version.v1dot2,\n [\n Format.XML,\n Format.JSON\n ],\n [\n ComponentType.Application,\n ComponentType.Framework,\n ComponentType.Library,\n ComponentType.Container,\n ComponentType.OperatingSystem,\n ComponentType.Device,\n ComponentType.Firmware,\n ComponentType.File\n ],\n [\n HashAlgorithm.MD5,\n HashAlgorithm['SHA-1'],\n HashAlgorithm['SHA-256'],\n HashAlgorithm['SHA-384'],\n HashAlgorithm['SHA-512'],\n HashAlgorithm['SHA3-256'],\n HashAlgorithm['SHA3-384'],\n HashAlgorithm['SHA3-512'],\n HashAlgorithm['BLAKE2b-256'],\n HashAlgorithm['BLAKE2b-384'],\n HashAlgorithm['BLAKE2b-512'],\n HashAlgorithm.BLAKE3\n ],\n /^([a-fA-F0-9]{32})$|^([a-fA-F0-9]{40})$|^([a-fA-F0-9]{64})$|^([a-fA-F0-9]{96})$|^([a-fA-F0-9]{128})$/,\n [\n ExternalReferenceType.VCS,\n ExternalReferenceType.IssueTracker,\n ExternalReferenceType.Website,\n ExternalReferenceType.Advisories,\n ExternalReferenceType.BOM,\n ExternalReferenceType.MailingList,\n ExternalReferenceType.Social,\n ExternalReferenceType.Chat,\n ExternalReferenceType.Documentation,\n ExternalReferenceType.Support,\n ExternalReferenceType.Distribution,\n ExternalReferenceType.License,\n ExternalReferenceType.BuildMeta,\n ExternalReferenceType.BuildSystem,\n ExternalReferenceType.Other\n ],\n true,\n false\n))\n\n/** Specification v1.3 */\nexport const Spec1dot3: Readonly<Protocol> = Object.freeze(new Spec(\n Version.v1dot3,\n [\n Format.XML,\n Format.JSON\n ],\n [\n ComponentType.Application,\n ComponentType.Framework,\n ComponentType.Library,\n ComponentType.Container,\n ComponentType.OperatingSystem,\n ComponentType.Device,\n ComponentType.Firmware,\n ComponentType.File\n ],\n [\n HashAlgorithm.MD5,\n HashAlgorithm['SHA-1'],\n HashAlgorithm['SHA-256'],\n HashAlgorithm['SHA-384'],\n HashAlgorithm['SHA-512'],\n HashAlgorithm['SHA3-256'],\n HashAlgorithm['SHA3-384'],\n HashAlgorithm['SHA3-512'],\n HashAlgorithm['BLAKE2b-256'],\n HashAlgorithm['BLAKE2b-384'],\n HashAlgorithm['BLAKE2b-512'],\n HashAlgorithm.BLAKE3\n ],\n /^([a-fA-F0-9]{32})$|^([a-fA-F0-9]{40})$|^([a-fA-F0-9]{64})$|^([a-fA-F0-9]{96})$|^([a-fA-F0-9]{128})$/,\n [\n ExternalReferenceType.VCS,\n ExternalReferenceType.IssueTracker,\n ExternalReferenceType.Website,\n ExternalReferenceType.Advisories,\n ExternalReferenceType.BOM,\n ExternalReferenceType.MailingList,\n ExternalReferenceType.Social,\n ExternalReferenceType.Chat,\n ExternalReferenceType.Documentation,\n ExternalReferenceType.Support,\n ExternalReferenceType.Distribution,\n ExternalReferenceType.License,\n ExternalReferenceType.BuildMeta,\n ExternalReferenceType.BuildSystem,\n ExternalReferenceType.Other\n ],\n true,\n false\n))\n\n/** Specification v1.4 */\nexport const Spec1dot4: Readonly<Protocol> = Object.freeze(new Spec(\n Version.v1dot4,\n [\n Format.XML,\n Format.JSON\n ],\n [\n ComponentType.Application,\n ComponentType.Framework,\n ComponentType.Library,\n ComponentType.Container,\n ComponentType.OperatingSystem,\n ComponentType.Device,\n ComponentType.Firmware,\n ComponentType.File\n ],\n [\n HashAlgorithm.MD5,\n HashAlgorithm['SHA-1'],\n HashAlgorithm['SHA-256'],\n HashAlgorithm['SHA-384'],\n HashAlgorithm['SHA-512'],\n HashAlgorithm['SHA3-256'],\n HashAlgorithm['SHA3-384'],\n HashAlgorithm['SHA3-512'],\n HashAlgorithm['BLAKE2b-256'],\n HashAlgorithm['BLAKE2b-384'],\n HashAlgorithm['BLAKE2b-512'],\n HashAlgorithm.BLAKE3\n ],\n /^([a-fA-F0-9]{32})$|^([a-fA-F0-9]{40})$|^([a-fA-F0-9]{64})$|^([a-fA-F0-9]{96})$|^([a-fA-F0-9]{128})$/,\n [\n ExternalReferenceType.VCS,\n ExternalReferenceType.IssueTracker,\n ExternalReferenceType.Website,\n ExternalReferenceType.Advisories,\n ExternalReferenceType.BOM,\n ExternalReferenceType.MailingList,\n ExternalReferenceType.Social,\n ExternalReferenceType.Chat,\n ExternalReferenceType.Documentation,\n ExternalReferenceType.Support,\n ExternalReferenceType.Distribution,\n ExternalReferenceType.License,\n ExternalReferenceType.BuildMeta,\n ExternalReferenceType.BuildSystem,\n ExternalReferenceType.ReleaseNotes,\n ExternalReferenceType.Other\n ],\n true,\n true\n))\n\nexport const SpecVersionDict = Object.freeze(Object.fromEntries([\n [Version.v1dot2, Spec1dot2],\n [Version.v1dot3, Spec1dot3],\n [Version.v1dot4, Spec1dot4]\n]) as { [key in Version]?: Readonly<Protocol> })\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\n/**\n * Define the format for acceptable CPE URIs. Supports CPE 2.2 and CPE 2.3 formats.\n * Refer to {@link https://nvd.nist.gov/products/cpe} for official specification.\n * @see isCPE\n */\nexport type CPE = string\n\n/* eslint-disable-next-line no-useless-escape -- value directly from XML or JSON spec, surrounded with ^$ */\nconst cpePattern = /^([c][pP][eE]:\\/[AHOaho]?(:[A-Za-z0-9\\._\\-~%]*){0,6})$|^(cpe:2\\.3:[aho\\*\\-](:(((\\?*|\\*?)([a-zA-Z0-9\\-\\._]|(\\\\[\\\\\\*\\?!"#$$%&'\\(\\)\\+,\\/:;<=>@\\[\\]\\^`\\{\\|}~]))+(\\?*|\\*?))|[\\*\\-])){5}(:(([a-zA-Z]{2,3}(-([a-zA-Z]{2}|[0-9]{3}))?)|[\\*\\-]))(:(((\\?*|\\*?)([a-zA-Z0-9\\-\\._]|(\\\\[\\\\\\*\\?!"#$$%&'\\(\\)\\+,\\/:;<=>@\\[\\]\\^`\\{\\|}~]))+(\\?*|\\*?))|[\\*\\-])){4})$/\n\nexport function isCPE (value: any): value is CPE {\n return typeof value === 'string' &&\n cpePattern.test(value)\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\nexport * from './cpe'\nexport * from './integer'\nexport * from './mimeType'\nexport * from './urn'\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\n/**\n * Integer\n * @see isInteger\n */\nexport type Integer = number | NonNegativeInteger\n\nexport function isInteger (value: any): value is Integer {\n return Number.isInteger(value)\n}\n\n/**\n * Integer >= 0\n * @see isNonNegativeInteger\n */\nexport type NonNegativeInteger = number | PositiveInteger\n\nexport function isNonNegativeInteger (value: any): value is NonNegativeInteger {\n return isInteger(value) &&\n value >= 0\n}\n\n/**\n * Integer > 0\n * @see isPositiveInteger\n */\nexport type PositiveInteger = number\n\nexport function isPositiveInteger (value: any): value is PositiveInteger {\n return isInteger(value) &&\n value > 0\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\n/**\n * @see isMimeType\n */\nexport type MimeType = string\n\n/* regular expression was taken from the CycloneDX schema definitions. */\nconst mimeTypePattern = /^[-+a-z0-9.]+\\/[-+a-z0-9.]+$/\n\nexport function isMimeType (value: any): value is MimeType {\n return typeof value === 'string' &&\n mimeTypePattern.test(value)\n}\n","/*!\nThis file is part of CycloneDX JavaScript Library.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSPDX-License-Identifier: Apache-2.0\nCopyright (c) OWASP Foundation. All Rights Reserved.\n*/\n\n/**\n * Defines a string representation of a UUID conforming to RFC 4122.\n * @see {@link https://datatracker.ietf.org/doc/html/rfc4122}\n * @see isUrnUuid\n */\nexport type UrnUuid = string\n\n/* regular expression was taken from the CycloneDX schema definitions. */\nconst urnUuidPattern = /^urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/\n\nexport function isUrnUuid (value: any): value is UrnUuid {\n return typeof value === 'string' &&\n urnUuidPattern.test(value)\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/_index.web.ts\");\n",""],"names":[],"sourceRoot":""}
|
package/dist.web/lib.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! For license information please see lib.js.LICENSE.txt */
|
|
2
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.CycloneDX_library=t():e.CycloneDX_library=t()}(self,(()=>(()=>{"use strict";var e={599:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Serialize=t.Spec=t.Factories=t.Models=t.SPDX=t.Enums=t.Types=void 0,t.Types=i(r(380)),t.Enums=i(r(507)),t.SPDX=i(r(169)),t.Models=i(r(357)),t.Factories=i(r(615)),t.Spec=i(r(841)),t.Serialize=i(r(519))},139:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AttachmentEncoding=void 0,(t.AttachmentEncoding||(t.AttachmentEncoding={})).Base64="base64"},947:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ComponentScope=void 0,(r=t.ComponentScope||(t.ComponentScope={})).Required="required",r.Optional="optional",r.Excluded="excluded"},993:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ComponentType=void 0,(r=t.ComponentType||(t.ComponentType={})).Application="application",r.Framework="framework",r.Library="library",r.Container="container",r.OperatingSystem="operating-system",r.Device="device",r.Firmware="firmware",r.File="file"},366:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ExternalReferenceType=void 0,(r=t.ExternalReferenceType||(t.ExternalReferenceType={})).VCS="vcs",r.IssueTracker="issue-tracker",r.Website="website",r.Advisories="advisories",r.BOM="bom",r.MailingList="mailing-list",r.Social="social",r.Chat="chat",r.Documentation="documentation",r.Support="support",r.Distribution="distribution",r.License="license",r.BuildMeta="build-meta",r.BuildSystem="build-system",r.ReleaseNotes="release-notes",r.Other="other"},523:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.HashAlgorithm=void 0,(r=t.HashAlgorithm||(t.HashAlgorithm={})).MD5="MD5",r["SHA-1"]="SHA-1",r["SHA-256"]="SHA-256",r["SHA-384"]="SHA-384",r["SHA-512"]="SHA-512",r["SHA3-256"]="SHA3-256",r["SHA3-384"]="SHA3-384",r["SHA3-512"]="SHA3-512",r["BLAKE2b-256"]="BLAKE2b-256",r["BLAKE2b-384"]="BLAKE2b-384",r["BLAKE2b-512"]="BLAKE2b-512",r.BLAKE3="BLAKE3"},507:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),n(r(139),t),n(r(947),t),n(r(993),t),n(r(366),t),n(r(523),t)},615:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),n(r(892),t)},892:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LicenseFactory=void 0;const o=r(357),n=r(169);t.LicenseFactory=class{makeFromString(e){try{return this.makeExpression(e)}catch(t){return this.makeDisjunctive(e)}}makeExpression(e){return new o.LicenseExpression(e)}makeDisjunctive(e){try{return this.makeDisjunctiveWithId(e)}catch(t){return this.makeDisjunctiveWithName(e)}}makeDisjunctiveWithId(e){const t=(0,n.fixupSpdxId)(String(e));if(void 0===t)throw new RangeError("Unsupported SPDX id");return new o.SpdxLicense(t)}makeDisjunctiveWithName(e){return new o.NamedLicense(String(e))}}},752:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isNotUndefined=void 0,t.isNotUndefined=function(e){return void 0!==e}},400:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Attachment=void 0,t.Attachment=class{constructor(e,t={}){this.contentType=t.contentType,this.content=e,this.encoding=t.encoding}}},818:function(e,t,r){var o,n,i=this&&this.__classPrivateFieldGet||function(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)},a=this&&this.__classPrivateFieldSet||function(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,r):n?n.value=r:t.set(e,r),r};Object.defineProperty(t,"__esModule",{value:!0}),t.Bom=void 0;const s=r(380),c=r(179),l=r(995);t.Bom=class{constructor(e={}){o.set(this,1),n.set(this,void 0),this.metadata=e.metadata??new c.Metadata,this.components=e.components??new l.ComponentRepository,this.version=e.version??this.version,this.serialNumber=e.serialNumber}get version(){return i(this,o,"f")}set version(e){if(!(0,s.isPositiveInteger)(e))throw new TypeError("Not PositiveInteger");a(this,o,e,"f")}get serialNumber(){return i(this,n,"f")}set serialNumber(e){if(void 0!==e&&!(0,s.isUrnUuid)(e))throw new TypeError("Not UrnUuid nor undefined");a(this,n,e,"f")}},o=new WeakMap,n=new WeakMap},471:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BomRefRepository=t.BomRef=void 0,t.BomRef=class{constructor(e){this.value=e}compare(e){return this.toString().localeCompare(e.toString())}toString(){return this.value??""}};class r extends Set{}t.BomRefRepository=r},995:function(e,t,r){var o,n,i=this&&this.__classPrivateFieldSet||function(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,r):n?n.value=r:t.set(e,r),r},a=this&&this.__classPrivateFieldGet||function(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.ComponentRepository=t.Component=void 0;const s=r(380),c=r(471),l=r(368),p=r(422),m=r(191);t.Component=class{constructor(e,t,r={}){o.set(this,void 0),n.set(this,void 0),i(this,o,new c.BomRef(r.bomRef),"f"),this.type=e,this.name=t,this.author=r.author,this.copyright=r.copyright,this.externalReferences=r.externalReferences??new p.ExternalReferenceRepository,this.group=r.group,this.hashes=r.hashes??new l.HashRepository,this.licenses=r.licenses??new m.LicenseRepository,this.publisher=r.publisher,this.purl=r.purl,this.scope=r.scope,this.swid=r.swid,this.version=r.version,this.dependencies=r.dependencies??new c.BomRefRepository,this.cpe=r.cpe}get bomRef(){return a(this,o,"f")}get cpe(){return a(this,n,"f")}set cpe(e){if(void 0!==e&&!(0,s.isCPE)(e))throw new TypeError("Not CPE nor undefined");i(this,n,e,"f")}compare(e){const t=this.bomRef.compare(e.bomRef);return 0!==t?t:void 0!==this.purl&&void 0!==e.purl?this.purl.toString().localeCompare(e.purl.toString()):void 0!==a(this,n,"f")&&void 0!==a(e,n,"f")?a(this,n,"f").toString().localeCompare(a(e,n,"f").toString()):(this.group??"").localeCompare(e.group??"")||this.name.localeCompare(e.name)||(this.version??"").localeCompare(e.version??"")}},o=new WeakMap,n=new WeakMap;class u extends Set{static compareItems(e,t){return e.compare(t)}}t.ComponentRepository=u},422:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ExternalReferenceRepository=t.ExternalReference=void 0,t.ExternalReference=class{constructor(e,t,r={}){this.url=e,this.type=t,this.comment=r.comment}compare(e){return this.type.localeCompare(e.type)||this.url.toString().localeCompare(e.url.toString())}};class r extends Set{static compareItems(e,t){return e.compare(t)}}t.ExternalReferenceRepository=r},368:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.HashRepository=void 0;class r extends Map{static compareItems(e,t){return e[0].localeCompare(t[0])||e[1].localeCompare(t[1])}}t.HashRepository=r},357:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),n(r(400),t),n(r(818),t),n(r(471),t),n(r(995),t),n(r(422),t),n(r(368),t),n(r(191),t),n(r(179),t),n(r(769),t),n(r(979),t),n(r(643),t),n(r(557),t)},191:function(e,t,r){var o,n,i=this&&this.__classPrivateFieldGet||function(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)},a=this&&this.__classPrivateFieldSet||function(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,r):n?n.value=r:t.set(e,r),r};Object.defineProperty(t,"__esModule",{value:!0}),t.LicenseRepository=t.SpdxLicense=t.NamedLicense=t.LicenseExpression=void 0;const s=r(169);class c{constructor(e){o.set(this,void 0),this.expression=e}static isEligibleExpression(e){return"string"==typeof e&&e.length>=8&&"("===e[0]&&")"===e[e.length-1]}get expression(){return i(this,o,"f")}set expression(e){if(!c.isEligibleExpression(e))throw new RangeError("Not eligible expression");a(this,o,e,"f")}compare(e){return i(this,o,"f").localeCompare(i(e,o,"f"))}}t.LicenseExpression=c,o=new WeakMap,t.NamedLicense=class{constructor(e,t={}){this.name=e,this.text=t.text,this.url=t.url}compare(e){return this.name.localeCompare(e.name)}},t.SpdxLicense=class{constructor(e,t={}){n.set(this,void 0),this.id=e,this.text=t.text,this.url=t.url}get id(){return i(this,n,"f")}set id(e){if(!(0,s.isSupportedSpdxId)(e))throw new RangeError("Unknown SPDX id");a(this,n,e,"f")}compare(e){return i(this,n,"f").localeCompare(i(e,n,"f"))}},n=new WeakMap;class l extends Set{static compareItems(e,t){return e.constructor===t.constructor?e.compare(t):e.constructor.name.localeCompare(t.constructor.name)}}t.LicenseRepository=l},179:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Metadata=void 0;const o=r(557),n=r(769);t.Metadata=class{constructor(e={}){this.timestamp=e.timestamp,this.tools=e.tools??new o.ToolRepository,this.authors=e.authors??new n.OrganizationalContactRepository,this.component=e.component,this.manufacture=e.manufacture,this.supplier=e.supplier}}},769:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OrganizationalContactRepository=t.OrganizationalContact=void 0,t.OrganizationalContact=class{constructor(e={}){this.name=e.name,this.email=e.email,this.phone=e.phone}compare(e){return(this.name??"").localeCompare(e.name??"")||(this.email??"").localeCompare(e.email??"")||(this.phone??"").localeCompare(e.phone??"")}};class r extends Set{static compareItems(e,t){return e.compare(t)}}t.OrganizationalContactRepository=r},979:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OrganizationalEntity=void 0;const o=r(769);t.OrganizationalEntity=class{constructor(e={}){this.name=e.name,this.url=e.url??new Set,this.contact=e.contact??new o.OrganizationalContactRepository}}},643:function(e,t,r){var o,n=this&&this.__classPrivateFieldGet||function(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)},i=this&&this.__classPrivateFieldSet||function(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,r):n?n.value=r:t.set(e,r),r};Object.defineProperty(t,"__esModule",{value:!0}),t.SWID=void 0;const a=r(380);t.SWID=class{constructor(e,t,r={}){o.set(this,void 0),this.tagId=e,this.name=t,this.version=r.version,this.patch=r.patch,this.text=r.text,this.url=r.url,this.tagVersion=r.tagVersion}get tagVersion(){return n(this,o,"f")}set tagVersion(e){if(void 0!==e&&!(0,a.isNonNegativeInteger)(e))throw new TypeError("Not NonNegativeInteger nor undefined");i(this,o,e,"f")}},o=new WeakMap},557:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToolRepository=t.Tool=void 0;const o=r(368),n=r(422);t.Tool=class{constructor(e={}){this.vendor=e.vendor,this.name=e.name,this.version=e.version,this.hashes=e.hashes??new o.HashRepository,this.externalReferences=e.externalReferences??new n.ExternalReferenceRepository}compare(e){return(this.vendor??"").localeCompare(e.vendor??"")||(this.name??"").localeCompare(e.name??"")||(this.version??"").localeCompare(e.version??"")}};class i extends Set{static compareItems(e,t){return e.compare(t)}}t.ToolRepository=i},519:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),n(r(829),t),n(r(650),t)},135:function(e,t,r){var o,n,i=this&&this.__classPrivateFieldGet||function(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.BaseSerializer=void 0;const a=r(52);t.BaseSerializer=class{constructor(){o.add(this)}serialize(e,t){const r=new a.BomRefDiscriminator(i(this,o,"m",n).call(this,e));try{r.discriminate();const o=this._normalize(e,t);return this._serialize(o,t)}finally{r.reset()}}},o=new WeakSet,n=function(e){const t=new Set;void 0!==e.metadata.component&&t.add(e.metadata.component.bomRef);for(const{bomRef:r}of e.components)t.add(r);return t.values()}},52:function(e,t){var r,o,n,i,a=this&&this.__classPrivateFieldSet||function(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,r):n?n.value=r:t.set(e,r),r},s=this&&this.__classPrivateFieldGet||function(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.BomRefDiscriminator=void 0;class c{constructor(e,t="BomRef"){r.add(this),o.set(this,void 0),n.set(this,void 0),a(this,o,new Map(Array.from(e).map((e=>[e,e.value]))),"f"),a(this,n,t,"f")}[(o=new WeakMap,n=new WeakMap,r=new WeakSet,Symbol.iterator)](){return s(this,o,"f").keys()}discriminate(){const e=new Set;for(const[t]of s(this,o,"f")){let o=t.value;(void 0===o||e.has(o))&&(o=s(this,r,"m",i).call(this),t.value=o),e.add(o)}}reset(){for(const[e,t]of s(this,o,"f"))e.value=t}}t.BomRefDiscriminator=c,i=function(){return`${s(this,n,"f")}${Math.random().toString(32).substring(1)}${Math.random().toString(32).substring(1)}`}},829:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t},a=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.XML=t.JSON=t.Types=void 0,t.Types=i(r(10)),a(r(135),t),a(r(52),t),t.JSON=i(r(287)),a(r(181),t),t.XML=i(r(71)),a(r(47),t)},287:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Normalize=t.Types=void 0,t.Types=i(r(143)),t.Normalize=i(r(24))},24:function(e,t,r){var o,n,i,a,s,c,l,p=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),m=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&p(t,e,r);return m(t,e),t},d=this&&this.__classPrivateFieldSet||function(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,r):n?n.value=r:t.set(e,r),r},h=this&&this.__classPrivateFieldGet||function(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.DependencyGraphNormalizer=t.AttachmentNormalizer=t.ExternalReferenceNormalizer=t.SWIDNormalizer=t.LicenseNormalizer=t.ComponentNormalizer=t.OrganizationalEntityNormalizer=t.OrganizationalContactNormalizer=t.HashNormalizer=t.ToolNormalizer=t.MetadataNormalizer=t.BomNormalizer=t.Factory=void 0;const f=r(752),y=u(r(357)),v=r(841),w=r(143);t.Factory=class{constructor(e){o.set(this,void 0),d(this,o,e,"f")}get spec(){return h(this,o,"f")}makeForBom(){return new S(this)}makeForMetadata(){return new b(this)}makeForComponent(){return new x(this)}makeForTool(){return new g(this)}makeForOrganizationalContact(){return new _(this)}makeForOrganizationalEntity(){return new A(this)}makeForHash(){return new P(this)}makeForLicense(){return new O(this)}makeForSWID(){return new E(this)}makeForExternalReference(){return new z(this)}makeForAttachment(){return new T(this)}makeForDependencyGraph(){return new N(this)}},o=new WeakMap;const L=new Map([[v.Version.v1dot2,"http://cyclonedx.org/schema/bom-1.2b.schema.json"],[v.Version.v1dot3,"http://cyclonedx.org/schema/bom-1.3a.schema.json"],[v.Version.v1dot4,"http://cyclonedx.org/schema/bom-1.4.schema.json"]]);class C{constructor(e){this._factory=e}}class S extends C{normalize(e,t){return{$schema:L.get(this._factory.spec.version),bomFormat:"CycloneDX",specVersion:this._factory.spec.version,version:e.version,serialNumber:e.serialNumber,metadata:this._factory.makeForMetadata().normalize(e.metadata,t),components:e.components.size>0?this._factory.makeForComponent().normalizeIter(e.components,t):[],dependencies:this._factory.spec.supportsDependencyGraph?this._factory.makeForDependencyGraph().normalize(e,t):void 0}}}t.BomNormalizer=S;class b extends C{normalize(e,t){const r=this._factory.makeForOrganizationalEntity();return{timestamp:e.timestamp?.toISOString(),tools:e.tools.size>0?this._factory.makeForTool().normalizeIter(e.tools,t):void 0,authors:e.authors.size>0?this._factory.makeForOrganizationalContact().normalizeIter(e.authors,t):void 0,component:void 0===e.component?void 0:this._factory.makeForComponent().normalize(e.component,t),manufacture:void 0===e.manufacture?void 0:r.normalize(e.manufacture,t),supplier:void 0===e.supplier?void 0:r.normalize(e.supplier,t)}}}t.MetadataNormalizer=b;class g extends C{normalize(e,t){return{vendor:e.vendor||void 0,name:e.name||void 0,version:e.version||void 0,hashes:e.hashes.size>0?this._factory.makeForHash().normalizeIter(e.hashes,t):void 0,externalReferences:this._factory.spec.supportsToolReferences&&e.externalReferences.size>0?this._factory.makeForExternalReference().normalizeIter(e.externalReferences,t):void 0}}normalizeIter(e,t){const r=Array.from(e);return t.sortLists&&r.sort(y.ToolRepository.compareItems),r.map((e=>this.normalize(e,t)))}}t.ToolNormalizer=g;class P extends C{normalize([e,t],r){const o=this._factory.spec;return o.supportsHashAlgorithm(e)&&o.supportsHashValue(t)?{alg:e,content:t}:void 0}normalizeIter(e,t){const r=Array.from(e);return t.sortLists&&r.sort(y.HashRepository.compareItems),r.map((e=>this.normalize(e,t))).filter(f.isNotUndefined)}}t.HashNormalizer=P;class _ extends C{normalize(e,t){return{name:e.name||void 0,email:w.JsonSchema.isIdnEmail(e.email)?e.email:void 0,phone:e.phone||void 0}}normalizeIter(e,t){const r=Array.from(e);return t.sortLists&&r.sort(y.OrganizationalContactRepository.compareItems),r.map((e=>this.normalize(e,t)))}}t.OrganizationalContactNormalizer=_;class A extends C{normalize(e,t){const r=R(e.url,t).filter(w.JsonSchema.isIriReference);return{name:e.name||void 0,url:r.length>0?r:void 0,contact:e.contact.size>0?this._factory.makeForOrganizationalContact().normalizeIter(e.contact,t):void 0}}}t.OrganizationalEntityNormalizer=A;class x extends C{normalize(e,t){return this._factory.spec.supportsComponentType(e.type)?{type:e.type,name:e.name,group:e.group||void 0,version:e.version||"","bom-ref":e.bomRef.value||void 0,supplier:void 0===e.supplier?void 0:this._factory.makeForOrganizationalEntity().normalize(e.supplier,t),author:e.author||void 0,publisher:e.publisher||void 0,description:e.description||void 0,scope:e.scope,hashes:e.hashes.size>0?this._factory.makeForHash().normalizeIter(e.hashes,t):void 0,licenses:e.licenses.size>0?this._factory.makeForLicense().normalizeIter(e.licenses,t):void 0,copyright:e.copyright||void 0,cpe:e.cpe||void 0,purl:e.purl?.toString(),swid:void 0===e.swid?void 0:this._factory.makeForSWID().normalize(e.swid,t),externalReferences:e.externalReferences.size>0?this._factory.makeForExternalReference().normalizeIter(e.externalReferences,t):void 0}:void 0}normalizeIter(e,t){const r=Array.from(e);return t.sortLists&&r.sort(y.ComponentRepository.compareItems),r.map((e=>this.normalize(e,t))).filter(f.isNotUndefined)}}t.ComponentNormalizer=x;class O extends C{constructor(){super(...arguments),n.add(this)}normalize(e,t){switch(!0){case e instanceof y.NamedLicense:return h(this,n,"m",i).call(this,e,t);case e instanceof y.SpdxLicense:return h(this,n,"m",a).call(this,e,t);case e instanceof y.LicenseExpression:return h(this,n,"m",s).call(this,e);default:throw new TypeError("Unexpected LicenseChoice")}}normalizeIter(e,t){const r=Array.from(e);return t.sortLists&&r.sort(y.LicenseRepository.compareItems),r.map((e=>this.normalize(e,t)))}}t.LicenseNormalizer=O,n=new WeakSet,i=function(e,t){return{license:{name:e.name,text:void 0===e.text?void 0:this._factory.makeForAttachment().normalize(e.text,t),url:e.url?.toString()}}},a=function(e,t){return{license:{id:e.id,text:void 0===e.text?void 0:this._factory.makeForAttachment().normalize(e.text,t),url:e.url?.toString()}}},s=function(e){return{expression:e.expression}};class E extends C{normalize(e,t){const r=e.url?.toString();return{tagId:e.tagId,name:e.name,version:e.version||void 0,tagVersion:e.tagVersion,patch:e.patch,text:void 0===e.text?void 0:this._factory.makeForAttachment().normalize(e.text,t),url:w.JsonSchema.isIriReference(r)?r:void 0}}}t.SWIDNormalizer=E;class z extends C{normalize(e,t){return this._factory.spec.supportsExternalReferenceType(e.type)?{url:e.url.toString(),type:e.type,comment:e.comment||void 0}:void 0}normalizeIter(e,t){const r=Array.from(e);return t.sortLists&&r.sort(y.ExternalReferenceRepository.compareItems),r.map((e=>this.normalize(e,t))).filter(f.isNotUndefined)}}t.ExternalReferenceNormalizer=z;class T extends C{normalize(e,t){return{content:e.content,contentType:e.contentType||void 0,encoding:e.encoding}}}t.AttachmentNormalizer=T;class N extends C{constructor(){super(...arguments),c.add(this)}normalize(e,t){if(!e.metadata.component?.bomRef.value)return;const r=new Map;for(const t of e.components)r.set(t.bomRef,new y.BomRefRepository(t.dependencies));r.set(e.metadata.component.bomRef,e.metadata.component.dependencies);const o=[];for(const[e,n]of r){const i=h(this,c,"m",l).call(this,e,n,r,t);(0,f.isNotUndefined)(i)&&o.push(i)}return t.sortLists&&o.sort((({ref:e},{ref:t})=>e.localeCompare(t))),o}}function R(e,t){const r=Array.from(e,(e=>e.toString()));return t.sortLists&&r.sort(((e,t)=>e.localeCompare(t))),r}t.DependencyGraphNormalizer=N,c=new WeakSet,l=function(e,t,r,o){const n=e.toString();if(0===n.length)return;const i=R(Array.from(t).filter((t=>r.has(t)&&t!==e)),o).filter((e=>e.length>0));return{ref:n,dependsOn:i.length>0?i:void 0}}},143:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.JsonSchema=void 0,(r=t.JsonSchema||(t.JsonSchema={})).isIriReference=function(e){return"string"==typeof e&&e.length>0},r.isIdnEmail=function(e){return"string"==typeof e&&e.length>0}},181:function(e,t,r){var o,n=this&&this.__classPrivateFieldSet||function(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,r):n?n.value=r:t.set(e,r),r},i=this&&this.__classPrivateFieldGet||function(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.JsonSerializer=void 0;const a=r(841),s=r(135);class c extends s.BaseSerializer{constructor(e){if(!e.spec.supportsFormat(a.Format.JSON))throw new a.UnsupportedFormatError("Spec does not support JSON format.");super(),o.set(this,void 0),n(this,o,e,"f")}_normalize(e,t={}){return i(this,o,"f").makeForBom().normalize(e,t)}_serialize(e,{space:t}={}){return JSON.stringify(e,null,t)}}t.JsonSerializer=c,o=new WeakMap},10:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},71:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&o(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Normalize=t.Types=void 0,t.Types=i(r(700)),t.Normalize=i(r(17))},17:function(e,t,r){var o,n,i,a,s,c,l,p=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),m=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),u=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&p(t,e,r);return m(t,e),t},d=this&&this.__classPrivateFieldSet||function(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,r):n?n.value=r:t.set(e,r),r},h=this&&this.__classPrivateFieldGet||function(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.DependencyGraphNormalizer=t.AttachmentNormalizer=t.ExternalReferenceNormalizer=t.SWIDNormalizer=t.LicenseNormalizer=t.ComponentNormalizer=t.OrganizationalEntityNormalizer=t.OrganizationalContactNormalizer=t.HashNormalizer=t.ToolNormalizer=t.MetadataNormalizer=t.BomNormalizer=t.Factory=void 0;const f=r(752),y=u(r(357)),v=r(841),w=r(700);t.Factory=class{constructor(e){o.set(this,void 0),d(this,o,e,"f")}get spec(){return h(this,o,"f")}makeForBom(){return new S(this)}makeForMetadata(){return new b(this)}makeForComponent(){return new x(this)}makeForTool(){return new g(this)}makeForOrganizationalContact(){return new _(this)}makeForOrganizationalEntity(){return new A(this)}makeForHash(){return new P(this)}makeForLicense(){return new O(this)}makeForSWID(){return new E(this)}makeForExternalReference(){return new z(this)}makeForAttachment(){return new T(this)}makeForDependencyGraph(){return new N(this)}},o=new WeakMap;const L=new Map([[v.Version.v1dot2,"http://cyclonedx.org/schema/bom/1.2"],[v.Version.v1dot3,"http://cyclonedx.org/schema/bom/1.3"],[v.Version.v1dot4,"http://cyclonedx.org/schema/bom/1.4"]]);class C{constructor(e){this._factory=e}}class S extends C{normalize(e,t){const r={type:"element",name:"components",children:e.components.size>0?this._factory.makeForComponent().normalizeIter(e.components,t,"component"):void 0};return{type:"element",name:"bom",namespace:L.get(this._factory.spec.version),attributes:{version:e.version,serialNumber:e.serialNumber},children:[e.metadata?this._factory.makeForMetadata().normalize(e.metadata,t,"metadata"):void 0,r,this._factory.spec.supportsDependencyGraph?this._factory.makeForDependencyGraph().normalize(e,t,"dependencies"):void 0].filter(f.isNotUndefined)}}}t.BomNormalizer=S;class b extends C{normalize(e,t,r){const o=this._factory.makeForOrganizationalEntity();return{type:"element",name:r,children:[void 0===e.timestamp?void 0:{type:"element",name:"timestamp",children:e.timestamp.toISOString()},e.tools.size>0?{type:"element",name:"tools",children:this._factory.makeForTool().normalizeIter(e.tools,t,"tool")}:void 0,e.authors.size>0?{type:"element",name:"authors",children:this._factory.makeForOrganizationalContact().normalizeIter(e.authors,t,"author")}:void 0,void 0===e.component?void 0:this._factory.makeForComponent().normalize(e.component,t,"component"),void 0===e.manufacture?void 0:o.normalize(e.manufacture,t,"manufacture"),void 0===e.supplier?void 0:o.normalize(e.supplier,t,"supplier")].filter(f.isNotUndefined)}}}t.MetadataNormalizer=b;class g extends C{normalize(e,t,r){const o=e.hashes.size>0?{type:"element",name:"hashes",children:this._factory.makeForHash().normalizeIter(e.hashes,t,"hash")}:void 0,n=this._factory.spec.supportsToolReferences&&e.externalReferences.size>0?{type:"element",name:"externalReferences",children:this._factory.makeForExternalReference().normalizeIter(e.externalReferences,t,"reference")}:void 0;return{type:"element",name:r,children:[R(e.vendor,"vendor"),R(e.name,"name"),R(e.version,"version"),o,n].filter(f.isNotUndefined)}}normalizeIter(e,t,r){const o=Array.from(e);return t.sortLists&&o.sort(y.ToolRepository.compareItems),o.map((e=>this.normalize(e,t,r)))}}t.ToolNormalizer=g;class P extends C{normalize([e,t],r,o){const n=this._factory.spec;return n.supportsHashAlgorithm(e)&&n.supportsHashValue(t)?{type:"element",name:o,attributes:{alg:e},children:t}:void 0}normalizeIter(e,t,r){const o=Array.from(e);return t.sortLists&&o.sort(y.HashRepository.compareItems),o.map((e=>this.normalize(e,t,r))).filter(f.isNotUndefined)}}t.HashNormalizer=P;class _ extends C{normalize(e,t,r){return{type:"element",name:r,children:[R(e.name,"name"),R(e.email,"email"),R(e.phone,"phone")].filter(f.isNotUndefined)}}normalizeIter(e,t,r){const o=Array.from(e);return t.sortLists&&o.sort(y.OrganizationalContactRepository.compareItems),o.map((e=>this.normalize(e,t,r)))}}t.OrganizationalContactNormalizer=_;class A extends C{normalize(e,t,r){return{type:"element",name:r,children:[R(e.name,"name"),...F(e.url,t,"url").filter((({children:e})=>w.XmlSchema.isAnyURI(e))),...this._factory.makeForOrganizationalContact().normalizeIter(e.contact,t,"contact")].filter(f.isNotUndefined)}}}t.OrganizationalEntityNormalizer=A;class x extends C{normalize(e,t,r){if(!this._factory.spec.supportsComponentType(e.type))return;const o=void 0===e.supplier?void 0:this._factory.makeForOrganizationalEntity().normalize(e.supplier,t,"supplier"),n=e.hashes.size>0?{type:"element",name:"hashes",children:this._factory.makeForHash().normalizeIter(e.hashes,t,"hash")}:void 0,i=e.licenses.size>0?{type:"element",name:"licenses",children:this._factory.makeForLicense().normalizeIter(e.licenses,t)}:void 0,a=void 0===e.swid?void 0:this._factory.makeForSWID().normalize(e.swid,t,"swid"),s=e.externalReferences.size>0?{type:"element",name:"externalReferences",children:this._factory.makeForExternalReference().normalizeIter(e.externalReferences,t,"reference")}:void 0;return{type:"element",name:r,attributes:{type:e.type,"bom-ref":e.bomRef.value},children:[o,R(e.author,"author"),R(e.publisher,"publisher"),R(e.group,"group"),D(e.name,"name"),D(e.version??"","version"),R(e.description,"description"),R(e.scope,"description"),n,i,R(e.copyright,"copyright"),R(e.cpe,"cpe"),R(e.purl,"purl"),a,s].filter(f.isNotUndefined)}}normalizeIter(e,t,r){const o=Array.from(e);return t.sortLists&&o.sort(y.ComponentRepository.compareItems),o.map((e=>this.normalize(e,t,r))).filter(f.isNotUndefined)}}t.ComponentNormalizer=x;class O extends C{constructor(){super(...arguments),n.add(this)}normalize(e,t){switch(!0){case e instanceof y.NamedLicense:return h(this,n,"m",i).call(this,e,t);case e instanceof y.SpdxLicense:return h(this,n,"m",a).call(this,e,t);case e instanceof y.LicenseExpression:return h(this,n,"m",s).call(this,e);default:throw new TypeError("Unexpected LicenseChoice")}}normalizeIter(e,t){const r=Array.from(e);return t.sortLists&&r.sort(y.LicenseRepository.compareItems),r.map((e=>this.normalize(e,t)))}}t.LicenseNormalizer=O,n=new WeakSet,i=function(e,t){const r=e.url?.toString();return{type:"element",name:"license",children:[D(e.name,"name"),void 0===e.text?void 0:this._factory.makeForAttachment().normalize(e.text,t,"text"),w.XmlSchema.isAnyURI(r)?D(r,"url"):void 0].filter(f.isNotUndefined)}},a=function(e,t){const r=e.url?.toString();return{type:"element",name:"license",children:[D(e.id,"id"),void 0===e.text?void 0:this._factory.makeForAttachment().normalize(e.text,t,"text"),w.XmlSchema.isAnyURI(r)?D(r,"url"):void 0].filter(f.isNotUndefined)}},s=function(e){return D(e.expression,"expression")};class E extends C{normalize(e,t,r){const o=e.url?.toString();return{type:"element",name:r,attributes:{tagId:e.tagId,name:e.name,version:e.version||void 0,tagVersion:e.tagVersion,patch:void 0===e.patch?void 0:e.patch?"true":"false"},children:[void 0===e.text?void 0:this._factory.makeForAttachment().normalize(e.text,t,"text"),w.XmlSchema.isAnyURI(o)?D(o,"url"):void 0].filter(f.isNotUndefined)}}}t.SWIDNormalizer=E;class z extends C{normalize(e,t,r){const o=e.url.toString();return this._factory.spec.supportsExternalReferenceType(e.type)&&w.XmlSchema.isAnyURI(o)?{type:"element",name:r,attributes:{type:e.type},children:[D(o,"url"),R(e.comment,"comment")].filter(f.isNotUndefined)}:void 0}normalizeIter(e,t,r){const o=Array.from(e);return t.sortLists&&o.sort(y.ExternalReferenceRepository.compareItems),o.map((e=>this.normalize(e,t,r))).filter(f.isNotUndefined)}}t.ExternalReferenceNormalizer=z;class T extends C{normalize(e,t,r){return{type:"element",name:r,attributes:{"content-type":e.contentType||void 0,encoding:e.encoding||void 0},children:e.content}}}t.AttachmentNormalizer=T;class N extends C{constructor(){super(...arguments),c.add(this)}normalize(e,t,r){if(!e.metadata.component?.bomRef.value)return;const o=new Map;for(const t of e.components)o.set(t.bomRef,new y.BomRefRepository(t.dependencies));o.set(e.metadata.component.bomRef,e.metadata.component.dependencies);const n=[];for(const[e,r]of o){const i=h(this,c,"m",l).call(this,e,r,o,t);(0,f.isNotUndefined)(i)&&n.push(i)}return t.sortLists&&n.sort((({attributes:{ref:e}},{attributes:{ref:t}})=>e.localeCompare(t))),{type:"element",name:r,children:n}}}function R(e,t){const r=e?.toString()??"";return r.length>0?D(r,t):void 0}function D(e,t){return{type:"element",name:t,children:e.toString()}}function F(e,t,r){const o=Array.from(e,(e=>D(e,r)));return t.sortLists&&o.sort((({children:e},{children:t})=>e.localeCompare(t))),o}t.DependencyGraphNormalizer=N,c=new WeakSet,l=function(e,t,r,o){const n=e.toString();if(0===n.length)return;const i=Array.from(t).filter((t=>r.has(t)&&t!==e)).map((e=>e.toString())).filter((e=>e.length>0));return o.sortLists&&i.sort(((e,t)=>e.localeCompare(t))),{type:"element",name:"dependency",attributes:{ref:n},children:i.map((e=>({type:"element",name:"dependency",attributes:{ref:e}})))}}},700:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.XmlSchema=void 0,(t.XmlSchema||(t.XmlSchema={})).isAnyURI=function(e){return"string"==typeof e&&e.length>0&&Array.from(e).filter((e=>"#"===e)).length<=1}},47:function(e,t,r){var o,n=this&&this.__classPrivateFieldSet||function(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,r):n?n.value=r:t.set(e,r),r},i=this&&this.__classPrivateFieldGet||function(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.XmlBaseSerializer=void 0;const a=r(841),s=r(135);class c extends s.BaseSerializer{constructor(e){if(!e.spec.supportsFormat(a.Format.JSON))throw new a.UnsupportedFormatError("Spec does not support JSON format.");super(),o.set(this,void 0),n(this,o,e,"f")}_normalize(e,t={}){return i(this,o,"f").makeForBom().normalize(e,t)}}t.XmlBaseSerializer=c,o=new WeakMap},650:function(e,t,r){var o,n,i,a,s,c,l=this&&this.__classPrivateFieldGet||function(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.XmlSerializer=void 0;const p=r(752),m=r(47);class u extends m.XmlBaseSerializer{constructor(){super(...arguments),o.add(this)}_serialize(e,{space:t}={}){const r=l(this,o,"m",n).call(this,e);return(new XMLSerializer).serializeToString(r)}}t.XmlSerializer=u,o=new WeakSet,n=function(e){const t=document.implementation.createDocument(null,null);return t.appendChild(l(this,o,"m",a).call(this,e,t,null)),t},i=function(e){const t=(e.namespace??e.attributes?.xmlns)?.toString()??"";return t.length>0?t:null},a=function(e,t,r){const n=l(this,o,"m",i).call(this,e)??r,a=t.createElementNS(n,e.name);return(0,p.isNotUndefined)(e.attributes)&&l(this,o,"m",s).call(this,a,e.attributes),(0,p.isNotUndefined)(e.children)&&l(this,o,"m",c).call(this,a,e.children,n),a},s=function(e,t){for(const[r,o]of Object.entries(t))(0,p.isNotUndefined)(o)&&"xmlns"!==r&&e.setAttribute(r,`${o}`)},c=function(e,t,r=null){if("string"==typeof t||"number"==typeof t)return void(e.textContent=t.toString());const n=e.ownerDocument;for(const i of t)"element"===i.type&&e.appendChild(l(this,o,"m",a).call(this,i,n,r))}},169:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.fixupSpdxId=t.isSupportedSpdxId=void 0;const o=r(207),n=new Set(o.enum),i=new Map(o.enum.map((e=>[e.toLowerCase(),e])));t.isSupportedSpdxId=function(e){return n.has(e)},t.fixupSpdxId=function(e){return"string"==typeof e&&e.length>0?i.get(e.toLowerCase()):void 0}},841:function(e,t,r){var o,n,i,a,s,c,l,p,m=this&&this.__classPrivateFieldSet||function(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,r):n?n.value=r:t.set(e,r),r},u=this&&this.__classPrivateFieldGet||function(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.SpecVersionDict=t.Spec1dot4=t.Spec1dot3=t.Spec1dot2=t.UnsupportedFormatError=t.Format=t.Version=void 0;const d=r(507);var h,f;!function(e){e.v1dot0="1.0",e.v1dot1="1.1",e.v1dot2="1.2",e.v1dot3="1.3",e.v1dot4="1.4"}(h=t.Version||(t.Version={})),function(e){e.XML="xml",e.JSON="json"}(f=t.Format||(t.Format={}));class y extends Error{}t.UnsupportedFormatError=y;class v{constructor(e,t,r,u,d,h,f,y){o.set(this,void 0),n.set(this,void 0),i.set(this,void 0),a.set(this,void 0),s.set(this,void 0),c.set(this,void 0),l.set(this,void 0),p.set(this,void 0),m(this,o,e,"f"),m(this,n,new Set(t),"f"),m(this,i,new Set(r),"f"),m(this,a,new Set(u),"f"),m(this,s,d,"f"),m(this,c,new Set(h),"f"),m(this,l,f,"f"),m(this,p,y,"f")}get version(){return u(this,o,"f")}supportsFormat(e){return u(this,n,"f").has(e)}supportsComponentType(e){return u(this,i,"f").has(e)}supportsHashAlgorithm(e){return u(this,a,"f").has(e)}supportsHashValue(e){return"string"==typeof e&&u(this,s,"f").test(e)}supportsExternalReferenceType(e){return u(this,c,"f").has(e)}get supportsDependencyGraph(){return u(this,l,"f")}get supportsToolReferences(){return u(this,p,"f")}}o=new WeakMap,n=new WeakMap,i=new WeakMap,a=new WeakMap,s=new WeakMap,c=new WeakMap,l=new WeakMap,p=new WeakMap,t.Spec1dot2=Object.freeze(new v(h.v1dot2,[f.XML,f.JSON],[d.ComponentType.Application,d.ComponentType.Framework,d.ComponentType.Library,d.ComponentType.Container,d.ComponentType.OperatingSystem,d.ComponentType.Device,d.ComponentType.Firmware,d.ComponentType.File],[d.HashAlgorithm.MD5,d.HashAlgorithm["SHA-1"],d.HashAlgorithm["SHA-256"],d.HashAlgorithm["SHA-384"],d.HashAlgorithm["SHA-512"],d.HashAlgorithm["SHA3-256"],d.HashAlgorithm["SHA3-384"],d.HashAlgorithm["SHA3-512"],d.HashAlgorithm["BLAKE2b-256"],d.HashAlgorithm["BLAKE2b-384"],d.HashAlgorithm["BLAKE2b-512"],d.HashAlgorithm.BLAKE3],/^([a-fA-F0-9]{32})$|^([a-fA-F0-9]{40})$|^([a-fA-F0-9]{64})$|^([a-fA-F0-9]{96})$|^([a-fA-F0-9]{128})$/,[d.ExternalReferenceType.VCS,d.ExternalReferenceType.IssueTracker,d.ExternalReferenceType.Website,d.ExternalReferenceType.Advisories,d.ExternalReferenceType.BOM,d.ExternalReferenceType.MailingList,d.ExternalReferenceType.Social,d.ExternalReferenceType.Chat,d.ExternalReferenceType.Documentation,d.ExternalReferenceType.Support,d.ExternalReferenceType.Distribution,d.ExternalReferenceType.License,d.ExternalReferenceType.BuildMeta,d.ExternalReferenceType.BuildSystem,d.ExternalReferenceType.Other],!0,!1)),t.Spec1dot3=Object.freeze(new v(h.v1dot3,[f.XML,f.JSON],[d.ComponentType.Application,d.ComponentType.Framework,d.ComponentType.Library,d.ComponentType.Container,d.ComponentType.OperatingSystem,d.ComponentType.Device,d.ComponentType.Firmware,d.ComponentType.File],[d.HashAlgorithm.MD5,d.HashAlgorithm["SHA-1"],d.HashAlgorithm["SHA-256"],d.HashAlgorithm["SHA-384"],d.HashAlgorithm["SHA-512"],d.HashAlgorithm["SHA3-256"],d.HashAlgorithm["SHA3-384"],d.HashAlgorithm["SHA3-512"],d.HashAlgorithm["BLAKE2b-256"],d.HashAlgorithm["BLAKE2b-384"],d.HashAlgorithm["BLAKE2b-512"],d.HashAlgorithm.BLAKE3],/^([a-fA-F0-9]{32})$|^([a-fA-F0-9]{40})$|^([a-fA-F0-9]{64})$|^([a-fA-F0-9]{96})$|^([a-fA-F0-9]{128})$/,[d.ExternalReferenceType.VCS,d.ExternalReferenceType.IssueTracker,d.ExternalReferenceType.Website,d.ExternalReferenceType.Advisories,d.ExternalReferenceType.BOM,d.ExternalReferenceType.MailingList,d.ExternalReferenceType.Social,d.ExternalReferenceType.Chat,d.ExternalReferenceType.Documentation,d.ExternalReferenceType.Support,d.ExternalReferenceType.Distribution,d.ExternalReferenceType.License,d.ExternalReferenceType.BuildMeta,d.ExternalReferenceType.BuildSystem,d.ExternalReferenceType.Other],!0,!1)),t.Spec1dot4=Object.freeze(new v(h.v1dot4,[f.XML,f.JSON],[d.ComponentType.Application,d.ComponentType.Framework,d.ComponentType.Library,d.ComponentType.Container,d.ComponentType.OperatingSystem,d.ComponentType.Device,d.ComponentType.Firmware,d.ComponentType.File],[d.HashAlgorithm.MD5,d.HashAlgorithm["SHA-1"],d.HashAlgorithm["SHA-256"],d.HashAlgorithm["SHA-384"],d.HashAlgorithm["SHA-512"],d.HashAlgorithm["SHA3-256"],d.HashAlgorithm["SHA3-384"],d.HashAlgorithm["SHA3-512"],d.HashAlgorithm["BLAKE2b-256"],d.HashAlgorithm["BLAKE2b-384"],d.HashAlgorithm["BLAKE2b-512"],d.HashAlgorithm.BLAKE3],/^([a-fA-F0-9]{32})$|^([a-fA-F0-9]{40})$|^([a-fA-F0-9]{64})$|^([a-fA-F0-9]{96})$|^([a-fA-F0-9]{128})$/,[d.ExternalReferenceType.VCS,d.ExternalReferenceType.IssueTracker,d.ExternalReferenceType.Website,d.ExternalReferenceType.Advisories,d.ExternalReferenceType.BOM,d.ExternalReferenceType.MailingList,d.ExternalReferenceType.Social,d.ExternalReferenceType.Chat,d.ExternalReferenceType.Documentation,d.ExternalReferenceType.Support,d.ExternalReferenceType.Distribution,d.ExternalReferenceType.License,d.ExternalReferenceType.BuildMeta,d.ExternalReferenceType.BuildSystem,d.ExternalReferenceType.ReleaseNotes,d.ExternalReferenceType.Other],!0,!0)),t.SpecVersionDict=Object.freeze(Object.fromEntries([[h.v1dot2,t.Spec1dot2],[h.v1dot3,t.Spec1dot3],[h.v1dot4,t.Spec1dot4]]))},506:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isCPE=void 0;const r=/^([c][pP][eE]:\/[AHOaho]?(:[A-Za-z0-9\._\-~%]*){0,6})$|^(cpe:2\.3:[aho\*\-](:(((\?*|\*?)([a-zA-Z0-9\-\._]|(\\[\\\*\?!"#$$%&'\(\)\+,\/:;<=>@\[\]\^`\{\|}~]))+(\?*|\*?))|[\*\-])){5}(:(([a-zA-Z]{2,3}(-([a-zA-Z]{2}|[0-9]{3}))?)|[\*\-]))(:(((\?*|\*?)([a-zA-Z0-9\-\._]|(\\[\\\*\?!"#$$%&'\(\)\+,\/:;<=>@\[\]\^`\{\|}~]))+(\?*|\*?))|[\*\-])){4})$/;t.isCPE=function(e){return"string"==typeof e&&r.test(e)}},380:function(e,t,r){var o=this&&this.__createBinding||(Object.create?function(e,t,r,o){void 0===o&&(o=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,n)}:function(e,t,r,o){void 0===o&&(o=r),e[o]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),n(r(506),t),n(r(560),t),n(r(42),t),n(r(604),t)},560:(e,t)=>{function r(e){return Number.isInteger(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.isPositiveInteger=t.isNonNegativeInteger=t.isInteger=void 0,t.isInteger=r,t.isNonNegativeInteger=function(e){return r(e)&&e>=0},t.isPositiveInteger=function(e){return r(e)&&e>0}},42:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isMimeType=void 0;const r=/^[-+a-z0-9.]+\/[-+a-z0-9.]+$/;t.isMimeType=function(e){return"string"==typeof e&&r.test(e)}},604:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isUrnUuid=void 0;const r=/^urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;t.isUrnUuid=function(e){return"string"==typeof e&&r.test(e)}},207:e=>{e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://cyclonedx.org/schema/spdx.schema.json","$comment":"v1.0-3.16","type":"string","enum":["Interbase-1.0","Mup","GPL-2.0-with-autoconf-exception","OLDAP-2.1","CC-BY-NC-SA-3.0-IGO","LGPL-2.0+","xpp","OFL-1.1","CNRI-Python","Linux-man-pages-copyleft","OLDAP-2.2","OSL-1.1","EPL-2.0","AFL-1.1","AGPL-1.0-or-later","GLWTPL","MIT-Modern-Variant","BSD-1-Clause","SGI-B-1.0","OML","psfrag","Artistic-1.0","CC-PDDC","eGenix","EUPL-1.1","Sendmail","PSF-2.0","OGL-UK-1.0","MTLL","NAIST-2003","ANTLR-PD-fallback","PostgreSQL","OSL-1.0","NGPL","CC-BY-NC-ND-4.0","CPOL-1.02","FSFULLR","GFDL-1.2-no-invariants-only","Net-SNMP","ADSL","Sendmail-8.23","CNRI-Jython","RPL-1.5","BSD-2-Clause-Patent","OFL-1.1-no-RFN","APSL-1.2","OLDAP-2.4","MPL-2.0-no-copyleft-exception","ISC","CC-BY-SA-2.5","Sleepycat","CUA-OPL-1.0","Frameworx-1.0","CPAL-1.0","NLOD-2.0","CC-BY-NC-2.0","GFDL-1.1-no-invariants-or-later","CC-BY-2.5","Newsletr","Parity-7.0.0","Leptonica","MIT-CMU","APAFML","CC-BY-NC-2.5","CAL-1.0-Combined-Work-Exception","BSD-4-Clause-Shortened","NPL-1.1","Qhull","CECILL-C","GPL-1.0-only","CC-BY-NC-ND-3.0-DE","CC-BY-NC-SA-3.0","CC-BY-NC-SA-1.0","MIT-open-group","Multics","SWL","GPL-1.0+","GPL-3.0-or-later","DOC","PHP-3.0","SISSL-1.2","CDL-1.0","LPL-1.0","RHeCos-1.1","LAL-1.3","CC-BY-SA-3.0-DE","CDLA-Permissive-1.0","gnuplot","App-s2p","iMatix","MS-PL","eCos-2.0","BSD-3-Clause","CC-BY-NC-ND-3.0-IGO","ICU","AGPL-3.0-or-later","CC-BY-SA-2.1-JP","CC-BY-NC-SA-4.0","Unlicense","CC-BY-NC-3.0-DE","OLDAP-1.4","CERN-OHL-W-2.0","SugarCRM-1.1.3","IPA","AFL-2.0","Unicode-DFS-2016","CC-BY-NC-ND-3.0","CERN-OHL-P-2.0","CC-BY-NC-3.0","COIL-1.0","CAL-1.0","LiLiQ-P-1.1","OFL-1.1-RFN","LPL-1.02","OLDAP-1.3","OGDL-Taiwan-1.0","CC-BY-NC-SA-2.0","Python-2.0","NTP-0","FSFAP","ErlPL-1.1","Barr","CC-BY-3.0-US","BSD-3-Clause-No-Nuclear-License-2014","NLPL","BSD-3-Clause-Clear","SGI-B-1.1","PDDL-1.0","CDDL-1.0","LGPL-2.1-or-later","BlueOak-1.0.0","CC-BY-NC-SA-2.0-FR","FDK-AAC","StandardML-NJ","AGPL-1.0-only","CECILL-1.0","AAL","GPL-2.0-with-font-exception","Info-ZIP","SSH-OpenSSH","SSH-short","GPL-2.0-or-later","ClArtistic","SNIA","GFDL-1.1-invariants-only","BSD-3-Clause-No-Military-License","GFDL-1.1","MPL-1.1","OLDAP-1.1","JSON","GFDL-1.3-no-invariants-only","OCLC-2.0","OLDAP-2.0.1","FreeBSD-DOC","GPL-1.0-or-later","YPL-1.1","CPL-1.0","Apache-1.0","OFL-1.0","CC-BY-4.0","DSDP","IBM-pibs","MIT-0","DRL-1.0","Zlib","APL-1.0","Watcom-1.0","GPL-2.0-with-GCC-exception","EUPL-1.2","FSFUL","NASA-1.3","BSD-2-Clause","XFree86-1.1","Eurosym","OLDAP-2.8","dvipdfm","NIST-PD","Apache-1.1","Parity-6.0.0","CC-BY-2.0","LGPL-3.0+","BSD-2-Clause-Views","GPL-2.0-with-classpath-exception","BSD-3-Clause-No-Nuclear-Warranty","X11","CDLA-Permissive-2.0","HaskellReport","Artistic-1.0-cl8","APSL-2.0","GPL-3.0+","SHL-0.5","CNRI-Python-GPL-Compatible","Condor-1.1","OLDAP-2.3","GPL-2.0-only","BUSL-1.1","LiLiQ-R-1.1","AMPAS","copyleft-next-0.3.1","GFDL-1.3-invariants-or-later","OLDAP-2.7","OSL-2.0","Unicode-DFS-2015","CATOSL-1.1","RSCPL","libpng-2.0","LPPL-1.1","CDLA-Sharing-1.0","Glulxe","GFDL-1.3-no-invariants-or-later","OLDAP-1.2","CDDL-1.1","CERN-OHL-1.1","BSD-Source-Code","IJG","Zimbra-1.4","0BSD","CC-BY-1.0","wxWindows","ZPL-2.1","NTP","Artistic-1.0-Perl","CC-BY-ND-2.0","CC-BY-ND-4.0","Adobe-2006","EPL-1.0","diffmark","xinetd","Plexus","JPNIC","Adobe-Glyph","Cube","TCP-wrappers","CC-BY-SA-1.0","BSD-2-Clause-FreeBSD","OGL-Canada-2.0","ANTLR-PD","LGPL-2.1+","OSL-2.1","psutils","SCEA","MirOS","Hippocratic-2.1","GFDL-1.2-invariants-only","LGPL-2.1-only","Entessa","MS-RL","libselinux-1.0","LGPL-2.0","OLDAP-2.5","Imlib2","Libpng","SchemeReport","MPL-1.0","SAX-PD","NLOD-1.0","SimPL-2.0","TU-Berlin-1.0","GFDL-1.1-no-invariants-only","CC-BY-ND-3.0-DE","MakeIndex","EPICS","GFDL-1.3-invariants-only","XSkat","bzip2-1.0.5","Community-Spec-1.0","GL2PS","HPND","bzip2-1.0.6","CC-BY-NC-1.0","Fair","CECILL-B","Glide","CC-BY-SA-4.0","CC0-1.0","MIT-enna","Wsuipa","RSA-MD","VOSTROM","O-UDA-1.0","CERN-OHL-S-2.0","X11-distribute-modifications-variant","copyleft-next-0.3.0","Zimbra-1.3","NIST-PD-fallback","Nokia","AFL-2.1","ZPL-2.0","ODbL-1.0","zlib-acknowledgement","PHP-3.01","Afmparse","HPND-sell-variant","PolyForm-Small-Business-1.0.0","IPL-1.0","CECILL-1.1","MIT-feh","OFL-1.0-RFN","TMate","BSD-3-Clause-No-Nuclear-License","W3C-19980720","SPL-1.0","NetCDF","Aladdin","AMDPLPA","CrystalStacker","Intel-ACPI","CERN-OHL-1.2","CC-BY-NC-SA-3.0-DE","MIT","Zed","OLDAP-2.0","MulanPSL-1.0","EFL-2.0","Latex2e","Spencer-94","OPL-1.0","CC-BY-NC-4.0","LGPL-3.0-or-later","UPL-1.0","NCSA","SGI-B-2.0","GPL-3.0-with-GCC-exception","Zend-2.0","ImageMagick","OLDAP-2.6","Unicode-TOU","GPL-3.0-only","Artistic-2.0","blessing","etalab-2.0","GFDL-1.2-only","LPPL-1.0","Rdisc","BSD-3-Clause-Modification","Xerox","MPL-2.0","BitTorrent-1.1","CC-BY-NC-ND-2.0","SISSL","libtiff","CC-BY-NC-SA-2.0-UK","D-FSL-1.0","LPPL-1.2","TAPR-OHL-1.0","EUPL-1.0","SHL-0.51","FTL","W3C-20150513","OSET-PL-2.1","EUDatagrid","UCL-1.0","Borceux","Elastic-2.0","BSD-2-Clause-NetBSD","BSD-3-Clause-Open-MPI","OSL-3.0","curl","Spencer-86","BSL-1.0","SMLNJ","TOSL","NOSL","AFL-1.2","MulanPSL-2.0","Motosoto","CC-BY-NC-SA-2.5","JasPer-2.0","BSD-4-Clause-UC","Bahyph","VSL-1.0","W3C","ODC-By-1.0","BitTorrent-1.0","OGL-UK-2.0","LGPL-3.0-only","Xnet","Ruby","GFDL-1.3","ZPL-1.1","OCCT-PL","LPPL-1.3c","Apache-2.0","GD","CC-BY-3.0-NL","LPPL-1.3a","CC-BY-2.5-AU","GFDL-1.1-only","GFDL-1.1-or-later","OGL-UK-3.0","YPL-1.0","RPL-1.1","LGPL-2.0-or-later","OPUBL-1.0","Noweb","AFL-3.0","Nunit","CC-BY-3.0","Beerware","Caldera","GPL-1.0","GPL-2.0+","NCGL-UK-2.0","CC-BY-ND-2.5","GPL-2.0","Intel","Vim","CC-BY-SA-2.0","MITNFA","APSL-1.1","GFDL-1.2-or-later","BSD-3-Clause-Attribution","OFL-1.0-no-RFN","Naumen","CC-BY-NC-ND-2.5","C-UDA-1.0","LGPLLR","mpich2","APSL-1.0","Linux-OpenIB","MIT-advertising","GFDL-1.2","OGTSL","Dotseqn","DL-DE-BY-2.0","Saxpath","AGPL-3.0","Abstyles","CC-BY-SA-3.0","Giftware","FreeImage","CECILL-2.1","RPSL-1.0","GFDL-1.3-or-later","GFDL-1.1-invariants-or-later","ECL-2.0","LiLiQ-Rplus-1.1","GPL-3.0-with-autoconf-exception","Jam","GFDL-1.2-no-invariants-or-later","CECILL-2.0","PolyForm-Noncommercial-1.0.0","OGC-1.0","CC-BY-ND-3.0","QPL-1.0","LAL-1.2","CC-BY-3.0-DE","OpenSSL","Spencer-99","CC-BY-SA-3.0-AT","BSD-Protection","OLDAP-2.2.2","NRL","TORQUE-1.1","HTMLTIDY","SSPL-1.0","NPL-1.0","LGPL-2.0-only","AGPL-3.0-only","GFDL-1.2-invariants-or-later","GPL-2.0-with-bison-exception","CC-BY-NC-ND-1.0","ECL-1.0","WTFPL","CC-BY-SA-2.0-UK","GPL-3.0","OLDAP-2.2.1","SMPPL","CC-BY-3.0-AT","EFL-1.0","NBPL-1.0","BSD-3-Clause-LBNL","AGPL-1.0","Crossword","TCL","CC-BY-ND-1.0","AML","TU-Berlin-2.0","GFDL-1.3-only","NPOSL-3.0","BSD-4-Clause","gSOAP-1.3b","LGPL-2.1","LGPL-3.0","freertos-exception-2.0","Swift-exception","Qt-LGPL-exception-1.1","gnu-javamail-exception","CLISP-exception-2.0","eCos-exception-2.0","GPL-CC-1.0","DigiRule-FOSS-exception","Font-exception-2.0","Qt-GPL-exception-1.0","PS-or-PDF-font-exception-20170817","GPL-3.0-linking-source-exception","Linux-syscall-note","GCC-exception-2.0","LZMA-exception","Autoconf-exception-3.0","u-boot-exception-2.0","LLVM-exception","OCaml-LGPL-linking-exception","Autoconf-exception-2.0","Bootloader-exception","LGPL-3.0-linking-exception","openvpn-openssl-exception","FLTK-exception","Bison-exception-2.2","OCCT-exception-1.0","GCC-exception-3.1","OpenJDK-assembly-exception-1.0","WxWindows-exception-3.1","Fawkes-Runtime-exception","Nokia-Qt-exception-1.1","Qwt-exception-1.0","Universal-FOSS-exception-1.0","Classpath-exception-2.0","SHL-2.0","GPL-3.0-linking-exception","SHL-2.1","Libtool-exception","mif-exception","389-exception","i2p-gpl-java-exception"]}')}},t={};return function r(o){var n=t[o];if(void 0!==n)return n.exports;var i=t[o]={exports:{}};return e[o].call(i.exports,i,i.exports,r),i.exports}(599)})()));
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
This file is part of CycloneDX JavaScript Library.
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
|
|
16
|
+
SPDX-License-Identifier: Apache-2.0
|
|
17
|
+
Copyright (c) OWASP Foundation. All Rights Reserved.
|
|
18
|
+
*/
|