CodeQL library for JavaScript/TypeScript
codeql/javascript-all 2.1.1 (changelog, source)
Search

Module javascript

Provides classes for working with JavaScript programs, as well as JSON, YAML and HTML.

Import path

import javascript

Predicates

abstractValueOfType

Gets a definite abstract value with the given type.

capitalize

Gets the capitalization of s.

describeExpression

Gets a string that describes e.

findNodeModulesFolder

Holds if nodeModules is a folder of the form <prefix>/node_modules, where <prefix> is a (not necessarily proper) prefix of f and does not end in /node_modules, and distance is the number of path elements of f that are missing from <prefix>.

getAStandardLoggerMethodName

Gets a log level name that is used in RFC5424, npm, console.

isDomNode

Holds if e could hold a value that comes from the DOM.

isDomRootType

Holds if tp is one of the roots of the DOM type hierarchy.

isInterpretedAsRegExp

Holds if source may be interpreted as a regular expression.

isLocationNode

Holds if e could refer to the location property of a DOM node.

pluralize

Gets the pluralization for n occurrences of noun.

react

Gets a reference to the ‘React’ object.

truncate

Gets str or a truncated version of str with explanation appended if its length exceeds maxLength.

Classes

AbstractArguments

An abstract value representing an arguments object.

AbstractBoolean

An abstract value representing a Boolean value.

AbstractCallable

An abstract value representing a function or class.

AbstractClass

An abstract value representing an individual class.

AbstractDate

An abstract value representing a Date object.

AbstractEmpty

An abstract value representing the empty string.

AbstractExportsObject

An abstract value representing a CommonJS exports object.

AbstractFunction

An abstract value representing an individual function.

AbstractGlobalObject

An abstract value representing the global object.

AbstractInstance

An abstract value representing all instances of a class or function F, as well as the default prototype of F (that is, the initial value of F.prototype).

AbstractModuleObject

An abstract value representing a CommonJS module object.

AbstractNonZero

An abstract value representing a non-zero number.

AbstractNull

An abstract value representing null.

AbstractNumString

An abstract value representing a numeric string, that is, a string s such that +s is not NaN.

AbstractObjectLiteral

An abstract value representing all objects arising from an object literal expression (allocation site abstraction).

AbstractOtherObject

An abstract value representing an object not covered by the other abstract values.

AbstractOtherString

An abstract value representing a non-empty, non-numeric string.

AbstractProperty

An abstract representation of a set of concrete properties, characterized by a base object (which is an abstract value for which properties are tracked) and a property name.

AbstractProtoProperty

An abstract representation of the __proto__ property of a function or class instance.

AbstractRegExp

An abstract value representing a regular expression.

AbstractUndefined

An abstract value representing undefined.

AbstractValue

An abstract value inferred by the flow analysis, representing a set of concrete values.

AbstractZero

An abstract value representing the number zero.

AccessorMethodDeclaration

An accessor method declaration in a class or interface, either a concrete definition or a signature without a body.

AccessorMethodDefinition

A concrete accessor method definition in a class, that is, an accessor method with a function body.

AccessorMethodSignature

An accessor method signature declared in a class or interface, that is, an accessor method without a function body.

ActiveThreatModelSource

A data flow source that is enabled in the current threat model configuration.

AddExpr

An addition or string-concatenation expression.

AggregateES2015PromiseDefinition

An aggregated promise produced either by Promise.all, Promise.race, or Promise.any.

AmdModule

An AMD-style module.

AmdModuleDefinition

An AMD define call.

AnalyzedConditionGuard

A refinement node where the guard is a condition.

AnalyzedExternalModuleReference

A special TypeScript require call in an import-assignment, interpreted as an implicit of the module.exports property of the imported module.

AnalyzedFunction

A function for which analysis results are available.

AnalyzedModule

A module for which analysis results are available.

AnalyzedNegativeConditionGuard

A refinement for a condition guard with an outcome of false.

AnalyzedNode

A data flow node for which analysis results are available.

AnalyzedPositiveConditionGuard

A refinement for a condition guard with an outcome of true.

AnalyzedPropertyRead

An analyzed property read, either explicitly (x.p or x[e]) or implicitly.

AnalyzedPropertyWrite

An analyzed property write, including exports (which are modeled as assignments to module.exports).

AnalyzedRefinement

An analyzed refinement node.

AnalyzedRequireCall

A call to require, interpreted as an implicit read of the module.exports property of the imported module.

AnalyzedSsaDefinition

An SSA definitions that has been analyzed.

AnalyzedValueNode

A value node for which analysis results are available.

AnalyzedVarDef

A vardef with helper predicates for flow analysis.

AnonymousInterfaceType

An anonymous interface type, such as { x: number }.

AnsiColorsStep

A step through the ansi-colors library.

AnsiToHtmlStep

A step through the ansi-to-html library.

AnyType

The predefined any type.

ArgumentsVariable

An arguments variable of a function.

ArithmeticExpr

A binary arithmetic expression using +, -, /, % or **.

ArrayComprehensionExpr

An array comprehension expression.

ArrayExpr

An array literal.

ArrayExternal

The externs definition for the Array object.

ArrayPattern

An array pattern.

ArrayType

A type that describes a JavaScript Array object.

ArrayTypeExpr

An array type, such as number[], or in general T[] where T is a type.

ArrowFunctionExpr

An arrow function expression.

AsTypeAssertion

A type assertion specifically of the form E as T (as opposed to the <T> E syntax).

AssignAddExpr

A compound add-assign expression.

AssignAndExpr

A compound bitwise-‘and’-assign expression.

AssignDivExpr

A compound divide-assign expression.

AssignExpExpr

A compound exponentiate-assign expression.

AssignExpr

A simple assignment expression.

AssignLShiftExpr

A compound left-shift-assign expression.

AssignLogAndExpr

A logical-‘and’-assign expression.

AssignLogOrExpr

A logical-‘or’-assign expression.

AssignModExpr

A compound modulo-assign expression.

AssignMulExpr

A compound multiply-assign expression.

AssignNullishCoalescingExpr

A ‘nullish-coalescing’-assign expression.

AssignOrExpr

A compound bitwise-‘or’-assign expression.

AssignRShiftExpr

A compound right-shift-assign expression.

AssignSubExpr

A compound subtract-assign expression.

AssignURShiftExpr

A compound unsigned-right-shift-assign expression.

AssignXOrExpr

A compound exclusive-‘or’-assign expression.

Assignment

An assignment expression, either compound or simple.

AstNode

A program element corresponding to JavaScript code, such as an expression or a statement.

AuthorizationCall

A call that may perform authorization.

AwaitExpr

An await expression.

BasicBlock

A basic block, that is, a maximal straight-line sequence of control flow nodes without branches or joins.

BigIntLiteral

A BigInt literal.

BigIntLiteralType

A bigint literal as a static type.

BigIntLiteralTypeExpr

A bigint literal used as a TypeScript type annotation.

BigIntType

The predefined bigint type.

BinaryExpr

An expression with a binary operator.

BindingPattern

A binding pattern, that is, either an identifier or a destructuring pattern.

BitAndExpr

A bitwise ‘and’ expression.

BitNotExpr

A bitwise negation expression.

BitOrExpr

A bitwise ‘or’ expression.

BitwiseBinaryExpr

