@cyclonedx/cyclonedx-library 1.3.4 → 1.4.2

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 (70) hide show
  1. package/README.md +4 -2
  2. package/dist.node/builders/fromNodePackageJson.node.js +1 -1
  3. package/dist.node/builders/fromNodePackageJson.node.js.map +1 -1
  4. package/dist.node/builders/index.node.js.map +1 -1
  5. package/dist.node/factories/fromNodePackageJson.node.js +41 -2
  6. package/dist.node/factories/fromNodePackageJson.node.js.map +1 -1
  7. package/dist.node/factories/index.node.js.map +1 -1
  8. package/dist.node/factories/packageUrl.js +6 -3
  9. package/dist.node/factories/packageUrl.js.map +1 -1
  10. package/dist.node/helpers/packageUrl.js +28 -0
  11. package/dist.node/helpers/packageUrl.js.map +1 -0
  12. package/dist.node/helpers/tree.js +2 -2
  13. package/dist.node/helpers/tree.js.map +1 -1
  14. package/dist.node/index.common.js +50 -0
  15. package/dist.node/index.common.js.map +1 -0
  16. package/dist.node/index.node.js +5 -6
  17. package/dist.node/index.node.js.map +1 -1
  18. package/dist.node/models/bom.js +1 -1
  19. package/dist.node/models/bom.js.map +1 -1
  20. package/dist.node/models/component.js +5 -5
  21. package/dist.node/models/component.js.map +1 -1
  22. package/dist.node/models/metadata.js +1 -1
  23. package/dist.node/models/metadata.js.map +1 -1
  24. package/dist.node/models/tool.js +2 -2
  25. package/dist.node/models/tool.js.map +1 -1
  26. package/dist.node/serialize/index.common.js +4 -4
  27. package/dist.node/serialize/index.common.js.map +1 -1
  28. package/dist.node/serialize/index.node.js.map +1 -1
  29. package/dist.node/serialize/json/index.js +2 -2
  30. package/dist.node/serialize/json/index.js.map +1 -1
  31. package/dist.node/serialize/json/normalize.js +4 -4
  32. package/dist.node/serialize/json/normalize.js.map +1 -1
  33. package/dist.node/serialize/jsonSerializer.js.map +1 -1
  34. package/dist.node/serialize/xml/index.js +2 -2
  35. package/dist.node/serialize/xml/index.js.map +1 -1
  36. package/dist.node/serialize/xml/normalize.js +3 -3
  37. package/dist.node/serialize/xml/normalize.js.map +1 -1
  38. package/dist.node/serialize/xmlSerializer.node.js +1 -1
  39. package/dist.node/serialize/xmlSerializer.node.js.map +1 -1
  40. package/dist.web/lib.dev.js +133 -35
  41. package/dist.web/lib.dev.js.map +1 -1
  42. package/dist.web/lib.js +1 -1
  43. package/libs/universal-node-xml/index.d.ts +1 -1
  44. package/package.json +8 -8
  45. package/src/builders/fromNodePackageJson.node.ts +3 -1
  46. package/src/builders/index.node.ts +1 -0
  47. package/src/factories/fromNodePackageJson.node.ts +55 -1
  48. package/src/factories/index.node.ts +5 -0
  49. package/src/factories/index.web.ts +6 -0
  50. package/src/factories/packageUrl.ts +10 -10
  51. package/src/helpers/packageUrl.ts +32 -0
  52. package/src/helpers/tree.ts +1 -1
  53. package/src/index.common.ts +25 -0
  54. package/src/index.node.ts +5 -6
  55. package/src/index.web.ts +6 -6
  56. package/src/models/bom.ts +1 -1
  57. package/src/models/component.ts +8 -8
  58. package/src/models/metadata.ts +2 -2
  59. package/src/models/tool.ts +2 -2
  60. package/src/serialize/baseSerializer.ts +1 -1
  61. package/src/serialize/index.common.ts +13 -2
  62. package/src/serialize/index.node.ts +4 -0
  63. package/src/serialize/index.web.ts +4 -0
  64. package/src/serialize/json/index.ts +1 -2
  65. package/src/serialize/json/normalize.ts +4 -4
  66. package/src/serialize/jsonSerializer.ts +1 -1
  67. package/src/serialize/xml/index.ts +1 -2
  68. package/src/serialize/xml/normalize.ts +3 -3
  69. package/src/serialize/xmlSerializer.node.ts +2 -2
  70. package/src/serialize/xmlSerializer.web.ts +1 -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={5139:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AttachmentEncoding=void 0,(t.AttachmentEncoding||(t.AttachmentEncoding={})).Base64="base64"},7947:(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"},9523:(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"},9507: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(5139),t),n(r(7947),t),n(r(993),t),n(r(366),t),n(r(9523),t)},9123: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(5990),t),n(r(1951),t)},7354: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(9123),t)},5990:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LicenseFactory=void 0;const o=r(5357),n=r(9169);t.LicenseFactory=class{makeFromString(e){try{return this.makeExpression(e)}catch{return this.makeDisjunctive(e)}}makeExpression(e){return new o.LicenseExpression(e)}makeDisjunctive(e){try{return this.makeDisjunctiveWithId(e)}catch{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))}}},1951: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(1042),s=r(9507);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=t?e.externalReferences.sorted():e.externalReferences;for(const e of c){const t=e.url.toString();if(!(t.length<=0))switch(e.type){case s.ExternalReferenceType.VCS:[r.vcs_url,n]=t.split("#",2);break;case s.ExternalReferenceType.Distribution:r.download_url=t}}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},7111:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isNotUndefined=void 0,t.isNotUndefined=function(e){return void 0!==e}},3428:(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},2914:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.treeIterator=void 0,t.treeIterator=Symbol("iterator of a tree/nesting-like structure")},9136: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(2380)),t.Enums=i(r(9507)),t.SPDX=i(r(9169)),t.Models=i(r(5357)),t.Factories=i(r(7354)),t.Spec=i(r(9841)),t.Serialize=i(r(8650))},4400:(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}}},4818: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(2380),c=r(5179),l=r(1995);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},8471:(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},1995: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(2380),c=r(8471),l=r(7368),p=r(5422),u=r(9191),m=r(5086),d=r(3428),h=r(2914);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 f,this.cpe=r.cpe,this.properties=r.properties??new m.PropertyRepository}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 f extends d.SortableSet{*[h.treeIterator](){for(const e of this)yield e,yield*e.components[h.treeIterator]()}}t.ComponentRepository=f},5422:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ExternalReferenceRepository=t.ExternalReference=void 0;const o=r(3428);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},7368: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)}},5357: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(4400),t),n(r(4818),t),n(r(8471),t),n(r(1995),t),n(r(5422),t),n(r(7368),t),n(r(9191),t),n(r(5179),t),n(r(5769),t),n(r(2979),t),n(r(5086),t),n(r(4643),t),n(r(7557),t)},9191: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(9169);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)}},5179:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Metadata=void 0;const o=r(7557),n=r(5769);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}}},5769:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OrganizationalContactRepository=t.OrganizationalContact=void 0;const o=r(3428);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},2979:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OrganizationalEntity=void 0;const o=r(5769);t.OrganizationalEntity=class{constructor(e={}){this.name=e.name,this.url=e.url??new Set,this.contact=e.contact??new o.OrganizationalContactRepository}}},5086:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PropertyRepository=t.Property=void 0;const o=r(3428);t.Property=class{constructor(e,t){this.name=e,this.value=t}compare(e){return this.name.localeCompare(e.name)||this.value.localeCompare(e.value)}};class n extends o.SortableSet{}t.PropertyRepository=n},4643: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(2380);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},7557:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToolRepository=t.Tool=void 0;const o=r(7368),n=r(5422),i=r(3428);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},7135: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(8052);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;function r(e){for(const{bomRef:o,components:n}of e)t.add(o),r(n)}return void 0!==e.metadata.component&&(t.add(e.metadata.component.bomRef),r(e.metadata.component.components)),r(e.components),t.values()}},8052: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)}`}},4750: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(5010)),a(r(7135),t),a(r(8052),t),t.JSON=i(r(3287)),a(r(3181),t),t.XML=i(r(71)),a(r(5047),t)},8650: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(4750),t),n(r(6955),t)},3287: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(1143)),t.Normalize=i(r(9024))},9024: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}),m=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},d=this&&this.__classPrivateFieldSet||function(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,r):n?n.value=r:t.set(e,r),r},h=this&&this.__classPrivateFieldGet||function(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.DependencyGraphNormalizer=t.PropertyNormalizer=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(7111),y=m(r(5357)),v=r(9841),w=r(1143),L=r(2914);t.Factory=class{constructor(e){o.set(this,void 0),d(this,o,e,"f")}get spec(){return h(this,o,"f")}makeForBom(){return new P(this)}makeForMetadata(){return new b(this)}makeForComponent(){return new O(this)}makeForTool(){return new g(this)}makeForOrganizationalContact(){return new x(this)}makeForOrganizationalEntity(){return new A(this)}makeForHash(){return new _(this)}makeForLicense(){return new z(this)}makeForSWID(){return new E(this)}makeForExternalReference(){return new R(this)}makeForAttachment(){return new T(this)}makeForProperty(){return new N(this)}makeForDependencyGraph(){return new F(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 P 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=P;class b extends C{normalize(e,t){const r=this._factory.makeForOrganizationalEntity();return{timestamp:e.timestamp?.toISOString(),tools:e.tools.size>0?this._factory.makeForTool().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 g extends C{normalize(e,t){return{vendor:e.vendor||void 0,name:e.name||void 0,version:e.version||void 0,hashes:e.hashes.size>0?this._factory.makeForHash().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=g;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 x 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=x;class A extends C{normalize(e,t){const r=D(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 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,properties:r.supportsProperties(e)&&e.properties.size>0?this._factory.makeForProperty().normalizeRepository(e.properties,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 z 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=z,n=new WeakSet,i=function(e,t){return{license:{name:e.name,text:void 0===e.text?void 0:this._factory.makeForAttachment().normalize(e.text,t),url:e.url?.toString()}}},a=function(e,t){return{license:{id:e.id,text:void 0===e.text?void 0:this._factory.makeForAttachment().normalize(e.text,t),url:e.url?.toString()}}},s=function(e){return{expression:e.expression}};class E extends C{normalize(e,t){const r=e.url?.toString();return{tagId:e.tagId,name:e.name,version:e.version||void 0,tagVersion:e.tagVersion,patch:e.patch,text:void 0===e.text?void 0:this._factory.makeForAttachment().normalize(e.text,t),url:w.JsonSchema.isIriReference(r)?r:void 0}}}t.SWIDNormalizer=E;class R 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=R;class T extends C{normalize(e,t){return{content:e.content,contentType:e.contentType||void 0,encoding:e.encoding}}}t.AttachmentNormalizer=T;class N extends C{normalize(e,t){return{name:e.name,value:e.value}}normalizeRepository(e,t){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t)))}}t.PropertyNormalizer=N;class F 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 D(e,t){const r=Array.from(e,(e=>e.toString()));return t.sortLists&&r.sort(((e,t)=>e.localeCompare(t))),r}t.DependencyGraphNormalizer=F,c=new WeakSet,l=function(e,t,r,o){const n=e.toString();if(0===n.length)return;const i=D(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}}},1143:(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}},3181: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(9841),s=r(7135);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},5010:(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(8700)),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}),m=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},d=this&&this.__classPrivateFieldSet||function(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,r):n?n.value=r:t.set(e,r),r},h=this&&this.__classPrivateFieldGet||function(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.DependencyGraphNormalizer=t.PropertyNormalizer=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(7111),y=m(r(5357)),v=r(9841),w=r(8700),L=r(2914);t.Factory=class{constructor(e){o.set(this,void 0),d(this,o,e,"f")}get spec(){return h(this,o,"f")}makeForBom(){return new P(this)}makeForMetadata(){return new b(this)}makeForComponent(){return new O(this)}makeForTool(){return new g(this)}makeForOrganizationalContact(){return new x(this)}makeForOrganizationalEntity(){return new A(this)}makeForHash(){return new _(this)}makeForLicense(){return new z(this)}makeForSWID(){return new E(this)}makeForExternalReference(){return new R(this)}makeForAttachment(){return new T(this)}makeForProperty(){return new N(this)}makeForDependencyGraph(){return new F(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 P 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=P;class b extends C{normalize(e,t,r){const o=this._factory.makeForOrganizationalEntity();return{type:"element",name:r,children:[void 0===e.timestamp?void 0:{type:"element",name:"timestamp",children:e.timestamp.toISOString()},e.tools.size>0?{type:"element",name:"tools",children:this._factory.makeForTool().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 g 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:[D(e.vendor,"vendor"),D(e.name,"name"),D(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=g;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 x extends C{normalize(e,t,r){return{type:"element",name:r,children:[D(e.name,"name"),D(e.email,"email"),D(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=x;class A extends C{normalize(e,t,r){return{type:"element",name:r,children:[D(e.name,"name"),...B(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 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?M:D)(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=o.supportsProperties(e)&&e.properties.size>0?{type:"element",name:"properties",children:this._factory.makeForProperty().normalizeRepository(e.properties,t,"property")}:void 0,u=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,D(e.author,"author"),D(e.publisher,"publisher"),D(e.group,"group"),M(e.name,"name"),i,D(e.description,"description"),D(e.scope,"scope"),a,s,D(e.copyright,"copyright"),D(e.cpe,"cpe"),D(e.purl,"purl"),c,l,p,u].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 z 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=z,n=new WeakSet,i=function(e,t){const r=e.url?.toString();return{type:"element",name:"license",children:[M(e.name,"name"),void 0===e.text?void 0:this._factory.makeForAttachment().normalize(e.text,t,"text"),w.XmlSchema.isAnyURI(r)?M(r,"url"):void 0].filter(f.isNotUndefined)}},a=function(e,t){const r=e.url?.toString();return{type:"element",name:"license",children:[M(e.id,"id"),void 0===e.text?void 0:this._factory.makeForAttachment().normalize(e.text,t,"text"),w.XmlSchema.isAnyURI(r)?M(r,"url"):void 0].filter(f.isNotUndefined)}},s=function(e){return M(e.expression,"expression")};class E extends C{normalize(e,t,r){const o=e.url?.toString();return{type:"element",name:r,attributes:{tagId:e.tagId,name:e.name,version:e.version||void 0,tagVersion:e.tagVersion,patch:void 0===e.patch?void 0:e.patch?"true":"false"},children:[void 0===e.text?void 0:this._factory.makeForAttachment().normalize(e.text,t,"text"),w.XmlSchema.isAnyURI(o)?M(o,"url"):void 0].filter(f.isNotUndefined)}}}t.SWIDNormalizer=E;class R 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:[M(o,"url"),D(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=R;class T extends C{normalize(e,t,r){return{type:"element",name:r,attributes:{"content-type":e.contentType||void 0,encoding:e.encoding||void 0},children:e.content}}}t.AttachmentNormalizer=T;class N extends C{normalize(e,t,r){return{type:"element",name:r,attributes:{name:e.name},children:e.value}}normalizeRepository(e,t,r){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t,r)))}}t.PropertyNormalizer=N;class F 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 D(e,t){const r=e?.toString()??"";return r.length>0?M(r,t):void 0}function M(e,t){return{type:"element",name:t,children:e.toString()}}function B(e,t,r){const o=Array.from(e,(e=>M(e,r)));return t.sortLists&&o.sort((({children:e},{children:t})=>e.localeCompare(t))),o}t.DependencyGraphNormalizer=F,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}})))}}},8700:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.XmlSchema=void 0,function(e){const t=/^[a-z][a-z0-9+\-.]*$/i;e.isAnyURI=function(e){if("string"!=typeof e)return!1;if(0===e.length)return!1;const r=e.indexOf("#");let o;if(r>=0){if(e.includes("#",r+1))return!1;o=e.slice(void 0,r)}else o=e;const n=o.indexOf(":");return!(n>=0&&!t.test(o.slice(void 0,n)))}}(t.XmlSchema||(t.XmlSchema={}))},5047: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(9841),s=r(7135);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},6955: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(7111),u=r(5047);class m 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=m,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))}},9169:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.fixupSpdxId=t.isSupportedSpdxId=void 0;const o=r(7207),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}},9841:function(e,t,r){var o,n,i,a,s,c,l,p,u,m,d=this&&this.__classPrivateFieldSet||function(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,r):n?n.value=r:t.set(e,r),r},h=this&&this.__classPrivateFieldGet||function(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.SpecVersionDict=t.Spec1dot4=t.Spec1dot3=t.Spec1dot2=t.UnsupportedFormatError=t.Format=t.Version=void 0;const f=r(9507);var y,v;!function(e){e.v1dot0="1.0",e.v1dot1="1.1",e.v1dot2="1.2",e.v1dot3="1.3",e.v1dot4="1.4"}(y=t.Version||(t.Version={})),function(e){e.XML="xml",e.JSON="json"}(v=t.Format||(t.Format={}));class w extends Error{}t.UnsupportedFormatError=w;class L{constructor(e,t,r,h,f,y,v,w,L,S){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),m.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(h),"f"),d(this,s,f,"f"),d(this,c,new Set(y),"f"),d(this,l,v,"f"),d(this,p,w,"f"),d(this,u,L,"f"),d(this,m,S,"f")}get version(){return h(this,o,"f")}supportsFormat(e){return h(this,n,"f").has(e)}supportsComponentType(e){return h(this,i,"f").has(e)}supportsHashAlgorithm(e){return h(this,a,"f").has(e)}supportsHashValue(e){return"string"==typeof e&&h(this,s,"f").test(e)}supportsExternalReferenceType(e){return h(this,c,"f").has(e)}get supportsDependencyGraph(){return h(this,l,"f")}get supportsToolReferences(){return h(this,p,"f")}get requiresComponentVersion(){return h(this,u,"f")}supportsProperties(){return h(this,m,"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,m=new WeakMap,t.Spec1dot2=Object.freeze(new L(y.v1dot2,[v.XML,v.JSON],[f.ComponentType.Application,f.ComponentType.Framework,f.ComponentType.Library,f.ComponentType.Container,f.ComponentType.OperatingSystem,f.ComponentType.Device,f.ComponentType.Firmware,f.ComponentType.File],[f.HashAlgorithm.MD5,f.HashAlgorithm["SHA-1"],f.HashAlgorithm["SHA-256"],f.HashAlgorithm["SHA-384"],f.HashAlgorithm["SHA-512"],f.HashAlgorithm["SHA3-256"],f.HashAlgorithm["SHA3-384"],f.HashAlgorithm["SHA3-512"],f.HashAlgorithm["BLAKE2b-256"],f.HashAlgorithm["BLAKE2b-384"],f.HashAlgorithm["BLAKE2b-512"],f.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})$/,[f.ExternalReferenceType.VCS,f.ExternalReferenceType.IssueTracker,f.ExternalReferenceType.Website,f.ExternalReferenceType.Advisories,f.ExternalReferenceType.BOM,f.ExternalReferenceType.MailingList,f.ExternalReferenceType.Social,f.ExternalReferenceType.Chat,f.ExternalReferenceType.Documentation,f.ExternalReferenceType.Support,f.ExternalReferenceType.Distribution,f.ExternalReferenceType.License,f.ExternalReferenceType.BuildMeta,f.ExternalReferenceType.BuildSystem,f.ExternalReferenceType.Other],!0,!1,!0,!1)),t.Spec1dot3=Object.freeze(new L(y.v1dot3,[v.XML,v.JSON],[f.ComponentType.Application,f.ComponentType.Framework,f.ComponentType.Library,f.ComponentType.Container,f.ComponentType.OperatingSystem,f.ComponentType.Device,f.ComponentType.Firmware,f.ComponentType.File],[f.HashAlgorithm.MD5,f.HashAlgorithm["SHA-1"],f.HashAlgorithm["SHA-256"],f.HashAlgorithm["SHA-384"],f.HashAlgorithm["SHA-512"],f.HashAlgorithm["SHA3-256"],f.HashAlgorithm["SHA3-384"],f.HashAlgorithm["SHA3-512"],f.HashAlgorithm["BLAKE2b-256"],f.HashAlgorithm["BLAKE2b-384"],f.HashAlgorithm["BLAKE2b-512"],f.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})$/,[f.ExternalReferenceType.VCS,f.ExternalReferenceType.IssueTracker,f.ExternalReferenceType.Website,f.ExternalReferenceType.Advisories,f.ExternalReferenceType.BOM,f.ExternalReferenceType.MailingList,f.ExternalReferenceType.Social,f.ExternalReferenceType.Chat,f.ExternalReferenceType.Documentation,f.ExternalReferenceType.Support,f.ExternalReferenceType.Distribution,f.ExternalReferenceType.License,f.ExternalReferenceType.BuildMeta,f.ExternalReferenceType.BuildSystem,f.ExternalReferenceType.Other],!0,!1,!0,!0)),t.Spec1dot4=Object.freeze(new L(y.v1dot4,[v.XML,v.JSON],[f.ComponentType.Application,f.ComponentType.Framework,f.ComponentType.Library,f.ComponentType.Container,f.ComponentType.OperatingSystem,f.ComponentType.Device,f.ComponentType.Firmware,f.ComponentType.File],[f.HashAlgorithm.MD5,f.HashAlgorithm["SHA-1"],f.HashAlgorithm["SHA-256"],f.HashAlgorithm["SHA-384"],f.HashAlgorithm["SHA-512"],f.HashAlgorithm["SHA3-256"],f.HashAlgorithm["SHA3-384"],f.HashAlgorithm["SHA3-512"],f.HashAlgorithm["BLAKE2b-256"],f.HashAlgorithm["BLAKE2b-384"],f.HashAlgorithm["BLAKE2b-512"],f.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})$/,[f.ExternalReferenceType.VCS,f.ExternalReferenceType.IssueTracker,f.ExternalReferenceType.Website,f.ExternalReferenceType.Advisories,f.ExternalReferenceType.BOM,f.ExternalReferenceType.MailingList,f.ExternalReferenceType.Social,f.ExternalReferenceType.Chat,f.ExternalReferenceType.Documentation,f.ExternalReferenceType.Support,f.ExternalReferenceType.Distribution,f.ExternalReferenceType.License,f.ExternalReferenceType.BuildMeta,f.ExternalReferenceType.BuildSystem,f.ExternalReferenceType.ReleaseNotes,f.ExternalReferenceType.Other],!0,!0,!1,!0)),t.SpecVersionDict=Object.freeze(Object.fromEntries([[y.v1dot2,t.Spec1dot2],[y.v1dot3,t.Spec1dot3],[y.v1dot4,t.Spec1dot4]]))},4506:(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)}},2380: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(4506),t),n(r(7560),t),n(r(42),t),n(r(604),t)},7560:(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)}},1042:t=>{t.exports=e},7207: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.17","type":"string","enum":["CC-BY-NC-ND-2.0","SGI-B-2.0","LPPL-1.3c","NIST-PD-fallback","libtiff","XSkat","PDDL-1.0","KiCad-libraries-exception","CC-BY-NC-SA-1.0","GFDL-1.1-no-invariants-only","Xerox","LPPL-1.1","VOSTROM","UCL-1.0","ADSL","OSL-2.0","AAL","FDK-AAC","W3C-20150513","AFL-1.1","W3C","Sleepycat","CECILL-1.1","mpich2","SISSL","NLOD-1.0","ANTLR-PD","GPL-3.0-only","gnuplot","NLOD-2.0","BSD-3-Clause-Open-MPI","LiLiQ-P-1.1","BSD-3-Clause-Clear","FSFUL","CC-BY-NC-SA-2.0-UK","CERN-OHL-S-2.0","Spencer-94","CERN-OHL-1.2","GFDL-1.1-or-later","AGPL-1.0-or-later","Wsuipa","AML","BSD-2-Clause","DSDP","CC-BY-2.5","MIT-CMU","Beerware","Sendmail","TU-Berlin-1.0","CNRI-Jython","mplus","CPOL-1.02","BSD-3-Clause-No-Nuclear-License-2014","ISC","CC-BY-SA-4.0","Eurosym","LGPL-3.0-only","OLDAP-1.3","GFDL-1.1-invariants-or-later","Glulxe","SimPL-2.0","CDLA-Permissive-2.0","GPL-2.0-with-font-exception","OGL-UK-2.0","CC-BY-SA-3.0-DE","CC-BY-ND-1.0","GFDL-1.1","CC-BY-4.0","OpenSSL","TU-Berlin-2.0","DOC","GFDL-1.2-no-invariants-or-later","QPL-1.0","OLDAP-2.8","OML","OLDAP-2.7","NIST-PD","Bitstream-Vera","GFDL-1.2-or-later","OFL-1.1-RFN","Bahyph","Barr","COIL-1.0","GFDL-1.3","CECILL-B","JPNIC","Zed","ICU","CC-BY-NC-SA-2.5","CC-BY-ND-3.0-DE","bzip2-1.0.5","SPL-1.0","YPL-1.0","OSET-PL-2.1","Noweb","RPSL-1.0","BSD-3-Clause-LBNL","CDLA-Sharing-1.0","CECILL-1.0","AMPAS","APAFML","CC-BY-ND-3.0","D-FSL-1.0","CC-BY-NC-3.0","libpng-2.0","PolyForm-Noncommercial-1.0.0","dvipdfm","GFDL-1.3-or-later","OGTSL","NPL-1.1","GPL-3.0","CERN-OHL-P-2.0","BlueOak-1.0.0","AGPL-3.0-or-later","blessing","ImageMagick","APSL-2.0","MIT-advertising","curl","CC0-1.0","Zimbra-1.4","SSPL-1.0","psutils","CC-BY-SA-2.0-UK","PSF-2.0","Net-SNMP","NAIST-2003","GFDL-1.2-invariants-or-later","SGI-B-1.0","NBPL-1.0","GFDL-1.2-invariants-only","W3C-19980720","OFL-1.0-no-RFN","NetCDF","TMate","NOSL","CNRI-Python-GPL-Compatible","BSD-1-Clause","CC-BY-NC-SA-3.0-DE","BSD-3-Clause-Modification","GLWTPL","GFDL-1.3-only","OLDAP-2.2","CC-BY-ND-4.0","CC-BY-NC-ND-3.0-DE","EUPL-1.0","Linux-OpenIB","LGPL-2.0-or-later","OSL-1.1","Spencer-86","LGPL-2.0","CC-PDDC","CC-BY-NC-ND-3.0","CDL-1.0","Elastic-2.0","CC-BY-2.0","BSD-3-Clause-No-Military-License","IJG","LPPL-1.3a","SAX-PD","BitTorrent-1.0","OLDAP-2.0","Giftware","C-UDA-1.0","LGPL-2.0+","Rdisc","GPL-2.0-with-classpath-exception","CC-BY-3.0-US","CDDL-1.0","Xnet","CPL-1.0","LGPL-3.0-or-later","NASA-1.3","BUSL-1.1","etalab-2.0","MIT-open-group","OLDAP-1.4","GFDL-1.1-invariants-only","RPL-1.1","CC-BY-NC-ND-2.5","FSFULLR","Saxpath","NTP-0","SISSL-1.2","GPL-3.0-or-later","Apache-1.1","CC-BY-SA-2.1-JP","AGPL-3.0-only","GPL-2.0-with-autoconf-exception","Artistic-2.0","App-s2p","Unicode-DFS-2015","diffmark","SNIA","CC-BY-SA-2.5","Linux-man-pages-copyleft","HPND-sell-variant","ZPL-2.1","BSD-4-Clause-UC","LAL-1.2","AGPL-1.0-only","MIT-enna","Condor-1.1","Naumen","GFDL-1.3-no-invariants-or-later","RPL-1.5","PolyForm-Small-Business-1.0.0","EFL-1.0","MirOS","CC-BY-2.5-AU","Afmparse","MPL-2.0-no-copyleft-exception","LiLiQ-Rplus-1.1","AFL-1.2","OSL-1.0","GPL-1.0-only","APSL-1.0","OGL-Canada-2.0","CPAL-1.0","Latex2e","Zend-2.0","Unlicense","xpp","CC-BY-NC-1.0","GPL-3.0-with-autoconf-exception","CC-BY-NC-SA-3.0","TCP-wrappers","SCEA","SSH-short","CC-BY-3.0-NL","SchemeReport","CC-BY-3.0","MPL-2.0","Unicode-TOU","CC-BY-NC-ND-1.0","Entessa","BSD-3-Clause-No-Nuclear-License","SWL","GFDL-1.2-no-invariants-only","Parity-7.0.0","OLDAP-2.2.1","SGI-B-1.1","FTL","OLDAP-2.4","CC-BY-NC-4.0","bzip2-1.0.6","copyleft-next-0.3.0","MakeIndex","NRL","GFDL-1.3-invariants-or-later","CC-BY-NC-2.0","SugarCRM-1.1.3","AFL-2.1","GPL-2.0-only","GFDL-1.3-invariants-only","TORQUE-1.1","Ruby","X11","Borceux","Libpng","X11-distribute-modifications-variant","Frameworx-1.0","NCGL-UK-2.0","CECILL-2.1","CC-BY-3.0-AT","CNRI-Python","NCSA","gSOAP-1.3b","EUPL-1.1","AMDPLPA","Imlib2","CDDL-1.1","WTFPL","LPL-1.0","EPL-1.0","BSD-3-Clause-Attribution","OSL-3.0","RHeCos-1.1","PHP-3.0","BSD-Protection","CC-BY-NC-3.0-DE","APL-1.0","EUDatagrid","GPL-1.0","SHL-0.5","CC-BY-SA-2.0","CC-BY-SA-3.0-AT","CC-BY-NC-SA-3.0-IGO","Adobe-2006","Newsletr","Nunit","Multics","OGL-UK-1.0","Vim","eCos-2.0","Zimbra-1.3","eGenix","IBM-pibs","BitTorrent-1.1","OFL-1.1-no-RFN","psfrag","CC-BY-ND-2.0","SHL-0.51","FreeBSD-DOC","Python-2.0","Mup","BSD-4-Clause-Shortened","CC-BY-NC-SA-4.0","HPND","OLDAP-2.6","MPL-1.1","GPL-2.0-with-GCC-exception","HaskellReport","ECL-1.0","LGPL-2.1-or-later","OFL-1.0","APSL-1.1","MITNFA","CECILL-2.0","Crossword","Aladdin","Baekmuk","XFree86-1.1","GPL-1.0-or-later","CERN-OHL-W-2.0","CC-BY-SA-1.0","NTP","PHP-3.01","OCLC-2.0","CC-BY-3.0-DE","CC-BY-NC-2.5","Zlib","CATOSL-1.1","LGPL-3.0+","CAL-1.0","NPL-1.0","SMLNJ","GPL-2.0+","OLDAP-2.5","JasPer-2.0","GPL-2.0-or-later","BSD-2-Clause-Patent","MS-RL","CUA-OPL-1.0","IPA","NLPL","O-UDA-1.0","MIT-Modern-Variant","OLDAP-1.2","BSD-2-Clause-FreeBSD","Info-ZIP","CC-BY-NC-SA-2.0-FR","0BSD","Unicode-DFS-2016","OFL-1.0-RFN","Intel","AFL-2.0","GL2PS","TAPR-OHL-1.0","Apache-1.0","MTLL","Motosoto","RSA-MD","Community-Spec-1.0","ODC-By-1.0","zlib-acknowledgement","DL-DE-BY-2.0","VSL-1.0","LiLiQ-R-1.1","OPL-1.0","GPL-3.0+","MulanPSL-2.0","APSL-1.2","OGDL-Taiwan-1.0","RSCPL","OGC-1.0","EFL-2.0","CAL-1.0-Combined-Work-Exception","MS-PL","Plexus","Sendmail-8.23","Cube","JSON","EUPL-1.2","Adobe-Glyph","FreeImage","Watcom-1.0","Jam","Hippocratic-2.1","OLDAP-2.0.1","CC-BY-NC-SA-2.0","Nokia","OCCT-PL","ErlPL-1.1","TOSL","OSL-2.1","ClArtistic","xinetd","GPL-3.0-with-GCC-exception","ODbL-1.0","MIT","LGPL-2.1+","LGPL-2.1-only","CrystalStacker","ECL-2.0","LPPL-1.0","iMatix","CC-BY-NC-ND-3.0-IGO","BSD-Source-Code","Parity-6.0.0","TCL","Arphic-1999","CC-BY-SA-3.0","Caldera","AGPL-1.0","IPL-1.0","LAL-1.3","EPICS","NGPL","DRL-1.0","BSD-2-Clause-NetBSD","ZPL-1.1","GD","LPPL-1.2","Dotseqn","Spencer-99","OLDAP-2.3","YPL-1.1","Fair","Qhull","GFDL-1.1-no-invariants-or-later","CECILL-C","MulanPSL-1.0","OLDAP-1.1","OLDAP-2.1","LPL-1.02","UPL-1.0","Abstyles","ZPL-2.0","MIT-0","LGPL-2.0-only","GFDL-1.3-no-invariants-only","AGPL-3.0","EPL-2.0","AFL-3.0","CDLA-Permissive-1.0","Artistic-1.0","CC-BY-NC-ND-4.0","HTMLTIDY","Glide","FSFAP","LGPLLR","OGL-UK-3.0","GFDL-1.2","SSH-OpenSSH","GFDL-1.1-only","MIT-feh","MPL-1.0","PostgreSQL","OLDAP-2.2.2","SMPPL","OFL-1.1","Leptonica","CERN-OHL-1.1","BSD-3-Clause-No-Nuclear-Warranty","CC-BY-ND-2.5","CC-BY-1.0","GFDL-1.2-only","OPUBL-1.0","libselinux-1.0","BSD-3-Clause","ANTLR-PD-fallback","copyleft-next-0.3.1","GPL-1.0+","wxWindows","LGPL-3.0","LGPL-2.1","StandardML-NJ","BSD-4-Clause","GPL-2.0-with-bison-exception","Apache-2.0","Artistic-1.0-cl8","GPL-2.0","Intel-ACPI","BSL-1.0","Artistic-1.0-Perl","BSD-2-Clause-Views","Interbase-1.0","NPOSL-3.0","FLTK-exception","Bootloader-exception","WxWindows-exception-3.1","Linux-syscall-note","Qt-LGPL-exception-1.1","LLVM-exception","PS-or-PDF-font-exception-20170817","GCC-exception-3.1","Autoconf-exception-3.0","LGPL-3.0-linking-exception","GCC-exception-2.0","Bison-exception-2.2","openvpn-openssl-exception","Libtool-exception","Autoconf-exception-2.0","GPL-3.0-linking-source-exception","GPL-CC-1.0","OCaml-LGPL-linking-exception","Universal-FOSS-exception-1.0","i2p-gpl-java-exception","CLISP-exception-2.0","OCCT-exception-1.0","Qwt-exception-1.0","gnu-javamail-exception","u-boot-exception-2.0","freertos-exception-2.0","Qt-GPL-exception-1.0","OpenJDK-assembly-exception-1.0","SHL-2.1","mif-exception","Fawkes-Runtime-exception","Swift-exception","GPL-3.0-linking-exception","SHL-2.0","Classpath-exception-2.0","LZMA-exception","Font-exception-2.0","Nokia-Qt-exception-1.1","DigiRule-FOSS-exception","eCos-exception-2.0","389-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}(9136)})()));
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={5139:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AttachmentEncoding=void 0,(t.AttachmentEncoding||(t.AttachmentEncoding={})).Base64="base64"},7947:(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"},9523:(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"},9507: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(5139),t),n(r(7947),t),n(r(993),t),n(r(366),t),n(r(9523),t)},9123: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(5990),t),n(r(1951),t)},7354: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(9123),t)},5990:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LicenseFactory=void 0;const o=r(5357),n=r(9169);t.LicenseFactory=class{makeFromString(e){try{return this.makeExpression(e)}catch{return this.makeDisjunctive(e)}}makeExpression(e){return new o.LicenseExpression(e)}makeDisjunctive(e){try{return this.makeDisjunctiveWithId(e)}catch{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))}}},1951: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(1042),s=r(9507),c=r(2078);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 l=t?e.externalReferences.sorted():e.externalReferences;for(const e of l){const t=e.url.toString();if(!(t.length<=0))switch(e.type){case s.ExternalReferenceType.VCS:[r[c.PackageUrlQualifierNames.VcsUrl],n]=t.split("#",2);break;case s.ExternalReferenceType.Distribution:r[c.PackageUrlQualifierNames.DownloadURL]=t}}const p=e.hashes;p.size>0&&(r[c.PackageUrlQualifierNames.Checksum]=Array.from(t?p.sorted():p,(([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},7111:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isNotUndefined=void 0,t.isNotUndefined=function(e){return void 0!==e}},2078:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.PackageUrlQualifierNames=void 0,(r=t.PackageUrlQualifierNames||(t.PackageUrlQualifierNames={})).DownloadURL="download_url",r.VcsUrl="vcs_url",r.Checksum="checksum"},3428:(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},2914:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.treeIteratorSymbol=void 0,t.treeIteratorSymbol=Symbol("iterator of a tree/nesting-like structure")},6831: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.Types=t.Spec=t.SPDX=t.Models=t.Enums=void 0,t.Enums=i(r(9507)),t.Models=i(r(5357)),t.SPDX=i(r(9169)),t.Spec=i(r(9841)),t.Types=i(r(2380))},9136: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.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)},a=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.Factories=void 0,i(r(6831),t),t.Factories=a(r(7354)),t.Serialize=a(r(8650))},4400:(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}}},4818: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(2380),c=r(1995),l=r(5179);t.Bom=class{constructor(e={}){o.set(this,1),n.set(this,void 0),this.metadata=e.metadata??new l.Metadata,this.components=e.components??new c.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},8471:(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},1995: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(3428),c=r(2914),l=r(2380),p=r(8471),u=r(5422),m=r(7368),d=r(9191),h=r(5086);t.Component=class{constructor(e,t,r={}){o.set(this,void 0),n.set(this,void 0),i(this,o,new p.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 u.ExternalReferenceRepository,this.group=r.group,this.hashes=r.hashes??new m.HashRepository,this.licenses=r.licenses??new d.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 p.BomRefRepository,this.components=r.components??new f,this.cpe=r.cpe,this.properties=r.properties??new h.PropertyRepository}get bomRef(){return a(this,o,"f")}get cpe(){return a(this,n,"f")}set cpe(e){if(void 0!==e&&!(0,l.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 f extends s.SortableSet{*[c.treeIteratorSymbol](){for(const e of this)yield e,yield*e.components[c.treeIteratorSymbol]()}}t.ComponentRepository=f},5422:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ExternalReferenceRepository=t.ExternalReference=void 0;const o=r(3428);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},7368: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)}},5357: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(4400),t),n(r(4818),t),n(r(8471),t),n(r(1995),t),n(r(5422),t),n(r(7368),t),n(r(9191),t),n(r(5179),t),n(r(5769),t),n(r(2979),t),n(r(5086),t),n(r(4643),t),n(r(7557),t)},9191: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(9169);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)}},5179:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Metadata=void 0;const o=r(5769),n=r(7557);t.Metadata=class{constructor(e={}){this.timestamp=e.timestamp,this.tools=e.tools??new n.ToolRepository,this.authors=e.authors??new o.OrganizationalContactRepository,this.component=e.component,this.manufacture=e.manufacture,this.supplier=e.supplier}}},5769:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OrganizationalContactRepository=t.OrganizationalContact=void 0;const o=r(3428);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},2979:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OrganizationalEntity=void 0;const o=r(5769);t.OrganizationalEntity=class{constructor(e={}){this.name=e.name,this.url=e.url??new Set,this.contact=e.contact??new o.OrganizationalContactRepository}}},5086:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PropertyRepository=t.Property=void 0;const o=r(3428);t.Property=class{constructor(e,t){this.name=e,this.value=t}compare(e){return this.name.localeCompare(e.name)||this.value.localeCompare(e.value)}};class n extends o.SortableSet{}t.PropertyRepository=n},4643: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(2380);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},7557:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ToolRepository=t.Tool=void 0;const o=r(3428),n=r(5422),i=r(7368);t.Tool=class{constructor(e={}){this.vendor=e.vendor,this.name=e.name,this.version=e.version,this.hashes=e.hashes??new i.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 o.SortableSet{}t.ToolRepository=a},7135: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(8052);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;function r(e){for(const{bomRef:o,components:n}of e)t.add(o),r(n)}return void 0!==e.metadata.component&&(t.add(e.metadata.component.bomRef),r(e.metadata.component.components)),r(e.components),t.values()}},8052: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)}`}},4750: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.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)},a=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.XML=t.JSON=t.Types=void 0,i(r(8052),t),t.Types=a(r(5010)),i(r(7135),t),t.JSON=a(r(3287)),i(r(3181),t),t.XML=a(r(71)),i(r(5047),t)},8650: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(4750),t),n(r(6955),t)},3287: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.Types=t.Normalize=void 0,t.Normalize=i(r(9024)),t.Types=i(r(1143))},9024: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}),m=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},d=this&&this.__classPrivateFieldSet||function(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,r):n?n.value=r:t.set(e,r),r},h=this&&this.__classPrivateFieldGet||function(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.DependencyGraphNormalizer=t.PropertyNormalizer=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(7111),y=r(2914),v=m(r(5357)),w=r(9841),S=r(1143);t.Factory=class{constructor(e){o.set(this,void 0),d(this,o,e,"f")}get spec(){return h(this,o,"f")}makeForBom(){return new b(this)}makeForMetadata(){return new P(this)}makeForComponent(){return new A(this)}makeForTool(){return new g(this)}makeForOrganizationalContact(){return new O(this)}makeForOrganizationalEntity(){return new x(this)}makeForHash(){return new _(this)}makeForLicense(){return new z(this)}makeForSWID(){return new E(this)}makeForExternalReference(){return new R(this)}makeForAttachment(){return new T(this)}makeForProperty(){return new N(this)}makeForDependencyGraph(){return new F(this)}},o=new WeakMap;const L=new Map([[w.Version.v1dot2,"http://cyclonedx.org/schema/bom-1.2b.schema.json"],[w.Version.v1dot3,"http://cyclonedx.org/schema/bom-1.3a.schema.json"],[w.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: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=b;class P 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=P;class g extends C{normalize(e,t){return{vendor:e.vendor||void 0,name:e.name||void 0,version:e.version||void 0,hashes:e.hashes.size>0?this._factory.makeForHash().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=g;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 O extends C{normalize(e,t){return{name:e.name||void 0,email:S.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=O;class x extends C{normalize(e,t){const r=D(e.url,t).filter(S.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 A 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,properties:r.supportsProperties(e)&&e.properties.size>0?this._factory.makeForProperty().normalizeRepository(e.properties,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=A;class z extends C{constructor(){super(...arguments),n.add(this)}normalize(e,t){switch(!0){case e instanceof v.NamedLicense:return h(this,n,"m",i).call(this,e,t);case e instanceof v.SpdxLicense:return h(this,n,"m",a).call(this,e,t);case e instanceof v.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=z,n=new WeakSet,i=function(e,t){return{license:{name:e.name,text:void 0===e.text?void 0:this._factory.makeForAttachment().normalize(e.text,t),url:e.url?.toString()}}},a=function(e,t){return{license:{id:e.id,text:void 0===e.text?void 0:this._factory.makeForAttachment().normalize(e.text,t),url:e.url?.toString()}}},s=function(e){return{expression:e.expression}};class E extends C{normalize(e,t){const r=e.url?.toString();return{tagId:e.tagId,name:e.name,version:e.version||void 0,tagVersion:e.tagVersion,patch:e.patch,text:void 0===e.text?void 0:this._factory.makeForAttachment().normalize(e.text,t),url:S.JsonSchema.isIriReference(r)?r:void 0}}}t.SWIDNormalizer=E;class R 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=R;class T extends C{normalize(e,t){return{content:e.content,contentType:e.contentType||void 0,encoding:e.encoding}}}t.AttachmentNormalizer=T;class N extends C{normalize(e,t){return{name:e.name,value:e.value}}normalizeRepository(e,t){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t)))}}t.PropertyNormalizer=N;class F 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[y.treeIteratorSymbol]())r.set(t.bomRef,t.dependencies)}for(const t of e.components[y.treeIteratorSymbol]())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 D(e,t){const r=Array.from(e,(e=>e.toString()));return t.sortLists&&r.sort(((e,t)=>e.localeCompare(t))),r}t.DependencyGraphNormalizer=F,c=new WeakSet,l=function(e,t,r,o){const n=e.toString();if(0===n.length)return;const i=D(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}}},1143:(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}},3181: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(9841),s=r(7135);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},5010:(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.Types=t.Normalize=void 0,t.Normalize=i(r(17)),t.Types=i(r(8700))},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}),m=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},d=this&&this.__classPrivateFieldSet||function(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,r):n?n.value=r:t.set(e,r),r},h=this&&this.__classPrivateFieldGet||function(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.DependencyGraphNormalizer=t.PropertyNormalizer=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(7111),y=r(2914),v=m(r(5357)),w=r(9841),S=r(8700);t.Factory=class{constructor(e){o.set(this,void 0),d(this,o,e,"f")}get spec(){return h(this,o,"f")}makeForBom(){return new b(this)}makeForMetadata(){return new P(this)}makeForComponent(){return new A(this)}makeForTool(){return new g(this)}makeForOrganizationalContact(){return new O(this)}makeForOrganizationalEntity(){return new x(this)}makeForHash(){return new _(this)}makeForLicense(){return new z(this)}makeForSWID(){return new E(this)}makeForExternalReference(){return new R(this)}makeForAttachment(){return new T(this)}makeForProperty(){return new N(this)}makeForDependencyGraph(){return new F(this)}},o=new WeakMap;const L=new Map([[w.Version.v1dot2,"http://cyclonedx.org/schema/bom/1.2"],[w.Version.v1dot3,"http://cyclonedx.org/schema/bom/1.3"],[w.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: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=b;class P 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=P;class g 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:[D(e.vendor,"vendor"),D(e.name,"name"),D(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=g;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 O extends C{normalize(e,t,r){return{type:"element",name:r,children:[D(e.name,"name"),D(e.email,"email"),D(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=O;class x extends C{normalize(e,t,r){return{type:"element",name:r,children:[D(e.name,"name"),...B(e.url,t,"url").filter((({children:e})=>S.XmlSchema.isAnyURI(e))),...this._factory.makeForOrganizationalContact().normalizeRepository(e.contact,t,"contact")].filter(f.isNotUndefined)}}}t.OrganizationalEntityNormalizer=x;class A 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?M:D)(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=o.supportsProperties(e)&&e.properties.size>0?{type:"element",name:"properties",children:this._factory.makeForProperty().normalizeRepository(e.properties,t,"property")}:void 0,u=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,D(e.author,"author"),D(e.publisher,"publisher"),D(e.group,"group"),M(e.name,"name"),i,D(e.description,"description"),D(e.scope,"scope"),a,s,D(e.copyright,"copyright"),D(e.cpe,"cpe"),D(e.purl,"purl"),c,l,p,u].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=A;class z extends C{constructor(){super(...arguments),n.add(this)}normalize(e,t){switch(!0){case e instanceof v.NamedLicense:return h(this,n,"m",i).call(this,e,t);case e instanceof v.SpdxLicense:return h(this,n,"m",a).call(this,e,t);case e instanceof v.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=z,n=new WeakSet,i=function(e,t){const r=e.url?.toString();return{type:"element",name:"license",children:[M(e.name,"name"),void 0===e.text?void 0:this._factory.makeForAttachment().normalize(e.text,t,"text"),S.XmlSchema.isAnyURI(r)?M(r,"url"):void 0].filter(f.isNotUndefined)}},a=function(e,t){const r=e.url?.toString();return{type:"element",name:"license",children:[M(e.id,"id"),void 0===e.text?void 0:this._factory.makeForAttachment().normalize(e.text,t,"text"),S.XmlSchema.isAnyURI(r)?M(r,"url"):void 0].filter(f.isNotUndefined)}},s=function(e){return M(e.expression,"expression")};class E extends C{normalize(e,t,r){const o=e.url?.toString();return{type:"element",name:r,attributes:{tagId:e.tagId,name:e.name,version:e.version||void 0,tagVersion:e.tagVersion,patch:void 0===e.patch?void 0:e.patch?"true":"false"},children:[void 0===e.text?void 0:this._factory.makeForAttachment().normalize(e.text,t,"text"),S.XmlSchema.isAnyURI(o)?M(o,"url"):void 0].filter(f.isNotUndefined)}}}t.SWIDNormalizer=E;class R extends C{normalize(e,t,r){const o=e.url.toString();return this._factory.spec.supportsExternalReferenceType(e.type)&&S.XmlSchema.isAnyURI(o)?{type:"element",name:r,attributes:{type:e.type},children:[M(o,"url"),D(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=R;class T extends C{normalize(e,t,r){return{type:"element",name:r,attributes:{"content-type":e.contentType||void 0,encoding:e.encoding||void 0},children:e.content}}}t.AttachmentNormalizer=T;class N extends C{normalize(e,t,r){return{type:"element",name:r,attributes:{name:e.name},children:e.value}}normalizeRepository(e,t,r){return(t.sortLists?e.sorted():Array.from(e)).map((e=>this.normalize(e,t,r)))}}t.PropertyNormalizer=N;class F 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[y.treeIteratorSymbol]())o.set(t.bomRef,t.dependencies)}for(const t of e.components[y.treeIteratorSymbol]())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 D(e,t){const r=e?.toString()??"";return r.length>0?M(r,t):void 0}function M(e,t){return{type:"element",name:t,children:e.toString()}}function B(e,t,r){const o=Array.from(e,(e=>M(e,r)));return t.sortLists&&o.sort((({children:e},{children:t})=>e.localeCompare(t))),o}t.DependencyGraphNormalizer=F,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}})))}}},8700:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.XmlSchema=void 0,function(e){const t=/^[a-z][a-z0-9+\-.]*$/i;e.isAnyURI=function(e){if("string"!=typeof e)return!1;if(0===e.length)return!1;const r=e.indexOf("#");let o;if(r>=0){if(e.includes("#",r+1))return!1;o=e.slice(void 0,r)}else o=e;const n=o.indexOf(":");return!(n>=0&&!t.test(o.slice(void 0,n)))}}(t.XmlSchema||(t.XmlSchema={}))},5047: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(9841),s=r(7135);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},6955: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(7111),u=r(5047);class m 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=m,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))}},9169:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.fixupSpdxId=t.isSupportedSpdxId=void 0;const o=r(7207),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}},9841:function(e,t,r){var o,n,i,a,s,c,l,p,u,m,d=this&&this.__classPrivateFieldSet||function(e,t,r,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(e,r):n?n.value=r:t.set(e,r),r},h=this&&this.__classPrivateFieldGet||function(e,t,r,o){if("a"===r&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?o:"a"===r?o.call(e):o?o.value:t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.SpecVersionDict=t.Spec1dot4=t.Spec1dot3=t.Spec1dot2=t.UnsupportedFormatError=t.Format=t.Version=void 0;const f=r(9507);var y,v;!function(e){e.v1dot0="1.0",e.v1dot1="1.1",e.v1dot2="1.2",e.v1dot3="1.3",e.v1dot4="1.4"}(y=t.Version||(t.Version={})),function(e){e.XML="xml",e.JSON="json"}(v=t.Format||(t.Format={}));class w extends Error{}t.UnsupportedFormatError=w;class S{constructor(e,t,r,h,f,y,v,w,S,L){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),m.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(h),"f"),d(this,s,f,"f"),d(this,c,new Set(y),"f"),d(this,l,v,"f"),d(this,p,w,"f"),d(this,u,S,"f"),d(this,m,L,"f")}get version(){return h(this,o,"f")}supportsFormat(e){return h(this,n,"f").has(e)}supportsComponentType(e){return h(this,i,"f").has(e)}supportsHashAlgorithm(e){return h(this,a,"f").has(e)}supportsHashValue(e){return"string"==typeof e&&h(this,s,"f").test(e)}supportsExternalReferenceType(e){return h(this,c,"f").has(e)}get supportsDependencyGraph(){return h(this,l,"f")}get supportsToolReferences(){return h(this,p,"f")}get requiresComponentVersion(){return h(this,u,"f")}supportsProperties(){return h(this,m,"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,m=new WeakMap,t.Spec1dot2=Object.freeze(new S(y.v1dot2,[v.XML,v.JSON],[f.ComponentType.Application,f.ComponentType.Framework,f.ComponentType.Library,f.ComponentType.Container,f.ComponentType.OperatingSystem,f.ComponentType.Device,f.ComponentType.Firmware,f.ComponentType.File],[f.HashAlgorithm.MD5,f.HashAlgorithm["SHA-1"],f.HashAlgorithm["SHA-256"],f.HashAlgorithm["SHA-384"],f.HashAlgorithm["SHA-512"],f.HashAlgorithm["SHA3-256"],f.HashAlgorithm["SHA3-384"],f.HashAlgorithm["SHA3-512"],f.HashAlgorithm["BLAKE2b-256"],f.HashAlgorithm["BLAKE2b-384"],f.HashAlgorithm["BLAKE2b-512"],f.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})$/,[f.ExternalReferenceType.VCS,f.ExternalReferenceType.IssueTracker,f.ExternalReferenceType.Website,f.ExternalReferenceType.Advisories,f.ExternalReferenceType.BOM,f.ExternalReferenceType.MailingList,f.ExternalReferenceType.Social,f.ExternalReferenceType.Chat,f.ExternalReferenceType.Documentation,f.ExternalReferenceType.Support,f.ExternalReferenceType.Distribution,f.ExternalReferenceType.License,f.ExternalReferenceType.BuildMeta,f.ExternalReferenceType.BuildSystem,f.ExternalReferenceType.Other],!0,!1,!0,!1)),t.Spec1dot3=Object.freeze(new S(y.v1dot3,[v.XML,v.JSON],[f.ComponentType.Application,f.ComponentType.Framework,f.ComponentType.Library,f.ComponentType.Container,f.ComponentType.OperatingSystem,f.ComponentType.Device,f.ComponentType.Firmware,f.ComponentType.File],[f.HashAlgorithm.MD5,f.HashAlgorithm["SHA-1"],f.HashAlgorithm["SHA-256"],f.HashAlgorithm["SHA-384"],f.HashAlgorithm["SHA-512"],f.HashAlgorithm["SHA3-256"],f.HashAlgorithm["SHA3-384"],f.HashAlgorithm["SHA3-512"],f.HashAlgorithm["BLAKE2b-256"],f.HashAlgorithm["BLAKE2b-384"],f.HashAlgorithm["BLAKE2b-512"],f.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})$/,[f.ExternalReferenceType.VCS,f.ExternalReferenceType.IssueTracker,f.ExternalReferenceType.Website,f.ExternalReferenceType.Advisories,f.ExternalReferenceType.BOM,f.ExternalReferenceType.MailingList,f.ExternalReferenceType.Social,f.ExternalReferenceType.Chat,f.ExternalReferenceType.Documentation,f.ExternalReferenceType.Support,f.ExternalReferenceType.Distribution,f.ExternalReferenceType.License,f.ExternalReferenceType.BuildMeta,f.ExternalReferenceType.BuildSystem,f.ExternalReferenceType.Other],!0,!1,!0,!0)),t.Spec1dot4=Object.freeze(new S(y.v1dot4,[v.XML,v.JSON],[f.ComponentType.Application,f.ComponentType.Framework,f.ComponentType.Library,f.ComponentType.Container,f.ComponentType.OperatingSystem,f.ComponentType.Device,f.ComponentType.Firmware,f.ComponentType.File],[f.HashAlgorithm.MD5,f.HashAlgorithm["SHA-1"],f.HashAlgorithm["SHA-256"],f.HashAlgorithm["SHA-384"],f.HashAlgorithm["SHA-512"],f.HashAlgorithm["SHA3-256"],f.HashAlgorithm["SHA3-384"],f.HashAlgorithm["SHA3-512"],f.HashAlgorithm["BLAKE2b-256"],f.HashAlgorithm["BLAKE2b-384"],f.HashAlgorithm["BLAKE2b-512"],f.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})$/,[f.ExternalReferenceType.VCS,f.ExternalReferenceType.IssueTracker,f.ExternalReferenceType.Website,f.ExternalReferenceType.Advisories,f.ExternalReferenceType.BOM,f.ExternalReferenceType.MailingList,f.ExternalReferenceType.Social,f.ExternalReferenceType.Chat,f.ExternalReferenceType.Documentation,f.ExternalReferenceType.Support,f.ExternalReferenceType.Distribution,f.ExternalReferenceType.License,f.ExternalReferenceType.BuildMeta,f.ExternalReferenceType.BuildSystem,f.ExternalReferenceType.ReleaseNotes,f.ExternalReferenceType.Other],!0,!0,!1,!0)),t.SpecVersionDict=Object.freeze(Object.fromEntries([[y.v1dot2,t.Spec1dot2],[y.v1dot3,t.Spec1dot3],[y.v1dot4,t.Spec1dot4]]))},4506:(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)}},2380: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(4506),t),n(r(7560),t),n(r(42),t),n(r(604),t)},7560:(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)}},1042:t=>{t.exports=e},7207: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.17","type":"string","enum":["CC-BY-NC-ND-2.0","SGI-B-2.0","LPPL-1.3c","NIST-PD-fallback","libtiff","XSkat","PDDL-1.0","KiCad-libraries-exception","CC-BY-NC-SA-1.0","GFDL-1.1-no-invariants-only","Xerox","LPPL-1.1","VOSTROM","UCL-1.0","ADSL","OSL-2.0","AAL","FDK-AAC","W3C-20150513","AFL-1.1","W3C","Sleepycat","CECILL-1.1","mpich2","SISSL","NLOD-1.0","ANTLR-PD","GPL-3.0-only","gnuplot","NLOD-2.0","BSD-3-Clause-Open-MPI","LiLiQ-P-1.1","BSD-3-Clause-Clear","FSFUL","CC-BY-NC-SA-2.0-UK","CERN-OHL-S-2.0","Spencer-94","CERN-OHL-1.2","GFDL-1.1-or-later","AGPL-1.0-or-later","Wsuipa","AML","BSD-2-Clause","DSDP","CC-BY-2.5","MIT-CMU","Beerware","Sendmail","TU-Berlin-1.0","CNRI-Jython","mplus","CPOL-1.02","BSD-3-Clause-No-Nuclear-License-2014","ISC","CC-BY-SA-4.0","Eurosym","LGPL-3.0-only","OLDAP-1.3","GFDL-1.1-invariants-or-later","Glulxe","SimPL-2.0","CDLA-Permissive-2.0","GPL-2.0-with-font-exception","OGL-UK-2.0","CC-BY-SA-3.0-DE","CC-BY-ND-1.0","GFDL-1.1","CC-BY-4.0","OpenSSL","TU-Berlin-2.0","DOC","GFDL-1.2-no-invariants-or-later","QPL-1.0","OLDAP-2.8","OML","OLDAP-2.7","NIST-PD","Bitstream-Vera","GFDL-1.2-or-later","OFL-1.1-RFN","Bahyph","Barr","COIL-1.0","GFDL-1.3","CECILL-B","JPNIC","Zed","ICU","CC-BY-NC-SA-2.5","CC-BY-ND-3.0-DE","bzip2-1.0.5","SPL-1.0","YPL-1.0","OSET-PL-2.1","Noweb","RPSL-1.0","BSD-3-Clause-LBNL","CDLA-Sharing-1.0","CECILL-1.0","AMPAS","APAFML","CC-BY-ND-3.0","D-FSL-1.0","CC-BY-NC-3.0","libpng-2.0","PolyForm-Noncommercial-1.0.0","dvipdfm","GFDL-1.3-or-later","OGTSL","NPL-1.1","GPL-3.0","CERN-OHL-P-2.0","BlueOak-1.0.0","AGPL-3.0-or-later","blessing","ImageMagick","APSL-2.0","MIT-advertising","curl","CC0-1.0","Zimbra-1.4","SSPL-1.0","psutils","CC-BY-SA-2.0-UK","PSF-2.0","Net-SNMP","NAIST-2003","GFDL-1.2-invariants-or-later","SGI-B-1.0","NBPL-1.0","GFDL-1.2-invariants-only","W3C-19980720","OFL-1.0-no-RFN","NetCDF","TMate","NOSL","CNRI-Python-GPL-Compatible","BSD-1-Clause","CC-BY-NC-SA-3.0-DE","BSD-3-Clause-Modification","GLWTPL","GFDL-1.3-only","OLDAP-2.2","CC-BY-ND-4.0","CC-BY-NC-ND-3.0-DE","EUPL-1.0","Linux-OpenIB","LGPL-2.0-or-later","OSL-1.1","Spencer-86","LGPL-2.0","CC-PDDC","CC-BY-NC-ND-3.0","CDL-1.0","Elastic-2.0","CC-BY-2.0","BSD-3-Clause-No-Military-License","IJG","LPPL-1.3a","SAX-PD","BitTorrent-1.0","OLDAP-2.0","Giftware","C-UDA-1.0","LGPL-2.0+","Rdisc","GPL-2.0-with-classpath-exception","CC-BY-3.0-US","CDDL-1.0","Xnet","CPL-1.0","LGPL-3.0-or-later","NASA-1.3","BUSL-1.1","etalab-2.0","MIT-open-group","OLDAP-1.4","GFDL-1.1-invariants-only","RPL-1.1","CC-BY-NC-ND-2.5","FSFULLR","Saxpath","NTP-0","SISSL-1.2","GPL-3.0-or-later","Apache-1.1","CC-BY-SA-2.1-JP","AGPL-3.0-only","GPL-2.0-with-autoconf-exception","Artistic-2.0","App-s2p","Unicode-DFS-2015","diffmark","SNIA","CC-BY-SA-2.5","Linux-man-pages-copyleft","HPND-sell-variant","ZPL-2.1","BSD-4-Clause-UC","LAL-1.2","AGPL-1.0-only","MIT-enna","Condor-1.1","Naumen","GFDL-1.3-no-invariants-or-later","RPL-1.5","PolyForm-Small-Business-1.0.0","EFL-1.0","MirOS","CC-BY-2.5-AU","Afmparse","MPL-2.0-no-copyleft-exception","LiLiQ-Rplus-1.1","AFL-1.2","OSL-1.0","GPL-1.0-only","APSL-1.0","OGL-Canada-2.0","CPAL-1.0","Latex2e","Zend-2.0","Unlicense","xpp","CC-BY-NC-1.0","GPL-3.0-with-autoconf-exception","CC-BY-NC-SA-3.0","TCP-wrappers","SCEA","SSH-short","CC-BY-3.0-NL","SchemeReport","CC-BY-3.0","MPL-2.0","Unicode-TOU","CC-BY-NC-ND-1.0","Entessa","BSD-3-Clause-No-Nuclear-License","SWL","GFDL-1.2-no-invariants-only","Parity-7.0.0","OLDAP-2.2.1","SGI-B-1.1","FTL","OLDAP-2.4","CC-BY-NC-4.0","bzip2-1.0.6","copyleft-next-0.3.0","MakeIndex","NRL","GFDL-1.3-invariants-or-later","CC-BY-NC-2.0","SugarCRM-1.1.3","AFL-2.1","GPL-2.0-only","GFDL-1.3-invariants-only","TORQUE-1.1","Ruby","X11","Borceux","Libpng","X11-distribute-modifications-variant","Frameworx-1.0","NCGL-UK-2.0","CECILL-2.1","CC-BY-3.0-AT","CNRI-Python","NCSA","gSOAP-1.3b","EUPL-1.1","AMDPLPA","Imlib2","CDDL-1.1","WTFPL","LPL-1.0","EPL-1.0","BSD-3-Clause-Attribution","OSL-3.0","RHeCos-1.1","PHP-3.0","BSD-Protection","CC-BY-NC-3.0-DE","APL-1.0","EUDatagrid","GPL-1.0","SHL-0.5","CC-BY-SA-2.0","CC-BY-SA-3.0-AT","CC-BY-NC-SA-3.0-IGO","Adobe-2006","Newsletr","Nunit","Multics","OGL-UK-1.0","Vim","eCos-2.0","Zimbra-1.3","eGenix","IBM-pibs","BitTorrent-1.1","OFL-1.1-no-RFN","psfrag","CC-BY-ND-2.0","SHL-0.51","FreeBSD-DOC","Python-2.0","Mup","BSD-4-Clause-Shortened","CC-BY-NC-SA-4.0","HPND","OLDAP-2.6","MPL-1.1","GPL-2.0-with-GCC-exception","HaskellReport","ECL-1.0","LGPL-2.1-or-later","OFL-1.0","APSL-1.1","MITNFA","CECILL-2.0","Crossword","Aladdin","Baekmuk","XFree86-1.1","GPL-1.0-or-later","CERN-OHL-W-2.0","CC-BY-SA-1.0","NTP","PHP-3.01","OCLC-2.0","CC-BY-3.0-DE","CC-BY-NC-2.5","Zlib","CATOSL-1.1","LGPL-3.0+","CAL-1.0","NPL-1.0","SMLNJ","GPL-2.0+","OLDAP-2.5","JasPer-2.0","GPL-2.0-or-later","BSD-2-Clause-Patent","MS-RL","CUA-OPL-1.0","IPA","NLPL","O-UDA-1.0","MIT-Modern-Variant","OLDAP-1.2","BSD-2-Clause-FreeBSD","Info-ZIP","CC-BY-NC-SA-2.0-FR","0BSD","Unicode-DFS-2016","OFL-1.0-RFN","Intel","AFL-2.0","GL2PS","TAPR-OHL-1.0","Apache-1.0","MTLL","Motosoto","RSA-MD","Community-Spec-1.0","ODC-By-1.0","zlib-acknowledgement","DL-DE-BY-2.0","VSL-1.0","LiLiQ-R-1.1","OPL-1.0","GPL-3.0+","MulanPSL-2.0","APSL-1.2","OGDL-Taiwan-1.0","RSCPL","OGC-1.0","EFL-2.0","CAL-1.0-Combined-Work-Exception","MS-PL","Plexus","Sendmail-8.23","Cube","JSON","EUPL-1.2","Adobe-Glyph","FreeImage","Watcom-1.0","Jam","Hippocratic-2.1","OLDAP-2.0.1","CC-BY-NC-SA-2.0","Nokia","OCCT-PL","ErlPL-1.1","TOSL","OSL-2.1","ClArtistic","xinetd","GPL-3.0-with-GCC-exception","ODbL-1.0","MIT","LGPL-2.1+","LGPL-2.1-only","CrystalStacker","ECL-2.0","LPPL-1.0","iMatix","CC-BY-NC-ND-3.0-IGO","BSD-Source-Code","Parity-6.0.0","TCL","Arphic-1999","CC-BY-SA-3.0","Caldera","AGPL-1.0","IPL-1.0","LAL-1.3","EPICS","NGPL","DRL-1.0","BSD-2-Clause-NetBSD","ZPL-1.1","GD","LPPL-1.2","Dotseqn","Spencer-99","OLDAP-2.3","YPL-1.1","Fair","Qhull","GFDL-1.1-no-invariants-or-later","CECILL-C","MulanPSL-1.0","OLDAP-1.1","OLDAP-2.1","LPL-1.02","UPL-1.0","Abstyles","ZPL-2.0","MIT-0","LGPL-2.0-only","GFDL-1.3-no-invariants-only","AGPL-3.0","EPL-2.0","AFL-3.0","CDLA-Permissive-1.0","Artistic-1.0","CC-BY-NC-ND-4.0","HTMLTIDY","Glide","FSFAP","LGPLLR","OGL-UK-3.0","GFDL-1.2","SSH-OpenSSH","GFDL-1.1-only","MIT-feh","MPL-1.0","PostgreSQL","OLDAP-2.2.2","SMPPL","OFL-1.1","Leptonica","CERN-OHL-1.1","BSD-3-Clause-No-Nuclear-Warranty","CC-BY-ND-2.5","CC-BY-1.0","GFDL-1.2-only","OPUBL-1.0","libselinux-1.0","BSD-3-Clause","ANTLR-PD-fallback","copyleft-next-0.3.1","GPL-1.0+","wxWindows","LGPL-3.0","LGPL-2.1","StandardML-NJ","BSD-4-Clause","GPL-2.0-with-bison-exception","Apache-2.0","Artistic-1.0-cl8","GPL-2.0","Intel-ACPI","BSL-1.0","Artistic-1.0-Perl","BSD-2-Clause-Views","Interbase-1.0","NPOSL-3.0","FLTK-exception","Bootloader-exception","WxWindows-exception-3.1","Linux-syscall-note","Qt-LGPL-exception-1.1","LLVM-exception","PS-or-PDF-font-exception-20170817","GCC-exception-3.1","Autoconf-exception-3.0","LGPL-3.0-linking-exception","GCC-exception-2.0","Bison-exception-2.2","openvpn-openssl-exception","Libtool-exception","Autoconf-exception-2.0","GPL-3.0-linking-source-exception","GPL-CC-1.0","OCaml-LGPL-linking-exception","Universal-FOSS-exception-1.0","i2p-gpl-java-exception","CLISP-exception-2.0","OCCT-exception-1.0","Qwt-exception-1.0","gnu-javamail-exception","u-boot-exception-2.0","freertos-exception-2.0","Qt-GPL-exception-1.0","OpenJDK-assembly-exception-1.0","SHL-2.1","mif-exception","Fawkes-Runtime-exception","Swift-exception","GPL-3.0-linking-exception","SHL-2.0","Classpath-exception-2.0","LZMA-exception","Font-exception-2.0","Nokia-Qt-exception-1.1","DigiRule-FOSS-exception","eCos-exception-2.0","389-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}(9136)})()));
@@ -17,8 +17,8 @@ SPDX-License-Identifier: Apache-2.0
17
17
  Copyright (c) OWASP Foundation. All Rights Reserved.
18
18
  */
19
19
 
20
- import { SimpleXml } from '../../src/serialize/xml/types'
21
20
  import { SerializerOptions } from '../../src/serialize/types'
21
+ import { SimpleXml } from '../../src/serialize/xml/types'
22
22
 
23
23
  declare type ThrowError = () => never
24
24
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyclonedx/cyclonedx-library",
3
- "version": "1.3.4",
3
+ "version": "1.4.2",
4
4
  "description": "Core functionality of CycloneDX for JavaScript (Node.js or WebBrowser).",
5
5
  "keywords": [
6
6
  "CycloneDX",
@@ -39,23 +39,23 @@
39
39
  "node": ">=14.0.0"
40
40
  },
41
41
  "dependencies": {
42
- "packageurl-js": ">=0.0.6 <0.0.8"
42
+ "packageurl-js": ">=0.0.6 <0.0.8 || ^1"
43
43
  },
44
44
  "optionalDependencies": {
45
45
  "xmlbuilder2": "^3.0.2"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@types/mocha": "^9.1.1",
49
- "@types/node": "^18.0.0",
49
+ "@types/node": ">=14",
50
50
  "@types/webpack": "^5.28.0",
51
- "@typescript-eslint/parser": "^4.33.0",
52
- "deepmerge": "4.2.2",
53
- "eslint": "^7.32.0",
51
+ "deepmerge": "^4.2.2",
52
+ "eslint": "^8.23.0",
53
+ "eslint-config-standard-with-typescript": "^22.0.0",
54
+ "eslint-plugin-simple-import-sort": "^8.0.0",
54
55
  "mocha": "10.0.0",
55
56
  "npm-run-all": "^4.1.5",
56
57
  "ts-loader": "9.3.1",
57
- "ts-standard": "^11.0.0",
58
- "typescript": "4.7.4",
58
+ "typescript": "4.8.3",
59
59
  "webpack": "5.74.0",
60
60
  "webpack-cli": "4.10.0",
61
61
  "xmlbuilder2": "^3.0.2"
@@ -18,9 +18,9 @@ Copyright (c) OWASP Foundation. All Rights Reserved.
18
18
  */
19
19
 
20
20
  import * as Enums from '../enums'
21
- import * as Models from '../models'
22
21
  import * as Factories from '../factories/index.node'
23
22
  import { PackageJson, splitNameGroup } from '../helpers/packageJson'
23
+ import * as Models from '../models'
24
24
 
25
25
  /**
26
26
  * @see {@link https://docs.npmjs.com/cli/v8/configuring-npm/package-json PackageJson spec}
@@ -37,6 +37,8 @@ export class ToolBuilder {
37
37
  return this.#extRefFactory
38
38
  }
39
39
 
40
+ // Current implementation does not return `undefined` yet, but it is an option for future implementation.
41
+ // To prevent breaking changes, it is declared to return `undefined`.
40
42
  makeTool (data: PackageJson): Models.Tool | undefined {
41
43
  const [name, vendor] = typeof data.name === 'string'
42
44
  ? splitNameGroup(data.name)
@@ -19,5 +19,6 @@ Copyright (c) OWASP Foundation. All Rights Reserved.
19
19
 
20
20
  /** @since 1.2.0 */
21
21
  export * as FromNodePackageJson from './fromNodePackageJson.node'
22
+
22
23
  /** @deprecated use {@link FromNodePackageJson} instead of {@link FromPackageJson} */
23
24
  export * as FromPackageJson from './fromNodePackageJson.node'
@@ -17,15 +17,23 @@ SPDX-License-Identifier: Apache-2.0
17
17
  Copyright (c) OWASP Foundation. All Rights Reserved.
18
18
  */
19
19
 
20
- import * as Models from '../models'
20
+ import { PackageURL } from 'packageurl-js'
21
+
21
22
  import * as Enums from '../enums'
22
23
  import { isNotUndefined } from '../helpers/notUndefined'
23
24
  import { PackageJson } from '../helpers/packageJson'
25
+ import { PackageUrlQualifierNames } from '../helpers/packageUrl'
26
+ import * as Models from '../models'
27
+ import { PackageUrlFactory as PlainPackageUrlFactory } from './packageUrl'
24
28
 
25
29
  /**
30
+ * Node-specifics.
26
31
  * @see {@link https://docs.npmjs.com/cli/v8/configuring-npm/package-json PackageJson spec}
27
32
  */
28
33
 
34
+ /**
35
+ * Node-specific ExternalReferenceFactory.
36
+ */
29
37
  export class ExternalReferenceFactory {
30
38
  makeExternalReferences (data: PackageJson): Models.ExternalReference[] {
31
39
  const refs: Array<Models.ExternalReference | undefined> = []
@@ -86,3 +94,49 @@ export class ExternalReferenceFactory {
86
94
  : undefined
87
95
  }
88
96
  }
97
+
98
+ const npmDefaultRegistryMatcher = /^https?:\/\/registry\.npmjs\.org/
99
+
100
+ /**
101
+ * Node-specific PackageUrlFactory.
102
+ */
103
+ export class PackageUrlFactory extends PlainPackageUrlFactory {
104
+ override makeFromComponent (component: Models.Component, sort: boolean = false): PackageURL | undefined {
105
+ const purl = super.makeFromComponent(component, sort)
106
+ return purl === undefined
107
+ ? undefined
108
+ : this.#finalizeQualifiers(purl)
109
+ }
110
+
111
+ /**
112
+ * Will strip unnecessary qualifiers according to {@link https://github.com/package-url/purl-spec/blob/master/PURL-SPECIFICATION.rst#known-qualifiers-keyvalue-pairs PURL-SPECIFICATION}:
113
+ * > Do not abuse qualifiers: it can be tempting to use many qualifier keys but their usage should be limited
114
+ * > to the bare minimum for proper package identification to ensure that a purl stays compact and readable
115
+ * > in most cases.
116
+ *
117
+ * Therefore:
118
+ * - "vcs_url" is stripped, if a "download_url" is given.
119
+ * - "download_url" is stripped, if it is NPM's default registry ("registry.npmjs.org")
120
+ * - "checksum" is stripped, unless a "download_url" or "vcs_url" is given.
121
+ */
122
+ #finalizeQualifiers (purl: PackageURL): PackageURL {
123
+ const qualifiers = new Map(Object.entries(purl.qualifiers ?? {}))
124
+
125
+ const downloadUrl = qualifiers.get(PackageUrlQualifierNames.DownloadURL)
126
+ if (downloadUrl !== undefined) {
127
+ qualifiers.delete(PackageUrlQualifierNames.VcsUrl)
128
+ if (npmDefaultRegistryMatcher.test(downloadUrl)) {
129
+ qualifiers.delete(PackageUrlQualifierNames.DownloadURL)
130
+ }
131
+ }
132
+ if (!qualifiers.has(PackageUrlQualifierNames.DownloadURL) && !qualifiers.has(PackageUrlQualifierNames.VcsUrl)) {
133
+ // nothing to base a checksum on
134
+ qualifiers.delete(PackageUrlQualifierNames.Checksum)
135
+ }
136
+ purl.qualifiers = qualifiers.size > 0
137
+ ? Object.fromEntries(qualifiers.entries())
138
+ : undefined
139
+
140
+ return purl
141
+ }
142
+ }
@@ -19,7 +19,12 @@ Copyright (c) OWASP Foundation. All Rights Reserved.
19
19
 
20
20
  export * from './index.common'
21
21
 
22
+ // region node-specifics
23
+
22
24
  /** @since 1.2.0 */
23
25
  export * as FromNodePackageJson from './fromNodePackageJson.node'
26
+
24
27
  /** @deprecated use {@link FromNodePackageJson} instead of {@link FromPackageJson} */
25
28
  export * as FromPackageJson from './fromNodePackageJson.node'
29
+
30
+ // endregion node-specifics
@@ -18,3 +18,9 @@ Copyright (c) OWASP Foundation. All Rights Reserved.
18
18
  */
19
19
 
20
20
  export * from './index.common'
21
+
22
+ // region web-specifics
23
+
24
+ // ... nothing yet
25
+
26
+ // endregion web-specifics
@@ -17,9 +17,11 @@ SPDX-License-Identifier: Apache-2.0
17
17
  Copyright (c) OWASP Foundation. All Rights Reserved.
18
18
  */
19
19
 
20
- import { Component } from '../models'
21
20
  import { PackageURL } from 'packageurl-js'
21
+
22
22
  import { ExternalReferenceType } from '../enums'
23
+ import { PackageUrlQualifierNames } from '../helpers/packageUrl'
24
+ import { Component } from '../models'
23
25
 
24
26
  export class PackageUrlFactory {
25
27
  readonly #type: PackageURL['type']
@@ -33,10 +35,6 @@ export class PackageUrlFactory {
33
35
  }
34
36
 
35
37
  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
38
  const qualifiers: PackageURL['qualifiers'] = {}
41
39
  let subpath: PackageURL['subpath']
42
40
 
@@ -55,25 +53,27 @@ export class PackageUrlFactory {
55
53
  // Everything is possible: URL-encoded, not encoded, with schema, without schema
56
54
  switch (extRef.type) {
57
55
  case ExternalReferenceType.VCS:
58
- [qualifiers.vcs_url, subpath] = url.split('#', 2)
56
+ [qualifiers[PackageUrlQualifierNames.VcsUrl], subpath] = url.split('#', 2)
59
57
  break
60
58
  case ExternalReferenceType.Distribution:
61
- qualifiers.download_url = url
59
+ qualifiers[PackageUrlQualifierNames.DownloadURL] = url
62
60
  break
63
61
  }
64
62
  }
65
63
 
66
64
  const hashes = component.hashes
67
65
  if (hashes.size > 0) {
68
- qualifiers.checksum = Array.from(
69
- sort ? hashes.sorted() : hashes,
66
+ qualifiers[PackageUrlQualifierNames.Checksum] = Array.from(
67
+ sort
68
+ ? hashes.sorted()
69
+ : hashes,
70
70
  ([hashAlgo, hashCont]) => `${hashAlgo.toLowerCase()}:${hashCont.toLowerCase()}`
71
71
  ).join(',')
72
72
  }
73
73
 
74
74
  try {
75
75
  // Do not beautify the parameters here, because that is in the domain of PackageURL and its representation.
76
- // No need to convert an empty `subpath` string to `undefined` and such.
76
+ // No need to convert an empty "subpath" string to `undefined` and such.
77
77
  return new PackageURL(
78
78
  this.#type,
79
79
  component.group,