///
///
import { FindPosition, MappedPosition } from 'source-map';
import { AgentTechnologies, AgentTypes } from '../agent-events/agent-events-contracts';
import { NetworkInterfaceInfo } from 'os';
import { ICommitLog, ICommitLogWithContributorRef, IContributorData } from '../scm/contracts';
export declare class IHttpClientConfigData {
token?: string;
proxy: string;
server: string;
buildSessionId?: string;
defaultTimeout?: number;
compressRequests?: boolean;
labId?: string;
appName?: string;
branchName?: string;
buildName?: string;
testProjectId?: string;
prID?: string;
}
export interface IBackendProxyConfig extends IHttpClientConfigData {
httpMaxAttemps?: number;
httpAttemptInterval?: number;
}
export declare class SlAgentMetadata {
labId?: string;
appName?: string;
branchName?: string;
buildName?: string;
executionId?: string;
agentId?: string;
buildSessionId?: string;
agentType?: AgentTypes;
agentTechnology?: AgentTechnologies;
messageType?: string;
agentVersion?: string;
testProjectId?: string;
prID?: string;
}
export interface BuildSessionData {
appName: string;
buildName: string;
branchName: string;
buildSessionId: string;
additionalArguments?: string;
}
export declare class CreateBuildSessionIdResponse {
buildSessionId: string;
}
export interface IPullRequestParams {
repositoryUrl: string;
pullRequestNumber: number;
latestCommit: string;
targetBranch: string;
}
export interface PullRequestConfigData extends BuildSessionData {
pullRequestParams: IPullRequestParams;
}
export declare class GetVersionRequest {
customerId: string;
appName: string;
testStage: string;
branchName: string;
componentName: string;
buildName: string;
}
export declare class GetVersionResponse {
agent: AgentInfo;
meta: VersionMeta;
}
export declare class AgentInfo {
date: number;
name: string;
url: string;
version: string;
}
export declare class VersionMeta {
generated: number;
requestUrl: string;
query: VersionMetaQuery;
}
export declare class VersionMetaQuery {
agentType: string;
isDefault: boolean;
}
export interface IBuildMapMetaEnvironment {
agentVersion: string;
agentType: 'nodeJsBuildScanner';
processArgv: string[];
machineName: string;
platform: string;
os: string;
osVersion: string;
arch: string;
processId: number;
ipAddress: Record;
dependencies: NodeJS.ProcessVersions;
runtime: string;
}
export interface IBuildMapMeta {
generated: number;
build: string;
commit: string;
agentId: string;
customerId: string;
appName: string;
technology: string;
branch: string;
environment: IBuildMapMetaEnvironment;
authors: string;
logsUrl: string;
jobName: string;
moduleName: string;
uniqueModuleId: string;
configurationData: Record;
scm: string;
scmProvider: string;
scmVersion: string;
scmBaseUrl: string;
buildSessionId: string;
history: string[];
commitLog: (ICommitLog | ICommitLogWithContributorRef)[];
repositoryUrl: string;
contributors: IContributorData[];
additionalGitDetails: {
currentBranch: string;
openBranches: string[];
submodules: string[];
};
}
export interface IBuildMapChunkMeta extends IBuildMapMeta {
partId: number;
}
export declare class BuildMappingRequest {
meta: IBuildMapMeta;
files: FileData[];
dependencies: DependencyData[];
version: string;
includedFiles: string[];
counters: {
methods: number;
branches: number;
};
}
export declare class BuildMappingChunkRequest extends BuildMappingRequest {
meta: IBuildMapChunkMeta;
}
export interface IBuildMapEndRequest {
agentId: string;
status: {
success: boolean;
message: string;
duration: number;
};
labId: string;
partsCount: number;
}
export interface IDryRunBuildMappingRequest extends BuildMappingRequest {
excludedFiles: string[];
}
export interface IDryRunBuildMappingChunkRequest extends BuildMappingChunkRequest {
excludedFiles: string[];
}
export declare class DependencyData {
appName: string;
branch: string;
build: string;
}
export declare class FileData {
logicalPath: string;
physicalPath: string;
transpiledFile: string;
methods: MethodInfo[];
branches: any[];
lines: any[];
hash: string;
absolutePath?: string;
fromSourceMaps?: boolean;
positionToMethod: {
[key: string]: number;
};
positionToBranch: {
[key: string]: number;
};
endPositionToMethod?: {
[key: string]: number;
};
commitIndexes?: number[];
}
export interface ISourceMapConsumer {
originalPositionFor(generatedPosition: FindPosition): MappedPosition;
}
export interface MappingResult {
fileName: string;
methods: MethodInfo[];
branches?: BranchInfo[];
}
export interface BranchInfo extends CodeItem {
filename: string;
type: string;
endPosition: number[];
hash: string;
index: number;
parentPosition: number[];
enclosingMethodIdx: number;
}
export interface CodeItem {
position: number[];
techSpecificInfo: TechSpecificInfo;
meta?: Meta;
uniqueId?: string;
uniqueIdKey?: string;
}
export interface MethodInfo extends CodeItem {
endPosition: number[];
displayName: string;
hash: string;
sigHash: string;
idxInMapping: number;
oldHash?: string;
oldSigHash?: string;
offsets: number[];
endOffset: number;
}
export interface Meta {
anonymous: boolean;
identifierPosition?: number[];
}
export interface TechSpecificInfo {
isAsync: boolean;
isComputed: boolean;
isExpression: boolean;
isGenerator: boolean;
isStatic: boolean;
isAnonymous: boolean;
autoGenerated?: boolean;
isDecorated?: boolean;
}
export interface GeneratedData {
position: number[];
endPosition: number[];
displayName: string;
hash: string;
sigHash: string;
relativeFilename: string;
absoluteFilename: string;
identifierPosition: any[];
}
export interface SignatureMethod {
meta: Meta;
techSpecificInfo: TechSpecificInfo;
type?: any;
srcData: GeneratedData;
generatedData: GeneratedData;
uniqueId: string;
idxInMapping: number;
uniqueIdKey: string;
}
export declare class GetRemoteConfigRequest {
appName?: string;
branch?: string;
build?: string;
testStage?: string;
labId?: string;
}
export declare class SubmitLogsRequest {
appName: string;
customerId: string;
environment: EnvironmentData;
log: string[];
start?: number;
end?: number;
}
export declare class IMetricsBatch {
start: number;
end: number;
metrics: IMetric[];
}
export type MetricType = 'increment' | 'histogram' | 'gauge';
export interface IMetric {
name: string;
type: MetricType;
value: string | number;
tags: Record;
timestamp: number;
}
export declare class BaseRequest {
customerId: string;
appName: string;
server: string;
proxy: string;
isValidToken: boolean;
}
export declare class StartExecutionRequest extends BaseRequest {
testStage: string;
source?: string;
testGroupId?: string;
labId: string;
buildName: string;
branchName: string;
newEnvironment: string;
environment: string;
}
export declare class EndExecutionRequest extends BaseRequest {
environment: string;
buildName: string;
branchName: string;
executionIds?: string[];
}
export declare class UploadReportRequest extends BaseRequest {
environmentName: string;
reportFile: string[];
reportFilesFolder: string[];
labId: string;
build: string;
branch: string;
source: string;
type: string;
hasMoreRequests: boolean;
}
export declare class AgentData {
customerId: string;
appName: string;
type: string;
source: string;
hasMoreRequests: boolean;
buildName?: string;
branchName?: string;
environment: EnvironmentData;
}
export declare class EnvironmentData {
labId: string;
environmentName: string;
}
export declare class UploadReportsBody {
agentData: AgentData;
reportFile: any;
}
export interface IHttpClient {
get(urlPath: string, callback: (err: Error, response: T, statusCode: number) => void, isNotFoundAcceptable?: boolean, async?: boolean): any;
delete(body: any, urlPath: string, callback: (err: Error, data: T, statusCode: number) => void): any;
put(requestData: any, urlPath: string, callback: (err: Error, body: any, statusCode: number) => void, async?: boolean, contentType?: string): any;
post(requestData: any, urlPath: string, callback: (err: Error, body: any, statusCode: number) => void, async?: boolean, contentType?: ContentType): any;
postMultipart(requestData: any, urlPath: string, callback: (err: Error, body: any, statusCode: number) => void): any;
updateMetadata(metadata: Partial): void;
}
export interface ITestsRecommendationResponse {
excludedTests: IExcludedTest[];
recommendationSetStatus: RecommendationSetStatus;
testSelectionEnabled: boolean;
}
export interface IExcludedTest {
name: string;
universalTestId: string;
testFramework: string;
}
export declare enum RecommendedTestReason {
PINNED = "pinned",
IMPACTED = "impacted",
FAILED = "failed"
}
export declare enum RecommendationSetStatus {
NOT_READY = "notReady",
READY = "ready",
NO_HISTORY = "noHistory",
ERROR = "error",
WONT_BE_READY = "wontBeReady"
}
export interface IBuildEndData {
appName: string;
build: string;
branch: string;
status: IBuildEndStatus;
}
export interface IBuildEndStatus {
success: boolean;
}
export declare enum ContentType {
OCTET_STREAM = "application/octet-stream",
JSON = "application/json"
}
export declare enum SealightsHeaderNames {
CONTENT_TYPE = "Content-Type",
AUTHOTIZARTION = "Authorization",
MODE = "X-Sealights-Agent-Mode",
META_DATA = "sl-metadata",
LAB_ID = "x-sl-labId",
APP_NAME = "x-sl-appName",
BRANCH_NAME = "x-sl-branchName",
BUILD_NAME = "x-sl-buildName",
BSID = "x-sl-bsid",
EXECUTION_ID = "x-sl-executionId",
AGENT_ID = "x-sl-agentId",
MESSAGE_TYPE = "x-sl-messageType",
TEST_PROJECT_ID = "x-sl-testProjectId",
PR_ID = "x-sl-prID",
CACHE_CONTROL = "Cache-Control"
}
export declare enum SealightsHaderValues {
LIGHT_AGENT_MODE = "light"
}
export interface IColoredExecutionRequest {
executionId: string;
appName: string;
buildName: string;
branchName: string;
labId: string;
testStage: string;
testGroupId?: string;
}
export interface IBuildSessionResponse {
customerId: string;
appName: string;
branchName: string;
buildName: string;
buildSessionType: string;
created: number;
trackingId: string;
additionalParams: object;
buildSessionId: string;
}
export type NodeV8CoverageMap = Record;
export type NodeV8RawHitsPayload = NodeV8Execution[];
export interface NodeV8Execution {
executionId: string;
hits: NodeV8Hit[];
}
export interface NodeV8Hit {
start: number;
end: number;
isInitFootprints: boolean;
testName?: string;
methods: string[];
}
export type NycCoverageMap = unknown;
export type NycRawHitsPayload = NycExecution;
export interface NycExecution {
executionId: string;
hits: NycHits[];
}
export interface NycHitMeta {
start: number;
end: number;
isInitFootprints: boolean;
testName?: string;
}
export interface NycHits {
metadata: NycHitMeta;
counters: {
[filename: string]: NycCounters;
};
}
export interface NycCounters {
b: Record;
f: Record;
s: Record;
}
export declare enum InstrumentationMethodology {
Methods = "Methods",
MethodLines = "MethodLines"
}
export interface BuildMappingSubmitted {
submitted: boolean;
}