A bitwise binary expression, that is, either a bitwise ‘and’, a bitwise ‘or’, or an exclusive ‘or’ expression.

BitwiseExpr

A bitwise expression using &, |, ^, ~, <<, >>, or >>>.

BlockComment

A block comment (which may be a JSDoc comment).

BlockScope

A scope induced by a block of statements.

BlockStmt

A block of statements.

BooleanLikeType

The boolean, true, or false type.

BooleanLiteral

A Boolean literal, that is, either true or false.

BooleanLiteralToken

A Boolean literal token.

BooleanLiteralType

The boolean literal type true or false.

BooleanLiteralTypeExpr

A boolean literal used as a type.

BooleanType

The boolean type, internally represented as the union type true | false.

BreakOrContinueStmt

A break or continue statement.

BreakStmt

A break statement.

BugTrackerInfo

A representation of bug tracker information for an NPM package.

BulkImportDeclaration

A bulk import that imports an entire module as a namespace.

BulkReExportDeclaration

A bulk re-export declaration of the form export * from 'a', which re-exports all exports of another module.

CallExpr

A function call expression.

CallSignature

A call signature declared in an interface.

CallSignatureType

A function or constructor signature in a TypeScript type.

CallToObjectDefineProperty

A call to Object.defineProperty.

CallWithAnalyzedReturnFlow

A call with inter-procedural type inference for the return value.

CallWithNonLocalAnalyzedReturnFlow

A call with inter-procedural type inference for the return value.

CanonicalFunctionName

The canonical name for a function.

CanonicalName

A fully qualified name relative to a specific root, usually referring to a TypeScript namespace or type.

CanonicalTypeVariableType

A type that refers to a type variable declared on a class, interface or function.

Case

A case or default clause in a switch statement.

CatchClause

A catch clause.

CatchScope

A scope induced by a catch clause.

ChalkStep

A step through the chalk library.

Chokidar

A call to the library chokidar, where a call to on receives file names.

ClassDeclScope

A scope induced by a class declaration with type parameters.

ClassDeclStmt

A class declaration statement.

ClassDefinition

An ECMAScript 2015 or TypeScript class definition, that is, either a class declaration statement or a class expression.

ClassExpr

A class expression.

ClassExprScope

A scope induced by a named class expression or class expression with type parameters.

ClassOrInterface

An ECMAScript 2015/TypeScript class definition or a TypeScript interface definition, including both declarations and expressions.

ClassType

A type that refers to a class, possibly with type arguments.

CleartextPasswordExpr

An expression that might contain a clear-text password.

CliColorStep

A step through the cli-color library.

CliHighlightStep

A step through the cli-highlight library.

ClientRequest

A call that performs a request to a URL.

ClientSideRemoteFlowKind

A type of remote flow source that is specific to the browser environment.

ClientSideRemoteFlowSource

A source of remote input in a web browser environment.

CodeInAttribute

A code snippet originating from an HTML attribute value.

ColoretteStep

A step through the colorette library.

ColorsStep

A step through the colors library. This step ignores the String.prototype modifying part of the colors library.

CommandLineArguments

An object containing command-line arguments, potentially parsed by a library.

Comment

A JavaScript source-code comment.

Comparison

A comparison expression, that is, either an equality test (==, !=, ===, !==) or a relational expression (<, <=, >=, >).

CompoundAssignExpr

A compound assign expression.

ComprehensionBlock

A comprehension block in a comprehension expression.

ComprehensionBlockScope

A scope induced by a comprehension block.

ComprehensionExpr

A comprehension expression, that is, either an array comprehension expression or a generator expression.

ConcreteControlFlowNode

A CFG node corresponding to a program element, that is, a CFG node that is not a SyntheticControlFlowNode.

ConditionGuardNode

A guard node recording that some condition is known to be truthy or falsy at this point in the program.

ConditionalExpr

A conditional expression.

ConditionalTypeExpr

A conditional type annotation, such as T extends any[] ? A : B.

ConditionalTypeScope

A scope induced by a conditional type expression whose extends type contains infer types.

ConstDeclStmt

A const declaration statement.

ConstantExpr

An expression that evaluates to a constant primitive value.

ConstantString

An expression that evaluates to a constant string.

Constructor

A constructor defined in a class.

ConstructorCallSignature

A constructor call signature declared in an interface.

ConstructorCallSignatureType

A constructor call signature in a type, that is, a signature with the new keyword.

ConstructorDeclaration

A constructor declaration in a class, either a concrete definition or a signature without a body.

ConstructorDefinition

The concrete constructor definition of a class, possibly a synthetic constructor if the class did not declare any constructors.

ConstructorSignature

A constructor signature declared in a class, that is, a constructor without a function body.

ConstructorTag

A @constructor tag.

ConstructorTypeExpr

A constructor type, such as new (x: string) => Object.

ContinueStmt

A continue statement.

ContributorInfo

A representation of contributor information for an NPM package.

ControlFlowEntryNode

A synthetic CFG node marking the entry point of a function or toplevel script.

ControlFlowExitNode

A synthetic CFG node marking the exit of a function or toplevel script.

ControlFlowNode

A node in the control flow graph, which is an expression, a statement, or a synthetic node.

ControlStmt

A control statement, that is, is a loop, an if statement, a switch statement, a with statement, a try statement, or a catch clause.

CredentialsFunctionName

A method that might return sensitive data, based on the name.

CredentialsNode

An expression whose value is used to supply credentials such as a user name, a password, or a key.

CryptographicKey

A key used in a cryptographic algorithm.

CryptographicKeyCreation

The creation of a cryptographic key.

CryptographicKeyCredentialsExpr

A key used in a cryptographic algorithm, viewed as a CredentialsNode.

CryptographicOperation

A data-flow node that is an application of a cryptographic algorithm. For example, encryption, decryption, signature-validation.

CustomAbstractValue

A custom abstract value corresponding to an abstract value tag.

CustomAbstractValueDefinition

A data-flow node that induces an analysis-specific abstract value.

CustomAbstractValueFromDefinition

An abstract representation of an analysis-specific value.

CustomAbstractValueFromDefinitionNode

Flow analysis for custom abstract values.

CustomAbstractValueTag

A string tag corresponding to a custom abstract value.

DatabaseAccess

A data flow node that performs a database access.

DbLocation

A location as given by a file, a start line, a start column, an end line, and an end column.

DebuggerStmt

A debugger statement.

DecExpr

A (pre or post) decrement expression.

DeclStmt

A declaration statement, that is, a var, const or let declaration (including legacy ‘let’ statements).

DeclarationSpace

A string representing one of the three TypeScript declaration spaces: variable, type, or namespace.

Decoratable

A program element to which decorators can be applied, that is, a class, a property or a member definition.

Decorator

A decorator applied to a class, property or member definition.

DefiniteAbstractValue

A definite abstract value, that is, an abstract value that is not affected by analysis incompleteness.

DeleteExpr

A delete expression.

DestructuringPattern

A destructuring pattern, that is, either an array pattern or an object pattern.

DirectEval

A direct call to eval.

Directive

A directive: string literal expression statement in the beginning of a statement container.

DivExpr

A division expression.

DoWhileStmt

A do-while loop.

DocComment

A JSDoc comment.

Documentable

A program element that can have a JSDoc comment.

DomGlobalVariable

