@cyclonedx/cyclonedx-library 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +5 -0
  3. package/README.md +152 -0
  4. package/dist.node/_index.node.js +53 -0
  5. package/dist.node/_index.node.js.map +1 -0
  6. package/dist.node/enums/attachmentEncoding.js +26 -0
  7. package/dist.node/enums/attachmentEncoding.js.map +1 -0
  8. package/dist.node/enums/componentScope.js +28 -0
  9. package/dist.node/enums/componentScope.js.map +1 -0
  10. package/dist.node/enums/componentType.js +33 -0
  11. package/dist.node/enums/componentType.js.map +1 -0
  12. package/dist.node/enums/externalReferenceType.js +41 -0
  13. package/dist.node/enums/externalReferenceType.js.map +1 -0
  14. package/dist.node/enums/hashAlogorithm.js +37 -0
  15. package/dist.node/enums/hashAlogorithm.js.map +1 -0
  16. package/dist.node/enums/index.js +40 -0
  17. package/dist.node/enums/index.js.map +1 -0
  18. package/dist.node/factories/index.js +36 -0
  19. package/dist.node/factories/index.js.map +1 -0
  20. package/dist.node/factories/licenseFactory.js +56 -0
  21. package/dist.node/factories/licenseFactory.js.map +1 -0
  22. package/dist.node/helpers/types.js +26 -0
  23. package/dist.node/helpers/types.js.map +1 -0
  24. package/dist.node/models/attachment.js +30 -0
  25. package/dist.node/models/attachment.js.map +1 -0
  26. package/dist.node/models/bom.js +67 -0
  27. package/dist.node/models/bom.js.map +1 -0
  28. package/dist.node/models/bomRef.js +37 -0
  29. package/dist.node/models/bomRef.js.map +1 -0
  30. package/dist.node/models/component.js +96 -0
  31. package/dist.node/models/component.js.map +1 -0
  32. package/dist.node/models/externalReference.js +40 -0
  33. package/dist.node/models/externalReference.js.map +1 -0
  34. package/dist.node/models/hash.js +29 -0
  35. package/dist.node/models/hash.js.map +1 -0
  36. package/dist.node/models/index.js +47 -0
  37. package/dist.node/models/index.js.map +1 -0
  38. package/dist.node/models/license.js +103 -0
  39. package/dist.node/models/license.js.map +1 -0
  40. package/dist.node/models/metadata.js +35 -0
  41. package/dist.node/models/metadata.js.map +1 -0
  42. package/dist.node/models/organizationalContact.js +41 -0
  43. package/dist.node/models/organizationalContact.js.map +1 -0
  44. package/dist.node/models/organizationalEntity.js +31 -0
  45. package/dist.node/models/organizationalEntity.js.map +1 -0
  46. package/dist.node/models/swid.js +58 -0
  47. package/dist.node/models/swid.js.map +1 -0
  48. package/dist.node/models/tool.js +45 -0
  49. package/dist.node/models/tool.js.map +1 -0
  50. package/dist.node/resources.node.js +55 -0
  51. package/dist.node/resources.node.js.map +1 -0
  52. package/dist.node/serialize/_index.node.js +37 -0
  53. package/dist.node/serialize/_index.node.js.map +1 -0
  54. package/dist.node/serialize/baseSerializer.js +56 -0
  55. package/dist.node/serialize/baseSerializer.js.map +1 -0
  56. package/dist.node/serialize/bomRefDiscriminator.js +66 -0
  57. package/dist.node/serialize/bomRefDiscriminator.js.map +1 -0
  58. package/dist.node/serialize/index.js +55 -0
  59. package/dist.node/serialize/index.js.map +1 -0
  60. package/dist.node/serialize/json/index.js +47 -0
  61. package/dist.node/serialize/json/index.js.map +1 -0
  62. package/dist.node/serialize/json/normalize.js +431 -0
  63. package/dist.node/serialize/json/normalize.js.map +1 -0
  64. package/dist.node/serialize/json/types.js +35 -0
  65. package/dist.node/serialize/json/types.js.map +1 -0
  66. package/dist.node/serialize/jsonSerializer.js +55 -0
  67. package/dist.node/serialize/jsonSerializer.js.map +1 -0
  68. package/dist.node/serialize/types.js +21 -0
  69. package/dist.node/serialize/types.js.map +1 -0
  70. package/dist.node/serialize/xml/index.js +47 -0
  71. package/dist.node/serialize/xml/index.js.map +1 -0
  72. package/dist.node/serialize/xml/normalize.js +560 -0
  73. package/dist.node/serialize/xml/normalize.js.map +1 -0
  74. package/dist.node/serialize/xml/types.js +31 -0
  75. package/dist.node/serialize/xml/types.js.map +1 -0
  76. package/dist.node/serialize/xmlBaseSerializer.js +52 -0
  77. package/dist.node/serialize/xmlBaseSerializer.js.map +1 -0
  78. package/dist.node/serialize/xmlSerializer.node.js +30 -0
  79. package/dist.node/serialize/xmlSerializer.node.js.map +1 -0
  80. package/dist.node/spdx.js +35 -0
  81. package/dist.node/spdx.js.map +1 -0
  82. package/dist.node/spec.js +229 -0
  83. package/dist.node/spec.js.map +1 -0
  84. package/dist.node/types/cpe.js +28 -0
  85. package/dist.node/types/cpe.js.map +1 -0
  86. package/dist.node/types/index.js +39 -0
  87. package/dist.node/types/index.js.map +1 -0
  88. package/dist.node/types/integer.js +36 -0
  89. package/dist.node/types/integer.js.map +1 -0
  90. package/dist.node/types/mimeType.js +28 -0
  91. package/dist.node/types/mimeType.js.map +1 -0
  92. package/dist.node/types/urn.js +28 -0
  93. package/dist.node/types/urn.js.map +1 -0
  94. package/dist.web/lib.dev.js +3487 -0
  95. package/dist.web/lib.dev.js.map +1 -0
  96. package/dist.web/lib.js +2 -0
  97. package/dist.web/lib.js.LICENSE.txt +18 -0
  98. package/libs/universal-node-xml/index.d.ts +33 -0
  99. package/libs/universal-node-xml/index.js +42 -0
  100. package/libs/universal-node-xml/stringifiers/helpers.js +17 -0
  101. package/libs/universal-node-xml/stringifiers/xmlbuilder2.js +51 -0
  102. package/package.json +86 -0
  103. package/res/README.md +27 -0
  104. package/res/bom-1.0.SNAPSHOT.xsd +247 -0
  105. package/res/bom-1.1.SNAPSHOT.xsd +731 -0
  106. package/res/bom-1.2-strict.SNAPSHOT.schema.json +1026 -0
  107. package/res/bom-1.2.SNAPSHOT.schema.json +997 -0
  108. package/res/bom-1.2.SNAPSHOT.xsd +1418 -0
  109. package/res/bom-1.3-strict.SNAPSHOT.schema.json +1085 -0
  110. package/res/bom-1.3.SNAPSHOT.schema.json +1054 -0
  111. package/res/bom-1.3.SNAPSHOT.xsd +1631 -0
  112. package/res/bom-1.4.SNAPSHOT.schema.json +1697 -0
  113. package/res/bom-1.4.SNAPSHOT.xsd +2407 -0
  114. package/res/jsf-0.82.SNAPSHOT.schema.json +244 -0
  115. package/res/spdx.SNAPSHOT.schema.json +533 -0
  116. package/res/spdx.SNAPSHOT.xsd +2639 -0
  117. package/src/_index.node.ts +31 -0
  118. package/src/_index.web.ts +27 -0
  119. package/src/enums/attachmentEncoding.ts +22 -0
  120. package/src/enums/componentScope.ts +24 -0
  121. package/src/enums/componentType.ts +29 -0
  122. package/src/enums/externalReferenceType.ts +37 -0
  123. package/src/enums/hashAlogorithm.ts +33 -0
  124. package/src/enums/index.ts +24 -0
  125. package/src/factories/index.ts +20 -0
  126. package/src/factories/licenseFactory.ts +62 -0
  127. package/src/helpers/README.md +3 -0
  128. package/src/helpers/types.ts +28 -0
  129. package/src/models/attachment.ts +37 -0
  130. package/src/models/bom.ts +85 -0
  131. package/src/models/bomRef.ts +41 -0
  132. package/src/models/component.ts +136 -0
  133. package/src/models/externalReference.ts +48 -0
  134. package/src/models/hash.ts +38 -0
  135. package/src/models/index.ts +31 -0
  136. package/src/models/license.ts +133 -0
  137. package/src/models/metadata.ts +50 -0
  138. package/src/models/organizationalContact.ts +49 -0
  139. package/src/models/organizationalEntity.ts +38 -0
  140. package/src/models/swid.ts +71 -0
  141. package/src/models/tool.ts +58 -0
  142. package/src/resources.node.ts +59 -0
  143. package/src/serialize/_index.node.ts +23 -0
  144. package/src/serialize/_index.web.ts +23 -0
  145. package/src/serialize/baseSerializer.ts +52 -0
  146. package/src/serialize/bomRefDiscriminator.ts +69 -0
  147. package/src/serialize/index.ts +35 -0
  148. package/src/serialize/json/index.ts +23 -0
  149. package/src/serialize/json/normalize.ts +450 -0
  150. package/src/serialize/json/types.ts +187 -0
  151. package/src/serialize/jsonSerializer.ts +59 -0
  152. package/src/serialize/types.ts +38 -0
  153. package/src/serialize/xml/index.ts +23 -0
  154. package/src/serialize/xml/normalize.ts +590 -0
  155. package/src/serialize/xml/types.ts +112 -0
  156. package/src/serialize/xmlBaseSerializer.ts +52 -0
  157. package/src/serialize/xmlSerializer.node.ts +35 -0
  158. package/src/serialize/xmlSerializer.web.ts +89 -0
  159. package/src/spdx.ts +48 -0
  160. package/src/spec.ts +289 -0
  161. package/src/types/cpe.ts +33 -0
  162. package/src/types/index.ts +23 -0
  163. package/src/types/integer.ts +50 -0
  164. package/src/types/mimeType.ts +31 -0
  165. package/src/types/urn.ts +33 -0
  166. package/tsconfig.json +108 -0
  167. package/tsconfig.node.json +8 -0
  168. package/tsconfig.web.json +5 -0
  169. package/webpack.config.js +74 -0
