Location: src/core/ContentProtector.ts
Purpose: Main entry point and orchestrator for all protection strategies
Relations:
- Instantiates and manages all protection strategies
- Uses
SecurityOverlayManagerfor overlay management - Uses
IntervalManagerfor timing operations - Uses
EventManagerfor event handling
Location: src/core/mediator/ContentProtectionMediator.ts
Purpose: Handles communication between different components
Relations:
- Used by all strategies for event publishing/subscribing
- Manages
ProtectionEventdistribution - Interfaces with
EventManager
Location: src/strategies/AbstractStrategy.ts
Purpose: Base class for all protection strategies
Relations:
- Implements
ProtectionStrategyinterface - Uses
ContentProtectionMediatorfor events - Uses
SecurityOverlayManagerfor overlays
Location: src/strategies/KeyboardStrategy.ts
Purpose: Prevents keyboard shortcuts
Relations:
- Extends
AbstractStrategy - Uses DOM event listeners
Location: src/strategies/ContextMenuStrategy.ts
Purpose: Prevents context menu access
Relations:
- Extends
AbstractStrategy - Uses DOM event listeners
Location: src/strategies/PrintStrategy.ts
Purpose: Prevents printing attempts
Relations:
- Extends
AbstractStrategy - Uses DOM event listeners
- Uses
SecurityOverlayManager
Location: src/strategies/SelectionStrategy.ts
Purpose: Prevents text selection
Relations:
- Extends
AbstractStrategy - Uses DOM event listeners
Location: src/strategies/WatermarkStrategy.ts
Purpose: Adds watermarks to content
Relations:
- Extends
AbstractStrategy - Uses
DOMObserver - Uses
ProtectedContentManager
Location: src/strategies/DevToolsStrategy.ts
Purpose: Detects and responds to DevTools usage
Relations:
- Extends
AbstractStrategy - Uses
SecurityOverlayManager - Uses
IntervalManager
Location: src/strategies/ScreenshotStrategy.ts
Purpose: Detects screenshot attempts
Relations:
- Extends
AbstractStrategy - Uses
SecurityOverlayManager - Uses DOM event listeners
Location: src/strategies/BrowserExtensionDetectionStrategy.ts
Purpose: Detects potentially malicious browser extensions
Relations:
- Extends
AbstractStrategy - Uses
DOMObserver
Location: src/strategies/FrameEmbeddingProtectionStrategy.ts
Purpose: Prevents unauthorized iframe embedding
Relations:
- Extends
AbstractStrategy - Uses
SecurityOverlayManager
Location: src/utils/SecurityOverlayManager.ts
Purpose: Manages security overlays and messages
Relations:
- Used by multiple strategies
- Uses
DOMObserverfor overlay persistence
Location: src/utils/ProtectedContentManager.ts
Purpose: Manages protected content visibility
Relations:
- Used by multiple strategies
- Uses
DOMObserverfor content protection
Location: src/utils/DOMObserver.ts
Purpose: Observes and responds to DOM changes
Relations:
- Used by
WatermarkStrategy - Used by
SecurityOverlayManager - Used by
ProtectedContentManager
Location: src/utils/IntervalManager.ts
Purpose: Manages timing operations
Relations:
- Used by
DevToolsStrategy - Used by other strategies for periodic checks
Location: src/utils/EventManager.ts
Purpose: Manages custom events and subscriptions
Relations:
- Used by
ContentProtectionMediator - Used indirectly by all strategies
Location: src/types/index.ts
Purpose: Defines configuration options
Relations:
- Used by
ContentProtector - Referenced by all strategies
Location: src/types/index.ts
Purpose: Interface for protection strategies
Relations:
- Implemented by
AbstractStrategy - Referenced by
ContentProtector
Location: src/core/mediator/protection-event.ts
Purpose: Defines event types and structures
Relations:
- Used by
ContentProtectionMediator - Used by all strategies for event handling
Location: src/core/mediator/protection-event.ts
Purpose: Enum of all possible protection events
Relations:
- Used by
ContentProtectionMediator - Used by all strategies
- Referenced in event handlers
ContentProtector
├── ProtectionStrategy (interface)
│ └── AbstractStrategy
│ ├── KeyboardStrategy
│ ├── ContextMenuStrategy
│ ├── PrintStrategy
│ ├── SelectionStrategy
│ ├── WatermarkStrategy
│ ├── DevToolsStrategy
│ ├── ScreenshotStrategy
│ ├── BrowserExtensionDetectionStrategy
│ └── FrameEmbeddingProtectionStrategy
│
├── Utilities
│ ├── SecurityOverlayManager
│ ├── ProtectedContentManager
│ ├── DOMObserver
│ ├── IntervalManager
│ └── EventManager
│
└── Mediator System
├── ContentProtectionMediator
└── ProtectionEvent