Rewrite type analyzer with expression-based analysis and source tracking
Complete rewrite implementing the correct specification:
1. Analyze EXPRESSION TYPES, not component interface types
2. For OBJECT types: Recursive analysis, display as (propName=identifier).path
3. For PRIMITIVE types with identifier: Check name, display as propName=identifier
4. For PRIMITIVE types with property chain: Check last property, display as propName=chain
5. Track sources for all detections to show origin clearly
6. Use fullPath consistently in all maps for correct lookups
Key fixes:
- Use TypeScript type flags to correctly identify primitives vs objects
- Store fullPath in sensitiveProps arrays (not just property name)
- Match keys between sensitiveProps and sensitiveSource maps
- No duplicate detections from analyzing identifiers separately
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>