A global variable whose declared type extends a DOM root type.

DomMethodCallNode

A call to a DOM method.

DomPropertyWrite

An assignment to a property of a DOM object.

DotExpr

A dot expression.

DynamicImportExpr

A dynamic import expression.

EOFToken

An end-of-file token.

ES2015Component

A React component implemented as a class

ES2015Module

An ECMAScript 2015 module.

ES2015PromiseAllDefinition

An aggregated promise created using Promise.all().

ES5Component

A legacy React component implemented using React.createClass or create-react-class.

EmailSender

An operation that sends an email.

EmptyStmt

An empty statement.

EnhancedForLoop

A for-in, for-of or for each-in loop.

EntryBasicBlock

An entry basic block, that is, a basic block whose first node is the entry node of a statement container.

EnumDeclaration

A TypeScript enum declaration, such as the following declaration: enum Color { red = 1, green, blue }

EnumLiteralType

A type that refers to the value of an enum member.

EnumMember

A member of a TypeScript enum declaration, such as red in the following declaration: enum Color { red = 1, green, blue }

EnumScope

A scope induced by an enum declaration, containing the names of its enum members.

EnumType

A type that refers to an enum.

EqExpr

An equality test using ==.

EqualityTest

An equality test using ==, !=, === or !==.

Error

An error encountered during extraction.

EventDispatch

A dispatch of an event on an EventEmitter.

EventEmitter

An EventEmitter instance that implements the EventEmitter API. Extend EventEmitter::Range to mark something as being an EventEmitter.

EventHandlerCode

A code snippet originating from an event handler attribute.

EventRegistration

A registration of an event handler on an EventEmitter.

ExpExpr

An exponentiation expression.

ExportAsNamespaceDeclaration

A TypeScript export of form export as namespace X where X is an identifier.

ExportAssignDeclaration

A TypeScript “export-assign” declaration.

ExportDeclaration

An export declaration.

ExportDefaultDeclaration

A default export declaration.

ExportDefaultSpecifier

A default export specifier.

ExportNamedDeclaration

A named export declaration. * Examples:

ExportNamespaceSpecifier

A namespace export specifier, that is * or * as x occurring in an export declaration.

ExportSpecifier

An export specifier in an export declaration.

ExportVarAccess

An identifier that occurs in a named export declaration.

Expr

An expression.

ExprOrStmt

A program element that is either an expression or a statement.

ExprOrType

A program element that is either an expression or a type annotation.

ExprOrVarDecl

An expression or a variable declaration statement.

ExprStmt

An expression statement.

ExpressionWithTypeArguments

An expression with type arguments, occurring as the super-class expression of a class, for example: class StringList extends List<string> In the above example, List is a concrete expression, string is a type annotation, and List<string> is thus an expression with type arguments.

ExtendCall

A call to an extend-like function, which copies properties from one or more objects into another object, and returns the result.

ExtendsTag

An @extends tag.

ExternalConstructor

A constructor function defined in an externs file.

ExternalDecl

A declaration in an externs file.

ExternalEntity

A function or object defined in an externs file.

ExternalFunction

A function defined in an externs file.

ExternalGlobalDecl

A global declaration of a function or variable in an externs file.

ExternalGlobalFunctionDecl

A global function declaration in an externs file.

ExternalGlobalVarDecl

A global variable declaration in an externs file.

ExternalInstanceMemberDecl

An instance member variable declaration in an externs file.

ExternalInterface

An interface function defined in an externs file.

ExternalMemberDecl

A member variable declaration in an externs file.

ExternalModuleDeclaration

A TypeScript declaration of form declare module "X" {...} where X is the name of an external module.

ExternalModuleReference

A require() call in a TypeScript import-equals declaration, such as require("foo") in: import foo = require("foo");

ExternalModuleScope

A scope induced by a declaration of form declare module "X" {...}.

ExternalScript

A stand-alone file or an external script originating from an HTML <script> element.

ExternalStaticMemberDecl

A static member variable declaration in an externs file.

ExternalType

A constructor or interface function defined in an externs file.

ExternalTypeTag

A @type tag.

ExternalTypedef

A typedef declaration in an externs file.

ExternalVarDecl

A variable or function declaration in an externs file.

Externs

A toplevel syntactic entity containing Closure-style externs definitions.

FieldDeclaration

A field declaration in a class or interface, either a concrete definition or an abstract or ambient field signature.

FieldDefinition

A concrete field definition in a class.

FieldParameter

A constructor parameter that induces a field in its class.

FieldSignature

A field signature declared in a class or interface, that is, an abstract or ambient field declaration.

File

A file.

FileNameSource

A data flow node that contains a file name or an array of file names from the local file system.

FileSystemAccess

A data flow node that performs a file system access (read, write, copy, permissions, stats, etc).

FileSystemReadAccess

A data flow node that reads data from the file system.

FileSystemWriteAccess

A data flow node that writes data to the file system.

FileType

A file type.

Folder

A folder.

ForEachStmt

A for each-in loop.

ForInComprehensionBlock

A for-in comprehension block in a comprehension expression.

ForInScope

A scope induced by a for-in or for-of statement.

ForInStmt

A for-in loop.

ForOfComprehensionBlock

A for-of comprehension block in a comprehension expression.

ForOfStmt

A for-of loop.

ForScope

A scope induced by a for statement.

ForStmt

A for loop.

Function

A function as defined either by a function declaration or a function expression.

FunctionBindExpr

A function-bind expression.

FunctionCallSignature

A function call signature declared in an interface.

FunctionCallSignatureType

A function call signature in a type, that is, a signature without the new keyword.

FunctionCompositionCall

A call to a function that constructs a function composition f(g(h(...))) from a series of functions f, g, h, ....

FunctionDeclStmt

A function declaration statement.

FunctionExpr

A (non-arrow) function expression.

FunctionExternal

The externs definition for the Function object.

FunctionScope

A scope induced by a function.

FunctionSentExpr

A function.sent expression.

FunctionTypeExpr

A TypeScript function type, such as (x: string) => number or a constructor type such as new (x: string) => Object.

FunctionWithAnalyzedParameters

A function with inter-procedural type inference for its parameters.

FunctionalComponent

A React component implemented as a plain function.

GEExpr

A greater-than-or-equal expression.

GTExpr

A greater-than expression.

GeneratedCodeExpr

A placeholder for some code generated by a templating engine, speculatively parsed as an expression.

GeneratorExpr

A generator expression.

GenericTypeExpr

A type consisting of a name and at least one type argument, such as Array<number>.

GetterMethodDeclaration

A getter method declaration in a class or interface, either a concrete definition or a signature without a function body.

GetterMethodDefinition

A concrete getter method definition in a class, that is, a getter method with a function body.

GetterMethodSignature

A getter method signature declared in a class or interface, that is, a getter method without a function body.

GlobalAugmentationDeclaration

A TypeScript declaration of form declare global {...}.

GlobalScope

The global scope.

GlobalVarAccess

An identifier that refers to a global variable.

GlobalVarDecl

An identifier that declares a global variable.

GlobalVariable

A global variable.

GuardControlFlowNode

A synthetic CFG node recording that some condition is known to hold at this point in the program.

HasOwnPropertyCall

A call to Object.prototype.hasOwnProperty, Object.hasOwn, or a library that implements the same functionality.

HtmlCommentEnd

