@mcp-abap-adt/core 2.1.0 → 2.1.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 +13 -0
- package/bin/README.md +7 -250
- package/bin/lock-object.js +9 -43
- package/dist/utils/lockStateManager.d.ts +12 -2
- package/dist/utils/lockStateManager.d.ts.map +1 -1
- package/dist/utils/lockStateManager.js +63 -4
- package/dist/utils/lockStateManager.js.map +1 -1
- package/package.json +3 -7
- package/bin/manage-locks.js +0 -331
- package/bin/manage-sessions.js +0 -235
- package/bin/unlock-object.js +0 -291
- package/bin/unlock-test-objects.js +0 -248
- package/dist/bin/help.d.ts +0 -6
- package/dist/bin/help.d.ts.map +0 -1
- package/dist/bin/help.js +0 -59
- package/dist/bin/mcp-abap-adt-v2.d.ts +0 -9
- package/dist/bin/mcp-abap-adt-v2.d.ts.map +0 -1
- package/dist/bin/mcp-abap-adt-v2.js +0 -247
- package/dist/handlers/behavior_definition/readonly/handleGetBdef.d.ts +0 -21
- package/dist/handlers/behavior_definition/readonly/handleGetBdef.d.ts.map +0 -1
- package/dist/handlers/behavior_definition/readonly/handleGetBdef.js +0 -24
- package/dist/handlers/behavior_definition/readonly/handleGetBdef.js.map +0 -1
- package/dist/handlers/class/high/handleGetUnitTest.d.ts +0 -38
- package/dist/handlers/class/high/handleGetUnitTest.d.ts.map +0 -1
- package/dist/handlers/class/high/handleGetUnitTest.js +0 -73
- package/dist/handlers/class/high/handleGetUnitTest.js.map +0 -1
- package/dist/handlers/class/high/handleRunUnitTest.d.ts +0 -122
- package/dist/handlers/class/high/handleRunUnitTest.d.ts.map +0 -1
- package/dist/handlers/class/high/handleRunUnitTest.js +0 -133
- package/dist/handlers/class/high/handleRunUnitTest.js.map +0 -1
- package/dist/handlers/class/readonly/handleGetClass.d.ts +0 -23
- package/dist/handlers/class/readonly/handleGetClass.d.ts.map +0 -1
- package/dist/handlers/class/readonly/handleGetClass.js +0 -77
- package/dist/handlers/class/readonly/handleGetClass.js.map +0 -1
- package/dist/handlers/data_element/readonly/handleGetDataElement.d.ts +0 -23
- package/dist/handlers/data_element/readonly/handleGetDataElement.d.ts.map +0 -1
- package/dist/handlers/data_element/readonly/handleGetDataElement.js +0 -79
- package/dist/handlers/data_element/readonly/handleGetDataElement.js.map +0 -1
- package/dist/handlers/domain/readonly/handleGetDomain.d.ts +0 -23
- package/dist/handlers/domain/readonly/handleGetDomain.d.ts.map +0 -1
- package/dist/handlers/domain/readonly/handleGetDomain.js +0 -79
- package/dist/handlers/domain/readonly/handleGetDomain.js.map +0 -1
- package/dist/handlers/function/readonly/handleGetFunctionGroup.d.ts +0 -23
- package/dist/handlers/function/readonly/handleGetFunctionGroup.d.ts.map +0 -1
- package/dist/handlers/function/readonly/handleGetFunctionGroup.js +0 -77
- package/dist/handlers/function/readonly/handleGetFunctionGroup.js.map +0 -1
- package/dist/handlers/interface/readonly/handleGetInterface.d.ts +0 -23
- package/dist/handlers/interface/readonly/handleGetInterface.d.ts.map +0 -1
- package/dist/handlers/interface/readonly/handleGetInterface.js +0 -77
- package/dist/handlers/interface/readonly/handleGetInterface.js.map +0 -1
- package/dist/handlers/package/readonly/handleGetPackage.d.ts +0 -22
- package/dist/handlers/package/readonly/handleGetPackage.d.ts.map +0 -1
- package/dist/handlers/package/readonly/handleGetPackage.js +0 -108
- package/dist/handlers/package/readonly/handleGetPackage.js.map +0 -1
- package/dist/handlers/program/readonly/handleGetProgram.d.ts +0 -23
- package/dist/handlers/program/readonly/handleGetProgram.d.ts.map +0 -1
- package/dist/handlers/program/readonly/handleGetProgram.js +0 -77
- package/dist/handlers/program/readonly/handleGetProgram.js.map +0 -1
- package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.d.ts +0 -18
- package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.d.ts.map +0 -1
- package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.js +0 -109
- package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.js.map +0 -1
- package/dist/handlers/structure/readonly/handleGetStructure.d.ts +0 -23
- package/dist/handlers/structure/readonly/handleGetStructure.d.ts.map +0 -1
- package/dist/handlers/structure/readonly/handleGetStructure.js +0 -77
- package/dist/handlers/structure/readonly/handleGetStructure.js.map +0 -1
- package/dist/handlers/table/readonly/handleGetTable.d.ts +0 -23
- package/dist/handlers/table/readonly/handleGetTable.d.ts.map +0 -1
- package/dist/handlers/table/readonly/handleGetTable.js +0 -77
- package/dist/handlers/table/readonly/handleGetTable.js.map +0 -1
- package/dist/handlers/view/readonly/handleGetView.d.ts +0 -33
- package/dist/handlers/view/readonly/handleGetView.d.ts.map +0 -1
- package/dist/handlers/view/readonly/handleGetView.js +0 -90
- package/dist/handlers/view/readonly/handleGetView.js.map +0 -1
- package/dist/index.d.ts +0 -126
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -2979
- package/dist/index.js.map +0 -1
- package/dist/lib/ServerConfigManager.d.ts +0 -90
- package/dist/lib/ServerConfigManager.d.ts.map +0 -1
- package/dist/lib/ServerConfigManager.js +0 -237
- package/dist/lib/ServerConfigManager.js.map +0 -1
- package/dist/lib/activationUtils.d.ts +0 -59
- package/dist/lib/activationUtils.d.ts.map +0 -1
- package/dist/lib/activationUtils.js +0 -168
- package/dist/lib/authBrokerFactory.d.ts +0 -96
- package/dist/lib/authBrokerFactory.d.ts.map +0 -1
- package/dist/lib/authBrokerFactory.js +0 -531
- package/dist/lib/authBrokerFactory.js.map +0 -1
- package/dist/lib/config/ServerConfig.d.ts +0 -17
- package/dist/lib/config/ServerConfig.d.ts.map +0 -1
- package/dist/lib/config/ServerConfig.js +0 -7
- package/dist/lib/config/ServerConfig.js.map +0 -1
- package/dist/lib/getFullCodeCache.d.ts +0 -3
- package/dist/lib/getFullCodeCache.d.ts.map +0 -1
- package/dist/lib/getFullCodeCache.js +0 -56
- package/dist/lib/handlers/handlers/base/BaseHandlerGroup.d.ts +0 -36
- package/dist/lib/handlers/handlers/base/BaseHandlerGroup.d.ts.map +0 -1
- package/dist/lib/handlers/handlers/base/BaseHandlerGroup.js +0 -268
- package/dist/lib/handlers/handlers/base/BaseHandlerGroup.js.map +0 -1
- package/dist/lib/handlers/handlers/examples/usage-example.d.ts +0 -29
- package/dist/lib/handlers/handlers/examples/usage-example.d.ts.map +0 -1
- package/dist/lib/handlers/handlers/examples/usage-example.js +0 -119
- package/dist/lib/handlers/handlers/examples/usage-example.js.map +0 -1
- package/dist/lib/handlers/handlers/groups/HighLevelHandlersGroup.d.ts +0 -14
- package/dist/lib/handlers/handlers/groups/HighLevelHandlersGroup.d.ts.map +0 -1
- package/dist/lib/handlers/handlers/groups/HighLevelHandlersGroup.js +0 -322
- package/dist/lib/handlers/handlers/groups/HighLevelHandlersGroup.js.map +0 -1
- package/dist/lib/handlers/handlers/groups/LowLevelHandlersGroup.d.ts +0 -14
- package/dist/lib/handlers/handlers/groups/LowLevelHandlersGroup.d.ts.map +0 -1
- package/dist/lib/handlers/handlers/groups/LowLevelHandlersGroup.js +0 -1214
- package/dist/lib/handlers/handlers/groups/LowLevelHandlersGroup.js.map +0 -1
- package/dist/lib/handlers/handlers/groups/ReadOnlyHandlersGroup.d.ts +0 -14
- package/dist/lib/handlers/handlers/groups/ReadOnlyHandlersGroup.d.ts.map +0 -1
- package/dist/lib/handlers/handlers/groups/ReadOnlyHandlersGroup.js +0 -232
- package/dist/lib/handlers/handlers/groups/ReadOnlyHandlersGroup.js.map +0 -1
- package/dist/lib/handlers/handlers/groups/SearchHandlersGroup.d.ts +0 -14
- package/dist/lib/handlers/handlers/groups/SearchHandlersGroup.d.ts.map +0 -1
- package/dist/lib/handlers/handlers/groups/SearchHandlersGroup.js +0 -57
- package/dist/lib/handlers/handlers/groups/SearchHandlersGroup.js.map +0 -1
- package/dist/lib/handlers/handlers/groups/SystemHandlersGroup.d.ts +0 -14
- package/dist/lib/handlers/handlers/groups/SystemHandlersGroup.d.ts.map +0 -1
- package/dist/lib/handlers/handlers/groups/SystemHandlersGroup.js +0 -176
- package/dist/lib/handlers/handlers/groups/SystemHandlersGroup.js.map +0 -1
- package/dist/lib/handlers/handlers/groups/index.d.ts +0 -13
- package/dist/lib/handlers/handlers/groups/index.d.ts.map +0 -1
- package/dist/lib/handlers/handlers/groups/index.js +0 -21
- package/dist/lib/handlers/handlers/groups/index.js.map +0 -1
- package/dist/lib/handlers/handlers/index.d.ts +0 -14
- package/dist/lib/handlers/handlers/index.d.ts.map +0 -1
- package/dist/lib/handlers/handlers/index.js +0 -37
- package/dist/lib/handlers/handlers/index.js.map +0 -1
- package/dist/lib/handlers/handlers/interfaces.d.ts +0 -67
- package/dist/lib/handlers/handlers/interfaces.d.ts.map +0 -1
- package/dist/lib/handlers/handlers/interfaces.js +0 -3
- package/dist/lib/handlers/handlers/interfaces.js.map +0 -1
- package/dist/lib/handlers/handlers/registry/CompositeHandlersRegistry.d.ts +0 -49
- package/dist/lib/handlers/handlers/registry/CompositeHandlersRegistry.d.ts.map +0 -1
- package/dist/lib/handlers/handlers/registry/CompositeHandlersRegistry.js +0 -88
- package/dist/lib/handlers/handlers/registry/CompositeHandlersRegistry.js.map +0 -1
- package/dist/lib/runtimeConfig.d.ts +0 -20
- package/dist/lib/runtimeConfig.d.ts.map +0 -1
- package/dist/lib/runtimeConfig.js +0 -130
- package/dist/lib/runtimeConfig.js.map +0 -1
- package/dist/lib/servers/BaseMcpServer.d.ts +0 -56
- package/dist/lib/servers/BaseMcpServer.d.ts.map +0 -1
- package/dist/lib/servers/BaseMcpServer.js +0 -198
- package/dist/lib/servers/BaseMcpServer.js.map +0 -1
- package/dist/lib/servers/ConnectionContext.d.ts +0 -20
- package/dist/lib/servers/ConnectionContext.d.ts.map +0 -1
- package/dist/lib/servers/ConnectionContext.js +0 -3
- package/dist/lib/servers/ConnectionContext.js.map +0 -1
- package/dist/lib/servers/SseServer.d.ts +0 -32
- package/dist/lib/servers/SseServer.d.ts.map +0 -1
- package/dist/lib/servers/SseServer.js +0 -139
- package/dist/lib/servers/SseServer.js.map +0 -1
- package/dist/lib/servers/StdioServer.d.ts +0 -20
- package/dist/lib/servers/StdioServer.d.ts.map +0 -1
- package/dist/lib/servers/StdioServer.js +0 -32
- package/dist/lib/servers/StdioServer.js.map +0 -1
- package/dist/lib/servers/StreamableHttpServer.d.ts +0 -30
- package/dist/lib/servers/StreamableHttpServer.d.ts.map +0 -1
- package/dist/lib/servers/StreamableHttpServer.js +0 -83
- package/dist/lib/servers/StreamableHttpServer.js.map +0 -1
- package/dist/lib/servers/handlers/base/BaseHandlerGroup.d.ts +0 -36
- package/dist/lib/servers/handlers/base/BaseHandlerGroup.d.ts.map +0 -1
- package/dist/lib/servers/handlers/base/BaseHandlerGroup.js +0 -268
- package/dist/lib/servers/handlers/base/BaseHandlerGroup.js.map +0 -1
- package/dist/lib/servers/handlers/examples/usage-example.d.ts +0 -29
- package/dist/lib/servers/handlers/examples/usage-example.d.ts.map +0 -1
- package/dist/lib/servers/handlers/examples/usage-example.js +0 -119
- package/dist/lib/servers/handlers/examples/usage-example.js.map +0 -1
- package/dist/lib/servers/handlers/groups/HighLevelHandlersGroup.d.ts +0 -14
- package/dist/lib/servers/handlers/groups/HighLevelHandlersGroup.d.ts.map +0 -1
- package/dist/lib/servers/handlers/groups/HighLevelHandlersGroup.js +0 -322
- package/dist/lib/servers/handlers/groups/HighLevelHandlersGroup.js.map +0 -1
- package/dist/lib/servers/handlers/groups/LowLevelHandlersGroup.d.ts +0 -14
- package/dist/lib/servers/handlers/groups/LowLevelHandlersGroup.d.ts.map +0 -1
- package/dist/lib/servers/handlers/groups/LowLevelHandlersGroup.js +0 -1214
- package/dist/lib/servers/handlers/groups/LowLevelHandlersGroup.js.map +0 -1
- package/dist/lib/servers/handlers/groups/ReadOnlyHandlersGroup.d.ts +0 -14
- package/dist/lib/servers/handlers/groups/ReadOnlyHandlersGroup.d.ts.map +0 -1
- package/dist/lib/servers/handlers/groups/ReadOnlyHandlersGroup.js +0 -232
- package/dist/lib/servers/handlers/groups/ReadOnlyHandlersGroup.js.map +0 -1
- package/dist/lib/servers/handlers/groups/SearchHandlersGroup.d.ts +0 -14
- package/dist/lib/servers/handlers/groups/SearchHandlersGroup.d.ts.map +0 -1
- package/dist/lib/servers/handlers/groups/SearchHandlersGroup.js +0 -57
- package/dist/lib/servers/handlers/groups/SearchHandlersGroup.js.map +0 -1
- package/dist/lib/servers/handlers/groups/SystemHandlersGroup.d.ts +0 -14
- package/dist/lib/servers/handlers/groups/SystemHandlersGroup.d.ts.map +0 -1
- package/dist/lib/servers/handlers/groups/SystemHandlersGroup.js +0 -176
- package/dist/lib/servers/handlers/groups/SystemHandlersGroup.js.map +0 -1
- package/dist/lib/servers/handlers/groups/index.d.ts +0 -13
- package/dist/lib/servers/handlers/groups/index.d.ts.map +0 -1
- package/dist/lib/servers/handlers/groups/index.js +0 -21
- package/dist/lib/servers/handlers/groups/index.js.map +0 -1
- package/dist/lib/servers/handlers/index.d.ts +0 -14
- package/dist/lib/servers/handlers/index.d.ts.map +0 -1
- package/dist/lib/servers/handlers/index.js +0 -37
- package/dist/lib/servers/handlers/index.js.map +0 -1
- package/dist/lib/servers/handlers/interfaces.d.ts +0 -67
- package/dist/lib/servers/handlers/interfaces.d.ts.map +0 -1
- package/dist/lib/servers/handlers/interfaces.js +0 -3
- package/dist/lib/servers/handlers/interfaces.js.map +0 -1
- package/dist/lib/servers/handlers/registry/CompositeHandlersRegistry.d.ts +0 -49
- package/dist/lib/servers/handlers/registry/CompositeHandlersRegistry.d.ts.map +0 -1
- package/dist/lib/servers/handlers/registry/CompositeHandlersRegistry.js +0 -88
- package/dist/lib/servers/handlers/registry/CompositeHandlersRegistry.js.map +0 -1
- package/dist/lib/servers/index.d.ts +0 -5
- package/dist/lib/servers/index.d.ts.map +0 -1
- package/dist/lib/servers/index.js +0 -21
- package/dist/lib/servers/index.js.map +0 -1
- package/dist/lib/servers/launcher.d.ts +0 -2
- package/dist/lib/servers/launcher.d.ts.map +0 -1
- package/dist/lib/servers/launcher.js +0 -123
- package/dist/lib/servers/launcher.js.map +0 -1
- package/dist/lib/servers/mcp_handlers.d.ts +0 -25
- package/dist/lib/servers/mcp_handlers.d.ts.map +0 -1
- package/dist/lib/servers/mcp_handlers.js +0 -822
- package/dist/lib/servers/mcp_handlers.js.map +0 -1
- package/dist/lib/servers/mcp_server.d.ts +0 -7
- package/dist/lib/servers/mcp_server.d.ts.map +0 -1
- package/dist/lib/servers/mcp_server.js +0 -12
- package/dist/lib/servers/utils.d.ts +0 -42
- package/dist/lib/servers/utils.d.ts.map +0 -1
- package/dist/lib/servers/utils.js +0 -620
- package/dist/lib/servers/utils.js.map +0 -1
- package/dist/lib/servers/v2/__tests__/unit/McpServer.test.d.ts +0 -7
- package/dist/lib/servers/v2/__tests__/unit/McpServer.test.d.ts.map +0 -1
- package/dist/lib/servers/v2/__tests__/unit/McpServer.test.js +0 -218
- package/dist/lib/servers/v2/connection/LocalConnectionProvider.d.ts +0 -20
- package/dist/lib/servers/v2/connection/LocalConnectionProvider.d.ts.map +0 -1
- package/dist/lib/servers/v2/connection/LocalConnectionProvider.js +0 -70
- package/dist/lib/servers/v2/connection/RemoteConnectionProvider.d.ts +0 -21
- package/dist/lib/servers/v2/connection/RemoteConnectionProvider.d.ts.map +0 -1
- package/dist/lib/servers/v2/connection/RemoteConnectionProvider.js +0 -36
- package/dist/lib/servers/v2/connection/index.d.ts +0 -6
- package/dist/lib/servers/v2/connection/index.d.ts.map +0 -1
- package/dist/lib/servers/v2/connection/index.js +0 -10
- package/dist/lib/servers/v2/factory/AuthBrokerFactory.d.ts +0 -29
- package/dist/lib/servers/v2/factory/AuthBrokerFactory.d.ts.map +0 -1
- package/dist/lib/servers/v2/factory/AuthBrokerFactory.js +0 -79
- package/dist/lib/servers/v2/factory/LocalModeFactory.d.ts +0 -38
- package/dist/lib/servers/v2/factory/LocalModeFactory.d.ts.map +0 -1
- package/dist/lib/servers/v2/factory/LocalModeFactory.js +0 -38
- package/dist/lib/servers/v2/factory/index.d.ts +0 -6
- package/dist/lib/servers/v2/factory/index.d.ts.map +0 -1
- package/dist/lib/servers/v2/factory/index.js +0 -10
- package/dist/lib/servers/v2/index.d.ts +0 -9
- package/dist/lib/servers/v2/index.d.ts.map +0 -1
- package/dist/lib/servers/v2/index.js +0 -27
- package/dist/lib/servers/v2/index.js.map +0 -1
- package/dist/lib/servers/v2/interfaces/connection.d.ts +0 -188
- package/dist/lib/servers/v2/interfaces/connection.d.ts.map +0 -1
- package/dist/lib/servers/v2/interfaces/connection.js +0 -7
- package/dist/lib/servers/v2/interfaces/index.d.ts +0 -10
- package/dist/lib/servers/v2/interfaces/index.d.ts.map +0 -1
- package/dist/lib/servers/v2/interfaces/index.js +0 -25
- package/dist/lib/servers/v2/interfaces/protocol.d.ts +0 -30
- package/dist/lib/servers/v2/interfaces/protocol.d.ts.map +0 -1
- package/dist/lib/servers/v2/interfaces/protocol.js +0 -7
- package/dist/lib/servers/v2/interfaces/session.d.ts +0 -98
- package/dist/lib/servers/v2/interfaces/session.d.ts.map +0 -1
- package/dist/lib/servers/v2/interfaces/session.js +0 -7
- package/dist/lib/servers/v2/interfaces/transport.d.ts +0 -88
- package/dist/lib/servers/v2/interfaces/transport.d.ts.map +0 -1
- package/dist/lib/servers/v2/interfaces/transport.js +0 -7
- package/dist/lib/servers/v2/protocol/ProtocolHandler.d.ts +0 -21
- package/dist/lib/servers/v2/protocol/ProtocolHandler.d.ts.map +0 -1
- package/dist/lib/servers/v2/protocol/ProtocolHandler.js +0 -77
- package/dist/lib/servers/v2/protocol/index.d.ts +0 -5
- package/dist/lib/servers/v2/protocol/index.d.ts.map +0 -1
- package/dist/lib/servers/v2/protocol/index.js +0 -8
- package/dist/lib/servers/v2/server/McpServer.d.ts +0 -76
- package/dist/lib/servers/v2/server/McpServer.d.ts.map +0 -1
- package/dist/lib/servers/v2/server/McpServer.js +0 -243
- package/dist/lib/servers/v2/server/index.d.ts +0 -5
- package/dist/lib/servers/v2/server/index.d.ts.map +0 -1
- package/dist/lib/servers/v2/server/index.js +0 -8
- package/dist/lib/servers/v2/session/SessionManager.d.ts +0 -40
- package/dist/lib/servers/v2/session/SessionManager.d.ts.map +0 -1
- package/dist/lib/servers/v2/session/SessionManager.js +0 -136
- package/dist/lib/servers/v2/session/index.d.ts +0 -5
- package/dist/lib/servers/v2/session/index.d.ts.map +0 -1
- package/dist/lib/servers/v2/session/index.js +0 -8
- package/dist/lib/servers/v2/transports/SseTransport.d.ts +0 -49
- package/dist/lib/servers/v2/transports/SseTransport.d.ts.map +0 -1
- package/dist/lib/servers/v2/transports/SseTransport.js +0 -89
- package/dist/lib/servers/v2/transports/StdioTransport.d.ts +0 -31
- package/dist/lib/servers/v2/transports/StdioTransport.d.ts.map +0 -1
- package/dist/lib/servers/v2/transports/StdioTransport.js +0 -91
- package/dist/lib/servers/v2/transports/StreamableHttpTransport.d.ts +0 -51
- package/dist/lib/servers/v2/transports/StreamableHttpTransport.d.ts.map +0 -1
- package/dist/lib/servers/v2/transports/StreamableHttpTransport.js +0 -147
- package/dist/lib/servers/v2/transports/index.d.ts +0 -7
- package/dist/lib/servers/v2/transports/index.d.ts.map +0 -1
- package/dist/lib/servers/v2/transports/index.js +0 -12
- package/dist/lib/servers/v2/types/common.d.ts +0 -17
- package/dist/lib/servers/v2/types/common.d.ts.map +0 -1
- package/dist/lib/servers/v2/types/common.js +0 -6
- package/dist/lib/servers/v2/types/common.js.map +0 -1
- package/dist/lib/servers/v2/types/index.d.ts +0 -8
- package/dist/lib/servers/v2/types/index.d.ts.map +0 -1
- package/dist/lib/servers/v2/types/index.js +0 -24
- package/dist/lib/servers/v2/types/index.js.map +0 -1
- package/dist/lib/servers/v2/types/transport.d.ts +0 -28
- package/dist/lib/servers/v2/types/transport.d.ts.map +0 -1
- package/dist/lib/servers/v2/types/transport.js +0 -8
- package/dist/lib/servers/v2/types/transport.js.map +0 -1
- package/dist/lib/servers/v2/utils/StdioLogger.d.ts +0 -17
- package/dist/lib/servers/v2/utils/StdioLogger.d.ts.map +0 -1
- package/dist/lib/servers/v2/utils/StdioLogger.js +0 -33
- package/dist/lib/servers/v2/utils/StdioLogger.js.map +0 -1
- package/dist/lib/stores/UnixFileServiceKeyStore.d.ts +0 -42
- package/dist/lib/stores/UnixFileServiceKeyStore.d.ts.map +0 -1
- package/dist/lib/stores/UnixFileServiceKeyStore.js +0 -53
- package/dist/lib/stores/UnixFileSessionStore.d.ts +0 -54
- package/dist/lib/stores/UnixFileSessionStore.d.ts.map +0 -1
- package/dist/lib/stores/UnixFileSessionStore.js +0 -70
- package/dist/lib/stores/WindowsFileServiceKeyStore.d.ts +0 -42
- package/dist/lib/stores/WindowsFileServiceKeyStore.d.ts.map +0 -1
- package/dist/lib/stores/WindowsFileServiceKeyStore.js +0 -53
- package/dist/lib/stores/WindowsFileSessionStore.d.ts +0 -54
- package/dist/lib/stores/WindowsFileSessionStore.d.ts.map +0 -1
- package/dist/lib/stores/WindowsFileSessionStore.js +0 -70
- package/dist/lib/toolsRegistry.d.ts +0 -13
- package/dist/lib/toolsRegistry.d.ts.map +0 -1
- package/dist/lib/toolsRegistry.js +0 -410
- package/dist/lib/transportConfig.d.ts +0 -27
- package/dist/lib/transportConfig.d.ts.map +0 -1
- package/dist/lib/transportConfig.js +0 -124
- package/dist/lib/transports/stdio.d.ts +0 -10
- package/dist/lib/transports/stdio.d.ts.map +0 -1
- package/dist/lib/transports/stdio.js +0 -73
- package/dist/lib/yamlConfig.d.ts +0 -59
- package/dist/lib/yamlConfig.d.ts.map +0 -1
- package/dist/lib/yamlConfig.js +0 -349
- package/dist/lib/yamlConfig.js.map +0 -1
- package/dist/server/v1/AuthBrokerConfig.d.ts +0 -19
- package/dist/server/v1/AuthBrokerConfig.d.ts.map +0 -1
- package/dist/server/v1/AuthBrokerConfig.js +0 -44
- package/dist/server/v1/AuthBrokerConfig.js.map +0 -1
- package/dist/server/v1/IServerConfig.d.ts +0 -17
- package/dist/server/v1/IServerConfig.d.ts.map +0 -1
- package/dist/server/v1/IServerConfig.js +0 -7
- package/dist/server/v1/IServerConfig.js.map +0 -1
- package/dist/server/v1/ServerConfig.d.ts +0 -16
- package/dist/server/v1/ServerConfig.d.ts.map +0 -1
- package/dist/server/v1/ServerConfig.js +0 -6
- package/dist/server/v1/ServerConfig.js.map +0 -1
- package/dist/server/v1/embeddable-server.d.ts +0 -89
- package/dist/server/v1/embeddable-server.d.ts.map +0 -1
- package/dist/server/v1/embeddable-server.js +0 -83
- package/dist/server/v1/embeddable-server.js.map +0 -1
- package/dist/server/v1/index.d.ts +0 -30
- package/dist/server/v1/index.d.ts.map +0 -1
- package/dist/server/v1/index.js +0 -65
- package/dist/server/v1/index.js.map +0 -1
- package/dist/server/v1/legacy-server.d.ts +0 -141
- package/dist/server/v1/legacy-server.d.ts.map +0 -1
- package/dist/server/v1/legacy-server.js +0 -2099
- package/dist/server/v1/legacy-server.js.map +0 -1
- package/dist/server/v1/mcp_handlers.d.ts +0 -19
- package/dist/server/v1/mcp_handlers.d.ts.map +0 -1
- package/dist/server/v1/mcp_handlers.js +0 -85
- package/dist/server/v1/mcp_handlers.js.map +0 -1
- package/dist/server/v2/AuthBrokerConfig.d.ts +0 -22
- package/dist/server/v2/AuthBrokerConfig.d.ts.map +0 -1
- package/dist/server/v2/AuthBrokerConfig.js +0 -46
- package/dist/server/v2/AuthBrokerConfig.js.map +0 -1
- package/dist/server/v2/BaseMcpServer.d.ts +0 -67
- package/dist/server/v2/BaseMcpServer.d.ts.map +0 -1
- package/dist/server/v2/BaseMcpServer.js +0 -273
- package/dist/server/v2/BaseMcpServer.js.map +0 -1
- package/dist/server/v2/ConnectionContext.d.ts +0 -20
- package/dist/server/v2/ConnectionContext.d.ts.map +0 -1
- package/dist/server/v2/ConnectionContext.js +0 -3
- package/dist/server/v2/ConnectionContext.js.map +0 -1
- package/dist/server/v2/IHttpApplication.d.ts +0 -42
- package/dist/server/v2/IHttpApplication.d.ts.map +0 -1
- package/dist/server/v2/IHttpApplication.js +0 -3
- package/dist/server/v2/IHttpApplication.js.map +0 -1
- package/dist/server/v2/IServerConfig.d.ts +0 -15
- package/dist/server/v2/IServerConfig.d.ts.map +0 -1
- package/dist/server/v2/IServerConfig.js +0 -7
- package/dist/server/v2/IServerConfig.js.map +0 -1
- package/dist/server/v2/ServerConfig.d.ts +0 -16
- package/dist/server/v2/ServerConfig.d.ts.map +0 -1
- package/dist/server/v2/ServerConfig.js +0 -6
- package/dist/server/v2/ServerConfig.js.map +0 -1
- package/dist/server/v2/SseServer.d.ts +0 -95
- package/dist/server/v2/SseServer.d.ts.map +0 -1
- package/dist/server/v2/SseServer.js +0 -217
- package/dist/server/v2/SseServer.js.map +0 -1
- package/dist/server/v2/StdioServer.d.ts +0 -20
- package/dist/server/v2/StdioServer.d.ts.map +0 -1
- package/dist/server/v2/StdioServer.js +0 -32
- package/dist/server/v2/StdioServer.js.map +0 -1
- package/dist/server/v2/StreamableHttpServer.d.ts +0 -94
- package/dist/server/v2/StreamableHttpServer.d.ts.map +0 -1
- package/dist/server/v2/StreamableHttpServer.js +0 -170
- package/dist/server/v2/StreamableHttpServer.js.map +0 -1
- package/dist/server/v2/index.d.ts +0 -6
- package/dist/server/v2/index.d.ts.map +0 -1
- package/dist/server/v2/index.js +0 -22
- package/dist/server/v2/index.js.map +0 -1
- package/dist/server/v2/launcher.d.ts +0 -2
- package/dist/server/v2/launcher.d.ts.map +0 -1
- package/dist/server/v2/launcher.js +0 -181
- package/dist/server/v2/launcher.js.map +0 -1
- package/dist/server/v2/mcp_handlers.d.ts +0 -25
- package/dist/server/v2/mcp_handlers.d.ts.map +0 -1
- package/dist/server/v2/mcp_handlers.js +0 -828
- package/dist/server/v2/mcp_handlers.js.map +0 -1
- package/dist/server/v2/utils.d.ts +0 -42
- package/dist/server/v2/utils.d.ts.map +0 -1
- package/dist/server/v2/utils.js +0 -620
- package/dist/server/v2/utils.js.map +0 -1
- package/dist/tools/test-v2-server-stdio-compiled.js +0 -132
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [2.1.2] - 2026-01-02
|
|
6
|
+
### Changed
|
|
7
|
+
- **Lock registry types**: `LockState.objectType` now uses `AdtObjectType` with normalization for legacy entries.
|
|
8
|
+
- **adt-lock-object**: No longer registers lock handles in `.locks/active-locks.json`; session save only.
|
|
9
|
+
|
|
10
|
+
### Removed
|
|
11
|
+
- **CLI commands**: `adt-unlock-object`, `adt-manage-locks`, `adt-manage-sessions`, and `adt-unlock-objects` removed from package bins.
|
|
12
|
+
|
|
13
|
+
## [2.1.1] - 2025-12-31
|
|
14
|
+
### Changed
|
|
15
|
+
- **@mcp-abap-adt/auth-broker**: bumped to `^0.3.0` - auto-detect service key format, credentials wrapper support, debug logging
|
|
16
|
+
- **@mcp-abap-adt/auth-stores**: bumped to `^0.3.0`
|
|
17
|
+
|
|
5
18
|
## [2.1.0] - 2025-12-31
|
|
6
19
|
### Fixed
|
|
7
20
|
- Updated `@mcp-abap-adt/auth-broker` so installs now pull `0.2.17` instead of the stale `0.2.14` release that was hiding upstream fixes.
|
package/bin/README.md
CHANGED
|
@@ -1,32 +1,17 @@
|
|
|
1
1
|
# CLI Utilities
|
|
2
2
|
|
|
3
|
-
This directory contains command-line utilities for managing ADT client sessions
|
|
3
|
+
This directory contains command-line utilities for managing ADT client sessions.
|
|
4
4
|
|
|
5
5
|
## Overview of All Scripts
|
|
6
6
|
|
|
7
7
|
| Command | Purpose | Use Case |
|
|
8
8
|
|---------|---------|----------|
|
|
9
9
|
| `adt-lock-object` | Lock an object and save session | Start work on object, persist session for later |
|
|
10
|
-
| `adt-unlock-object` | Unlock object using saved session | Resume work and unlock after crash/restart |
|
|
11
|
-
| `adt-manage-locks` | View/clean lock registry | Debug locks, cleanup stale locks |
|
|
12
|
-
| `adt-manage-sessions` | View/clean session files | Debug sessions, cleanup old sessions |
|
|
13
|
-
| `adt-unlock-objects` | Unlock predefined test objects | Cleanup after failed integration tests |
|
|
14
10
|
|
|
15
11
|
### Key Differences
|
|
16
12
|
|
|
17
|
-
**
|
|
18
|
-
- `adt-lock-object`
|
|
19
|
-
- Works with ANY object specified via CLI args
|
|
20
|
-
- Designed for manual/scripted workflows
|
|
21
|
-
|
|
22
|
-
**Management Tools (for debugging/maintenance):**
|
|
23
|
-
- `adt-manage-locks` - View and manage lock registry only
|
|
24
|
-
- `adt-manage-sessions` - View and manage session files only
|
|
25
|
-
- Read-only inspection + cleanup operations
|
|
26
|
-
|
|
27
|
-
**Test Cleanup (for testing):**
|
|
28
|
-
- `adt-unlock-objects` - Hardcoded list of test objects from test-config.yaml
|
|
29
|
-
- Used specifically for cleanup after integration test failures
|
|
13
|
+
**Locking (for production use):**
|
|
14
|
+
- `adt-lock-object` - Lock object and persist session; designed for manual/scripted workflows
|
|
30
15
|
|
|
31
16
|
## Installation
|
|
32
17
|
|
|
@@ -42,9 +27,6 @@ After global installation, all commands are available in your PATH:
|
|
|
42
27
|
|
|
43
28
|
```bash
|
|
44
29
|
adt-lock-object --help
|
|
45
|
-
adt-unlock-object --help
|
|
46
|
-
adt-manage-locks --help
|
|
47
|
-
adt-manage-sessions --help
|
|
48
30
|
```
|
|
49
31
|
|
|
50
32
|
### Local Installation
|
|
@@ -59,7 +41,6 @@ Run commands using npx:
|
|
|
59
41
|
|
|
60
42
|
```bash
|
|
61
43
|
npx adt-lock-object class ZCL_MY_CLASS
|
|
62
|
-
npx adt-manage-locks list
|
|
63
44
|
```
|
|
64
45
|
|
|
65
46
|
### Development Installation
|
|
@@ -97,178 +78,25 @@ adt-lock-object program Z_MY_PROGRAM
|
|
|
97
78
|
|
|
98
79
|
**What it does:**
|
|
99
80
|
1. Connects to SAP and locks the object
|
|
100
|
-
2. Saves session (cookies, CSRF token) to `.sessions/<session-id>.
|
|
101
|
-
3.
|
|
102
|
-
4. Prints unlock command for later use
|
|
81
|
+
2. Saves session (cookies, CSRF token) to `.sessions/<session-id>.env`
|
|
82
|
+
3. Prints the lock handle for later use
|
|
103
83
|
|
|
104
84
|
**Supported types:** class, program, interface, fm, domain, dataelement
|
|
105
85
|
|
|
106
|
-
### adt-unlock-object
|
|
107
|
-
|
|
108
|
-
Unlock an SAP object using previously saved session state.
|
|
109
|
-
|
|
110
|
-
```bash
|
|
111
|
-
# Unlock using saved session
|
|
112
|
-
adt-unlock-object class ZCL_MY_CLASS --session-id my_work
|
|
113
|
-
|
|
114
|
-
# Unlock function module
|
|
115
|
-
adt-unlock-object fm MY_FUNCTION --function-group Z_MY_FUGR --session-id my_work
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
**What it does:**
|
|
119
|
-
1. Loads session from `.sessions/<session-id>.json`
|
|
120
|
-
2. Restores session state to new connection
|
|
121
|
-
3. Retrieves lock handle from `.locks/active-locks.json`
|
|
122
|
-
4. Unlocks the object on SAP server
|
|
123
|
-
5. Removes lock from registry
|
|
124
|
-
|
|
125
|
-
**Note:** Requires `--session-id` used with `adt-lock-object`
|
|
126
|
-
|
|
127
|
-
### adt-manage-locks
|
|
128
|
-
|
|
129
|
-
Manage persistent lock registry - view, cleanup, and force unlock.
|
|
130
|
-
|
|
131
|
-
```bash
|
|
132
|
-
# List all active locks
|
|
133
|
-
adt-manage-locks list
|
|
134
|
-
|
|
135
|
-
# Clean up stale locks (>30 min or dead processes)
|
|
136
|
-
adt-manage-locks cleanup
|
|
137
|
-
|
|
138
|
-
# Force unlock specific object on SAP server
|
|
139
|
-
adt-manage-locks unlock class ZCL_TEST
|
|
140
|
-
adt-manage-locks unlock fm MY_FUNCTION Z_MY_FUGR
|
|
141
|
-
|
|
142
|
-
# Clear all locks from registry
|
|
143
|
-
adt-manage-locks clear
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
**What it does:**
|
|
147
|
-
- `list` - Shows all locks with session ID, handle, object, timestamp, PID
|
|
148
|
-
- `cleanup` - Removes stale locks (>30min old or dead processes)
|
|
149
|
-
- `unlock` - Connects to SAP and force unlocks object, removes from registry
|
|
150
|
-
- `clear` - Removes ALL locks from registry (doesn't unlock on SAP!)
|
|
151
|
-
|
|
152
|
-
**Use case:** Debugging lock issues, cleanup after crashes
|
|
153
|
-
|
|
154
|
-
### adt-manage-sessions
|
|
155
|
-
|
|
156
|
-
Manage saved session files - view, inspect, and cleanup.
|
|
157
|
-
|
|
158
|
-
```bash
|
|
159
|
-
# List all sessions
|
|
160
|
-
adt-manage-sessions list
|
|
161
|
-
|
|
162
|
-
# View session details
|
|
163
|
-
adt-manage-sessions info my_session_id
|
|
164
|
-
|
|
165
|
-
# Clean up old sessions (>24 hours)
|
|
166
|
-
adt-manage-sessions cleanup
|
|
167
|
-
|
|
168
|
-
# Clear all sessions
|
|
169
|
-
adt-manage-sessions clear
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
**What it does:**
|
|
173
|
-
- `list` - Shows all session files with ID, timestamp, age, PID
|
|
174
|
-
- `info` - Displays session details (cookies, CSRF token, metadata)
|
|
175
|
-
- `cleanup` - Removes stale sessions (>24h old or dead processes)
|
|
176
|
-
- `clear` - Deletes ALL session files
|
|
177
|
-
|
|
178
|
-
**Use case:** Debugging session issues, inspect saved state, cleanup old files
|
|
179
|
-
|
|
180
|
-
### adt-unlock-objects
|
|
181
|
-
|
|
182
|
-
Unlock predefined test objects from test-config.yaml.
|
|
183
|
-
|
|
184
|
-
```bash
|
|
185
|
-
# Unlock all test objects defined in test-config.yaml
|
|
186
|
-
adt-unlock-objects
|
|
187
|
-
|
|
188
|
-
# Use custom config file
|
|
189
|
-
adt-unlock-objects --config custom-test-config.yaml
|
|
190
|
-
|
|
191
|
-
# Use custom locks directory
|
|
192
|
-
adt-unlock-objects --locks-dir /custom/path/.locks
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
**What it does:**
|
|
196
|
-
1. Reads test object list from `test-config.yaml`
|
|
197
|
-
2. For each object: retrieves lock handle from registry
|
|
198
|
-
3. Connects to SAP and unlocks object
|
|
199
|
-
4. Removes lock from registry
|
|
200
|
-
|
|
201
|
-
**Use case:** Cleanup after integration test failures when objects remain locked
|
|
202
|
-
|
|
203
|
-
**Note:** Hardcoded to work with test objects only, not for general use
|
|
204
|
-
|
|
205
86
|
## Common Options
|
|
206
87
|
|
|
207
|
-
Most commands support:
|
|
208
|
-
|
|
209
88
|
| Option | Description | Default |
|
|
210
89
|
|--------|-------------|---------|
|
|
211
|
-
| `--locks-dir <path>` | Lock registry directory | `.locks` |
|
|
212
90
|
| `--sessions-dir <path>` | Sessions directory | `.sessions` |
|
|
213
91
|
| `--env <path>` | Path to .env file | `.env` |
|
|
214
92
|
| `--help, -h` | Show help message | - |
|
|
215
93
|
|
|
216
|
-
## Workflow Examples
|
|
217
|
-
|
|
218
|
-
### Daily Work on a Class
|
|
219
|
-
|
|
220
|
-
```bash
|
|
221
|
-
# Morning - lock class and start work
|
|
222
|
-
adt-lock-object class ZCL_MY_WORK --session-id daily_work
|
|
223
|
-
# Session ID: daily_work
|
|
224
|
-
|
|
225
|
-
# ... work all day, make changes via other tools ...
|
|
226
|
-
|
|
227
|
-
# Evening - unlock when done
|
|
228
|
-
adt-unlock-object class ZCL_MY_WORK --session-id daily_work
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
### Recovery After Crash
|
|
232
|
-
|
|
233
|
-
```bash
|
|
234
|
-
# Process crashed while object was locked
|
|
235
|
-
# Check what was locked
|
|
236
|
-
adt-manage-locks list
|
|
237
|
-
|
|
238
|
-
# Resume and unlock using saved session
|
|
239
|
-
adt-unlock-object class ZCL_MY_CLASS --session-id <session-from-list>
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
### Integration Test Cleanup
|
|
243
|
-
|
|
244
|
-
```bash
|
|
245
|
-
# Tests failed and left objects locked
|
|
246
|
-
# Quick cleanup of all test objects
|
|
247
|
-
adt-unlock-objects
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
### Debug Session Issues
|
|
251
|
-
|
|
252
|
-
```bash
|
|
253
|
-
# See what sessions are saved
|
|
254
|
-
adt-manage-sessions list
|
|
255
|
-
|
|
256
|
-
# Inspect specific session
|
|
257
|
-
adt-manage-sessions info my_session_id
|
|
258
|
-
|
|
259
|
-
# Clean up old sessions
|
|
260
|
-
adt-manage-sessions cleanup
|
|
261
|
-
```
|
|
262
|
-
|
|
263
94
|
## File Structure
|
|
264
95
|
|
|
265
96
|
```
|
|
266
97
|
.sessions/
|
|
267
|
-
├── my_work_session.
|
|
268
|
-
└── lock_class_ZCL_TEST_*.
|
|
269
|
-
|
|
270
|
-
.locks/
|
|
271
|
-
└── active-locks.json # Lock registry
|
|
98
|
+
├── my_work_session.env # Session state (cookies, CSRF)
|
|
99
|
+
└── lock_class_ZCL_TEST_*.env # Auto-generated session
|
|
272
100
|
```
|
|
273
101
|
|
|
274
102
|
## Environment Setup
|
|
@@ -295,74 +123,3 @@ Ensure these directories are in `.gitignore`:
|
|
|
295
123
|
- [Stateful Session Guide](../docs/architecture/STATEFUL_SESSION_GUIDE.md)
|
|
296
124
|
- [Tools Architecture](../docs/architecture/TOOLS_ARCHITECTURE.md)
|
|
297
125
|
- [Integration Tests Overview](../src/__tests__/integration/README.md)
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
# Clear all locks from registry
|
|
301
|
-
adt-manage-locks clear
|
|
302
|
-
```
|
|
303
|
-
|
|
304
|
-
### adt-manage-sessions
|
|
305
|
-
|
|
306
|
-
Manage HTTP session state (cookies, CSRF tokens).
|
|
307
|
-
|
|
308
|
-
```bash
|
|
309
|
-
# List all active sessions
|
|
310
|
-
adt-manage-sessions list
|
|
311
|
-
|
|
312
|
-
# Show session details
|
|
313
|
-
adt-manage-sessions info <sessionId>
|
|
314
|
-
|
|
315
|
-
# Clean up stale sessions (>30 min or dead processes)
|
|
316
|
-
adt-manage-sessions cleanup
|
|
317
|
-
|
|
318
|
-
# Clear all sessions
|
|
319
|
-
adt-manage-sessions clear
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
### adt-unlock-objects
|
|
323
|
-
|
|
324
|
-
Unlock predefined test objects (used after failed tests).
|
|
325
|
-
|
|
326
|
-
```bash
|
|
327
|
-
adt-unlock-objects
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
## With npx
|
|
331
|
-
|
|
332
|
-
You can also run these commands without installing:
|
|
333
|
-
|
|
334
|
-
```bash
|
|
335
|
-
npx @mcp-abap-adt/adt-clients adt-manage-locks list
|
|
336
|
-
npx @mcp-abap-adt/adt-clients adt-manage-sessions list
|
|
337
|
-
```
|
|
338
|
-
|
|
339
|
-
## Configuration
|
|
340
|
-
|
|
341
|
-
Commands require `.env` file in the project root with SAP connection details:
|
|
342
|
-
|
|
343
|
-
```env
|
|
344
|
-
SAP_URL=https://your-sap-system.com:443
|
|
345
|
-
SAP_CLIENT=100
|
|
346
|
-
SAP_USERNAME=your-username
|
|
347
|
-
SAP_PASSWORD=your-password
|
|
348
|
-
SAP_AUTH_TYPE=basic
|
|
349
|
-
```
|
|
350
|
-
|
|
351
|
-
For JWT authentication:
|
|
352
|
-
```env
|
|
353
|
-
SAP_AUTH_TYPE=jwt
|
|
354
|
-
SAP_JWT_TOKEN=your-jwt-token
|
|
355
|
-
```
|
|
356
|
-
|
|
357
|
-
## Data Storage
|
|
358
|
-
|
|
359
|
-
- **Locks**: `.locks/active-locks.json`
|
|
360
|
-
- **Sessions**: `.sessions/<sessionId>.json`
|
|
361
|
-
|
|
362
|
-
Both directories are in `.gitignore` and should not be committed.
|
|
363
|
-
|
|
364
|
-
## Documentation
|
|
365
|
-
|
|
366
|
-
For detailed information, see:
|
|
367
|
-
- [Stateful Session Guide](../docs/architecture/STATEFUL_SESSION_GUIDE.md#lock-mechanism)
|
|
368
|
-
- [Tools Architecture](../docs/architecture/TOOLS_ARCHITECTURE.md)
|
package/bin/lock-object.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* Lock Object CLI - Lock an SAP object and save session
|
|
3
|
+
* Lock Object CLI - Lock an SAP object and save session state
|
|
4
4
|
*
|
|
5
5
|
* Usage:
|
|
6
6
|
* adt-lock-object <type> <name> [options]
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
const path = require('path');
|
|
16
|
-
const fs = require('fs');
|
|
17
16
|
|
|
18
17
|
// Color codes for terminal output
|
|
19
18
|
const colors = {
|
|
@@ -28,7 +27,7 @@ const colors = {
|
|
|
28
27
|
|
|
29
28
|
function showHelp() {
|
|
30
29
|
console.log(`
|
|
31
|
-
${colors.bright}Lock Object CLI${colors.reset} - Lock an SAP object and save session
|
|
30
|
+
${colors.bright}Lock Object CLI${colors.reset} - Lock an SAP object and save session state
|
|
32
31
|
|
|
33
32
|
${colors.bright}USAGE:${colors.reset}
|
|
34
33
|
adt-lock-object <type> <name> [options]
|
|
@@ -41,7 +40,6 @@ ${colors.bright}OPTIONS:${colors.reset}
|
|
|
41
40
|
--function-group <name> Function group name (required for fm type)
|
|
42
41
|
--session-id <id> Custom session ID (default: auto-generated)
|
|
43
42
|
--sessions-dir <path> Sessions directory (default: .sessions)
|
|
44
|
-
--locks-dir <path> Locks directory (default: .locks)
|
|
45
43
|
--env <path> Path to .env file (default: .env)
|
|
46
44
|
--help, -h Show this help message
|
|
47
45
|
|
|
@@ -55,13 +53,11 @@ ${colors.bright}EXAMPLES:${colors.reset}
|
|
|
55
53
|
# Lock a function module
|
|
56
54
|
adt-lock-object fm MY_FUNCTION_MODULE --function-group Z_MY_FUGR
|
|
57
55
|
|
|
58
|
-
# Lock with custom
|
|
59
|
-
adt-lock-object class ZCL_TEST --sessions-dir /tmp/sessions
|
|
56
|
+
# Lock with custom session directory
|
|
57
|
+
adt-lock-object class ZCL_TEST --sessions-dir /tmp/sessions
|
|
60
58
|
|
|
61
59
|
${colors.bright}NOTES:${colors.reset}
|
|
62
60
|
- Session state (cookies, CSRF token) saved to <sessions-dir>/<session-id>.json
|
|
63
|
-
- Lock handle saved to <locks-dir>/active-locks.json
|
|
64
|
-
- Use 'adt-unlock-object' with same session-id to unlock later
|
|
65
61
|
- Requires SAP_URL, SAP_USERNAME, SAP_PASSWORD in .env file
|
|
66
62
|
`);
|
|
67
63
|
}
|
|
@@ -89,7 +85,6 @@ async function main() {
|
|
|
89
85
|
let functionGroup;
|
|
90
86
|
let sessionId;
|
|
91
87
|
let sessionsDir = '.sessions';
|
|
92
|
-
let locksDir = '.locks';
|
|
93
88
|
let envPath = '.env';
|
|
94
89
|
|
|
95
90
|
for (let i = 2; i < args.length; i++) {
|
|
@@ -99,15 +94,13 @@ async function main() {
|
|
|
99
94
|
sessionId = args[++i];
|
|
100
95
|
} else if (args[i] === '--sessions-dir' && args[i + 1]) {
|
|
101
96
|
sessionsDir = args[++i];
|
|
102
|
-
} else if (args[i] === '--locks-dir' && args[i + 1]) {
|
|
103
|
-
locksDir = args[++i];
|
|
104
97
|
} else if (args[i] === '--env' && args[i + 1]) {
|
|
105
98
|
envPath = args[++i];
|
|
106
99
|
}
|
|
107
100
|
}
|
|
108
101
|
|
|
109
102
|
// Validate function group for FM
|
|
110
|
-
if (
|
|
103
|
+
if (['fm', 'functionmodule'].includes(objectType.toLowerCase()) && !functionGroup) {
|
|
111
104
|
console.error(`${colors.red}Error: --function-group is required for function modules${colors.reset}`);
|
|
112
105
|
process.exit(1);
|
|
113
106
|
}
|
|
@@ -143,41 +136,33 @@ async function main() {
|
|
|
143
136
|
|
|
144
137
|
try {
|
|
145
138
|
// Dynamic imports
|
|
146
|
-
const { createAbapConnection
|
|
147
|
-
const {
|
|
139
|
+
const { createAbapConnection } = require('@mcp-abap-adt/connection');
|
|
140
|
+
const { AbapSessionStore } = require('@mcp-abap-adt/auth-stores');
|
|
148
141
|
|
|
149
142
|
// Map object type to lock function
|
|
150
143
|
let lockFunction;
|
|
151
|
-
let adtObjectType;
|
|
152
144
|
|
|
153
145
|
switch (objectType.toLowerCase()) {
|
|
154
146
|
case 'class':
|
|
155
147
|
lockFunction = require('@mcp-abap-adt/adt-clients/core/class/lock.js').lockClass;
|
|
156
|
-
adtObjectType = 'class';
|
|
157
148
|
break;
|
|
158
149
|
case 'program':
|
|
159
150
|
lockFunction = require('@mcp-abap-adt/adt-clients/core/program/lock.js').lockProgram;
|
|
160
|
-
adtObjectType = 'program';
|
|
161
151
|
break;
|
|
162
152
|
case 'interface':
|
|
163
153
|
lockFunction = require('@mcp-abap-adt/adt-clients/core/interface/lock.js').lockInterface;
|
|
164
|
-
adtObjectType = 'interface';
|
|
165
154
|
break;
|
|
166
155
|
case 'fugr':
|
|
167
156
|
lockFunction = require('@mcp-abap-adt/adt-clients/core/functionGroup/lock.js').lockFunctionGroup;
|
|
168
|
-
adtObjectType = 'fugr';
|
|
169
157
|
break;
|
|
170
158
|
case 'fm':
|
|
171
159
|
lockFunction = require('@mcp-abap-adt/adt-clients/core/functionModule/lock.js').lockFunctionModule;
|
|
172
|
-
adtObjectType = 'fm';
|
|
173
160
|
break;
|
|
174
161
|
case 'domain':
|
|
175
162
|
lockFunction = require('@mcp-abap-adt/adt-clients/core/domain/lock.js').lockDomain;
|
|
176
|
-
adtObjectType = 'domain';
|
|
177
163
|
break;
|
|
178
164
|
case 'dataelement':
|
|
179
165
|
lockFunction = require('@mcp-abap-adt/adt-clients/core/dataElement/lock.js').lockDataElement;
|
|
180
|
-
adtObjectType = 'dataElement';
|
|
181
166
|
break;
|
|
182
167
|
default:
|
|
183
168
|
console.error(`${colors.red}Error: Unsupported object type: ${objectType}${colors.reset}`);
|
|
@@ -214,10 +199,7 @@ async function main() {
|
|
|
214
199
|
const connection = createAbapConnection(config, logger);
|
|
215
200
|
|
|
216
201
|
// Setup session storage
|
|
217
|
-
const sessionStorage = new
|
|
218
|
-
sessionDir: sessionsDir,
|
|
219
|
-
prettyPrint: true
|
|
220
|
-
});
|
|
202
|
+
const sessionStorage = new AbapSessionStore(sessionsDir);
|
|
221
203
|
|
|
222
204
|
// Enable stateful session on connection
|
|
223
205
|
await connection.enableStatefulSession(sessionId, sessionStorage);
|
|
@@ -242,25 +224,9 @@ async function main() {
|
|
|
242
224
|
// after each request in stateful mode
|
|
243
225
|
console.log(`${colors.green}✓ Session saved${colors.reset}`);
|
|
244
226
|
console.log(` Session ID: ${colors.bright}${sessionId}${colors.reset}`);
|
|
245
|
-
console.log(` Session File: ${path.join(sessionsDir, sessionId + '.
|
|
246
|
-
|
|
247
|
-
// Register lock in lock manager
|
|
248
|
-
const lockManager = new LockStateManager(locksDir);
|
|
249
|
-
lockManager.registerLock({
|
|
250
|
-
sessionId,
|
|
251
|
-
lockHandle,
|
|
252
|
-
objectType: adtObjectType,
|
|
253
|
-
objectName,
|
|
254
|
-
functionGroupName: functionGroup,
|
|
255
|
-
testFile: 'CLI',
|
|
256
|
-
});
|
|
257
|
-
|
|
258
|
-
console.log(`${colors.green}✓ Lock registered${colors.reset}`);
|
|
259
|
-
console.log(` Lock File: ${path.join(locksDir, 'active-locks.json')}`);
|
|
227
|
+
console.log(` Session File: ${path.join(sessionsDir, sessionId + '.env')}`);
|
|
260
228
|
|
|
261
229
|
console.log(`\n${colors.bright}${colors.green}SUCCESS!${colors.reset} Object locked and session saved.`);
|
|
262
|
-
console.log(`\nTo unlock later, run:`);
|
|
263
|
-
console.log(` ${colors.cyan}adt-unlock-object ${objectType} ${objectName} --session-id ${sessionId}${functionGroup ? ` --function-group ${functionGroup}` : ''}${colors.reset}`);
|
|
264
230
|
|
|
265
231
|
} catch (error) {
|
|
266
232
|
console.error(`\n${colors.red}Error: ${error.message}${colors.reset}`);
|
|
@@ -2,16 +2,21 @@
|
|
|
2
2
|
* Lock State Manager - persists lock handles and session IDs to filesystem
|
|
3
3
|
* Allows recovery and cleanup of locks after crashes or interruptions
|
|
4
4
|
*/
|
|
5
|
+
import type { AdtObjectType } from '@mcp-abap-adt/adt-clients';
|
|
6
|
+
export declare function normalizeLockObjectType(objectType: string): AdtObjectType;
|
|
5
7
|
export interface LockState {
|
|
6
8
|
sessionId: string;
|
|
7
9
|
lockHandle: string;
|
|
8
|
-
objectType:
|
|
10
|
+
objectType: AdtObjectType;
|
|
9
11
|
objectName: string;
|
|
10
12
|
functionGroupName?: string;
|
|
11
13
|
timestamp: number;
|
|
12
14
|
pid: number;
|
|
13
15
|
testFile?: string;
|
|
14
16
|
}
|
|
17
|
+
type RawLockState = Omit<LockState, 'objectType'> & {
|
|
18
|
+
objectType: string;
|
|
19
|
+
};
|
|
15
20
|
export interface LockRegistry {
|
|
16
21
|
locks: LockState[];
|
|
17
22
|
}
|
|
@@ -30,7 +35,7 @@ export declare class LockStateManager {
|
|
|
30
35
|
/**
|
|
31
36
|
* Register a new lock
|
|
32
37
|
*/
|
|
33
|
-
registerLock(lock: Omit<
|
|
38
|
+
registerLock(lock: Omit<RawLockState, 'timestamp' | 'pid'>): void;
|
|
34
39
|
/**
|
|
35
40
|
* Remove lock from registry
|
|
36
41
|
*/
|
|
@@ -59,6 +64,11 @@ export declare class LockStateManager {
|
|
|
59
64
|
* Clear all locks
|
|
60
65
|
*/
|
|
61
66
|
clearAll(): void;
|
|
67
|
+
/**
|
|
68
|
+
* Normalize a lock loaded from disk to canonical ADT object type
|
|
69
|
+
*/
|
|
70
|
+
private normalizeLock;
|
|
62
71
|
}
|
|
63
72
|
export declare function getLockStateManager(lockDir?: string): LockStateManager;
|
|
73
|
+
export {};
|
|
64
74
|
//# sourceMappingURL=lockStateManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lockStateManager.d.ts","sourceRoot":"","sources":["../../src/utils/lockStateManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"lockStateManager.d.ts","sourceRoot":"","sources":["../../src/utils/lockStateManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AA8B/D,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAMzE;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,aAAa,CAAC;IAC1B,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,KAAK,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3E,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;IAmBpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAYpB;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,GAAG,KAAK,CAAC,GAAG,IAAI;IAuBjE;;OAEG;IACH,UAAU,CACR,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,iBAAiB,CAAC,EAAE,MAAM,GACzB,IAAI;IAaP;;OAEG;IACH,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,iBAAiB,CAAC,EAAE,MAAM,GACzB,SAAS,GAAG,SAAS;IAUxB;;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;IAKhB;;OAEG;IACH,OAAO,CAAC,aAAa;CAatB;AAKD,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAKtE"}
|
|
@@ -38,9 +38,44 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
38
38
|
})();
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
40
|
exports.LockStateManager = void 0;
|
|
41
|
+
exports.normalizeLockObjectType = normalizeLockObjectType;
|
|
41
42
|
exports.getLockStateManager = getLockStateManager;
|
|
42
43
|
const fs = __importStar(require("node:fs"));
|
|
43
44
|
const path = __importStar(require("node:path"));
|
|
45
|
+
const OBJECT_TYPE_NORMALIZATION_MAP = {
|
|
46
|
+
class: 'class',
|
|
47
|
+
'clas/oc': 'clas/oc',
|
|
48
|
+
program: 'program',
|
|
49
|
+
'prog/p': 'prog/p',
|
|
50
|
+
interface: 'interface',
|
|
51
|
+
'intf/if': 'intf/if',
|
|
52
|
+
fm: 'functionmodule',
|
|
53
|
+
functionmodule: 'functionmodule',
|
|
54
|
+
fugr: 'functiongroup',
|
|
55
|
+
'fugr/ff': 'fugr/ff',
|
|
56
|
+
functiongroup: 'functiongroup',
|
|
57
|
+
view: 'view',
|
|
58
|
+
'ddls/df': 'ddls/df',
|
|
59
|
+
structure: 'structure',
|
|
60
|
+
'stru/dt': 'stru/dt',
|
|
61
|
+
table: 'table',
|
|
62
|
+
'tabl/dt': 'tabl/dt',
|
|
63
|
+
tabletype: 'tabletype',
|
|
64
|
+
'ttyp/df': 'ttyp/df',
|
|
65
|
+
domain: 'domain',
|
|
66
|
+
'doma/dd': 'doma/dd',
|
|
67
|
+
dataelement: 'dataelement',
|
|
68
|
+
dtel: 'dtel',
|
|
69
|
+
package: 'package',
|
|
70
|
+
'devc/k': 'devc/k',
|
|
71
|
+
};
|
|
72
|
+
function normalizeLockObjectType(objectType) {
|
|
73
|
+
const normalized = OBJECT_TYPE_NORMALIZATION_MAP[objectType.toLowerCase()];
|
|
74
|
+
if (!normalized) {
|
|
75
|
+
throw new Error(`Unsupported object type for lock registry: ${objectType}`);
|
|
76
|
+
}
|
|
77
|
+
return normalized;
|
|
78
|
+
}
|
|
44
79
|
class LockStateManager {
|
|
45
80
|
lockFilePath;
|
|
46
81
|
registry;
|
|
@@ -60,7 +95,12 @@ class LockStateManager {
|
|
|
60
95
|
if (fs.existsSync(this.lockFilePath)) {
|
|
61
96
|
try {
|
|
62
97
|
const data = fs.readFileSync(this.lockFilePath, 'utf-8');
|
|
63
|
-
|
|
98
|
+
const parsed = JSON.parse(data);
|
|
99
|
+
const locks = Array.isArray(parsed?.locks) ? parsed.locks : [];
|
|
100
|
+
const normalizedLocks = locks
|
|
101
|
+
.map((lock) => this.normalizeLock(lock))
|
|
102
|
+
.filter(Boolean);
|
|
103
|
+
return { locks: normalizedLocks };
|
|
64
104
|
}
|
|
65
105
|
catch (error) {
|
|
66
106
|
console.warn(`Failed to load lock registry: ${error}`);
|
|
@@ -84,13 +124,15 @@ class LockStateManager {
|
|
|
84
124
|
* Register a new lock
|
|
85
125
|
*/
|
|
86
126
|
registerLock(lock) {
|
|
127
|
+
const normalizedType = normalizeLockObjectType(lock.objectType);
|
|
87
128
|
const lockState = {
|
|
88
129
|
...lock,
|
|
130
|
+
objectType: normalizedType,
|
|
89
131
|
timestamp: Date.now(),
|
|
90
132
|
pid: process.pid,
|
|
91
133
|
};
|
|
92
134
|
// Remove old lock for same object if exists
|
|
93
|
-
this.registry.locks = this.registry.locks.filter((l) => !(l.objectType ===
|
|
135
|
+
this.registry.locks = this.registry.locks.filter((l) => !(l.objectType === normalizedType &&
|
|
94
136
|
l.objectName === lock.objectName &&
|
|
95
137
|
l.functionGroupName === lock.functionGroupName));
|
|
96
138
|
this.registry.locks.push(lockState);
|
|
@@ -100,7 +142,8 @@ class LockStateManager {
|
|
|
100
142
|
* Remove lock from registry
|
|
101
143
|
*/
|
|
102
144
|
removeLock(objectType, objectName, functionGroupName) {
|
|
103
|
-
|
|
145
|
+
const normalizedType = normalizeLockObjectType(objectType);
|
|
146
|
+
this.registry.locks = this.registry.locks.filter((l) => !(l.objectType === normalizedType &&
|
|
104
147
|
l.objectName === objectName &&
|
|
105
148
|
l.functionGroupName === functionGroupName));
|
|
106
149
|
this.saveRegistry();
|
|
@@ -109,7 +152,8 @@ class LockStateManager {
|
|
|
109
152
|
* Get lock for specific object
|
|
110
153
|
*/
|
|
111
154
|
getLock(objectType, objectName, functionGroupName) {
|
|
112
|
-
|
|
155
|
+
const normalizedType = normalizeLockObjectType(objectType);
|
|
156
|
+
return this.registry.locks.find((l) => l.objectType === normalizedType &&
|
|
113
157
|
l.objectName === objectName &&
|
|
114
158
|
l.functionGroupName === functionGroupName);
|
|
115
159
|
}
|
|
@@ -160,6 +204,21 @@ class LockStateManager {
|
|
|
160
204
|
this.registry = { locks: [] };
|
|
161
205
|
this.saveRegistry();
|
|
162
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* Normalize a lock loaded from disk to canonical ADT object type
|
|
209
|
+
*/
|
|
210
|
+
normalizeLock(lock) {
|
|
211
|
+
try {
|
|
212
|
+
return {
|
|
213
|
+
...lock,
|
|
214
|
+
objectType: normalizeLockObjectType(lock.objectType),
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
console.warn(`Skipping lock with unknown object type "${lock.objectType}": ${error}`);
|
|
219
|
+
return null;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
163
222
|
}
|
|
164
223
|
exports.LockStateManager = LockStateManager;
|
|
165
224
|
// Global instance
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lockStateManager.js","sourceRoot":"","sources":["../../src/utils/lockStateManager.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"lockStateManager.js","sourceRoot":"","sources":["../../src/utils/lockStateManager.ts"],"names":[],"mappings":"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"}
|