{"spdxVersion":"SPDX-2.3","dataLicense":"CC0-1.0","SPDXID":"SPDXRef-DOCUMENT","name":"com.github.javascript-tutorial/server","documentNamespace":"https://spdx.org/spdxdocs/protobom/41578d73-65b5-4921-89ff-03772e87c302","creationInfo":{"creators":["Tool: protobom-v0.0.0-20251216165153-1f3f3060931e+dirty","Tool: GitHub.com-Dependency-Graph"],"created":"2025-12-22T18:04:12Z"},"packages":[{"name":"markdown-it-container","SPDXID":"SPDXRef-npm-markdown-it-container--ded27b","versionInfo":"*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/markdown-it-container@%2A"}]},{"name":"node-uuid","SPDXID":"SPDXRef-npm-node-uuid--3febd4","versionInfo":"*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/node-uuid@%2A"}]},{"name":"nib","SPDXID":"SPDXRef-npm-nib--e61361","versionInfo":"*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/nib@%2A"}]},{"name":"prismjs","SPDXID":"SPDXRef-npm-prismjs-1-ed3caf","versionInfo":"^1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/prismjs@%5E1"}]},{"name":"pug","SPDXID":"SPDXRef-npm-pug-2.0.3-a1143e","versionInfo":"^2.0.3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/pug@%5E2.0.3"}]},{"name":"terser-webpack-plugin","SPDXID":"SPDXRef-npm-terser-webpack-plugin-5.3.10-3d7be8","versionInfo":"^5.3.10","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/terser-webpack-plugin@%5E5.3.10"}]},{"name":"clarify","SPDXID":"SPDXRef-npm-clarify-2.1.0-8cf00c","versionInfo":"^2.1.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/clarify@%5E2.1.0"}]},{"name":"webpack","SPDXID":"SPDXRef-npm-webpack-5.96.1-9c3229","versionInfo":"^5.96.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/webpack@%5E5.96.1"}]},{"name":"mime","SPDXID":"SPDXRef-npm-mime-3.0.0-286d66","versionInfo":"^3.0.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/mime@%5E3.0.0"}]},{"name":"js-yaml","SPDXID":"SPDXRef-npm-js-yaml-4-2ce18c","versionInfo":"^4","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/js-yaml@%5E4"}]},{"name":"image-size","SPDXID":"SPDXRef-npm-image-size--0c15fc","versionInfo":"*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/image-size@%2A"}]},{"name":"css-loader","SPDXID":"SPDXRef-npm-css-loader-7.1.2-280e98","versionInfo":"^7.1.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/css-loader@%5E7.1.2"}]},{"name":"style-loader","SPDXID":"SPDXRef-npm-style-loader-4.0.0-171012","versionInfo":"^4.0.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/style-loader@%5E4.0.0"}]},{"name":"minimatch","SPDXID":"SPDXRef-npm-minimatch-3.0.4-d3b4ff","versionInfo":"^3.0.4","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/minimatch@%5E3.0.4"}]},{"name":"should","SPDXID":"SPDXRef-npm-should-13.2.3-54a968","versionInfo":"^13.2.3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/should@%5E13.2.3"}]},{"name":"koa-mount","SPDXID":"SPDXRef-npm-koa-mount-3-f29c7c","versionInfo":"^3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/koa-mount@%5E3"}]},{"name":"lodash","SPDXID":"SPDXRef-npm-lodash--af2610","versionInfo":"*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/lodash@%2A"}]},{"name":"mini-css-extract-plugin","SPDXID":"SPDXRef-npm-mini-css-extract-plugin-2.9.2-8789c1","versionInfo":"^2.9.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/mini-css-extract-plugin@%5E2.9.2"}]},{"name":"copy-webpack-plugin","SPDXID":"SPDXRef-npm-copy-webpack-plugin-12.0.2-119885","versionInfo":"^12.0.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/copy-webpack-plugin@%5E12.0.2"}]},{"name":"babel-core","SPDXID":"SPDXRef-npm-babel-core-6-de0fe9","versionInfo":"^6","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/babel-core@%5E6"}]},{"name":"html-entities","SPDXID":"SPDXRef-npm-html-entities-1.3.1-07301c","versionInfo":"^1.3.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/html-entities@%5E1.3.1"}]},{"name":"koa","SPDXID":"SPDXRef-npm-koa-2-827191","versionInfo":"^2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/koa@%5E2"}]},{"name":"postcss-loader","SPDXID":"SPDXRef-npm-postcss-loader-8.1.1-c8d674","versionInfo":"^8.1.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/postcss-loader@%5E8.1.1"}]},{"name":"csrf","SPDXID":"SPDXRef-npm-csrf-3-b87db9","versionInfo":"^3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/csrf@%5E3"}]},{"name":"bemto.pug","SPDXID":"SPDXRef-npm-bemto.pug-iliakanbemto-172e74","versionInfo":"iliakan/bemto","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/bemto.pug@iliakan%2Fbemto"}]},{"name":"node-notifier","SPDXID":"SPDXRef-npm-node-notifier--c87fa2","versionInfo":"*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/node-notifier@%2A"}]},{"name":"trace","SPDXID":"SPDXRef-npm-trace-3.1.0-0b22d1","versionInfo":"^3.1.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/trace@%5E3.1.0"}]},{"name":"koa-etag","SPDXID":"SPDXRef-npm-koa-etag-3-f56678","versionInfo":"^3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/koa-etag@%5E3"}]},{"name":"markdown-it-deflist","SPDXID":"SPDXRef-npm-markdown-it-deflist--3c24bc","versionInfo":"*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/markdown-it-deflist@%2A"}]},{"name":"bunyan","SPDXID":"SPDXRef-npm-bunyan--13441e","versionInfo":"*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/bunyan@%2A"}]},{"name":"limax","SPDXID":"SPDXRef-npm-limax-4.1.0-03d952","versionInfo":"^4.1.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/limax@%5E4.1.0"}]},{"name":"babelfish","SPDXID":"SPDXRef-npm-babelfish-2.0.0-2d8d15","versionInfo":"^2.0.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/babelfish@%5E2.0.0"}]},{"name":"execa","SPDXID":"SPDXRef-npm-execa-5.1.1-dc7073","versionInfo":"^5.1.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/execa@%5E5.1.1"}]},{"name":"css-minimizer-webpack-plugin","SPDXID":"SPDXRef-npm-css-minimizer-webpack-plugin-7.0.0-d71c3c","versionInfo":"^7.0.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/css-minimizer-webpack-plugin@%5E7.0.0"}]},{"name":"multiparty","SPDXID":"SPDXRef-npm-multiparty--ae56b4","versionInfo":"*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/multiparty@%2A"}]},{"name":"path-to-regexp","SPDXID":"SPDXRef-npm-path-to-regexp-6.2-28f220","versionInfo":"^6.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/path-to-regexp@%5E6.2"}]},{"name":"koa-bodyparser","SPDXID":"SPDXRef-npm-koa-bodyparser-4-72b78b","versionInfo":"^4","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/koa-bodyparser@%5E4"}]},{"name":"@trysound/sax","SPDXID":"SPDXRef-npm-trysound-sax-0.2.0-928041","versionInfo":"^0.2.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40trysound/sax@%5E0.2.0"}]},{"name":"koa-conditional-get","SPDXID":"SPDXRef-npm-koa-conditional-get-2-676382","versionInfo":"^2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/koa-conditional-get@%5E2"}]},{"name":"autoprefixer","SPDXID":"SPDXRef-npm-autoprefixer-9-5a22b6","versionInfo":"^9","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/autoprefixer@%5E9"}]},{"name":"pug-runtime","SPDXID":"SPDXRef-npm-pug-runtime-2.0.4-0b1026","versionInfo":"^2.0.4","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/pug-runtime@%5E2.0.4"}]},{"name":"gm","SPDXID":"SPDXRef-npm-gm-1-060cea","versionInfo":"^1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/gm@%5E1"}]},{"name":"chokidar","SPDXID":"SPDXRef-npm-chokidar-4.0.1-ad7baf","versionInfo":"^4.0.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/chokidar@%5E4.0.1"}]},{"name":"lru-cache","SPDXID":"SPDXRef-npm-lru-cache-11.0.2-8d2763","versionInfo":"^11.0.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/lru-cache@%5E11.0.2"}]},{"name":"mocha","SPDXID":"SPDXRef-npm-mocha-7.1.1-384205","versionInfo":"^7.1.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/mocha@%5E7.1.1"}]},{"name":"babel-preset-env","SPDXID":"SPDXRef-npm-babel-preset-env--1af40b","versionInfo":"*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/babel-preset-env@%2A"}]},{"name":"mz","SPDXID":"SPDXRef-npm-mz--c779a1","versionInfo":"*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/mz@%2A"}]},{"name":"gulp-livereload","SPDXID":"SPDXRef-npm-gulp-livereload-4-10e4d0","versionInfo":"^4","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/gulp-livereload@%5E4"}]},{"name":"@babel/preset-env","SPDXID":"SPDXRef-npm-babel-preset-env-7.26.0-090936","versionInfo":"^7.26.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40babel/preset-env@%5E7.26.0"}]},{"name":"yaml-loader","SPDXID":"SPDXRef-npm-yaml-loader-0.8.1-cc6b20","versionInfo":"^0.8.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/yaml-loader@%5E0.8.1"}]},{"name":"babel-plugin-transform-runtime","SPDXID":"SPDXRef-npm-babel-plugin-transform-runtime--cfeda8","versionInfo":"*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/babel-plugin-transform-runtime@%2A"}]},{"name":"@babel/plugin-proposal-object-rest-spread","SPDXID":"SPDXRef-npm-babel-plugin-proposal-object-rest-spread-7.20.7-fcea06","versionInfo":"^7.20.7","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/%40babel/plugin-proposal-object-rest-spread@%5E7.20.7"}]},{"name":"stylus","SPDXID":"SPDXRef-npm-stylus-0.64.0-a49cd2","versionInfo":"^0.64.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/stylus@%5E0.64.0"}]},{"name":"node-zip","SPDXID":"SPDXRef-npm-node-zip--cf3e90","versionInfo":"*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/node-zip@%2A"}]},{"name":"koa-static","SPDXID":"SPDXRef-npm-koa-static-5-0b5d76","versionInfo":"^5","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/koa-static@%5E5"}]},{"name":"uglify-es","SPDXID":"SPDXRef-npm-uglify-es-3-c47ec0","versionInfo":"^3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/uglify-es@%5E3"}]},{"name":"cross-env","SPDXID":"SPDXRef-npm-cross-env-7.0.3-ed4150","versionInfo":"^7.0.3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/cross-env@%5E7.0.3"}]},{"name":"json-loader","SPDXID":"SPDXRef-npm-json-loader-0.5.7-ae878c","versionInfo":"^0.5.7","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/json-loader@%5E0.5.7"}]},{"name":"pug-loader","SPDXID":"SPDXRef-npm-pug-loader-2.4.0-1936ad","versionInfo":"^2.4.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/pug-loader@%5E2.4.0"}]},{"name":"markdown-it","SPDXID":"SPDXRef-npm-markdown-it-13.0.2-cbf009","versionInfo":"^13.0.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/markdown-it@%5E13.0.2"}]},{"name":"fs-extra","SPDXID":"SPDXRef-npm-fs-extra--9c6e31","versionInfo":"*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/fs-extra@%2A"}]},{"name":"request-promise","SPDXID":"SPDXRef-npm-request-promise-4.2-e329ac","versionInfo":"^4.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/request-promise@%5E4.2"}]},{"name":"gulp","SPDXID":"SPDXRef-npm-gulp-4-6219b5","versionInfo":"^4","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/gulp@%5E4"}]},{"name":"babel-plugin-transform-flow-strip-types","SPDXID":"SPDXRef-npm-babel-plugin-transform-flow-strip-types--d280af","versionInfo":"*","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/babel-plugin-transform-flow-strip-types@%2A"}]},{"name":"rupture","SPDXID":"SPDXRef-npm-rupture-0.7-973210","versionInfo":"^0.7","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/rupture@%5E0.7"}]},{"name":"request","SPDXID":"SPDXRef-npm-request-2.34-a3f54e","versionInfo":"^2.34","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/request@%5E2.34"}]},{"name":"koa-router","SPDXID":"SPDXRef-npm-koa-router-7-e837a7","versionInfo":"^7","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/koa-router@%5E7"}]},{"name":"nodemon","SPDXID":"SPDXRef-npm-nodemon-3.1.7-42ecdd","versionInfo":"^3.1.7","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/nodemon@%5E3.1.7"}]},{"name":"stylus-loader","SPDXID":"SPDXRef-npm-stylus-loader-8.1.1-a488c7","versionInfo":"^8.1.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/stylus-loader@%5E8.1.1"}]},{"name":"babel-loader","SPDXID":"SPDXRef-npm-babel-loader-9.2.1-149dc5","versionInfo":"^9.2.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/babel-loader@%5E9.2.1"}]},{"name":"mongoose","SPDXID":"SPDXRef-npm-mongoose-8.8.1-591a55","versionInfo":"^8.8.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:npm/mongoose@%5E8.8.1"}]},{"name":"com.github.javascript-tutorial/server","SPDXID":"SPDXRef-github-javascript-tutorial-server-master-2a53da","versionInfo":"master","downloadLocation":"git+https://github.com/javascript-tutorial/server","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:github/javascript-tutorial/server@master"}]}],"relationships":[{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-markdown-it-container--ded27b","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-node-uuid--3febd4","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-nib--e61361","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-prismjs-1-ed3caf","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-pug-2.0.3-a1143e","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-terser-webpack-plugin-5.3.10-3d7be8","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-clarify-2.1.0-8cf00c","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-webpack-5.96.1-9c3229","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-mime-3.0.0-286d66","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-js-yaml-4-2ce18c","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-image-size--0c15fc","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-css-loader-7.1.2-280e98","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-style-loader-4.0.0-171012","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-minimatch-3.0.4-d3b4ff","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-should-13.2.3-54a968","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-koa-mount-3-f29c7c","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-lodash--af2610","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-mini-css-extract-plugin-2.9.2-8789c1","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-copy-webpack-plugin-12.0.2-119885","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-babel-core-6-de0fe9","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-html-entities-1.3.1-07301c","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-koa-2-827191","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-postcss-loader-8.1.1-c8d674","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-csrf-3-b87db9","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-bemto.pug-iliakanbemto-172e74","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-node-notifier--c87fa2","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-trace-3.1.0-0b22d1","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-koa-etag-3-f56678","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-markdown-it-deflist--3c24bc","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-bunyan--13441e","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-limax-4.1.0-03d952","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-babelfish-2.0.0-2d8d15","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-execa-5.1.1-dc7073","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-css-minimizer-webpack-plugin-7.0.0-d71c3c","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-multiparty--ae56b4","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-path-to-regexp-6.2-28f220","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-koa-bodyparser-4-72b78b","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-trysound-sax-0.2.0-928041","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-koa-conditional-get-2-676382","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-autoprefixer-9-5a22b6","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-pug-runtime-2.0.4-0b1026","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-gm-1-060cea","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-chokidar-4.0.1-ad7baf","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-lru-cache-11.0.2-8d2763","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-mocha-7.1.1-384205","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-babel-preset-env--1af40b","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-mz--c779a1","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-gulp-livereload-4-10e4d0","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-babel-preset-env-7.26.0-090936","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-yaml-loader-0.8.1-cc6b20","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-babel-plugin-transform-runtime--cfeda8","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-babel-plugin-proposal-object-rest-spread-7.20.7-fcea06","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-stylus-0.64.0-a49cd2","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-node-zip--cf3e90","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-koa-static-5-0b5d76","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-uglify-es-3-c47ec0","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-cross-env-7.0.3-ed4150","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-json-loader-0.5.7-ae878c","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-pug-loader-2.4.0-1936ad","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-markdown-it-13.0.2-cbf009","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-fs-extra--9c6e31","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-request-promise-4.2-e329ac","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-gulp-4-6219b5","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-babel-plugin-transform-flow-strip-types--d280af","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-rupture-0.7-973210","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-request-2.34-a3f54e","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-koa-router-7-e837a7","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-nodemon-3.1.7-42ecdd","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-stylus-loader-8.1.1-a488c7","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-babel-loader-9.2.1-149dc5","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relatedSpdxElement":"SPDXRef-npm-mongoose-8.8.1-591a55","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-DOCUMENT","relatedSpdxElement":"SPDXRef-github-javascript-tutorial-server-master-2a53da","relationshipType":"DESCRIBES"}]}