An HTML comment end token interpreted as a line comment.

HtmlCommentStart

An HTML comment start token interpreted as a line comment.

HtmlLineComment

An HTML comment start/end token interpreted as a line comment.

HtmlSanitizerCall

A call that sanitizes HTML in a string, either by replacing meta characters with their HTML entities, or by removing certain HTML tags entirely.

Identifier

An identifier.

IdentifierToken

An identifier token.

IfStmt

An if statement.

ImmediatelyInvokedFunctionExpr

An immediately invoked function expression (IIFE).

ImplementsTag

An @implements tag.

Import

An import in a module, which may be an ECMAScript 2015-style import statement, a CommonJS-style require import, or an AMD dependency.

ImportDeclaration

An import declaration.

ImportDefaultSpecifier

A default import specifier.

ImportEqualsDeclaration

A TypeScript “import-equals” declaration.

ImportMetaExpr

An import.meta expression.

ImportNamespaceAccess

An import used in the context of a namespace inside a type annotation, such as in let x: import("http").ServerRequest.

ImportNamespaceSpecifier

A namespace import specifier.

ImportSpecifier

An import specifier in an import declaration.

ImportTypeAccess

An import used in the context of a type, such as in let x: import("foo").

ImportTypeExpr

An import inside a type annotation, such as in import("http").ServerRequest.

ImportVarTypeAccess

An import used in the context of a variable type, such as in let x: typeof import("fs").

InExpr

An in expression.

IncExpr

A (pre or post) increment expression.

InclusionTest

An expression that checks if an element is contained in an array or is a substring of another string.

IndefiniteAbstractValue

An indefinite abstract value representing an unknown value.

IndefiniteFunctionOrClass

An indefinite abstract value representing an unknown function or class.

IndefiniteObject

An indefinite abstract value representing an unknown object.

IndexExpr

An index expression (also known as computed property access).

IndexSignature

An index signature declared in an interface.

IndexedAccessTypeExpr

A type of form T[K] where T and K are types.

InferTypeExpr

A type annotation of form infer R.

InfiniteRepetitionQuantifier

A regular expression term that permits unlimited repetitions.

InlineScript

A script embedded inline in an HTML <script> element.

InstanceofExpr

An instanceof expression.

InterfaceDeclaration

A TypeScript interface declaration.

InterfaceDefinition

A TypeScript interface declaration, inline interface type, or function type.

InterfaceScope

A scope induced by an interface declaration, containing the type parameters declared on the interface.

InterfaceType

A type that refers to an interface, possibly with type arguents.

InterfaceTypeExpr

An inline TypeScript interface type, such as {x: number; y: number}.

IntersectionType

An intersection type, such as T & {x: number}.

IntersectionTypeExpr

A type of form S&T, denoting the intersection of type S and type T.

InvokeExpr

An invocation expression, that is, either a function call or a new expression.

IsTypeExpr

A function return type of form x is T or asserts x is T.

JSDoc

A JSDoc comment.

JSDocAnyTypeExpr

An any type expression.

JSDocAppliedTypeExpr

An applied type expression.

JSDocArrayTypeExpr

An array type expression.

JSDocError

An error encountered while parsing a JSDoc comment.

JSDocFunctionTypeExpr

A function type expression.

JSDocNamedTypeExpr

A type expression referring to a named type.

JSDocNonNullableTypeExpr

A non-nullable type expression.

JSDocNullTypeExpr

A null type expression.

JSDocNullableTypeExpr

A nullable type expression.

JSDocOptionalParameterTypeExpr

An optional parameter type.

JSDocParamTag

A @param tag.

JSDocRecordTypeExpr

A record type expression.

JSDocRestParameterTypeExpr

A rest parameter type.

JSDocTag

A JSDoc tag.

JSDocTypeExpr

A JSDoc type expression.

JSDocTypeExprParent

A syntactic element that a JSDoc type expression may be nested in, that is, either a JSDoc tag or another JSDoc type expression.

JSDocUndefinedTypeExpr

A type expression representing the type of undefined.

JSDocUnionTypeExpr

A union type expression.

JSDocUnknownTypeExpr

A type expression representing an unknown type.

JSDocVoidTypeExpr

A type expression representing the void type.

JSLintDirective

A JSLint directive.

JSLintExplicitGlobal

A JSLint global directive.

JSLintGlobal

A JSLint directive declaring global variables.

JSLintOptions

A JSLint options directive.

JSLintProperties

A JSLint properties directive.

JSParseError

A JavaScript parse error encountered during extraction.

JavaScriptUrl

A code snippet originating from a URL with the javascript: URL scheme.

Json2CsvTaintStep

A taint step through the json2csv library.

JsonArray

A JSON-encoded array.

JsonBoolean

A JSON-encoded Boolean value.

JsonNull

A JSON-encoded null value.

JsonNumber

A JSON-encoded number.

JsonObject

A JSON-encoded object.

JsonParseError

An error reported by the JSON parser.

JsonParserCall

A call to a JSON parser such as JSON.parse.

JsonPrimitiveValue

A JSON-encoded primitive value.

JsonString

A JSON-encoded string value.

JsonStringifyCall

A call to a JSON stringifier such as JSON.stringify or require("util").inspect.

JsonValue

A JSON-encoded value, which may be a primitive value, an array or an object.

JsxAttribute

An attribute of a JSX element, including spread attributes.

JsxElement

A JSX element.

JsxEmptyExpr

An interpolating expression that interpolates nothing.

JsxFragment

A JSX fragment.

JsxName

A name of an JSX element or attribute (which is always an identifier, a dot expression, or a qualified namespace name).

JsxNode

A JSX element or fragment.

JsxPragma

A legacy @jsx pragma.

JsxQualifiedName

A namespace-qualified name such as n:a.

JsxSpreadAttribute

A spread attribute of a JSX element.

JumpStmt

A statement that disrupts structured control flow, that is, a continue statement, a break statement, a throw statement, or a return statement.

KeyofTypeExpr

A type of form keyof T where T is a type.

KeywordToken

A keyword token.

KleurStep

A step through the kleur library.

LEExpr

A less-than-or-equal expression.

LShiftExpr

A left-shift expression using <<.

LTExpr

A less-than expression.

LValue

A variable reference or property access that is written to.

Label

A statement or property label, that is, an identifier that does not refer to a variable.

LabeledStmt

A labeled statement.

LegacyLetExpr

An old-style let expression of the form let(vardecls) expr.

LegacyLetStmt

A legacy let statement, that is, a statement of the form let(vardecls) stmt.

LetStmt

A let declaration statement.

LexicalAccess

An identifier that refers to a variable, type, or namespace, or a combination of these, in a non-declaring position.

LexicalDecl

An identifier that declares a variable, type, or namespace, or a combination of these.

LexicalName

A name that is declared in a particular scope.

LexicalRef

An identifier that refers to a variable, type, or namespace, or a combination of these.

LexicalTypeVariableType

A type that refers to a type variable without a canonical name.

Line

A line of text (code, comment, or whitespace) in a source file.

LineComment

A line comment, that is, either an HTML comment or a // comment.

Literal

A literal.

LiteralType

A boolean, number, or string literal type.

LiteralTypeExpr

A string, number, or boolean literal used as a type.

LocalFunction

A function that only is used locally, making it amenable to type inference.

