UNPKG

sicua

Version:

A tool for analyzing project structure and dependencies

64 lines (63 loc) 1.84 kB
/** * Detector for server-only imports in client-side code */ import { BaseDetector } from "./BaseDetector"; import { Vulnerability } from "../types/vulnerability.types"; import { ScanResult } from "../../../types"; export declare class ServerOnlyImportsDetector extends BaseDetector { private static readonly SERVER_IMPORT_PATTERNS; private static readonly NODEJS_BUILTINS; private static readonly SERVER_ONLY_LIBRARIES; private static readonly POTENTIALLY_SERVER_ONLY; constructor(); detect(scanResult: ScanResult): Promise<Vulnerability[]>; /** * Filter files to only include client-side files */ private filterClientSideFiles; /** * Validate if a server import pattern match is actually problematic */ private validateServerImportMatch; /** * AST-based analysis for server-only imports */ private analyzeASTForServerImports; /** * Find import declarations */ private findImportDeclarations; /** * Find require() calls */ private findRequireCalls; /** * Find dynamic import() calls */ private findDynamicImports; /** * Analyze import declaration for server-only modules */ private analyzeImportDeclaration; /** * Analyze require call for server-only modules */ private analyzeRequireCall; /** * Analyze dynamic import for server-only modules */ private analyzeDynamicImport; /** * Analyze module name to determine if it's server-only */ private analyzeModuleForServerOnly; /** * Check if a library contains critical/sensitive functionality */ private isCriticalServerLibrary; private isTypeDefinitionFile; /** * Extract function name from AST node context */ private extractFunctionFromAST; }