{"spdxVersion":"SPDX-2.3","dataLicense":"CC0-1.0","SPDXID":"SPDXRef-DOCUMENT","name":"com.github.clientIO/joint-plus-tutorial-angular","documentNamespace":"https://spdx.org/spdxdocs/protobom/fd273c23-691e-4fa6-ba4e-2c6de61fb206","creationInfo":{"creators":["Tool: protobom-v0.0.0-20260130170711-0b8e67cacb3b+dirty","Tool: GitHub.com-Dependency-Graph"],"created":"2026-02-06T12:15:50Z"},"packages":[{"name":"@angular/animations","SPDXID":"SPDXRef-npm-angular-animations-16.2.6-161454","versionInfo":"^16.2.6","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40angular/animations@%5E16.2.6"}]},{"name":"@angular/compiler-cli","SPDXID":"SPDXRef-npm-angular-compiler-cli-16.0.0-e51a88","versionInfo":"^16.0.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40angular/compiler-cli@%5E16.0.0"}]},{"name":"@types/jasmine","SPDXID":"SPDXRef-npm-types-jasmine-3.8.0-ca68cf","versionInfo":"~3.8.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40types/jasmine@~3.8.0"}]},{"name":"karma","SPDXID":"SPDXRef-npm-karma-6.3.0-cda3fa","versionInfo":"~6.3.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/karma@~6.3.0"}]},{"name":"rxjs","SPDXID":"SPDXRef-npm-rxjs-7.8.1-555ca1","versionInfo":"^7.8.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/rxjs@%5E7.8.1"}]},{"name":"jasmine-core","SPDXID":"SPDXRef-npm-jasmine-core-3.8.0-3dcb2c","versionInfo":"~3.8.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/jasmine-core@~3.8.0"}]},{"name":"karma-coverage","SPDXID":"SPDXRef-npm-karma-coverage-2.0.3-6f18c0","versionInfo":"~2.0.3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/karma-coverage@~2.0.3"}]},{"name":"@angular/platform-browser","SPDXID":"SPDXRef-npm-angular-platform-browser-16.2.6-65c939","versionInfo":"^16.2.6","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40angular/platform-browser@%5E16.2.6"}]},{"name":"@angular/compiler","SPDXID":"SPDXRef-npm-angular-compiler-16.2.6-0ef4a9","versionInfo":"^16.2.6","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40angular/compiler@%5E16.2.6"}]},{"name":"zone.js","SPDXID":"SPDXRef-npm-zone.js-0.13.0-69a416","versionInfo":"~0.13.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/zone.js@~0.13.0"}]},{"name":"typescript","SPDXID":"SPDXRef-npm-typescript-5.1.0-e35157","versionInfo":"^5.1.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/typescript@%5E5.1.0"}]},{"name":"@angular/platform-browser-dynamic","SPDXID":"SPDXRef-npm-angular-platform-browser-dynamic-16.2.6-89056c","versionInfo":"^16.2.6","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40angular/platform-browser-dynamic@%5E16.2.6"}]},{"name":"@angular/forms","SPDXID":"SPDXRef-npm-angular-forms-16.2.6-4cb07c","versionInfo":"^16.2.6","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40angular/forms@%5E16.2.6"}]},{"name":"@angular/common","SPDXID":"SPDXRef-npm-angular-common-16.2.6-0f2200","versionInfo":"^16.2.6","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40angular/common@%5E16.2.6"}]},{"name":"karma-jasmine-html-reporter","SPDXID":"SPDXRef-npm-karma-jasmine-html-reporter-1.5.0-1b3f28","versionInfo":"^1.5.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/karma-jasmine-html-reporter@%5E1.5.0"}]},{"name":"@angular/router","SPDXID":"SPDXRef-npm-angular-router-16.2.6-e60e10","versionInfo":"^16.2.6","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40angular/router@%5E16.2.6"}]},{"name":"@angular/core","SPDXID":"SPDXRef-npm-angular-core-16.2.6-f2caee","versionInfo":"^16.2.6","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40angular/core@%5E16.2.6"}]},{"name":"karma-chrome-launcher","SPDXID":"SPDXRef-npm-karma-chrome-launcher-3.1.0-ae62a6","versionInfo":"~3.1.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/karma-chrome-launcher@~3.1.0"}]},{"name":"karma-jasmine","SPDXID":"SPDXRef-npm-karma-jasmine-4.0.0-82049a","versionInfo":"~4.0.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/karma-jasmine@~4.0.0"}]},{"name":"tslib","SPDXID":"SPDXRef-npm-tslib-2.6.2-8f9e61","versionInfo":"^2.6.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/tslib@%5E2.6.2"}]},{"name":"@angular/cli","SPDXID":"SPDXRef-npm-angular-cli-16.2.3-8c222c","versionInfo":"^16.2.3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40angular/cli@%5E16.2.3"}]},{"name":"@types/node","SPDXID":"SPDXRef-npm-types-node-12.11.1-cb41e6","versionInfo":"^12.11.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40types/node@%5E12.11.1"}]},{"name":"@angular-devkit/build-angular","SPDXID":"SPDXRef-npm-angular-devkit-build-angular-16.2.3-3b1e41","versionInfo":"^16.2.3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40angular-devkit/build-angular@%5E16.2.3"}]},{"name":"com.github.clientIO/joint-plus-tutorial-angular","SPDXID":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","versionInfo":"main","downloadLocation":"git+https://github.com/clientIO/joint-plus-tutorial-angular","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:github/clientIO/joint-plus-tutorial-angular@main"}]}],"relationships":[{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-angular-animations-16.2.6-161454","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-angular-compiler-cli-16.0.0-e51a88","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-types-jasmine-3.8.0-ca68cf","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-karma-6.3.0-cda3fa","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-rxjs-7.8.1-555ca1","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-jasmine-core-3.8.0-3dcb2c","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-karma-coverage-2.0.3-6f18c0","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-angular-platform-browser-16.2.6-65c939","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-angular-compiler-16.2.6-0ef4a9","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-zone.js-0.13.0-69a416","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-typescript-5.1.0-e35157","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-angular-platform-browser-dynamic-16.2.6-89056c","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-angular-forms-16.2.6-4cb07c","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-angular-common-16.2.6-0f2200","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-karma-jasmine-html-reporter-1.5.0-1b3f28","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-angular-router-16.2.6-e60e10","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-angular-core-16.2.6-f2caee","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-karma-chrome-launcher-3.1.0-ae62a6","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-karma-jasmine-4.0.0-82049a","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-tslib-2.6.2-8f9e61","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-angular-cli-16.2.3-8c222c","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-types-node-12.11.1-cb41e6","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relatedSpdxElement":"SPDXRef-npm-angular-devkit-build-angular-16.2.3-3b1e41","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-DOCUMENT","relatedSpdxElement":"SPDXRef-github-clientIO-joint-plus-tutorial-angular-main-5e79f8","relationshipType":"DESCRIBES"}]}