LocalNamespaceAccess

An identifier that refers to a namespace from inside a type annotation.

LocalNamespaceDecl

An identifier that declares a local name for a namespace, that is, the name of an actual namespace declaration or the local name of an import.

LocalNamespaceName

The local name for a namespace in a particular scope.

LocalScope

A local scope, that is, a scope that is not the global scope.

LocalTypeAccess

An identifier that is used as part of a type, such as Date.

LocalTypeName

The local name for a type in a particular scope.

LocalVarTypeAccess

An identifier that refers to a variable from inside a type.

LocalVariable

A local variable or a parameter.

Locatable

A program element with a location.

LogAndExpr

A logical ‘and’ expression.

LogNotExpr

A logical negation expression.

LogOrExpr

A logical ‘or’ expression.

LoggerCall

A call to a logging mechanism.

LogicalBinaryExpr

A short-circuiting logical binary expression, that is, a logical ‘or’ expression, a logical ‘and’ expression, or a nullish-coalescing expression.

LogicalExpr

A logical expression using &&, ||, or !.

LoopStmt

A loop, that is, a while loop, a do-while loop, a for loop, or a for-in loop.

MappedTypeExpr

A type of form { [K in C]: T } where K in C declares a type parameter with C as the bound, and T is a type that may refer to K.

MappedTypeScope

A scope induced by a mapped type expression, containing the type parameter declared as part of the type.

MemberDeclaration

A member declaration in a class or interface, that is, either a method declaration or a field declaration.

MemberDefinition

A concrete member of a class, that is, a non-abstract, non-ambient field or method with a body.

MemberSignature

A member signature declared in a class or interface, that is, an abstract or ambient field or method without a function body.

MembershipCandidate

An expression that is tested for membership of a collection.

Method

A method defined in a class or object expression.

MethodCallExpr

A method call expression.

MethodDeclaration

A method declaration in a class or interface, either a concrete definition or a signature without a body.

MethodDefinition

A concrete method definition in a class.

MethodSignature

A method signature declared in a class or interface, that is, a method without a function body.

ModExpr

A modulo expression.

Module

A module, which may either be an ECMAScript 2015-style module, a CommonJS module, or an AMD module.

ModuleAccess

A reference to the special module variable.

ModuleScope

A scope induced by a Node.js or ES2015 module

MulExpr

A multiplication expression.

NEqExpr

An inequality test using !=.

NamedExportSpecifier

A named export specifier.

NamedImportSpecifier

A named import specifier.

Namespace

The canonical name for a namespace.

NamespaceAccess

A possibly qualified name that refers to a namespace from inside a type annotation.

NamespaceDeclaration

A TypeScript namespace declaration.

NamespaceDefinition

A statement that defines a namespace, that is, a namespace declaration or enum declaration.

NamespaceRef

A possibly qualified identifier that refers to or declares a local name for a namespace.

NamespaceScope

The lexical scope induced by a TypeScript namespace declaration.

NegExpr

An arithmetic negation expression (also known as unary minus).

NeverType

The never type.

NewExpr

A new expression.

NewTargetExpr

A new.target expression.

NodeModule

A Node.js module.

NonNullAssertion

A TypeScript expression of form E!, asserting that E is not null.

NonStrictEqualityTest

A non-strict equality test using != or ==.

NpmPackage

An NPM package.

NullLiteral

A null literal.

NullLiteralToken

A null literal token.

NullType

The null type.

NullishCoalescingExpr

A nullish coalescing ‘??’ expression.

NumberLikeType

The number type or a number literal type.

NumberLiteral

A numeric literal.

NumberLiteralType

A number literal as a static type.

NumberLiteralTypeExpr

A number literal used as a type.

NumberType

The predefined number type.

NumericLiteralToken

A numeric literal token.

ObjectExpr

An object literal, containing zero or more property definitions.

ObjectExternal

The externs definition for the Object object.

ObjectKeywordType

The object type.

ObjectPattern

An object pattern.

OptionalChainRoot

INTERNAL: This class should not be used by queries.

OptionalTypeExpr

An optional type element in a tuple type, such as number? in [string, number?].

OptionalUse

A call or member access that evaluates to undefined if its base operand evaluates to undefined or null.

OriginalExportDeclaration

An export declaration that exports zero or more declarations from the module it appears in.

PackageDependencies

A representation of package dependencies for an NPM package.

PackageJson

A package.json configuration object.

ParExpr

A parenthesized expression.

Parameter

A parameter declaration in a function or catch clause.

ParameterField

A field induced by an initializing constructor parameter.

Parameterized

A program element that declares parameters, that is, either a function or a catch clause.

ParenthesizedTypeExpr

A type expression enclosed in parentheses.

Path

An absolute file system path referenced in the program, which may (but does not have to) correspond to a file or folder included in the snapshot.

PathExpr

An expression whose value represents a (relative or absolute) file system path.

PathExprCandidate

An expression that appears in a syntactic position where it may represent a path.

PathString

A string value that represents a (relative or absolute) file system path.

PersistentReadAccess

A data flow node that reads persistent data.

PersistentWriteAccess

A data flow node that writes persistent data.

PlainArrayType

An array type such as Array<string>, or equivalently, string[].

PlainFunctionTypeExpr

A function type that is not a constructor type, such as (x: string) => number.

PlainSymbolType

The symbol type.

PlusExpr

A unary plus expression.

PostDecExpr

A postfix decrement expression.

PostIncExpr

A postfix increment expression.

PostMessageEventHandler

An event handler that handles postMessage events.

PreDecExpr

A prefix decrement expression.

PreIncExpr

A prefix increment expression.

PreactComponent

A Preact component.

PredefinedTypeExpr

A use of the predefined type any, string, number, boolean, null, undefined, void, never, symbol, or object.

PredicateTypeExpr

A function return type that refines the type of one of its parameters or this.

PrefixTypeAssertion

A type assertion specifically of the form <T> E (as opposed to the E as T syntax).

PrettyJsonTaintStep

A step through the prettyjson library. This is not quite a JSON.stringify call, as it e.g. does not wrap keys in double quotes. It’s therefore modeled as a taint-step rather than as a JSON.stringify call.

PrimitiveAbstractValue

A definite abstract value that represents only primitive concrete values.

PrintfStyleCall

A printf-style call that substitutes the embedded format specifiers of a format string for the format arguments.

PromiseAllCreation

A promise that is created using a Promise.all(array) call.

PromiseCandidate

A call that looks like a Promise.

PromiseCreationCall

A promise that is created and resolved with one or more value.

PromiseDefinition

A definition of a Promise object.

PromiseType

A type such as Promise<T>, describing a promise or promise-like object.

PropAccess

A property access, that is, either a dot expression of the form e.f or an index expression of the form e[p].

Property

A property definition in an object literal, which may be either a value property, a property getter, or a property setter.

PropertyAccessor

A property getter or setter in an object literal.

PropertyGetter

A property getter in an object literal.

PropertyPattern

A property pattern in an object pattern.

PropertyProjection

A property projection call such as _.get(o, 'a.b'), which is equivalent to o.a.b.

PropertySetter

A property setter in an object literal.

ProtectCall

A call to a function whose name suggests that it encodes or encrypts its arguments.

PunctuatorToken

A punctuator token.

PurelyLocalVariable

A local variable that is not captured.