@@ -0,0 +1,431 @@
1
+ "use strict";
2
+ /*!
3
+ This file is part of CycloneDX JavaScript Library.
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+
17
+ SPDX-License-Identifier: Apache-2.0
18
+ Copyright (c) OWASP Foundation. All Rights Reserved.
19
+ */
20
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ var desc = Object.getOwnPropertyDescriptor(m, k);
23
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
24
+ desc = { enumerable: true, get: function() { return m[k]; } };
25
+ }
26
+ Object.defineProperty(o, k2, desc);
27
+ }) : (function(o, m, k, k2) {
28
+ if (k2 === undefined) k2 = k;
29
+ o[k2] = m[k];
30
+ }));
31
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
32
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
33
+ }) : function(o, v) {
34
+ o["default"] = v;
35
+ });
36
+ var __importStar = (this && this.__importStar) || function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
44
+ if (kind === "m") throw new TypeError("Private method is not writable");
45
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
46
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
47
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
48
+ };
49
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
50
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
51
+ 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");
52
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
53
+ };
54
+ var _Factory_spec, _LicenseNormalizer_instances, _LicenseNormalizer_normalizeNamedLicense, _LicenseNormalizer_normalizeSpdxLicense, _LicenseNormalizer_normalizeLicenseExpression, _DependencyGraphNormalizer_instances, _DependencyGraphNormalizer_normalizeDependency;
55
+ Object.defineProperty(exports, "__esModule", { value: true });
56
+ exports.DependencyGraphNormalizer = exports.AttachmentNormalizer = exports.ExternalReferenceNormalizer = exports.SWIDNormalizer = exports.LicenseNormalizer = exports.ComponentNormalizer = exports.OrganizationalEntityNormalizer = exports.OrganizationalContactNormalizer = exports.HashNormalizer = exports.ToolNormalizer = exports.MetadataNormalizer = exports.BomNormalizer = exports.Factory = void 0;
57
+ const types_1 = require("../../helpers/types");
58
+ const Models = __importStar(require("../../models"));
59
+ const spec_1 = require("../../spec");
60
+ const types_2 = require("./types");
61
+ class Factory {
62
+ constructor(spec) {
63
+ _Factory_spec.set(this, void 0);
64
+ __classPrivateFieldSet(this, _Factory_spec, spec, "f");
65
+ }
66
+ get spec() {
67
+ return __classPrivateFieldGet(this, _Factory_spec, "f");
68
+ }
69
+ makeForBom() {
70
+ return new BomNormalizer(this);
71
+ }
72
+ makeForMetadata() {
73
+ return new MetadataNormalizer(this);
74
+ }
75
+ makeForComponent() {
76
+ return new ComponentNormalizer(this);
77
+ }
78
+ makeForTool() {
79
+ return new ToolNormalizer(this);
80
+ }
81
+ makeForOrganizationalContact() {
82
+ return new OrganizationalContactNormalizer(this);
83
+ }
84
+ makeForOrganizationalEntity() {
85
+ return new OrganizationalEntityNormalizer(this);
86
+ }
87
+ makeForHash() {
88
+ return new HashNormalizer(this);
89
+ }
90
+ makeForLicense() {
91
+ return new LicenseNormalizer(this);
92
+ }
93
+ makeForSWID() {
94
+ return new SWIDNormalizer(this);
95
+ }
96
+ makeForExternalReference() {
97
+ return new ExternalReferenceNormalizer(this);
98
+ }
99
+ makeForAttachment() {
100
+ return new AttachmentNormalizer(this);
101
+ }
102
+ makeForDependencyGraph() {
103
+ return new DependencyGraphNormalizer(this);
104
+ }
105
+ }
106
+ exports.Factory = Factory;
107
+ _Factory_spec = new WeakMap();
108
+ const schemaUrl = new Map([
109
+ [spec_1.Version.v1dot2, 'http://cyclonedx.org/schema/bom-1.2b.schema.json'],
110
+ [spec_1.Version.v1dot3, 'http://cyclonedx.org/schema/bom-1.3a.schema.json'],
111
+ [spec_1.Version.v1dot4, 'http://cyclonedx.org/schema/bom-1.4.schema.json']
112
+ ]);
113
+ class Base {
114
+ constructor(factory) {
115
+ this._factory = factory;
116
+ }
117
+ }
118
+ class BomNormalizer extends Base {
119
+ normalize(data, options) {
120
+ return {
121
+ $schema: schemaUrl.get(this._factory.spec.version),
122
+ bomFormat: 'CycloneDX',
123
+ specVersion: this._factory.spec.version,
124
+ version: data.version,
125
+ serialNumber: data.serialNumber,
126
+ metadata: this._factory.makeForMetadata().normalize(data.metadata, options),
127
+ components: data.components.size > 0
128
+ ? this._factory.makeForComponent().normalizeIter(data.components, options)
129
+ : [],
130
+ dependencies: this._factory.spec.supportsDependencyGraph
131
+ ? this._factory.makeForDependencyGraph().normalize(data, options)
132
+ : undefined
133
+ };
134
+ }
135
+ }
136
+ exports.BomNormalizer = BomNormalizer;
137
+ class MetadataNormalizer extends Base {
138
+ normalize(data, options) {
139
+ const orgEntityNormalizer = this._factory.makeForOrganizationalEntity();
140
+ return {
141
+ timestamp: data.timestamp?.toISOString(),
142
+ tools: data.tools.size > 0
143
+ ? this._factory.makeForTool().normalizeIter(data.tools, options)
144
+ : undefined,
145
+ authors: data.authors.size > 0
146
+ ? this._factory.makeForOrganizationalContact().normalizeIter(data.authors, options)
147
+ : undefined,
148
+ component: data.component === undefined
149
+ ? undefined
150
+ : this._factory.makeForComponent().normalize(data.component, options),
151
+ manufacture: data.manufacture === undefined
152
+ ? undefined
153
+ : orgEntityNormalizer.normalize(data.manufacture, options),
154
+ supplier: data.supplier === undefined
155
+ ? undefined
156
+ : orgEntityNormalizer.normalize(data.supplier, options)
157
+ };
158
+ }
159
+ }
160
+ exports.MetadataNormalizer = MetadataNormalizer;
161
+ class ToolNormalizer extends Base {
162
+ normalize(data, options) {
163
+ return {
164
+ vendor: data.vendor || undefined,
165
+ name: data.name || undefined,
166
+ version: data.version || undefined,
167
+ hashes: data.hashes.size > 0
168
+ ? this._factory.makeForHash().normalizeIter(data.hashes, options)
169
+ : undefined,
170
+ externalReferences: this._factory.spec.supportsToolReferences && data.externalReferences.size > 0
171
+ ? this._factory.makeForExternalReference().normalizeIter(data.externalReferences, options)
172
+ : undefined
173
+ };
174
+ }
175
+ normalizeIter(data, options) {
176
+ const tools = Array.from(data);
177
+ if (options.sortLists ?? false) {
178
+ tools.sort(Models.ToolRepository.compareItems);
179
+ }
180
+ return tools.map(t => this.normalize(t, options));
181
+ }
182
+ }
183
+ exports.ToolNormalizer = ToolNormalizer;
184
+ class HashNormalizer extends Base {
185
+ normalize([algorithm, content], options) {
186
+ const spec = this._factory.spec;
187
+ return spec.supportsHashAlgorithm(algorithm) && spec.supportsHashValue(content)
188
+ ? {
189
+ alg: algorithm,
190
+ content: content
191
+ }
192
+ : undefined;
193
+ }
194
+ normalizeIter(data, options) {
195
+ const hashes = Array.from(data);
196
+ if (options.sortLists ?? false) {
197
+ hashes.sort(Models.HashRepository.compareItems);
198
+ }
199
+ return hashes.map(h => this.normalize(h, options))
200
+ .filter(types_1.isNotUndefined);
201
+ }
202
+ }
203
+ exports.HashNormalizer = HashNormalizer;
204
+ class OrganizationalContactNormalizer extends Base {
205
+ normalize(data, options) {
206
+ return {
207
+ name: data.name || undefined,
208
+ email: types_2.JsonSchema.isIdnEmail(data.email)
209
+ ? data.email
210
+ : undefined,
211
+ phone: data.phone || undefined
212
+ };
213
+ }
214
+ normalizeIter(data, options) {
215
+ const contacts = Array.from(data);
216
+ if (options.sortLists ?? false) {
217
+ contacts.sort(Models.OrganizationalContactRepository.compareItems);
218
+ }
219
+ return contacts.map(c => this.normalize(c, options));
220
+ }
221
+ }
222
+ exports.OrganizationalContactNormalizer = OrganizationalContactNormalizer;
223
+ class OrganizationalEntityNormalizer extends Base {
224
+ normalize(data, options) {
225
+ const urls = normalizeStringableIter(data.url, options)
226
+ .filter(types_2.JsonSchema.isIriReference);
227
+ return {
228
+ name: data.name || undefined,
229
+ url: urls.length > 0
230
+ ? urls
231
+ : undefined,
232
+ contact: data.contact.size > 0
233
+ ? this._factory.makeForOrganizationalContact().normalizeIter(data.contact, options)
234
+ : undefined
235
+ };
236
+ }
237
+ }
238
+ exports.OrganizationalEntityNormalizer = OrganizationalEntityNormalizer;
239
+ class ComponentNormalizer extends Base {
240
+ normalize(data, options) {
241
+ return this._factory.spec.supportsComponentType(data.type)
242
+ ? {
243
+ type: data.type,
244
+ name: data.name,
245
+ group: data.group || undefined,
246
+ version: data.version || '',
247
+ 'bom-ref': data.bomRef.value || undefined,
248
+ supplier: data.supplier === undefined
249
+ ? undefined
250
+ : this._factory.makeForOrganizationalEntity().normalize(data.supplier, options),
251
+ author: data.author || undefined,
252
+ publisher: data.publisher || undefined,
253
+ description: data.description || undefined,
254
+ scope: data.scope,
255
+ hashes: data.hashes.size > 0
256
+ ? this._factory.makeForHash().normalizeIter(data.hashes, options)
257
+ : undefined,
258
+ licenses: data.licenses.size > 0
259
+ ? this._factory.makeForLicense().normalizeIter(data.licenses, options)
260
+ : undefined,
261
+ copyright: data.copyright || undefined,
262
+ cpe: data.cpe || undefined,
263
+ purl: data.purl?.toString(),
264
+ swid: data.swid === undefined
265
+ ? undefined
266
+ : this._factory.makeForSWID().normalize(data.swid, options),
267
+ externalReferences: data.externalReferences.size > 0
268
+ ? this._factory.makeForExternalReference().normalizeIter(data.externalReferences, options)
269
+ : undefined
270
+ }
271
+ : undefined;
272
+ }
273
+ normalizeIter(data, options) {
274
+ const components = Array.from(data);
275
+ if (options.sortLists ?? false) {
276
+ components.sort(Models.ComponentRepository.compareItems);
277
+ }
278
+ return components.map(c => this.normalize(c, options))
279
+ .filter(types_1.isNotUndefined);
280
+ }
281
+ }
282
+ exports.ComponentNormalizer = ComponentNormalizer;
283
+ class LicenseNormalizer extends Base {
284
+ constructor() {
285
+ super(...arguments);
286
+ _LicenseNormalizer_instances.add(this);
287
+ }
288
+ normalize(data, options) {
289
+ switch (true) {
290
+ case data instanceof Models.NamedLicense:
291
+ return __classPrivateFieldGet(this, _LicenseNormalizer_instances, "m", _LicenseNormalizer_normalizeNamedLicense).call(this, data, options);
292
+ case data instanceof Models.SpdxLicense:
293
+ return __classPrivateFieldGet(this, _LicenseNormalizer_instances, "m", _LicenseNormalizer_normalizeSpdxLicense).call(this, data, options);
294
+ case data instanceof Models.LicenseExpression:
295
+ return __classPrivateFieldGet(this, _LicenseNormalizer_instances, "m", _LicenseNormalizer_normalizeLicenseExpression).call(this, data);
296
+ default:
297
+ throw new TypeError('Unexpected LicenseChoice');
298
+ }
299
+ }
300
+ normalizeIter(data, options) {
301
+ const licenses = Array.from(data);
302
+ if (options.sortLists ?? false) {
303
+ licenses.sort(Models.LicenseRepository.compareItems);
304
+ }
305
+ return licenses.map(c => this.normalize(c, options));
306
+ }
307
+ }
308
+ exports.LicenseNormalizer = LicenseNormalizer;
309
+ _LicenseNormalizer_instances = new WeakSet(), _LicenseNormalizer_normalizeNamedLicense = function _LicenseNormalizer_normalizeNamedLicense(data, options) {
310
+ return {
311
+ license: {
312
+ name: data.name,
313
+ text: data.text === undefined
314
+ ? undefined
315
+ : this._factory.makeForAttachment().normalize(data.text, options),
316
+ url: data.url?.toString()
317
+ }
318
+ };
319
+ }, _LicenseNormalizer_normalizeSpdxLicense = function _LicenseNormalizer_normalizeSpdxLicense(data, options) {
320
+ return {
321
+ license: {
322
+ id: data.id,
323
+ text: data.text === undefined
324
+ ? undefined
325
+ : this._factory.makeForAttachment().normalize(data.text, options),
326
+ url: data.url?.toString()
327
+ }
328
+ };
329
+ }, _LicenseNormalizer_normalizeLicenseExpression = function _LicenseNormalizer_normalizeLicenseExpression(data) {
330
+ return {
331
+ expression: data.expression
332
+ };
333
+ };
334
+ class SWIDNormalizer extends Base {
335
+ normalize(data, options) {
336
+ const url = data.url?.toString();
337
+ return {
338
+ tagId: data.tagId,
339
+ name: data.name,
340
+ version: data.version || undefined,
341
+ tagVersion: data.tagVersion,
342
+ patch: data.patch,
343
+ text: data.text === undefined
344
+ ? undefined
345
+ : this._factory.makeForAttachment().normalize(data.text, options),
346
+ url: types_2.JsonSchema.isIriReference(url)
347
+ ? url
348
+ : undefined
349
+ };
350
+ }
351
+ }
352
+ exports.SWIDNormalizer = SWIDNormalizer;
353
+ class ExternalReferenceNormalizer extends Base {
354
+ normalize(data, options) {
355
+ return this._factory.spec.supportsExternalReferenceType(data.type)
356
+ ? {
357
+ url: data.url.toString(),
358
+ type: data.type,
359
+ comment: data.comment || undefined
360
+ }
361
+ : undefined;
362
+ }
363
+ normalizeIter(data, options) {
364
+ const refs = Array.from(data);
365
+ if (options.sortLists ?? false) {
366
+ refs.sort(Models.ExternalReferenceRepository.compareItems);
367
+ }
368
+ return refs.map(r => this.normalize(r, options))
369
+ .filter(types_1.isNotUndefined);
370
+ }
371
+ }
372
+ exports.ExternalReferenceNormalizer = ExternalReferenceNormalizer;
373
+ class AttachmentNormalizer extends Base {
374
+ normalize(data, options) {
375
+ return {
376
+ content: data.content,
377
+ contentType: data.contentType || undefined,
378
+ encoding: data.encoding
379
+ };
380
+ }
381
+ }
382
+ exports.AttachmentNormalizer = AttachmentNormalizer;
383
+ class DependencyGraphNormalizer extends Base {
384
+ constructor() {
385
+ super(...arguments);
386
+ _DependencyGraphNormalizer_instances.add(this);
387
+ }
388
+ normalize(data, options) {
389
+ if (!data.metadata.component?.bomRef.value) {
390
+ return undefined;
391
+ }
392
+ const allRefs = new Map();
393
+ for (const c of data.components) {
394
+ allRefs.set(c.bomRef, new Models.BomRefRepository(c.dependencies));
395
+ }
396
+ allRefs.set(data.metadata.component.bomRef, data.metadata.component.dependencies);
397
+ const normalized = [];
398
+ for (const [ref, deps] of allRefs) {
399
+ const dep = __classPrivateFieldGet(this, _DependencyGraphNormalizer_instances, "m", _DependencyGraphNormalizer_normalizeDependency).call(this, ref, deps, allRefs, options);
400
+ if ((0, types_1.isNotUndefined)(dep)) {
401
+ normalized.push(dep);
402
+ }
403
+ }
404
+ if (options.sortLists ?? false) {
405
+ normalized.sort(({ ref: a }, { ref: b }) => a.localeCompare(b));
406
+ }
407
+ return normalized;
408
+ }
409
+ }
410
+ exports.DependencyGraphNormalizer = DependencyGraphNormalizer;
411
+ _DependencyGraphNormalizer_instances = new WeakSet(), _DependencyGraphNormalizer_normalizeDependency = function _DependencyGraphNormalizer_normalizeDependency(ref, deps, allRefs, options) {
412
+ const bomRef = ref.toString();
413
+ if (bomRef.length === 0) {
414
+ return undefined;
415
+ }
416
+ const dependsOn = normalizeStringableIter(Array.from(deps).filter(d => allRefs.has(d) && d !== ref), options).filter(d => d.length > 0);
417
+ return {
418
+ ref: bomRef,
419
+ dependsOn: dependsOn.length > 0
420
+ ? dependsOn
421
+ : undefined
422
+ };
423
+ };
424
+ function normalizeStringableIter(data, options) {
425
+ const r = Array.from(data, d => d.toString());
426
+ if (options.sortLists ?? false) {
427
+ r.sort((a, b) => a.localeCompare(b));
428
+ }
429
+ return r;
430
+ }
431
+ //# sourceMappingURL=normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../src/serialize/json/normalize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /*!
3
+ This file is part of CycloneDX JavaScript Library.
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+
17
+ SPDX-License-Identifier: Apache-2.0
18
+ Copyright (c) OWASP Foundation. All Rights Reserved.
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.JsonSchema = void 0;
22
+ var JsonSchema;
23
+ (function (JsonSchema) {
24
+ function isIriReference(value) {
25
+ return typeof value === 'string' &&
26
+ value.length > 0;
27
+ }
28
+ JsonSchema.isIriReference = isIriReference;
29
+ function isIdnEmail(value) {
30
+ return typeof value === 'string' &&
31
+ value.length > 0;
32
+ }
33
+ JsonSchema.isIdnEmail = isIdnEmail;
34
+ })(JsonSchema = exports.JsonSchema || (exports.JsonSchema = {}));
35
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/serialize/json/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;EAiBE;;;AAQF,IAAiB,UAAU,CAkC1B;AAlCD,WAAiB,UAAU;IAWzB,SAAgB,cAAc,CAAE,KAAyB;QACvD,OAAO,OAAO,KAAK,KAAK,QAAQ;YAC9B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IAEpB,CAAC;IAJe,yBAAc,iBAI7B,CAAA;IAWD,SAAgB,UAAU,CAAE,KAAqB;QAC/C,OAAO,OAAO,KAAK,KAAK,QAAQ;YAC9B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IAEpB,CAAC;IAJe,qBAAU,aAIzB,CAAA;AAIH,CAAC,EAlCgB,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAkC1B"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ /*!
3
+ This file is part of CycloneDX JavaScript Library.
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+
17
+ SPDX-License-Identifier: Apache-2.0
18
+ Copyright (c) OWASP Foundation. All Rights Reserved.
19
+ */
20
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
21
+ if (kind === "m") throw new TypeError("Private method is not writable");
22
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
23
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
24
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
25
+ };
26
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
27
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
28
+ 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");
29
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
30
+ };
31
+ var _JsonSerializer_normalizerFactory;
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.JsonSerializer = void 0;
34
+ const spec_1 = require("../spec");
35
+ const baseSerializer_1 = require("./baseSerializer");
36
+ class JsonSerializer extends baseSerializer_1.BaseSerializer {
37
+ constructor(normalizerFactory) {
38
+ if (!normalizerFactory.spec.supportsFormat(spec_1.Format.JSON)) {
39
+ throw new spec_1.UnsupportedFormatError('Spec does not support JSON format.');
40
+ }
41
+ super();
42
+ _JsonSerializer_normalizerFactory.set(this, void 0);
43
+ __classPrivateFieldSet(this, _JsonSerializer_normalizerFactory, normalizerFactory, "f");
44
+ }
45
+ _normalize(bom, options = {}) {
46
+ return __classPrivateFieldGet(this, _JsonSerializer_normalizerFactory, "f").makeForBom()
47
+ .normalize(bom, options);
48
+ }
49
+ _serialize(bom, { space } = {}) {
50
+ return JSON.stringify(bom, null, space);
51
+ }
52
+ }
53
+ exports.JsonSerializer = JsonSerializer;
54
+ _JsonSerializer_normalizerFactory = new WeakMap();
55
+ //# sourceMappingURL=jsonSerializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonSerializer.js","sourceRoot":"","sources":["../../src/serialize/jsonSerializer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;EAiBE;;;;;;;;;;;;;;;AAGF,kCAAwD;AAExD,qDAAiD;AAOjD,MAAa,cAAe,SAAQ,+BAA8B;IAMhE,YAAa,iBAAoC;QAC/C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,aAAM,CAAC,IAAI,CAAC,EAAE;YACvD,MAAM,IAAI,6BAAsB,CAAC,oCAAoC,CAAC,CAAA;SACvE;QAED,KAAK,EAAE,CAAA;QAVT,oDAA8C;QAW5C,uBAAA,IAAI,qCAAsB,iBAAiB,MAAA,CAAA;IAC7C,CAAC;IAES,UAAU,CAClB,GAAQ,EACR,UAA6B,EAAE;QAE/B,OAAO,uBAAA,IAAI,yCAAmB,CAAC,UAAU,EAAE;aACxC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAC5B,CAAC;IAES,UAAU,CAClB,GAAmB,EACnB,EAAE,KAAK,KAAwB,EAAE;QAEjC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IACzC,CAAC;CACF;AA7BD,wCA6BC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /*!
3
+ This file is part of CycloneDX JavaScript Library.
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+
17
+ SPDX-License-Identifier: Apache-2.0
18
+ Copyright (c) OWASP Foundation. All Rights Reserved.
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/serialize/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;EAiBE"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ /*!
3
+ This file is part of CycloneDX JavaScript Library.
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+
17
+ SPDX-License-Identifier: Apache-2.0
18
+ Copyright (c) OWASP Foundation. All Rights Reserved.
19
+ */
20
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ var desc = Object.getOwnPropertyDescriptor(m, k);
23
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
24
+ desc = { enumerable: true, get: function() { return m[k]; } };
25
+ }
26
+ Object.defineProperty(o, k2, desc);
27
+ }) : (function(o, m, k, k2) {
28
+ if (k2 === undefined) k2 = k;
29
+ o[k2] = m[k];
30
+ }));
31
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
32
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
33
+ }) : function(o, v) {
34
+ o["default"] = v;
35
+ });
36
+ var __importStar = (this && this.__importStar) || function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ exports.Normalize = exports.Types = void 0;
45
+ exports.Types = __importStar(require("./types"));
46
+ exports.Normalize = __importStar(require("./normalize"));
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/serialize/xml/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;EAiBE;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,iDAAgC;AAEhC,yDAAwC"}