{"bomFormat":"CycloneDX","specVersion":"1.5","version":1,"serialNumber":"urn:uuid:4634fc93-c7e0-4393-9c10-29cfd3f0c642","metadata":{"timestamp":"2026-09-29T02:29:16Z","tools":[{"vendor":"Ecosystems","name":"Ecosystems SBOM Generator"}],"component":{"type":"application","name":"nullstack/nullstack"}},"components":[{"type":"library","name":"@swc/core","version":"1.2.179","purl":"pkg:npm/@swc/core","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"@babel/parser","version":"7.17.12","purl":"pkg:npm/@babel/parser","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"@babel/traverse","version":"7.17.12","purl":"pkg:npm/@babel/traverse","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"body-parser","version":"1.20.0","purl":"pkg:npm/body-parser","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"commander","version":"8.3.0","purl":"pkg:npm/commander","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"cors","version":"2.8.5","purl":"pkg:npm/cors","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"css-loader","version":"6.7.1","purl":"pkg:npm/css-loader","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"dotenv","version":"8.6.0","purl":"pkg:npm/dotenv","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"express","version":"4.18.1","purl":"pkg:npm/express","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"fs-extra","version":"10.1.0","purl":"pkg:npm/fs-extra","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"mini-css-extract-plugin","version":"2.6.0","purl":"pkg:npm/mini-css-extract-plugin","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"node-fetch","version":"2.6.7","purl":"pkg:npm/node-fetch","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"nodemon-webpack-plugin","version":"4.7.1","purl":"pkg:npm/nodemon-webpack-plugin","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"sass","version":"1.51.0","purl":"pkg:npm/sass","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"sass-loader","version":"8.0.2","purl":"pkg:npm/sass-loader","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"swc-loader","version":"0.2.1","purl":"pkg:npm/swc-loader","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"terser-webpack-plugin","version":"5.3.1","purl":"pkg:npm/terser-webpack-plugin","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"webpack","version":"5.72.1","purl":"pkg:npm/webpack","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"ws","version":"7.5.7","purl":"pkg:npm/ws","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"jest","version":"^26.6.3","purl":"pkg:npm/jest","properties":[{"name":"filePath","value":"tests/package.json"}]},{"type":"library","name":"nullstack","version":"*","purl":"pkg:npm/nullstack","properties":[{"name":"filePath","value":"tests/package.json"}]},{"type":"library","name":"puppeteer","version":"^5.5.0","purl":"pkg:npm/puppeteer","properties":[{"name":"filePath","value":"tests/package.json"}]},{"type":"library","name":"jest-puppeteer","version":"^6.0.3","purl":"pkg:npm/jest-puppeteer","properties":[{"name":"filePath","value":"tests/package.json"}]},{"type":"library","name":"glob","version":"^7.1.7","purl":"pkg:npm/glob","properties":[{"name":"filePath","value":"tests/package.json"}]},{"type":"library","name":"purgecss-webpack-plugin","version":"^4.1.3","purl":"pkg:npm/purgecss-webpack-plugin","properties":[{"name":"filePath","value":"tests/package.json"}]},{"type":"library","name":"actions/checkout","version":"v2","purl":"pkg:githubactions/actions/checkout","properties":[{"name":"filePath","value":".github/workflows/pr-tests.yml"}]},{"type":"library","name":"actions/cache","version":"v2","purl":"pkg:githubactions/actions/cache","properties":[{"name":"filePath","value":".github/workflows/pr-tests.yml"}]},{"type":"library","name":"actions/setup-node","version":"v2","purl":"pkg:githubactions/actions/setup-node","properties":[{"name":"filePath","value":".github/workflows/pr-tests.yml"}]}]}