@cyclonedx/cyclonedx-library 1.3.0 → 1.3.3

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 (44) hide show
  1. package/README.md +3 -2
  2. package/dist.node/builders/fromNodePackageJson.node.js.map +1 -1
  3. package/dist.node/factories/license.js +2 -2
  4. package/dist.node/factories/license.js.map +1 -1
  5. package/dist.node/factories/packageUrl.js.map +1 -1
  6. package/dist.node/models/attachment.js.map +1 -1
  7. package/dist.node/models/bomRef.js +1 -1
  8. package/dist.node/models/bomRef.js.map +1 -1
  9. package/dist.node/models/externalReference.js.map +1 -1
  10. package/dist.node/models/license.js.map +1 -1
  11. package/dist.node/models/swid.js.map +1 -1
  12. package/dist.node/serialize/baseSerializer.js +8 -3
  13. package/dist.node/serialize/baseSerializer.js.map +1 -1
  14. package/dist.node/serialize/json/normalize.js +3 -3
  15. package/dist.node/serialize/json/normalize.js.map +1 -1
  16. package/dist.node/serialize/jsonSerializer.js.map +1 -1
  17. package/dist.node/serialize/xml/normalize.js +8 -8
  18. package/dist.node/serialize/xml/normalize.js.map +1 -1
  19. package/dist.node/serialize/xml/types.js +25 -3
  20. package/dist.node/serialize/xml/types.js.map +1 -1
  21. package/dist.node/serialize/xmlBaseSerializer.js.map +1 -1
  22. package/dist.node/spec.js +11 -6
  23. package/dist.node/spec.js.map +1 -1
  24. package/dist.web/lib.dev.js +58 -26
  25. package/dist.web/lib.dev.js.map +1 -1
  26. package/dist.web/lib.js +1 -1
  27. package/package.json +1 -1
  28. package/res/README.md +1 -1
  29. package/src/builders/fromNodePackageJson.node.ts +3 -3
  30. package/src/factories/license.ts +2 -2
  31. package/src/factories/packageUrl.ts +1 -1
  32. package/src/models/attachment.ts +1 -1
  33. package/src/models/bom.ts +1 -1
  34. package/src/models/bomRef.ts +2 -2
  35. package/src/models/externalReference.ts +1 -1
  36. package/src/models/license.ts +3 -3
  37. package/src/models/swid.ts +1 -1
  38. package/src/serialize/baseSerializer.ts +11 -4
  39. package/src/serialize/json/normalize.ts +11 -8
  40. package/src/serialize/jsonSerializer.ts +1 -1
  41. package/src/serialize/xml/normalize.ts +16 -13
  42. package/src/serialize/xml/types.ts +36 -5
  43. package/src/serialize/xmlBaseSerializer.ts +1 -1
  44. package/src/spec.ts +28 -22
