@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,386 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* PackageBuilder - Fluent API for package operations with Promise chaining
|
|
4
|
+
*
|
|
5
|
+
* Supports:
|
|
6
|
+
* - Method chaining: builder.validate().then(b => b.create()).then(b => b.check())...
|
|
7
|
+
* - Error handling: .catch() for error callbacks
|
|
8
|
+
* - Cleanup: .finally() for guaranteed execution
|
|
9
|
+
* - Result storage: all results stored in logger/state
|
|
10
|
+
* - Chain interruption: chain stops on first error (standard Promise behavior)
|
|
11
|
+
*
|
|
12
|
+
* Available operations: validate, create, read, check, lock, unlock, update
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const builder = new PackageBuilder(connection, logger, {
|
|
17
|
+
* packageName: 'Z_TEST_PKG',
|
|
18
|
+
* superPackage: 'ZOK_TEST_PKG_01'
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* await builder
|
|
22
|
+
* .validate()
|
|
23
|
+
* .then(b => b.create())
|
|
24
|
+
* .then(b => b.check())
|
|
25
|
+
* .catch(error => {
|
|
26
|
+
* logger.error('Operation failed:', error);
|
|
27
|
+
* });
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.PackageBuilder = void 0;
|
|
32
|
+
const create_1 = require("./create");
|
|
33
|
+
const validation_1 = require("./validation");
|
|
34
|
+
const check_1 = require("./check");
|
|
35
|
+
const read_1 = require("./read");
|
|
36
|
+
const lock_1 = require("./lock");
|
|
37
|
+
const unlock_1 = require("./unlock");
|
|
38
|
+
const update_1 = require("./update");
|
|
39
|
+
const sessionUtils_1 = require("../../utils/sessionUtils");
|
|
40
|
+
class PackageBuilder {
|
|
41
|
+
connection;
|
|
42
|
+
logger;
|
|
43
|
+
config;
|
|
44
|
+
state;
|
|
45
|
+
constructor(connection, logger, config) {
|
|
46
|
+
this.connection = connection;
|
|
47
|
+
this.logger = logger;
|
|
48
|
+
this.config = { ...config };
|
|
49
|
+
this.state = {
|
|
50
|
+
errors: [],
|
|
51
|
+
sessionId: config.sessionId || (0, sessionUtils_1.generateSessionId)()
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
// Builder methods - return this for chaining
|
|
55
|
+
setSuperPackage(superPackage) {
|
|
56
|
+
this.config.superPackage = superPackage;
|
|
57
|
+
this.logger.debug?.('Super package set:', superPackage);
|
|
58
|
+
return this;
|
|
59
|
+
}
|
|
60
|
+
setDescription(description) {
|
|
61
|
+
this.config.description = description;
|
|
62
|
+
this.logger.debug?.('Description set:', description);
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
setPackageType(packageType) {
|
|
66
|
+
this.config.packageType = packageType;
|
|
67
|
+
this.logger.debug?.('Package type set:', packageType);
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
setSoftwareComponent(softwareComponent) {
|
|
71
|
+
this.config.softwareComponent = softwareComponent;
|
|
72
|
+
this.logger.debug?.('Software component set:', softwareComponent);
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
setTransportLayer(transportLayer) {
|
|
76
|
+
this.config.transportLayer = transportLayer;
|
|
77
|
+
this.logger.debug?.('Transport layer set:', transportLayer);
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
setRequest(transportRequest) {
|
|
81
|
+
this.config.transportRequest = transportRequest;
|
|
82
|
+
this.logger.debug?.('Transport request set:', transportRequest);
|
|
83
|
+
return this;
|
|
84
|
+
}
|
|
85
|
+
setApplicationComponent(applicationComponent) {
|
|
86
|
+
this.config.applicationComponent = applicationComponent;
|
|
87
|
+
this.logger.debug?.('Application component set:', applicationComponent);
|
|
88
|
+
return this;
|
|
89
|
+
}
|
|
90
|
+
setResponsible(responsible) {
|
|
91
|
+
this.config.responsible = responsible;
|
|
92
|
+
this.logger.debug?.('Responsible set:', responsible);
|
|
93
|
+
return this;
|
|
94
|
+
}
|
|
95
|
+
// Operation methods - return Promise<this> for Promise chaining
|
|
96
|
+
async validate() {
|
|
97
|
+
try {
|
|
98
|
+
this.logger.info?.('Validating package:', this.config.packageName);
|
|
99
|
+
const params = {
|
|
100
|
+
package_name: this.config.packageName,
|
|
101
|
+
super_package: this.config.superPackage,
|
|
102
|
+
description: this.config.description,
|
|
103
|
+
package_type: this.config.packageType,
|
|
104
|
+
software_component: this.config.softwareComponent,
|
|
105
|
+
transport_layer: this.config.transportLayer,
|
|
106
|
+
transport_request: this.config.transportRequest,
|
|
107
|
+
application_component: this.config.applicationComponent,
|
|
108
|
+
responsible: this.config.responsible
|
|
109
|
+
};
|
|
110
|
+
// Basic validation
|
|
111
|
+
try {
|
|
112
|
+
await (0, validation_1.validatePackageBasic)(this.connection, params);
|
|
113
|
+
this.state.validationResult = { basic: undefined };
|
|
114
|
+
this.logger.info?.('Package basic validation successful');
|
|
115
|
+
}
|
|
116
|
+
catch (validationError) {
|
|
117
|
+
// If package already exists, log warning but continue (cleanup may have failed)
|
|
118
|
+
const errorMsg = validationError.message || '';
|
|
119
|
+
if (errorMsg.includes('already exists') || errorMsg.includes('PAK042')) {
|
|
120
|
+
this.logger.warn?.(`Package ${this.config.packageName} already exists. Validation skipped.`);
|
|
121
|
+
this.state.validationResult = { basic: undefined }; // Mark as successful to continue
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
throw validationError; // Re-throw other validation errors
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// Full validation only if both transport layer and software component are explicitly provided
|
|
128
|
+
// SAP requires transport layer for full validation, so we skip it if not provided
|
|
129
|
+
if (this.config.transportLayer && this.config.softwareComponent) {
|
|
130
|
+
await (0, validation_1.validatePackageFull)(this.connection, params, this.config.softwareComponent, this.config.transportLayer);
|
|
131
|
+
this.state.validationResult.full = undefined;
|
|
132
|
+
this.logger.info?.('Package full validation successful');
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
this.logger.info?.('Skipping full validation (transport layer or software component not provided)');
|
|
136
|
+
}
|
|
137
|
+
return this;
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
this.state.errors.push({
|
|
141
|
+
method: 'validate',
|
|
142
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
143
|
+
timestamp: new Date()
|
|
144
|
+
});
|
|
145
|
+
this.logger.error?.('Validation failed:', error);
|
|
146
|
+
throw error;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
async create() {
|
|
150
|
+
try {
|
|
151
|
+
if (!this.config.superPackage) {
|
|
152
|
+
throw new Error('Super package is required');
|
|
153
|
+
}
|
|
154
|
+
this.logger.info?.('Creating package:', this.config.packageName);
|
|
155
|
+
const params = {
|
|
156
|
+
package_name: this.config.packageName,
|
|
157
|
+
super_package: this.config.superPackage,
|
|
158
|
+
description: this.config.description,
|
|
159
|
+
package_type: this.config.packageType,
|
|
160
|
+
software_component: this.config.softwareComponent,
|
|
161
|
+
transport_layer: this.config.transportLayer,
|
|
162
|
+
transport_request: this.config.transportRequest,
|
|
163
|
+
application_component: this.config.applicationComponent,
|
|
164
|
+
responsible: this.config.responsible
|
|
165
|
+
};
|
|
166
|
+
const result = await (0, create_1.createPackage)(this.connection, params);
|
|
167
|
+
this.state.createResult = result;
|
|
168
|
+
this.logger.info?.('Package created successfully:', result.status);
|
|
169
|
+
return this;
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
const errorMsg = error.message || '';
|
|
173
|
+
// If package already exists, try to read it instead of failing
|
|
174
|
+
if (errorMsg.includes('already exists') || errorMsg.includes('PAK042')) {
|
|
175
|
+
this.logger.warn?.(`Package ${this.config.packageName} already exists. Attempting to read existing package.`);
|
|
176
|
+
try {
|
|
177
|
+
const existingResult = await (0, read_1.getPackage)(this.connection, this.config.packageName);
|
|
178
|
+
this.state.createResult = existingResult; // Store read result as create result
|
|
179
|
+
this.logger.info?.('Package already exists, read successfully:', existingResult.status);
|
|
180
|
+
return this;
|
|
181
|
+
}
|
|
182
|
+
catch (readError) {
|
|
183
|
+
// If read also fails, throw original create error
|
|
184
|
+
this.state.errors.push({
|
|
185
|
+
method: 'create',
|
|
186
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
187
|
+
timestamp: new Date()
|
|
188
|
+
});
|
|
189
|
+
this.logger.error?.('Create failed and read also failed:', error);
|
|
190
|
+
throw error;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
// For other errors, throw as usual
|
|
194
|
+
this.state.errors.push({
|
|
195
|
+
method: 'create',
|
|
196
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
197
|
+
timestamp: new Date()
|
|
198
|
+
});
|
|
199
|
+
this.logger.error?.('Create failed:', error);
|
|
200
|
+
throw error;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
async read() {
|
|
204
|
+
try {
|
|
205
|
+
this.logger.info?.('Reading package:', this.config.packageName);
|
|
206
|
+
const result = await (0, read_1.getPackage)(this.connection, this.config.packageName);
|
|
207
|
+
this.state.readResult = result;
|
|
208
|
+
this.logger.info?.('Package read successfully:', result.status);
|
|
209
|
+
return this;
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
this.state.errors.push({
|
|
213
|
+
method: 'read',
|
|
214
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
215
|
+
timestamp: new Date()
|
|
216
|
+
});
|
|
217
|
+
this.logger.error?.('Read failed:', error);
|
|
218
|
+
throw error;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
async check() {
|
|
222
|
+
try {
|
|
223
|
+
this.logger.info?.('Checking package:', this.config.packageName);
|
|
224
|
+
await (0, check_1.checkPackage)(this.connection, this.config.packageName);
|
|
225
|
+
this.state.checkResult = undefined;
|
|
226
|
+
this.logger.info?.('Package check successful');
|
|
227
|
+
return this;
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
this.state.errors.push({
|
|
231
|
+
method: 'check',
|
|
232
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
233
|
+
timestamp: new Date()
|
|
234
|
+
});
|
|
235
|
+
this.logger.error?.('Check failed:', error);
|
|
236
|
+
throw error;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
async lock() {
|
|
240
|
+
try {
|
|
241
|
+
if (!this.state.sessionId) {
|
|
242
|
+
this.state.sessionId = (0, sessionUtils_1.generateSessionId)();
|
|
243
|
+
}
|
|
244
|
+
this.logger.info?.('Locking package:', this.config.packageName);
|
|
245
|
+
const lockHandle = await (0, lock_1.lockPackage)(this.connection, this.config.packageName, this.state.sessionId);
|
|
246
|
+
this.state.lockHandle = lockHandle;
|
|
247
|
+
this.state.lockResult = lockHandle;
|
|
248
|
+
// Register lock in persistent storage if callback provided
|
|
249
|
+
if (this.config.onLock) {
|
|
250
|
+
this.config.onLock(lockHandle, this.state.sessionId);
|
|
251
|
+
}
|
|
252
|
+
this.logger.info?.('Package locked successfully, lock handle:', lockHandle);
|
|
253
|
+
return this;
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
this.state.errors.push({
|
|
257
|
+
method: 'lock',
|
|
258
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
259
|
+
timestamp: new Date()
|
|
260
|
+
});
|
|
261
|
+
this.logger.error?.('Lock failed:', error);
|
|
262
|
+
throw error;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
async unlock() {
|
|
266
|
+
try {
|
|
267
|
+
if (!this.state.sessionId) {
|
|
268
|
+
this.state.sessionId = (0, sessionUtils_1.generateSessionId)();
|
|
269
|
+
}
|
|
270
|
+
if (!this.state.lockHandle) {
|
|
271
|
+
throw new Error('Package must be locked before unlocking. Call lock() first.');
|
|
272
|
+
}
|
|
273
|
+
this.logger.info?.('Unlocking package:', this.config.packageName);
|
|
274
|
+
const result = await (0, unlock_1.unlockPackage)(this.connection, this.config.packageName, this.state.lockHandle, this.state.sessionId);
|
|
275
|
+
this.state.unlockResult = result;
|
|
276
|
+
this.state.lockHandle = undefined;
|
|
277
|
+
this.logger.info?.('Package unlocked successfully');
|
|
278
|
+
return this;
|
|
279
|
+
}
|
|
280
|
+
catch (error) {
|
|
281
|
+
this.state.errors.push({
|
|
282
|
+
method: 'unlock',
|
|
283
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
284
|
+
timestamp: new Date()
|
|
285
|
+
});
|
|
286
|
+
this.logger.error?.('Unlock failed:', error);
|
|
287
|
+
throw error;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
async update() {
|
|
291
|
+
try {
|
|
292
|
+
if (!this.state.sessionId) {
|
|
293
|
+
this.state.sessionId = (0, sessionUtils_1.generateSessionId)();
|
|
294
|
+
}
|
|
295
|
+
if (!this.state.lockHandle) {
|
|
296
|
+
throw new Error('Package must be locked before updating. Call lock() first.');
|
|
297
|
+
}
|
|
298
|
+
const descriptionToUpdate = this.config.updatedDescription || this.config.description;
|
|
299
|
+
if (!descriptionToUpdate) {
|
|
300
|
+
throw new Error('Description or updatedDescription is required for package update');
|
|
301
|
+
}
|
|
302
|
+
this.logger.info?.('Updating package description:', this.config.packageName);
|
|
303
|
+
const result = await (0, update_1.updatePackageDescription)(this.connection, this.config.packageName, descriptionToUpdate, this.state.lockHandle, this.state.sessionId);
|
|
304
|
+
this.state.updateResult = result;
|
|
305
|
+
this.logger.info?.('Package description updated successfully:', result.status);
|
|
306
|
+
return this;
|
|
307
|
+
}
|
|
308
|
+
catch (error) {
|
|
309
|
+
this.state.errors.push({
|
|
310
|
+
method: 'update',
|
|
311
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
312
|
+
timestamp: new Date()
|
|
313
|
+
});
|
|
314
|
+
this.logger.error?.('Update failed:', error);
|
|
315
|
+
throw error;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
async forceUnlock() {
|
|
319
|
+
if (!this.state.lockHandle) {
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
if (!this.state.sessionId) {
|
|
323
|
+
this.state.sessionId = (0, sessionUtils_1.generateSessionId)();
|
|
324
|
+
}
|
|
325
|
+
try {
|
|
326
|
+
await (0, unlock_1.unlockPackage)(this.connection, this.config.packageName, this.state.lockHandle, this.state.sessionId);
|
|
327
|
+
this.logger.info?.('Force unlock successful for', this.config.packageName);
|
|
328
|
+
}
|
|
329
|
+
catch (error) {
|
|
330
|
+
this.logger.warn?.('Force unlock failed:', error);
|
|
331
|
+
}
|
|
332
|
+
finally {
|
|
333
|
+
this.state.lockHandle = undefined;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
// Getters for accessing results
|
|
337
|
+
getState() {
|
|
338
|
+
return { ...this.state };
|
|
339
|
+
}
|
|
340
|
+
getPackageName() {
|
|
341
|
+
return this.config.packageName;
|
|
342
|
+
}
|
|
343
|
+
getValidationResult() {
|
|
344
|
+
return this.state.validationResult;
|
|
345
|
+
}
|
|
346
|
+
getCreateResult() {
|
|
347
|
+
return this.state.createResult;
|
|
348
|
+
}
|
|
349
|
+
getReadResult() {
|
|
350
|
+
return this.state.readResult;
|
|
351
|
+
}
|
|
352
|
+
getCheckResult() {
|
|
353
|
+
return this.state.checkResult;
|
|
354
|
+
}
|
|
355
|
+
getErrors() {
|
|
356
|
+
return [...this.state.errors];
|
|
357
|
+
}
|
|
358
|
+
getSessionId() {
|
|
359
|
+
return this.state.sessionId;
|
|
360
|
+
}
|
|
361
|
+
getLockHandle() {
|
|
362
|
+
return this.state.lockHandle;
|
|
363
|
+
}
|
|
364
|
+
getLockResult() {
|
|
365
|
+
return this.state.lockResult;
|
|
366
|
+
}
|
|
367
|
+
getUnlockResult() {
|
|
368
|
+
return this.state.unlockResult;
|
|
369
|
+
}
|
|
370
|
+
getUpdateResult() {
|
|
371
|
+
return this.state.updateResult;
|
|
372
|
+
}
|
|
373
|
+
getResults() {
|
|
374
|
+
return {
|
|
375
|
+
validate: this.state.validationResult,
|
|
376
|
+
create: this.state.createResult,
|
|
377
|
+
read: this.state.readResult,
|
|
378
|
+
check: this.state.checkResult,
|
|
379
|
+
lock: this.state.lockResult,
|
|
380
|
+
unlock: this.state.unlockResult,
|
|
381
|
+
update: this.state.updateResult,
|
|
382
|
+
errors: [...this.state.errors]
|
|
383
|
+
};
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
exports.PackageBuilder = PackageBuilder;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package check operations
|
|
3
|
+
*/
|
|
4
|
+
import { AbapConnection } from '@mcp-abap-adt/connection';
|
|
5
|
+
/**
|
|
6
|
+
* Check package for errors
|
|
7
|
+
*/
|
|
8
|
+
export declare function checkPackage(connection: AbapConnection, packageName: string): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/core/package/check.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAc,MAAM,0BAA0B,CAAC;AAGtE;;GAEG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,cAAc,EAC1B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAoBf"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Package check operations
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.checkPackage = checkPackage;
|
|
7
|
+
const connection_1 = require("@mcp-abap-adt/connection");
|
|
8
|
+
/**
|
|
9
|
+
* Check package for errors
|
|
10
|
+
*/
|
|
11
|
+
async function checkPackage(connection, packageName) {
|
|
12
|
+
const baseUrl = await connection.getBaseUrl();
|
|
13
|
+
const url = `${baseUrl}/sap/bc/adt/checkruns`;
|
|
14
|
+
const xmlBody = `<?xml version="1.0" encoding="UTF-8"?><chkrun:checkObjectList xmlns:chkrun="http://www.sap.com/adt/checkrun" xmlns:adtcore="http://www.sap.com/adt/core">
|
|
15
|
+
|
|
16
|
+
<chkrun:checkObject adtcore:uri="/sap/bc/adt/packages/${packageName.toLowerCase()}" chkrun:version="active"/>
|
|
17
|
+
|
|
18
|
+
</chkrun:checkObjectList>`;
|
|
19
|
+
await connection.makeAdtRequest({
|
|
20
|
+
url,
|
|
21
|
+
method: 'POST',
|
|
22
|
+
timeout: (0, connection_1.getTimeout)('default'),
|
|
23
|
+
data: xmlBody,
|
|
24
|
+
headers: {
|
|
25
|
+
'Accept': 'application/vnd.sap.adt.checkmessages+xml',
|
|
26
|
+
'Content-Type': 'application/vnd.sap.adt.checkobjects+xml'
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package create operations
|
|
3
|
+
*/
|
|
4
|
+
import { AbapConnection } from '@mcp-abap-adt/connection';
|
|
5
|
+
import { AxiosResponse } from 'axios';
|
|
6
|
+
import { CreatePackageParams } from './types';
|
|
7
|
+
/**
|
|
8
|
+
* Create ABAP package
|
|
9
|
+
* Full workflow: validate basic -> check transport -> validate full -> create -> check
|
|
10
|
+
*/
|
|
11
|
+
export declare function createPackage(connection: AbapConnection, params: CreatePackageParams): Promise<AxiosResponse>;
|
|
12
|
+
//# sourceMappingURL=create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/core/package/create.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAc,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AA6G9C;;;GAGG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAwDxB"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Package create operations
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createPackage = createPackage;
|
|
7
|
+
const connection_1 = require("@mcp-abap-adt/connection");
|
|
8
|
+
const fast_xml_parser_1 = require("fast-xml-parser");
|
|
9
|
+
const validation_1 = require("./validation");
|
|
10
|
+
const transportCheck_1 = require("./transportCheck");
|
|
11
|
+
const check_1 = require("./check");
|
|
12
|
+
const systemInfo_1 = require("../shared/systemInfo");
|
|
13
|
+
/**
|
|
14
|
+
* Step 4: Create package
|
|
15
|
+
* Only allowed parameters: name, description, superPackage, packageType, softwareComponent, transportLayer
|
|
16
|
+
* masterSystem/responsible are derived via getSystemInformation (cloud) or env fallbacks
|
|
17
|
+
*/
|
|
18
|
+
async function createPackageInternal(connection, args, swcomp, transportLayer, transportRequest) {
|
|
19
|
+
const baseUrl = await connection.getBaseUrl();
|
|
20
|
+
const url = `${baseUrl}/sap/bc/adt/packages`;
|
|
21
|
+
// Escape XML special characters in description
|
|
22
|
+
const escapeXml = (str) => {
|
|
23
|
+
if (!str)
|
|
24
|
+
return '';
|
|
25
|
+
return str
|
|
26
|
+
.replace(/&/g, '&')
|
|
27
|
+
.replace(/</g, '<')
|
|
28
|
+
.replace(/>/g, '>')
|
|
29
|
+
.replace(/"/g, '"')
|
|
30
|
+
.replace(/'/g, ''');
|
|
31
|
+
};
|
|
32
|
+
const description = escapeXml(args.description || args.package_name);
|
|
33
|
+
const packageType = args.package_type || 'development';
|
|
34
|
+
// Get master system / responsible from ADT metadata helper (cloud) with env fallback
|
|
35
|
+
const systemInfo = await (0, systemInfo_1.getSystemInformation)(connection);
|
|
36
|
+
const masterSystem = systemInfo?.systemID;
|
|
37
|
+
const responsibleUser = args.responsible ||
|
|
38
|
+
systemInfo?.userName ||
|
|
39
|
+
process.env.SAP_USERNAME ||
|
|
40
|
+
process.env.SAP_USER ||
|
|
41
|
+
'';
|
|
42
|
+
// All attributes must be present in XML body, even if empty
|
|
43
|
+
// Software component - always include, with name attribute if provided
|
|
44
|
+
const softwareComponentXml = swcomp
|
|
45
|
+
? `<pak:softwareComponent pak:name="${escapeXml(swcomp)}"/>`
|
|
46
|
+
: '<pak:softwareComponent/>';
|
|
47
|
+
// Transport layer - always include, with name attribute if provided
|
|
48
|
+
const transportLayerXml = transportLayer
|
|
49
|
+
? `<pak:transportLayer pak:name="${escapeXml(transportLayer)}"/>`
|
|
50
|
+
: '<pak:transportLayer/>';
|
|
51
|
+
// Build XML with all required attributes
|
|
52
|
+
const responsibleAttr = responsibleUser ? ` adtcore:responsible="${escapeXml(responsibleUser)}"` : '';
|
|
53
|
+
const masterSystemAttr = masterSystem ? ` adtcore:masterSystem="${escapeXml(masterSystem)}"` : '';
|
|
54
|
+
// Application component - always include, with name attribute if provided
|
|
55
|
+
const applicationComponentXml = args.application_component
|
|
56
|
+
? `<pak:applicationComponent pak:name="${escapeXml(args.application_component)}"/>`
|
|
57
|
+
: '<pak:applicationComponent/>';
|
|
58
|
+
const xmlBody = `<?xml version="1.0" encoding="UTF-8"?><pak:package xmlns:pak="http://www.sap.com/adt/packages" xmlns:adtcore="http://www.sap.com/adt/core" adtcore:description="${description}" adtcore:language="EN" adtcore:name="${args.package_name}" adtcore:type="DEVC/K" adtcore:masterLanguage="EN"${masterSystemAttr}${responsibleAttr}>
|
|
59
|
+
|
|
60
|
+
<adtcore:packageRef adtcore:name="${args.package_name}"/>
|
|
61
|
+
|
|
62
|
+
<pak:attributes pak:isEncapsulated="false" pak:packageType="${packageType}" pak:recordChanges="false"/>
|
|
63
|
+
|
|
64
|
+
<pak:superPackage adtcore:name="${args.super_package}"/>
|
|
65
|
+
|
|
66
|
+
${applicationComponentXml}
|
|
67
|
+
|
|
68
|
+
<pak:transport>
|
|
69
|
+
|
|
70
|
+
${softwareComponentXml}
|
|
71
|
+
|
|
72
|
+
${transportLayerXml}
|
|
73
|
+
|
|
74
|
+
</pak:transport>
|
|
75
|
+
|
|
76
|
+
<pak:translation/>
|
|
77
|
+
|
|
78
|
+
<pak:useAccesses/>
|
|
79
|
+
|
|
80
|
+
<pak:packageInterfaces/>
|
|
81
|
+
|
|
82
|
+
<pak:subPackages/>
|
|
83
|
+
|
|
84
|
+
</pak:package>`;
|
|
85
|
+
const queryParams = transportRequest ? { corrNr: transportRequest } : undefined;
|
|
86
|
+
const response = await connection.makeAdtRequest({
|
|
87
|
+
url,
|
|
88
|
+
method: 'POST',
|
|
89
|
+
timeout: (0, connection_1.getTimeout)('default'),
|
|
90
|
+
data: xmlBody,
|
|
91
|
+
params: queryParams,
|
|
92
|
+
headers: {
|
|
93
|
+
'Accept': 'application/vnd.sap.adt.packages.v2+xml, application/vnd.sap.adt.packages.v1+xml',
|
|
94
|
+
'Content-Type': 'application/vnd.sap.adt.packages.v2+xml'
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
const parser = new fast_xml_parser_1.XMLParser({ ignoreAttributes: false, attributeNamePrefix: '' });
|
|
98
|
+
const result = parser.parse(response.data);
|
|
99
|
+
return result['pak:package'];
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Create ABAP package
|
|
103
|
+
* Full workflow: validate basic -> check transport -> validate full -> create -> check
|
|
104
|
+
*/
|
|
105
|
+
async function createPackage(connection, params) {
|
|
106
|
+
if (!params.package_name) {
|
|
107
|
+
throw new Error('Package name is required');
|
|
108
|
+
}
|
|
109
|
+
if (!params.super_package) {
|
|
110
|
+
throw new Error('Super package (parent package) is required');
|
|
111
|
+
}
|
|
112
|
+
// software_component and transport_layer can be empty/undefined
|
|
113
|
+
const swcomp = params.software_component;
|
|
114
|
+
const transportLayer = params.transport_layer;
|
|
115
|
+
try {
|
|
116
|
+
await (0, validation_1.validatePackageBasic)(connection, params);
|
|
117
|
+
let transportRequest = params.transport_request;
|
|
118
|
+
if (transportLayer && !transportRequest) {
|
|
119
|
+
const availableTransports = await (0, transportCheck_1.checkTransportRequirements)(connection, params, transportLayer);
|
|
120
|
+
if (availableTransports.length > 0) {
|
|
121
|
+
transportRequest = availableTransports[0];
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (transportLayer && !transportRequest) {
|
|
125
|
+
throw new Error('Transport request is required when transport_layer is specified. Please provide transport_request parameter or create a transport first.');
|
|
126
|
+
}
|
|
127
|
+
// Full validation only if both swcomp and transportLayer are provided
|
|
128
|
+
// Otherwise SAP will complain about missing transport layer
|
|
129
|
+
if (swcomp && transportLayer) {
|
|
130
|
+
await (0, validation_1.validatePackageFull)(connection, params, swcomp, transportLayer);
|
|
131
|
+
}
|
|
132
|
+
// In XML body, all attributes must be present (even if empty)
|
|
133
|
+
// Pass empty strings to createPackageInternal so XML includes all elements
|
|
134
|
+
const createResponse = await createPackageInternal(connection, params, swcomp || '', transportLayer || '', transportRequest);
|
|
135
|
+
await (0, check_1.checkPackage)(connection, params.package_name);
|
|
136
|
+
// Return the real response from SAP (from initial POST)
|
|
137
|
+
return createResponse;
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
const errorMessage = error.response?.data
|
|
141
|
+
? (typeof error.response.data === 'string' ? error.response.data : JSON.stringify(error.response.data))
|
|
142
|
+
: error.message;
|
|
143
|
+
throw new Error(`Failed to create package ${params.package_name}: ${errorMessage}`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package delete operations
|
|
3
|
+
*/
|
|
4
|
+
import { AbapConnection } from '@mcp-abap-adt/connection';
|
|
5
|
+
import { AxiosResponse } from 'axios';
|
|
6
|
+
export interface DeletePackageParams {
|
|
7
|
+
package_name: string;
|
|
8
|
+
transport_request?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Check if package can be deleted (deletion check)
|
|
12
|
+
* Returns response with isDeletable flag
|
|
13
|
+
*/
|
|
14
|
+
export declare function checkPackageDeletion(connection: AbapConnection, params: DeletePackageParams): Promise<AxiosResponse>;
|
|
15
|
+
/**
|
|
16
|
+
* Parse deletion check response to get isDeletable flag
|
|
17
|
+
*/
|
|
18
|
+
export declare function parsePackageDeletionCheck(response: AxiosResponse): {
|
|
19
|
+
isDeletable: boolean;
|
|
20
|
+
message?: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Delete ABAP package using ADT deletion API
|
|
24
|
+
* For packages, empty transportNumber tag may be required
|
|
25
|
+
*/
|
|
26
|
+
export declare function deletePackage(connection: AbapConnection, params: DeletePackageParams): Promise<AxiosResponse>;
|
|
27
|
+
//# sourceMappingURL=delete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/core/package/delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAc,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAItC,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,aAAa,CAAC,CA6BxB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,aAAa,GAAG;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAqB7G;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,aAAa,CAAC,CA+ExB"}
|