UNPKG

@specs-feup/alpakka

Version:

Alpakka is a [LARA Framework](https://github.com/specs-feup/lara-framework) source-to-source compiler for Android's [smali](https://github.com/google/smali) syntax. It enables the analysis and transformation of Android apps through APK files.

725 lines 19.6 kB
import { LaraJoinPoint } from "@specs-feup/lara/api/LaraJoinPoint.js"; type PrivateMapper = { "Joinpoint": typeof Joinpoint; "ClassNode": typeof ClassNode; "Expression": typeof Expression; "FieldNode": typeof FieldNode; "FieldReference": typeof FieldReference; "LabelReference": typeof LabelReference; "Literal": typeof Literal; "Manifest": typeof Manifest; "MethodNode": typeof MethodNode; "MethodPrototype": typeof MethodPrototype; "MethodReference": typeof MethodReference; "Placeholder": typeof Placeholder; "PrimitiveLiteral": typeof PrimitiveLiteral; "Program": typeof Program; "RegisterList": typeof RegisterList; "RegisterRange": typeof RegisterRange; "RegisterReference": typeof RegisterReference; "ResourceNode": typeof ResourceNode; "SparseSwitchElement": typeof SparseSwitchElement; "Statement": typeof Statement; "TypeDescriptor": typeof TypeDescriptor; "ArrayType": typeof ArrayType; "Catch": typeof Catch; "ClassType": typeof ClassType; "Instruction": typeof Instruction; "Label": typeof Label; "LineDirective": typeof LineDirective; "PackedSwitch": typeof PackedSwitch; "PrimitiveType": typeof PrimitiveType; "RegistersDirective": typeof RegistersDirective; "ReturnStatement": typeof ReturnStatement; "SparseSwitch": typeof SparseSwitch; "Switch": typeof Switch; "ThrowStatement": typeof ThrowStatement; "Goto": typeof Goto; "IfComparison": typeof IfComparison; "IfComparisonWithZero": typeof IfComparisonWithZero; }; type DefaultAttributeMap = {}; export declare class Joinpoint extends LaraJoinPoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; /** * String representation of the ast */ get ast(): string; /** * Returns an array with the children of the node, ignoring null nodes */ get children(): Joinpoint[]; /** * String with the code represented by this node */ get code(): string; /** * Retrieves all descendants of the join point */ get descendants(): Joinpoint[]; /** * The id of the node */ get id(): string; /** * Returns the parent node in the AST, or undefined if it is the root node */ get parent(): Joinpoint; /** * Returns the 'program' joinpoint */ get root(): Program; /** * Looks for an ancestor joinpoint name, walking back on the AST */ getAncestor(type: string): Joinpoint; /** * Returns the child of the node at the given index, ignoring null nodes */ getChild(index: number): Joinpoint; /** * Retrieves the descendants of the given type */ getDescendants(type: string): Joinpoint[]; /** * Retrieves the descendants of the given type, including the node itself */ getDescendantsAndSelf(type: string): Joinpoint[]; /** * Removes the node associated to this joinpoint from the AST */ detach(): Joinpoint; /** * Inserts the given join point after this join point */ insertAfter(node: Joinpoint): Joinpoint; /** * Overload which accepts a string */ insertAfter(code: string): Joinpoint; /** * Inserts the given join point before this join point */ insertBefore(node: Joinpoint): Joinpoint; /** * Overload which accepts a string */ insertBefore(node: string): Joinpoint; /** * Replaces this node with the given node */ replaceWith(node: Joinpoint): Joinpoint; /** * Overload which accepts a string */ replaceWith(node: string): Joinpoint; /** * Overload which accepts a list of join points */ replaceWith(node: Joinpoint[]): Joinpoint; /** * Overload which accepts a list of strings */ replaceWithStrings(node: string[]): Joinpoint; } /** * Class definition */ export declare class ClassNode extends Joinpoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get classDescriptor(): ClassType; get fields(): FieldNode[]; get methods(): MethodNode[]; get superClassDescriptor(): ClassType; } /** * Expression */ export declare class Expression extends Joinpoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } /** * Field definition */ export declare class FieldNode extends Joinpoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get isStatic(): boolean; get name(): string; get referenceName(): string; } /** * Field reference */ export declare class FieldReference extends Expression { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } /** * Label reference */ export declare class LabelReference extends Expression { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get decl(): Label; } /** * Literal */ export declare class Literal extends Expression { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } /** * The application's manifest */ export declare class Manifest extends Joinpoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get activities(): string[]; get packageName(): string; get services(): string[]; } /** * Method definition */ export declare class MethodNode extends Joinpoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get isStatic(): boolean; get name(): string; get prototype(): MethodPrototype; get referenceName(): string; get registersDirective(): RegistersDirective; } /** * Method prototype */ export declare class MethodPrototype extends Literal { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get parameters(): TypeDescriptor[]; get returnType(): TypeDescriptor; } /** * Method reference */ export declare class MethodReference extends Expression { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get name(): string; get parentClassDescriptor(): TypeDescriptor; get prototype(): MethodPrototype; } /** * Placeholder node */ export declare class Placeholder extends Joinpoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get kind(): string; } /** * Primitive literal */ export declare class PrimitiveLiteral extends Literal { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; setValue(value: string): string; } /** * App node */ export declare class Program extends Joinpoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get classes(): ClassNode[]; get manifest(): Manifest; buildApk(outputName: string): void; } /** * Register list */ export declare class RegisterList extends Expression { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } /** * Register range */ export declare class RegisterRange extends Expression { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } /** * Register reference */ export declare class RegisterReference extends Expression { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } /** * Resource nodes, like xml files are not being handled for now */ export declare class ResourceNode extends Joinpoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } /** * Sparse switch element */ export declare class SparseSwitchElement extends Expression { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get label(): LabelReference; } /** * Statement */ export declare class Statement extends Joinpoint { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get line(): LineDirective; get nextStatement(): Statement; get prevStatement(): Statement; } /** * Type descriptor */ export declare class TypeDescriptor extends Literal { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } /** * Array descriptor */ export declare class ArrayType extends TypeDescriptor { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } /** * Catch directive */ export declare class Catch extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get catch(): LabelReference; get exception(): TypeDescriptor; get tryEnd(): LabelReference; get tryStart(): LabelReference; } /** * Class descriptor */ export declare class ClassType extends TypeDescriptor { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get className(): string; get decl(): ClassNode; get packageName(): string; } /** * Instruction */ export declare class Instruction extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get canThrow(): boolean; get opCodeName(): string; get setsRegister(): boolean; get setsResult(): boolean; } /** * Label declaration */ export declare class Label extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get name(): string; } /** * Line directive */ export declare class LineDirective extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get value(): Literal; } /** * Packed switch directive */ export declare class PackedSwitch extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } /** * Primitive descriptor */ export declare class PrimitiveType extends TypeDescriptor { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } /** * Registers directive */ export declare class RegistersDirective extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get type(): string; get value(): PrimitiveLiteral; } /** * Smali instruction formats 10x, 11x */ export declare class ReturnStatement extends Instruction { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } /** * Sparse switch directive */ export declare class SparseSwitch extends Statement { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } /** * Smali instruction format 31t */ export declare class Switch extends Instruction { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } /** * Smali instruction format 11x */ export declare class ThrowStatement extends Instruction { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; } /** * Smali instruction formats 10t, 20t, 30t */ export declare class Goto extends Instruction { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get label(): LabelReference; } /** * Smali instruction format 22t */ export declare class IfComparison extends Instruction { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get label(): LabelReference; } /** * Smali instruction format 21t */ export declare class IfComparisonWithZero extends Instruction { /** * @internal */ static readonly _defaultAttributeInfo: { readonly map?: DefaultAttributeMap; readonly name: string | null; readonly type?: PrivateMapper; readonly jpMapper?: typeof JoinpointMapper; }; get label(): LabelReference; } declare const JoinpointMapper: { joinpoint: typeof Joinpoint; classNode: typeof ClassNode; expression: typeof Expression; fieldNode: typeof FieldNode; fieldReference: typeof FieldReference; labelReference: typeof LabelReference; literal: typeof Literal; manifest: typeof Manifest; methodNode: typeof MethodNode; methodPrototype: typeof MethodPrototype; methodReference: typeof MethodReference; placeholder: typeof Placeholder; primitiveLiteral: typeof PrimitiveLiteral; program: typeof Program; registerList: typeof RegisterList; registerRange: typeof RegisterRange; registerReference: typeof RegisterReference; resourceNode: typeof ResourceNode; sparseSwitchElement: typeof SparseSwitchElement; statement: typeof Statement; typeDescriptor: typeof TypeDescriptor; arrayType: typeof ArrayType; catch: typeof Catch; classType: typeof ClassType; instruction: typeof Instruction; label: typeof Label; lineDirective: typeof LineDirective; packedSwitch: typeof PackedSwitch; primitiveType: typeof PrimitiveType; registersDirective: typeof RegistersDirective; returnStatement: typeof ReturnStatement; sparseSwitch: typeof SparseSwitch; switch: typeof Switch; throwStatement: typeof ThrowStatement; goto: typeof Goto; ifComparison: typeof IfComparison; ifComparisonWithZero: typeof IfComparisonWithZero; }; export {}; //# sourceMappingURL=Joinpoints.d.ts.map