@mcp-abap-adt/core 2.5.1 → 2.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/README.md +3 -0
- package/dist/handlers/bdef/handleCreateBehaviorDefinition.d.ts +50 -0
- package/dist/handlers/bdef/handleCreateBehaviorDefinition.d.ts.map +1 -0
- package/dist/handlers/bdef/handleCreateBehaviorDefinition.js +101 -0
- package/dist/handlers/bdef/handleGetBdef.d.ts +54 -0
- package/dist/handlers/bdef/handleGetBdef.d.ts.map +1 -0
- package/dist/handlers/bdef/handleGetBdef.js +89 -0
- package/dist/handlers/bdef/handleUpdateBehaviorDefinition.d.ts +37 -0
- package/dist/handlers/bdef/handleUpdateBehaviorDefinition.d.ts.map +1 -0
- package/dist/handlers/bdef/handleUpdateBehaviorDefinition.js +85 -0
- package/dist/handlers/behavior_definition/readonly/handleGetBdef.d.ts +54 -0
- package/dist/handlers/behavior_definition/readonly/handleGetBdef.d.ts.map +1 -0
- package/dist/handlers/behavior_definition/readonly/handleGetBdef.js +89 -0
- package/dist/handlers/class/handleCheckClass.d.ts +59 -0
- package/dist/handlers/class/handleCheckClass.d.ts.map +1 -0
- package/dist/handlers/class/handleCheckClass.js +138 -0
- package/dist/handlers/class/handleCreateClass.d.ts +80 -0
- package/dist/handlers/class/handleCreateClass.d.ts.map +1 -0
- package/dist/handlers/class/handleCreateClass.js +192 -0
- package/dist/handlers/class/handleGetClass.d.ts +16 -0
- package/dist/handlers/class/handleGetClass.d.ts.map +1 -0
- package/dist/handlers/class/handleGetClass.js +159 -0
- package/dist/handlers/class/handleUpdateClassSource.d.ts +44 -0
- package/dist/handlers/class/handleUpdateClassSource.d.ts.map +1 -0
- package/dist/handlers/class/handleUpdateClassSource.js +131 -0
- package/dist/handlers/class/handleValidateClass.d.ts +62 -0
- package/dist/handlers/class/handleValidateClass.d.ts.map +1 -0
- package/dist/handlers/class/handleValidateClass.js +136 -0
- package/dist/handlers/class/readonly/handleGetClass.d.ts +20 -0
- package/dist/handlers/class/readonly/handleGetClass.d.ts.map +1 -0
- package/dist/handlers/class/readonly/handleGetClass.js +159 -0
- package/dist/handlers/common/handleActivateObject.d.ts +62 -0
- package/dist/handlers/common/handleActivateObject.d.ts.map +1 -0
- package/dist/handlers/common/handleActivateObject.js +137 -0
- package/dist/handlers/common/handleCheckObject.d.ts +63 -0
- package/dist/handlers/common/handleCheckObject.d.ts.map +1 -0
- package/dist/handlers/common/handleCheckObject.js +197 -0
- package/dist/handlers/common/handleDeleteObject.d.ts +46 -0
- package/dist/handlers/common/handleDeleteObject.d.ts.map +1 -0
- package/dist/handlers/common/handleDeleteObject.js +176 -0
- package/dist/handlers/common/handleLockObject.d.ts +57 -0
- package/dist/handlers/common/handleLockObject.d.ts.map +1 -0
- package/dist/handlers/common/handleLockObject.js +195 -0
- package/dist/handlers/common/handleUnlockObject.d.ts +61 -0
- package/dist/handlers/common/handleUnlockObject.d.ts.map +1 -0
- package/dist/handlers/common/handleUnlockObject.js +178 -0
- package/dist/handlers/common/handleValidateObject.d.ts +58 -0
- package/dist/handlers/common/handleValidateObject.d.ts.map +1 -0
- package/dist/handlers/common/handleValidateObject.js +177 -0
- package/dist/handlers/data_element/handleCreateDataElement.d.ts +83 -0
- package/dist/handlers/data_element/handleCreateDataElement.d.ts.map +1 -0
- package/dist/handlers/data_element/handleCreateDataElement.js +180 -0
- package/dist/handlers/data_element/handleGetDataElement.d.ts +29 -0
- package/dist/handlers/data_element/handleGetDataElement.d.ts.map +1 -0
- package/dist/handlers/data_element/handleGetDataElement.js +173 -0
- package/dist/handlers/data_element/handleUpdateDataElement.d.ts +131 -0
- package/dist/handlers/data_element/handleUpdateDataElement.d.ts.map +1 -0
- package/dist/handlers/data_element/handleUpdateDataElement.js +258 -0
- package/dist/handlers/data_element/readonly/handleGetDataElement.d.ts +33 -0
- package/dist/handlers/data_element/readonly/handleGetDataElement.d.ts.map +1 -0
- package/dist/handlers/data_element/readonly/handleGetDataElement.js +173 -0
- package/dist/handlers/ddlx/handleCreateMetadataExtension.d.ts +41 -0
- package/dist/handlers/ddlx/handleCreateMetadataExtension.d.ts.map +1 -0
- package/dist/handlers/ddlx/handleCreateMetadataExtension.js +92 -0
- package/dist/handlers/ddlx/handleUpdateMetadataExtension.d.ts +37 -0
- package/dist/handlers/ddlx/handleUpdateMetadataExtension.d.ts.map +1 -0
- package/dist/handlers/ddlx/handleUpdateMetadataExtension.js +81 -0
- package/dist/handlers/domain/handleCreateDomain.d.ts +104 -0
- package/dist/handlers/domain/handleCreateDomain.d.ts.map +1 -0
- package/dist/handlers/domain/handleCreateDomain.js +187 -0
- package/dist/handlers/domain/handleGetDomain.d.ts +19 -0
- package/dist/handlers/domain/handleGetDomain.d.ts.map +1 -0
- package/dist/handlers/domain/handleGetDomain.js +138 -0
- package/dist/handlers/domain/handleUpdateDomain.d.ts +99 -0
- package/dist/handlers/domain/handleUpdateDomain.d.ts.map +1 -0
- package/dist/handlers/domain/handleUpdateDomain.js +204 -0
- package/dist/handlers/domain/readonly/handleGetDomain.d.ts +23 -0
- package/dist/handlers/domain/readonly/handleGetDomain.d.ts.map +1 -0
- package/dist/handlers/domain/readonly/handleGetDomain.js +138 -0
- package/dist/handlers/enhancement/handleGetEnhancementImpl.d.ts +69 -0
- package/dist/handlers/enhancement/handleGetEnhancementImpl.d.ts.map +1 -0
- package/dist/handlers/enhancement/handleGetEnhancementImpl.js +171 -0
- package/dist/handlers/enhancement/handleGetEnhancementSpot.d.ts +53 -0
- package/dist/handlers/enhancement/handleGetEnhancementSpot.d.ts.map +1 -0
- package/dist/handlers/enhancement/handleGetEnhancementSpot.js +153 -0
- package/dist/handlers/enhancement/handleGetEnhancements.d.ts +64 -0
- package/dist/handlers/enhancement/handleGetEnhancements.d.ts.map +1 -0
- package/dist/handlers/enhancement/handleGetEnhancements.js +599 -0
- package/dist/handlers/function/handleCheckFunctionModule.d.ts +59 -0
- package/dist/handlers/function/handleCheckFunctionModule.d.ts.map +1 -0
- package/dist/handlers/function/handleCheckFunctionModule.js +140 -0
- package/dist/handlers/function/handleCreateFunctionGroup.d.ts +52 -0
- package/dist/handlers/function/handleCreateFunctionGroup.d.ts.map +1 -0
- package/dist/handlers/function/handleCreateFunctionGroup.js +114 -0
- package/dist/handlers/function/handleCreateFunctionModule.d.ts +57 -0
- package/dist/handlers/function/handleCreateFunctionModule.d.ts.map +1 -0
- package/dist/handlers/function/handleCreateFunctionModule.js +137 -0
- package/dist/handlers/function/handleGetFunction.d.ts +17 -0
- package/dist/handlers/function/handleGetFunction.d.ts.map +1 -0
- package/dist/handlers/function/handleGetFunction.js +172 -0
- package/dist/handlers/function/handleGetFunctionGroup.d.ts +16 -0
- package/dist/handlers/function/handleGetFunctionGroup.d.ts.map +1 -0
- package/dist/handlers/function/handleGetFunctionGroup.js +132 -0
- package/dist/handlers/function/handleUpdateFunctionModuleSource.d.ts +54 -0
- package/dist/handlers/function/handleUpdateFunctionModuleSource.d.ts.map +1 -0
- package/dist/handlers/function/handleUpdateFunctionModuleSource.js +108 -0
- package/dist/handlers/function/handleValidateFunctionModule.d.ts +58 -0
- package/dist/handlers/function/handleValidateFunctionModule.d.ts.map +1 -0
- package/dist/handlers/function/handleValidateFunctionModule.js +132 -0
- package/dist/handlers/function/readonly/handleGetFunctionGroup.d.ts +16 -0
- package/dist/handlers/function/readonly/handleGetFunctionGroup.d.ts.map +1 -0
- package/dist/handlers/function/readonly/handleGetFunctionGroup.js +132 -0
- package/dist/handlers/include/handleGetInclude.d.ts +16 -0
- package/dist/handlers/include/handleGetInclude.d.ts.map +1 -0
- package/dist/handlers/include/handleGetInclude.js +81 -0
- package/dist/handlers/include/handleGetIncludesList.d.ts +36 -0
- package/dist/handlers/include/handleGetIncludesList.d.ts.map +1 -0
- package/dist/handlers/include/handleGetIncludesList.js +223 -0
- package/dist/handlers/interface/handleCreateInterface.d.ts +64 -0
- package/dist/handlers/interface/handleCreateInterface.d.ts.map +1 -0
- package/dist/handlers/interface/handleCreateInterface.js +175 -0
- package/dist/handlers/interface/handleGetInterface.d.ts +40 -0
- package/dist/handlers/interface/handleGetInterface.d.ts.map +1 -0
- package/dist/handlers/interface/handleGetInterface.js +134 -0
- package/dist/handlers/interface/handleUpdateInterfaceSource.d.ts +48 -0
- package/dist/handlers/interface/handleUpdateInterfaceSource.d.ts.map +1 -0
- package/dist/handlers/interface/handleUpdateInterfaceSource.js +127 -0
- package/dist/handlers/interface/readonly/handleGetInterface.d.ts +44 -0
- package/dist/handlers/interface/readonly/handleGetInterface.d.ts.map +1 -0
- package/dist/handlers/interface/readonly/handleGetInterface.js +134 -0
- package/dist/handlers/package/handleCreatePackage.d.ts +38 -0
- package/dist/handlers/package/handleCreatePackage.d.ts.map +1 -0
- package/dist/handlers/package/handleCreatePackage.js +127 -0
- package/dist/handlers/package/handleGetPackage.d.ts +16 -0
- package/dist/handlers/package/handleGetPackage.d.ts.map +1 -0
- package/dist/handlers/package/handleGetPackage.js +94 -0
- package/dist/handlers/package/readonly/handleGetPackage.d.ts +21 -0
- package/dist/handlers/package/readonly/handleGetPackage.d.ts.map +1 -0
- package/dist/handlers/package/readonly/handleGetPackage.js +94 -0
- package/dist/handlers/program/handleCreateProgram.d.ts +73 -0
- package/dist/handlers/program/handleCreateProgram.d.ts.map +1 -0
- package/dist/handlers/program/handleCreateProgram.js +220 -0
- package/dist/handlers/program/handleGetProgFullCode.d.ts +67 -0
- package/dist/handlers/program/handleGetProgFullCode.d.ts.map +1 -0
- package/dist/handlers/program/handleGetProgFullCode.js +249 -0
- package/dist/handlers/program/handleGetProgram.d.ts +16 -0
- package/dist/handlers/program/handleGetProgram.d.ts.map +1 -0
- package/dist/handlers/program/handleGetProgram.js +71 -0
- package/dist/handlers/program/handleUpdateProgramSource.d.ts +44 -0
- package/dist/handlers/program/handleUpdateProgramSource.d.ts.map +1 -0
- package/dist/handlers/program/handleUpdateProgramSource.js +121 -0
- package/dist/handlers/program/readonly/handleGetProgram.d.ts +20 -0
- package/dist/handlers/program/readonly/handleGetProgram.d.ts.map +1 -0
- package/dist/handlers/program/readonly/handleGetProgram.js +71 -0
- package/dist/handlers/search/handleGetObjectsByType.d.ts +42 -0
- package/dist/handlers/search/handleGetObjectsByType.d.ts.map +1 -0
- package/dist/handlers/search/handleGetObjectsByType.js +166 -0
- package/dist/handlers/search/handleGetObjectsList.d.ts +46 -0
- package/dist/handlers/search/handleGetObjectsList.d.ts.map +1 -0
- package/dist/handlers/search/handleGetObjectsList.js +145 -0
- package/dist/handlers/search/handleSearchObject.d.ts +28 -0
- package/dist/handlers/search/handleSearchObject.d.ts.map +1 -0
- package/dist/handlers/search/handleSearchObject.js +119 -0
- package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.d.ts +17 -0
- package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.d.ts.map +1 -0
- package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.js +136 -0
- package/dist/handlers/structure/handleCreateStructure.d.ts +107 -0
- package/dist/handlers/structure/handleCreateStructure.d.ts.map +1 -0
- package/dist/handlers/structure/handleCreateStructure.js +184 -0
- package/dist/handlers/structure/handleGetStructure.d.ts +16 -0
- package/dist/handlers/structure/handleGetStructure.d.ts.map +1 -0
- package/dist/handlers/structure/handleGetStructure.js +139 -0
- package/dist/handlers/structure/readonly/handleGetStructure.d.ts +16 -0
- package/dist/handlers/structure/readonly/handleGetStructure.d.ts.map +1 -0
- package/dist/handlers/structure/readonly/handleGetStructure.js +139 -0
- package/dist/handlers/system/handleDescribeByList.d.ts +36 -0
- package/dist/handlers/system/handleDescribeByList.d.ts.map +1 -0
- package/dist/handlers/system/handleDescribeByList.js +121 -0
- package/dist/handlers/system/handleGetAbapAST.d.ts +26 -0
- package/dist/handlers/system/handleGetAbapAST.d.ts.map +1 -0
- package/dist/handlers/system/handleGetAbapAST.js +172 -0
- package/dist/handlers/system/handleGetAbapSemanticAnalysis.d.ts +26 -0
- package/dist/handlers/system/handleGetAbapSemanticAnalysis.d.ts.map +1 -0
- package/dist/handlers/system/handleGetAbapSemanticAnalysis.js +353 -0
- package/dist/handlers/system/handleGetAbapSystemSymbols.d.ts +26 -0
- package/dist/handlers/system/handleGetAbapSystemSymbols.d.ts.map +1 -0
- package/dist/handlers/system/handleGetAbapSystemSymbols.js +574 -0
- package/dist/handlers/system/handleGetAllTypes.d.ts +22 -0
- package/dist/handlers/system/handleGetAllTypes.d.ts.map +1 -0
- package/dist/handlers/system/handleGetAllTypes.js +102 -0
- package/dist/handlers/system/handleGetInactiveObjects.d.ts +20 -0
- package/dist/handlers/system/handleGetInactiveObjects.d.ts.map +1 -0
- package/dist/handlers/system/handleGetInactiveObjects.js +41 -0
- package/dist/handlers/system/handleGetObjectInfo.d.ts +41 -0
- package/dist/handlers/system/handleGetObjectInfo.d.ts.map +1 -0
- package/dist/handlers/system/handleGetObjectInfo.js +210 -0
- package/dist/handlers/system/handleGetObjectNodeFromCache.d.ts +40 -0
- package/dist/handlers/system/handleGetObjectNodeFromCache.d.ts.map +1 -0
- package/dist/handlers/system/handleGetObjectNodeFromCache.js +70 -0
- package/dist/handlers/system/handleGetObjectStructure.d.ts +26 -0
- package/dist/handlers/system/handleGetObjectStructure.d.ts.map +1 -0
- package/dist/handlers/system/handleGetObjectStructure.js +103 -0
- package/dist/handlers/system/handleGetSession.d.ts +33 -0
- package/dist/handlers/system/handleGetSession.d.ts.map +1 -0
- package/dist/handlers/system/handleGetSession.js +63 -0
- package/dist/handlers/system/handleGetSqlQuery.d.ts +49 -0
- package/dist/handlers/system/handleGetSqlQuery.d.ts.map +1 -0
- package/dist/handlers/system/handleGetSqlQuery.js +176 -0
- package/dist/handlers/system/handleGetTransaction.d.ts +42 -0
- package/dist/handlers/system/handleGetTransaction.d.ts.map +1 -0
- package/dist/handlers/system/handleGetTransaction.js +91 -0
- package/dist/handlers/system/handleGetTypeInfo.d.ts +69 -0
- package/dist/handlers/system/handleGetTypeInfo.d.ts.map +1 -0
- package/dist/handlers/system/handleGetTypeInfo.js +169 -0
- package/dist/handlers/system/handleGetWhereUsed.d.ts +69 -0
- package/dist/handlers/system/handleGetWhereUsed.d.ts.map +1 -0
- package/dist/handlers/system/handleGetWhereUsed.js +405 -0
- package/dist/handlers/table/handleCheckTable.d.ts +55 -0
- package/dist/handlers/table/handleCheckTable.d.ts.map +1 -0
- package/dist/handlers/table/handleCheckTable.js +138 -0
- package/dist/handlers/table/handleCreateTable.d.ts +42 -0
- package/dist/handlers/table/handleCreateTable.d.ts.map +1 -0
- package/dist/handlers/table/handleCreateTable.js +118 -0
- package/dist/handlers/table/handleGetTable.d.ts +16 -0
- package/dist/handlers/table/handleGetTable.d.ts.map +1 -0
- package/dist/handlers/table/handleGetTable.js +140 -0
- package/dist/handlers/table/handleGetTableContents.d.ts +56 -0
- package/dist/handlers/table/handleGetTableContents.d.ts.map +1 -0
- package/dist/handlers/table/handleGetTableContents.js +387 -0
- package/dist/handlers/table/handleValidateTable.d.ts +53 -0
- package/dist/handlers/table/handleValidateTable.d.ts.map +1 -0
- package/dist/handlers/table/handleValidateTable.js +125 -0
- package/dist/handlers/table/readonly/handleGetTable.d.ts +20 -0
- package/dist/handlers/table/readonly/handleGetTable.d.ts.map +1 -0
- package/dist/handlers/table/readonly/handleGetTable.js +140 -0
- package/dist/handlers/transport/handleCreateTransport.d.ts +50 -0
- package/dist/handlers/transport/handleCreateTransport.d.ts.map +1 -0
- package/dist/handlers/transport/handleCreateTransport.js +151 -0
- package/dist/handlers/transport/handleGetTransport.d.ts +44 -0
- package/dist/handlers/transport/handleGetTransport.d.ts.map +1 -0
- package/dist/handlers/transport/handleGetTransport.js +183 -0
- package/dist/handlers/view/handleCreateView.d.ts +52 -0
- package/dist/handlers/view/handleCreateView.d.ts.map +1 -0
- package/dist/handlers/view/handleCreateView.js +139 -0
- package/dist/handlers/view/handleGetView.d.ts +26 -0
- package/dist/handlers/view/handleGetView.d.ts.map +1 -0
- package/dist/handlers/view/handleGetView.js +349 -0
- package/dist/handlers/view/handleUpdateViewSource.d.ts +44 -0
- package/dist/handlers/view/handleUpdateViewSource.d.ts.map +1 -0
- package/dist/handlers/view/handleUpdateViewSource.js +136 -0
- package/dist/handlers/view/readonly/handleGetView.d.ts +26 -0
- package/dist/handlers/view/readonly/handleGetView.d.ts.map +1 -0
- package/dist/handlers/view/readonly/handleGetView.js +349 -0
- package/dist/index.d.ts +94 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2453 -0
- package/dist/lib/activationUtils.d.ts +59 -0
- package/dist/lib/activationUtils.d.ts.map +1 -0
- package/dist/lib/activationUtils.js +168 -0
- package/dist/lib/config/ArgumentsParser.d.ts +2 -0
- package/dist/lib/config/ArgumentsParser.d.ts.map +1 -1
- package/dist/lib/config/ArgumentsParser.js +11 -1
- package/dist/lib/config/ArgumentsParser.js.map +1 -1
- package/dist/lib/config/IServerConfig.d.ts +2 -0
- package/dist/lib/config/IServerConfig.d.ts.map +1 -1
- package/dist/lib/config/ServerConfigManager.d.ts.map +1 -1
- package/dist/lib/config/ServerConfigManager.js +3 -0
- package/dist/lib/config/ServerConfigManager.js.map +1 -1
- package/dist/lib/getFullCodeCache.d.ts +3 -0
- package/dist/lib/getFullCodeCache.d.ts.map +1 -0
- package/dist/lib/getFullCodeCache.js +56 -0
- package/dist/lib/toolsRegistry.d.ts +13 -0
- package/dist/lib/toolsRegistry.d.ts.map +1 -0
- package/dist/lib/toolsRegistry.js +410 -0
- package/dist/server/AuthBrokerConfig.d.ts.map +1 -1
- package/dist/server/AuthBrokerConfig.js +14 -9
- package/dist/server/AuthBrokerConfig.js.map +1 -1
- package/dist/server/BaseMcpServer.d.ts.map +1 -1
- package/dist/server/BaseMcpServer.js +6 -0
- package/dist/server/BaseMcpServer.js.map +1 -1
- package/dist/server/launcher.js +4 -4
- package/dist/server/launcher.js.map +1 -1
- package/dist/utils/lockStateManager.d.ts +64 -0
- package/dist/utils/lockStateManager.d.ts.map +1 -0
- package/dist/utils/lockStateManager.js +173 -0
- package/dist/utils/lockStateManager.js.map +1 -0
- package/docs/user-guide/AUTHENTICATION.md +7 -0
- package/docs/user-guide/CLI_OPTIONS.md +14 -0
- package/package.json +2 -1
- package/dist/handlers/service_binding/high/handleListServiceBindings.d.ts +0 -44
- package/dist/handlers/service_binding/high/handleListServiceBindings.d.ts.map +0 -1
- package/dist/handlers/service_binding/high/handleListServiceBindings.js +0 -211
- package/dist/handlers/service_binding/high/handleListServiceBindings.js.map +0 -1
- package/dist/handlers/service_binding/high/serviceBindingXmlBuilder.d.ts +0 -11
- package/dist/handlers/service_binding/high/serviceBindingXmlBuilder.d.ts.map +0 -1
- package/dist/handlers/service_binding/high/serviceBindingXmlBuilder.js +0 -27
- package/dist/handlers/service_binding/high/serviceBindingXmlBuilder.js.map +0 -1
- package/dist/handlers/system/readonly/handleRuntimeGetDumpByUri.d.ts +0 -27
- package/dist/handlers/system/readonly/handleRuntimeGetDumpByUri.d.ts.map +0 -1
- package/dist/handlers/system/readonly/handleRuntimeGetDumpByUri.js +0 -47
- package/dist/handlers/system/readonly/handleRuntimeGetDumpByUri.js.map +0 -1
- package/dist/handlers/system/readonly/runtimeDumpReadCompat.d.ts +0 -8
- package/dist/handlers/system/readonly/runtimeDumpReadCompat.d.ts.map +0 -1
- package/dist/handlers/system/readonly/runtimeDumpReadCompat.js +0 -55
- package/dist/handlers/system/readonly/runtimeDumpReadCompat.js.map +0 -1
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lock State Manager - persists lock handles and session IDs to filesystem
|
|
3
|
+
* Allows recovery and cleanup of locks after crashes or interruptions
|
|
4
|
+
*/
|
|
5
|
+
export interface LockState {
|
|
6
|
+
sessionId: string;
|
|
7
|
+
lockHandle: string;
|
|
8
|
+
objectType: 'class' | 'interface' | 'program' | 'fm' | 'domain' | 'dataElement' | 'view' | 'table' | 'structure' | 'package';
|
|
9
|
+
objectName: string;
|
|
10
|
+
functionGroupName?: string;
|
|
11
|
+
timestamp: number;
|
|
12
|
+
pid: number;
|
|
13
|
+
testFile?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface LockRegistry {
|
|
16
|
+
locks: LockState[];
|
|
17
|
+
}
|
|
18
|
+
export declare class LockStateManager {
|
|
19
|
+
private lockFilePath;
|
|
20
|
+
private registry;
|
|
21
|
+
constructor(lockDir?: string);
|
|
22
|
+
/**
|
|
23
|
+
* Load lock registry from file
|
|
24
|
+
*/
|
|
25
|
+
private loadRegistry;
|
|
26
|
+
/**
|
|
27
|
+
* Save lock registry to file
|
|
28
|
+
*/
|
|
29
|
+
private saveRegistry;
|
|
30
|
+
/**
|
|
31
|
+
* Register a new lock
|
|
32
|
+
*/
|
|
33
|
+
registerLock(lock: Omit<LockState, 'timestamp' | 'pid'>): void;
|
|
34
|
+
/**
|
|
35
|
+
* Remove lock from registry
|
|
36
|
+
*/
|
|
37
|
+
removeLock(objectType: string, objectName: string, functionGroupName?: string): void;
|
|
38
|
+
/**
|
|
39
|
+
* Get lock for specific object
|
|
40
|
+
*/
|
|
41
|
+
getLock(objectType: string, objectName: string, functionGroupName?: string): LockState | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Get all active locks
|
|
44
|
+
*/
|
|
45
|
+
getAllLocks(): LockState[];
|
|
46
|
+
/**
|
|
47
|
+
* Get stale locks (older than threshold)
|
|
48
|
+
*/
|
|
49
|
+
getStaleLocks(maxAgeMs?: number): LockState[];
|
|
50
|
+
/**
|
|
51
|
+
* Get locks from dead processes
|
|
52
|
+
*/
|
|
53
|
+
getDeadProcessLocks(): LockState[];
|
|
54
|
+
/**
|
|
55
|
+
* Clean up stale locks
|
|
56
|
+
*/
|
|
57
|
+
cleanupStaleLocks(maxAgeMs?: number): LockState[];
|
|
58
|
+
/**
|
|
59
|
+
* Clear all locks
|
|
60
|
+
*/
|
|
61
|
+
clearAll(): void;
|
|
62
|
+
}
|
|
63
|
+
export declare function getLockStateManager(lockDir?: string): LockStateManager;
|
|
64
|
+
//# sourceMappingURL=lockStateManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lockStateManager.d.ts","sourceRoot":"","sources":["../../src/utils/lockStateManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EACN,OAAO,GACP,WAAW,GACX,SAAS,GACT,IAAI,GACJ,QAAQ,GACR,aAAa,GACb,MAAM,GACN,OAAO,GACP,WAAW,GACX,SAAS,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAe;gBAEnB,OAAO,GAAE,MAAiB;IAWtC;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,OAAO,CAAC,YAAY;IAYpB;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,GAAG,KAAK,CAAC,GAAG,IAAI;IAqB9D;;OAEG;IACH,UAAU,CACR,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,iBAAiB,CAAC,EAAE,MAAM,GACzB,IAAI;IAYP;;OAEG;IACH,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,iBAAiB,CAAC,EAAE,MAAM,GACzB,SAAS,GAAG,SAAS;IASxB;;OAEG;IACH,WAAW,IAAI,SAAS,EAAE;IAI1B;;OAEG;IACH,aAAa,CAAC,QAAQ,GAAE,MAAuB,GAAG,SAAS,EAAE;IAK7D;;OAEG;IACH,mBAAmB,IAAI,SAAS,EAAE;IAYlC;;OAEG;IACH,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE;IAYjD;;OAEG;IACH,QAAQ,IAAI,IAAI;CAIjB;AAKD,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAKtE"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Lock State Manager - persists lock handles and session IDs to filesystem
|
|
4
|
+
* Allows recovery and cleanup of locks after crashes or interruptions
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.LockStateManager = void 0;
|
|
41
|
+
exports.getLockStateManager = getLockStateManager;
|
|
42
|
+
const fs = __importStar(require("node:fs"));
|
|
43
|
+
const path = __importStar(require("node:path"));
|
|
44
|
+
class LockStateManager {
|
|
45
|
+
lockFilePath;
|
|
46
|
+
registry;
|
|
47
|
+
constructor(lockDir = '.locks') {
|
|
48
|
+
// Create locks directory if it doesn't exist
|
|
49
|
+
const baseDir = path.resolve(process.cwd(), lockDir);
|
|
50
|
+
if (!fs.existsSync(baseDir)) {
|
|
51
|
+
fs.mkdirSync(baseDir, { recursive: true });
|
|
52
|
+
}
|
|
53
|
+
this.lockFilePath = path.join(baseDir, 'active-locks.json');
|
|
54
|
+
this.registry = this.loadRegistry();
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Load lock registry from file
|
|
58
|
+
*/
|
|
59
|
+
loadRegistry() {
|
|
60
|
+
if (fs.existsSync(this.lockFilePath)) {
|
|
61
|
+
try {
|
|
62
|
+
const data = fs.readFileSync(this.lockFilePath, 'utf-8');
|
|
63
|
+
return JSON.parse(data);
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
console.warn(`Failed to load lock registry: ${error}`);
|
|
67
|
+
return { locks: [] };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return { locks: [] };
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Save lock registry to file
|
|
74
|
+
*/
|
|
75
|
+
saveRegistry() {
|
|
76
|
+
try {
|
|
77
|
+
fs.writeFileSync(this.lockFilePath, JSON.stringify(this.registry, null, 2), 'utf-8');
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
console.error(`Failed to save lock registry: ${error}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Register a new lock
|
|
85
|
+
*/
|
|
86
|
+
registerLock(lock) {
|
|
87
|
+
const lockState = {
|
|
88
|
+
...lock,
|
|
89
|
+
timestamp: Date.now(),
|
|
90
|
+
pid: process.pid,
|
|
91
|
+
};
|
|
92
|
+
// Remove old lock for same object if exists
|
|
93
|
+
this.registry.locks = this.registry.locks.filter((l) => !(l.objectType === lock.objectType &&
|
|
94
|
+
l.objectName === lock.objectName &&
|
|
95
|
+
l.functionGroupName === lock.functionGroupName));
|
|
96
|
+
this.registry.locks.push(lockState);
|
|
97
|
+
this.saveRegistry();
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Remove lock from registry
|
|
101
|
+
*/
|
|
102
|
+
removeLock(objectType, objectName, functionGroupName) {
|
|
103
|
+
this.registry.locks = this.registry.locks.filter((l) => !(l.objectType === objectType &&
|
|
104
|
+
l.objectName === objectName &&
|
|
105
|
+
l.functionGroupName === functionGroupName));
|
|
106
|
+
this.saveRegistry();
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get lock for specific object
|
|
110
|
+
*/
|
|
111
|
+
getLock(objectType, objectName, functionGroupName) {
|
|
112
|
+
return this.registry.locks.find((l) => l.objectType === objectType &&
|
|
113
|
+
l.objectName === objectName &&
|
|
114
|
+
l.functionGroupName === functionGroupName);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get all active locks
|
|
118
|
+
*/
|
|
119
|
+
getAllLocks() {
|
|
120
|
+
return [...this.registry.locks];
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Get stale locks (older than threshold)
|
|
124
|
+
*/
|
|
125
|
+
getStaleLocks(maxAgeMs = 30 * 60 * 1000) {
|
|
126
|
+
const now = Date.now();
|
|
127
|
+
return this.registry.locks.filter((l) => now - l.timestamp > maxAgeMs);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Get locks from dead processes
|
|
131
|
+
*/
|
|
132
|
+
getDeadProcessLocks() {
|
|
133
|
+
return this.registry.locks.filter((l) => {
|
|
134
|
+
try {
|
|
135
|
+
// Check if process is still running
|
|
136
|
+
process.kill(l.pid, 0);
|
|
137
|
+
return false; // Process exists
|
|
138
|
+
}
|
|
139
|
+
catch (_e) {
|
|
140
|
+
return true; // Process doesn't exist
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Clean up stale locks
|
|
146
|
+
*/
|
|
147
|
+
cleanupStaleLocks(maxAgeMs) {
|
|
148
|
+
const staleLocks = this.getStaleLocks(maxAgeMs);
|
|
149
|
+
const deadProcessLocks = this.getDeadProcessLocks();
|
|
150
|
+
const toCleanup = [...new Set([...staleLocks, ...deadProcessLocks])];
|
|
151
|
+
toCleanup.forEach((lock) => {
|
|
152
|
+
this.removeLock(lock.objectType, lock.objectName, lock.functionGroupName);
|
|
153
|
+
});
|
|
154
|
+
return toCleanup;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Clear all locks
|
|
158
|
+
*/
|
|
159
|
+
clearAll() {
|
|
160
|
+
this.registry = { locks: [] };
|
|
161
|
+
this.saveRegistry();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
exports.LockStateManager = LockStateManager;
|
|
165
|
+
// Global instance
|
|
166
|
+
let globalManager = null;
|
|
167
|
+
function getLockStateManager(lockDir) {
|
|
168
|
+
if (!globalManager) {
|
|
169
|
+
globalManager = new LockStateManager(lockDir);
|
|
170
|
+
}
|
|
171
|
+
return globalManager;
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=lockStateManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lockStateManager.js","sourceRoot":"","sources":["../../src/utils/lockStateManager.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgMH,kDAKC;AAnMD,4CAA8B;AAC9B,gDAAkC;AA2BlC,MAAa,gBAAgB;IACnB,YAAY,CAAS;IACrB,QAAQ,CAAe;IAE/B,YAAY,UAAkB,QAAQ;QACpC,6CAA6C;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IACtC,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBACzD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;gBACvD,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,IAAI,CAAC;YACH,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EACtC,OAAO,CACR,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,IAA0C;QACrD,MAAM,SAAS,GAAc;YAC3B,GAAG,IAAI;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC;QAEF,4CAA4C;QAC5C,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAC9C,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CACC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU;YAChC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU;YAChC,CAAC,CAAC,iBAAiB,KAAK,IAAI,CAAC,iBAAiB,CAC/C,CACJ,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,UAAU,CACR,UAAkB,EAClB,UAAkB,EAClB,iBAA0B;QAE1B,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAC9C,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CACC,CAAC,CAAC,UAAU,KAAK,UAAU;YAC3B,CAAC,CAAC,UAAU,KAAK,UAAU;YAC3B,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAC1C,CACJ,CAAC;QACF,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,OAAO,CACL,UAAkB,EAClB,UAAkB,EAClB,iBAA0B;QAE1B,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAC7B,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,UAAU,KAAK,UAAU;YAC3B,CAAC,CAAC,UAAU,KAAK,UAAU;YAC3B,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CAC5C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,WAAmB,EAAE,GAAG,EAAE,GAAG,IAAI;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACtC,IAAI,CAAC;gBACH,oCAAoC;gBACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACvB,OAAO,KAAK,CAAC,CAAC,iBAAiB;YACjC,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACZ,OAAO,IAAI,CAAC,CAAC,wBAAwB;YACvC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,QAAiB;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,UAAU,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAErE,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,QAAQ,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;CACF;AA7JD,4CA6JC;AAED,kBAAkB;AAClB,IAAI,aAAa,GAA4B,IAAI,CAAC;AAElD,SAAgB,mBAAmB,CAAC,OAAgB;IAClD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
|
@@ -24,6 +24,7 @@ mcp-abap-adt --transport=stdio --mcp=TRIAL
|
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
The server will load the matching service key and manage tokens automatically.
|
|
27
|
+
When `--mcp=<destination>` is specified, automatic fallback loading of local `./.env` is skipped.
|
|
27
28
|
|
|
28
29
|
## .env Authentication
|
|
29
30
|
|
|
@@ -49,6 +50,12 @@ This writes JWT details to `.env`.
|
|
|
49
50
|
|
|
50
51
|
**Claude recommendation:** for Claude, prefer service keys in `service-keys` and use `--mcp=<destination>` instead of manual tokens.
|
|
51
52
|
|
|
53
|
+
If browser-based OAuth callback port is occupied, override it:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
mcp-abap-adt --transport=http --mcp=TRIAL --browser-auth-port=5100
|
|
57
|
+
```
|
|
58
|
+
|
|
52
59
|
## HTTP/SSE Headers
|
|
53
60
|
|
|
54
61
|
For HTTP/SSE transports, you can supply auth per request using headers:
|
|
@@ -175,6 +175,20 @@ mcp-abap-adt --auth-broker --auth-broker-path=~/prj/tmp/
|
|
|
175
175
|
# This will use ~/prj/tmp/service-keys and ~/prj/tmp/sessions
|
|
176
176
|
```
|
|
177
177
|
|
|
178
|
+
**--browser-auth-port=\<port\>**
|
|
179
|
+
|
|
180
|
+
Override OAuth browser callback port used by token providers.
|
|
181
|
+
|
|
182
|
+
Defaults by transport:
|
|
183
|
+
- HTTP: `5000`
|
|
184
|
+
- SSE: `4000`
|
|
185
|
+
- stdio: `4001`
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
# Avoid callback port collision in HTTP mode
|
|
189
|
+
mcp-abap-adt --transport=http --mcp=TRIAL --browser-auth-port=5100
|
|
190
|
+
```
|
|
191
|
+
|
|
178
192
|
## HTTP Server Options
|
|
179
193
|
|
|
180
194
|
Used with `--transport=http` or `--transport=streamable-http`.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcp-abap-adt/core",
|
|
3
3
|
"mcpName": "io.github.fr0ster/mcp-abap-adt",
|
|
4
|
-
"version": "2.5.
|
|
4
|
+
"version": "2.5.2",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"exports": {
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
"commander": "^14.0.3",
|
|
113
113
|
"cors": "^2.8.6",
|
|
114
114
|
"dotenv": "^17.3.1",
|
|
115
|
+
"express-rate-limit": "^8.2.1",
|
|
115
116
|
"express": "^5.1.0",
|
|
116
117
|
"jest": "^30.2.0",
|
|
117
118
|
"jest-util": "^30.2.0",
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import type { HandlerContext } from '../../../lib/handlers/interfaces';
|
|
2
|
-
import { type ServiceBindingResponseFormat } from './serviceBindingPayloadUtils';
|
|
3
|
-
export declare const TOOL_DEFINITION: {
|
|
4
|
-
readonly name: "ListServiceBindings";
|
|
5
|
-
readonly description: "List ABAP service bindings feed from ADT Business Services endpoint with optional paging/filter query.";
|
|
6
|
-
readonly inputSchema: {
|
|
7
|
-
readonly type: "object";
|
|
8
|
-
readonly properties: {
|
|
9
|
-
readonly top: {
|
|
10
|
-
readonly type: "number";
|
|
11
|
-
readonly description: "Maximum number of entries to return.";
|
|
12
|
-
};
|
|
13
|
-
readonly skip: {
|
|
14
|
-
readonly type: "number";
|
|
15
|
-
readonly description: "Number of entries to skip.";
|
|
16
|
-
};
|
|
17
|
-
readonly query: {
|
|
18
|
-
readonly type: "string";
|
|
19
|
-
readonly description: "Optional ADT feed query expression (passed as \"query\" URL parameter).";
|
|
20
|
-
};
|
|
21
|
-
readonly response_format: {
|
|
22
|
-
readonly type: "string";
|
|
23
|
-
readonly enum: readonly ["xml", "json", "plain"];
|
|
24
|
-
readonly description: "Preferred response format. \"json\" requests JSON from endpoint, \"xml\" parses XML payload, \"plain\" returns raw text.";
|
|
25
|
-
readonly default: "xml";
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
interface ListServiceBindingsArgs {
|
|
31
|
-
top?: number;
|
|
32
|
-
skip?: number;
|
|
33
|
-
query?: string;
|
|
34
|
-
response_format?: ServiceBindingResponseFormat;
|
|
35
|
-
}
|
|
36
|
-
export declare function handleListServiceBindings(context: HandlerContext, args?: ListServiceBindingsArgs): Promise<{
|
|
37
|
-
isError: boolean;
|
|
38
|
-
content: {
|
|
39
|
-
type: string;
|
|
40
|
-
text: any;
|
|
41
|
-
}[];
|
|
42
|
-
}>;
|
|
43
|
-
export {};
|
|
44
|
-
//# sourceMappingURL=handleListServiceBindings.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handleListServiceBindings.d.ts","sourceRoot":"","sources":["../../../../src/handlers/service_binding/high/handleListServiceBindings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAGL,KAAK,4BAA4B,EAClC,MAAM,8BAA8B,CAAC;AAEtC,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BlB,CAAC;AAEX,UAAU,uBAAuB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,4BAA4B,CAAC;CAChD;AA4HD,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,cAAc,EACvB,IAAI,GAAE,uBAA4B;;;;;;GAgGnC"}
|
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TOOL_DEFINITION = void 0;
|
|
4
|
-
exports.handleListServiceBindings = handleListServiceBindings;
|
|
5
|
-
const fast_xml_parser_1 = require("fast-xml-parser");
|
|
6
|
-
const utils_1 = require("../../../lib/utils");
|
|
7
|
-
const serviceBindingPayloadUtils_1 = require("./serviceBindingPayloadUtils");
|
|
8
|
-
exports.TOOL_DEFINITION = {
|
|
9
|
-
name: 'ListServiceBindings',
|
|
10
|
-
description: 'List ABAP service bindings feed from ADT Business Services endpoint with optional paging/filter query.',
|
|
11
|
-
inputSchema: {
|
|
12
|
-
type: 'object',
|
|
13
|
-
properties: {
|
|
14
|
-
top: {
|
|
15
|
-
type: 'number',
|
|
16
|
-
description: 'Maximum number of entries to return.',
|
|
17
|
-
},
|
|
18
|
-
skip: {
|
|
19
|
-
type: 'number',
|
|
20
|
-
description: 'Number of entries to skip.',
|
|
21
|
-
},
|
|
22
|
-
query: {
|
|
23
|
-
type: 'string',
|
|
24
|
-
description: 'Optional ADT feed query expression (passed as "query" URL parameter).',
|
|
25
|
-
},
|
|
26
|
-
response_format: {
|
|
27
|
-
type: 'string',
|
|
28
|
-
enum: ['xml', 'json', 'plain'],
|
|
29
|
-
description: 'Preferred response format. "json" requests JSON from endpoint, "xml" parses XML payload, "plain" returns raw text.',
|
|
30
|
-
default: 'xml',
|
|
31
|
-
},
|
|
32
|
-
},
|
|
33
|
-
},
|
|
34
|
-
};
|
|
35
|
-
function isUriMappingError(error) {
|
|
36
|
-
const raw = String(error?.response?.data || error?.message || '');
|
|
37
|
-
return (raw.includes('uriMappingError') ||
|
|
38
|
-
raw.includes('URI-Mapping cannot be performed'));
|
|
39
|
-
}
|
|
40
|
-
function isNotAcceptableError(error) {
|
|
41
|
-
const status = Number(error?.response?.status ?? 0);
|
|
42
|
-
if (status === 406) {
|
|
43
|
-
return true;
|
|
44
|
-
}
|
|
45
|
-
const raw = String(error?.response?.data || error?.message || '');
|
|
46
|
-
return (raw.includes('ExceptionResourceNotAcceptable') ||
|
|
47
|
-
raw.includes('The message content is not acceptable'));
|
|
48
|
-
}
|
|
49
|
-
function extractSrvbCollectionFromDiscoveryXml(xml) {
|
|
50
|
-
const byRegex = /<app:collection[^>]*href="([^"]+)"[^>]*>[\s\S]*?<atom:category[^>]*term="srvb"[^>]*>[\s\S]*?<\/app:collection>/i.exec(xml) ||
|
|
51
|
-
/<app:collection[^>]*href="([^"]+)"[\s\S]*?<atom:category[^>]*term="srvb"/i.exec(xml);
|
|
52
|
-
if (byRegex?.[1]) {
|
|
53
|
-
return byRegex[1];
|
|
54
|
-
}
|
|
55
|
-
try {
|
|
56
|
-
const parser = new fast_xml_parser_1.XMLParser({
|
|
57
|
-
ignoreAttributes: false,
|
|
58
|
-
attributeNamePrefix: '@_',
|
|
59
|
-
});
|
|
60
|
-
const parsed = parser.parse(xml);
|
|
61
|
-
const findCollection = (value) => {
|
|
62
|
-
if (!value || typeof value !== 'object') {
|
|
63
|
-
return undefined;
|
|
64
|
-
}
|
|
65
|
-
if (Array.isArray(value)) {
|
|
66
|
-
for (const item of value) {
|
|
67
|
-
const found = findCollection(item);
|
|
68
|
-
if (found) {
|
|
69
|
-
return found;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return undefined;
|
|
73
|
-
}
|
|
74
|
-
const obj = value;
|
|
75
|
-
const href = obj['@_href'];
|
|
76
|
-
const category = obj['atom:category'];
|
|
77
|
-
const categories = Array.isArray(category)
|
|
78
|
-
? category
|
|
79
|
-
: category
|
|
80
|
-
? [category]
|
|
81
|
-
: [];
|
|
82
|
-
const hasSrvbCategory = categories.some((entry) => entry?.['@_term'] === 'srvb');
|
|
83
|
-
if (typeof href === 'string' && hasSrvbCategory) {
|
|
84
|
-
return href;
|
|
85
|
-
}
|
|
86
|
-
for (const nested of Object.values(obj)) {
|
|
87
|
-
const found = findCollection(nested);
|
|
88
|
-
if (found) {
|
|
89
|
-
return found;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return undefined;
|
|
93
|
-
};
|
|
94
|
-
return findCollection(parsed);
|
|
95
|
-
}
|
|
96
|
-
catch {
|
|
97
|
-
return undefined;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
async function resolveServiceBindingsEndpoint(context) {
|
|
101
|
-
const { connection } = context;
|
|
102
|
-
let discoveryResponse;
|
|
103
|
-
try {
|
|
104
|
-
discoveryResponse = await connection.makeAdtRequest({
|
|
105
|
-
method: 'GET',
|
|
106
|
-
url: '/sap/bc/adt/discovery',
|
|
107
|
-
timeout: 30000,
|
|
108
|
-
headers: {
|
|
109
|
-
Accept: 'application/atomsvc+xml',
|
|
110
|
-
},
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
catch (error) {
|
|
114
|
-
// Fallback for systems that accept generic XML only.
|
|
115
|
-
discoveryResponse = await connection.makeAdtRequest({
|
|
116
|
-
method: 'GET',
|
|
117
|
-
url: '/sap/bc/adt/discovery',
|
|
118
|
-
timeout: 30000,
|
|
119
|
-
headers: {
|
|
120
|
-
Accept: 'application/xml',
|
|
121
|
-
},
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
const xml = typeof discoveryResponse.data === 'string'
|
|
125
|
-
? discoveryResponse.data
|
|
126
|
-
: JSON.stringify(discoveryResponse.data);
|
|
127
|
-
return extractSrvbCollectionFromDiscoveryXml(xml);
|
|
128
|
-
}
|
|
129
|
-
async function handleListServiceBindings(context, args = {}) {
|
|
130
|
-
const { connection, logger } = context;
|
|
131
|
-
try {
|
|
132
|
-
const responseFormat = args.response_format ?? 'xml';
|
|
133
|
-
const requestedAccept = (0, serviceBindingPayloadUtils_1.resolveServiceBindingAcceptHeader)(responseFormat);
|
|
134
|
-
const listFeedAccept = 'application/atomsvc+xml';
|
|
135
|
-
const searchParams = new URLSearchParams();
|
|
136
|
-
if (args.top !== undefined) {
|
|
137
|
-
searchParams.set('top', String(args.top));
|
|
138
|
-
}
|
|
139
|
-
if (args.skip !== undefined) {
|
|
140
|
-
searchParams.set('skip', String(args.skip));
|
|
141
|
-
}
|
|
142
|
-
if (args.query?.trim()) {
|
|
143
|
-
searchParams.set('query', args.query.trim());
|
|
144
|
-
}
|
|
145
|
-
const qs = searchParams.toString();
|
|
146
|
-
const defaultEndpoint = '/sap/bc/adt/businessservices/bindings';
|
|
147
|
-
const buildUrl = (base) => (qs ? `${base}?${qs}` : base);
|
|
148
|
-
let endpointUsed = defaultEndpoint;
|
|
149
|
-
let acceptUsed = requestedAccept;
|
|
150
|
-
let response;
|
|
151
|
-
const fetchList = async (baseUrl, acceptHeader) => connection.makeAdtRequest({
|
|
152
|
-
method: 'GET',
|
|
153
|
-
url: buildUrl(baseUrl),
|
|
154
|
-
timeout: 30000,
|
|
155
|
-
headers: {
|
|
156
|
-
Accept: acceptHeader,
|
|
157
|
-
},
|
|
158
|
-
});
|
|
159
|
-
try {
|
|
160
|
-
response = await fetchList(defaultEndpoint, requestedAccept);
|
|
161
|
-
}
|
|
162
|
-
catch (error) {
|
|
163
|
-
if (isNotAcceptableError(error) && requestedAccept !== listFeedAccept) {
|
|
164
|
-
acceptUsed = listFeedAccept;
|
|
165
|
-
response = await fetchList(defaultEndpoint, listFeedAccept);
|
|
166
|
-
}
|
|
167
|
-
else if (!isUriMappingError(error)) {
|
|
168
|
-
throw error;
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
const resolvedEndpoint = await resolveServiceBindingsEndpoint(context);
|
|
172
|
-
if (!resolvedEndpoint) {
|
|
173
|
-
throw new Error('Service binding endpoint is not available on this system (srvb collection not found in ADT discovery).');
|
|
174
|
-
}
|
|
175
|
-
endpointUsed = resolvedEndpoint;
|
|
176
|
-
try {
|
|
177
|
-
response = await fetchList(resolvedEndpoint, requestedAccept);
|
|
178
|
-
}
|
|
179
|
-
catch (resolvedError) {
|
|
180
|
-
if (isNotAcceptableError(resolvedError) &&
|
|
181
|
-
requestedAccept !== listFeedAccept) {
|
|
182
|
-
acceptUsed = listFeedAccept;
|
|
183
|
-
response = await fetchList(resolvedEndpoint, listFeedAccept);
|
|
184
|
-
}
|
|
185
|
-
else {
|
|
186
|
-
throw resolvedError;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
return (0, utils_1.return_response)({
|
|
192
|
-
data: JSON.stringify({
|
|
193
|
-
success: true,
|
|
194
|
-
response_format: responseFormat,
|
|
195
|
-
endpoint_used: endpointUsed,
|
|
196
|
-
accept_used: acceptUsed,
|
|
197
|
-
status: response.status,
|
|
198
|
-
payload: (0, serviceBindingPayloadUtils_1.parseServiceBindingPayload)(response.data, responseFormat),
|
|
199
|
-
}, null, 2),
|
|
200
|
-
status: response.status,
|
|
201
|
-
statusText: response.statusText,
|
|
202
|
-
headers: response.headers,
|
|
203
|
-
config: response.config,
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
catch (error) {
|
|
207
|
-
logger?.error('Error listing service bindings:', error);
|
|
208
|
-
return (0, utils_1.return_error)(error);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
//# sourceMappingURL=handleListServiceBindings.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handleListServiceBindings.js","sourceRoot":"","sources":["../../../../src/handlers/service_binding/high/handleListServiceBindings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export type ServiceBindingType = 'ODataV2' | 'ODataV4';
|
|
2
|
-
export interface IServiceBindingXmlConfig {
|
|
3
|
-
serviceBindingName: string;
|
|
4
|
-
serviceDefinitionName: string;
|
|
5
|
-
packageName: string;
|
|
6
|
-
description?: string;
|
|
7
|
-
bindingType?: ServiceBindingType;
|
|
8
|
-
serviceBindingVersion?: string;
|
|
9
|
-
}
|
|
10
|
-
export declare function buildServiceBindingXml(config: IServiceBindingXmlConfig): string;
|
|
11
|
-
//# sourceMappingURL=serviceBindingXmlBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serviceBindingXmlBuilder.d.ts","sourceRoot":"","sources":["../../../../src/handlers/service_binding/high/serviceBindingXmlBuilder.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,CAAC;AAEvD,MAAM,WAAW,wBAAwB;IACvC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAWD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,wBAAwB,GAC/B,MAAM,CAeR"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildServiceBindingXml = buildServiceBindingXml;
|
|
4
|
-
function escapeXml(value) {
|
|
5
|
-
return value
|
|
6
|
-
.replaceAll('&', '&')
|
|
7
|
-
.replaceAll('<', '<')
|
|
8
|
-
.replaceAll('>', '>')
|
|
9
|
-
.replaceAll('"', '"')
|
|
10
|
-
.replaceAll("'", ''');
|
|
11
|
-
}
|
|
12
|
-
function buildServiceBindingXml(config) {
|
|
13
|
-
const bindingType = config.bindingType ?? 'ODataV4';
|
|
14
|
-
const serviceBindingVersion = config.serviceBindingVersion?.trim() || '1';
|
|
15
|
-
const description = config.description?.trim() || config.serviceBindingName;
|
|
16
|
-
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
17
|
-
<srvb:serviceBinding
|
|
18
|
-
xmlns:srvb="http://www.sap.com/adt/businessservices/servicebindings"
|
|
19
|
-
xmlns:adtcore="http://www.sap.com/adt/core"
|
|
20
|
-
adtcore:name="${escapeXml(config.serviceBindingName)}"
|
|
21
|
-
adtcore:description="${escapeXml(description)}"
|
|
22
|
-
srvb:serviceDefinition="${escapeXml(config.serviceDefinitionName)}"
|
|
23
|
-
srvb:package="${escapeXml(config.packageName)}"
|
|
24
|
-
srvb:bindingType="${escapeXml(bindingType)}"
|
|
25
|
-
srvb:serviceBindingVersion="${escapeXml(serviceBindingVersion)}" />`;
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=serviceBindingXmlBuilder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serviceBindingXmlBuilder.js","sourceRoot":"","sources":["../../../../src/handlers/service_binding/high/serviceBindingXmlBuilder.ts"],"names":[],"mappings":";;AAoBA,wDAiBC;AA1BD,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK;SACT,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC;SACxB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC;SACzB,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED,SAAgB,sBAAsB,CACpC,MAAgC;IAEhC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,SAAS,CAAC;IACpD,MAAM,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC;IAC1E,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,kBAAkB,CAAC;IAE5E,OAAO;;;;kBAIS,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC;yBAC7B,SAAS,CAAC,WAAW,CAAC;4BACnB,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC;kBACjD,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC;sBACzB,SAAS,CAAC,WAAW,CAAC;gCACZ,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC;AACvE,CAAC"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { HandlerContext } from '../../../lib/handlers/interfaces';
|
|
2
|
-
export declare const TOOL_DEFINITION: {
|
|
3
|
-
readonly name: "RuntimeGetDumpByUri";
|
|
4
|
-
readonly description: "[runtime] Read a specific ABAP runtime dump by ADT URI from RuntimeListDumps feed.";
|
|
5
|
-
readonly inputSchema: {
|
|
6
|
-
readonly type: "object";
|
|
7
|
-
readonly properties: {
|
|
8
|
-
readonly uri: {
|
|
9
|
-
readonly type: "string";
|
|
10
|
-
readonly description: "Full ADT runtime dump URI.";
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
-
readonly required: readonly ["uri"];
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
interface RuntimeGetDumpByUriArgs {
|
|
17
|
-
uri: string;
|
|
18
|
-
}
|
|
19
|
-
export declare function handleRuntimeGetDumpByUri(context: HandlerContext, args: RuntimeGetDumpByUriArgs): Promise<{
|
|
20
|
-
isError: boolean;
|
|
21
|
-
content: {
|
|
22
|
-
type: string;
|
|
23
|
-
text: any;
|
|
24
|
-
}[];
|
|
25
|
-
}>;
|
|
26
|
-
export {};
|
|
27
|
-
//# sourceMappingURL=handleRuntimeGetDumpByUri.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handleRuntimeGetDumpByUri.d.ts","sourceRoot":"","sources":["../../../../src/handlers/system/readonly/handleRuntimeGetDumpByUri.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAGvE,eAAO,MAAM,eAAe;;;;;;;;;;;;;CAclB,CAAC;AAEX,UAAU,uBAAuB;IAC/B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,uBAAuB;;;;;;GAgC9B"}
|