1/* IMPORTANT 2 * This snapshot file is auto-generated, but designed for humans. 3 * It should be checked into source control and tracked carefully. 4 * Re-generate by setting TAP_SNAPSHOT=1 and running tests. 5 * Make sure to inspect the output below. Do not ignore changes! 6 */ 7'use strict' 8exports[`test/lib/commands/sbom.js TAP sbom --omit dev > must match snapshot 1`] = ` 9{ 10 "spdxVersion": "SPDX-2.3", 11 "dataLicense": "CC0-1.0", 12 "SPDXID": "SPDXRef-DOCUMENT", 13 "name": "test-npm-sbom@1.0.0", 14 "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", 15 "creationInfo": { 16 "created": "2020-01-01T00:00:00.000Z", 17 "creators": [ 18 "Tool: npm/cli-10.0.0" 19 ] 20 }, 21 "documentDescribes": [ 22 "SPDXRef-Package-test-npm-sbom-1.0.0" 23 ], 24 "packages": [ 25 { 26 "name": "test-npm-sbom", 27 "SPDXID": "SPDXRef-Package-test-npm-sbom-1.0.0", 28 "versionInfo": "1.0.0", 29 "packageFileName": "", 30 "primaryPackagePurpose": "LIBRARY", 31 "downloadLocation": "NOASSERTION", 32 "filesAnalyzed": false, 33 "homepage": "NOASSERTION", 34 "licenseDeclared": "NOASSERTION", 35 "externalRefs": [ 36 { 37 "referenceCategory": "PACKAGE-MANAGER", 38 "referenceType": "purl", 39 "referenceLocator": "pkg:npm/test-npm-sbom@1.0.0" 40 } 41 ] 42 }, 43 { 44 "name": "foo", 45 "SPDXID": "SPDXRef-Package-foo-1.0.0", 46 "versionInfo": "1.0.0", 47 "packageFileName": "node_modules/foo", 48 "downloadLocation": "NOASSERTION", 49 "filesAnalyzed": false, 50 "homepage": "NOASSERTION", 51 "licenseDeclared": "NOASSERTION", 52 "externalRefs": [ 53 { 54 "referenceCategory": "PACKAGE-MANAGER", 55 "referenceType": "purl", 56 "referenceLocator": "pkg:npm/foo@1.0.0" 57 } 58 ] 59 }, 60 { 61 "name": "dog", 62 "SPDXID": "SPDXRef-Package-dog-1.0.0", 63 "versionInfo": "1.0.0", 64 "packageFileName": "node_modules/foo/node_modules/dog", 65 "downloadLocation": "NOASSERTION", 66 "filesAnalyzed": false, 67 "homepage": "NOASSERTION", 68 "licenseDeclared": "NOASSERTION", 69 "externalRefs": [ 70 { 71 "referenceCategory": "PACKAGE-MANAGER", 72 "referenceType": "purl", 73 "referenceLocator": "pkg:npm/dog@1.0.0" 74 } 75 ] 76 } 77 ], 78 "relationships": [ 79 { 80 "spdxElementId": "SPDXRef-DOCUMENT", 81 "relatedSpdxElement": "SPDXRef-Package-test-npm-sbom-1.0.0", 82 "relationshipType": "DESCRIBES" 83 }, 84 { 85 "spdxElementId": "SPDXRef-Package-foo-1.0.0", 86 "relatedSpdxElement": "SPDXRef-Package-test-npm-sbom-1.0.0", 87 "relationshipType": "DEPENDENCY_OF" 88 }, 89 { 90 "spdxElementId": "SPDXRef-Package-dog-1.0.0", 91 "relatedSpdxElement": "SPDXRef-Package-foo-1.0.0", 92 "relationshipType": "DEPENDENCY_OF" 93 } 94 ] 95} 96` 97 98exports[`test/lib/commands/sbom.js TAP sbom --omit optional > must match snapshot 1`] = ` 99{ 100 "spdxVersion": "SPDX-2.3", 101 "dataLicense": "CC0-1.0", 102 "SPDXID": "SPDXRef-DOCUMENT", 103 "name": "test-npm-sbom@1.0.0", 104 "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", 105 "creationInfo": { 106 "created": "2020-01-01T00:00:00.000Z", 107 "creators": [ 108 "Tool: npm/cli-10.0.0" 109 ] 110 }, 111 "documentDescribes": [ 112 "SPDXRef-Package-test-npm-sbom-1.0.0" 113 ], 114 "packages": [ 115 { 116 "name": "test-npm-sbom", 117 "SPDXID": "SPDXRef-Package-test-npm-sbom-1.0.0", 118 "versionInfo": "1.0.0", 119 "packageFileName": "", 120 "primaryPackagePurpose": "LIBRARY", 121 "downloadLocation": "NOASSERTION", 122 "filesAnalyzed": false, 123 "homepage": "NOASSERTION", 124 "licenseDeclared": "NOASSERTION", 125 "externalRefs": [ 126 { 127 "referenceCategory": "PACKAGE-MANAGER", 128 "referenceType": "purl", 129 "referenceLocator": "pkg:npm/test-npm-sbom@1.0.0" 130 } 131 ] 132 }, 133 { 134 "name": "chai", 135 "SPDXID": "SPDXRef-Package-chai-1.0.0", 136 "versionInfo": "1.0.0", 137 "packageFileName": "node_modules/chai", 138 "downloadLocation": "NOASSERTION", 139 "filesAnalyzed": false, 140 "homepage": "NOASSERTION", 141 "licenseDeclared": "NOASSERTION", 142 "externalRefs": [ 143 { 144 "referenceCategory": "PACKAGE-MANAGER", 145 "referenceType": "purl", 146 "referenceLocator": "pkg:npm/chai@1.0.0" 147 } 148 ] 149 } 150 ], 151 "relationships": [ 152 { 153 "spdxElementId": "SPDXRef-DOCUMENT", 154 "relatedSpdxElement": "SPDXRef-Package-test-npm-sbom-1.0.0", 155 "relationshipType": "DESCRIBES" 156 }, 157 { 158 "spdxElementId": "SPDXRef-Package-chai-1.0.0", 159 "relatedSpdxElement": "SPDXRef-Package-test-npm-sbom-1.0.0", 160 "relationshipType": "DEPENDENCY_OF" 161 } 162 ] 163} 164` 165 166exports[`test/lib/commands/sbom.js TAP sbom --omit peer > must match snapshot 1`] = ` 167{ 168 "spdxVersion": "SPDX-2.3", 169 "dataLicense": "CC0-1.0", 170 "SPDXID": "SPDXRef-DOCUMENT", 171 "name": "test-npm-sbom@1.0.0", 172 "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", 173 "creationInfo": { 174 "created": "2020-01-01T00:00:00.000Z", 175 "creators": [ 176 "Tool: npm/cli-10.0.0" 177 ] 178 }, 179 "documentDescribes": [ 180 "SPDXRef-Package-test-npm-sbom-1.0.0" 181 ], 182 "packages": [ 183 { 184 "name": "test-npm-sbom", 185 "SPDXID": "SPDXRef-Package-test-npm-sbom-1.0.0", 186 "versionInfo": "1.0.0", 187 "packageFileName": "", 188 "primaryPackagePurpose": "LIBRARY", 189 "downloadLocation": "NOASSERTION", 190 "filesAnalyzed": false, 191 "homepage": "NOASSERTION", 192 "licenseDeclared": "NOASSERTION", 193 "externalRefs": [ 194 { 195 "referenceCategory": "PACKAGE-MANAGER", 196 "referenceType": "purl", 197 "referenceLocator": "pkg:npm/test-npm-sbom@1.0.0" 198 } 199 ] 200 }, 201 { 202 "name": "chai", 203 "SPDXID": "SPDXRef-Package-chai-1.0.0", 204 "versionInfo": "1.0.0", 205 "packageFileName": "node_modules/chai", 206 "downloadLocation": "NOASSERTION", 207 "filesAnalyzed": false, 208 "homepage": "NOASSERTION", 209 "licenseDeclared": "NOASSERTION", 210 "externalRefs": [ 211 { 212 "referenceCategory": "PACKAGE-MANAGER", 213 "referenceType": "purl", 214 "referenceLocator": "pkg:npm/chai@1.0.0" 215 } 216 ] 217 } 218 ], 219 "relationships": [ 220 { 221 "spdxElementId": "SPDXRef-DOCUMENT", 222 "relatedSpdxElement": "SPDXRef-Package-test-npm-sbom-1.0.0", 223 "relationshipType": "DESCRIBES" 224 }, 225 { 226 "spdxElementId": "SPDXRef-Package-chai-1.0.0", 227 "relatedSpdxElement": "SPDXRef-Package-test-npm-sbom-1.0.0", 228 "relationshipType": "DEPENDENCY_OF" 229 } 230 ] 231} 232` 233 234exports[`test/lib/commands/sbom.js TAP sbom basic sbom - cyclonedx > must match snapshot 1`] = ` 235{ 236 "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", 237 "bomFormat": "CycloneDX", 238 "specVersion": "1.5", 239 "serialNumber": "urn:uuid:00000000-0000-0000-0000-000000000000", 240 "version": 1, 241 "metadata": { 242 "timestamp": "2020-01-01T00:00:00.000Z", 243 "lifecycles": [ 244 { 245 "phase": "build" 246 } 247 ], 248 "tools": [ 249 { 250 "vendor": "npm", 251 "name": "cli", 252 "version": "10.0.0" 253 } 254 ], 255 "component": { 256 "bom-ref": "test-npm-sbom@1.0.0", 257 "type": "application", 258 "name": "prefix", 259 "version": "1.0.0", 260 "scope": "required", 261 "purl": "pkg:npm/test-npm-sbom@1.0.0", 262 "properties": [ 263 { 264 "name": "cdx:npm:package:path", 265 "value": "" 266 } 267 ], 268 "externalReferences": [] 269 } 270 }, 271 "components": [ 272 { 273 "bom-ref": "chai@1.0.0", 274 "type": "library", 275 "name": "chai", 276 "version": "1.0.0", 277 "scope": "required", 278 "purl": "pkg:npm/chai@1.0.0", 279 "properties": [ 280 { 281 "name": "cdx:npm:package:path", 282 "value": "node_modules/chai" 283 } 284 ], 285 "externalReferences": [] 286 }, 287 { 288 "bom-ref": "foo@1.0.0", 289 "type": "library", 290 "name": "foo", 291 "version": "1.0.0", 292 "scope": "required", 293 "purl": "pkg:npm/foo@1.0.0", 294 "properties": [ 295 { 296 "name": "cdx:npm:package:path", 297 "value": "node_modules/foo" 298 } 299 ], 300 "externalReferences": [] 301 }, 302 { 303 "bom-ref": "dog@1.0.0", 304 "type": "library", 305 "name": "dog", 306 "version": "1.0.0", 307 "scope": "required", 308 "purl": "pkg:npm/dog@1.0.0", 309 "properties": [ 310 { 311 "name": "cdx:npm:package:path", 312 "value": "node_modules/foo/node_modules/dog" 313 } 314 ], 315 "externalReferences": [] 316 } 317 ], 318 "dependencies": [ 319 { 320 "ref": "test-npm-sbom@1.0.0", 321 "dependsOn": [ 322 "foo@1.0.0", 323 "chai@1.0.0" 324 ] 325 }, 326 { 327 "ref": "chai@1.0.0", 328 "dependsOn": [] 329 }, 330 { 331 "ref": "foo@1.0.0", 332 "dependsOn": [ 333 "dog@1.0.0" 334 ] 335 }, 336 { 337 "ref": "dog@1.0.0", 338 "dependsOn": [] 339 } 340 ] 341} 342` 343 344exports[`test/lib/commands/sbom.js TAP sbom basic sbom - spdx > must match snapshot 1`] = ` 345{ 346 "spdxVersion": "SPDX-2.3", 347 "dataLicense": "CC0-1.0", 348 "SPDXID": "SPDXRef-DOCUMENT", 349 "name": "test-npm-sbom@1.0.0", 350 "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", 351 "creationInfo": { 352 "created": "2020-01-01T00:00:00.000Z", 353 "creators": [ 354 "Tool: npm/cli-10.0.0" 355 ] 356 }, 357 "documentDescribes": [ 358 "SPDXRef-Package-test-npm-sbom-1.0.0" 359 ], 360 "packages": [ 361 { 362 "name": "test-npm-sbom", 363 "SPDXID": "SPDXRef-Package-test-npm-sbom-1.0.0", 364 "versionInfo": "1.0.0", 365 "packageFileName": "", 366 "primaryPackagePurpose": "LIBRARY", 367 "downloadLocation": "NOASSERTION", 368 "filesAnalyzed": false, 369 "homepage": "NOASSERTION", 370 "licenseDeclared": "NOASSERTION", 371 "externalRefs": [ 372 { 373 "referenceCategory": "PACKAGE-MANAGER", 374 "referenceType": "purl", 375 "referenceLocator": "pkg:npm/test-npm-sbom@1.0.0" 376 } 377 ] 378 }, 379 { 380 "name": "chai", 381 "SPDXID": "SPDXRef-Package-chai-1.0.0", 382 "versionInfo": "1.0.0", 383 "packageFileName": "node_modules/chai", 384 "downloadLocation": "NOASSERTION", 385 "filesAnalyzed": false, 386 "homepage": "NOASSERTION", 387 "licenseDeclared": "NOASSERTION", 388 "externalRefs": [ 389 { 390 "referenceCategory": "PACKAGE-MANAGER", 391 "referenceType": "purl", 392 "referenceLocator": "pkg:npm/chai@1.0.0" 393 } 394 ] 395 }, 396 { 397 "name": "foo", 398 "SPDXID": "SPDXRef-Package-foo-1.0.0", 399 "versionInfo": "1.0.0", 400 "packageFileName": "node_modules/foo", 401 "downloadLocation": "NOASSERTION", 402 "filesAnalyzed": false, 403 "homepage": "NOASSERTION", 404 "licenseDeclared": "NOASSERTION", 405 "externalRefs": [ 406 { 407 "referenceCategory": "PACKAGE-MANAGER", 408 "referenceType": "purl", 409 "referenceLocator": "pkg:npm/foo@1.0.0" 410 } 411 ] 412 }, 413 { 414 "name": "dog", 415 "SPDXID": "SPDXRef-Package-dog-1.0.0", 416 "versionInfo": "1.0.0", 417 "packageFileName": "node_modules/foo/node_modules/dog", 418 "downloadLocation": "NOASSERTION", 419 "filesAnalyzed": false, 420 "homepage": "NOASSERTION", 421 "licenseDeclared": "NOASSERTION", 422 "externalRefs": [ 423 { 424 "referenceCategory": "PACKAGE-MANAGER", 425 "referenceType": "purl", 426 "referenceLocator": "pkg:npm/dog@1.0.0" 427 } 428 ] 429 } 430 ], 431 "relationships": [ 432 { 433 "spdxElementId": "SPDXRef-DOCUMENT", 434 "relatedSpdxElement": "SPDXRef-Package-test-npm-sbom-1.0.0", 435 "relationshipType": "DESCRIBES" 436 }, 437 { 438 "spdxElementId": "SPDXRef-Package-foo-1.0.0", 439 "relatedSpdxElement": "SPDXRef-Package-test-npm-sbom-1.0.0", 440 "relationshipType": "DEPENDENCY_OF" 441 }, 442 { 443 "spdxElementId": "SPDXRef-Package-chai-1.0.0", 444 "relatedSpdxElement": "SPDXRef-Package-test-npm-sbom-1.0.0", 445 "relationshipType": "DEPENDENCY_OF" 446 }, 447 { 448 "spdxElementId": "SPDXRef-Package-dog-1.0.0", 449 "relatedSpdxElement": "SPDXRef-Package-foo-1.0.0", 450 "relationshipType": "DEPENDENCY_OF" 451 } 452 ] 453} 454` 455 456exports[`test/lib/commands/sbom.js TAP sbom extraneous dep > must match snapshot 1`] = ` 457{ 458 "spdxVersion": "SPDX-2.3", 459 "dataLicense": "CC0-1.0", 460 "SPDXID": "SPDXRef-DOCUMENT", 461 "name": "test-npm-ls@1.0.0", 462 "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", 463 "creationInfo": { 464 "created": "2020-01-01T00:00:00.000Z", 465 "creators": [ 466 "Tool: npm/cli-10.0.0" 467 ] 468 }, 469 "documentDescribes": [ 470 "SPDXRef-Package-test-npm-ls-1.0.0" 471 ], 472 "packages": [ 473 { 474 "name": "test-npm-ls", 475 "SPDXID": "SPDXRef-Package-test-npm-ls-1.0.0", 476 "versionInfo": "1.0.0", 477 "packageFileName": "", 478 "primaryPackagePurpose": "LIBRARY", 479 "downloadLocation": "NOASSERTION", 480 "filesAnalyzed": false, 481 "homepage": "NOASSERTION", 482 "licenseDeclared": "NOASSERTION", 483 "externalRefs": [ 484 { 485 "referenceCategory": "PACKAGE-MANAGER", 486 "referenceType": "purl", 487 "referenceLocator": "pkg:npm/test-npm-ls@1.0.0" 488 } 489 ] 490 }, 491 { 492 "name": "chai", 493 "SPDXID": "SPDXRef-Package-chai-1.0.0", 494 "versionInfo": "1.0.0", 495 "packageFileName": "node_modules/chai", 496 "downloadLocation": "NOASSERTION", 497 "filesAnalyzed": false, 498 "homepage": "NOASSERTION", 499 "licenseDeclared": "NOASSERTION", 500 "externalRefs": [ 501 { 502 "referenceCategory": "PACKAGE-MANAGER", 503 "referenceType": "purl", 504 "referenceLocator": "pkg:npm/chai@1.0.0" 505 } 506 ] 507 }, 508 { 509 "name": "foo", 510 "SPDXID": "SPDXRef-Package-foo-1.0.0", 511 "versionInfo": "1.0.0", 512 "packageFileName": "node_modules/foo", 513 "downloadLocation": "NOASSERTION", 514 "filesAnalyzed": false, 515 "homepage": "NOASSERTION", 516 "licenseDeclared": "NOASSERTION", 517 "externalRefs": [ 518 { 519 "referenceCategory": "PACKAGE-MANAGER", 520 "referenceType": "purl", 521 "referenceLocator": "pkg:npm/foo@1.0.0" 522 } 523 ] 524 }, 525 { 526 "name": "dog", 527 "SPDXID": "SPDXRef-Package-dog-1.0.0", 528 "versionInfo": "1.0.0", 529 "packageFileName": "node_modules/foo/node_modules/dog", 530 "downloadLocation": "NOASSERTION", 531 "filesAnalyzed": false, 532 "homepage": "NOASSERTION", 533 "licenseDeclared": "NOASSERTION", 534 "externalRefs": [ 535 { 536 "referenceCategory": "PACKAGE-MANAGER", 537 "referenceType": "purl", 538 "referenceLocator": "pkg:npm/dog@1.0.0" 539 } 540 ] 541 } 542 ], 543 "relationships": [ 544 { 545 "spdxElementId": "SPDXRef-DOCUMENT", 546 "relatedSpdxElement": "SPDXRef-Package-test-npm-ls-1.0.0", 547 "relationshipType": "DESCRIBES" 548 }, 549 { 550 "spdxElementId": "SPDXRef-Package-foo-1.0.0", 551 "relatedSpdxElement": "SPDXRef-Package-test-npm-ls-1.0.0", 552 "relationshipType": "DEPENDENCY_OF" 553 }, 554 { 555 "spdxElementId": "SPDXRef-Package-dog-1.0.0", 556 "relatedSpdxElement": "SPDXRef-Package-foo-1.0.0", 557 "relationshipType": "DEPENDENCY_OF" 558 }, 559 { 560 "spdxElementId": "SPDXRef-Package-chai-1.0.0", 561 "relatedSpdxElement": "SPDXRef-Package-test-npm-ls-1.0.0", 562 "relationshipType": "OPTIONAL_DEPENDENCY_OF" 563 } 564 ] 565} 566` 567 568exports[`test/lib/commands/sbom.js TAP sbom loading a tree containing workspaces should filter worksapces with --workspace > must match snapshot 1`] = ` 569{ 570 "spdxVersion": "SPDX-2.3", 571 "dataLicense": "CC0-1.0", 572 "SPDXID": "SPDXRef-DOCUMENT", 573 "name": "workspaces-tree@1.0.0", 574 "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", 575 "creationInfo": { 576 "created": "2020-01-01T00:00:00.000Z", 577 "creators": [ 578 "Tool: npm/cli-10.0.0" 579 ] 580 }, 581 "documentDescribes": [ 582 "SPDXRef-Package-workspaces-tree-1.0.0" 583 ], 584 "packages": [ 585 { 586 "name": "workspaces-tree", 587 "SPDXID": "SPDXRef-Package-workspaces-tree-1.0.0", 588 "versionInfo": "1.0.0", 589 "packageFileName": "", 590 "primaryPackagePurpose": "LIBRARY", 591 "downloadLocation": "NOASSERTION", 592 "filesAnalyzed": false, 593 "homepage": "NOASSERTION", 594 "licenseDeclared": "NOASSERTION", 595 "externalRefs": [ 596 { 597 "referenceCategory": "PACKAGE-MANAGER", 598 "referenceType": "purl", 599 "referenceLocator": "pkg:npm/workspaces-tree@1.0.0" 600 } 601 ] 602 }, 603 { 604 "name": "a", 605 "SPDXID": "SPDXRef-Package-a-1.0.0", 606 "versionInfo": "1.0.0", 607 "packageFileName": "node_modules/a", 608 "downloadLocation": "NOASSERTION", 609 "filesAnalyzed": false, 610 "homepage": "NOASSERTION", 611 "licenseDeclared": "NOASSERTION", 612 "externalRefs": [ 613 { 614 "referenceCategory": "PACKAGE-MANAGER", 615 "referenceType": "purl", 616 "referenceLocator": "pkg:npm/a@1.0.0" 617 } 618 ] 619 }, 620 { 621 "name": "d", 622 "SPDXID": "SPDXRef-Package-d-1.0.0", 623 "versionInfo": "1.0.0", 624 "packageFileName": "node_modules/d", 625 "downloadLocation": "NOASSERTION", 626 "filesAnalyzed": false, 627 "homepage": "NOASSERTION", 628 "licenseDeclared": "NOASSERTION", 629 "externalRefs": [ 630 { 631 "referenceCategory": "PACKAGE-MANAGER", 632 "referenceType": "purl", 633 "referenceLocator": "pkg:npm/d@1.0.0" 634 } 635 ] 636 }, 637 { 638 "name": "bar", 639 "SPDXID": "SPDXRef-Package-bar-1.0.0", 640 "versionInfo": "1.0.0", 641 "packageFileName": "node_modules/bar", 642 "downloadLocation": "NOASSERTION", 643 "filesAnalyzed": false, 644 "homepage": "NOASSERTION", 645 "licenseDeclared": "NOASSERTION", 646 "externalRefs": [ 647 { 648 "referenceCategory": "PACKAGE-MANAGER", 649 "referenceType": "purl", 650 "referenceLocator": "pkg:npm/bar@1.0.0" 651 } 652 ] 653 }, 654 { 655 "name": "baz", 656 "SPDXID": "SPDXRef-Package-baz-1.0.0", 657 "versionInfo": "1.0.0", 658 "packageFileName": "node_modules/baz", 659 "downloadLocation": "NOASSERTION", 660 "filesAnalyzed": false, 661 "homepage": "NOASSERTION", 662 "licenseDeclared": "NOASSERTION", 663 "externalRefs": [ 664 { 665 "referenceCategory": "PACKAGE-MANAGER", 666 "referenceType": "purl", 667 "referenceLocator": "pkg:npm/baz@1.0.0" 668 } 669 ] 670 }, 671 { 672 "name": "c", 673 "SPDXID": "SPDXRef-Package-c-1.0.0", 674 "versionInfo": "1.0.0", 675 "packageFileName": "node_modules/c", 676 "downloadLocation": "NOASSERTION", 677 "filesAnalyzed": false, 678 "homepage": "NOASSERTION", 679 "licenseDeclared": "NOASSERTION", 680 "externalRefs": [ 681 { 682 "referenceCategory": "PACKAGE-MANAGER", 683 "referenceType": "purl", 684 "referenceLocator": "pkg:npm/c@1.0.0" 685 } 686 ] 687 }, 688 { 689 "name": "foo", 690 "SPDXID": "SPDXRef-Package-foo-1.1.1", 691 "versionInfo": "1.1.1", 692 "packageFileName": "node_modules/foo", 693 "downloadLocation": "NOASSERTION", 694 "filesAnalyzed": false, 695 "homepage": "NOASSERTION", 696 "licenseDeclared": "NOASSERTION", 697 "externalRefs": [ 698 { 699 "referenceCategory": "PACKAGE-MANAGER", 700 "referenceType": "purl", 701 "referenceLocator": "pkg:npm/foo@1.1.1" 702 } 703 ] 704 } 705 ], 706 "relationships": [ 707 { 708 "spdxElementId": "SPDXRef-DOCUMENT", 709 "relatedSpdxElement": "SPDXRef-Package-workspaces-tree-1.0.0", 710 "relationshipType": "DESCRIBES" 711 }, 712 { 713 "spdxElementId": "SPDXRef-Package-a-1.0.0", 714 "relatedSpdxElement": "SPDXRef-Package-workspaces-tree-1.0.0", 715 "relationshipType": "DEPENDENCY_OF" 716 }, 717 { 718 "spdxElementId": "SPDXRef-Package-d-1.0.0", 719 "relatedSpdxElement": "SPDXRef-Package-workspaces-tree-1.0.0", 720 "relationshipType": "DEPENDENCY_OF" 721 }, 722 { 723 "spdxElementId": "SPDXRef-Package-c-1.0.0", 724 "relatedSpdxElement": "SPDXRef-Package-a-1.0.0", 725 "relationshipType": "DEPENDENCY_OF" 726 }, 727 { 728 "spdxElementId": "SPDXRef-Package-d-1.0.0", 729 "relatedSpdxElement": "SPDXRef-Package-a-1.0.0", 730 "relationshipType": "DEPENDENCY_OF" 731 }, 732 { 733 "spdxElementId": "SPDXRef-Package-baz-1.0.0", 734 "relatedSpdxElement": "SPDXRef-Package-a-1.0.0", 735 "relationshipType": "DEV_DEPENDENCY_OF" 736 }, 737 { 738 "spdxElementId": "SPDXRef-Package-foo-1.1.1", 739 "relatedSpdxElement": "SPDXRef-Package-d-1.0.0", 740 "relationshipType": "DEPENDENCY_OF" 741 }, 742 { 743 "spdxElementId": "SPDXRef-Package-bar-1.0.0", 744 "relatedSpdxElement": "SPDXRef-Package-foo-1.1.1", 745 "relationshipType": "DEPENDENCY_OF" 746 } 747 ] 748} 749` 750 751exports[`test/lib/commands/sbom.js TAP sbom loading a tree containing workspaces should filter workspaces with multiple --workspace flags > must match snapshot 1`] = ` 752{ 753 "spdxVersion": "SPDX-2.3", 754 "dataLicense": "CC0-1.0", 755 "SPDXID": "SPDXRef-DOCUMENT", 756 "name": "workspaces-tree@1.0.0", 757 "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", 758 "creationInfo": { 759 "created": "2020-01-01T00:00:00.000Z", 760 "creators": [ 761 "Tool: npm/cli-10.0.0" 762 ] 763 }, 764 "documentDescribes": [ 765 "SPDXRef-Package-workspaces-tree-1.0.0" 766 ], 767 "packages": [ 768 { 769 "name": "workspaces-tree", 770 "SPDXID": "SPDXRef-Package-workspaces-tree-1.0.0", 771 "versionInfo": "1.0.0", 772 "packageFileName": "", 773 "primaryPackagePurpose": "LIBRARY", 774 "downloadLocation": "NOASSERTION", 775 "filesAnalyzed": false, 776 "homepage": "NOASSERTION", 777 "licenseDeclared": "NOASSERTION", 778 "externalRefs": [ 779 { 780 "referenceCategory": "PACKAGE-MANAGER", 781 "referenceType": "purl", 782 "referenceLocator": "pkg:npm/workspaces-tree@1.0.0" 783 } 784 ] 785 }, 786 { 787 "name": "e", 788 "SPDXID": "SPDXRef-Package-e-1.0.0", 789 "versionInfo": "1.0.0", 790 "packageFileName": "node_modules/e", 791 "downloadLocation": "NOASSERTION", 792 "filesAnalyzed": false, 793 "homepage": "NOASSERTION", 794 "licenseDeclared": "NOASSERTION", 795 "externalRefs": [ 796 { 797 "referenceCategory": "PACKAGE-MANAGER", 798 "referenceType": "purl", 799 "referenceLocator": "pkg:npm/e@1.0.0" 800 } 801 ] 802 }, 803 { 804 "name": "f", 805 "SPDXID": "SPDXRef-Package-f-1.0.0", 806 "versionInfo": "1.0.0", 807 "packageFileName": "node_modules/f", 808 "downloadLocation": "NOASSERTION", 809 "filesAnalyzed": false, 810 "homepage": "NOASSERTION", 811 "licenseDeclared": "NOASSERTION", 812 "externalRefs": [ 813 { 814 "referenceCategory": "PACKAGE-MANAGER", 815 "referenceType": "purl", 816 "referenceLocator": "pkg:npm/f@1.0.0" 817 } 818 ] 819 } 820 ], 821 "relationships": [ 822 { 823 "spdxElementId": "SPDXRef-DOCUMENT", 824 "relatedSpdxElement": "SPDXRef-Package-workspaces-tree-1.0.0", 825 "relationshipType": "DESCRIBES" 826 }, 827 { 828 "spdxElementId": "SPDXRef-Package-e-1.0.0", 829 "relatedSpdxElement": "SPDXRef-Package-workspaces-tree-1.0.0", 830 "relationshipType": "DEPENDENCY_OF" 831 }, 832 { 833 "spdxElementId": "SPDXRef-Package-f-1.0.0", 834 "relatedSpdxElement": "SPDXRef-Package-workspaces-tree-1.0.0", 835 "relationshipType": "DEPENDENCY_OF" 836 } 837 ] 838} 839` 840 841exports[`test/lib/commands/sbom.js TAP sbom loading a tree containing workspaces should list workspaces properly with default configs > must match snapshot 1`] = ` 842{ 843 "spdxVersion": "SPDX-2.3", 844 "dataLicense": "CC0-1.0", 845 "SPDXID": "SPDXRef-DOCUMENT", 846 "name": "workspaces-tree@1.0.0", 847 "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", 848 "creationInfo": { 849 "created": "2020-01-01T00:00:00.000Z", 850 "creators": [ 851 "Tool: npm/cli-10.0.0" 852 ] 853 }, 854 "documentDescribes": [ 855 "SPDXRef-Package-workspaces-tree-1.0.0" 856 ], 857 "packages": [ 858 { 859 "name": "workspaces-tree", 860 "SPDXID": "SPDXRef-Package-workspaces-tree-1.0.0", 861 "versionInfo": "1.0.0", 862 "packageFileName": "", 863 "primaryPackagePurpose": "LIBRARY", 864 "downloadLocation": "NOASSERTION", 865 "filesAnalyzed": false, 866 "homepage": "NOASSERTION", 867 "licenseDeclared": "NOASSERTION", 868 "externalRefs": [ 869 { 870 "referenceCategory": "PACKAGE-MANAGER", 871 "referenceType": "purl", 872 "referenceLocator": "pkg:npm/workspaces-tree@1.0.0" 873 } 874 ] 875 }, 876 { 877 "name": "a", 878 "SPDXID": "SPDXRef-Package-a-1.0.0", 879 "versionInfo": "1.0.0", 880 "packageFileName": "node_modules/a", 881 "downloadLocation": "NOASSERTION", 882 "filesAnalyzed": false, 883 "homepage": "NOASSERTION", 884 "licenseDeclared": "NOASSERTION", 885 "externalRefs": [ 886 { 887 "referenceCategory": "PACKAGE-MANAGER", 888 "referenceType": "purl", 889 "referenceLocator": "pkg:npm/a@1.0.0" 890 } 891 ] 892 }, 893 { 894 "name": "b", 895 "SPDXID": "SPDXRef-Package-b-1.0.0", 896 "versionInfo": "1.0.0", 897 "packageFileName": "node_modules/b", 898 "downloadLocation": "NOASSERTION", 899 "filesAnalyzed": false, 900 "homepage": "NOASSERTION", 901 "licenseDeclared": "NOASSERTION", 902 "externalRefs": [ 903 { 904 "referenceCategory": "PACKAGE-MANAGER", 905 "referenceType": "purl", 906 "referenceLocator": "pkg:npm/b@1.0.0" 907 } 908 ] 909 }, 910 { 911 "name": "d", 912 "SPDXID": "SPDXRef-Package-d-1.0.0", 913 "versionInfo": "1.0.0", 914 "packageFileName": "node_modules/d", 915 "downloadLocation": "NOASSERTION", 916 "filesAnalyzed": false, 917 "homepage": "NOASSERTION", 918 "licenseDeclared": "NOASSERTION", 919 "externalRefs": [ 920 { 921 "referenceCategory": "PACKAGE-MANAGER", 922 "referenceType": "purl", 923 "referenceLocator": "pkg:npm/d@1.0.0" 924 } 925 ] 926 }, 927 { 928 "name": "e", 929 "SPDXID": "SPDXRef-Package-e-1.0.0", 930 "versionInfo": "1.0.0", 931 "packageFileName": "node_modules/e", 932 "downloadLocation": "NOASSERTION", 933 "filesAnalyzed": false, 934 "homepage": "NOASSERTION", 935 "licenseDeclared": "NOASSERTION", 936 "externalRefs": [ 937 { 938 "referenceCategory": "PACKAGE-MANAGER", 939 "referenceType": "purl", 940 "referenceLocator": "pkg:npm/e@1.0.0" 941 } 942 ] 943 }, 944 { 945 "name": "f", 946 "SPDXID": "SPDXRef-Package-f-1.0.0", 947 "versionInfo": "1.0.0", 948 "packageFileName": "node_modules/f", 949 "downloadLocation": "NOASSERTION", 950 "filesAnalyzed": false, 951 "homepage": "NOASSERTION", 952 "licenseDeclared": "NOASSERTION", 953 "externalRefs": [ 954 { 955 "referenceCategory": "PACKAGE-MANAGER", 956 "referenceType": "purl", 957 "referenceLocator": "pkg:npm/f@1.0.0" 958 } 959 ] 960 }, 961 { 962 "name": "bar", 963 "SPDXID": "SPDXRef-Package-bar-1.0.0", 964 "versionInfo": "1.0.0", 965 "packageFileName": "node_modules/bar", 966 "downloadLocation": "NOASSERTION", 967 "filesAnalyzed": false, 968 "homepage": "NOASSERTION", 969 "licenseDeclared": "NOASSERTION", 970 "externalRefs": [ 971 { 972 "referenceCategory": "PACKAGE-MANAGER", 973 "referenceType": "purl", 974 "referenceLocator": "pkg:npm/bar@1.0.0" 975 } 976 ] 977 }, 978 { 979 "name": "baz", 980 "SPDXID": "SPDXRef-Package-baz-1.0.0", 981 "versionInfo": "1.0.0", 982 "packageFileName": "node_modules/baz", 983 "downloadLocation": "NOASSERTION", 984 "filesAnalyzed": false, 985 "homepage": "NOASSERTION", 986 "licenseDeclared": "NOASSERTION", 987 "externalRefs": [ 988 { 989 "referenceCategory": "PACKAGE-MANAGER", 990 "referenceType": "purl", 991 "referenceLocator": "pkg:npm/baz@1.0.0" 992 } 993 ] 994 }, 995 { 996 "name": "c", 997 "SPDXID": "SPDXRef-Package-c-1.0.0", 998 "versionInfo": "1.0.0", 999 "packageFileName": "node_modules/c", 1000 "downloadLocation": "NOASSERTION", 1001 "filesAnalyzed": false, 1002 "homepage": "NOASSERTION", 1003 "licenseDeclared": "NOASSERTION", 1004 "externalRefs": [ 1005 { 1006 "referenceCategory": "PACKAGE-MANAGER", 1007 "referenceType": "purl", 1008 "referenceLocator": "pkg:npm/c@1.0.0" 1009 } 1010 ] 1011 }, 1012 { 1013 "name": "foo", 1014 "SPDXID": "SPDXRef-Package-foo-1.1.1", 1015 "versionInfo": "1.1.1", 1016 "packageFileName": "node_modules/foo", 1017 "downloadLocation": "NOASSERTION", 1018 "filesAnalyzed": false, 1019 "homepage": "NOASSERTION", 1020 "licenseDeclared": "NOASSERTION", 1021 "externalRefs": [ 1022 { 1023 "referenceCategory": "PACKAGE-MANAGER", 1024 "referenceType": "purl", 1025 "referenceLocator": "pkg:npm/foo@1.1.1" 1026 } 1027 ] 1028 }, 1029 { 1030 "name": "pacote", 1031 "SPDXID": "SPDXRef-Package-pacote-1.0.0", 1032 "versionInfo": "1.0.0", 1033 "packageFileName": "node_modules/pacote", 1034 "downloadLocation": "NOASSERTION", 1035 "filesAnalyzed": false, 1036 "homepage": "NOASSERTION", 1037 "licenseDeclared": "NOASSERTION", 1038 "externalRefs": [ 1039 { 1040 "referenceCategory": "PACKAGE-MANAGER", 1041 "referenceType": "purl", 1042 "referenceLocator": "pkg:npm/pacote@1.0.0" 1043 } 1044 ] 1045 } 1046 ], 1047 "relationships": [ 1048 { 1049 "spdxElementId": "SPDXRef-DOCUMENT", 1050 "relatedSpdxElement": "SPDXRef-Package-workspaces-tree-1.0.0", 1051 "relationshipType": "DESCRIBES" 1052 }, 1053 { 1054 "spdxElementId": "SPDXRef-Package-a-1.0.0", 1055 "relatedSpdxElement": "SPDXRef-Package-workspaces-tree-1.0.0", 1056 "relationshipType": "DEPENDENCY_OF" 1057 }, 1058 { 1059 "spdxElementId": "SPDXRef-Package-b-1.0.0", 1060 "relatedSpdxElement": "SPDXRef-Package-workspaces-tree-1.0.0", 1061 "relationshipType": "DEPENDENCY_OF" 1062 }, 1063 { 1064 "spdxElementId": "SPDXRef-Package-d-1.0.0", 1065 "relatedSpdxElement": "SPDXRef-Package-workspaces-tree-1.0.0", 1066 "relationshipType": "DEPENDENCY_OF" 1067 }, 1068 { 1069 "spdxElementId": "SPDXRef-Package-e-1.0.0", 1070 "relatedSpdxElement": "SPDXRef-Package-workspaces-tree-1.0.0", 1071 "relationshipType": "DEPENDENCY_OF" 1072 }, 1073 { 1074 "spdxElementId": "SPDXRef-Package-f-1.0.0", 1075 "relatedSpdxElement": "SPDXRef-Package-workspaces-tree-1.0.0", 1076 "relationshipType": "DEPENDENCY_OF" 1077 }, 1078 { 1079 "spdxElementId": "SPDXRef-Package-pacote-1.0.0", 1080 "relatedSpdxElement": "SPDXRef-Package-workspaces-tree-1.0.0", 1081 "relationshipType": "DEPENDENCY_OF" 1082 }, 1083 { 1084 "spdxElementId": "SPDXRef-Package-c-1.0.0", 1085 "relatedSpdxElement": "SPDXRef-Package-a-1.0.0", 1086 "relationshipType": "DEPENDENCY_OF" 1087 }, 1088 { 1089 "spdxElementId": "SPDXRef-Package-d-1.0.0", 1090 "relatedSpdxElement": "SPDXRef-Package-a-1.0.0", 1091 "relationshipType": "DEPENDENCY_OF" 1092 }, 1093 { 1094 "spdxElementId": "SPDXRef-Package-baz-1.0.0", 1095 "relatedSpdxElement": "SPDXRef-Package-a-1.0.0", 1096 "relationshipType": "DEV_DEPENDENCY_OF" 1097 }, 1098 { 1099 "spdxElementId": "SPDXRef-Package-foo-1.1.1", 1100 "relatedSpdxElement": "SPDXRef-Package-d-1.0.0", 1101 "relationshipType": "DEPENDENCY_OF" 1102 }, 1103 { 1104 "spdxElementId": "SPDXRef-Package-bar-1.0.0", 1105 "relatedSpdxElement": "SPDXRef-Package-foo-1.1.1", 1106 "relationshipType": "DEPENDENCY_OF" 1107 } 1108 ] 1109} 1110` 1111 1112exports[`test/lib/commands/sbom.js TAP sbom loading a tree containing workspaces should not list workspaces with --no-workspaces > must match snapshot 1`] = ` 1113{ 1114 "spdxVersion": "SPDX-2.3", 1115 "dataLicense": "CC0-1.0", 1116 "SPDXID": "SPDXRef-DOCUMENT", 1117 "name": "workspaces-tree@1.0.0", 1118 "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", 1119 "creationInfo": { 1120 "created": "2020-01-01T00:00:00.000Z", 1121 "creators": [ 1122 "Tool: npm/cli-10.0.0" 1123 ] 1124 }, 1125 "documentDescribes": [ 1126 "SPDXRef-Package-workspaces-tree-1.0.0" 1127 ], 1128 "packages": [ 1129 { 1130 "name": "workspaces-tree", 1131 "SPDXID": "SPDXRef-Package-workspaces-tree-1.0.0", 1132 "versionInfo": "1.0.0", 1133 "packageFileName": "", 1134 "primaryPackagePurpose": "LIBRARY", 1135 "downloadLocation": "NOASSERTION", 1136 "filesAnalyzed": false, 1137 "homepage": "NOASSERTION", 1138 "licenseDeclared": "NOASSERTION", 1139 "externalRefs": [ 1140 { 1141 "referenceCategory": "PACKAGE-MANAGER", 1142 "referenceType": "purl", 1143 "referenceLocator": "pkg:npm/workspaces-tree@1.0.0" 1144 } 1145 ] 1146 }, 1147 { 1148 "name": "pacote", 1149 "SPDXID": "SPDXRef-Package-pacote-1.0.0", 1150 "versionInfo": "1.0.0", 1151 "packageFileName": "node_modules/pacote", 1152 "downloadLocation": "NOASSERTION", 1153 "filesAnalyzed": false, 1154 "homepage": "NOASSERTION", 1155 "licenseDeclared": "NOASSERTION", 1156 "externalRefs": [ 1157 { 1158 "referenceCategory": "PACKAGE-MANAGER", 1159 "referenceType": "purl", 1160 "referenceLocator": "pkg:npm/pacote@1.0.0" 1161 } 1162 ] 1163 } 1164 ], 1165 "relationships": [ 1166 { 1167 "spdxElementId": "SPDXRef-DOCUMENT", 1168 "relatedSpdxElement": "SPDXRef-Package-workspaces-tree-1.0.0", 1169 "relationshipType": "DESCRIBES" 1170 }, 1171 { 1172 "spdxElementId": "SPDXRef-Package-pacote-1.0.0", 1173 "relatedSpdxElement": "SPDXRef-Package-workspaces-tree-1.0.0", 1174 "relationshipType": "DEPENDENCY_OF" 1175 } 1176 ] 1177} 1178` 1179 1180exports[`test/lib/commands/sbom.js TAP sbom lock file only - missing lock file > must match snapshot 1`] = ` 1181 1182` 1183 1184exports[`test/lib/commands/sbom.js TAP sbom lock file only > must match snapshot 1`] = ` 1185{ 1186 "spdxVersion": "SPDX-2.3", 1187 "dataLicense": "CC0-1.0", 1188 "SPDXID": "SPDXRef-DOCUMENT", 1189 "name": "test-npm-ls@1.0.0", 1190 "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", 1191 "creationInfo": { 1192 "created": "2020-01-01T00:00:00.000Z", 1193 "creators": [ 1194 "Tool: npm/cli-10.0.0" 1195 ] 1196 }, 1197 "documentDescribes": [ 1198 "SPDXRef-Package-test-npm-ls-1.0.0" 1199 ], 1200 "packages": [ 1201 { 1202 "name": "test-npm-ls", 1203 "SPDXID": "SPDXRef-Package-test-npm-ls-1.0.0", 1204 "versionInfo": "1.0.0", 1205 "packageFileName": "", 1206 "primaryPackagePurpose": "LIBRARY", 1207 "downloadLocation": "NOASSERTION", 1208 "filesAnalyzed": false, 1209 "homepage": "NOASSERTION", 1210 "licenseDeclared": "NOASSERTION", 1211 "externalRefs": [ 1212 { 1213 "referenceCategory": "PACKAGE-MANAGER", 1214 "referenceType": "purl", 1215 "referenceLocator": "pkg:npm/test-npm-ls@1.0.0" 1216 } 1217 ] 1218 }, 1219 { 1220 "name": "chai", 1221 "SPDXID": "SPDXRef-Package-chai-1.0.0", 1222 "versionInfo": "1.0.0", 1223 "packageFileName": "node_modules/chai", 1224 "downloadLocation": "NOASSERTION", 1225 "filesAnalyzed": false, 1226 "homepage": "NOASSERTION", 1227 "licenseDeclared": "NOASSERTION", 1228 "externalRefs": [ 1229 { 1230 "referenceCategory": "PACKAGE-MANAGER", 1231 "referenceType": "purl", 1232 "referenceLocator": "pkg:npm/chai@1.0.0" 1233 } 1234 ] 1235 }, 1236 { 1237 "name": "dog", 1238 "SPDXID": "SPDXRef-Package-dog-1.0.0", 1239 "versionInfo": "1.0.0", 1240 "packageFileName": "node_modules/dog", 1241 "downloadLocation": "NOASSERTION", 1242 "filesAnalyzed": false, 1243 "homepage": "NOASSERTION", 1244 "licenseDeclared": "NOASSERTION", 1245 "externalRefs": [ 1246 { 1247 "referenceCategory": "PACKAGE-MANAGER", 1248 "referenceType": "purl", 1249 "referenceLocator": "pkg:npm/dog@1.0.0" 1250 } 1251 ] 1252 }, 1253 { 1254 "name": "foo", 1255 "SPDXID": "SPDXRef-Package-foo-1.0.0", 1256 "versionInfo": "1.0.0", 1257 "packageFileName": "node_modules/foo", 1258 "downloadLocation": "NOASSERTION", 1259 "filesAnalyzed": false, 1260 "homepage": "NOASSERTION", 1261 "licenseDeclared": "NOASSERTION", 1262 "externalRefs": [ 1263 { 1264 "referenceCategory": "PACKAGE-MANAGER", 1265 "referenceType": "purl", 1266 "referenceLocator": "pkg:npm/foo@1.0.0" 1267 } 1268 ] 1269 } 1270 ], 1271 "relationships": [ 1272 { 1273 "spdxElementId": "SPDXRef-DOCUMENT", 1274 "relatedSpdxElement": "SPDXRef-Package-test-npm-ls-1.0.0", 1275 "relationshipType": "DESCRIBES" 1276 }, 1277 { 1278 "spdxElementId": "SPDXRef-Package-foo-1.0.0", 1279 "relatedSpdxElement": "SPDXRef-Package-test-npm-ls-1.0.0", 1280 "relationshipType": "DEPENDENCY_OF" 1281 }, 1282 { 1283 "spdxElementId": "SPDXRef-Package-chai-1.0.0", 1284 "relatedSpdxElement": "SPDXRef-Package-test-npm-ls-1.0.0", 1285 "relationshipType": "DEPENDENCY_OF" 1286 }, 1287 { 1288 "spdxElementId": "SPDXRef-Package-dog-1.0.0", 1289 "relatedSpdxElement": "SPDXRef-Package-foo-1.0.0", 1290 "relationshipType": "DEPENDENCY_OF" 1291 } 1292 ] 1293} 1294` 1295 1296exports[`test/lib/commands/sbom.js TAP sbom missing (optional) dep > must match snapshot 1`] = ` 1297{ 1298 "spdxVersion": "SPDX-2.3", 1299 "dataLicense": "CC0-1.0", 1300 "SPDXID": "SPDXRef-DOCUMENT", 1301 "name": "test-npm-ls@1.0.0", 1302 "documentNamespace": "http://spdx.org/spdxdocs/test-npm-sbom-1.0.0-00000000-0000-0000-0000-000000000000", 1303 "creationInfo": { 1304 "created": "2020-01-01T00:00:00.000Z", 1305 "creators": [ 1306 "Tool: npm/cli-10.0.0" 1307 ] 1308 }, 1309 "documentDescribes": [ 1310 "SPDXRef-Package-test-npm-ls-1.0.0" 1311 ], 1312 "packages": [ 1313 { 1314 "name": "test-npm-ls", 1315 "SPDXID": "SPDXRef-Package-test-npm-ls-1.0.0", 1316 "versionInfo": "1.0.0", 1317 "packageFileName": "", 1318 "primaryPackagePurpose": "LIBRARY", 1319 "downloadLocation": "NOASSERTION", 1320 "filesAnalyzed": false, 1321 "homepage": "NOASSERTION", 1322 "licenseDeclared": "NOASSERTION", 1323 "externalRefs": [ 1324 { 1325 "referenceCategory": "PACKAGE-MANAGER", 1326 "referenceType": "purl", 1327 "referenceLocator": "pkg:npm/test-npm-ls@1.0.0" 1328 } 1329 ] 1330 }, 1331 { 1332 "name": "chai", 1333 "SPDXID": "SPDXRef-Package-chai-1.0.0", 1334 "versionInfo": "1.0.0", 1335 "packageFileName": "node_modules/chai", 1336 "downloadLocation": "NOASSERTION", 1337 "filesAnalyzed": false, 1338 "homepage": "NOASSERTION", 1339 "licenseDeclared": "NOASSERTION", 1340 "externalRefs": [ 1341 { 1342 "referenceCategory": "PACKAGE-MANAGER", 1343 "referenceType": "purl", 1344 "referenceLocator": "pkg:npm/chai@1.0.0" 1345 } 1346 ] 1347 }, 1348 { 1349 "name": "foo", 1350 "SPDXID": "SPDXRef-Package-foo-1.0.0", 1351 "versionInfo": "1.0.0", 1352 "packageFileName": "node_modules/foo", 1353 "downloadLocation": "NOASSERTION", 1354 "filesAnalyzed": false, 1355 "homepage": "NOASSERTION", 1356 "licenseDeclared": "NOASSERTION", 1357 "externalRefs": [ 1358 { 1359 "referenceCategory": "PACKAGE-MANAGER", 1360 "referenceType": "purl", 1361 "referenceLocator": "pkg:npm/foo@1.0.0" 1362 } 1363 ] 1364 }, 1365 { 1366 "name": "dog", 1367 "SPDXID": "SPDXRef-Package-dog-1.0.0", 1368 "versionInfo": "1.0.0", 1369 "packageFileName": "node_modules/foo/node_modules/dog", 1370 "downloadLocation": "NOASSERTION", 1371 "filesAnalyzed": false, 1372 "homepage": "NOASSERTION", 1373 "licenseDeclared": "NOASSERTION", 1374 "externalRefs": [ 1375 { 1376 "referenceCategory": "PACKAGE-MANAGER", 1377 "referenceType": "purl", 1378 "referenceLocator": "pkg:npm/dog@1.0.0" 1379 } 1380 ] 1381 } 1382 ], 1383 "relationships": [ 1384 { 1385 "spdxElementId": "SPDXRef-DOCUMENT", 1386 "relatedSpdxElement": "SPDXRef-Package-test-npm-ls-1.0.0", 1387 "relationshipType": "DESCRIBES" 1388 }, 1389 { 1390 "spdxElementId": "SPDXRef-Package-foo-1.0.0", 1391 "relatedSpdxElement": "SPDXRef-Package-test-npm-ls-1.0.0", 1392 "relationshipType": "DEPENDENCY_OF" 1393 }, 1394 { 1395 "spdxElementId": "SPDXRef-Package-chai-1.0.0", 1396 "relatedSpdxElement": "SPDXRef-Package-test-npm-ls-1.0.0", 1397 "relationshipType": "DEPENDENCY_OF" 1398 }, 1399 { 1400 "spdxElementId": "SPDXRef-Package-dog-1.0.0", 1401 "relatedSpdxElement": "SPDXRef-Package-foo-1.0.0", 1402 "relationshipType": "DEPENDENCY_OF" 1403 } 1404 ] 1405} 1406` 1407 1408exports[`test/lib/commands/sbom.js TAP sbom missing format > must match snapshot 1`] = ` 1409 1410` 1411