@cyclonedx/cyclonedx-library 1.0.2 → 1.2.0

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.
Files changed (49) hide show
  1. package/README.md +2 -1
  2. package/dist.node/builders/{fromPackageJson.node.js → fromNodePackageJson.node.js} +10 -1
  3. package/dist.node/builders/fromNodePackageJson.node.js.map +1 -0
  4. package/dist.node/builders/index.node.js +3 -2
  5. package/dist.node/builders/index.node.js.map +1 -1
  6. package/dist.node/factories/{fromPackageJson.node.js → fromNodePackageJson.node.js} +1 -1
  7. package/dist.node/factories/fromNodePackageJson.node.js.map +1 -0
  8. package/dist.node/factories/index.node.js +3 -2
  9. package/dist.node/factories/index.node.js.map +1 -1
  10. package/dist.node/factories/packageUrl.js +17 -5
  11. package/dist.node/factories/packageUrl.js.map +1 -1
  12. package/dist.node/helpers/tree.js +23 -0
  13. package/dist.node/helpers/tree.js.map +1 -0
  14. package/dist.node/models/component.js +8 -0
  15. package/dist.node/models/component.js.map +1 -1
  16. package/dist.node/serialize/bomRefDiscriminator.js +3 -0
  17. package/dist.node/serialize/bomRefDiscriminator.js.map +1 -1
  18. package/dist.node/serialize/json/normalize.js +18 -4
  19. package/dist.node/serialize/json/normalize.js.map +1 -1
  20. package/dist.node/serialize/jsonSerializer.js +3 -0
  21. package/dist.node/serialize/jsonSerializer.js.map +1 -1
  22. package/dist.node/serialize/xml/normalize.js +24 -5
  23. package/dist.node/serialize/xml/normalize.js.map +1 -1
  24. package/dist.node/serialize/xmlBaseSerializer.js +3 -0
  25. package/dist.node/serialize/xmlBaseSerializer.js.map +1 -1
  26. package/dist.node/spec.js +11 -6
  27. package/dist.node/spec.js.map +1 -1
  28. package/dist.node/types/cpe.js +1 -1
  29. package/dist.node/types/cpe.js.map +1 -1
  30. package/dist.web/lib.dev.js +120 -21
  31. package/dist.web/lib.dev.js.map +1 -1
  32. package/dist.web/lib.js +1 -1
  33. package/package.json +4 -2
  34. package/src/builders/{fromPackageJson.node.ts → fromNodePackageJson.node.ts} +16 -4
  35. package/src/builders/index.node.ts +4 -1
  36. package/src/factories/{fromPackageJson.node.ts → fromNodePackageJson.node.ts} +0 -0
  37. package/src/factories/index.node.ts +4 -1
  38. package/src/factories/packageUrl.ts +31 -8
  39. package/src/helpers/tree.ts +20 -0
  40. package/src/models/component.ts +10 -0
  41. package/src/serialize/bomRefDiscriminator.ts +5 -0
  42. package/src/serialize/json/normalize.ts +19 -5
  43. package/src/serialize/jsonSerializer.ts +4 -0
  44. package/src/serialize/xml/normalize.ts +30 -9
  45. package/src/serialize/xmlBaseSerializer.ts +4 -0
  46. package/src/spec.ts +16 -4
  47. package/src/types/cpe.ts +2 -2
  48. package/dist.node/builders/fromPackageJson.node.js.map +0 -1
  49. package/dist.node/factories/fromPackageJson.node.js.map +0 -1
