@coursebuilder/utils
Consolidated shared utilities for the Course Builder monorepo.
Supply chain provenance
Status for the latest visible version.
Without SLSA provenance there is no cryptographic link between this tarball and the public source — the axios compromise (March 2026) relied on exactly this gap.
Maintainers
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| semgrep | semgrep:env-spread | AI (semgrep): Fires only in a test file saving/restoring process.env — standard test pattern, not a leak risk. | ai | |
| phantom-deps | phantom-dep:process | AI (phantom-deps): process is a Node.js built-in polyfill dep; not directly imported but used transitively. | ai | |
| phantom-deps | phantom-dep:@coursebuilder/core | AI (phantom-deps): Same-org package; phantom-dep heuristic is unreliable for intra-monorepo deps. | ai | |
| phantom-deps | phantom-dep:typesense | AI (phantom-deps): Used via typesense-adapter export; indirect import pattern causes false positive. | ai |
Versions (showing 1 of 1)
| Version | Deps | Published |
|---|---|---|
| 1.0.1 | 17 / 6 |
v1.0.1
2 findingsSpreading entire process.env into an object — may capture all secrets 98 | 99 | describe('getTypesenseCollectionName', () => { > 100 | const originalEnv = { ...process.env } 101 | 102 | it('should return default collection name when env var is not set', () => {
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.