@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
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Lock State Manager - persists lock handles and session IDs to filesystem
|
|
4
|
+
* Allows recovery and cleanup of locks after crashes or interruptions
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.LockStateManager = void 0;
|
|
41
|
+
exports.getLockStateManager = getLockStateManager;
|
|
42
|
+
const fs = __importStar(require("fs"));
|
|
43
|
+
const path = __importStar(require("path"));
|
|
44
|
+
class LockStateManager {
|
|
45
|
+
lockFilePath;
|
|
46
|
+
registry;
|
|
47
|
+
constructor(lockDir = '.locks') {
|
|
48
|
+
// Create locks directory if it doesn't exist
|
|
49
|
+
const baseDir = path.resolve(process.cwd(), lockDir);
|
|
50
|
+
if (!fs.existsSync(baseDir)) {
|
|
51
|
+
fs.mkdirSync(baseDir, { recursive: true });
|
|
52
|
+
}
|
|
53
|
+
this.lockFilePath = path.join(baseDir, 'active-locks.json');
|
|
54
|
+
this.registry = this.loadRegistry();
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Load lock registry from file
|
|
58
|
+
*/
|
|
59
|
+
loadRegistry() {
|
|
60
|
+
if (fs.existsSync(this.lockFilePath)) {
|
|
61
|
+
try {
|
|
62
|
+
const data = fs.readFileSync(this.lockFilePath, 'utf-8');
|
|
63
|
+
return JSON.parse(data);
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
console.warn(`Failed to load lock registry: ${error}`);
|
|
67
|
+
return { locks: [] };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return { locks: [] };
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Save lock registry to file
|
|
74
|
+
*/
|
|
75
|
+
saveRegistry() {
|
|
76
|
+
try {
|
|
77
|
+
fs.writeFileSync(this.lockFilePath, JSON.stringify(this.registry, null, 2), 'utf-8');
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
console.error(`Failed to save lock registry: ${error}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Register a new lock
|
|
85
|
+
*/
|
|
86
|
+
registerLock(lock) {
|
|
87
|
+
const lockState = {
|
|
88
|
+
...lock,
|
|
89
|
+
timestamp: Date.now(),
|
|
90
|
+
pid: process.pid,
|
|
91
|
+
};
|
|
92
|
+
// Remove old lock for same object if exists
|
|
93
|
+
this.registry.locks = this.registry.locks.filter(l => !(l.objectType === lock.objectType &&
|
|
94
|
+
l.objectName === lock.objectName &&
|
|
95
|
+
l.functionGroupName === lock.functionGroupName));
|
|
96
|
+
this.registry.locks.push(lockState);
|
|
97
|
+
this.saveRegistry();
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Remove lock from registry
|
|
101
|
+
*/
|
|
102
|
+
removeLock(objectType, objectName, functionGroupName) {
|
|
103
|
+
this.registry.locks = this.registry.locks.filter(l => !(l.objectType === objectType &&
|
|
104
|
+
l.objectName === objectName &&
|
|
105
|
+
l.functionGroupName === functionGroupName));
|
|
106
|
+
this.saveRegistry();
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get lock for specific object
|
|
110
|
+
*/
|
|
111
|
+
getLock(objectType, objectName, functionGroupName) {
|
|
112
|
+
return this.registry.locks.find(l => l.objectType === objectType &&
|
|
113
|
+
l.objectName === objectName &&
|
|
114
|
+
l.functionGroupName === functionGroupName);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get all active locks
|
|
118
|
+
*/
|
|
119
|
+
getAllLocks() {
|
|
120
|
+
return [...this.registry.locks];
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Get stale locks (older than threshold)
|
|
124
|
+
*/
|
|
125
|
+
getStaleLocks(maxAgeMs = 30 * 60 * 1000) {
|
|
126
|
+
const now = Date.now();
|
|
127
|
+
return this.registry.locks.filter(l => now - l.timestamp > maxAgeMs);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Get locks from dead processes
|
|
131
|
+
*/
|
|
132
|
+
getDeadProcessLocks() {
|
|
133
|
+
return this.registry.locks.filter(l => {
|
|
134
|
+
try {
|
|
135
|
+
// Check if process is still running
|
|
136
|
+
process.kill(l.pid, 0);
|
|
137
|
+
return false; // Process exists
|
|
138
|
+
}
|
|
139
|
+
catch (e) {
|
|
140
|
+
return true; // Process doesn't exist
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Clean up stale locks
|
|
146
|
+
*/
|
|
147
|
+
cleanupStaleLocks(maxAgeMs) {
|
|
148
|
+
const staleLocks = this.getStaleLocks(maxAgeMs);
|
|
149
|
+
const deadProcessLocks = this.getDeadProcessLocks();
|
|
150
|
+
const toCleanup = [...new Set([...staleLocks, ...deadProcessLocks])];
|
|
151
|
+
toCleanup.forEach(lock => {
|
|
152
|
+
this.removeLock(lock.objectType, lock.objectName, lock.functionGroupName);
|
|
153
|
+
});
|
|
154
|
+
return toCleanup;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Clear all locks
|
|
158
|
+
*/
|
|
159
|
+
clearAll() {
|
|
160
|
+
this.registry = { locks: [] };
|
|
161
|
+
this.saveRegistry();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
exports.LockStateManager = LockStateManager;
|
|
165
|
+
// Global instance
|
|
166
|
+
let globalManager = null;
|
|
167
|
+
function getLockStateManager(lockDir) {
|
|
168
|
+
if (!globalManager) {
|
|
169
|
+
globalManager = new LockStateManager(lockDir);
|
|
170
|
+
}
|
|
171
|
+
return globalManager;
|
|
172
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Management Utilities for SAP ADT Stateful Operations
|
|
3
|
+
*
|
|
4
|
+
* This module provides centralized utilities for managing stateful sessions
|
|
5
|
+
* when interacting with SAP ADT (ABAP Development Tools) API.
|
|
6
|
+
*
|
|
7
|
+
* Key concepts:
|
|
8
|
+
* - Session ID (sap-adt-connection-id): Unique identifier for the entire operation
|
|
9
|
+
* Must be the SAME for all requests (LOCK → PUT → UNLOCK) within one operation
|
|
10
|
+
*
|
|
11
|
+
* - Request ID (sap-adt-request-id): Unique identifier for each individual request
|
|
12
|
+
* Must be DIFFERENT for every request within a session
|
|
13
|
+
*
|
|
14
|
+
* - Stateful Session: Required for operations that modify ABAP objects
|
|
15
|
+
* (create/update source code, lock management, transport handling)
|
|
16
|
+
*/
|
|
17
|
+
import { AxiosResponse } from 'axios';
|
|
18
|
+
import { AbapConnection } from '@mcp-abap-adt/connection';
|
|
19
|
+
/**
|
|
20
|
+
* Generate unique session ID for ADT stateful operations
|
|
21
|
+
*
|
|
22
|
+
* This ID must be used consistently across all requests within a single operation
|
|
23
|
+
* (e.g., LOCK → PUT → UNLOCK sequence). Using different session IDs will cause
|
|
24
|
+
* "invalid lock handle" errors.
|
|
25
|
+
*
|
|
26
|
+
* Format: 32-character hexadecimal string (UUID without hyphens)
|
|
27
|
+
* Example: "a1b2c3d4e5f67890123456789abcdef0"
|
|
28
|
+
*
|
|
29
|
+
* @returns Unique session ID for sap-adt-connection-id header
|
|
30
|
+
*/
|
|
31
|
+
export declare function generateSessionId(): string;
|
|
32
|
+
/**
|
|
33
|
+
* Generate unique request ID for each individual ADT request
|
|
34
|
+
*
|
|
35
|
+
* Each request within a session must have a different request ID.
|
|
36
|
+
* This is used for tracking and debugging purposes.
|
|
37
|
+
*
|
|
38
|
+
* Format: 32-character hexadecimal string (UUID without hyphens)
|
|
39
|
+
* Example: "f0e1d2c3b4a5968778695a4b3c2d1e0f"
|
|
40
|
+
*
|
|
41
|
+
* @returns Unique request ID for sap-adt-request-id header
|
|
42
|
+
*/
|
|
43
|
+
export declare function generateRequestId(): string;
|
|
44
|
+
/**
|
|
45
|
+
* Make ADT request with stateful session management
|
|
46
|
+
*
|
|
47
|
+
* This is a wrapper around connection.makeAdtRequest that automatically adds
|
|
48
|
+
* the required headers for stateful ADT operations:
|
|
49
|
+
* - sap-adt-connection-id: Session identifier (must be same for all requests)
|
|
50
|
+
* - sap-adt-request-id: Request identifier (must be unique for each request)
|
|
51
|
+
* - x-sap-adt-sessiontype: "stateful" (declares stateful session mode)
|
|
52
|
+
* - X-sap-adt-profiling: "server-time" (optional performance profiling)
|
|
53
|
+
*
|
|
54
|
+
* CRITICAL RULES:
|
|
55
|
+
* 1. Use the SAME sessionId for all requests in one operation (LOCK/PUT/UNLOCK)
|
|
56
|
+
* 2. Each call to this function generates a NEW unique request ID automatically
|
|
57
|
+
* 3. Cookies are managed automatically by BaseAbapConnection
|
|
58
|
+
* 4. Always unlock in try/finally block to prevent orphaned locks
|
|
59
|
+
*
|
|
60
|
+
* @param connection - ABAP connection instance
|
|
61
|
+
* @param url - ADT API endpoint URL (can be relative or absolute)
|
|
62
|
+
* @param method - HTTP method ('GET', 'POST', 'PUT', 'DELETE')
|
|
63
|
+
* @param sessionId - Session ID from generateSessionId() - MUST be same for all related requests
|
|
64
|
+
* @param data - Optional request body (source code, XML payload, etc.)
|
|
65
|
+
* @param additionalHeaders - Optional custom headers to merge with session headers
|
|
66
|
+
* @returns Promise with Axios response
|
|
67
|
+
*/
|
|
68
|
+
export declare function makeAdtRequestWithSession(connection: AbapConnection, url: string, method: string, sessionId: string, data?: any, additionalHeaders?: Record<string, string>): Promise<AxiosResponse>;
|
|
69
|
+
//# sourceMappingURL=sessionUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionUtils.d.ts","sourceRoot":"","sources":["../../src/utils/sessionUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,cAAc,EAC1B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,GAAG,EACV,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACzC,OAAO,CAAC,aAAa,CAAC,CA2BxB"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Session Management Utilities for SAP ADT Stateful Operations
|
|
4
|
+
*
|
|
5
|
+
* This module provides centralized utilities for managing stateful sessions
|
|
6
|
+
* when interacting with SAP ADT (ABAP Development Tools) API.
|
|
7
|
+
*
|
|
8
|
+
* Key concepts:
|
|
9
|
+
* - Session ID (sap-adt-connection-id): Unique identifier for the entire operation
|
|
10
|
+
* Must be the SAME for all requests (LOCK → PUT → UNLOCK) within one operation
|
|
11
|
+
*
|
|
12
|
+
* - Request ID (sap-adt-request-id): Unique identifier for each individual request
|
|
13
|
+
* Must be DIFFERENT for every request within a session
|
|
14
|
+
*
|
|
15
|
+
* - Stateful Session: Required for operations that modify ABAP objects
|
|
16
|
+
* (create/update source code, lock management, transport handling)
|
|
17
|
+
*/
|
|
18
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
19
|
+
if (k2 === undefined) k2 = k;
|
|
20
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
21
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
22
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
23
|
+
}
|
|
24
|
+
Object.defineProperty(o, k2, desc);
|
|
25
|
+
}) : (function(o, m, k, k2) {
|
|
26
|
+
if (k2 === undefined) k2 = k;
|
|
27
|
+
o[k2] = m[k];
|
|
28
|
+
}));
|
|
29
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
30
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
31
|
+
}) : function(o, v) {
|
|
32
|
+
o["default"] = v;
|
|
33
|
+
});
|
|
34
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
35
|
+
var ownKeys = function(o) {
|
|
36
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
37
|
+
var ar = [];
|
|
38
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
39
|
+
return ar;
|
|
40
|
+
};
|
|
41
|
+
return ownKeys(o);
|
|
42
|
+
};
|
|
43
|
+
return function (mod) {
|
|
44
|
+
if (mod && mod.__esModule) return mod;
|
|
45
|
+
var result = {};
|
|
46
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
47
|
+
__setModuleDefault(result, mod);
|
|
48
|
+
return result;
|
|
49
|
+
};
|
|
50
|
+
})();
|
|
51
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
+
exports.generateSessionId = generateSessionId;
|
|
53
|
+
exports.generateRequestId = generateRequestId;
|
|
54
|
+
exports.makeAdtRequestWithSession = makeAdtRequestWithSession;
|
|
55
|
+
const crypto = __importStar(require("crypto"));
|
|
56
|
+
const connection_1 = require("@mcp-abap-adt/connection");
|
|
57
|
+
/**
|
|
58
|
+
* Generate unique session ID for ADT stateful operations
|
|
59
|
+
*
|
|
60
|
+
* This ID must be used consistently across all requests within a single operation
|
|
61
|
+
* (e.g., LOCK → PUT → UNLOCK sequence). Using different session IDs will cause
|
|
62
|
+
* "invalid lock handle" errors.
|
|
63
|
+
*
|
|
64
|
+
* Format: 32-character hexadecimal string (UUID without hyphens)
|
|
65
|
+
* Example: "a1b2c3d4e5f67890123456789abcdef0"
|
|
66
|
+
*
|
|
67
|
+
* @returns Unique session ID for sap-adt-connection-id header
|
|
68
|
+
*/
|
|
69
|
+
function generateSessionId() {
|
|
70
|
+
return crypto.randomUUID().replace(/-/g, '');
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Generate unique request ID for each individual ADT request
|
|
74
|
+
*
|
|
75
|
+
* Each request within a session must have a different request ID.
|
|
76
|
+
* This is used for tracking and debugging purposes.
|
|
77
|
+
*
|
|
78
|
+
* Format: 32-character hexadecimal string (UUID without hyphens)
|
|
79
|
+
* Example: "f0e1d2c3b4a5968778695a4b3c2d1e0f"
|
|
80
|
+
*
|
|
81
|
+
* @returns Unique request ID for sap-adt-request-id header
|
|
82
|
+
*/
|
|
83
|
+
function generateRequestId() {
|
|
84
|
+
return crypto.randomUUID().replace(/-/g, '');
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Make ADT request with stateful session management
|
|
88
|
+
*
|
|
89
|
+
* This is a wrapper around connection.makeAdtRequest that automatically adds
|
|
90
|
+
* the required headers for stateful ADT operations:
|
|
91
|
+
* - sap-adt-connection-id: Session identifier (must be same for all requests)
|
|
92
|
+
* - sap-adt-request-id: Request identifier (must be unique for each request)
|
|
93
|
+
* - x-sap-adt-sessiontype: "stateful" (declares stateful session mode)
|
|
94
|
+
* - X-sap-adt-profiling: "server-time" (optional performance profiling)
|
|
95
|
+
*
|
|
96
|
+
* CRITICAL RULES:
|
|
97
|
+
* 1. Use the SAME sessionId for all requests in one operation (LOCK/PUT/UNLOCK)
|
|
98
|
+
* 2. Each call to this function generates a NEW unique request ID automatically
|
|
99
|
+
* 3. Cookies are managed automatically by BaseAbapConnection
|
|
100
|
+
* 4. Always unlock in try/finally block to prevent orphaned locks
|
|
101
|
+
*
|
|
102
|
+
* @param connection - ABAP connection instance
|
|
103
|
+
* @param url - ADT API endpoint URL (can be relative or absolute)
|
|
104
|
+
* @param method - HTTP method ('GET', 'POST', 'PUT', 'DELETE')
|
|
105
|
+
* @param sessionId - Session ID from generateSessionId() - MUST be same for all related requests
|
|
106
|
+
* @param data - Optional request body (source code, XML payload, etc.)
|
|
107
|
+
* @param additionalHeaders - Optional custom headers to merge with session headers
|
|
108
|
+
* @returns Promise with Axios response
|
|
109
|
+
*/
|
|
110
|
+
async function makeAdtRequestWithSession(connection, url, method, sessionId, data, additionalHeaders) {
|
|
111
|
+
// Resolve to full URL if relative path provided
|
|
112
|
+
const baseUrl = await connection.getBaseUrl();
|
|
113
|
+
const fullUrl = url.startsWith('http') ? url : `${baseUrl}${url}`;
|
|
114
|
+
// Generate unique request ID for this specific request
|
|
115
|
+
const requestId = generateRequestId();
|
|
116
|
+
// Build headers with stateful session identifiers
|
|
117
|
+
const headers = {
|
|
118
|
+
'sap-adt-connection-id': sessionId, // Same for all requests in operation
|
|
119
|
+
'sap-adt-request-id': requestId, // Unique for this request
|
|
120
|
+
'x-sap-adt-sessiontype': 'stateful', // Declares stateful session
|
|
121
|
+
'X-sap-adt-profiling': 'server-time', // Performance profiling
|
|
122
|
+
...additionalHeaders // Merge any custom headers
|
|
123
|
+
};
|
|
124
|
+
// Make request using connection
|
|
125
|
+
const timeout = (0, connection_1.getTimeout)('default');
|
|
126
|
+
return connection.makeAdtRequest({
|
|
127
|
+
url: fullUrl,
|
|
128
|
+
method,
|
|
129
|
+
timeout,
|
|
130
|
+
data,
|
|
131
|
+
params: undefined,
|
|
132
|
+
headers
|
|
133
|
+
});
|
|
134
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mcp-abap-adt/adt-clients",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "ADT clients for SAP ABAP systems - Read-only, CRUD, and Management operations",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"default": "./dist/index.js"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"bin": {
|
|
14
|
+
"adt-lock-object": "./bin/lock-object.js",
|
|
15
|
+
"adt-unlock-object": "./bin/unlock-object.js",
|
|
16
|
+
"adt-manage-locks": "./bin/manage-locks.js",
|
|
17
|
+
"adt-manage-sessions": "./bin/manage-sessions.js",
|
|
18
|
+
"adt-unlock-objects": "./bin/unlock-test-objects.js"
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist",
|
|
22
|
+
"bin",
|
|
23
|
+
"README.md",
|
|
24
|
+
"LICENSE"
|
|
25
|
+
],
|
|
26
|
+
"keywords": [
|
|
27
|
+
"abap",
|
|
28
|
+
"sap",
|
|
29
|
+
"adt",
|
|
30
|
+
"clients",
|
|
31
|
+
"read-only",
|
|
32
|
+
"crud",
|
|
33
|
+
"mcp"
|
|
34
|
+
],
|
|
35
|
+
"author": "Oleksii Kyslytsia <oleksij.kyslytsja@gmail.com>",
|
|
36
|
+
"license": "MIT",
|
|
37
|
+
"homepage": "https://github.com/fr0ster/mcp-abap-adt-clients#readme",
|
|
38
|
+
"bugs": {
|
|
39
|
+
"url": "https://github.com/fr0ster/mcp-abap-adt-clients/issues"
|
|
40
|
+
},
|
|
41
|
+
"repository": {
|
|
42
|
+
"type": "git",
|
|
43
|
+
"url": "git+https://github.com/fr0ster/mcp-abap-adt-clients.git"
|
|
44
|
+
},
|
|
45
|
+
"publishConfig": {
|
|
46
|
+
"access": "public"
|
|
47
|
+
},
|
|
48
|
+
"scripts": {
|
|
49
|
+
"clean": "rm -rf dist tsconfig.tsbuildinfo",
|
|
50
|
+
"build": "npm run --silent clean && npx tsc -p tsconfig.json",
|
|
51
|
+
"build:fast": "npx tsc -p tsconfig.json",
|
|
52
|
+
"test": "jest --runInBand",
|
|
53
|
+
"test:sequential": "node scripts/run-tests-sequential.js",
|
|
54
|
+
"test:module": "node scripts/test-module.js",
|
|
55
|
+
"prepublishOnly": "npm run build"
|
|
56
|
+
},
|
|
57
|
+
"engines": {
|
|
58
|
+
"node": ">=18.0.0"
|
|
59
|
+
},
|
|
60
|
+
"dependencies": {
|
|
61
|
+
"@mcp-abap-adt/connection": "^0.1.3",
|
|
62
|
+
"fast-xml-parser": "^5.2.5",
|
|
63
|
+
"yaml": "^2.3.4"
|
|
64
|
+
},
|
|
65
|
+
"devDependencies": {
|
|
66
|
+
"@types/jest": "^30.0.0",
|
|
67
|
+
"@types/node": "^24.2.1",
|
|
68
|
+
"dotenv": "^17.2.1",
|
|
69
|
+
"jest": "^30.0.5",
|
|
70
|
+
"ts-jest": "^29.4.1",
|
|
71
|
+
"typescript": "^5.9.2",
|
|
72
|
+
"yaml": "^2.8.1"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|