package/dist.web/lib.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see lib.js.LICENSE.txt */
2
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("PackageURL")):"function"==typeof define&&define.amd?define(["PackageURL"],t):"object"==typeof exports?exports.CycloneDX_library=t(require("PackageURL")):e.CycloneDX_library=t(e.PackageURL)}(self,(e=>(()=>{"use strict";var t={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)},123: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(990),t),n(r(951),t)},354: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(123),t)},990:(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))}}},951: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.PackageUrlFactory=void 0;const a=r(745),s=r(507);t.PackageUrlFactory=class{constructor(e){o.set(this,void 0),n(this,o,e,"f")}makeFromComponent(e){const t={};let r;for(const o of e.externalReferences)if(o.type===s.ExternalReferenceType.VCS){[t.vcs_url,r]=o.url.toString().split("#",2);break}try{return new a.PackageURL(i(this,o,"f"),e.group,e.name,e.version,t,r)}catch{return}}},o=new WeakMap},111:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isNotUndefined=void 0,t.isNotUndefined=function(e){return void 0!==e}},428:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SortableSet=void 0;class r extends Set{sorted(){return Array.from(this).sort(((e,t)=>e.compare(t)))}}t.SortableSet=r},136: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(354)),t.Spec=i(r(841)),t.Serialize=i(r(650))},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),u=r(191),d=r(428);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.supplier=r.supplier,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 u.LicenseRepository,this.publisher=r.publisher,this.purl=r.purl,this.scope=r.scope,this.swid=r.swid,this.version=r.version,this.description=r.description,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 m extends d.SortableSet{}t.ComponentRepository=m},422:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ExternalReferenceRepository=t.ExternalReference=void 0;const o=r(428);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 n extends o.SortableSet{}t.ExternalReferenceRepository=n},368:function(e,t){var r,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)};Object.defineProperty(t,"__esModule",{value:!0}),t.HashRepository=void 0;class i extends Map{constructor(){super(...arguments),r.add(this)}sorted(){return Array.from(this.entries()).sort(n(this,r,"m",o))}}t.HashRepository=i,r=new WeakSet,o=function([e,t],[r,o]){return e.localeCompare(r)||t.localeCompare(o)}},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,a,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)},c=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 l=r(169);class p{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 s(this,o,"f")}set expression(e){if(!p.isEligibleExpression(e))throw new RangeError("Not eligible expression");c(this,o,e,"f")}compare(e){return s(this,o,"f").localeCompare(s(e,o,"f"))}}t.LicenseExpression=p,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 s(this,n,"f")}set id(e){if(!(0,l.isSupportedSpdxId)(e))throw new RangeError("Unknown SPDX id");c(this,n,e,"f")}compare(e){return s(this,n,"f").localeCompare(s(e,n,"f"))}},n=new WeakMap;class u extends Set{constructor(){super(...arguments),i.add(this)}sorted(){return Array.from(this).sort(s(this,i,"m",a))}}t.LicenseRepository=u,i=new WeakSet,a=function(e,t){return e.constructor===t.constructor?e.compare(t):e.constructor.name.localeCompare(t.constructor.name)}},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,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OrganizationalContactRepository=t.OrganizationalContact=void 0;const o=r(428);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 n extends o.SortableSet{}t.OrganizationalContactRepository=n},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),i=r(428);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 a extends i.SortableSet{}t.ToolRepository=a},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)}`}},750: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)},650: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(750),t),n(r(955),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]}),u=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),d=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 u(t,e),t},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},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(111),y=d(r(357)),v=r(841),w=r(143);t.Factory=class{constructor(e){o.set(this,void 0),m(this,o,e,"f")}get spec(){return h(this,o,"f")}makeForBom(){return new C(this)}makeForMetadata(){return new b(this)}makeForComponent(){return new x(this)}makeForTool(){return new P(this)}makeForOrganizationalContact(){return new _(this)}makeForOrganizationalEntity(){return new A(this)}makeForHash(){return new g(this)}makeForLicense(){return new O(this)}makeForSWID(){return new E(this)}makeForExternalReference(){return new T(this)}makeForAttachment(){return new R(this)}makeForDependencyGraph(){return new z(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 S{constructor(e){this._factory=e}}class C extends S{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().normalizeRepository(e.components,t):[],dependencies:this._factory.spec.supportsDependencyGraph?this._factory.makeForDependencyGraph().normalize(e,t):void 0}}}t.BomNormalizer=C;class b extends S{normalize(e,t){const r=this._factory.makeForOrganizationalEntity();return{timestamp:e.timestamp?.toISOString(),tools:e.tools.size>0?this._factory.makeForTool().normalizeRepository(e.tools,t):void 0,authors:e.authors.size>0?this._factory.makeForOrganizationalContact().normalizeRepository(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 P extends S{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().normalizeRepository(e.hashes,t):void 0,externalReferences:this._factory.spec.supportsToolReferences&&e.externalReferences.size>0?this._factory.makeForExternalReference().normalizeRepository(e.externalReferences,t):void 0}}normalizeRepository(e,t){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t)))}}t.ToolNormalizer=P;class g extends S{normalize([e,t],r){const o=this._factory.spec;return o.supportsHashAlgorithm(e)&&o.supportsHashValue(t)?{alg:e,content:t}:void 0}normalizeRepository(e,t){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t))).filter(f.isNotUndefined)}}t.HashNormalizer=g;class _ extends S{normalize(e,t){return{name:e.name||void 0,email:w.JsonSchema.isIdnEmail(e.email)?e.email:void 0,phone:e.phone||void 0}}normalizeRepository(e,t){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t)))}}t.OrganizationalContactNormalizer=_;class A extends S{normalize(e,t){const r=N(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().normalizeRepository(e.contact,t):void 0}}}t.OrganizationalEntityNormalizer=A;class x extends S{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().normalizeRepository(e.hashes,t):void 0,licenses:e.licenses.size>0?this._factory.makeForLicense().normalizeRepository(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().normalizeRepository(e.externalReferences,t):void 0}:void 0}normalizeRepository(e,t){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t))).filter(f.isNotUndefined)}}t.ComponentNormalizer=x;class O extends S{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")}}normalizeRepository(e,t){return(t.sortLists?e.sorted():Array.from(e)).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 S{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 T extends S{normalize(e,t){return this._factory.spec.supportsExternalReferenceType(e.type)?{url:e.url.toString(),type:e.type,comment:e.comment||void 0}:void 0}normalizeRepository(e,t){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t))).filter(f.isNotUndefined)}}t.ExternalReferenceNormalizer=T;class R extends S{normalize(e,t){return{content:e.content,contentType:e.contentType||void 0,encoding:e.encoding}}}t.AttachmentNormalizer=R;class z extends S{constructor(){super(...arguments),c.add(this)}normalize(e,t){const r=new Map;void 0!==e.metadata.component&&r.set(e.metadata.component.bomRef,e.metadata.component.dependencies);for(const t of e.components)r.set(t.bomRef,new y.BomRefRepository(t.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 N(e,t){const r=Array.from(e,(e=>e.toString()));return t.sortLists&&r.sort(((e,t)=>e.localeCompare(t))),r}t.DependencyGraphNormalizer=z,c=new WeakSet,l=function(e,t,r,o){const n=e.toString();if(0===n.length)return;const i=N(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]}),u=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),d=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 u(t,e),t},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},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(111),y=d(r(357)),v=r(841),w=r(700);t.Factory=class{constructor(e){o.set(this,void 0),m(this,o,e,"f")}get spec(){return h(this,o,"f")}makeForBom(){return new C(this)}makeForMetadata(){return new b(this)}makeForComponent(){return new x(this)}makeForTool(){return new P(this)}makeForOrganizationalContact(){return new _(this)}makeForOrganizationalEntity(){return new A(this)}makeForHash(){return new g(this)}makeForLicense(){return new O(this)}makeForSWID(){return new E(this)}makeForExternalReference(){return new T(this)}makeForAttachment(){return new R(this)}makeForDependencyGraph(){return new z(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 S{constructor(e){this._factory=e}}class C extends S{normalize(e,t){const r={type:"element",name:"components",children:e.components.size>0?this._factory.makeForComponent().normalizeRepository(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=C;class b extends S{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().normalizeRepository(e.tools,t,"tool")}:void 0,e.authors.size>0?{type:"element",name:"authors",children:this._factory.makeForOrganizationalContact().normalizeRepository(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 P extends S{normalize(e,t,r){const o=e.hashes.size>0?{type:"element",name:"hashes",children:this._factory.makeForHash().normalizeRepository(e.hashes,t,"hash")}:void 0,n=this._factory.spec.supportsToolReferences&&e.externalReferences.size>0?{type:"element",name:"externalReferences",children:this._factory.makeForExternalReference().normalizeRepository(e.externalReferences,t,"reference")}:void 0;return{type:"element",name:r,children:[N(e.vendor,"vendor"),N(e.name,"name"),N(e.version,"version"),o,n].filter(f.isNotUndefined)}}normalizeRepository(e,t,r){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t,r)))}}t.ToolNormalizer=P;class g extends S{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}normalizeRepository(e,t,r){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t,r))).filter(f.isNotUndefined)}}t.HashNormalizer=g;class _ extends S{normalize(e,t,r){return{type:"element",name:r,children:[N(e.name,"name"),N(e.email,"email"),N(e.phone,"phone")].filter(f.isNotUndefined)}}normalizeRepository(e,t,r){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t,r)))}}t.OrganizationalContactNormalizer=_;class A extends S{normalize(e,t,r){return{type:"element",name:r,children:[N(e.name,"name"),...D(e.url,t,"url").filter((({children:e})=>w.XmlSchema.isAnyURI(e))),...this._factory.makeForOrganizationalContact().normalizeRepository(e.contact,t,"contact")].filter(f.isNotUndefined)}}}t.OrganizationalEntityNormalizer=A;class x extends S{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().normalizeRepository(e.hashes,t,"hash")}:void 0,i=e.licenses.size>0?{type:"element",name:"licenses",children:this._factory.makeForLicense().normalizeRepository(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().normalizeRepository(e.externalReferences,t,"reference")}:void 0;return{type:"element",name:r,attributes:{type:e.type,"bom-ref":e.bomRef.value},children:[o,N(e.author,"author"),N(e.publisher,"publisher"),N(e.group,"group"),F(e.name,"name"),F(e.version??"","version"),N(e.description,"description"),N(e.scope,"scope"),n,i,N(e.copyright,"copyright"),N(e.cpe,"cpe"),N(e.purl,"purl"),a,s].filter(f.isNotUndefined)}}normalizeRepository(e,t,r){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t,r))).filter(f.isNotUndefined)}}t.ComponentNormalizer=x;class O extends S{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")}}normalizeRepository(e,t){return(t.sortLists?e.sorted():Array.from(e)).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:[F(e.name,"name"),void 0===e.text?void 0:this._factory.makeForAttachment().normalize(e.text,t,"text"),w.XmlSchema.isAnyURI(r)?F(r,"url"):void 0].filter(f.isNotUndefined)}},a=function(e,t){const r=e.url?.toString();return{type:"element",name:"license",children:[F(e.id,"id"),void 0===e.text?void 0:this._factory.makeForAttachment().normalize(e.text,t,"text"),w.XmlSchema.isAnyURI(r)?F(r,"url"):void 0].filter(f.isNotUndefined)}},s=function(e){return F(e.expression,"expression")};class E extends S{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)?F(o,"url"):void 0].filter(f.isNotUndefined)}}}t.SWIDNormalizer=E;class T extends S{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:[F(o,"url"),N(e.comment,"comment")].filter(f.isNotUndefined)}:void 0}normalizeRepository(e,t,r){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t,r))).filter(f.isNotUndefined)}}t.ExternalReferenceNormalizer=T;class R extends S{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=R;class z extends S{constructor(){super(...arguments),c.add(this)}normalize(e,t,r){const o=new Map;void 0!==e.metadata.component&&o.set(e.metadata.component.bomRef,e.metadata.component.dependencies);for(const t of e.components)o.set(t.bomRef,new y.BomRefRepository(t.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 N(e,t){const r=e?.toString()??"";return r.length>0?F(r,t):void 0}function F(e,t){return{type:"element",name:t,children:e.toString()}}function D(e,t,r){const o=Array.from(e,(e=>F(e,r)));return t.sortLists&&o.sort((({children:e},{children:t})=>e.localeCompare(t))),o}t.DependencyGraphNormalizer=z,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},955: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(111),u=r(47);class d extends u.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=d,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,u=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},d=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 m=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,d,m,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),u(this,o,e,"f"),u(this,n,new Set(t),"f"),u(this,i,new Set(r),"f"),u(this,a,new Set(d),"f"),u(this,s,m,"f"),u(this,c,new Set(h),"f"),u(this,l,f,"f"),u(this,p,y,"f")}get version(){return d(this,o,"f")}supportsFormat(e){return d(this,n,"f").has(e)}supportsComponentType(e){return d(this,i,"f").has(e)}supportsHashAlgorithm(e){return d(this,a,"f").has(e)}supportsHashValue(e){return"string"==typeof e&&d(this,s,"f").test(e)}supportsExternalReferenceType(e){return d(this,c,"f").has(e)}get supportsDependencyGraph(){return d(this,l,"f")}get supportsToolReferences(){return d(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],[m.ComponentType.Application,m.ComponentType.Framework,m.ComponentType.Library,m.ComponentType.Container,m.ComponentType.OperatingSystem,m.ComponentType.Device,m.ComponentType.Firmware,m.ComponentType.File],[m.HashAlgorithm.MD5,m.HashAlgorithm["SHA-1"],m.HashAlgorithm["SHA-256"],m.HashAlgorithm["SHA-384"],m.HashAlgorithm["SHA-512"],m.HashAlgorithm["SHA3-256"],m.HashAlgorithm["SHA3-384"],m.HashAlgorithm["SHA3-512"],m.HashAlgorithm["BLAKE2b-256"],m.HashAlgorithm["BLAKE2b-384"],m.HashAlgorithm["BLAKE2b-512"],m.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})$/,[m.ExternalReferenceType.VCS,m.ExternalReferenceType.IssueTracker,m.ExternalReferenceType.Website,m.ExternalReferenceType.Advisories,m.ExternalReferenceType.BOM,m.ExternalReferenceType.MailingList,m.ExternalReferenceType.Social,m.ExternalReferenceType.Chat,m.ExternalReferenceType.Documentation,m.ExternalReferenceType.Support,m.ExternalReferenceType.Distribution,m.ExternalReferenceType.License,m.ExternalReferenceType.BuildMeta,m.ExternalReferenceType.BuildSystem,m.ExternalReferenceType.Other],!0,!1)),t.Spec1dot3=Object.freeze(new v(h.v1dot3,[f.XML,f.JSON],[m.ComponentType.Application,m.ComponentType.Framework,m.ComponentType.Library,m.ComponentType.Container,m.ComponentType.OperatingSystem,m.ComponentType.Device,m.ComponentType.Firmware,m.ComponentType.File],[m.HashAlgorithm.MD5,m.HashAlgorithm["SHA-1"],m.HashAlgorithm["SHA-256"],m.HashAlgorithm["SHA-384"],m.HashAlgorithm["SHA-512"],m.HashAlgorithm["SHA3-256"],m.HashAlgorithm["SHA3-384"],m.HashAlgorithm["SHA3-512"],m.HashAlgorithm["BLAKE2b-256"],m.HashAlgorithm["BLAKE2b-384"],m.HashAlgorithm["BLAKE2b-512"],m.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})$/,[m.ExternalReferenceType.VCS,m.ExternalReferenceType.IssueTracker,m.ExternalReferenceType.Website,m.ExternalReferenceType.Advisories,m.ExternalReferenceType.BOM,m.ExternalReferenceType.MailingList,m.ExternalReferenceType.Social,m.ExternalReferenceType.Chat,m.ExternalReferenceType.Documentation,m.ExternalReferenceType.Support,m.ExternalReferenceType.Distribution,m.ExternalReferenceType.License,m.ExternalReferenceType.BuildMeta,m.ExternalReferenceType.BuildSystem,m.ExternalReferenceType.Other],!0,!1)),t.Spec1dot4=Object.freeze(new v(h.v1dot4,[f.XML,f.JSON],[m.ComponentType.Application,m.ComponentType.Framework,m.ComponentType.Library,m.ComponentType.Container,m.ComponentType.OperatingSystem,m.ComponentType.Device,m.ComponentType.Firmware,m.ComponentType.File],[m.HashAlgorithm.MD5,m.HashAlgorithm["SHA-1"],m.HashAlgorithm["SHA-256"],m.HashAlgorithm["SHA-384"],m.HashAlgorithm["SHA-512"],m.HashAlgorithm["SHA3-256"],m.HashAlgorithm["SHA3-384"],m.HashAlgorithm["SHA3-512"],m.HashAlgorithm["BLAKE2b-256"],m.HashAlgorithm["BLAKE2b-384"],m.HashAlgorithm["BLAKE2b-512"],m.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})$/,[m.ExternalReferenceType.VCS,m.ExternalReferenceType.IssueTracker,m.ExternalReferenceType.Website,m.ExternalReferenceType.Advisories,m.ExternalReferenceType.BOM,m.ExternalReferenceType.MailingList,m.ExternalReferenceType.Social,m.ExternalReferenceType.Chat,m.ExternalReferenceType.Documentation,m.ExternalReferenceType.Support,m.ExternalReferenceType.Distribution,m.ExternalReferenceType.License,m.ExternalReferenceType.BuildMeta,m.ExternalReferenceType.BuildSystem,m.ExternalReferenceType.ReleaseNotes,m.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\-\._]|(\\[\\\*\?!&quot;#$$%&amp;'\(\)\+,\/:;&lt;=&gt;@\[\]\^`\{\|}~]))+(\?*|\*?))|[\*\-])){5}(:(([a-zA-Z]{2,3}(-([a-zA-Z]{2}|[0-9]{3}))?)|[\*\-]))(:(((\?*|\*?)([a-zA-Z0-9\-\._]|(\\[\\\*\?!&quot;#$$%&amp;'\(\)\+,\/:;&lt;=&gt;@\[\]\^`\{\|}~]))+(\?*|\*?))|[\*\-])){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)}},745:t=>{t.exports=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"]}')}},r={};return function e(o){var n=r[o];if(void 0!==n)return n.exports;var i=r[o]={exports:{}};return t[o].call(i.exports,i,i.exports,e),i.exports}(136)})()));
2
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("PackageURL")):"function"==typeof define&&define.amd?define(["PackageURL"],t):"object"==typeof exports?exports.CycloneDX_library=t(require("PackageURL")):e.CycloneDX_library=t(e.PackageURL)}(self,(e=>(()=>{"use strict";var t={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)},123: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(990),t),n(r(951),t)},354: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(123),t)},990:(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))}}},951: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.PackageUrlFactory=void 0;const a=r(745),s=r(507);t.PackageUrlFactory=class{constructor(e){o.set(this,void 0),n(this,o,e,"f")}get type(){return i(this,o,"f")}makeFromComponent(e,t=!1){const r={};let n;const c=e.externalReferences;for(const e of t?c.sorted():c)switch(e.type){case s.ExternalReferenceType.VCS:[r.vcs_url,n]=e.url.toString().split("#",2);break;case s.ExternalReferenceType.Distribution:r.download_url=e.url.toString()}const l=e.hashes;l.size>0&&(r.checksum=Array.from(t?l.sorted():l,(([e,t])=>`${e.toLowerCase()}:${t.toLowerCase()}`)).join(","));try{return new a.PackageURL(i(this,o,"f"),e.group,e.name,e.version,r,n)}catch{return}}},o=new WeakMap},111:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isNotUndefined=void 0,t.isNotUndefined=function(e){return void 0!==e}},428:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SortableSet=void 0;class r extends Set{sorted(){return Array.from(this).sort(((e,t)=>e.compare(t)))}}t.SortableSet=r},914:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.treeIterator=void 0,t.treeIterator=Symbol("iterator of a tree/nesting-like structure")},136: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(354)),t.Spec=i(r(841)),t.Serialize=i(r(650))},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),u=r(191),d=r(428),m=r(914);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.supplier=r.supplier,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 u.LicenseRepository,this.publisher=r.publisher,this.purl=r.purl,this.scope=r.scope,this.swid=r.swid,this.version=r.version,this.description=r.description,this.dependencies=r.dependencies??new c.BomRefRepository,this.components=r.components??new h,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 h extends d.SortableSet{*[m.treeIterator](){for(const e of this)yield e,yield*e.components[m.treeIterator]()}}t.ComponentRepository=h},422:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ExternalReferenceRepository=t.ExternalReference=void 0;const o=r(428);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 n extends o.SortableSet{}t.ExternalReferenceRepository=n},368:function(e,t){var r,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)};Object.defineProperty(t,"__esModule",{value:!0}),t.HashRepository=void 0;class i extends Map{constructor(){super(...arguments),r.add(this)}sorted(){return Array.from(this.entries()).sort(n(this,r,"m",o))}}t.HashRepository=i,r=new WeakSet,o=function([e,t],[r,o]){return e.localeCompare(r)||t.localeCompare(o)}},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,a,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)},c=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 l=r(169);class p{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 s(this,o,"f")}set expression(e){if(!p.isEligibleExpression(e))throw new RangeError("Not eligible expression");c(this,o,e,"f")}compare(e){return s(this,o,"f").localeCompare(s(e,o,"f"))}}t.LicenseExpression=p,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 s(this,n,"f")}set id(e){if(!(0,l.isSupportedSpdxId)(e))throw new RangeError("Unknown SPDX id");c(this,n,e,"f")}compare(e){return s(this,n,"f").localeCompare(s(e,n,"f"))}},n=new WeakMap;class u extends Set{constructor(){super(...arguments),i.add(this)}sorted(){return Array.from(this).sort(s(this,i,"m",a))}}t.LicenseRepository=u,i=new WeakSet,a=function(e,t){return e.constructor===t.constructor?e.compare(t):e.constructor.name.localeCompare(t.constructor.name)}},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,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OrganizationalContactRepository=t.OrganizationalContact=void 0;const o=r(428);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 n extends o.SortableSet{}t.OrganizationalContactRepository=n},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),i=r(428);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 a extends i.SortableSet{}t.ToolRepository=a},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")}get prefix(){return s(this,n,"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)}`}},750: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)},650: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(750),t),n(r(955),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]}),u=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),d=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 u(t,e),t},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},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(111),y=d(r(357)),v=r(841),w=r(143),L=r(914);t.Factory=class{constructor(e){o.set(this,void 0),m(this,o,e,"f")}get spec(){return h(this,o,"f")}makeForBom(){return new b(this)}makeForMetadata(){return new g(this)}makeForComponent(){return new O(this)}makeForTool(){return new P(this)}makeForOrganizationalContact(){return new A(this)}makeForOrganizationalEntity(){return new x(this)}makeForHash(){return new _(this)}makeForLicense(){return new E(this)}makeForSWID(){return new T(this)}makeForExternalReference(){return new z(this)}makeForAttachment(){return new R(this)}makeForDependencyGraph(){return new N(this)}},o=new WeakMap;const S=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}get factory(){return this._factory}}class b extends C{normalize(e,t){return{$schema:S.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().normalizeRepository(e.components,t):[],dependencies:this._factory.spec.supportsDependencyGraph?this._factory.makeForDependencyGraph().normalize(e,t):void 0}}}t.BomNormalizer=b;class g extends C{normalize(e,t){const r=this._factory.makeForOrganizationalEntity();return{timestamp:e.timestamp?.toISOString(),tools:e.tools.size>0?this._factory.makeForTool().normalizeRepository(e.tools,t):void 0,authors:e.authors.size>0?this._factory.makeForOrganizationalContact().normalizeRepository(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=g;class P 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().normalizeRepository(e.hashes,t):void 0,externalReferences:this._factory.spec.supportsToolReferences&&e.externalReferences.size>0?this._factory.makeForExternalReference().normalizeRepository(e.externalReferences,t):void 0}}normalizeRepository(e,t){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t)))}}t.ToolNormalizer=P;class _ extends C{normalize([e,t],r){const o=this._factory.spec;return o.supportsHashAlgorithm(e)&&o.supportsHashValue(t)?{alg:e,content:t}:void 0}normalizeRepository(e,t){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t))).filter(f.isNotUndefined)}}t.HashNormalizer=_;class A 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}}normalizeRepository(e,t){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t)))}}t.OrganizationalContactNormalizer=A;class x extends C{normalize(e,t){const r=F(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().normalizeRepository(e.contact,t):void 0}}}t.OrganizationalEntityNormalizer=x;class O extends C{normalize(e,t){const r=this._factory.spec,o=e.version??"";return r.supportsComponentType(e.type)?{type:e.type,name:e.name,group:e.group||void 0,version:o.length>0||r.requiresComponentVersion?o:void 0,"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().normalizeRepository(e.hashes,t):void 0,licenses:e.licenses.size>0?this._factory.makeForLicense().normalizeRepository(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().normalizeRepository(e.externalReferences,t):void 0,components:e.components.size>0?this.normalizeRepository(e.components,t):void 0}:void 0}normalizeRepository(e,t){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t))).filter(f.isNotUndefined)}}t.ComponentNormalizer=O;class E 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")}}normalizeRepository(e,t){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t)))}}t.LicenseNormalizer=E,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 T 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=T;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}normalizeRepository(e,t){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t))).filter(f.isNotUndefined)}}t.ExternalReferenceNormalizer=z;class R extends C{normalize(e,t){return{content:e.content,contentType:e.contentType||void 0,encoding:e.encoding}}}t.AttachmentNormalizer=R;class N extends C{constructor(){super(...arguments),c.add(this)}normalize(e,t){const r=new Map;if(void 0!==e.metadata.component){r.set(e.metadata.component.bomRef,e.metadata.component.dependencies);for(const t of e.metadata.component.components[L.treeIterator]())r.set(t.bomRef,t.dependencies)}for(const t of e.components[L.treeIterator]())r.set(t.bomRef,t.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 F(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=F(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")}get normalizerFactory(){return i(this,o,"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]}),u=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),d=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 u(t,e),t},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},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(111),y=d(r(357)),v=r(841),w=r(700),L=r(914);t.Factory=class{constructor(e){o.set(this,void 0),m(this,o,e,"f")}get spec(){return h(this,o,"f")}makeForBom(){return new b(this)}makeForMetadata(){return new g(this)}makeForComponent(){return new O(this)}makeForTool(){return new P(this)}makeForOrganizationalContact(){return new A(this)}makeForOrganizationalEntity(){return new x(this)}makeForHash(){return new _(this)}makeForLicense(){return new E(this)}makeForSWID(){return new T(this)}makeForExternalReference(){return new z(this)}makeForAttachment(){return new R(this)}makeForDependencyGraph(){return new N(this)}},o=new WeakMap;const S=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}get factory(){return this._factory}}class b extends C{normalize(e,t){const r={type:"element",name:"components",children:e.components.size>0?this._factory.makeForComponent().normalizeRepository(e.components,t,"component"):void 0};return{type:"element",name:"bom",namespace:S.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=b;class g 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().normalizeRepository(e.tools,t,"tool")}:void 0,e.authors.size>0?{type:"element",name:"authors",children:this._factory.makeForOrganizationalContact().normalizeRepository(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=g;class P extends C{normalize(e,t,r){const o=e.hashes.size>0?{type:"element",name:"hashes",children:this._factory.makeForHash().normalizeRepository(e.hashes,t,"hash")}:void 0,n=this._factory.spec.supportsToolReferences&&e.externalReferences.size>0?{type:"element",name:"externalReferences",children:this._factory.makeForExternalReference().normalizeRepository(e.externalReferences,t,"reference")}:void 0;return{type:"element",name:r,children:[F(e.vendor,"vendor"),F(e.name,"name"),F(e.version,"version"),o,n].filter(f.isNotUndefined)}}normalizeRepository(e,t,r){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t,r)))}}t.ToolNormalizer=P;class _ 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}normalizeRepository(e,t,r){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t,r))).filter(f.isNotUndefined)}}t.HashNormalizer=_;class A extends C{normalize(e,t,r){return{type:"element",name:r,children:[F(e.name,"name"),F(e.email,"email"),F(e.phone,"phone")].filter(f.isNotUndefined)}}normalizeRepository(e,t,r){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t,r)))}}t.OrganizationalContactNormalizer=A;class x extends C{normalize(e,t,r){return{type:"element",name:r,children:[F(e.name,"name"),...M(e.url,t,"url").filter((({children:e})=>w.XmlSchema.isAnyURI(e))),...this._factory.makeForOrganizationalContact().normalizeRepository(e.contact,t,"contact")].filter(f.isNotUndefined)}}}t.OrganizationalEntityNormalizer=x;class O extends C{normalize(e,t,r){const o=this._factory.spec;if(!o.supportsComponentType(e.type))return;const n=void 0===e.supplier?void 0:this._factory.makeForOrganizationalEntity().normalize(e.supplier,t,"supplier"),i=(o.requiresComponentVersion?D:F)(e.version??"","version"),a=e.hashes.size>0?{type:"element",name:"hashes",children:this._factory.makeForHash().normalizeRepository(e.hashes,t,"hash")}:void 0,s=e.licenses.size>0?{type:"element",name:"licenses",children:this._factory.makeForLicense().normalizeRepository(e.licenses,t)}:void 0,c=void 0===e.swid?void 0:this._factory.makeForSWID().normalize(e.swid,t,"swid"),l=e.externalReferences.size>0?{type:"element",name:"externalReferences",children:this._factory.makeForExternalReference().normalizeRepository(e.externalReferences,t,"reference")}:void 0,p=e.components.size>0?{type:"element",name:"components",children:this.normalizeRepository(e.components,t,"component")}:void 0;return{type:"element",name:r,attributes:{type:e.type,"bom-ref":e.bomRef.value},children:[n,F(e.author,"author"),F(e.publisher,"publisher"),F(e.group,"group"),D(e.name,"name"),i,F(e.description,"description"),F(e.scope,"scope"),a,s,F(e.copyright,"copyright"),F(e.cpe,"cpe"),F(e.purl,"purl"),c,l,p].filter(f.isNotUndefined)}}normalizeRepository(e,t,r){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t,r))).filter(f.isNotUndefined)}}t.ComponentNormalizer=O;class E 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")}}normalizeRepository(e,t){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t)))}}t.LicenseNormalizer=E,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 T 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=T;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"),F(e.comment,"comment")].filter(f.isNotUndefined)}:void 0}normalizeRepository(e,t,r){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t,r))).filter(f.isNotUndefined)}}t.ExternalReferenceNormalizer=z;class R 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=R;class N extends C{constructor(){super(...arguments),c.add(this)}normalize(e,t,r){const o=new Map;if(void 0!==e.metadata.component){o.set(e.metadata.component.bomRef,e.metadata.component.dependencies);for(const t of e.metadata.component.components[L.treeIterator]())o.set(t.bomRef,t.dependencies)}for(const t of e.components[L.treeIterator]())o.set(t.bomRef,t.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 F(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 M(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")}get normalizerFactory(){return i(this,o,"f")}_normalize(e,t={}){return i(this,o,"f").makeForBom().normalize(e,t)}}t.XmlBaseSerializer=c,o=new WeakMap},955: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(111),u=r(47);class d extends u.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=d,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,u,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},m=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 h=r(507);var f,y;!function(e){e.v1dot0="1.0",e.v1dot1="1.1",e.v1dot2="1.2",e.v1dot3="1.3",e.v1dot4="1.4"}(f=t.Version||(t.Version={})),function(e){e.XML="xml",e.JSON="json"}(y=t.Format||(t.Format={}));class v extends Error{}t.UnsupportedFormatError=v;class w{constructor(e,t,r,m,h,f,y,v,w){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),u.set(this,void 0),d(this,o,e,"f"),d(this,n,new Set(t),"f"),d(this,i,new Set(r),"f"),d(this,a,new Set(m),"f"),d(this,s,h,"f"),d(this,c,new Set(f),"f"),d(this,l,y,"f"),d(this,p,v,"f"),d(this,u,w,"f")}get version(){return m(this,o,"f")}supportsFormat(e){return m(this,n,"f").has(e)}supportsComponentType(e){return m(this,i,"f").has(e)}supportsHashAlgorithm(e){return m(this,a,"f").has(e)}supportsHashValue(e){return"string"==typeof e&&m(this,s,"f").test(e)}supportsExternalReferenceType(e){return m(this,c,"f").has(e)}get supportsDependencyGraph(){return m(this,l,"f")}get supportsToolReferences(){return m(this,p,"f")}get requiresComponentVersion(){return m(this,u,"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,u=new WeakMap,t.Spec1dot2=Object.freeze(new w(f.v1dot2,[y.XML,y.JSON],[h.ComponentType.Application,h.ComponentType.Framework,h.ComponentType.Library,h.ComponentType.Container,h.ComponentType.OperatingSystem,h.ComponentType.Device,h.ComponentType.Firmware,h.ComponentType.File],[h.HashAlgorithm.MD5,h.HashAlgorithm["SHA-1"],h.HashAlgorithm["SHA-256"],h.HashAlgorithm["SHA-384"],h.HashAlgorithm["SHA-512"],h.HashAlgorithm["SHA3-256"],h.HashAlgorithm["SHA3-384"],h.HashAlgorithm["SHA3-512"],h.HashAlgorithm["BLAKE2b-256"],h.HashAlgorithm["BLAKE2b-384"],h.HashAlgorithm["BLAKE2b-512"],h.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})$/,[h.ExternalReferenceType.VCS,h.ExternalReferenceType.IssueTracker,h.ExternalReferenceType.Website,h.ExternalReferenceType.Advisories,h.ExternalReferenceType.BOM,h.ExternalReferenceType.MailingList,h.ExternalReferenceType.Social,h.ExternalReferenceType.Chat,h.ExternalReferenceType.Documentation,h.ExternalReferenceType.Support,h.ExternalReferenceType.Distribution,h.ExternalReferenceType.License,h.ExternalReferenceType.BuildMeta,h.ExternalReferenceType.BuildSystem,h.ExternalReferenceType.Other],!0,!1,!0)),t.Spec1dot3=Object.freeze(new w(f.v1dot3,[y.XML,y.JSON],[h.ComponentType.Application,h.ComponentType.Framework,h.ComponentType.Library,h.ComponentType.Container,h.ComponentType.OperatingSystem,h.ComponentType.Device,h.ComponentType.Firmware,h.ComponentType.File],[h.HashAlgorithm.MD5,h.HashAlgorithm["SHA-1"],h.HashAlgorithm["SHA-256"],h.HashAlgorithm["SHA-384"],h.HashAlgorithm["SHA-512"],h.HashAlgorithm["SHA3-256"],h.HashAlgorithm["SHA3-384"],h.HashAlgorithm["SHA3-512"],h.HashAlgorithm["BLAKE2b-256"],h.HashAlgorithm["BLAKE2b-384"],h.HashAlgorithm["BLAKE2b-512"],h.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})$/,[h.ExternalReferenceType.VCS,h.ExternalReferenceType.IssueTracker,h.ExternalReferenceType.Website,h.ExternalReferenceType.Advisories,h.ExternalReferenceType.BOM,h.ExternalReferenceType.MailingList,h.ExternalReferenceType.Social,h.ExternalReferenceType.Chat,h.ExternalReferenceType.Documentation,h.ExternalReferenceType.Support,h.ExternalReferenceType.Distribution,h.ExternalReferenceType.License,h.ExternalReferenceType.BuildMeta,h.ExternalReferenceType.BuildSystem,h.ExternalReferenceType.Other],!0,!1,!0)),t.Spec1dot4=Object.freeze(new w(f.v1dot4,[y.XML,y.JSON],[h.ComponentType.Application,h.ComponentType.Framework,h.ComponentType.Library,h.ComponentType.Container,h.ComponentType.OperatingSystem,h.ComponentType.Device,h.ComponentType.Firmware,h.ComponentType.File],[h.HashAlgorithm.MD5,h.HashAlgorithm["SHA-1"],h.HashAlgorithm["SHA-256"],h.HashAlgorithm["SHA-384"],h.HashAlgorithm["SHA-512"],h.HashAlgorithm["SHA3-256"],h.HashAlgorithm["SHA3-384"],h.HashAlgorithm["SHA3-512"],h.HashAlgorithm["BLAKE2b-256"],h.HashAlgorithm["BLAKE2b-384"],h.HashAlgorithm["BLAKE2b-512"],h.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})$/,[h.ExternalReferenceType.VCS,h.ExternalReferenceType.IssueTracker,h.ExternalReferenceType.Website,h.ExternalReferenceType.Advisories,h.ExternalReferenceType.BOM,h.ExternalReferenceType.MailingList,h.ExternalReferenceType.Social,h.ExternalReferenceType.Chat,h.ExternalReferenceType.Documentation,h.ExternalReferenceType.Support,h.ExternalReferenceType.Distribution,h.ExternalReferenceType.License,h.ExternalReferenceType.BuildMeta,h.ExternalReferenceType.BuildSystem,h.ExternalReferenceType.ReleaseNotes,h.ExternalReferenceType.Other],!0,!0,!1)),t.SpecVersionDict=Object.freeze(Object.fromEntries([[f.v1dot2,t.Spec1dot2],[f.v1dot3,t.Spec1dot3],[f.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)}},745:t=>{t.exports=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"]}')}},r={};return function e(o){var n=r[o];if(void 0!==n)return n.exports;var i=r[o]={exports:{}};return t[o].call(i.exports,i,i.exports,e),i.exports}(136)})()));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyclonedx/cyclonedx-library",
3
- "version": "1.0.2",
3
+ "version": "1.2.0",
4
4
  "description": "Core functionality of CycloneDX for JavaScript (Node.js or WebBrowser).",
5
5
  "keywords": [
6
6
  "CycloneDX",
@@ -18,7 +18,7 @@
18
18
  "homepage": "https://github.com/CycloneDX/cyclonedx-javascript-library#readme",
19
19
  "repository": {
20
20
  "type": "git",
21
- "url": "https://github.com/CycloneDX/cyclonedx-javascript-library.git"
21
+ "url": "git+https://github.com/CycloneDX/cyclonedx-javascript-library.git"
22
22
  },
23
23
  "bugs": {
24
24
  "url": "https://github.com/CycloneDX/cyclonedx-javascript-library/issues"
@@ -48,7 +48,9 @@
48
48
  "@types/mocha": "^9.1.1",
49
49
  "@types/node": "^18.0.0",
50
50
  "@types/webpack": "^5.28.0",
51
+ "@typescript-eslint/parser": "^4.33.0",
51
52
  "deepmerge": "4.2.2",
53
+ "eslint": "^7.32.0",
52
54
  "mocha": "10.0.0",
53
55
  "npm-run-all": "^4.1.5",
54
56
  "ts-loader": "9.3.1",
@@ -27,12 +27,16 @@ import { PackageJson, splitNameGroup } from '../helpers/packageJson'
27
27
  */
28
28
 
29
29
  export class ToolBuilder {
30
- readonly #extRefFactory: Factories.FromPackageJson.ExternalReferenceFactory
30
+ readonly #extRefFactory: Factories.FromNodePackageJson.ExternalReferenceFactory
31
31
 
32
- constructor (extRefFactory: Factories.FromPackageJson.ExternalReferenceFactory) {
32
+ constructor (extRefFactory: Factories.FromNodePackageJson.ExternalReferenceFactory) {
33
33
  this.#extRefFactory = extRefFactory
34
34
  }
35
35
 
36
+ get extRefFactory (): Factories.FromNodePackageJson.ExternalReferenceFactory {
37
+ return this.#extRefFactory
38
+ }
39
+
36
40
  makeTool (data: PackageJson): Models.Tool | undefined {
37
41
  const [name, vendor] = typeof data.name === 'string'
38
42
  ? splitNameGroup(data.name)
@@ -50,17 +54,25 @@ export class ToolBuilder {
50
54
  }
51
55
 
52
56
  export class ComponentBuilder {
53
- readonly #extRefFactory: Factories.FromPackageJson.ExternalReferenceFactory
57
+ readonly #extRefFactory: Factories.FromNodePackageJson.ExternalReferenceFactory
54
58
  readonly #licenseFactory: Factories.LicenseFactory
55
59
 
56
60
  constructor (
57
- extRefFactory: Factories.FromPackageJson.ExternalReferenceFactory,
61
+ extRefFactory: Factories.FromNodePackageJson.ExternalReferenceFactory,
58
62
  licenseFactory: Factories.LicenseFactory
59
63
  ) {
60
64
  this.#extRefFactory = extRefFactory
61
65
  this.#licenseFactory = licenseFactory
62
66
  }
63
67
 
68
+ get extRefFactory (): Factories.FromNodePackageJson.ExternalReferenceFactory {
69
+ return this.#extRefFactory
70
+ }
71
+
72
+ get licenseFactory (): Factories.LicenseFactory {
73
+ return this.#licenseFactory
74
+ }
75
+
64
76
  makeComponent (data: PackageJson, type: Enums.ComponentType = Enums.ComponentType.Library): Models.Component | undefined {
65
77
  if (typeof data.name !== 'string') {
66
78
  return undefined
@@ -17,4 +17,7 @@ SPDX-License-Identifier: Apache-2.0
17
17
  Copyright (c) OWASP Foundation. All Rights Reserved.
18
18
  */
19
19
 
20
- export * as FromPackageJson from './fromPackageJson.node'
20
+ /** @since 1.2.0 */
21
+ export * as FromNodePackageJson from './fromNodePackageJson.node'
22
+ /** @deprecated use {@link FromNodePackageJson} instead of {@link FromPackageJson} */
23
+ export * as FromPackageJson from './fromNodePackageJson.node'
@@ -19,4 +19,7 @@ Copyright (c) OWASP Foundation. All Rights Reserved.
19
19
 
20
20
  export * from './index.common'
21
21
 
22
- export * as FromPackageJson from './fromPackageJson.node'
22
+ /** @since 1.2.0 */
23
+ export * as FromNodePackageJson from './fromNodePackageJson.node'
24
+ /** @deprecated use {@link FromNodePackageJson} instead of {@link FromPackageJson} */
25
+ export * as FromPackageJson from './fromNodePackageJson.node'
@@ -22,24 +22,47 @@ import { PackageURL } from 'packageurl-js'
22
22
  import { ExternalReferenceType } from '../enums'
23
23
 
24
24
  export class PackageUrlFactory {
25
- readonly #type: string
25
+ readonly #type: PackageURL['type']
26
26
 
27
27
  constructor (type: PackageURL['type']) {
28
28
  this.#type = type
29
29
  }
30
30
 
31
- makeFromComponent (component: Component): PackageURL | undefined {
32
- const qualifiers: { [key: string]: string } = {}
33
- let subpath: string | undefined
31
+ get type (): PackageURL['type'] {
32
+ return this.#type
33
+ }
34
+
35
+ makeFromComponent (component: Component, sort: boolean = false): PackageURL | undefined {
36
+ /**
37
+ * For the list/spec of the well-known keys, see
38
+ * {@link https://github.com/package-url/purl-spec/blob/master/PURL-SPECIFICATION.rst#known-qualifiers-keyvalue-pairs}
39
+ */
40
+ const qualifiers: PackageURL['qualifiers'] = {}
41
+ let subpath: PackageURL['subpath']
34
42
 
35
- for (const e of component.externalReferences) {
36
- if (e.type === ExternalReferenceType.VCS) {
37
- [qualifiers.vcs_url, subpath] = e.url.toString().split('#', 2)
38
- break
43
+ const extRefs = component.externalReferences
44
+ for (const extRef of (sort ? extRefs.sorted() : extRefs)) {
45
+ switch (extRef.type) {
46
+ case ExternalReferenceType.VCS:
47
+ [qualifiers.vcs_url, subpath] = extRef.url.toString().split('#', 2)
48
+ break
49
+ case ExternalReferenceType.Distribution:
50
+ qualifiers.download_url = extRef.url.toString()
51
+ break
39
52
  }
40
53
  }
41
54
 
55
+ const hashes = component.hashes
56
+ if (hashes.size > 0) {
57
+ qualifiers.checksum = Array.from(
58
+ sort ? hashes.sorted() : hashes,
59
+ ([hashAlgo, hashCont]) => `${hashAlgo.toLowerCase()}:${hashCont.toLowerCase()}`
60
+ ).join(',')
61
+ }
62
+
42
63
  try {
64
+ // Do not beautify the parameters here, because that is in the domain of PackageURL and its representation.
65
+ // No need to convert an empty `subpath` string to `undefined` and such.
43
66
  return new PackageURL(
44
67
  this.#type,
45
68
  component.group,
@@ -0,0 +1,20 @@
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
+ */
19
+
20
+ export const treeIterator = Symbol('iterator of a tree/nesting-like structure')
@@ -28,6 +28,7 @@ import { ExternalReferenceRepository } from './externalReference'
28
28
  import { LicenseRepository } from './license'
29
29
  import { SWID } from './swid'
30
30
  import { Comparable, SortableSet } from '../helpers/sortableSet'
31
+ import { treeIterator } from '../helpers/tree'
31
32
 
32
33
  interface OptionalProperties {
33
34
  bomRef?: BomRef['value']
@@ -45,6 +46,7 @@ interface OptionalProperties {
45
46
  swid?: Component['swid']
46
47
  version?: Component['version']
47
48
  dependencies?: Component['dependencies']
49
+ components?: Component['components']
48
50
  cpe?: Component['cpe']
49
51
  }
50
52
 
@@ -65,6 +67,7 @@ export class Component implements Comparable {
65
67
  swid?: SWID
66
68
  version?: string
67
69
  dependencies: BomRefRepository
70
+ components: ComponentRepository
68
71
 
69
72
  /** @see bomRef */
70
73
  readonly #bomRef: BomRef
@@ -93,6 +96,7 @@ export class Component implements Comparable {
93
96
  this.version = op.version
94
97
  this.description = op.description
95
98
  this.dependencies = op.dependencies ?? new BomRefRepository()
99
+ this.components = op.components ?? new ComponentRepository()
96
100
  this.cpe = op.cpe
97
101
  }
98
102
 
@@ -134,4 +138,10 @@ export class Component implements Comparable {
134
138
  }
135
139
 
136
140
  export class ComponentRepository extends SortableSet<Component> {
141
+ * [treeIterator] (): Generator<Component> {
142
+ for (const component of this) {
143
+ yield component
144
+ yield * component.components[treeIterator]()
145
+ }
146
+ }
137
147
  }
@@ -31,6 +31,11 @@ export class BomRefDiscriminator {
31
31
  this.#prefix = prefix
32
32
  }
33
33
 
34
+ get prefix (): string {
35
+ return this.#prefix
36
+ }
37
+
38
+ /** Iterate over the bomRefs. */
34
39
  [Symbol.iterator] (): IterableIterator<BomRef> {
35
40
  return this.#originalValues.keys()
36
41
  }