/** * JavaScript/TypeScript Language Plugin * * Provides JS/TS-specific AST handling, taint patterns, and framework detection. */ import type { Node as SyntaxNode } from 'web-tree-sitter'; import type { TypeInfo, CallInfo, ImportInfo } from '../../types/index.js'; import type { LanguageNodeTypes, ExtractionContext, FrameworkInfo, TaintSourcePattern, TaintSinkPattern } from '../types.js'; import { BaseLanguagePlugin } from './base.js'; /** * JavaScript/TypeScript language plugin implementation. * Handles both JavaScript and TypeScript since they share the same tree-sitter grammar. */ export declare class JavaScriptPlugin extends BaseLanguagePlugin { readonly id: "javascript"; readonly name = "JavaScript/TypeScript"; readonly extensions: string[]; readonly wasmPath = "tree-sitter-typescript.wasm"; readonly nodeTypes: LanguageNodeTypes; /** * Detect JavaScript frameworks from imports. */ detectFramework(context: ExtractionContext): FrameworkInfo | undefined; /** * JavaScript/TypeScript taint source patterns. */ getBuiltinSources(): TaintSourcePattern[]; /** * JavaScript/TypeScript taint sink patterns. */ getBuiltinSinks(): TaintSinkPattern[]; /** * Get receiver type from a call expression. */ getReceiverType(node: SyntaxNode, context: ExtractionContext): string | undefined; /** * Check if node is a JavaScript string literal. */ isStringLiteral(node: SyntaxNode): boolean; /** * Get string value from JavaScript string literal. */ getStringValue(node: SyntaxNode): string | undefined; extractTypes(context: ExtractionContext): TypeInfo[]; extractCalls(context: ExtractionContext): CallInfo[]; extractImports(context: ExtractionContext): ImportInfo[]; extractPackage(context: ExtractionContext): string | undefined; } //# sourceMappingURL=javascript.d.ts.map