save checkpoint

This commit is contained in:
master
2026-02-14 09:11:48 +02:00
parent 9ca2de05df
commit e9aeadc040
1512 changed files with 30863 additions and 4728 deletions

View File

@@ -0,0 +1,35 @@
# Package Name Normalization Service
## Module
Scanner
## Status
VERIFIED
## Description
Cross-ecosystem package name normalization service handling aliases between package managers (apt/dpkg, pip eggs/wheels/PyPI, npm scoped/unscoped, Go module/package paths). Uses a JSON alias map with 326 lines of known aliases and provides file-hash fingerprint fallback for unresolvable packages.
## Implementation Details
- **Normalization Service**:
- `src/Scanner/__Libraries/StellaOps.Scanner.Core/Normalization/IPackageNameNormalizer.cs` - `IPackageNameNormalizer` interface for cross-ecosystem package name normalization
- `src/Scanner/__Libraries/StellaOps.Scanner.Core/Normalization/PackageNameNormalizer.cs` - `PackageNameNormalizer` handles aliases between package managers (apt/dpkg, pip eggs/wheels/PyPI, npm scoped/unscoped, Go module/package paths), using a JSON alias map and file-hash fingerprint fallback
- **DI Registration**: `src/Scanner/__Libraries/StellaOps.Scanner.Core/Normalization/NormalizationServiceCollectionExtensions.cs`
## E2E Test Plan
- [ ] Normalize an apt package name and verify it maps to the correct dpkg equivalent
- [ ] Normalize a pip egg/wheel package name and verify it maps to the canonical PyPI name
- [ ] Normalize an npm scoped package and verify correct normalization (e.g., `@scope/package`)
- [ ] Normalize a Go module path and verify package path aliasing works correctly
- [ ] Verify the JSON alias map resolves known cross-ecosystem aliases (e.g., `libssl-dev` to `openssl`)
- [ ] Verify the file-hash fingerprint fallback produces a consistent identifier for unresolvable packages
---
## Verification
| Check | Result |
|-------|--------|
| Tier 0 - Source files exist | PASS |
| Tier 1 - Build + code review | PASS |
| Tier 2 - Integration tests | PASS |
| Verified | 2026-02-13T18:10:00Z |