@cyclonedx/cdxgen 10.5.1 → 10.5.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.
- package/README.md +86 -127
- package/bin/cdxgen.js +4 -2
- package/bin/evinse.js +2 -1
- package/bin/repl.js +38 -23
- package/bin/verify.js +2 -1
- package/binary.js +6 -6
- package/data/spdx.schema.json +117 -1
- package/display.js +28 -0
- package/docker.js +21 -6
- package/index.js +330 -91
- package/package.json +21 -12
- package/types/analyzer.d.ts +4 -7
- package/types/binary.d.ts +8 -12
- package/types/binary.d.ts.map +1 -1
- package/types/cbomutils.d.ts +1 -1
- package/types/db.d.ts +9 -22
- package/types/display.d.ts +2 -1
- package/types/display.d.ts.map +1 -1
- package/types/docker.d.ts +33 -52
- package/types/docker.d.ts.map +1 -1
- package/types/envcontext.d.ts +40 -40
- package/types/evinser.d.ts +717 -3436
- package/types/index.d.ts +48 -67
- package/types/index.d.ts.map +1 -1
- package/types/jest.config.d.ts +2 -2
- package/types/piptree.d.ts +2 -6
- package/types/postgen.d.ts +1 -1
- package/types/protobom.d.ts +2 -6
- package/types/server.d.ts +1 -1
- package/types/utils.d.ts +344 -510
- package/types/utils.d.ts.map +1 -1
- package/types/validator.d.ts +1 -1
- package/utils.js +315 -25
- package/utils.test.js +207 -18
package/data/spdx.schema.json
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"$id": "http://cyclonedx.org/schema/spdx.schema.json",
|
|
4
|
-
"$comment": "v1.0-3.
|
|
4
|
+
"$comment": "v1.0-3.24.0",
|
|
5
5
|
"type": "string",
|
|
6
6
|
"enum": [
|
|
7
7
|
"0BSD",
|
|
8
|
+
"3D-Slicer-1.0",
|
|
8
9
|
"AAL",
|
|
9
10
|
"Abstyles",
|
|
10
11
|
"AdaCore-doc",
|
|
11
12
|
"Adobe-2006",
|
|
13
|
+
"Adobe-Display-PostScript",
|
|
12
14
|
"Adobe-Glyph",
|
|
15
|
+
"Adobe-Utopia",
|
|
13
16
|
"ADSL",
|
|
14
17
|
"AFL-1.1",
|
|
15
18
|
"AFL-1.2",
|
|
@@ -24,11 +27,14 @@
|
|
|
24
27
|
"AGPL-3.0-only",
|
|
25
28
|
"AGPL-3.0-or-later",
|
|
26
29
|
"Aladdin",
|
|
30
|
+
"AMD-newlib",
|
|
27
31
|
"AMDPLPA",
|
|
28
32
|
"AML",
|
|
33
|
+
"AML-glslang",
|
|
29
34
|
"AMPAS",
|
|
30
35
|
"ANTLR-PD",
|
|
31
36
|
"ANTLR-PD-fallback",
|
|
37
|
+
"any-OSI",
|
|
32
38
|
"Apache-1.0",
|
|
33
39
|
"Apache-1.1",
|
|
34
40
|
"Apache-2.0",
|
|
@@ -49,6 +55,7 @@
|
|
|
49
55
|
"Baekmuk",
|
|
50
56
|
"Bahyph",
|
|
51
57
|
"Barr",
|
|
58
|
+
"bcrypt-Solar-Designer",
|
|
52
59
|
"Beerware",
|
|
53
60
|
"Bitstream-Charter",
|
|
54
61
|
"Bitstream-Vera",
|
|
@@ -58,16 +65,22 @@
|
|
|
58
65
|
"BlueOak-1.0.0",
|
|
59
66
|
"Boehm-GC",
|
|
60
67
|
"Borceux",
|
|
68
|
+
"Brian-Gladman-2-Clause",
|
|
61
69
|
"Brian-Gladman-3-Clause",
|
|
62
70
|
"BSD-1-Clause",
|
|
63
71
|
"BSD-2-Clause",
|
|
72
|
+
"BSD-2-Clause-Darwin",
|
|
73
|
+
"BSD-2-Clause-first-lines",
|
|
64
74
|
"BSD-2-Clause-FreeBSD",
|
|
65
75
|
"BSD-2-Clause-NetBSD",
|
|
66
76
|
"BSD-2-Clause-Patent",
|
|
67
77
|
"BSD-2-Clause-Views",
|
|
68
78
|
"BSD-3-Clause",
|
|
79
|
+
"BSD-3-Clause-acpica",
|
|
69
80
|
"BSD-3-Clause-Attribution",
|
|
70
81
|
"BSD-3-Clause-Clear",
|
|
82
|
+
"BSD-3-Clause-flex",
|
|
83
|
+
"BSD-3-Clause-HP",
|
|
71
84
|
"BSD-3-Clause-LBNL",
|
|
72
85
|
"BSD-3-Clause-Modification",
|
|
73
86
|
"BSD-3-Clause-No-Military-License",
|
|
@@ -75,6 +88,7 @@
|
|
|
75
88
|
"BSD-3-Clause-No-Nuclear-License-2014",
|
|
76
89
|
"BSD-3-Clause-No-Nuclear-Warranty",
|
|
77
90
|
"BSD-3-Clause-Open-MPI",
|
|
91
|
+
"BSD-3-Clause-Sun",
|
|
78
92
|
"BSD-4-Clause",
|
|
79
93
|
"BSD-4-Clause-Shortened",
|
|
80
94
|
"BSD-4-Clause-UC",
|
|
@@ -82,8 +96,12 @@
|
|
|
82
96
|
"BSD-4.3TAHOE",
|
|
83
97
|
"BSD-Advertising-Acknowledgement",
|
|
84
98
|
"BSD-Attribution-HPND-disclaimer",
|
|
99
|
+
"BSD-Inferno-Nettverk",
|
|
85
100
|
"BSD-Protection",
|
|
101
|
+
"BSD-Source-beginning-file",
|
|
86
102
|
"BSD-Source-Code",
|
|
103
|
+
"BSD-Systemics",
|
|
104
|
+
"BSD-Systemics-W3Works",
|
|
87
105
|
"BSL-1.0",
|
|
88
106
|
"BUSL-1.1",
|
|
89
107
|
"bzip2-1.0.5",
|
|
@@ -92,6 +110,8 @@
|
|
|
92
110
|
"CAL-1.0",
|
|
93
111
|
"CAL-1.0-Combined-Work-Exception",
|
|
94
112
|
"Caldera",
|
|
113
|
+
"Caldera-no-preamble",
|
|
114
|
+
"Catharon",
|
|
95
115
|
"CATOSL-1.1",
|
|
96
116
|
"CC-BY-1.0",
|
|
97
117
|
"CC-BY-2.0",
|
|
@@ -99,6 +119,7 @@
|
|
|
99
119
|
"CC-BY-2.5-AU",
|
|
100
120
|
"CC-BY-3.0",
|
|
101
121
|
"CC-BY-3.0-AT",
|
|
122
|
+
"CC-BY-3.0-AU",
|
|
102
123
|
"CC-BY-3.0-DE",
|
|
103
124
|
"CC-BY-3.0-IGO",
|
|
104
125
|
"CC-BY-3.0-NL",
|
|
@@ -163,10 +184,12 @@
|
|
|
163
184
|
"CERN-OHL-S-2.0",
|
|
164
185
|
"CERN-OHL-W-2.0",
|
|
165
186
|
"CFITSIO",
|
|
187
|
+
"check-cvs",
|
|
166
188
|
"checkmk",
|
|
167
189
|
"ClArtistic",
|
|
168
190
|
"Clips",
|
|
169
191
|
"CMU-Mach",
|
|
192
|
+
"CMU-Mach-nodoc",
|
|
170
193
|
"CNRI-Jython",
|
|
171
194
|
"CNRI-Python",
|
|
172
195
|
"CNRI-Python-GPL-Compatible",
|
|
@@ -179,17 +202,22 @@
|
|
|
179
202
|
"CPAL-1.0",
|
|
180
203
|
"CPL-1.0",
|
|
181
204
|
"CPOL-1.02",
|
|
205
|
+
"Cronyx",
|
|
182
206
|
"Crossword",
|
|
183
207
|
"CrystalStacker",
|
|
184
208
|
"CUA-OPL-1.0",
|
|
185
209
|
"Cube",
|
|
186
210
|
"curl",
|
|
211
|
+
"cve-tou",
|
|
187
212
|
"D-FSL-1.0",
|
|
213
|
+
"DEC-3-Clause",
|
|
188
214
|
"diffmark",
|
|
189
215
|
"DL-DE-BY-2.0",
|
|
216
|
+
"DL-DE-ZERO-2.0",
|
|
190
217
|
"DOC",
|
|
191
218
|
"Dotseqn",
|
|
192
219
|
"DRL-1.0",
|
|
220
|
+
"DRL-1.1",
|
|
193
221
|
"DSDP",
|
|
194
222
|
"dtoa",
|
|
195
223
|
"dvipdfm",
|
|
@@ -212,15 +240,21 @@
|
|
|
212
240
|
"EUPL-1.2",
|
|
213
241
|
"Eurosym",
|
|
214
242
|
"Fair",
|
|
243
|
+
"FBM",
|
|
215
244
|
"FDK-AAC",
|
|
245
|
+
"Ferguson-Twofish",
|
|
216
246
|
"Frameworx-1.0",
|
|
217
247
|
"FreeBSD-DOC",
|
|
218
248
|
"FreeImage",
|
|
219
249
|
"FSFAP",
|
|
250
|
+
"FSFAP-no-warranty-disclaimer",
|
|
220
251
|
"FSFUL",
|
|
221
252
|
"FSFULLR",
|
|
222
253
|
"FSFULLRWD",
|
|
223
254
|
"FTL",
|
|
255
|
+
"Furuseth",
|
|
256
|
+
"fwlw",
|
|
257
|
+
"GCR-docs",
|
|
224
258
|
"GD",
|
|
225
259
|
"GFDL-1.1",
|
|
226
260
|
"GFDL-1.1-invariants-only",
|
|
@@ -270,14 +304,36 @@
|
|
|
270
304
|
"GPL-3.0-with-GCC-exception",
|
|
271
305
|
"Graphics-Gems",
|
|
272
306
|
"gSOAP-1.3b",
|
|
307
|
+
"gtkbook",
|
|
308
|
+
"Gutmann",
|
|
273
309
|
"HaskellReport",
|
|
310
|
+
"hdparm",
|
|
274
311
|
"Hippocratic-2.1",
|
|
275
312
|
"HP-1986",
|
|
313
|
+
"HP-1989",
|
|
276
314
|
"HPND",
|
|
315
|
+
"HPND-DEC",
|
|
316
|
+
"HPND-doc",
|
|
317
|
+
"HPND-doc-sell",
|
|
277
318
|
"HPND-export-US",
|
|
319
|
+
"HPND-export-US-acknowledgement",
|
|
320
|
+
"HPND-export-US-modify",
|
|
321
|
+
"HPND-export2-US",
|
|
322
|
+
"HPND-Fenneberg-Livingston",
|
|
323
|
+
"HPND-INRIA-IMAG",
|
|
324
|
+
"HPND-Intel",
|
|
325
|
+
"HPND-Kevlin-Henney",
|
|
278
326
|
"HPND-Markus-Kuhn",
|
|
327
|
+
"HPND-merchantability-variant",
|
|
328
|
+
"HPND-MIT-disclaimer",
|
|
329
|
+
"HPND-Pbmplus",
|
|
330
|
+
"HPND-sell-MIT-disclaimer-xserver",
|
|
331
|
+
"HPND-sell-regexpr",
|
|
279
332
|
"HPND-sell-variant",
|
|
280
333
|
"HPND-sell-variant-MIT-disclaimer",
|
|
334
|
+
"HPND-sell-variant-MIT-disclaimer-rev",
|
|
335
|
+
"HPND-UC",
|
|
336
|
+
"HPND-UC-export-US",
|
|
281
337
|
"HTMLTIDY",
|
|
282
338
|
"IBM-pibs",
|
|
283
339
|
"ICU",
|
|
@@ -295,11 +351,13 @@
|
|
|
295
351
|
"IPA",
|
|
296
352
|
"IPL-1.0",
|
|
297
353
|
"ISC",
|
|
354
|
+
"ISC-Veillard",
|
|
298
355
|
"Jam",
|
|
299
356
|
"JasPer-2.0",
|
|
300
357
|
"JPL-image",
|
|
301
358
|
"JPNIC",
|
|
302
359
|
"JSON",
|
|
360
|
+
"Kastrup",
|
|
303
361
|
"Kazlib",
|
|
304
362
|
"Knuth-CTAN",
|
|
305
363
|
"LAL-1.2",
|
|
@@ -334,6 +392,7 @@
|
|
|
334
392
|
"Linux-man-pages-copyleft-var",
|
|
335
393
|
"Linux-OpenIB",
|
|
336
394
|
"LOOP",
|
|
395
|
+
"LPD-document",
|
|
337
396
|
"LPL-1.0",
|
|
338
397
|
"LPL-1.02",
|
|
339
398
|
"LPPL-1.0",
|
|
@@ -341,10 +400,17 @@
|
|
|
341
400
|
"LPPL-1.2",
|
|
342
401
|
"LPPL-1.3a",
|
|
343
402
|
"LPPL-1.3c",
|
|
403
|
+
"lsof",
|
|
404
|
+
"Lucida-Bitmap-Fonts",
|
|
344
405
|
"LZMA-SDK-9.11-to-9.20",
|
|
345
406
|
"LZMA-SDK-9.22",
|
|
407
|
+
"Mackerras-3-Clause",
|
|
408
|
+
"Mackerras-3-Clause-acknowledgment",
|
|
409
|
+
"magaz",
|
|
410
|
+
"mailprio",
|
|
346
411
|
"MakeIndex",
|
|
347
412
|
"Martin-Birgmeier",
|
|
413
|
+
"McPhee-slideshow",
|
|
348
414
|
"metamail",
|
|
349
415
|
"Minpack",
|
|
350
416
|
"MirOS",
|
|
@@ -355,11 +421,15 @@
|
|
|
355
421
|
"MIT-enna",
|
|
356
422
|
"MIT-feh",
|
|
357
423
|
"MIT-Festival",
|
|
424
|
+
"MIT-Khronos-old",
|
|
358
425
|
"MIT-Modern-Variant",
|
|
359
426
|
"MIT-open-group",
|
|
427
|
+
"MIT-testregex",
|
|
360
428
|
"MIT-Wu",
|
|
361
429
|
"MITNFA",
|
|
430
|
+
"MMIXware",
|
|
362
431
|
"Motosoto",
|
|
432
|
+
"MPEG-SSG",
|
|
363
433
|
"mpi-permissive",
|
|
364
434
|
"mpich2",
|
|
365
435
|
"MPL-1.0",
|
|
@@ -379,7 +449,9 @@
|
|
|
379
449
|
"NASA-1.3",
|
|
380
450
|
"Naumen",
|
|
381
451
|
"NBPL-1.0",
|
|
452
|
+
"NCBI-PD",
|
|
382
453
|
"NCGL-UK-2.0",
|
|
454
|
+
"NCL",
|
|
383
455
|
"NCSA",
|
|
384
456
|
"Net-SNMP",
|
|
385
457
|
"NetCDF",
|
|
@@ -403,6 +475,7 @@
|
|
|
403
475
|
"NTP-0",
|
|
404
476
|
"Nunit",
|
|
405
477
|
"O-UDA-1.0",
|
|
478
|
+
"OAR",
|
|
406
479
|
"OCCT-PL",
|
|
407
480
|
"OCLC-2.0",
|
|
408
481
|
"ODbL-1.0",
|
|
@@ -441,6 +514,8 @@
|
|
|
441
514
|
"OML",
|
|
442
515
|
"OpenPBS-2.3",
|
|
443
516
|
"OpenSSL",
|
|
517
|
+
"OpenSSL-standalone",
|
|
518
|
+
"OpenVision",
|
|
444
519
|
"OPL-1.0",
|
|
445
520
|
"OPL-UK-3.0",
|
|
446
521
|
"OPUBL-1.0",
|
|
@@ -450,23 +525,30 @@
|
|
|
450
525
|
"OSL-2.0",
|
|
451
526
|
"OSL-2.1",
|
|
452
527
|
"OSL-3.0",
|
|
528
|
+
"PADL",
|
|
453
529
|
"Parity-6.0.0",
|
|
454
530
|
"Parity-7.0.0",
|
|
455
531
|
"PDDL-1.0",
|
|
456
532
|
"PHP-3.0",
|
|
457
533
|
"PHP-3.01",
|
|
534
|
+
"Pixar",
|
|
535
|
+
"pkgconf",
|
|
458
536
|
"Plexus",
|
|
537
|
+
"pnmstitch",
|
|
459
538
|
"PolyForm-Noncommercial-1.0.0",
|
|
460
539
|
"PolyForm-Small-Business-1.0.0",
|
|
461
540
|
"PostgreSQL",
|
|
541
|
+
"PPL",
|
|
462
542
|
"PSF-2.0",
|
|
463
543
|
"psfrag",
|
|
464
544
|
"psutils",
|
|
465
545
|
"Python-2.0",
|
|
466
546
|
"Python-2.0.1",
|
|
547
|
+
"python-ldap",
|
|
467
548
|
"Qhull",
|
|
468
549
|
"QPL-1.0",
|
|
469
550
|
"QPL-1.0-INRIA-2004",
|
|
551
|
+
"radvd",
|
|
470
552
|
"Rdisc",
|
|
471
553
|
"RHeCos-1.1",
|
|
472
554
|
"RPL-1.1",
|
|
@@ -476,6 +558,7 @@
|
|
|
476
558
|
"RSCPL",
|
|
477
559
|
"Ruby",
|
|
478
560
|
"SAX-PD",
|
|
561
|
+
"SAX-PD-2.0",
|
|
479
562
|
"Saxpath",
|
|
480
563
|
"SCEA",
|
|
481
564
|
"SchemeReport",
|
|
@@ -484,49 +567,65 @@
|
|
|
484
567
|
"SGI-B-1.0",
|
|
485
568
|
"SGI-B-1.1",
|
|
486
569
|
"SGI-B-2.0",
|
|
570
|
+
"SGI-OpenGL",
|
|
487
571
|
"SGP4",
|
|
488
572
|
"SHL-0.5",
|
|
489
573
|
"SHL-0.51",
|
|
490
574
|
"SimPL-2.0",
|
|
491
575
|
"SISSL",
|
|
492
576
|
"SISSL-1.2",
|
|
577
|
+
"SL",
|
|
493
578
|
"Sleepycat",
|
|
494
579
|
"SMLNJ",
|
|
495
580
|
"SMPPL",
|
|
496
581
|
"SNIA",
|
|
497
582
|
"snprintf",
|
|
583
|
+
"softSurfer",
|
|
584
|
+
"Soundex",
|
|
498
585
|
"Spencer-86",
|
|
499
586
|
"Spencer-94",
|
|
500
587
|
"Spencer-99",
|
|
501
588
|
"SPL-1.0",
|
|
589
|
+
"ssh-keyscan",
|
|
502
590
|
"SSH-OpenSSH",
|
|
503
591
|
"SSH-short",
|
|
592
|
+
"SSLeay-standalone",
|
|
504
593
|
"SSPL-1.0",
|
|
505
594
|
"StandardML-NJ",
|
|
506
595
|
"SugarCRM-1.1.3",
|
|
596
|
+
"Sun-PPP",
|
|
597
|
+
"Sun-PPP-2000",
|
|
507
598
|
"SunPro",
|
|
508
599
|
"SWL",
|
|
600
|
+
"swrule",
|
|
509
601
|
"Symlinks",
|
|
510
602
|
"TAPR-OHL-1.0",
|
|
511
603
|
"TCL",
|
|
512
604
|
"TCP-wrappers",
|
|
513
605
|
"TermReadKey",
|
|
606
|
+
"TGPPL-1.0",
|
|
607
|
+
"threeparttable",
|
|
514
608
|
"TMate",
|
|
515
609
|
"TORQUE-1.1",
|
|
516
610
|
"TOSL",
|
|
517
611
|
"TPDL",
|
|
518
612
|
"TPL-1.0",
|
|
519
613
|
"TTWL",
|
|
614
|
+
"TTYP0",
|
|
520
615
|
"TU-Berlin-1.0",
|
|
521
616
|
"TU-Berlin-2.0",
|
|
522
617
|
"UCAR",
|
|
523
618
|
"UCL-1.0",
|
|
619
|
+
"ulem",
|
|
620
|
+
"UMich-Merit",
|
|
621
|
+
"Unicode-3.0",
|
|
524
622
|
"Unicode-DFS-2015",
|
|
525
623
|
"Unicode-DFS-2016",
|
|
526
624
|
"Unicode-TOU",
|
|
527
625
|
"UnixCrypt",
|
|
528
626
|
"Unlicense",
|
|
529
627
|
"UPL-1.0",
|
|
628
|
+
"URT-RLE",
|
|
530
629
|
"Vim",
|
|
531
630
|
"VOSTROM",
|
|
532
631
|
"VSL-1.0",
|
|
@@ -546,13 +645,16 @@
|
|
|
546
645
|
"Xfig",
|
|
547
646
|
"XFree86-1.1",
|
|
548
647
|
"xinetd",
|
|
648
|
+
"xkeyboard-config-Zinoviev",
|
|
549
649
|
"xlock",
|
|
550
650
|
"Xnet",
|
|
551
651
|
"xpp",
|
|
552
652
|
"XSkat",
|
|
653
|
+
"xzoom",
|
|
553
654
|
"YPL-1.0",
|
|
554
655
|
"YPL-1.1",
|
|
555
656
|
"Zed",
|
|
657
|
+
"Zeeff",
|
|
556
658
|
"Zend-2.0",
|
|
557
659
|
"Zimbra-1.3",
|
|
558
660
|
"Zimbra-1.4",
|
|
@@ -563,10 +665,13 @@
|
|
|
563
665
|
"ZPL-2.1",
|
|
564
666
|
"389-exception",
|
|
565
667
|
"Asterisk-exception",
|
|
668
|
+
"Asterisk-linking-protocols-exception",
|
|
566
669
|
"Autoconf-exception-2.0",
|
|
567
670
|
"Autoconf-exception-3.0",
|
|
568
671
|
"Autoconf-exception-generic",
|
|
672
|
+
"Autoconf-exception-generic-3.0",
|
|
569
673
|
"Autoconf-exception-macro",
|
|
674
|
+
"Bison-exception-1.24",
|
|
570
675
|
"Bison-exception-2.2",
|
|
571
676
|
"Bootloader-exception",
|
|
572
677
|
"Classpath-exception-2.0",
|
|
@@ -576,11 +681,16 @@
|
|
|
576
681
|
"eCos-exception-2.0",
|
|
577
682
|
"Fawkes-Runtime-exception",
|
|
578
683
|
"FLTK-exception",
|
|
684
|
+
"fmt-exception",
|
|
579
685
|
"Font-exception-2.0",
|
|
580
686
|
"freertos-exception-2.0",
|
|
581
687
|
"GCC-exception-2.0",
|
|
688
|
+
"GCC-exception-2.0-note",
|
|
582
689
|
"GCC-exception-3.1",
|
|
690
|
+
"Gmsh-exception",
|
|
583
691
|
"GNAT-exception",
|
|
692
|
+
"GNOME-examples-exception",
|
|
693
|
+
"GNU-compiler-exception",
|
|
584
694
|
"gnu-javamail-exception",
|
|
585
695
|
"GPL-3.0-interface-exception",
|
|
586
696
|
"GPL-3.0-linking-exception",
|
|
@@ -603,16 +713,22 @@
|
|
|
603
713
|
"OCCT-exception-1.0",
|
|
604
714
|
"OpenJDK-assembly-exception-1.0",
|
|
605
715
|
"openvpn-openssl-exception",
|
|
716
|
+
"PCRE2-exception",
|
|
606
717
|
"PS-or-PDF-font-exception-20170817",
|
|
607
718
|
"QPL-1.0-INRIA-2004-exception",
|
|
608
719
|
"Qt-GPL-exception-1.0",
|
|
609
720
|
"Qt-LGPL-exception-1.1",
|
|
610
721
|
"Qwt-exception-1.0",
|
|
722
|
+
"RRDtool-FLOSS-exception-2.0",
|
|
723
|
+
"SANE-exception",
|
|
611
724
|
"SHL-2.0",
|
|
612
725
|
"SHL-2.1",
|
|
726
|
+
"stunnel-exception",
|
|
613
727
|
"SWI-exception",
|
|
614
728
|
"Swift-exception",
|
|
729
|
+
"Texinfo-exception",
|
|
615
730
|
"u-boot-exception-2.0",
|
|
731
|
+
"UBDL-exception",
|
|
616
732
|
"Universal-FOSS-exception-1.0",
|
|
617
733
|
"vsftpd-openssl-exception",
|
|
618
734
|
"WxWindows-exception-3.1",
|
package/display.js
CHANGED
|
@@ -340,3 +340,31 @@ export const printReachables = (sliceArtefacts) => {
|
|
|
340
340
|
console.log(table(data, config));
|
|
341
341
|
}
|
|
342
342
|
};
|
|
343
|
+
|
|
344
|
+
export function printVulnerabilities(vulnerabilities) {
|
|
345
|
+
if (!vulnerabilities) {
|
|
346
|
+
return;
|
|
347
|
+
}
|
|
348
|
+
const data = [["Ref", "Ratings", "State", "Justification"]];
|
|
349
|
+
for (const avuln of vulnerabilities) {
|
|
350
|
+
const arow = [
|
|
351
|
+
avuln["bom-ref"],
|
|
352
|
+
`${avuln?.ratings
|
|
353
|
+
.map((r) => r?.severity?.toUpperCase())
|
|
354
|
+
.join("\n")}\n${avuln?.ratings.map((r) => r?.score).join("\n")}`,
|
|
355
|
+
avuln?.analysis?.state || "",
|
|
356
|
+
avuln?.analysis?.justification || "",
|
|
357
|
+
];
|
|
358
|
+
data.push(arow);
|
|
359
|
+
}
|
|
360
|
+
const config = {
|
|
361
|
+
header: {
|
|
362
|
+
alignment: "center",
|
|
363
|
+
content: "Vulnerabilities\nGenerated with \u2665 by cdxgen",
|
|
364
|
+
},
|
|
365
|
+
};
|
|
366
|
+
if (data.length > 1) {
|
|
367
|
+
console.log(table(data, config));
|
|
368
|
+
}
|
|
369
|
+
console.log(`${vulnerabilities.length} vulnerabilities found.`);
|
|
370
|
+
}
|
package/docker.js
CHANGED
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
homedir,
|
|
18
18
|
tmpdir,
|
|
19
19
|
} from "node:os";
|
|
20
|
-
import { join } from "node:path";
|
|
20
|
+
import { basename, join } from "node:path";
|
|
21
21
|
import process from "node:process";
|
|
22
22
|
import stream from "node:stream/promises";
|
|
23
23
|
import { parse } from "node:url";
|
|
@@ -27,6 +27,7 @@ import { x } from "tar";
|
|
|
27
27
|
import { DEBUG_MODE, getAllFiles } from "./utils.js";
|
|
28
28
|
|
|
29
29
|
export const isWin = _platform() === "win32";
|
|
30
|
+
export const DOCKER_HUB_REGISTRY = "docker.io";
|
|
30
31
|
|
|
31
32
|
let dockerConn = undefined;
|
|
32
33
|
let isPodman = false;
|
|
@@ -114,8 +115,8 @@ export const getOnlyDirs = (srcpath, dirName) => {
|
|
|
114
115
|
|
|
115
116
|
const getDefaultOptions = (forRegistry) => {
|
|
116
117
|
let authTokenSet = false;
|
|
117
|
-
if (!forRegistry
|
|
118
|
-
forRegistry = process.env.DOCKER_SERVER_ADDRESS;
|
|
118
|
+
if (!forRegistry) {
|
|
119
|
+
forRegistry = process.env.DOCKER_SERVER_ADDRESS ?? DOCKER_HUB_REGISTRY;
|
|
119
120
|
}
|
|
120
121
|
if (forRegistry) {
|
|
121
122
|
forRegistry = forRegistry.replace("http://", "").replace("https://", "");
|
|
@@ -517,7 +518,7 @@ export const getImage = async (fullImageName) => {
|
|
|
517
518
|
let pullData = undefined;
|
|
518
519
|
const { registry, repo, tag, digest } = parseImageName(fullImageName);
|
|
519
520
|
const repoWithTag =
|
|
520
|
-
registry && registry !==
|
|
521
|
+
registry && registry !== DOCKER_HUB_REGISTRY
|
|
521
522
|
? fullImageName
|
|
522
523
|
: `${repo}:${tag !== "" ? tag : ":latest"}`;
|
|
523
524
|
// Fetch only the latest tag if none is specified
|
|
@@ -712,6 +713,7 @@ export const extractTar = async (fullImageName, dir) => {
|
|
|
712
713
|
path.includes("usr/share/zoneinfo/") ||
|
|
713
714
|
path.includes("usr/share/doc/") ||
|
|
714
715
|
path.includes("usr/share/i18n/") ||
|
|
716
|
+
basename(path).startsWith(".") ||
|
|
715
717
|
path.includes("usr/share/licenses/device-mapper-libs") ||
|
|
716
718
|
[
|
|
717
719
|
"BlockDevice",
|
|
@@ -738,7 +740,15 @@ export const extractTar = async (fullImageName, dir) => {
|
|
|
738
740
|
);
|
|
739
741
|
console.log(err);
|
|
740
742
|
} else if (
|
|
741
|
-
![
|
|
743
|
+
![
|
|
744
|
+
"TAR_BAD_ARCHIVE",
|
|
745
|
+
"TAR_ENTRY_INFO",
|
|
746
|
+
"TAR_ENTRY_INVALID",
|
|
747
|
+
"TAR_ENTRY_ERROR",
|
|
748
|
+
"TAR_ENTRY_UNSUPPORTED",
|
|
749
|
+
"TAR_ABORT",
|
|
750
|
+
"EACCES",
|
|
751
|
+
].includes(err.code)
|
|
742
752
|
) {
|
|
743
753
|
console.log(
|
|
744
754
|
`Error while extracting image ${fullImageName} to ${dir}. Please file this bug to the cdxgen repo. https://github.com/CycloneDX/cdxgen/issues`,
|
|
@@ -752,7 +762,12 @@ export const extractTar = async (fullImageName, dir) => {
|
|
|
752
762
|
}
|
|
753
763
|
} else if (["EACCES"].includes(err.code)) {
|
|
754
764
|
console.log(err);
|
|
755
|
-
|
|
765
|
+
/*
|
|
766
|
+
* We do not display errors messages for errors:
|
|
767
|
+
* 1) TAR_ENTRY_INFO is an informative error indicating that an entry is being modified.
|
|
768
|
+
* 2) TAR_ENTRY_INVALID indicates that a given entry is not valid tar archive entry and will be skipped.
|
|
769
|
+
*/
|
|
770
|
+
} else if (!["TAR_ENTRY_INFO", "TAR_ENTRY_INVALID"].includes(err.code)) {
|
|
756
771
|
console.log(err);
|
|
757
772
|
}
|
|
758
773
|
return false;
|