QualifiedNamespaceAccess

A qualified name that refers to a namespace from inside a type annotation.

QualifiedTypeAccess

A qualified name that is used as part of a type, such as http.ServerRequest.

QualifiedVarTypeAccess

A qualified name that refers to a variable from inside a type.

RShiftExpr

A right-shift expression using >>.

RValue

A variable reference or property access that is read from.

ReExportDeclaration

An export declaration that re-exports declarations from another module.

ReExportDefaultSpecifier

A default export specifier in a re-export declaration.

ReachableBasicBlock

A basic block that is reachable from an entry basic block.

ReachableJoinBlock

A reachable basic block with more than one predecessor.

ReactComponent

An object that implements the React component interface.

ReactElementDefinition

A DOM element created by a React function.

ReadonlyArrayType

A read-only array type such as ReadonlyArray<string>.

ReadonlyTypeExpr

A type of form readonly T, such as readonly number[].

RefExpr

An expression that can be evaluated to a reference, that is, a variable reference or a property access.

ReferenceImport

A TypeScript comment of one of the two forms: /// <reference path="FILE.d.ts"/> /// <reference types="NAME"/>

ReferencePathImport

A TypeScript comment of the form: /// <reference path="FILE.d.ts"/>

ReferenceTypesImport

A TypeScript comment of the form: /// <reference types="NAME" />

RegExpAlt

An alternative term, that is, a term of the form a|b.

RegExpAnchor

A dollar $ or caret assertion ^ matching the beginning or end of a line.

RegExpBackRef

A back reference, that is, a term of the form \i or \k<name> in a regular expression.

RegExpCaret

A caret assertion ^ matching the beginning of a line.

RegExpCharEscape

A character escape in a regular expression.

RegExpCharacterClass

A character class in a regular expression.

RegExpCharacterClassEscape

A character class escape in a regular expression.

RegExpCharacterRange

A character range in a character class in a regular expression.

RegExpConstant

A constant regular expression term, that is, a regular expression term matching a single string.

RegExpControlEscape

A control character escape in a regular expression.

RegExpDecimalEscape

A decimal character escape in a regular expression.

RegExpDollar

A dollar assertion $ matching the end of a line.

RegExpDot

A dot regular expression.

RegExpEscape

An escaped regular expression term, that is, a regular expression term starting with a backslash.

RegExpGroup

A grouped regular expression.

RegExpHexEscape

A hexadecimal character escape in a regular expression.

RegExpIdentityEscape

An identity escape, that is, an escaped character in a regular expression that just represents itself.

RegExpLiteral

A regular expression literal.

RegExpLookahead

A zero-width lookahead assertion.

RegExpLookbehind

A zero-width lookbehind assertion.

RegExpNegativeLookahead

A negative-lookahead assertion.

RegExpNegativeLookbehind

A negative-lookbehind assertion.

RegExpNonWordBoundary

A non-word boundary assertion.

RegExpNormalConstant

A sequence of normal characters without special meaning in a regular expression.

RegExpOctalEscape

An octal character escape in a regular expression.

RegExpOpt

An optional term.

RegExpParent

An element containing a regular expression term, that is, either a regular expression literal, a string literal (parsed as a regular expression), or another regular expression term.

RegExpParseError

A parse error encountered while processing a regular expression literal.

RegExpPatternSource

A node whose value may flow to a position where it is interpreted as a part of a regular expression.

RegExpPlus

A plus-quantified term.

RegExpPositiveLookahead

A positive-lookahead assertion.

RegExpPositiveLookbehind

A positive-lookbehind assertion.

RegExpQuantifier

A quantified regular expression term.

RegExpRange

A range-quantified term

RegExpSequence

A sequence term.

RegExpStar

A star-quantified term.

RegExpSubPattern

A zero-width lookahead or lookbehind assertion.

RegExpTerm

A regular expression term, that is, a syntactic part of a regular expression.

RegExpUnicodeEscape

A unicode character escape in a regular expression.

RegExpUnicodePropertyEscape

A Unicode property escape in a regular expression.

RegExpWordBoundary

A word boundary assertion.

RegularExpressionToken

A regular expression literal token.

RelationalComparison

A relational comparison using <, <=, >=, or >.

RemoteFlowSource

A data flow source of remote user input.

RepositoryInfo

A representation of repository information for an NPM package.

Require

A require import.

ResolvedES2015PromiseDefinition

A resolved promise created by the standard ECMAScript 2015 Promise.resolve function.

ResolvedPromiseDefinition

A promise that is created using a .resolve() call.

RestTypeExpr

A rest element in a tuple type, such as ...string[] in [number, ...string[]].

ReturnStmt

A return statement.

SatisfiesExpr

A satisfies type asserion of the form E satisfies T where E is an expression and T is a type.

Scope

A scope in which variables can be declared.

ScopeElement

A program element that induces a scope.

Script

A stand-alone file or script originating from an HTML <script> element.

SelectiveImportDeclaration

A selective import that imports zero or more declarations.

SelectiveReExportDeclaration

A named export declaration that re-exports symbols imported from another module.

SensitiveAction

A sensitive action, such as transfer of sensitive data.

SensitiveCall

A function call that might produce sensitive data.

SensitiveDataClassification

A classification of different kinds of sensitive data:

SensitiveDataFunctionName

A function name that suggests it may produce sensitive data.

SensitiveFunctionName

A function name that suggests it may be sensitive.

SensitiveNode

An expression that might contain sensitive data.

SensitiveVariableAccess

An access to a variable or property that might contain sensitive data.

SensitiveWrite

A write to a location that might contain sensitive data.

SeqExpr

A sequence expression (also known as comma expression).

SetterMethodDeclaration

A setter method declaration in a class or interface, either a concrete definition or a signature without a body.

SetterMethodDefinition

A concrete setter method definition in a class, that is, a setter method with a function body

SetterMethodSignature

A setter method signature declared in a class or interface, that is, a setter method without a function body.

ShiftExpr

A shift expression.

SignatureKind

A value indicating if a signature is a function or constructor signature.

SimpleParameter

A parameter declaration that is not an object or array pattern.

SlashSlashComment

A // comment.

SlashStarComment

A C-style block comment which is not a JSDoc comment.

SliceAnsiStep

A step through the slice-ansi library.

SpreadElement

A spread element.

SpreadProperty

A spread property in an object literal.

SsaDefinition

An SSA definition.

SsaExplicitDefinition

An SSA definition that corresponds to an explicit assignment or other variable definition.

SsaImplicitDefinition

An SSA definition that does not correspond to an explicit variable definition.

SsaImplicitInit

An SSA definition representing the implicit initialization of a variable at the beginning of its scope.

SsaPhiNode

An SSA phi node, that is, a pseudo-definition for a variable at a point in the flow graph where otherwise two or more definitions for the variable would be visible.

SsaPseudoDefinition

An SSA definition that has no actual semantics, but simply serves to merge or filter data flow.

SsaRefinementNode

A refinement node, that is, a pseudo-definition for a variable at a point in the flow graph where additional information about this variable becomes available that may restrict its possible set of values.

SsaSourceVariable

A variable that can be SSA converted, that is, a local variable.

SsaVariable

An SSA variable.

SsaVariableCapture

An SSA definition representing the capturing of an SSA-convertible variable in the closure of a nested function.

StaticInitializer

