File

src/types/stackdriver.ts

Index

Properties

Properties

action
action: Action
Type : Action
Optional
condition
condition: string
Type : string
Optional
createdTime
createdTime: Timestamp
Type : Timestamp
Optional
evaluatedExpressions
evaluatedExpressions: Array<Variable | null>
Type : Array<Variable | null>
expressions
expressions: string[]
Type : string[]
Optional
finalTime
finalTime: string
Type : string
Optional
id
id: BreakpointId
Type : BreakpointId
isFinalState
isFinalState: boolean
Type : boolean
Optional
labels
labels: literal type
Type : literal type
Optional
location
location: SourceLocation
Type : SourceLocation
Optional
logLevel
logLevel: LogLevel
Type : LogLevel
Optional
logMessageFormat
logMessageFormat: string
Type : string
Optional
stackFrames
stackFrames: StackFrame[]
Type : StackFrame[]
status
status: StatusMessage
Type : StatusMessage
Optional
userEmail
userEmail: string
Type : string
Optional
variableTable
variableTable: Array<Variable | null>
Type : Array<Variable | null>
export declare type Action = 'CAPTURE' | 'LOG';

export declare type Reference =
  | 'UNSPECIFIED'
  | 'BREAKPOINT_SOURCE_LOCATION'
  | 'BREAKPOINT_CONDITION'
  | 'BREAKPOINT_EXPRESSION'
  | 'BREAKPOINT_AGE'
  | 'VARIABLE_NAME'
  | 'VARIABLE_VALUE';

export interface FormatMessage {
  format: string;
  // TODO: The code expects the `parameters` field to be optional.
  //       Verify if this aligns with the API reference.
  parameters?: string[];
}

export interface StatusMessage {
  isError: boolean;
  refersTo: Reference;
  description: FormatMessage;
}

export interface SourceLocation {
  path: string;
  // TODO: The code assumes a SourceLocation has a `column` attribute, but
  //       the API reference doesn't mention it.
  // TODO: The code doesn't always set the column attribute.  Is it optional?
  column?: number;
  line: number;
}

export declare type LogLevel = 'INFO' | 'WARNING' | 'ERROR';

export interface Variable {
  // TODO: Some places in the code assume the fields below are all optional.
  //       Determine if that is the case.
  varTableIndex?: number;
  name?: string;
  value?: string;
  type?: string;
  members?: Variable[];
  status?: StatusMessage;
}

export interface StackFrame {
  function: string;
  location: SourceLocation;
  arguments: Variable[];
  locals: Variable[];
}

// TODO: This is only needed for the Breakpoint.create(d)Time attribute.
//       Determine if this is actually needed or if the create(d)Time attribute
//       should only be a string.
export interface Timestamp {
  seconds: string; // int64
  nano: string; // int32
}

export interface Breakpoint {
  stackFrames: StackFrame[];
  // TODO: Update the code so that `|null` is not needed.
  evaluatedExpressions: Array<Variable | null>;
  // TODO: Update the code so that `|null` is not needed.
  variableTable: Array<Variable | null>;
  id: BreakpointId;
  // TODO: The debug code assumes the rest of these members
  //       are optional.  Determine if this is correct.
  action?: Action;
  location?: SourceLocation;
  condition?: string;
  expressions?: string[];
  logMessageFormat?: string;
  logLevel?: LogLevel;
  isFinalState?: boolean;
  // TODO: The API reference says the following attribute is `createTime`
  //       However, the existing code is using `createdTime`.
  // See:
  // https://cloud.google.com/debugger/api/reference/rest/v2/debugger.debuggees.breakpoints#breakpoint
  //      In addtion, the API reference says the `create(d)Time` attribute
  //      is a string in Timestamp format, but the code assumes it is a
  //      Timestamp object
  createdTime?: Timestamp;
  finalTime?: string;
  userEmail?: string;
  status?: StatusMessage;
  labels?: {
    [key: string]: string;
  };
}

export type BreakpointId = string;

export interface ListBreakpointsQuery {
  waitToken?: string;
  successOnTimeout?: boolean;
  agentId?: string;
}

export interface ListBreakpointsResponse {
  breakpoints: Breakpoint[];
  nextWaitToken: string;
  waitExpired: boolean;
}

results matching ""

    No results matching ""