{"bomFormat":"CycloneDX","specVersion":"1.5","version":1,"serialNumber":"urn:uuid:edf17549-ca29-4d9e-8c4f-5b73a33d7726","metadata":{"timestamp":"2026-10-05T19:34:27Z","tools":[{"vendor":"Ecosystems","name":"Ecosystems SBOM Generator"}],"component":{"type":"application","name":"talkpython/rock-solid-python-with-type-hints-course"}},"components":[{"type":"library","name":"typescript","version":"5.2.2","purl":"pkg:npm/typescript","properties":[{"name":"filePath","value":"code/02-static-vs-dynamic-languages/package-lock.json"}]},{"type":"library","name":"typescript","version":"^5.2.2","purl":"pkg:npm/typescript","properties":[{"name":"filePath","value":"code/02-static-vs-dynamic-languages/package.json"}]},{"type":"library","name":"annotated-types","version":"==0.6.0","purl":"pkg:pypi/annotated-types","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"anyio","version":"==4.3.0","purl":"pkg:pypi/anyio","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"argon2-cffi","version":"==23.1.0","purl":"pkg:pypi/argon2-cffi","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"argon2-cffi-bindings","version":"==21.2.0","purl":"pkg:pypi/argon2-cffi-bindings","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"beanie","version":"==1.25.0","purl":"pkg:pypi/beanie","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"beartype","version":"==0.17.2","purl":"pkg:pypi/beartype","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"cffi","version":"==1.16.0","purl":"pkg:pypi/cffi","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"click","version":"==8.1.7","purl":"pkg:pypi/click","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"dnspython","version":"==2.6.1","purl":"pkg:pypi/dnspython","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"fastapi","version":"==0.110.0","purl":"pkg:pypi/fastapi","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"h11","version":"==0.14.0","purl":"pkg:pypi/h11","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"idna","version":"==3.6","purl":"pkg:pypi/idna","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"jinja2","version":"==3.1.3","purl":"pkg:pypi/jinja2","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"lazy-model","version":"==0.2.0","purl":"pkg:pypi/lazy-model","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"markupsafe","version":"==2.1.5","purl":"pkg:pypi/markupsafe","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"motor","version":"==3.3.2","purl":"pkg:pypi/motor","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"mypy","version":"==1.8.0","purl":"pkg:pypi/mypy","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"mypy-extensions","version":"==1.0.0","purl":"pkg:pypi/mypy-extensions","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"passlib","version":"==1.7.4","purl":"pkg:pypi/passlib","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"pycparser","version":"==2.21","purl":"pkg:pypi/pycparser","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"pydantic","version":"==2.6.3","purl":"pkg:pypi/pydantic","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"pydantic-core","version":"==2.16.3","purl":"pkg:pypi/pydantic-core","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"pymongo","version":"==4.6.2","purl":"pkg:pypi/pymongo","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"sniffio","version":"==1.3.1","purl":"pkg:pypi/sniffio","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"starlette","version":"==0.36.3","purl":"pkg:pypi/starlette","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"toml","version":"==0.10.2","purl":"pkg:pypi/toml","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"typing-extensions","version":"==4.10.0","purl":"pkg:pypi/typing-extensions","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"uvicorn","version":"==0.27.1","purl":"pkg:pypi/uvicorn","properties":[{"name":"filePath","value":"requirements.txt"}]}]}