A static initializer in a class.

Stmt

A statement.

StmtContainer

A program element that contains statements, but isn’t itself a statement, in other words a toplevel or a function.

StrictEqExpr

A strict equality test using ===.

StrictEqualityTest

A strict equality test using !== or ===.

StrictNEqExpr

A strict inequality test using !==.

StringLikeType

The string type or a string literal type.

StringLiteral

A string literal, either single-quoted or double-quoted.

StringLiteralToken

A string literal token.

StringLiteralType

A string literal as a static type.

StringLiteralTypeExpr

A string literal used as a type.

StringReplaceCall

A call to String.prototype.replace.

StringSplitCall

A call to String.prototype.split.

StringType

The predefined string type.

StripAnsiStep

A step through the strip-ansi library.

SubExpr

A subtraction expression.

SuperCall

A super(...) call.

SuperExpr

A super expression.

SuperPropAccess

A property access on super.

SwitchStmt

A switch statement.

SymbolType

The symbol type or a specific unique symbol type.

SyntheticConstructor

A function generated by the extractor to implement a synthetic default constructor.

SyntheticControlFlowNode

A synthetic CFG node that does not correspond to a statement or expression; examples include guard nodes and entry/exit nodes.

SystemCommandExecution

A data flow node that executes an operating system command, for instance by spawning a new process.

TSGlobalDeclImport

A reference to a global variable for which there is a TypeScript type annotation suggesting that it contains the namespace object of a module.

TaggedTemplateExpr

A tagged template literal expression.

TemplateElement

A constant template element.

TemplateLiteral

A template literal.

TemplateLiteralTypeExpr

A template literal used as a type.

ThisExpr

A this expression.

ThisType

A this type in a specific class or interface.

ThisTypeExpr

A use of the this type.

ThisVarTypeAccess

A this keyword used as the first operand to an is type.

ThreatModelSource

A data flow source, for a specific threat-model.

ThrowStmt

A throw statement.

Token

A token occurring in a piece of JavaScript source code.

TopLevel

A toplevel syntactic unit; that is, a stand-alone script, an inline script embedded in an HTML <script> tag, a code snippet assigned to an HTML event handler attribute, or a javascript: URL.

TryStmt

A try statement.

TupleType

A tuple type, such as [number, string].

TupleTypeExpr

A tuple type such as [number, string].

Type

A static type in the TypeScript type system.

TypeAccess

A possibly qualified name that is used as part of a type, such as Date or http.ServerRequest.

TypeAliasDeclaration

A type alias declaration, that is, a statement of form type A = T.

TypeAliasReference

A type that refers to a type alias.

TypeAliasScope

A scope induced by a type alias declaration, containing the type parameters declared the the alias.

TypeAnnotation

A type annotation, either in the form of a TypeScript type or a JSDoc comment.

TypeAssertion

A type assertion, also known as an unchecked type cast, is a TypeScript expression of form E as T or <T> E where E is an expression and T is a type.

TypeDecl

An identifier declaring a type name, that is, the name of a class, interface, type parameter, or import.

TypeDefinition

A statement that defines a named type, that is, a class, interface, type alias, or enum declaration.

TypeExpr

A type expression, that is, an AST node that is part of a TypeScript type annotation.

TypeName

The canonical name for a type.

TypeParameter

A type parameter declared on a class, interface, function, or type alias.

TypeParameterized

A program element that supports type parameters, that is, a function, class, interface, type alias, mapped type, or infer type.

TypeRef

A possibly qualified identifier that declares or refers to a type.

TypeReference

A type that refers to a class, interface, enum, or enum member.

TypeRootFolder

A folder where TypeScript finds declaration files for imported modules.

TypeVariableType

A type that refers to a type variable.

TypeofExpr

A typeof expression.

TypeofType

The type of a named value, typeof X, typically denoting the type of a class constructor, namespace object, enum object, or module object.

TypeofTypeExpr

A type of form typeof E where E is a possibly qualified name referring to a variable, function, class, or namespace.

URShiftExpr

An unsigned right-shift expression using >>>.

UnaryExpr

An expression with a unary operator.

UndefinedType

The undefined type.

UnionOrIntersectionType

A union type or intersection type, such as string | number or T & U.

UnionOrIntersectionTypeExpr

A union or intersection type, such as string|number|boolean or A & B.

UnionType

A union type, such as string | number.

UnionTypeExpr

A union type, such as string|number|boolean.

UniqueSymbolType

A unique symbol type.

Unit

The trivial type with a single element.

UnknownType

The predefined unknown type.

UnreachableBlock

An unreachable basic block, that is, a basic block whose first node is unreachable.

UpdateExpr

An update expression, that is, an increment or decrement expression.

UsingDeclStmt

A using declaration statement.

ValueProperty

A value property definition in an object literal.

VarAccess

An identifier that refers to a variable in a non-declaring position.

VarDecl

An identifier that declares a variable.

VarDeclStmt

A var declaration statement.

VarDef

A ControlFlowNode that defines (that is, initializes or updates) variables or properties.

VarRef

An identifier that refers to a variable, either in a declaration or in a variable access.

VarTypeAccess

A possibly qualified name that refers to a variable from inside a type.

VarUse

A ControlFlowNode that uses (that is, reads from) a single variable.

Variable

A variable declared in a scope.

VariableDeclarator

A variable declarator declaring a local or global variable.

VoidExpr

A void expression.

VoidType

The void type.

WebStorageWrite

A value written to web storage, like localStorage or sessionStorage.

WhileStmt

A while loop.

WithStmt

A with statement.

WrapAnsiStep

A step through the wrap-ansi library.

XOrExpr

An exclusive ‘or’ expression.

XUnitAnnotation

An xUnit.js annotation, such as [Fixture] or [Data(23)] annotating a target declaration or definition.

XUnitAttribute

An xUnit.js attribute appearing in an annotation.

XUnitFact

An xUnit.js fact.

XUnitFactAnnotation

An xUnit.js Fact annotation.

XUnitFixture

An xUnit.js fixture.

XUnitFixtureAnnotation

An xUnit.js Fixture annotation.

XUnitTarget

A declaration or definition that can serve as the target of an xUnit.js annotation: a function declaration, a variable declaration, or an assignment.

YieldExpr

A yield expression.

Datatypes

TAbstractValue

An abstract value inferred by the flow analysis.

Modules

API

Provides classes and predicates for working with the API boundary between the current codebase and external libraries.

AST

Provides a class ValueNode encompassing all program elements that evaluate to a value at runtime.

AWS
AbstractInstance
AccessPath

Provides predicates for associating access paths with data flow nodes.

AmdModuleDefinition

Companion module to the AmdModuleDefinition class.

Angular2

Provides classes for working with Angular (also known as Angular 2.x) applications.

AngularJS

Provides classes for working with AngularJS (also known as Angular 1.x) applications.

ArrayTaintTracking

Classes and predicates for modeling TaintTracking steps for arrays.

AsyncPackage
Azure
Babel
Base64
Bluebird

