semi implemented and features implemented save checkpoint

This commit is contained in:
master
2026-02-08 18:00:49 +02:00
parent 04360dff63
commit 1bf6bbf395
20895 changed files with 716795 additions and 64 deletions

View File

@@ -0,0 +1,24 @@
# Package Name Normalization Service
## Module
Scanner
## Status
IMPLEMENTED
## 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