{"spdxVersion":"SPDX-2.3","dataLicense":"CC0-1.0","SPDXID":"SPDXRef-DOCUMENT","name":"com.github.dan2dev/nullstack","documentNamespace":"https://spdx.org/spdxdocs/protobom/48f6ffcd-f001-4d02-9c4f-1b8ec751c10d","creationInfo":{"creators":["Tool: protobom-v0.0.0-20260402204407-e7dc5dd3ef04+dirty","Tool: GitHub.com-Dependency-Graph"],"created":"2026-04-02T23:38:38Z"},"packages":[{"name":"puppeteer","SPDXID":"SPDXRef-npm-puppeteer-5.5.0-00ba24","versionInfo":"^5.5.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/puppeteer@%5E5.5.0"}]},{"name":"jest","SPDXID":"SPDXRef-npm-jest-26.6.3-bc88e1","versionInfo":"^26.6.3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/jest@%5E26.6.3"}]},{"name":"nullstack","SPDXID":"SPDXRef-npm-nullstack--528e73","versionInfo":"*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/nullstack@%2A"}]},{"name":"babel-plugin-transform-decorators-legacy","SPDXID":"SPDXRef-npm-babel-plugin-transform-decorators-legacy-1.3.5-cca088","versionInfo":"^1.3.5","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/babel-plugin-transform-decorators-legacy@%5E1.3.5"}]},{"name":"css-loader","SPDXID":"SPDXRef-npm-css-loader-3.4.2-2ae931","versionInfo":"^3.4.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/css-loader@%5E3.4.2"}]},{"name":"@babel/plugin-transform-react-jsx","SPDXID":"SPDXRef-npm-babel-plugin-transform-react-jsx-7.8.3-8533dd","versionInfo":"^7.8.3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40babel/plugin-transform-react-jsx@%5E7.8.3"}]},{"name":"express","SPDXID":"SPDXRef-npm-express-4.17.1-6f0162","versionInfo":"^4.17.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/express@%5E4.17.1"}]},{"name":"ignore-loader","SPDXID":"SPDXRef-npm-ignore-loader-0.1.2-6f0941","versionInfo":"^0.1.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/ignore-loader@%5E0.1.2"}]},{"name":"@babel/plugin-proposal-export-default-from","SPDXID":"SPDXRef-npm-babel-plugin-proposal-export-default-from-7.2.0-720c59","versionInfo":"^7.2.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40babel/plugin-proposal-export-default-from@%5E7.2.0"}]},{"name":"nodemon-webpack-plugin","SPDXID":"SPDXRef-npm-nodemon-webpack-plugin-4.3.1-76507a","versionInfo":"^4.3.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/nodemon-webpack-plugin@%5E4.3.1"}]},{"name":"terser-webpack-plugin","SPDXID":"SPDXRef-npm-terser-webpack-plugin-2.3.5-031482","versionInfo":"^2.3.5","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/terser-webpack-plugin@%5E2.3.5"}]},{"name":"raw-loader","SPDXID":"SPDXRef-npm-raw-loader-4.0.2-b9095a","versionInfo":"^4.0.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/raw-loader@%5E4.0.2"}]},{"name":"@babel/plugin-proposal-class-properties","SPDXID":"SPDXRef-npm-babel-plugin-proposal-class-properties-7.2.3-9960d7","versionInfo":"^7.2.3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40babel/plugin-proposal-class-properties@%5E7.2.3"}]},{"name":"@babel/plugin-proposal-decorators","SPDXID":"SPDXRef-npm-babel-plugin-proposal-decorators-7.2.3-aec6c9","versionInfo":"^7.2.3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40babel/plugin-proposal-decorators@%5E7.2.3"}]},{"name":"node-fetch","SPDXID":"SPDXRef-npm-node-fetch-2.6.0-5ac2bd","versionInfo":"^2.6.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/node-fetch@%5E2.6.0"}]},{"name":"string-replace-loader","SPDXID":"SPDXRef-npm-string-replace-loader-2.2.0-07c6b8","versionInfo":"^2.2.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/string-replace-loader@%5E2.2.0"}]},{"name":"@babel/cli","SPDXID":"SPDXRef-npm-babel-cli-7.0.0-9e2f3e","versionInfo":"^7.0.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40babel/cli@%5E7.0.0"}]},{"name":"babel-loader","SPDXID":"SPDXRef-npm-babel-loader-8.0.5-3aca52","versionInfo":"^8.0.5","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/babel-loader@%5E8.0.5"}]},{"name":"cors","SPDXID":"SPDXRef-npm-cors-2.8.5-57a292","versionInfo":"^2.8.5","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/cors@%5E2.8.5"}]},{"name":"webpack","SPDXID":"SPDXRef-npm-webpack-4.42.1-cb0d6d","versionInfo":"^4.42.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/webpack@%5E4.42.1"}]},{"name":"@babel/core","SPDXID":"SPDXRef-npm-babel-core-7.2.2-8c9534","versionInfo":"^7.2.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40babel/core@%5E7.2.2"}]},{"name":"body-parser","SPDXID":"SPDXRef-npm-body-parser-1.19.0-3e114f","versionInfo":"^1.19.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/body-parser@%5E1.19.0"}]},{"name":"purgecss-webpack-plugin","SPDXID":"SPDXRef-npm-purgecss-webpack-plugin-2.2.0-a5f846","versionInfo":"^2.2.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/purgecss-webpack-plugin@%5E2.2.0"}]},{"name":"sass-loader","SPDXID":"SPDXRef-npm-sass-loader-8.0.2-cc2f49","versionInfo":"^8.0.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/sass-loader@%5E8.0.2"}]},{"name":"@babel/preset-env","SPDXID":"SPDXRef-npm-babel-preset-env-7.2.3-72a282","versionInfo":"^7.2.3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40babel/preset-env@%5E7.2.3"}]},{"name":"@babel/node","SPDXID":"SPDXRef-npm-babel-node-7.2.2-a111b9","versionInfo":"^7.2.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40babel/node@%5E7.2.2"}]},{"name":"mini-css-extract-plugin","SPDXID":"SPDXRef-npm-mini-css-extract-plugin-0.9.0-bf4b2c","versionInfo":"^0.9.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/mini-css-extract-plugin@%5E0.9.0"}]},{"name":"node-sass","SPDXID":"SPDXRef-npm-node-sass-4.13.1-46e834","versionInfo":"^4.13.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/node-sass@%5E4.13.1"}]},{"name":"webpack-cli","SPDXID":"SPDXRef-npm-webpack-cli-3.3.11-e80f2a","versionInfo":"^3.3.11","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/webpack-cli@%5E3.3.11"}]},{"name":"webpack-livereload-plugin","SPDXID":"SPDXRef-npm-webpack-livereload-plugin-2.3.0-1d1031","versionInfo":"^2.3.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/webpack-livereload-plugin@%5E2.3.0"}]},{"name":"@babel/preset-react","SPDXID":"SPDXRef-npm-babel-preset-react-7.0.0-a8d4b0","versionInfo":"^7.0.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40babel/preset-react@%5E7.0.0"}]},{"name":"com.github.dan2dev/nullstack","SPDXID":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","versionInfo":"master","downloadLocation":"git+https://github.com/dan2dev/nullstack","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:github/dan2dev/nullstack@master"}]}],"relationships":[{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-puppeteer-5.5.0-00ba24","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-jest-26.6.3-bc88e1","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-nullstack--528e73","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-babel-plugin-transform-decorators-legacy-1.3.5-cca088","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-css-loader-3.4.2-2ae931","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-babel-plugin-transform-react-jsx-7.8.3-8533dd","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-express-4.17.1-6f0162","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-ignore-loader-0.1.2-6f0941","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-babel-plugin-proposal-export-default-from-7.2.0-720c59","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-nodemon-webpack-plugin-4.3.1-76507a","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-terser-webpack-plugin-2.3.5-031482","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-raw-loader-4.0.2-b9095a","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-babel-plugin-proposal-class-properties-7.2.3-9960d7","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-babel-plugin-proposal-decorators-7.2.3-aec6c9","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-node-fetch-2.6.0-5ac2bd","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-string-replace-loader-2.2.0-07c6b8","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-babel-cli-7.0.0-9e2f3e","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-babel-loader-8.0.5-3aca52","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-cors-2.8.5-57a292","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-webpack-4.42.1-cb0d6d","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-babel-core-7.2.2-8c9534","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-body-parser-1.19.0-3e114f","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-purgecss-webpack-plugin-2.2.0-a5f846","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-sass-loader-8.0.2-cc2f49","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-babel-preset-env-7.2.3-72a282","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-babel-node-7.2.2-a111b9","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-mini-css-extract-plugin-0.9.0-bf4b2c","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-node-sass-4.13.1-46e834","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-webpack-cli-3.3.11-e80f2a","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-webpack-livereload-plugin-2.3.0-1d1031","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relatedSpdxElement":"SPDXRef-npm-babel-preset-react-7.0.0-a8d4b0","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-DOCUMENT","relatedSpdxElement":"SPDXRef-github-dan2dev-nullstack-master-1df6a4","relationshipType":"DESCRIBES"}]}