import { AdtHTTP, ClientOptions, session_types, BearerFetcher, HttpClient } from "./AdtHTTP"; import { AbapClassStructure, AbapObjectStructure, ActivationResult, AdtCompatibilityGraph, AdtCoreDiscoveryResult, AdtDiscoveryResult, AdtLock, BindingServiceResult, ChangePackageRefactoring, ClassComponent, classIncludes, CompletionElementInfo, CompletionProposal, CreatableTypeIds, DdicElement, DdicObjectReference, DebugAttach, DebugBreakpoint, DebugBreakpointError, DebugChildVariablesInfo, Debuggee, DebuggerScope, DebuggingMode, DebugListenerError, DebugSettings, DebugStackInfo, DebugStep, DebugVariable, DefinitionLocation, Delta, DumpsFeed, Feed, FixProposal, FragmentLocation, GitExternalInfo, GitRemoteInfo, GitRepo, GitStaging, HierarchyNode, InactiveObject, InactiveObjectRecord, MainInclude, NewObjectOptions, NodeParents, NodeStructure, ObjectSourceOptions, ObjectType, ObjectTypeDescriptor, PackageValueHelpResult, PackageValueHelpType, PathStep, PrettyPrinterSettings, PrettyPrinterStyle, QueryResult, RegistrationInfo, Revision, RenameRefactoring, RenameRefactoringProposal, SearchResult, ServiceBinding, DomainProperties, DomainMetaData, DataElementProperties, DataElementMetaData, SyntaxCheckResult, SystemUser, TransportAddUserResponse, TransportConfiguration, TransportConfigurationEntry, TransportInfo, TransportOwnerResponse, TransportReleaseReport, TransportsOfUser, UnitTestClass, UsageReference, UsageReferenceSnippet, ValidateOptions, ValidationResult, AtcWorkList, AtcProposal, TraceStatementOptions, TraceParameters, TracesCreationConfig, UnitTestRunFlags, ObjectVersion, Range, ExtractMethodProposal, GenericRefactoring, ObjectEnhancementsResult, TextElement, TextElementsResult, TextElementCategory, RapGeneratorId, RapGeneratorContent, RapGeneratorValidationResult, RapGeneratorPreviewObject } from "./api"; export declare function createSSLConfig(allowUnauthorized: boolean, ca?: string): ClientOptions; export declare class ADTClient { private discovery?; private fetcher?; get httpClient(): AdtHTTP; static mainInclude(object: AbapObjectStructure, withDefault?: boolean): string; /** * Returns true when `path` already refers to the main source of an object, * so callers can skip appending `/source/main`. * * Recognised patterns: * - any path ending with `/source/main` (programs, includes, FMs, …) * - class include paths: `/oo/classes//includes/` */ static isMainInclude(path: string): boolean; static classIncludes(clas: AbapClassStructure): Map; get id(): number; private h; private pClone?; private options; /** * Create an ADT client * * @argument baseUrlOrClient Base url, i.e. http://vhcalnplci.local:8000 * @argument username SAP logon user * @argument password Password * @argument client Login client (optional) * @argument language Language key (optional) */ constructor(baseUrlOrClient: string | HttpClient, username: string, password: string | BearerFetcher, client?: string, language?: string, options?: ClientOptions); private createHttp; private get pIsClone(); private set pIsClone(value); private wrapFetcher; get statelessClone(): ADTClient; get stateful(): session_types; set stateful(stateful: session_types); get loggedin(): boolean; get isStateful(): boolean; get csrfToken(): string; get baseUrl(): string; get client(): string; get language(): string; get username(): string; private get password(); /** * Logs on an ADT server. parameters provided on creation */ login(): Promise; /** * Logs out current user, clearing cookies * NOTE: you won't be able to login again with this client * * @memberof ADTClient */ logout(): Promise; dropSession(): Promise; get sessionID(): "" | string[]; nodeContents(parent_type: NodeParents, parent_name?: string, user_name?: string, parent_tech_name?: string, rebuild_tree?: boolean, parentnodes?: number[]): Promise; reentranceTicket(): Promise; transportInfo(objSourceUrl: string, devClass?: string, operation?: string): Promise; createTransport(objSourceUrl: string, REQUEST_TEXT: string, DEVCLASS: string, transportLayer?: string): Promise; objectStructure(objectUrl: string, version?: ObjectVersion): Promise; objectStructureElements(objectUrl: string, version?: ObjectVersion): Promise; activate(object: InactiveObject | InactiveObject[], preauditRequested?: boolean): Promise; activate(objectName: string, objectUrl: string, mainInclude?: string, preauditRequested?: boolean): Promise; inactiveObjects(accept?: string): Promise; mainPrograms(includeUrl: string): Promise; lock(objectUrl: string, accessMode?: string): Promise; unLock(objectUrl: string, lockHandle: string): Promise; setDomainProperties(domainUrl: string, properties: DomainProperties, metaData: DomainMetaData, lockHandle: string, transport?: string): Promise; getDomainProperties(domainUrl: string, version?: ObjectVersion): Promise<{ metaData: DomainMetaData; properties: DomainProperties; }>; setDataElementProperties(dataElementUrl: string, properties: DataElementProperties, metaData: DataElementMetaData, lockHandle: string, transport?: string): Promise; getDataElementProperties(dataElementUrl: string, version?: ObjectVersion): Promise<{ metaData: DataElementMetaData; properties: DataElementProperties; }>; /** * Retrieves a resource content (i.e. a program's source code) * * @param objectSourceUrl Resource URL * @param gitUser Username, only used for abapGit objects * @param gitPassword password, only used for abapGit objects */ getObjectSource(objectSourceUrl: string, options?: ObjectSourceOptions): Promise; setObjectSource(objectSourceUrl: string, source: string, lockHandle: string, transport?: string): Promise; /** * Search object by name pattern * * @param {string} query case sensitive in older systems, no wildcard added * @param {string} [objType] if passed, only the first part is used i.e. PROG rather than PROG/P * @param {number} [max=100] max number of results * @returns * @memberof ADTClient */ searchObject(query: string, objType?: string, max?: number): Promise; findObjectPath(objectUrl: string): Promise; validateNewObject(options: ValidateOptions): Promise; createObject(objtype: CreatableTypeIds, name: string, parentName: string, description: string, parentPath: string, responsible?: string, transport?: string): Promise; createObject(options: NewObjectOptions): Promise; featureDetails(title: string): Promise; collectionFeatureDetails(url: string): Promise; findCollectionByUrl(url: string): Promise<{ discoveryResult: AdtDiscoveryResult; collection: { href: string; templateLinks: Array<{ rel: string; template: string; title?: string; type?: string; }>; title?: string; }; } | undefined>; hasTransportConfig: () => Promise; createTestInclude(clas: string, lockHandle: string, transport?: string): Promise; objectRegistrationInfo(objectUrl: string): Promise; deleteObject(objectUrl: string, lockHandle: string, transport?: string): Promise; loadTypes(): Promise; adtDiscovery(): Promise; adtCoreDiscovery(): Promise; adtCompatibiliyGraph(): Promise; syntaxCheckTypes(): Promise>; syntaxCheck(cdsUrl: string): Promise; syntaxCheck(url: string, mainUrl: string, content: string, mainProgram?: string, version?: string): Promise; codeCompletion(sourceUrl: string, source: string, line: number, column: number): Promise; codeCompletionFull(sourceUrl: string, source: string, line: number, column: number, patternKey: string): Promise; runClass(className: string): Promise; /** * Read code completion elements * Will fail on older systems where this returns HTML fragments rather than XML * * @param {string} sourceUrl * @param {string} source * @param {number} line * @param {number} column * @returns * @memberof ADTClient */ codeCompletionElement(sourceUrl: string, source: string, line: number, column: number): Promise; findDefinition(url: string, source: string, line: number, startCol: number, endCol: number, implementation?: boolean, mainProgram?: string): Promise; usageReferences(url: string, line?: number, column?: number): Promise; usageReferenceSnippets(references: UsageReference[]): Promise; fixProposals(url: string, source: string, line: number, column: number): Promise; fixEdits(proposal: FixProposal, source: string): Promise; unitTestRun(url: string, flags?: UnitTestRunFlags): Promise; unitTestEvaluation(clas: UnitTestClass, flags?: UnitTestRunFlags): Promise; unitTestOccurrenceMarkers(url: string, source: string): Promise<{ kind: string; keepsResult: boolean; location: { uri: string; query: { [x: string]: string; } | undefined; range: { start: { line: number; column: number; }; end: { line: number; column: number; }; }; hashparms: { [x: string]: string; } | undefined; }; }[]>; classComponents(url: string): Promise; fragmentMappings(url: string, type: string, name: string): Promise; objectTypes(): Promise; prettyPrinterSetting(): Promise; setPrettyPrinterSetting(indent: boolean, style: PrettyPrinterStyle): Promise; prettyPrinter(source: string): Promise; typeHierarchy(url: string, body: string, line: number, offset: number, superTypes?: boolean): Promise; transportConfigurations(): Promise; getTransportConfiguration(url: string): Promise; setTransportsConfig(uri: string, etag: string, config: TransportConfiguration): Promise; createTransportsConfig(): Promise; transportDetails(transportNumber: string): Promise; userTransports(user: string, targets?: boolean): Promise; transportsByConfig(configUri: string, targets?: boolean): Promise; transportDelete(transportNumber: string): Promise; transportRelease(transportNumber: string, ignoreLocks?: boolean, IgnoreATC?: boolean): Promise; transportSetOwner(transportNumber: string, targetuser: string): Promise; transportAddUser(transportNumber: string, user: string): Promise; systemUsers(): Promise; transportReference(pgmid: string, obj_wbtype: string, obj_name: string, tr_number?: string): Promise; revisions(objectUrl: string | AbapObjectStructure, clsInclude?: classIncludes): Promise; objectEnhancements(sourceMainPath: string, contextUri?: string, includeSource?: boolean): Promise; abapDocumentation(objectUri: string, body: string, line: number, column: number, language?: string): Promise; packageSearchHelp(type: PackageValueHelpType, name?: string): Promise; gitRepos(): Promise; gitExternalRepoInfo(repourl: string, user?: string, password?: string): Promise; gitCreateRepo(packageName: string, repourl: string, branch?: string, transport?: string, user?: string, password?: string): Promise; gitPullRepo(repoId: string, branch?: string, transport?: string, user?: string, password?: string): Promise; gitUnlinkRepo(repoId: string): Promise; stageRepo(repo: GitRepo, user?: string, password?: string): Promise; pushRepo(repo: GitRepo, staging: GitStaging, user?: string, password?: string): Promise; checkRepo(repo: GitRepo, user?: string, password?: string): Promise; /** * @deprecated since 1.2.1, duplicate of gitExternalRepoInfo */ remoteRepoInfo(repo: GitRepo, user?: string, password?: string): Promise; switchRepoBranch(repo: GitRepo, branch: string, create?: boolean, user?: string, password?: string): Promise; annotationDefinitions(): Promise; ddicElement(path: string | string[], getTargetForAssociation?: boolean, getExtensionViews?: boolean, getSecondaryObjects?: boolean): Promise; ddicRepositoryAccess(path: string | string[]): Promise; publishServiceBinding(name: string, version: string): Promise<{ severity: string; shortText: string; longText: string; }>; unPublishServiceBinding(name: string, version: string): Promise<{ severity: string; shortText: string; longText: string; }>; /** Reads table data - usually returns one line more than requested */ tableContents(ddicEntityName: string, rowNumber?: number, decode?: boolean, sqlQuery?: string): Promise; /** Runs a given SQL query on the target */ runQuery(sqlQuery: string, rowNumber?: number, decode?: boolean): Promise; bindingDetails(binding: ServiceBinding, index?: number): Promise; feeds(): Promise; dumps(query?: string): Promise; debuggerListeners(debuggingMode: "user", terminalId: string, ideId: string, user: string, checkConflict?: boolean): Promise; debuggerListeners(debuggingMode: DebuggingMode, terminalId: string, ideId: string, user?: string, checkConflict?: boolean): Promise; /** * Listens for debugging events * **WARNING** this usually only returns when a breakpoint is hit, a timeout is reached or another client terminated it * On timeout/termination it will return undefined, and the client will decide whether to launch it again after prompting the user * * @param {string} debuggingMode - break on any user activity or just on the current terminal * @param {string} terminalId - the terminal ID - a GUID generated the first time any debugger is ran on the current machine * in Windows is stored in registry key Software\SAP\ABAP Debugging * in other systems in file ~/.SAP/ABAPDebugging/terminalId * @param {string} ideId - the IDE ID - UI5 hash of the IDE's workspace root * @param {string} user - the user to break for. Mandatory in user mode * * @returns either an error, if another client is listening, or the details of the object being debugged. Can take hours to return */ debuggerListen(debuggingMode: "user", terminalId: string, ideId: string, user: string, checkConflict?: boolean, isNotifiedOnConflict?: boolean): Promise; debuggerListen(debuggingMode: DebuggingMode, terminalId: string, ideId: string, user?: string, checkConflict?: boolean, isNotifiedOnConflict?: boolean): Promise; /** * Stop a debug listener (could be this client or another) * @param {string} debuggingMode - break on any user activity or just on the current terminal * @param {string} terminalId - the terminal ID - a GUID generated the first time any debugger is ran on the current machine * in Windows is stored in registry key Software\SAP\ABAP Debugging * in other systems in file ~/.SAP/ABAPDebugging/terminalId * @param {string} ideId - the IDE ID - UI5 hash of the IDE's workspace root * @param {string} user - the user to break for. Mandatory in user mode */ debuggerDeleteListener(debuggingMode: "user", terminalId: string, ideId: string, user: string): Promise; debuggerDeleteListener(debuggingMode: DebuggingMode, terminalId: string, ideId: string, user?: string): Promise; debuggerSetBreakpoints(debuggingMode: "user", terminalId: string, ideId: string, clientId: string, breakpoints: (string | DebugBreakpoint)[], user: string, scope?: DebuggerScope, systemDebugging?: boolean, deactivated?: boolean, syncScupeUrl?: string): Promise<(DebugBreakpoint | DebugBreakpointError)[]>; debuggerSetBreakpoints(debuggingMode: DebuggingMode, terminalId: string, ideId: string, clientId: string, breakpoints: (string | DebugBreakpoint)[], user?: string, scope?: DebuggerScope, systemDebugging?: boolean, deactivated?: boolean, syncScupeUrl?: string): Promise<(DebugBreakpoint | DebugBreakpointError)[]>; debuggerDeleteBreakpoints(breakpoint: DebugBreakpoint, debuggingMode: "user", terminalId: string, ideId: string, requestUser: string, scope?: DebuggerScope): Promise; debuggerDeleteBreakpoints(breakpoint: DebugBreakpoint, debuggingMode: DebuggingMode, terminalId: string, ideId: string, requestUser?: string): Promise; debuggerAttach(debuggingMode: "user", debuggeeId: string, user: string, dynproDebugging?: boolean): Promise; debuggerAttach(debuggingMode: DebuggingMode, debuggeeId: string, user?: string, dynproDebugging?: boolean): Promise; debuggerSaveSettings(settings: Partial): Promise; debuggerStackTrace(semanticURIs?: boolean): Promise; debuggerVariables(parents: string[]): Promise; debuggerChildVariables(parent?: string[]): Promise; debuggerStep(steptype: "stepRunToLine" | "stepJumpToLine", url: string): Promise; debuggerStep(steptype: "stepInto" | "stepOver" | "stepReturn" | "stepContinue" | "terminateDebuggee"): Promise; /** * Go to stack entry * * @param urlOrPosition The stack entry stackUri in newer systems, the stack id in older ones that return a DebugStackSimple */ debuggerGoToStack(urlOrPosition: number | string): Promise; debuggerSetVariableValue(variableName: string, value: string): Promise; changePackagePreview(changePackageRefactoring: ChangePackageRefactoring, transport?: string): Promise; changePackageExecute(refactoring: ChangePackageRefactoring): Promise; renameEvaluate(uri: string, line: number, startColumn: number, endColumn: number): Promise; renamePreview(renameRefactoring: RenameRefactoringProposal, transport?: string): Promise; renameExecute(refactoring: RenameRefactoring): Promise; atcCustomizing(): Promise; atcCheckVariant(variant: string): Promise; createAtcRun(variant: string, mainUrl: string, maxResults?: number): Promise; atcWorklists(runResultId: string): Promise; atcWorklists(runResultId: string, timestamp: number, usedObjectSet: string, includeExempted?: boolean): Promise; atcUsers(): Promise; atcExemptProposal(markerId: string): Promise; atcRequestExemption(proposal: AtcProposal): Promise; atcDocumentation(docUri: string): Promise; isProposalMessage: import("io-ts").Is<{ type: string; message: string; }>; atcContactUri(findingUri: string): Promise; atcChangeContact(itemUri: string, userId: string): Promise; tracesList(user?: string): Promise; tracesListRequests(user?: string): Promise; tracesHitList(id: string, withSystemEvents?: boolean): Promise; tracesDbAccess(id: string, withSystemEvents?: boolean): Promise; tracesStatements(id: string, options?: TraceStatementOptions): Promise; tracesSetParameters(parameters: TraceParameters): Promise; tracesCreateConfiguration(config: TracesCreationConfig): Promise; tracesDeleteConfiguration(id: string): Promise; tracesDelete(id: string): Promise; extractMethodEvaluate(uri: string, range: Range): Promise; extractMethodPreview(proposal: ExtractMethodProposal): Promise; extractMethodExecute(refactoring: GenericRefactoring): Promise; /** * Builds the text elements base URL for an object. * The returned URL is used as the `url` argument for the text element methods. * * @param objectType ADT type string, e.g. "PROG/P", "CLAS/OC", "FUGR/F" * @param objectName Object name */ static textElementsUrl(objectType: string, objectName: string): string; /** * Retrieves text elements (selection texts) for an ABAP object. * Returns an empty array when the object has no text elements (404). * * @param url Text elements base URL — use {@link ADTClient.textElementsUrl} to build it */ getTextElements(url: string, category?: TextElementCategory): Promise; /** * Writes text elements for an ABAP object. * The caller is responsible for calling `lock()` before and `unLock()` after. * * @param url Text elements base URL * @param elements Text elements to write * @param lockHandle Lock handle from `lock()` * @param transport Optional transport/correction number */ setTextElements(url: string, category: TextElementCategory, elements: TextElement[], lockHandle: string, transport?: string): Promise; rapGenValidateInitial(genId: RapGeneratorId, refObjectUri: string, packageName: string, checks?: string[]): Promise; rapGenGetSchema(genId: RapGeneratorId, refObjectUri: string, packageName: string): Promise; rapGenGetContent(genId: RapGeneratorId, refObjectUri: string, packageName: string): Promise; rapGenGetUiConfig(genId: RapGeneratorId, refObjectUri: string, packageName: string): Promise; rapGenValidateContent(genId: RapGeneratorId, refObjectUri: string, content: RapGeneratorContent): Promise; rapGenPreview(genId: RapGeneratorId, refObjectUri: string, content: RapGeneratorContent): Promise; rapGenGenerate(genId: RapGeneratorId, refObjectUri: string, transport: string, content: RapGeneratorContent): Promise; rapGenIsAvailable(genId?: RapGeneratorId): Promise; rapGenPublishService(srvbName: string): Promise; } //# sourceMappingURL=AdtClient.d.ts.map