@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 @@
|
|
|
1
|
+
{"version":3,"file":"TableBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/table/TableBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TableBuilder - Fluent API for table operations with Promise chaining
|
|
4
|
+
*
|
|
5
|
+
* Supports:
|
|
6
|
+
* - Method chaining: builder.create().then(b => b.lock()).then(b => b.update())...
|
|
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
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const builder = new TableBuilder(connection, logger, {
|
|
15
|
+
* tableName: 'Z_TEST_TABLE',
|
|
16
|
+
* packageName: 'ZOK_TEST_PKG_01'
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* await builder
|
|
20
|
+
* .setDdlCode('@AbapCatalog.tableType : #TRANSPARENT\n...')
|
|
21
|
+
* .create()
|
|
22
|
+
* .then(b => b.lock())
|
|
23
|
+
* .then(b => b.update())
|
|
24
|
+
* .then(b => b.check())
|
|
25
|
+
* .then(b => b.unlock())
|
|
26
|
+
* .then(b => b.activate())
|
|
27
|
+
* .catch(error => {
|
|
28
|
+
* logger.error('Operation failed:', error);
|
|
29
|
+
* });
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
+
exports.TableBuilder = void 0;
|
|
34
|
+
const sessionUtils_1 = require("../../utils/sessionUtils");
|
|
35
|
+
const create_1 = require("./create");
|
|
36
|
+
const lock_1 = require("./lock");
|
|
37
|
+
const update_1 = require("./update");
|
|
38
|
+
const check_1 = require("./check");
|
|
39
|
+
const unlock_1 = require("./unlock");
|
|
40
|
+
const activation_1 = require("./activation");
|
|
41
|
+
const validation_1 = require("./validation");
|
|
42
|
+
const read_1 = require("./read");
|
|
43
|
+
class TableBuilder {
|
|
44
|
+
connection;
|
|
45
|
+
logger;
|
|
46
|
+
config;
|
|
47
|
+
lockHandle;
|
|
48
|
+
sessionId;
|
|
49
|
+
state;
|
|
50
|
+
constructor(connection, logger, config) {
|
|
51
|
+
this.connection = connection;
|
|
52
|
+
this.logger = logger;
|
|
53
|
+
this.config = { ...config };
|
|
54
|
+
this.sessionId = config.sessionId || (0, sessionUtils_1.generateSessionId)();
|
|
55
|
+
this.state = {
|
|
56
|
+
errors: []
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
// Builder methods - return this for chaining
|
|
60
|
+
setPackage(packageName) {
|
|
61
|
+
this.config.packageName = packageName;
|
|
62
|
+
this.logger.debug?.('Package set:', packageName);
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
setRequest(transportRequest) {
|
|
66
|
+
this.config.transportRequest = transportRequest;
|
|
67
|
+
this.logger.debug?.('Transport request set:', transportRequest);
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
setName(tableName) {
|
|
71
|
+
this.config.tableName = tableName;
|
|
72
|
+
this.logger.debug?.('Table name set:', tableName);
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
setDdlCode(ddlCode) {
|
|
76
|
+
this.config.ddlCode = ddlCode;
|
|
77
|
+
this.logger.debug?.('DDL code set, length:', ddlCode.length);
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
// Operation methods - return Promise<this> for Promise chaining
|
|
81
|
+
async validate() {
|
|
82
|
+
try {
|
|
83
|
+
this.logger.info?.('Validating table name:', this.config.tableName);
|
|
84
|
+
const result = await (0, validation_1.validateTableName)(this.connection, this.config.tableName);
|
|
85
|
+
this.state.validationResult = result;
|
|
86
|
+
if (!result.valid) {
|
|
87
|
+
throw new Error(`Table name validation failed: ${result.message}`);
|
|
88
|
+
}
|
|
89
|
+
this.logger.info?.('Table name validation successful');
|
|
90
|
+
return this;
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
this.state.errors.push({
|
|
94
|
+
method: 'validate',
|
|
95
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
96
|
+
timestamp: new Date()
|
|
97
|
+
});
|
|
98
|
+
this.logger.error?.('Validation failed:', error);
|
|
99
|
+
throw error;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
async create() {
|
|
103
|
+
try {
|
|
104
|
+
if (!this.config.packageName) {
|
|
105
|
+
throw new Error('Package name is required');
|
|
106
|
+
}
|
|
107
|
+
if (!this.config.ddlCode) {
|
|
108
|
+
throw new Error('DDL code is required');
|
|
109
|
+
}
|
|
110
|
+
this.logger.info?.('Creating table:', this.config.tableName);
|
|
111
|
+
const params = {
|
|
112
|
+
table_name: this.config.tableName,
|
|
113
|
+
ddl_code: this.config.ddlCode,
|
|
114
|
+
package_name: this.config.packageName,
|
|
115
|
+
transport_request: this.config.transportRequest
|
|
116
|
+
};
|
|
117
|
+
const result = await (0, create_1.createTable)(this.connection, params);
|
|
118
|
+
this.state.createResult = result;
|
|
119
|
+
this.logger.info?.('Table created successfully:', result.status);
|
|
120
|
+
return this;
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
this.state.errors.push({
|
|
124
|
+
method: 'create',
|
|
125
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
126
|
+
timestamp: new Date()
|
|
127
|
+
});
|
|
128
|
+
this.logger.error?.('Create failed:', error);
|
|
129
|
+
throw error;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
async lock() {
|
|
133
|
+
try {
|
|
134
|
+
this.logger.info?.('Locking table:', this.config.tableName);
|
|
135
|
+
const lockHandle = await (0, lock_1.acquireTableLockHandle)(this.connection, this.config.tableName, this.sessionId);
|
|
136
|
+
this.lockHandle = lockHandle;
|
|
137
|
+
this.state.lockHandle = lockHandle;
|
|
138
|
+
// Register lock in persistent storage if callback provided
|
|
139
|
+
if (this.config.onLock) {
|
|
140
|
+
this.config.onLock(lockHandle, this.sessionId);
|
|
141
|
+
}
|
|
142
|
+
this.logger.info?.('Table locked, handle:', lockHandle.substring(0, 10) + '...');
|
|
143
|
+
return this;
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
this.state.errors.push({
|
|
147
|
+
method: 'lock',
|
|
148
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
149
|
+
timestamp: new Date()
|
|
150
|
+
});
|
|
151
|
+
this.logger.error?.('Lock failed:', error);
|
|
152
|
+
throw error;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
async update() {
|
|
156
|
+
try {
|
|
157
|
+
if (!this.lockHandle) {
|
|
158
|
+
throw new Error('Table must be locked before update. Call lock() first.');
|
|
159
|
+
}
|
|
160
|
+
if (!this.config.ddlCode) {
|
|
161
|
+
throw new Error('DDL code is required');
|
|
162
|
+
}
|
|
163
|
+
this.logger.info?.('Updating table:', this.config.tableName);
|
|
164
|
+
const params = {
|
|
165
|
+
table_name: this.config.tableName,
|
|
166
|
+
ddl_code: this.config.ddlCode,
|
|
167
|
+
transport_request: this.config.transportRequest,
|
|
168
|
+
activate: false
|
|
169
|
+
};
|
|
170
|
+
const result = await (0, update_1.updateTable)(this.connection, params, this.lockHandle, this.sessionId);
|
|
171
|
+
this.state.updateResult = result;
|
|
172
|
+
this.logger.info?.('Table updated successfully:', result.status);
|
|
173
|
+
return this;
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
this.state.errors.push({
|
|
177
|
+
method: 'update',
|
|
178
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
179
|
+
timestamp: new Date()
|
|
180
|
+
});
|
|
181
|
+
this.logger.error?.('Update failed:', error);
|
|
182
|
+
throw error;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
async check(reporter = 'abapCheckRun') {
|
|
186
|
+
try {
|
|
187
|
+
this.logger.info?.('Checking table:', this.config.tableName, 'reporter:', reporter);
|
|
188
|
+
const result = await (0, check_1.runTableCheckRun)(this.connection, reporter, this.config.tableName, this.sessionId);
|
|
189
|
+
this.state.checkResult = result;
|
|
190
|
+
this.logger.info?.('Table check successful:', result.status);
|
|
191
|
+
return this;
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
this.state.errors.push({
|
|
195
|
+
method: 'check',
|
|
196
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
197
|
+
timestamp: new Date()
|
|
198
|
+
});
|
|
199
|
+
this.logger.error?.('Check failed:', error);
|
|
200
|
+
throw error;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
async unlock() {
|
|
204
|
+
try {
|
|
205
|
+
if (!this.lockHandle) {
|
|
206
|
+
throw new Error('Table is not locked. Call lock() first.');
|
|
207
|
+
}
|
|
208
|
+
this.logger.info?.('Unlocking table:', this.config.tableName);
|
|
209
|
+
const result = await (0, unlock_1.unlockTable)(this.connection, this.config.tableName, this.lockHandle, this.sessionId);
|
|
210
|
+
this.state.unlockResult = result;
|
|
211
|
+
this.lockHandle = undefined;
|
|
212
|
+
this.state.lockHandle = undefined;
|
|
213
|
+
this.logger.info?.('Table unlocked successfully');
|
|
214
|
+
return this;
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
this.state.errors.push({
|
|
218
|
+
method: 'unlock',
|
|
219
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
220
|
+
timestamp: new Date()
|
|
221
|
+
});
|
|
222
|
+
this.logger.error?.('Unlock failed:', error);
|
|
223
|
+
throw error;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
async activate() {
|
|
227
|
+
try {
|
|
228
|
+
this.logger.info?.('Activating table:', this.config.tableName);
|
|
229
|
+
const result = await (0, activation_1.activateTable)(this.connection, this.config.tableName, this.sessionId);
|
|
230
|
+
this.state.activateResult = result;
|
|
231
|
+
this.logger.info?.('Table activated successfully:', result.status);
|
|
232
|
+
return this;
|
|
233
|
+
}
|
|
234
|
+
catch (error) {
|
|
235
|
+
this.state.errors.push({
|
|
236
|
+
method: 'activate',
|
|
237
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
238
|
+
timestamp: new Date()
|
|
239
|
+
});
|
|
240
|
+
this.logger.error?.('Activate failed:', error);
|
|
241
|
+
throw error;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
async read(version = 'active') {
|
|
245
|
+
try {
|
|
246
|
+
this.logger.info?.('Reading table:', this.config.tableName);
|
|
247
|
+
const result = await (0, read_1.getTableSource)(this.connection, this.config.tableName);
|
|
248
|
+
this.state.readResult = result;
|
|
249
|
+
this.logger.info?.('Table read successfully:', result.status);
|
|
250
|
+
return this;
|
|
251
|
+
}
|
|
252
|
+
catch (error) {
|
|
253
|
+
this.state.errors.push({
|
|
254
|
+
method: 'read',
|
|
255
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
256
|
+
timestamp: new Date()
|
|
257
|
+
});
|
|
258
|
+
this.logger.error?.('Read failed:', error);
|
|
259
|
+
throw error;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
async forceUnlock() {
|
|
263
|
+
if (!this.lockHandle) {
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
try {
|
|
267
|
+
await (0, unlock_1.unlockTable)(this.connection, this.config.tableName, this.lockHandle, this.sessionId);
|
|
268
|
+
this.logger.info?.('Force unlock successful for', this.config.tableName);
|
|
269
|
+
}
|
|
270
|
+
catch (error) {
|
|
271
|
+
this.logger.warn?.('Force unlock failed:', error);
|
|
272
|
+
}
|
|
273
|
+
finally {
|
|
274
|
+
this.lockHandle = undefined;
|
|
275
|
+
this.state.lockHandle = undefined;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
// Getters for accessing results
|
|
279
|
+
getState() {
|
|
280
|
+
return { ...this.state };
|
|
281
|
+
}
|
|
282
|
+
getTableName() {
|
|
283
|
+
return this.config.tableName;
|
|
284
|
+
}
|
|
285
|
+
getLockHandle() {
|
|
286
|
+
return this.lockHandle;
|
|
287
|
+
}
|
|
288
|
+
getSessionId() {
|
|
289
|
+
return this.sessionId;
|
|
290
|
+
}
|
|
291
|
+
getValidationResult() {
|
|
292
|
+
return this.state.validationResult;
|
|
293
|
+
}
|
|
294
|
+
getCreateResult() {
|
|
295
|
+
return this.state.createResult;
|
|
296
|
+
}
|
|
297
|
+
getUpdateResult() {
|
|
298
|
+
return this.state.updateResult;
|
|
299
|
+
}
|
|
300
|
+
getCheckResult() {
|
|
301
|
+
return this.state.checkResult;
|
|
302
|
+
}
|
|
303
|
+
getUnlockResult() {
|
|
304
|
+
return this.state.unlockResult;
|
|
305
|
+
}
|
|
306
|
+
getActivateResult() {
|
|
307
|
+
return this.state.activateResult;
|
|
308
|
+
}
|
|
309
|
+
getReadResult() {
|
|
310
|
+
return this.state.readResult;
|
|
311
|
+
}
|
|
312
|
+
getErrors() {
|
|
313
|
+
return [...this.state.errors];
|
|
314
|
+
}
|
|
315
|
+
getResults() {
|
|
316
|
+
return {
|
|
317
|
+
validate: this.state.validationResult,
|
|
318
|
+
create: this.state.createResult,
|
|
319
|
+
update: this.state.updateResult,
|
|
320
|
+
check: this.state.checkResult,
|
|
321
|
+
unlock: this.state.unlockResult,
|
|
322
|
+
activate: this.state.activateResult,
|
|
323
|
+
lockHandle: this.lockHandle,
|
|
324
|
+
errors: [...this.state.errors]
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
exports.TableBuilder = TableBuilder;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Table activation operations
|
|
3
|
+
*/
|
|
4
|
+
import { AbapConnection } from '@mcp-abap-adt/connection';
|
|
5
|
+
import { AxiosResponse } from 'axios';
|
|
6
|
+
/**
|
|
7
|
+
* Activate the table after creation
|
|
8
|
+
*/
|
|
9
|
+
export declare function activateTable(connection: AbapConnection, tableName: string, sessionId: string): Promise<AxiosResponse>;
|
|
10
|
+
//# sourceMappingURL=activation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activation.d.ts","sourceRoot":"","sources":["../../../src/core/table/activation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAItC;;GAEG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,CAAC,CAGxB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Table activation operations
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.activateTable = activateTable;
|
|
7
|
+
const internalUtils_1 = require("../../utils/internalUtils");
|
|
8
|
+
const activationUtils_1 = require("../../utils/activationUtils");
|
|
9
|
+
/**
|
|
10
|
+
* Activate the table after creation
|
|
11
|
+
*/
|
|
12
|
+
async function activateTable(connection, tableName, sessionId) {
|
|
13
|
+
const objectUri = `/sap/bc/adt/ddic/tables/${(0, internalUtils_1.encodeSapObjectName)(tableName)}`;
|
|
14
|
+
return await (0, activationUtils_1.activateObjectInSession)(connection, objectUri, tableName, sessionId, true);
|
|
15
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Table check operations
|
|
3
|
+
*/
|
|
4
|
+
import { AbapConnection } from '@mcp-abap-adt/connection';
|
|
5
|
+
import { AxiosResponse } from 'axios';
|
|
6
|
+
/**
|
|
7
|
+
* Run check run for table
|
|
8
|
+
* Note: This is a table-specific check function. For generic check, use runCheckRun from shared/checkRun
|
|
9
|
+
*/
|
|
10
|
+
export declare function runTableCheckRun(connection: AbapConnection, reporter: 'tableStatusCheck' | 'abapCheckRun', tableName: string, sessionId: string): Promise<AxiosResponse>;
|
|
11
|
+
//# sourceMappingURL=check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/core/table/check.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAetC;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,kBAAkB,GAAG,cAAc,EAC7C,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,CAAC,CAQxB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Table check operations
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.runTableCheckRun = runTableCheckRun;
|
|
7
|
+
const internalUtils_1 = require("../../utils/internalUtils");
|
|
8
|
+
const sessionUtils_1 = require("../../utils/sessionUtils");
|
|
9
|
+
/**
|
|
10
|
+
* Build check run XML payload
|
|
11
|
+
*/
|
|
12
|
+
function buildCheckRunPayload(tableName) {
|
|
13
|
+
const uriName = (0, internalUtils_1.encodeSapObjectName)(tableName).toLowerCase();
|
|
14
|
+
return `<?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
|
+
<chkrun:checkObject adtcore:uri="/sap/bc/adt/ddic/tables/${uriName}" chkrun:version="new"/>
|
|
16
|
+
</chkrun:checkObjectList>`;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Run check run for table
|
|
20
|
+
* Note: This is a table-specific check function. For generic check, use runCheckRun from shared/checkRun
|
|
21
|
+
*/
|
|
22
|
+
async function runTableCheckRun(connection, reporter, tableName, sessionId) {
|
|
23
|
+
const payload = buildCheckRunPayload(tableName);
|
|
24
|
+
const headers = {
|
|
25
|
+
'Accept': 'application/vnd.sap.adt.checkmessages+xml',
|
|
26
|
+
'Content-Type': 'application/vnd.sap.adt.checkobjects+xml'
|
|
27
|
+
};
|
|
28
|
+
const url = `/sap/bc/adt/checkruns?reporters=${reporter}`;
|
|
29
|
+
return (0, sessionUtils_1.makeAdtRequestWithSession)(connection, url, 'POST', sessionId, payload, headers);
|
|
30
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Table create operations
|
|
3
|
+
*/
|
|
4
|
+
import { AbapConnection } from '@mcp-abap-adt/connection';
|
|
5
|
+
import { AxiosResponse } from 'axios';
|
|
6
|
+
import { CreateTableParams } from './types';
|
|
7
|
+
/**
|
|
8
|
+
* Create ABAP table
|
|
9
|
+
* Full workflow: create empty -> check status -> lock -> add DDL -> check -> unlock -> activate -> verify
|
|
10
|
+
*/
|
|
11
|
+
export declare function createTable(connection: AbapConnection, params: CreateTableParams): Promise<AxiosResponse>;
|
|
12
|
+
//# sourceMappingURL=create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/core/table/create.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAc,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAQtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AA+D5C;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,aAAa,CAAC,CA6HxB"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Table create operations
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createTable = createTable;
|
|
7
|
+
const connection_1 = require("@mcp-abap-adt/connection");
|
|
8
|
+
const fast_xml_parser_1 = require("fast-xml-parser");
|
|
9
|
+
const internalUtils_1 = require("../../utils/internalUtils");
|
|
10
|
+
const sessionUtils_1 = require("../../utils/sessionUtils");
|
|
11
|
+
const lock_1 = require("./lock");
|
|
12
|
+
const unlock_1 = require("./unlock");
|
|
13
|
+
const activation_1 = require("./activation");
|
|
14
|
+
const check_1 = require("./check");
|
|
15
|
+
/**
|
|
16
|
+
* Parse XML response to extract table creation information
|
|
17
|
+
*/
|
|
18
|
+
function parseTableCreationResponse(xml) {
|
|
19
|
+
const parser = new fast_xml_parser_1.XMLParser({
|
|
20
|
+
ignoreAttributes: false,
|
|
21
|
+
attributeNamePrefix: '',
|
|
22
|
+
parseAttributeValue: true,
|
|
23
|
+
trimValues: true
|
|
24
|
+
});
|
|
25
|
+
try {
|
|
26
|
+
const result = parser.parse(xml);
|
|
27
|
+
if (result.error || result['asx:abap']?.['asx:values']?.ERROR) {
|
|
28
|
+
const errorMsg = result.error?.message ||
|
|
29
|
+
result['asx:abap']?.['asx:values']?.ERROR?.MESSAGE ||
|
|
30
|
+
'Unknown error during table creation';
|
|
31
|
+
throw new Error(errorMsg);
|
|
32
|
+
}
|
|
33
|
+
if (result['ddic:table']) {
|
|
34
|
+
const table = result['ddic:table'];
|
|
35
|
+
return {
|
|
36
|
+
name: table['adtcore:name'],
|
|
37
|
+
description: table['adtcore:description'],
|
|
38
|
+
package: table['adtcore:packageRef']?.['adtcore:name'],
|
|
39
|
+
status: 'created',
|
|
40
|
+
objectType: 'table'
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
return { raw: result, status: 'created' };
|
|
44
|
+
}
|
|
45
|
+
catch (parseError) {
|
|
46
|
+
return {
|
|
47
|
+
raw_xml: xml,
|
|
48
|
+
status: 'created',
|
|
49
|
+
note: 'XML parsing failed, but table creation might have succeeded'
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Verify table exists and get its details
|
|
55
|
+
*/
|
|
56
|
+
async function verifyTableCreation(connection, tableName) {
|
|
57
|
+
const baseUrl = await connection.getBaseUrl();
|
|
58
|
+
const url = `${baseUrl}/sap/bc/adt/ddic/tables/${(0, internalUtils_1.encodeSapObjectName)(tableName)}/source/main`;
|
|
59
|
+
return connection.makeAdtRequest({
|
|
60
|
+
url,
|
|
61
|
+
method: 'GET',
|
|
62
|
+
timeout: (0, connection_1.getTimeout)('default'),
|
|
63
|
+
headers: {}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Create ABAP table
|
|
68
|
+
* Full workflow: create empty -> check status -> lock -> add DDL -> check -> unlock -> activate -> verify
|
|
69
|
+
*/
|
|
70
|
+
async function createTable(connection, params) {
|
|
71
|
+
if (!params.table_name) {
|
|
72
|
+
throw new Error('Table name is required');
|
|
73
|
+
}
|
|
74
|
+
if (!params.ddl_code) {
|
|
75
|
+
throw new Error('DDL code is required');
|
|
76
|
+
}
|
|
77
|
+
if (!params.package_name) {
|
|
78
|
+
throw new Error('Package name is required');
|
|
79
|
+
}
|
|
80
|
+
const sessionId = (0, sessionUtils_1.generateSessionId)();
|
|
81
|
+
let lockHandle = null;
|
|
82
|
+
try {
|
|
83
|
+
// Step 1: Create empty table with POST
|
|
84
|
+
const createUrl = `/sap/bc/adt/ddic/tables${params.transport_request ? `?corrNr=${params.transport_request}` : ''}`;
|
|
85
|
+
const tableXml = `<?xml version="1.0" encoding="UTF-8"?><blue:blueSource xmlns:blue="http://www.sap.com/wbobj/blue" xmlns:adtcore="http://www.sap.com/adt/core" adtcore:description="${params.table_name}" adtcore:language="EN" adtcore:name="${params.table_name.toUpperCase()}" adtcore:type="TABL/DT" adtcore:masterLanguage="EN" adtcore:masterSystem="${process.env.SAP_SYSTEM || process.env.SAP_SYSTEM_ID || 'DEV'}" adtcore:responsible="${process.env.SAP_USER || process.env.SAP_USERNAME || 'DEVELOPER'}">
|
|
86
|
+
|
|
87
|
+
<adtcore:packageRef adtcore:name="${params.package_name.toUpperCase()}"/>
|
|
88
|
+
|
|
89
|
+
</blue:blueSource>`;
|
|
90
|
+
const headers = {
|
|
91
|
+
'Accept': 'application/vnd.sap.adt.blues.v1+xml, application/vnd.sap.adt.tables.v2+xml',
|
|
92
|
+
'Content-Type': 'application/vnd.sap.adt.tables.v2+xml'
|
|
93
|
+
};
|
|
94
|
+
const createResponse = await (0, sessionUtils_1.makeAdtRequestWithSession)(connection, createUrl, 'POST', sessionId, tableXml, headers);
|
|
95
|
+
// Step 1.1: Run table status check before locking (optional, continue on error)
|
|
96
|
+
try {
|
|
97
|
+
await (0, check_1.runTableCheckRun)(connection, 'tableStatusCheck', params.table_name, sessionId);
|
|
98
|
+
}
|
|
99
|
+
catch (statusError) {
|
|
100
|
+
// Continue even if status check fails
|
|
101
|
+
}
|
|
102
|
+
// Step 1.2: Get lockHandle for the created table
|
|
103
|
+
lockHandle = await (0, lock_1.acquireTableLockHandle)(connection, params.table_name, sessionId);
|
|
104
|
+
// Step 1.3: Add DDL content to the table with lockHandle
|
|
105
|
+
const ddlUrl = `/sap/bc/adt/ddic/tables/${(0, internalUtils_1.encodeSapObjectName)(params.table_name)}/source/main?lockHandle=${lockHandle}${params.transport_request ? `&corrNr=${params.transport_request}` : ''}`;
|
|
106
|
+
const ddlHeaders = {
|
|
107
|
+
'Accept': 'application/xml, application/json, text/plain, */*',
|
|
108
|
+
'Content-Type': 'text/plain; charset=utf-8'
|
|
109
|
+
};
|
|
110
|
+
const ddlResponse = await (0, sessionUtils_1.makeAdtRequestWithSession)(connection, ddlUrl, 'PUT', sessionId, params.ddl_code, ddlHeaders);
|
|
111
|
+
parseTableCreationResponse(ddlResponse.data);
|
|
112
|
+
// Step 1.3.1: Run ABAP check before unlock (optional, continue on error)
|
|
113
|
+
try {
|
|
114
|
+
await (0, check_1.runTableCheckRun)(connection, 'abapCheckRun', params.table_name, sessionId);
|
|
115
|
+
}
|
|
116
|
+
catch (checkError) {
|
|
117
|
+
// Continue even if check fails
|
|
118
|
+
}
|
|
119
|
+
// Step 1.4: Unlock the table after DDL content is added
|
|
120
|
+
try {
|
|
121
|
+
await (0, unlock_1.unlockTable)(connection, params.table_name, lockHandle, sessionId);
|
|
122
|
+
lockHandle = null;
|
|
123
|
+
}
|
|
124
|
+
catch (unlockError) {
|
|
125
|
+
try {
|
|
126
|
+
await (0, unlock_1.deleteTableLock)(connection, params.table_name);
|
|
127
|
+
}
|
|
128
|
+
catch (cleanupError) {
|
|
129
|
+
// Ignore cleanup errors
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Step 2: Activate table
|
|
133
|
+
let activationAttempt = 0;
|
|
134
|
+
const maxActivationAttempts = 2;
|
|
135
|
+
while (activationAttempt < maxActivationAttempts) {
|
|
136
|
+
activationAttempt++;
|
|
137
|
+
try {
|
|
138
|
+
await (0, activation_1.activateTable)(connection, params.table_name, sessionId);
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
catch (attemptError) {
|
|
142
|
+
if (attemptError.response?.data?.includes('No active nametab')) {
|
|
143
|
+
try {
|
|
144
|
+
await (0, check_1.runTableCheckRun)(connection, 'abapCheckRun', params.table_name, sessionId);
|
|
145
|
+
}
|
|
146
|
+
catch (retryCheckError) {
|
|
147
|
+
// Ignore
|
|
148
|
+
}
|
|
149
|
+
if (activationAttempt < maxActivationAttempts) {
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
if (activationAttempt >= maxActivationAttempts) {
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
throw attemptError;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// Return the real response from SAP (from initial POST)
|
|
160
|
+
return createResponse;
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
// Try to unlock if we have a lock handle
|
|
164
|
+
if (lockHandle) {
|
|
165
|
+
try {
|
|
166
|
+
await (0, unlock_1.unlockTable)(connection, params.table_name, lockHandle, sessionId);
|
|
167
|
+
}
|
|
168
|
+
catch (unlockError) {
|
|
169
|
+
try {
|
|
170
|
+
await (0, unlock_1.deleteTableLock)(connection, params.table_name);
|
|
171
|
+
}
|
|
172
|
+
catch (cleanupError) {
|
|
173
|
+
// Ignore
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
const errorMessage = error.response?.data
|
|
178
|
+
? (typeof error.response.data === 'string' ? error.response.data : JSON.stringify(error.response.data))
|
|
179
|
+
: error.message;
|
|
180
|
+
throw new Error(`Failed to create table ${params.table_name}: ${errorMessage}`);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Table delete operations
|
|
3
|
+
*/
|
|
4
|
+
import { AbapConnection } from '@mcp-abap-adt/connection';
|
|
5
|
+
import { AxiosResponse } from 'axios';
|
|
6
|
+
export interface DeleteTableParams {
|
|
7
|
+
table_name: string;
|
|
8
|
+
transport_request?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Delete ABAP table
|
|
12
|
+
*/
|
|
13
|
+
export declare function deleteTable(connection: AbapConnection, params: DeleteTableParams): Promise<AxiosResponse>;
|
|
14
|
+
//# sourceMappingURL=delete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/core/table/delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,aAAa,CAAC,CAYxB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Table delete operations
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.deleteTable = deleteTable;
|
|
7
|
+
const delete_1 = require("../delete");
|
|
8
|
+
/**
|
|
9
|
+
* Delete ABAP table
|
|
10
|
+
*/
|
|
11
|
+
async function deleteTable(connection, params) {
|
|
12
|
+
if (!params.table_name) {
|
|
13
|
+
throw new Error('table_name is required');
|
|
14
|
+
}
|
|
15
|
+
const deleteParams = {
|
|
16
|
+
object_name: params.table_name,
|
|
17
|
+
object_type: 'TABL/DT',
|
|
18
|
+
transport_request: params.transport_request
|
|
19
|
+
};
|
|
20
|
+
return await (0, delete_1.deleteObject)(connection, deleteParams);
|
|
21
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Table operations - exports
|
|
3
|
+
*/
|
|
4
|
+
export * from './types';
|
|
5
|
+
export * from './create';
|
|
6
|
+
export * from './read';
|
|
7
|
+
export * from './update';
|
|
8
|
+
export * from './delete';
|
|
9
|
+
export * from './lock';
|
|
10
|
+
export * from './unlock';
|
|
11
|
+
export * from './activation';
|
|
12
|
+
export * from './check';
|
|
13
|
+
export * from './validation';
|
|
14
|
+
export { TableBuilder, type TableBuilderConfig, type TableBuilderLogger, type TableBuilderState } from './TableBuilder';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/table/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
|