Provides classes for working with the bluebird library (http://bluebirdjs.com).

Cheerio
ClassValidator

Provides predicates for reasoning about sanitization via the class-validator library.

ClientRequest
ClientWebSocket

Provides classes that model WebSockets clients.

Closure
ClosureLibrary
CommandLineArguments

Provides a class for modeling new sources of remote user input.

Connect
CookieWrites

Classes and predicates for reasoning about writes to cookies.

CredentialsExpr

Companion module to the CredentialsExpr class.

Cryptography

Provides models for cryptographic things.

D3

Provides classes and predicates modeling aspects of the d3 library.

DOM
DataFlow
DeclarationSpace

Module containing the DeclarationSpace constants.

DigitalOcean
Directive

Module containing subclasses of the Directive class.

E4X
ESLint
Electron
EventDispatch
EventEmitter
EventRegistration
Express
ExpressLibraries
Fastify

Provides classes for working with Fastify applications.

FileUpload

Provides classes for working with the express-fileupload package (https://github.com/richardgirges/express-fileupload);

Firebase
FunctionCompositionCall

Companion module to the FunctionCompositionCall class.

GraphQL

Provides classes modeling concepts of GraphQL connectors.

HTML
Handlebars
Hapi
HeuristicNames

INTERNAL: Do not use.

History

Provides classes modeling the history library.

Http
InclusionTest
JQuery
JSDoc
JsonSchema

Provides classes and predicates for working with JSON schema libraries.

Knex

Provides classes and predicates for working with knex.

Koa
LazyCache
LdapJS

A module providing sinks and sanitizers for LDAP injection.

Linting
LodashUnderscore

Provides a unified model of lodash and underscore.

Markdown

A module providing taint-steps for common markdown parsers and generators.

MembershipCandidate

Provides classes for recognizing membership candidates.

ModelExport

Module for exporting type models for a given set of nodes in the API graph.

MooTools

Classes and predicates for working with MooTools code.

NestJS

Provides classes and predicates for reasoning about Nest.

NextJS

Provides classes and predicates modeling Next.js.

NoSql

Provides classes for modeling NoSql query sinks.

NodeJSLib
ParseTorrent

Provides classes for working with parse-torrent code.

PasswordHeuristics

Provides heuristics for classifying passwords.

PkgCloud
PromiseFlow

This module defines how data-flow propagates into and out of a Promise. The data-flow is based on pseudo-properties rather than tainting the Promise object (which is what PromiseTaintStep does).

PromiseTypeTracking

A module for supporting promises in type-tracking predicates. The PromiseTypeTracking::promiseStep predicate is used for type tracking in and out of promises, and is included in the standard type-tracking steps (SourceNode::track). The TypeTracker::startInPromise() predicate can be used to initiate a type-tracker where the tracked value is a promise.

Promises

Common predicates shared between type-tracking and data-flow for promises.

Promisify

Provides classes modeling libraries implementing promisify functions. That is, functions that convert callback style functions to functions that return a promise.

PropertyProjection
Punycode

Provides classes for working with punycode code.

Puppeteer

Classes and predicates modeling the puppeteer library.

Q

Provides classes for working with the q library (https://github.com/kriskowal/q) and the compatible kew library (https://github.com/Medium/kew).

Querydashstring

Provides classes for working with query-string code.

Querystring

Provides classes for working with querystring code.

Querystringify

Provides classes for working with querystringify code.

RangeAnalysis

Contains predicates for reasoning about the relative numeric value of expressions.

ReactNative
Redux

Provides classes and predicates for reasoning about data flow through the redux package.

RegExp
Request
Restify

Provides classes for working with Restify servers.

Routing

A model of routing trees, describing the composition of route handlers and middleware functions in a web server application. See Routing::Node for more details.

SQL
SensitiveDataClassification

Provides predicates to select the different kinds of sensitive data we support.

ServerWebSocket

Provides classes that model WebSocket servers.

ShellJS
SignatureKind
SocketIO

Provides classes for working with server-side socket.io code (npm package socket.io).

SocketIOClient

Provides classes for working with client-side socket.io code (npm package socket.io-client).

Spife

Provides classes for working with Spife applications.

Ssa
StringConcatenation
StringOps
SyntacticConstants

Provides classes for expressions that evaluate to constant values according to a bottom-up syntactic analysis.

TaintTracking

Provides classes for modeling taint propagation.

Templating
ThreatModelSource

Provides a class for modeling new sources for specific threat-models.

TrustedTypes

Module for working with uses of the Trusted Types API.

Typeahead
Uridashjs

Provides classes for working with uri-js code.

Urijs

Provides classes for working with urijs code.

Url

Provides classes for working with url code.

UrlParse

Provides classes for working with url-parse code.

Vue
Vuex

Provides classes and predicates for working with the vuex library.

Webix

Provides classes and predicates for working with the webix library.

XML

Module signatures

ModelExportSig

Specifies which parts of the API graph to export in ModelExport.

Aliases

AndBitwiseExpr

A bitwise ‘and’ expression.

AndLogicalExpr

A logical ‘and’ expression.

ArrayAccess

An index expression (also known as computed property access).

AssignOp

A compound assign expression.

BlockMode

A cryptographic block cipher mode of operation. This can be used to encrypt data of arbitrary length using a block encryption algorithm.

BoolLiteral

A Boolean literal, that is, either true or false.

CaseStmt

A case or default clause in a switch statement.

ComparisonOperation

A comparison expression, that is, either an equality test (==, !=, ===, !==) or a relational expression (<, <=, >=, >).

Container

A file or folder.

CryptographicAlgorithm

A cryptographic algorithm.

CryptographicOperation

Provides classes for modeling new applications of a cryptographic algorithms.

DoStmt

A do-while loop.

EncryptionAlgorithm

An encryption algorithm such as DES or AES512.

EqualityOperation

An equality test using ==, !=, === or !==.

FieldAccess

A dot expression.

HashingAlgorithm

A hashing algorithm such as MD5 or SHA512.

InstanceOfExpr

An instanceof expression.

LabelStmt

A labeled statement.

Location

A location as given by a file, a start line, a start column, an end line, and an end column.

LogicalAndExpr

A logical ‘and’ expression.

LogicalNotExpr

A logical negation expression.

LogicalOrExpr

A logical ‘or’ expression.

Loop

A loop, that is, a while loop, a do-while loop, a for loop, or a for-in loop.

ModelInput

Module containing hooks for providing input data to be interpreted as a model.

ModelOutput

Module providing access to the imported models in terms of API graph nodes.

MultilineComment

A block comment (which may be a JSDoc comment).

OrBitwiseExpr

A bitwise ‘or’ expression.

OrLogicalExpr

A logical ‘or’ expression.

ParenthesisExpr

A parenthesized expression.

ParenthesizedExpr

A parenthesized expression.

PasswordHashingAlgorithm

A password hashing algorithm such as PBKDF2 or SCRYPT.

RFC

Provides default sources, sinks and sanitizers for reasoning about request forgery, as well as extension points for adding your own.

RelationalOperation

A relational comparison using <, <=, >=, or >.

RemExpr

A modulo expression.

SL

Provides classes and predicates for working with serverless handlers. Supports AWS, Alibaba, and serverless.

SingleLineComment

A line comment, that is, either an HTML comment or a // comment.

SuperAccess

A super expression.

SwitchCase

A case or default clause in a switch statement.

ThisAccess

A this expression.

VariableAccess

An identifier that refers to a variable in a non-declaring position.

XorBitwiseExpr

An exclusive ‘or’ expression.

jquery

Gets a data flow node that may refer to the jQuery $ function.