{"bomFormat":"CycloneDX","specVersion":"1.5","version":1,"serialNumber":"urn:uuid:255c8343-4f92-4646-94c8-dafb5b606f0b","metadata":{"timestamp":"2026-08-18T10:49:25Z","tools":[{"vendor":"Ecosystems","name":"Ecosystems SBOM Generator"}],"component":{"type":"application","name":"GalvinPython/sqlite-viewer"}},"components":[{"type":"library","name":"actions/checkout","version":"v2","purl":"pkg:githubactions/actions/checkout","properties":[{"name":"filePath","value":".github/workflows/build.yml"}]},{"type":"library","name":"oven-sh/setup-bun","version":"v2","purl":"pkg:githubactions/oven-sh/setup-bun","properties":[{"name":"filePath","value":".github/workflows/build.yml"}]},{"type":"library","name":"actions/checkout","version":"v2","purl":"pkg:githubactions/actions/checkout","properties":[{"name":"filePath","value":".github/workflows/eslint.yml"}]},{"type":"library","name":"oven-sh/setup-bun","version":"v1","purl":"pkg:githubactions/oven-sh/setup-bun","properties":[{"name":"filePath","value":".github/workflows/eslint.yml"}]},{"type":"library","name":"oven-sh/setup-bun","version":"v1","purl":"pkg:githubactions/oven-sh/setup-bun","properties":[{"name":"filePath","value":".github/workflows/lockb.yml"}]},{"type":"library","name":"actions/checkout","version":"v4","purl":"pkg:githubactions/actions/checkout","properties":[{"name":"filePath","value":".github/workflows/lockb.yml"}]},{"type":"library","name":"@million/lint","version":"^1.0.14","purl":"pkg:npm/@million/lint","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"bun-types","version":"^1.1.39","purl":"pkg:npm/bun-types","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"express-rate-limit","version":"^7.5.0","purl":"pkg:npm/express-rate-limit","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"multer","version":"^1.4.5-lts.1","purl":"pkg:npm/multer","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"next","version":"15.1.0","purl":"pkg:npm/next","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"react","version":"^19.0.0","purl":"pkg:npm/react","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"react-dom","version":"^19.0.0","purl":"pkg:npm/react-dom","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"react-icons","version":"^5.4.0","purl":"pkg:npm/react-icons","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"sqlite3","version":"^5.1.7","purl":"pkg:npm/sqlite3","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"@eslint/eslintrc","version":"^3","purl":"pkg:npm/@eslint/eslintrc","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"@types/bun","version":"^1.1.14","purl":"pkg:npm/@types/bun","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"@types/multer","version":"^1.4.12","purl":"pkg:npm/@types/multer","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"@types/node","version":"^20","purl":"pkg:npm/@types/node","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"@types/react","version":"^19","purl":"pkg:npm/@types/react","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"@types/react-dom","version":"^19","purl":"pkg:npm/@types/react-dom","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"eslint","version":"^8.57.0","purl":"pkg:npm/eslint","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"eslint-config-next","version":"15.1.0","purl":"pkg:npm/eslint-config-next","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"postcss","version":"^8","purl":"pkg:npm/postcss","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"tailwindcss","version":"^3.4.1","purl":"pkg:npm/tailwindcss","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"typescript","version":"^5","purl":"pkg:npm/typescript","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"eslint-config-prettier","version":"^8.2.0","purl":"pkg:npm/eslint-config-prettier","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"eslint-plugin-import","version":"^2.26.0","purl":"pkg:npm/eslint-plugin-import","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"eslint-plugin-jsx-a11y","version":"^6.4.1","purl":"pkg:npm/eslint-plugin-jsx-a11y","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"eslint-plugin-node","version":"^11.1.0","purl":"pkg:npm/eslint-plugin-node","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"eslint-plugin-prettier","version":"^5.1.3","purl":"pkg:npm/eslint-plugin-prettier","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"eslint-plugin-react","version":"^7.23.2","purl":"pkg:npm/eslint-plugin-react","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"eslint-plugin-react-hooks","version":"^4.6.0","purl":"pkg:npm/eslint-plugin-react-hooks","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"eslint-plugin-unused-imports","version":"^3.2.0","purl":"pkg:npm/eslint-plugin-unused-imports","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"@typescript-eslint/eslint-plugin","version":"7.2.0","purl":"pkg:npm/@typescript-eslint/eslint-plugin","properties":[{"name":"filePath","value":"package.json"}]},{"type":"library","name":"@typescript-eslint/parser","version":"7.2.0","purl":"pkg:npm/@typescript-eslint/parser","properties":[{"name":"filePath","value":"package.json"}]}]}