@mcp-abap-adt/adt-clients 0.1.0
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/LICENSE +22 -0
- package/README.md +184 -0
- package/bin/README.md +368 -0
- package/bin/lock-object.js +274 -0
- package/bin/manage-locks.js +331 -0
- package/bin/manage-sessions.js +235 -0
- package/bin/unlock-object.js +291 -0
- package/bin/unlock-test-objects.js +248 -0
- package/dist/clients/CrudClient.d.ts +48 -0
- package/dist/clients/CrudClient.d.ts.map +1 -0
- package/dist/clients/CrudClient.js +135 -0
- package/dist/clients/LockClient.d.ts +28 -0
- package/dist/clients/LockClient.d.ts.map +1 -0
- package/dist/clients/LockClient.js +141 -0
- package/dist/clients/ManagementClient.d.ts +34 -0
- package/dist/clients/ManagementClient.d.ts.map +1 -0
- package/dist/clients/ManagementClient.js +80 -0
- package/dist/clients/ReadOnlyClient.d.ts +70 -0
- package/dist/clients/ReadOnlyClient.d.ts.map +1 -0
- package/dist/clients/ReadOnlyClient.js +141 -0
- package/dist/clients/ValidationClient.d.ts +8 -0
- package/dist/clients/ValidationClient.d.ts.map +1 -0
- package/dist/clients/ValidationClient.js +14 -0
- package/dist/core/class/ClassBuilder.d.ts +140 -0
- package/dist/core/class/ClassBuilder.d.ts.map +1 -0
- package/dist/core/class/ClassBuilder.js +400 -0
- package/dist/core/class/activation.d.ts +11 -0
- package/dist/core/class/activation.d.ts.map +1 -0
- package/dist/core/class/activation.js +16 -0
- package/dist/core/class/check.d.ts +24 -0
- package/dist/core/class/check.d.ts.map +1 -0
- package/dist/core/class/check.js +73 -0
- package/dist/core/class/create.d.ts +30 -0
- package/dist/core/class/create.d.ts.map +1 -0
- package/dist/core/class/create.js +118 -0
- package/dist/core/class/index.d.ts +14 -0
- package/dist/core/class/index.d.ts.map +1 -0
- package/dist/core/class/index.js +31 -0
- package/dist/core/class/lock.d.ts +20 -0
- package/dist/core/class/lock.d.ts.map +1 -0
- package/dist/core/class/lock.js +49 -0
- package/dist/core/class/read.d.ts +34 -0
- package/dist/core/class/read.d.ts.map +1 -0
- package/dist/core/class/read.js +59 -0
- package/dist/core/class/run.d.ts +51 -0
- package/dist/core/class/run.d.ts.map +1 -0
- package/dist/core/class/run.js +105 -0
- package/dist/core/class/unlock.d.ts +11 -0
- package/dist/core/class/unlock.d.ts.map +1 -0
- package/dist/core/class/unlock.js +16 -0
- package/dist/core/class/update.d.ts +11 -0
- package/dist/core/class/update.d.ts.map +1 -0
- package/dist/core/class/update.js +30 -0
- package/dist/core/class/validation.d.ts +28 -0
- package/dist/core/class/validation.d.ts.map +1 -0
- package/dist/core/class/validation.js +269 -0
- package/dist/core/dataElement/DataElementBuilder.d.ts +113 -0
- package/dist/core/dataElement/DataElementBuilder.d.ts.map +1 -0
- package/dist/core/dataElement/DataElementBuilder.js +449 -0
- package/dist/core/dataElement/activation.d.ts +11 -0
- package/dist/core/dataElement/activation.d.ts.map +1 -0
- package/dist/core/dataElement/activation.js +123 -0
- package/dist/core/dataElement/check.d.ts +12 -0
- package/dist/core/dataElement/check.d.ts.map +1 -0
- package/dist/core/dataElement/check.js +32 -0
- package/dist/core/dataElement/create.d.ts +12 -0
- package/dist/core/dataElement/create.d.ts.map +1 -0
- package/dist/core/dataElement/create.js +259 -0
- package/dist/core/dataElement/delete.d.ts +14 -0
- package/dist/core/dataElement/delete.d.ts.map +1 -0
- package/dist/core/dataElement/delete.js +21 -0
- package/dist/core/dataElement/index.d.ts +14 -0
- package/dist/core/dataElement/index.d.ts.map +1 -0
- package/dist/core/dataElement/index.js +31 -0
- package/dist/core/dataElement/lock.d.ts +10 -0
- package/dist/core/dataElement/lock.d.ts.map +1 -0
- package/dist/core/dataElement/lock.js +31 -0
- package/dist/core/dataElement/read.d.ts +17 -0
- package/dist/core/dataElement/read.d.ts.map +1 -0
- package/dist/core/dataElement/read.js +42 -0
- package/dist/core/dataElement/types.d.ts +64 -0
- package/dist/core/dataElement/types.d.ts.map +1 -0
- package/dist/core/dataElement/types.js +5 -0
- package/dist/core/dataElement/unlock.d.ts +11 -0
- package/dist/core/dataElement/unlock.d.ts.map +1 -0
- package/dist/core/dataElement/unlock.js +17 -0
- package/dist/core/dataElement/update.d.ts +29 -0
- package/dist/core/dataElement/update.d.ts.map +1 -0
- package/dist/core/dataElement/update.js +269 -0
- package/dist/core/delete.d.ts +22 -0
- package/dist/core/delete.d.ts.map +1 -0
- package/dist/core/delete.js +148 -0
- package/dist/core/domain/DomainBuilder.d.ts +135 -0
- package/dist/core/domain/DomainBuilder.d.ts.map +1 -0
- package/dist/core/domain/DomainBuilder.js +430 -0
- package/dist/core/domain/activation.d.ts +11 -0
- package/dist/core/domain/activation.d.ts.map +1 -0
- package/dist/core/domain/activation.js +16 -0
- package/dist/core/domain/check.d.ts +16 -0
- package/dist/core/domain/check.d.ts.map +1 -0
- package/dist/core/domain/check.js +36 -0
- package/dist/core/domain/create.d.ts +21 -0
- package/dist/core/domain/create.d.ts.map +1 -0
- package/dist/core/domain/create.js +172 -0
- package/dist/core/domain/delete.d.ts +14 -0
- package/dist/core/domain/delete.d.ts.map +1 -0
- package/dist/core/domain/delete.js +21 -0
- package/dist/core/domain/index.d.ts +14 -0
- package/dist/core/domain/index.d.ts.map +1 -0
- package/dist/core/domain/index.js +31 -0
- package/dist/core/domain/lock.d.ts +15 -0
- package/dist/core/domain/lock.d.ts.map +1 -0
- package/dist/core/domain/lock.js +61 -0
- package/dist/core/domain/read.d.ts +17 -0
- package/dist/core/domain/read.d.ts.map +1 -0
- package/dist/core/domain/read.js +42 -0
- package/dist/core/domain/types.d.ts +38 -0
- package/dist/core/domain/types.d.ts.map +1 -0
- package/dist/core/domain/types.js +5 -0
- package/dist/core/domain/unlock.d.ts +11 -0
- package/dist/core/domain/unlock.d.ts.map +1 -0
- package/dist/core/domain/unlock.js +17 -0
- package/dist/core/domain/update.d.ts +12 -0
- package/dist/core/domain/update.d.ts.map +1 -0
- package/dist/core/domain/update.js +144 -0
- package/dist/core/functionGroup/FunctionGroupBuilder.d.ts +91 -0
- package/dist/core/functionGroup/FunctionGroupBuilder.d.ts.map +1 -0
- package/dist/core/functionGroup/FunctionGroupBuilder.js +268 -0
- package/dist/core/functionGroup/activation.d.ts +10 -0
- package/dist/core/functionGroup/activation.d.ts.map +1 -0
- package/dist/core/functionGroup/activation.js +30 -0
- package/dist/core/functionGroup/check.d.ts +24 -0
- package/dist/core/functionGroup/check.d.ts.map +1 -0
- package/dist/core/functionGroup/check.js +91 -0
- package/dist/core/functionGroup/create.d.ts +12 -0
- package/dist/core/functionGroup/create.d.ts.map +1 -0
- package/dist/core/functionGroup/create.js +90 -0
- package/dist/core/functionGroup/delete.d.ts +14 -0
- package/dist/core/functionGroup/delete.d.ts.map +1 -0
- package/dist/core/functionGroup/delete.js +21 -0
- package/dist/core/functionGroup/index.d.ts +15 -0
- package/dist/core/functionGroup/index.d.ts.map +1 -0
- package/dist/core/functionGroup/index.js +32 -0
- package/dist/core/functionGroup/lock.d.ts +25 -0
- package/dist/core/functionGroup/lock.d.ts.map +1 -0
- package/dist/core/functionGroup/lock.js +50 -0
- package/dist/core/functionGroup/read.d.ts +17 -0
- package/dist/core/functionGroup/read.d.ts.map +1 -0
- package/dist/core/functionGroup/read.js +42 -0
- package/dist/core/functionGroup/types.d.ts +11 -0
- package/dist/core/functionGroup/types.d.ts.map +1 -0
- package/dist/core/functionGroup/types.js +5 -0
- package/dist/core/functionGroup/unlock.d.ts +5 -0
- package/dist/core/functionGroup/unlock.d.ts.map +1 -0
- package/dist/core/functionGroup/unlock.js +8 -0
- package/dist/core/functionGroup/update.d.ts +20 -0
- package/dist/core/functionGroup/update.d.ts.map +1 -0
- package/dist/core/functionGroup/update.js +119 -0
- package/dist/core/functionGroup/validation.d.ts +10 -0
- package/dist/core/functionGroup/validation.d.ts.map +1 -0
- package/dist/core/functionGroup/validation.js +17 -0
- package/dist/core/functionModule/FunctionModuleBuilder.d.ts +101 -0
- package/dist/core/functionModule/FunctionModuleBuilder.d.ts.map +1 -0
- package/dist/core/functionModule/FunctionModuleBuilder.js +314 -0
- package/dist/core/functionModule/activation.d.ts +10 -0
- package/dist/core/functionModule/activation.d.ts.map +1 -0
- package/dist/core/functionModule/activation.js +17 -0
- package/dist/core/functionModule/check.d.ts +23 -0
- package/dist/core/functionModule/check.d.ts.map +1 -0
- package/dist/core/functionModule/check.js +116 -0
- package/dist/core/functionModule/create.d.ts +12 -0
- package/dist/core/functionModule/create.d.ts.map +1 -0
- package/dist/core/functionModule/create.js +158 -0
- package/dist/core/functionModule/delete.d.ts +15 -0
- package/dist/core/functionModule/delete.d.ts.map +1 -0
- package/dist/core/functionModule/delete.js +25 -0
- package/dist/core/functionModule/index.d.ts +15 -0
- package/dist/core/functionModule/index.d.ts.map +1 -0
- package/dist/core/functionModule/index.js +32 -0
- package/dist/core/functionModule/lock.d.ts +18 -0
- package/dist/core/functionModule/lock.d.ts.map +1 -0
- package/dist/core/functionModule/lock.js +52 -0
- package/dist/core/functionModule/read.d.ts +31 -0
- package/dist/core/functionModule/read.d.ts.map +1 -0
- package/dist/core/functionModule/read.js +57 -0
- package/dist/core/functionModule/types.d.ts +19 -0
- package/dist/core/functionModule/types.d.ts.map +1 -0
- package/dist/core/functionModule/types.js +5 -0
- package/dist/core/functionModule/unlock.d.ts +10 -0
- package/dist/core/functionModule/unlock.d.ts.map +1 -0
- package/dist/core/functionModule/unlock.js +20 -0
- package/dist/core/functionModule/update.d.ts +17 -0
- package/dist/core/functionModule/update.d.ts.map +1 -0
- package/dist/core/functionModule/update.js +103 -0
- package/dist/core/functionModule/validation.d.ts +27 -0
- package/dist/core/functionModule/validation.d.ts.map +1 -0
- package/dist/core/functionModule/validation.js +107 -0
- package/dist/core/interface/InterfaceBuilder.d.ts +98 -0
- package/dist/core/interface/InterfaceBuilder.d.ts.map +1 -0
- package/dist/core/interface/InterfaceBuilder.js +311 -0
- package/dist/core/interface/activation.d.ts +11 -0
- package/dist/core/interface/activation.d.ts.map +1 -0
- package/dist/core/interface/activation.js +16 -0
- package/dist/core/interface/check.d.ts +10 -0
- package/dist/core/interface/check.d.ts.map +1 -0
- package/dist/core/interface/check.js +18 -0
- package/dist/core/interface/create.d.ts +12 -0
- package/dist/core/interface/create.d.ts.map +1 -0
- package/dist/core/interface/create.js +119 -0
- package/dist/core/interface/delete.d.ts +20 -0
- package/dist/core/interface/delete.d.ts.map +1 -0
- package/dist/core/interface/delete.js +47 -0
- package/dist/core/interface/index.d.ts +15 -0
- package/dist/core/interface/index.d.ts.map +1 -0
- package/dist/core/interface/index.js +32 -0
- package/dist/core/interface/lock.d.ts +23 -0
- package/dist/core/interface/lock.d.ts.map +1 -0
- package/dist/core/interface/lock.js +51 -0
- package/dist/core/interface/read.d.ts +26 -0
- package/dist/core/interface/read.d.ts.map +1 -0
- package/dist/core/interface/read.js +51 -0
- package/dist/core/interface/types.d.ts +19 -0
- package/dist/core/interface/types.d.ts.map +1 -0
- package/dist/core/interface/types.js +5 -0
- package/dist/core/interface/unlock.d.ts +11 -0
- package/dist/core/interface/unlock.d.ts.map +1 -0
- package/dist/core/interface/unlock.js +35 -0
- package/dist/core/interface/update.d.ts +12 -0
- package/dist/core/interface/update.d.ts.map +1 -0
- package/dist/core/interface/update.js +82 -0
- package/dist/core/interface/validation.d.ts +10 -0
- package/dist/core/interface/validation.d.ts.map +1 -0
- package/dist/core/interface/validation.js +17 -0
- package/dist/core/managementOperations.d.ts +34 -0
- package/dist/core/managementOperations.d.ts.map +1 -0
- package/dist/core/managementOperations.js +136 -0
- package/dist/core/package/PackageBuilder.d.ts +129 -0
- package/dist/core/package/PackageBuilder.d.ts.map +1 -0
- package/dist/core/package/PackageBuilder.js +386 -0
- package/dist/core/package/check.d.ts +9 -0
- package/dist/core/package/check.d.ts.map +1 -0
- package/dist/core/package/check.js +29 -0
- package/dist/core/package/create.d.ts +12 -0
- package/dist/core/package/create.d.ts.map +1 -0
- package/dist/core/package/create.js +145 -0
- package/dist/core/package/delete.d.ts +27 -0
- package/dist/core/package/delete.d.ts.map +1 -0
- package/dist/core/package/delete.js +138 -0
- package/dist/core/package/index.d.ts +15 -0
- package/dist/core/package/index.d.ts.map +1 -0
- package/dist/core/package/index.js +32 -0
- package/dist/core/package/lock.d.ts +10 -0
- package/dist/core/package/lock.d.ts.map +1 -0
- package/dist/core/package/lock.js +28 -0
- package/dist/core/package/read.d.ts +17 -0
- package/dist/core/package/read.d.ts.map +1 -0
- package/dist/core/package/read.js +42 -0
- package/dist/core/package/transportCheck.d.ts +10 -0
- package/dist/core/package/transportCheck.d.ts.map +1 -0
- package/dist/core/package/transportCheck.js +52 -0
- package/dist/core/package/types.d.ts +15 -0
- package/dist/core/package/types.d.ts.map +1 -0
- package/dist/core/package/types.js +5 -0
- package/dist/core/package/unlock.d.ts +11 -0
- package/dist/core/package/unlock.d.ts.map +1 -0
- package/dist/core/package/unlock.js +16 -0
- package/dist/core/package/update.d.ts +19 -0
- package/dist/core/package/update.d.ts.map +1 -0
- package/dist/core/package/update.js +125 -0
- package/dist/core/package/validation.d.ts +14 -0
- package/dist/core/package/validation.d.ts.map +1 -0
- package/dist/core/package/validation.js +72 -0
- package/dist/core/program/ProgramBuilder.d.ts +102 -0
- package/dist/core/program/ProgramBuilder.d.ts.map +1 -0
- package/dist/core/program/ProgramBuilder.js +321 -0
- package/dist/core/program/activation.d.ts +11 -0
- package/dist/core/program/activation.d.ts.map +1 -0
- package/dist/core/program/activation.js +16 -0
- package/dist/core/program/check.d.ts +10 -0
- package/dist/core/program/check.d.ts.map +1 -0
- package/dist/core/program/check.js +18 -0
- package/dist/core/program/create.d.ts +23 -0
- package/dist/core/program/create.d.ts.map +1 -0
- package/dist/core/program/create.js +159 -0
- package/dist/core/program/delete.d.ts +14 -0
- package/dist/core/program/delete.d.ts.map +1 -0
- package/dist/core/program/delete.js +21 -0
- package/dist/core/program/index.d.ts +14 -0
- package/dist/core/program/index.d.ts.map +1 -0
- package/dist/core/program/index.js +31 -0
- package/dist/core/program/lock.d.ts +20 -0
- package/dist/core/program/lock.d.ts.map +1 -0
- package/dist/core/program/lock.js +49 -0
- package/dist/core/program/read.d.ts +26 -0
- package/dist/core/program/read.d.ts.map +1 -0
- package/dist/core/program/read.js +51 -0
- package/dist/core/program/unlock.d.ts +11 -0
- package/dist/core/program/unlock.d.ts.map +1 -0
- package/dist/core/program/unlock.js +16 -0
- package/dist/core/program/update.d.ts +16 -0
- package/dist/core/program/update.d.ts.map +1 -0
- package/dist/core/program/update.js +82 -0
- package/dist/core/program/validation.d.ts +10 -0
- package/dist/core/program/validation.d.ts.map +1 -0
- package/dist/core/program/validation.js +17 -0
- package/dist/core/readOperations.d.ts +63 -0
- package/dist/core/readOperations.d.ts.map +1 -0
- package/dist/core/readOperations.js +204 -0
- package/dist/core/shared/checkRun.d.ts +68 -0
- package/dist/core/shared/checkRun.d.ts.map +1 -0
- package/dist/core/shared/checkRun.js +292 -0
- package/dist/core/shared/readMetadata.d.ts +16 -0
- package/dist/core/shared/readMetadata.d.ts.map +1 -0
- package/dist/core/shared/readMetadata.js +74 -0
- package/dist/core/shared/readSource.d.ts +21 -0
- package/dist/core/shared/readSource.d.ts.map +1 -0
- package/dist/core/shared/readSource.js +83 -0
- package/dist/core/shared/search.d.ts +26 -0
- package/dist/core/shared/search.d.ts.map +1 -0
- package/dist/core/shared/search.js +32 -0
- package/dist/core/shared/sqlQuery.d.ts +22 -0
- package/dist/core/shared/sqlQuery.d.ts.map +1 -0
- package/dist/core/shared/sqlQuery.js +36 -0
- package/dist/core/shared/systemInfo.d.ts +22 -0
- package/dist/core/shared/systemInfo.d.ts.map +1 -0
- package/dist/core/shared/systemInfo.js +67 -0
- package/dist/core/shared/tableContents.d.ts +22 -0
- package/dist/core/shared/tableContents.d.ts.map +1 -0
- package/dist/core/shared/tableContents.js +89 -0
- package/dist/core/shared/validation.d.ts +26 -0
- package/dist/core/shared/validation.d.ts.map +1 -0
- package/dist/core/shared/validation.js +134 -0
- package/dist/core/shared/whereUsed.d.ts +19 -0
- package/dist/core/shared/whereUsed.d.ts.map +1 -0
- package/dist/core/shared/whereUsed.js +88 -0
- package/dist/core/structure/StructureBuilder.d.ts +124 -0
- package/dist/core/structure/StructureBuilder.d.ts.map +1 -0
- package/dist/core/structure/StructureBuilder.js +357 -0
- package/dist/core/structure/activation.d.ts +10 -0
- package/dist/core/structure/activation.d.ts.map +1 -0
- package/dist/core/structure/activation.js +15 -0
- package/dist/core/structure/check.d.ts +12 -0
- package/dist/core/structure/check.d.ts.map +1 -0
- package/dist/core/structure/check.js +44 -0
- package/dist/core/structure/create.d.ts +12 -0
- package/dist/core/structure/create.d.ts.map +1 -0
- package/dist/core/structure/create.js +136 -0
- package/dist/core/structure/delete.d.ts +14 -0
- package/dist/core/structure/delete.d.ts.map +1 -0
- package/dist/core/structure/delete.js +21 -0
- package/dist/core/structure/index.d.ts +15 -0
- package/dist/core/structure/index.d.ts.map +1 -0
- package/dist/core/structure/index.js +32 -0
- package/dist/core/structure/lock.d.ts +10 -0
- package/dist/core/structure/lock.d.ts.map +1 -0
- package/dist/core/structure/lock.js +28 -0
- package/dist/core/structure/read.d.ts +26 -0
- package/dist/core/structure/read.d.ts.map +1 -0
- package/dist/core/structure/read.js +51 -0
- package/dist/core/structure/types.d.ts +33 -0
- package/dist/core/structure/types.d.ts.map +1 -0
- package/dist/core/structure/types.js +5 -0
- package/dist/core/structure/unlock.d.ts +11 -0
- package/dist/core/structure/unlock.d.ts.map +1 -0
- package/dist/core/structure/unlock.js +16 -0
- package/dist/core/structure/update.d.ts +11 -0
- package/dist/core/structure/update.d.ts.map +1 -0
- package/dist/core/structure/update.js +26 -0
- package/dist/core/structure/validation.d.ts +10 -0
- package/dist/core/structure/validation.d.ts.map +1 -0
- package/dist/core/structure/validation.js +17 -0
- package/dist/core/table/TableBuilder.d.ts +115 -0
- package/dist/core/table/TableBuilder.d.ts.map +1 -0
- package/dist/core/table/TableBuilder.js +328 -0
- package/dist/core/table/activation.d.ts +10 -0
- package/dist/core/table/activation.d.ts.map +1 -0
- package/dist/core/table/activation.js +15 -0
- package/dist/core/table/check.d.ts +11 -0
- package/dist/core/table/check.d.ts.map +1 -0
- package/dist/core/table/check.js +30 -0
- package/dist/core/table/create.d.ts +12 -0
- package/dist/core/table/create.d.ts.map +1 -0
- package/dist/core/table/create.js +182 -0
- package/dist/core/table/delete.d.ts +14 -0
- package/dist/core/table/delete.d.ts.map +1 -0
- package/dist/core/table/delete.js +21 -0
- package/dist/core/table/index.d.ts +15 -0
- package/dist/core/table/index.d.ts.map +1 -0
- package/dist/core/table/index.js +32 -0
- package/dist/core/table/lock.d.ts +9 -0
- package/dist/core/table/lock.d.ts.map +1 -0
- package/dist/core/table/lock.js +29 -0
- package/dist/core/table/read.d.ts +26 -0
- package/dist/core/table/read.d.ts.map +1 -0
- package/dist/core/table/read.js +51 -0
- package/dist/core/table/types.d.ts +10 -0
- package/dist/core/table/types.d.ts.map +1 -0
- package/dist/core/table/types.js +5 -0
- package/dist/core/table/unlock.d.ts +15 -0
- package/dist/core/table/unlock.d.ts.map +1 -0
- package/dist/core/table/unlock.js +32 -0
- package/dist/core/table/update.d.ts +16 -0
- package/dist/core/table/update.d.ts.map +1 -0
- package/dist/core/table/update.js +32 -0
- package/dist/core/table/validation.d.ts +10 -0
- package/dist/core/table/validation.d.ts.map +1 -0
- package/dist/core/table/validation.js +17 -0
- package/dist/core/transport/TransportBuilder.d.ts +85 -0
- package/dist/core/transport/TransportBuilder.d.ts.map +1 -0
- package/dist/core/transport/TransportBuilder.js +154 -0
- package/dist/core/transport/create.d.ts +11 -0
- package/dist/core/transport/create.d.ts.map +1 -0
- package/dist/core/transport/create.js +157 -0
- package/dist/core/transport/index.d.ts +8 -0
- package/dist/core/transport/index.d.ts.map +1 -0
- package/dist/core/transport/index.js +25 -0
- package/dist/core/transport/read.d.ts +10 -0
- package/dist/core/transport/read.d.ts.map +1 -0
- package/dist/core/transport/read.js +22 -0
- package/dist/core/transport/types.d.ts +10 -0
- package/dist/core/transport/types.d.ts.map +1 -0
- package/dist/core/transport/types.js +5 -0
- package/dist/core/view/ViewBuilder.d.ts +117 -0
- package/dist/core/view/ViewBuilder.d.ts.map +1 -0
- package/dist/core/view/ViewBuilder.js +335 -0
- package/dist/core/view/activation.d.ts +10 -0
- package/dist/core/view/activation.d.ts.map +1 -0
- package/dist/core/view/activation.js +15 -0
- package/dist/core/view/check.d.ts +7 -0
- package/dist/core/view/check.d.ts.map +1 -0
- package/dist/core/view/check.js +57 -0
- package/dist/core/view/create.d.ts +12 -0
- package/dist/core/view/create.d.ts.map +1 -0
- package/dist/core/view/create.js +88 -0
- package/dist/core/view/delete.d.ts +14 -0
- package/dist/core/view/delete.d.ts.map +1 -0
- package/dist/core/view/delete.js +21 -0
- package/dist/core/view/index.d.ts +15 -0
- package/dist/core/view/index.d.ts.map +1 -0
- package/dist/core/view/index.js +32 -0
- package/dist/core/view/lock.d.ts +18 -0
- package/dist/core/view/lock.d.ts.map +1 -0
- package/dist/core/view/lock.js +45 -0
- package/dist/core/view/read.d.ts +26 -0
- package/dist/core/view/read.d.ts.map +1 -0
- package/dist/core/view/read.js +51 -0
- package/dist/core/view/types.d.ts +19 -0
- package/dist/core/view/types.d.ts.map +1 -0
- package/dist/core/view/types.js +5 -0
- package/dist/core/view/unlock.d.ts +10 -0
- package/dist/core/view/unlock.d.ts.map +1 -0
- package/dist/core/view/unlock.js +15 -0
- package/dist/core/view/update.d.ts +12 -0
- package/dist/core/view/update.d.ts.map +1 -0
- package/dist/core/view/update.js +89 -0
- package/dist/core/view/validation.d.ts +10 -0
- package/dist/core/view/validation.d.ts.map +1 -0
- package/dist/core/view/validation.js +17 -0
- package/dist/core.d.ts +133 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +175 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +60 -0
- package/dist/utils/activationUtils.d.ts +44 -0
- package/dist/utils/activationUtils.d.ts.map +1 -0
- package/dist/utils/activationUtils.js +127 -0
- package/dist/utils/internalUtils.d.ts +12 -0
- package/dist/utils/internalUtils.d.ts.map +1 -0
- package/dist/utils/internalUtils.js +16 -0
- package/dist/utils/lockStateManager.d.ts +64 -0
- package/dist/utils/lockStateManager.d.ts.map +1 -0
- package/dist/utils/lockStateManager.js +172 -0
- package/dist/utils/sessionUtils.d.ts +69 -0
- package/dist/utils/sessionUtils.d.ts.map +1 -0
- package/dist/utils/sessionUtils.js +134 -0
- package/package.json +75 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Oleksii Kyslytsia
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
package/README.md
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# @mcp-abap-adt/adt-clients
|
|
2
|
+
|
|
3
|
+
ADT (ABAP Development Tools) clients for SAP ABAP systems with a **Builder-first API**.
|
|
4
|
+
Low-level helpers stay internal; consumers interact via Builders and high-level clients (Management, Lock, Validation).
|
|
5
|
+
|
|
6
|
+
## Features
|
|
7
|
+
|
|
8
|
+
- ✅ **Builder-first workflow** – every supported object type exposes a fluent Builder (`ClassBuilder`, `TableBuilder`, …) that wraps validate/create/lock/update/activate in one chain.
|
|
9
|
+
- ✅ **High-level clients** – `ManagementClient`, `LockClient`, `ValidationClient` cover cross-object tasks (activation, ad-hoc locking, name validation) without touching internal modules.
|
|
10
|
+
- ✅ **Stateful session propagation** – builders and clients keep the same `sap-adt-connection-id` across lock/update/unlock; session state can be exported/imported via the connection package.
|
|
11
|
+
- ✅ **Lock registry + CLI** – persistent `.locks/active-locks.json` plus `adt-manage-locks` / `adt-unlock-objects` scripts to recover from crashes.
|
|
12
|
+
- ✅ **Test-friendly logging** – `DEBUG_TESTS=true` for per-step output, `LOG_LOCKS=false` to silence `[LOCK] ...` lines.
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
### As npm Package
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# Install globally for CLI tools
|
|
20
|
+
npm install -g @mcp-abap-adt/adt-clients
|
|
21
|
+
|
|
22
|
+
# Or install in project
|
|
23
|
+
npm install @mcp-abap-adt/adt-clients
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### CLI Tools
|
|
27
|
+
|
|
28
|
+
After global installation, you get 5 CLI commands:
|
|
29
|
+
|
|
30
|
+
- `adt-lock-object` - Lock an object and save session
|
|
31
|
+
- `adt-unlock-object` - Unlock using saved session
|
|
32
|
+
- `adt-manage-locks` - View/manage lock registry
|
|
33
|
+
- `adt-manage-sessions` - View/manage session files
|
|
34
|
+
- `adt-unlock-objects` - Cleanup test objects
|
|
35
|
+
|
|
36
|
+
See [CLI Tools documentation](./bin/README.md) for details.
|
|
37
|
+
|
|
38
|
+
## Supported Object Types
|
|
39
|
+
|
|
40
|
+
- **Classes** (CLAS/OC) - Full CRUD + run (if_oo_adt_classrun)
|
|
41
|
+
- **Interfaces** (INTF/OI) - Full CRUD
|
|
42
|
+
- **Programs** (PROG/P) - Full CRUD
|
|
43
|
+
- **Function Groups** (FUGR/F) - Full CRUD
|
|
44
|
+
- **Function Modules** (FUGR/FF) - Full CRUD
|
|
45
|
+
- **Domains** (DOMA/DD) - Full CRUD
|
|
46
|
+
- **Data Elements** (DTEL/DE) - Full CRUD
|
|
47
|
+
- **CDS Views** (DDLS/DL) - Full CRUD
|
|
48
|
+
- **Tables** (TABL/DT) - Read operations
|
|
49
|
+
- **Structures** (TABL/DS) - Read operations
|
|
50
|
+
- **Packages** (DEVC/K) - Create, read
|
|
51
|
+
- **Transports** (TRNS/R3TR) - Create
|
|
52
|
+
|
|
53
|
+
## Quick Start
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
import { createAbapConnection } from '@mcp-abap-adt/connection';
|
|
57
|
+
import { ClassBuilder, LockClient, ManagementClient } from '@mcp-abap-adt/adt-clients';
|
|
58
|
+
|
|
59
|
+
const connection = createAbapConnection({
|
|
60
|
+
url: 'https://your-sap-system.example.com',
|
|
61
|
+
client: '100',
|
|
62
|
+
authType: 'basic',
|
|
63
|
+
username: process.env.SAP_USERNAME!,
|
|
64
|
+
password: process.env.SAP_PASSWORD!
|
|
65
|
+
}, console);
|
|
66
|
+
|
|
67
|
+
// Full builder workflow
|
|
68
|
+
const builder = new ClassBuilder(connection, console, {
|
|
69
|
+
className: 'ZCL_MY_CLASS',
|
|
70
|
+
packageName: 'ZADT_BLD_PKG01',
|
|
71
|
+
description: 'Demo builder class',
|
|
72
|
+
transportRequest: 'E19K900001'
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
await builder
|
|
76
|
+
.setCode(`CLASS zcl_my_class DEFINITION PUBLIC.
|
|
77
|
+
PUBLIC SECTION.
|
|
78
|
+
METHODS: hello.
|
|
79
|
+
ENDCLASS.
|
|
80
|
+
|
|
81
|
+
CLASS zcl_my_class IMPLEMENTATION.
|
|
82
|
+
METHOD hello.
|
|
83
|
+
WRITE: 'Hello from builder'.
|
|
84
|
+
ENDMETHOD.
|
|
85
|
+
ENDCLASS.`)
|
|
86
|
+
.validate()
|
|
87
|
+
.then(b => b.create())
|
|
88
|
+
.then(b => b.check('inactive'))
|
|
89
|
+
.then(b => b.lock())
|
|
90
|
+
.then(b => {
|
|
91
|
+
b.setCode(b.getState().sourceCode!.replace('builder', 'builder v2'));
|
|
92
|
+
return b.update();
|
|
93
|
+
})
|
|
94
|
+
.then(b => b.check('inactive'))
|
|
95
|
+
.then(b => b.unlock())
|
|
96
|
+
.then(b => b.activate())
|
|
97
|
+
.then(b => b.check('active'));
|
|
98
|
+
|
|
99
|
+
// Ad-hoc management helpers
|
|
100
|
+
const lockClient = new LockClient(connection);
|
|
101
|
+
const mgmtClient = new ManagementClient(connection);
|
|
102
|
+
|
|
103
|
+
const { lockHandle, sessionId } = await lockClient.lock({
|
|
104
|
+
objectType: 'class',
|
|
105
|
+
objectName: 'ZCL_MY_CLASS'
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
await mgmtClient.activateObjectsGroup([{ name: 'ZCL_MY_CLASS', uri: '/sap/bc/adt/oo/classes/zcl_my_class' }]);
|
|
109
|
+
|
|
110
|
+
await lockClient.unlock({
|
|
111
|
+
objectType: 'class',
|
|
112
|
+
objectName: 'ZCL_MY_CLASS',
|
|
113
|
+
lockHandle,
|
|
114
|
+
sessionId
|
|
115
|
+
});
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
> ℹ️ Need to persist the `sessionId` / cookies between processes? See [doc/architecture/STATEFUL_SESSION_GUIDE.md](../../doc/architecture/STATEFUL_SESSION_GUIDE.md) and the `@mcp-abap-adt/connection` README for details.
|
|
119
|
+
|
|
120
|
+
## CLI Tools
|
|
121
|
+
|
|
122
|
+
After installation, the following commands are available:
|
|
123
|
+
|
|
124
|
+
### Manage Locks
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
# List all active locks
|
|
128
|
+
adt-manage-locks list
|
|
129
|
+
|
|
130
|
+
# Clean up stale locks
|
|
131
|
+
adt-manage-locks cleanup
|
|
132
|
+
|
|
133
|
+
# Unlock specific object
|
|
134
|
+
adt-manage-locks unlock class ZCL_TEST
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Manage Sessions
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# List all sessions
|
|
141
|
+
adt-manage-sessions list
|
|
142
|
+
|
|
143
|
+
# Show session details
|
|
144
|
+
adt-manage-sessions info <sessionId>
|
|
145
|
+
|
|
146
|
+
# Clean up stale sessions
|
|
147
|
+
adt-manage-sessions cleanup
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
See [bin/README.md](bin/README.md) for details.
|
|
151
|
+
|
|
152
|
+
## Builders & Clients
|
|
153
|
+
|
|
154
|
+
- **Builders**: classes, interfaces, programs, domains, data elements, tables, structures, views, packages, transports, function groups, function modules.
|
|
155
|
+
Each builder exposes `.validate()`, `.create()`, `.lock()`, `.update()`, `.activate()`, `.check()`, `.read()`, `.forceUnlock()`.
|
|
156
|
+
- **ManagementClient**: batch activation + check operations.
|
|
157
|
+
- **LockClient**: explicit lock/unlock helpers that integrate with the `.locks` registry (used by tests and CLI tools).
|
|
158
|
+
- **ValidationClient**: name validation helper mirroring ADT validation endpoint.
|
|
159
|
+
|
|
160
|
+
Refer to the TypeScript typings (`src/index.ts`) for the full API surface.
|
|
161
|
+
|
|
162
|
+
## Documentation
|
|
163
|
+
|
|
164
|
+
- **[Stateful Session Guide](docs/STATEFUL_SESSION_GUIDE.md)** – how Builders and clients manage `sessionId`, `lockHandle`, and the lock registry
|
|
165
|
+
- **[Architecture](docs/reference/ARCHITECTURE.md)** – package structure and design decisions
|
|
166
|
+
- **[Builder Test Pattern](docs/BUILDER_TEST_PATTERN.md)** – test structure and patterns for contributors
|
|
167
|
+
- **[Test Configuration Schema](docs/TEST_CONFIG_SCHEMA.md)** – YAML test configuration reference
|
|
168
|
+
|
|
169
|
+
## Logging
|
|
170
|
+
|
|
171
|
+
- `DEBUG_TESTS=true` – verbose step-by-step logging for tests
|
|
172
|
+
- `LOG_LOCKS=false` – disable `[LOCK] ...` lines (enabled by default)
|
|
173
|
+
|
|
174
|
+
## Changelog
|
|
175
|
+
|
|
176
|
+
See [CHANGELOG.md](CHANGELOG.md) for package-specific release notes.
|
|
177
|
+
|
|
178
|
+
## License
|
|
179
|
+
|
|
180
|
+
MIT
|
|
181
|
+
|
|
182
|
+
## Author
|
|
183
|
+
|
|
184
|
+
Oleksii Kyslytsia <oleksij.kyslytsja@gmail.com>
|
package/bin/README.md
ADDED
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
# CLI Utilities
|
|
2
|
+
|
|
3
|
+
This directory contains command-line utilities for managing ADT client sessions and locks.
|
|
4
|
+
|
|
5
|
+
## Overview of All Scripts
|
|
6
|
+
|
|
7
|
+
| Command | Purpose | Use Case |
|
|
8
|
+
|---------|---------|----------|
|
|
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
|
+
|
|
15
|
+
### Key Differences
|
|
16
|
+
|
|
17
|
+
**Lock/Unlock Pair (for production use):**
|
|
18
|
+
- `adt-lock-object` + `adt-unlock-object` - Full workflow: lock → save session → restore session → unlock
|
|
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
|
|
30
|
+
|
|
31
|
+
## Installation
|
|
32
|
+
|
|
33
|
+
### Global Installation (Recommended)
|
|
34
|
+
|
|
35
|
+
Install globally to use CLI commands from anywhere:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npm install -g @mcp-abap-adt/adt-clients
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
After global installation, all commands are available in your PATH:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
adt-lock-object --help
|
|
45
|
+
adt-unlock-object --help
|
|
46
|
+
adt-manage-locks --help
|
|
47
|
+
adt-manage-sessions --help
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Local Installation
|
|
51
|
+
|
|
52
|
+
Install as a dependency in your project:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npm install @mcp-abap-adt/adt-clients
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Run commands using npx:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
npx adt-lock-object class ZCL_MY_CLASS
|
|
62
|
+
npx adt-manage-locks list
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Development Installation
|
|
66
|
+
|
|
67
|
+
For local development from repository:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
cd packages/adt-clients
|
|
71
|
+
npm install
|
|
72
|
+
npm run build
|
|
73
|
+
npm link # Makes commands available globally
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
The following commands will be available:
|
|
77
|
+
|
|
78
|
+
## Commands
|
|
79
|
+
|
|
80
|
+
### adt-lock-object
|
|
81
|
+
|
|
82
|
+
Lock an SAP object and save session state for later recovery.
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# Lock a class
|
|
86
|
+
adt-lock-object class ZCL_MY_CLASS
|
|
87
|
+
|
|
88
|
+
# Lock with custom session ID
|
|
89
|
+
adt-lock-object class ZCL_MY_CLASS --session-id my_work
|
|
90
|
+
|
|
91
|
+
# Lock a function module
|
|
92
|
+
adt-lock-object fm MY_FUNCTION --function-group Z_MY_FUGR
|
|
93
|
+
|
|
94
|
+
# Lock a program
|
|
95
|
+
adt-lock-object program Z_MY_PROGRAM
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**What it does:**
|
|
99
|
+
1. Connects to SAP and locks the object
|
|
100
|
+
2. Saves session (cookies, CSRF token) to `.sessions/<session-id>.json`
|
|
101
|
+
3. Registers lock handle in `.locks/active-locks.json`
|
|
102
|
+
4. Prints unlock command for later use
|
|
103
|
+
|
|
104
|
+
**Supported types:** class, program, interface, fm, domain, dataelement
|
|
105
|
+
|
|
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
|
+
## Common Options
|
|
206
|
+
|
|
207
|
+
Most commands support:
|
|
208
|
+
|
|
209
|
+
| Option | Description | Default |
|
|
210
|
+
|--------|-------------|---------|
|
|
211
|
+
| `--locks-dir <path>` | Lock registry directory | `.locks` |
|
|
212
|
+
| `--sessions-dir <path>` | Sessions directory | `.sessions` |
|
|
213
|
+
| `--env <path>` | Path to .env file | `.env` |
|
|
214
|
+
| `--help, -h` | Show help message | - |
|
|
215
|
+
|
|
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
|
+
## File Structure
|
|
264
|
+
|
|
265
|
+
```
|
|
266
|
+
.sessions/
|
|
267
|
+
├── my_work_session.json # Session state (cookies, CSRF)
|
|
268
|
+
└── lock_class_ZCL_TEST_*.json # Auto-generated session
|
|
269
|
+
|
|
270
|
+
.locks/
|
|
271
|
+
└── active-locks.json # Lock registry
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
## Environment Setup
|
|
275
|
+
|
|
276
|
+
Required in `.env`:
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
SAP_URL=https://your-sap-system.com
|
|
280
|
+
SAP_USERNAME=your_username
|
|
281
|
+
SAP_PASSWORD=your_password
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
## Gitignore
|
|
285
|
+
|
|
286
|
+
Ensure these directories are in `.gitignore`:
|
|
287
|
+
|
|
288
|
+
```gitignore
|
|
289
|
+
.sessions/
|
|
290
|
+
.locks/
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
## See Also
|
|
294
|
+
|
|
295
|
+
- [Session State Management](../docs/archive/SESSION_STATE_MANAGEMENT.md)
|
|
296
|
+
- [Lock State Management](../docs/archive/LOCK_STATE_MANAGEMENT.md)
|
|
297
|
+
- [Lock Recovery Test](../src/__tests__/integration/README_LOCK_RECOVERY.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
|
+
- [Lock State Management](../docs/archive/LOCK_STATE_MANAGEMENT.md)
|
|
368
|
+
- [Session State Management](../docs/archive/SESSION_STATE_MANAGEMENT.md)
|