@@ -396,7 +396,7 @@ class LicenseFactory {
396
396
  try {
397
397
  return this.makeExpression(value);
398
398
  }
399
- catch (Error) {
399
+ catch {
400
400
  return this.makeDisjunctive(value);
401
401
  }
402
402
  }
@@ -407,7 +407,7 @@ class LicenseFactory {
407
407
  try {
408
408
  return this.makeDisjunctiveWithId(value);
409
409
  }
410
- catch (error) {
410
+ catch {
411
411
  return this.makeDisjunctiveWithName(value);
412
412
  }
413
413
  }
@@ -820,7 +820,7 @@ class BomRef {
820
820
  this.value = value;
821
821
  }
822
822
  compare(other) {
823
- return (this.toString()).localeCompare(other.toString());
823
+ return this.toString().localeCompare(other.toString());
824
824
  }
825
825
  toString() {
826
826
  return this.value ?? '';
@@ -1573,12 +1573,17 @@ class BaseSerializer {
1573
1573
  exports.BaseSerializer = BaseSerializer;
1574
1574
  _BaseSerializer_instances = new WeakSet(), _BaseSerializer_getAllBomRefs = function _BaseSerializer_getAllBomRefs(bom) {
1575
1575
  const bomRefs = new Set();
1576
+ function iterComponents(cs) {
1577
+ for (const { bomRef, components } of cs) {
1578
+ bomRefs.add(bomRef);
1579
+ iterComponents(components);
1580
+ }
1581
+ }
1576
1582
  if (bom.metadata.component !== undefined) {
1577
1583
  bomRefs.add(bom.metadata.component.bomRef);
1584
+ iterComponents(bom.metadata.component.components);
1578
1585
  }
1579
- for (const { bomRef } of bom.components) {
1580
- bomRefs.add(bomRef);
1581
- }
1586
+ iterComponents(bom.components);
1582
1587
  return bomRefs.values();
1583
1588
  };
1584
1589
 
@@ -2108,11 +2113,11 @@ class ComponentNormalizer extends Base {
2108
2113
  externalReferences: data.externalReferences.size > 0
2109
2114
  ? this._factory.makeForExternalReference().normalizeRepository(data.externalReferences, options)
2110
2115
  : undefined,
2116
+ properties: spec.supportsProperties(data) && data.properties.size > 0
2117
+ ? this._factory.makeForProperty().normalizeRepository(data.properties, options)
2118
+ : undefined,
2111
2119
  components: data.components.size > 0
2112
2120
  ? this.normalizeRepository(data.components, options)
2113
- : undefined,
2114
- properties: data.properties.size > 0
2115
- ? this._factory.makeForProperty().normalizeRepository(data.properties, options)
2116
2121
  : undefined
2117
2122
  }
2118
2123
  : undefined;
@@ -2816,18 +2821,18 @@ class ComponentNormalizer extends Base {
2816
2821
  .normalizeRepository(data.externalReferences, options, 'reference')
2817
2822
  }
2818
2823
  : undefined;
2819
- const components = data.components.size > 0
2824
+ const properties = spec.supportsProperties(data) && data.properties.size > 0
2820
2825
  ? {
2821
2826
  type: 'element',
2822
- name: 'components',
2823
- children: this.normalizeRepository(data.components, options, 'component')
2827
+ name: 'properties',
2828
+ children: this._factory.makeForProperty().normalizeRepository(data.properties, options, 'property')
2824
2829
  }
2825
2830
  : undefined;
2826
- const properties = data.properties.size > 0
2831
+ const components = data.components.size > 0
2827
2832
  ? {
2828
2833
  type: 'element',
2829
- name: 'properties',
2830
- children: this._factory.makeForProperty().normalizeRepository(data.properties, options, 'property')
2834
+ name: 'components',
2835
+ children: this.normalizeRepository(data.components, options, 'component')
2831
2836
  }
2832
2837
  : undefined;
2833
2838
  return {
@@ -2853,8 +2858,8 @@ class ComponentNormalizer extends Base {
2853
2858
  makeOptionalTextElement(data.purl, 'purl'),
2854
2859
  swid,
2855
2860
  extRefs,
2856
- components,
2857
- properties
2861
+ properties,
2862
+ components
2858
2863
  ].filter(notUndefined_1.isNotUndefined)
2859
2864
  };
2860
2865
  }
@@ -3114,10 +3119,32 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
3114
3119
  exports.XmlSchema = void 0;
3115
3120
  var XmlSchema;
3116
3121
  (function (XmlSchema) {
3122
+ const _anyUriSchemePattern = /^[a-z][a-z0-9+\-.]*$/i;
3117
3123
  function isAnyURI(value) {
3118
- return typeof value === 'string' &&
3119
- value.length > 0 &&
3120
- Array.from(value).filter(c => c === '#').length <= 1;
3124
+ if (typeof value !== 'string') {
3125
+ return false;
3126
+ }
3127
+ if (value.length === 0) {
3128
+ return false;
3129
+ }
3130
+ const fragmentPos = value.indexOf('#');
3131
+ let beforeFragment;
3132
+ if (fragmentPos >= 0) {
3133
+ if (value.includes('#', fragmentPos + 1)) {
3134
+ return false;
3135
+ }
3136
+ beforeFragment = value.slice(undefined, fragmentPos);
3137
+ }
3138
+ else {
3139
+ beforeFragment = value;
3140
+ }
3141
+ const schemePos = beforeFragment.indexOf(':');
3142
+ if (schemePos >= 0) {
3143
+ if (!_anyUriSchemePattern.test(beforeFragment.slice(undefined, schemePos))) {
3144
+ return false;
3145
+ }
3146
+ }
3147
+ return true;
3121
3148
  }
3122
3149
  XmlSchema.isAnyURI = isAnyURI;
3123
3150
  })(XmlSchema = exports.XmlSchema || (exports.XmlSchema = {}));
@@ -3357,7 +3384,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
3357
3384
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
3358
3385
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
3359
3386
  };
3360
- var _Spec_version, _Spec_formats, _Spec_componentTypes, _Spec_hashAlgorithms, _Spec_hashValuePattern, _Spec_externalReferenceTypes, _Spec_supportsDependencyGraph, _Spec_supportsToolReferences, _Spec_requiresComponentVersion;
3387
+ var _Spec_version, _Spec_formats, _Spec_componentTypes, _Spec_hashAlgorithms, _Spec_hashValuePattern, _Spec_externalReferenceTypes, _Spec_supportsDependencyGraph, _Spec_supportsToolReferences, _Spec_requiresComponentVersion, _Spec_supportsProperties;
3361
3388
  Object.defineProperty(exports, "__esModule", ({ value: true }));
3362
3389
  exports.SpecVersionDict = exports.Spec1dot4 = exports.Spec1dot3 = exports.Spec1dot2 = exports.UnsupportedFormatError = exports.Format = exports.Version = void 0;
3363
3390
  const enums_1 = __webpack_require__(/*! ./enums */ "./src/enums/index.ts");
@@ -3378,7 +3405,7 @@ class UnsupportedFormatError extends Error {
3378
3405
  }
3379
3406
  exports.UnsupportedFormatError = UnsupportedFormatError;
3380
3407
  class Spec {
3381
- constructor(version, formats, componentTypes, hashAlgorithms, hashValuePattern, externalReferenceTypes, supportsDependencyGraph, supportsToolReferences, requiresComponentVersion) {
3408
+ constructor(version, formats, componentTypes, hashAlgorithms, hashValuePattern, externalReferenceTypes, supportsDependencyGraph, supportsToolReferences, requiresComponentVersion, supportsProperties) {
3382
3409
  _Spec_version.set(this, void 0);
3383
3410
  _Spec_formats.set(this, void 0);
3384
3411
  _Spec_componentTypes.set(this, void 0);
@@ -3388,6 +3415,7 @@ class Spec {
3388
3415
  _Spec_supportsDependencyGraph.set(this, void 0);
3389
3416
  _Spec_supportsToolReferences.set(this, void 0);
3390
3417
  _Spec_requiresComponentVersion.set(this, void 0);
3418
+ _Spec_supportsProperties.set(this, void 0);
3391
3419
  __classPrivateFieldSet(this, _Spec_version, version, "f");
3392
3420
  __classPrivateFieldSet(this, _Spec_formats, new Set(formats), "f");
3393
3421
  __classPrivateFieldSet(this, _Spec_componentTypes, new Set(componentTypes), "f");
@@ -3397,6 +3425,7 @@ class Spec {
3397
3425
  __classPrivateFieldSet(this, _Spec_supportsDependencyGraph, supportsDependencyGraph, "f");
3398
3426
  __classPrivateFieldSet(this, _Spec_supportsToolReferences, supportsToolReferences, "f");
3399
3427
  __classPrivateFieldSet(this, _Spec_requiresComponentVersion, requiresComponentVersion, "f");
3428
+ __classPrivateFieldSet(this, _Spec_supportsProperties, supportsProperties, "f");
3400
3429
  }
3401
3430
  get version() {
3402
3431
  return __classPrivateFieldGet(this, _Spec_version, "f");
@@ -3426,8 +3455,11 @@ class Spec {
3426
3455
  get requiresComponentVersion() {
3427
3456
  return __classPrivateFieldGet(this, _Spec_requiresComponentVersion, "f");
3428
3457
  }
3458
+ supportsProperties() {
3459
+ return __classPrivateFieldGet(this, _Spec_supportsProperties, "f");
3460
+ }
3429
3461
  }
3430
- _Spec_version = new WeakMap(), _Spec_formats = new WeakMap(), _Spec_componentTypes = new WeakMap(), _Spec_hashAlgorithms = new WeakMap(), _Spec_hashValuePattern = new WeakMap(), _Spec_externalReferenceTypes = new WeakMap(), _Spec_supportsDependencyGraph = new WeakMap(), _Spec_supportsToolReferences = new WeakMap(), _Spec_requiresComponentVersion = new WeakMap();
3462
+ _Spec_version = new WeakMap(), _Spec_formats = new WeakMap(), _Spec_componentTypes = new WeakMap(), _Spec_hashAlgorithms = new WeakMap(), _Spec_hashValuePattern = new WeakMap(), _Spec_externalReferenceTypes = new WeakMap(), _Spec_supportsDependencyGraph = new WeakMap(), _Spec_supportsToolReferences = new WeakMap(), _Spec_requiresComponentVersion = new WeakMap(), _Spec_supportsProperties = new WeakMap();
3431
3463
  exports.Spec1dot2 = Object.freeze(new Spec(Version.v1dot2, [
3432
3464
  Format.XML,
3433
3465
  Format.JSON
@@ -3469,7 +3501,7 @@ exports.Spec1dot2 = Object.freeze(new Spec(Version.v1dot2, [
3469
3501
  enums_1.ExternalReferenceType.BuildMeta,
3470
3502
  enums_1.ExternalReferenceType.BuildSystem,
3471
3503
  enums_1.ExternalReferenceType.Other
3472
- ], true, false, true));
3504
+ ], true, false, true, false));
3473
3505
  exports.Spec1dot3 = Object.freeze(new Spec(Version.v1dot3, [
3474
3506
  Format.XML,
3475
3507
  Format.JSON
@@ -3511,7 +3543,7 @@ exports.Spec1dot3 = Object.freeze(new Spec(Version.v1dot3, [
3511
3543
  enums_1.ExternalReferenceType.BuildMeta,
3512
3544
  enums_1.ExternalReferenceType.BuildSystem,
3513
3545
  enums_1.ExternalReferenceType.Other
3514
- ], true, false, true));
3546
+ ], true, false, true, true));
3515
3547
  exports.Spec1dot4 = Object.freeze(new Spec(Version.v1dot4, [
3516
3548
  Format.XML,
3517
3549
  Format.JSON
@@ -3554,7 +3586,7 @@ exports.Spec1dot4 = Object.freeze(new Spec(Version.v1dot4, [
3554
3586
  enums_1.ExternalReferenceType.BuildSystem,
3555
3587
  enums_1.ExternalReferenceType.ReleaseNotes,
3556
3588
  enums_1.ExternalReferenceType.Other
3557
- ], true, true, false));
3589
+ ], true, true, false, true));
3558
3590
  exports.SpecVersionDict = Object.freeze(Object.fromEntries([
3559
3591
  [Version.v1dot2, exports.Spec1dot2],
3560
3592
  [Version.v1dot3, exports.Spec1dot3],