@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,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Program create operations
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createProgram = createProgram;
|
|
7
|
+
const internalUtils_1 = require("../../utils/internalUtils");
|
|
8
|
+
const sessionUtils_1 = require("../../utils/sessionUtils");
|
|
9
|
+
const lock_1 = require("./lock");
|
|
10
|
+
const unlock_1 = require("./unlock");
|
|
11
|
+
const activation_1 = require("./activation");
|
|
12
|
+
const systemInfo_1 = require("../shared/systemInfo");
|
|
13
|
+
/**
|
|
14
|
+
* Convert readable program type to SAP internal code
|
|
15
|
+
*/
|
|
16
|
+
function convertProgramType(programType) {
|
|
17
|
+
const typeMap = {
|
|
18
|
+
'executable': '1',
|
|
19
|
+
'include': 'I',
|
|
20
|
+
'module_pool': 'M',
|
|
21
|
+
'function_group': 'F',
|
|
22
|
+
'class_pool': 'K',
|
|
23
|
+
'interface_pool': 'J'
|
|
24
|
+
};
|
|
25
|
+
return typeMap[programType || 'executable'] || '1';
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Generate minimal program source code if not provided
|
|
29
|
+
*/
|
|
30
|
+
function generateProgramTemplate(programName, programType, description) {
|
|
31
|
+
const upperName = programName.toUpperCase();
|
|
32
|
+
switch (programType) {
|
|
33
|
+
case 'I': // Include
|
|
34
|
+
return `*&---------------------------------------------------------------------*
|
|
35
|
+
*& Include ${upperName}
|
|
36
|
+
*& ${description}
|
|
37
|
+
*&---------------------------------------------------------------------*
|
|
38
|
+
|
|
39
|
+
" Include program logic here
|
|
40
|
+
`;
|
|
41
|
+
case 'M': // Module Pool
|
|
42
|
+
return `*&---------------------------------------------------------------------*
|
|
43
|
+
*& Module Pool ${upperName}
|
|
44
|
+
*& ${description}
|
|
45
|
+
*&---------------------------------------------------------------------*
|
|
46
|
+
|
|
47
|
+
PROGRAM ${upperName}.
|
|
48
|
+
`;
|
|
49
|
+
case '1': // Executable (Report)
|
|
50
|
+
default:
|
|
51
|
+
return `*&---------------------------------------------------------------------*
|
|
52
|
+
*& Report ${upperName}
|
|
53
|
+
*& ${description}
|
|
54
|
+
*&---------------------------------------------------------------------*
|
|
55
|
+
REPORT ${upperName}.
|
|
56
|
+
|
|
57
|
+
START-OF-SELECTION.
|
|
58
|
+
WRITE: / 'Program ${upperName} executed successfully.'.
|
|
59
|
+
`;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Create program object with metadata
|
|
64
|
+
*/
|
|
65
|
+
async function createProgramObject(connection, args, sessionId) {
|
|
66
|
+
const description = args.description || args.program_name;
|
|
67
|
+
const programType = convertProgramType(args.program_type);
|
|
68
|
+
const application = args.application || '*';
|
|
69
|
+
const url = `/sap/bc/adt/programs/programs${args.transport_request ? `?corrNr=${args.transport_request}` : ''}`;
|
|
70
|
+
// Get masterSystem and responsible (only for cloud systems)
|
|
71
|
+
// On cloud, getSystemInformation returns systemID and userName
|
|
72
|
+
// On on-premise, it returns null, so we don't add these attributes
|
|
73
|
+
let masterSystem = args.master_system;
|
|
74
|
+
let username = args.responsible;
|
|
75
|
+
const systemInfo = await (0, systemInfo_1.getSystemInformation)(connection);
|
|
76
|
+
if (systemInfo) {
|
|
77
|
+
masterSystem = masterSystem || systemInfo.systemID;
|
|
78
|
+
username = username || systemInfo.userName;
|
|
79
|
+
}
|
|
80
|
+
// Only use masterSystem from getSystemInformation (cloud), not from env
|
|
81
|
+
// username can fallback to env if not provided
|
|
82
|
+
username = username || process.env.SAP_USERNAME || process.env.SAP_USER || '';
|
|
83
|
+
const masterSystemAttr = masterSystem ? ` adtcore:masterSystem="${masterSystem}"` : '';
|
|
84
|
+
const responsibleAttr = username ? ` adtcore:responsible="${username}"` : '';
|
|
85
|
+
const metadataXml = `<?xml version="1.0" encoding="UTF-8"?><program:abapProgram xmlns:program="http://www.sap.com/adt/programs/programs" xmlns:adtcore="http://www.sap.com/adt/core" adtcore:description="${description}" adtcore:language="EN" adtcore:name="${args.program_name}" adtcore:type="PROG/P" adtcore:masterLanguage="EN"${masterSystemAttr}${responsibleAttr} program:programType="${programType}" program:application="${application}">
|
|
86
|
+
<adtcore:packageRef adtcore:name="${args.package_name}"/>
|
|
87
|
+
</program:abapProgram>`;
|
|
88
|
+
const headers = {
|
|
89
|
+
'Accept': 'application/vnd.sap.adt.programs.programs.v2+xml',
|
|
90
|
+
'Content-Type': 'application/vnd.sap.adt.programs.programs.v2+xml'
|
|
91
|
+
};
|
|
92
|
+
return (0, sessionUtils_1.makeAdtRequestWithSession)(connection, url, 'POST', sessionId, metadataXml, headers);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Upload program source code
|
|
96
|
+
*/
|
|
97
|
+
async function uploadProgramSource(connection, programName, sourceCode, lockHandle, sessionId, transportRequest) {
|
|
98
|
+
const queryParams = `lockHandle=${lockHandle}${transportRequest ? `&corrNr=${transportRequest}` : ''}`;
|
|
99
|
+
const url = `/sap/bc/adt/programs/programs/${(0, internalUtils_1.encodeSapObjectName)(programName).toLowerCase()}/source/main?${queryParams}`;
|
|
100
|
+
const headers = {
|
|
101
|
+
'Accept': 'text/plain',
|
|
102
|
+
'Content-Type': 'text/plain; charset=utf-8'
|
|
103
|
+
};
|
|
104
|
+
return (0, sessionUtils_1.makeAdtRequestWithSession)(connection, url, 'PUT', sessionId, sourceCode, headers);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Create ABAP program
|
|
108
|
+
* Full workflow: create object -> lock -> upload source -> unlock -> activate
|
|
109
|
+
*/
|
|
110
|
+
async function createProgram(connection, params) {
|
|
111
|
+
const programName = params.program_name.toUpperCase();
|
|
112
|
+
const sessionId = (0, sessionUtils_1.generateSessionId)();
|
|
113
|
+
let lockHandle = null;
|
|
114
|
+
try {
|
|
115
|
+
// Step 1: Create program object with metadata
|
|
116
|
+
const createResponse = await createProgramObject(connection, params, sessionId);
|
|
117
|
+
if (createResponse.status < 200 || createResponse.status >= 300) {
|
|
118
|
+
throw new Error(`Failed to create program object: ${createResponse.status} ${createResponse.statusText}`);
|
|
119
|
+
}
|
|
120
|
+
// Extract lock handle from response headers
|
|
121
|
+
lockHandle = createResponse.headers['sap-adt-lockhandle'] ||
|
|
122
|
+
createResponse.headers['lockhandle'] ||
|
|
123
|
+
createResponse.headers['x-sap-adt-lockhandle'];
|
|
124
|
+
if (!lockHandle) {
|
|
125
|
+
// Fallback: do explicit LOCK
|
|
126
|
+
lockHandle = await (0, lock_1.lockProgram)(connection, programName, sessionId);
|
|
127
|
+
}
|
|
128
|
+
// Step 2: Upload source code
|
|
129
|
+
const programType = convertProgramType(params.program_type);
|
|
130
|
+
const sourceCode = params.source_code || generateProgramTemplate(programName, programType, params.description || programName);
|
|
131
|
+
const uploadResponse = await uploadProgramSource(connection, programName, sourceCode, lockHandle, sessionId, params.transport_request);
|
|
132
|
+
if (uploadResponse.status < 200 || uploadResponse.status >= 300) {
|
|
133
|
+
throw new Error(`Failed to upload source: ${uploadResponse.status} ${uploadResponse.statusText}`);
|
|
134
|
+
}
|
|
135
|
+
// Step 3: Unlock the program
|
|
136
|
+
await (0, unlock_1.unlockProgram)(connection, programName, lockHandle, sessionId);
|
|
137
|
+
lockHandle = null;
|
|
138
|
+
// Step 4: Activate the program (optional)
|
|
139
|
+
const shouldActivate = params.activate !== false;
|
|
140
|
+
if (shouldActivate) {
|
|
141
|
+
await (0, activation_1.activateProgram)(connection, programName, sessionId);
|
|
142
|
+
}
|
|
143
|
+
// Return the real response from SAP (from initial POST)
|
|
144
|
+
return createResponse;
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
// Attempt to unlock if we have a lock handle
|
|
148
|
+
if (lockHandle) {
|
|
149
|
+
try {
|
|
150
|
+
await (0, unlock_1.unlockProgram)(connection, programName, lockHandle, sessionId);
|
|
151
|
+
}
|
|
152
|
+
catch (unlockError) {
|
|
153
|
+
// Ignore unlock errors
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
const errorMessage = error.response?.data || error.message || 'Unknown error';
|
|
157
|
+
throw new Error(`Failed to create program ${programName}: ${errorMessage}`);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Program delete operations
|
|
3
|
+
*/
|
|
4
|
+
import { AbapConnection } from '@mcp-abap-adt/connection';
|
|
5
|
+
import { AxiosResponse } from 'axios';
|
|
6
|
+
export interface DeleteProgramParams {
|
|
7
|
+
program_name: string;
|
|
8
|
+
transport_request?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Delete ABAP program
|
|
12
|
+
*/
|
|
13
|
+
export declare function deleteProgram(connection: AbapConnection, params: DeleteProgramParams): Promise<AxiosResponse>;
|
|
14
|
+
//# sourceMappingURL=delete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/core/program/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,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAYxB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Program delete operations
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.deleteProgram = deleteProgram;
|
|
7
|
+
const delete_1 = require("../delete");
|
|
8
|
+
/**
|
|
9
|
+
* Delete ABAP program
|
|
10
|
+
*/
|
|
11
|
+
async function deleteProgram(connection, params) {
|
|
12
|
+
if (!params.program_name) {
|
|
13
|
+
throw new Error('program_name is required');
|
|
14
|
+
}
|
|
15
|
+
const deleteParams = {
|
|
16
|
+
object_name: params.program_name,
|
|
17
|
+
object_type: 'PROG/P',
|
|
18
|
+
transport_request: params.transport_request
|
|
19
|
+
};
|
|
20
|
+
return await (0, delete_1.deleteObject)(connection, deleteParams);
|
|
21
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Program operations - exports
|
|
3
|
+
*/
|
|
4
|
+
export * from './create';
|
|
5
|
+
export * from './update';
|
|
6
|
+
export * from './read';
|
|
7
|
+
export * from './lock';
|
|
8
|
+
export * from './unlock';
|
|
9
|
+
export * from './activation';
|
|
10
|
+
export * from './check';
|
|
11
|
+
export * from './validation';
|
|
12
|
+
export * from './delete';
|
|
13
|
+
export { ProgramBuilder, type ProgramBuilderConfig, type ProgramBuilderLogger, type ProgramBuilderState } from './ProgramBuilder';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/program/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Program operations - exports
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.ProgramBuilder = void 0;
|
|
21
|
+
__exportStar(require("./create"), exports);
|
|
22
|
+
__exportStar(require("./update"), exports);
|
|
23
|
+
__exportStar(require("./read"), exports);
|
|
24
|
+
__exportStar(require("./lock"), exports);
|
|
25
|
+
__exportStar(require("./unlock"), exports);
|
|
26
|
+
__exportStar(require("./activation"), exports);
|
|
27
|
+
__exportStar(require("./check"), exports);
|
|
28
|
+
__exportStar(require("./validation"), exports);
|
|
29
|
+
__exportStar(require("./delete"), exports);
|
|
30
|
+
var ProgramBuilder_1 = require("./ProgramBuilder");
|
|
31
|
+
Object.defineProperty(exports, "ProgramBuilder", { enumerable: true, get: function () { return ProgramBuilder_1.ProgramBuilder; } });
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Program lock operations
|
|
3
|
+
*/
|
|
4
|
+
import { AbapConnection } from '@mcp-abap-adt/connection';
|
|
5
|
+
import { AxiosResponse } from 'axios';
|
|
6
|
+
/**
|
|
7
|
+
* Lock program for modification
|
|
8
|
+
* Returns lock handle that must be used in subsequent requests
|
|
9
|
+
*/
|
|
10
|
+
export declare function lockProgram(connection: AbapConnection, programName: string, sessionId: string): Promise<string>;
|
|
11
|
+
/**
|
|
12
|
+
* Lock program for editing (for update)
|
|
13
|
+
* Returns lock handle and transport number
|
|
14
|
+
*/
|
|
15
|
+
export declare function lockProgramForUpdate(connection: AbapConnection, programName: string, sessionId: string): Promise<{
|
|
16
|
+
response: AxiosResponse;
|
|
17
|
+
lockHandle: string;
|
|
18
|
+
corrNr?: string;
|
|
19
|
+
}>;
|
|
20
|
+
//# sourceMappingURL=lock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../../src/core/program/lock.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKtC;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,cAAc,EAC1B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,cAAc,EAC1B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAoB3E"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Program lock operations
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.lockProgram = lockProgram;
|
|
7
|
+
exports.lockProgramForUpdate = lockProgramForUpdate;
|
|
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
|
+
/**
|
|
12
|
+
* Lock program for modification
|
|
13
|
+
* Returns lock handle that must be used in subsequent requests
|
|
14
|
+
*/
|
|
15
|
+
async function lockProgram(connection, programName, sessionId) {
|
|
16
|
+
const url = `/sap/bc/adt/programs/programs/${(0, internalUtils_1.encodeSapObjectName)(programName).toLowerCase()}?_action=LOCK&accessMode=MODIFY`;
|
|
17
|
+
const headers = {
|
|
18
|
+
'Accept': 'application/vnd.sap.as+xml;charset=UTF-8;dataname=com.sap.adt.lock.result;q=0.8, application/vnd.sap.as+xml;charset=UTF-8;dataname=com.sap.adt.lock.result2;q=0.9'
|
|
19
|
+
};
|
|
20
|
+
const response = await (0, sessionUtils_1.makeAdtRequestWithSession)(connection, url, 'POST', sessionId, null, headers);
|
|
21
|
+
// Parse lock handle from XML response
|
|
22
|
+
const parser = new fast_xml_parser_1.XMLParser({ ignoreAttributes: false, attributeNamePrefix: '' });
|
|
23
|
+
const result = parser.parse(response.data);
|
|
24
|
+
const lockHandle = result?.['asx:abap']?.['asx:values']?.['DATA']?.['LOCK_HANDLE'];
|
|
25
|
+
if (!lockHandle) {
|
|
26
|
+
throw new Error('Failed to obtain lock handle from SAP. Program may be locked by another user.');
|
|
27
|
+
}
|
|
28
|
+
return lockHandle;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Lock program for editing (for update)
|
|
32
|
+
* Returns lock handle and transport number
|
|
33
|
+
*/
|
|
34
|
+
async function lockProgramForUpdate(connection, programName, sessionId) {
|
|
35
|
+
const url = `/sap/bc/adt/programs/programs/${(0, internalUtils_1.encodeSapObjectName)(programName).toLowerCase()}?_action=LOCK&accessMode=MODIFY`;
|
|
36
|
+
const headers = {
|
|
37
|
+
'Accept': 'application/vnd.sap.as+xml;charset=UTF-8;dataname=com.sap.adt.lock.result;q=0.8, application/vnd.sap.as+xml;charset=UTF-8;dataname=com.sap.adt.lock.result2;q=0.9'
|
|
38
|
+
};
|
|
39
|
+
const response = await (0, sessionUtils_1.makeAdtRequestWithSession)(connection, url, 'POST', sessionId, null, headers);
|
|
40
|
+
// Parse lock handle and transport number from XML response
|
|
41
|
+
const parser = new fast_xml_parser_1.XMLParser({ ignoreAttributes: false, attributeNamePrefix: '@_' });
|
|
42
|
+
const result = parser.parse(response.data);
|
|
43
|
+
const lockHandle = result?.['asx:abap']?.['asx:values']?.['DATA']?.['LOCK_HANDLE'];
|
|
44
|
+
const corrNr = result?.['asx:abap']?.['asx:values']?.['DATA']?.['CORRNR'];
|
|
45
|
+
if (!lockHandle) {
|
|
46
|
+
throw new Error('Failed to obtain lock handle from SAP. Program may be locked by another user.');
|
|
47
|
+
}
|
|
48
|
+
return { response, lockHandle, corrNr };
|
|
49
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Program read operations
|
|
3
|
+
*/
|
|
4
|
+
import { AbapConnection } from '@mcp-abap-adt/connection';
|
|
5
|
+
import { AxiosResponse } from 'axios';
|
|
6
|
+
/**
|
|
7
|
+
* Get ABAP program metadata (without source code)
|
|
8
|
+
*/
|
|
9
|
+
export declare function getProgramMetadata(connection: AbapConnection, programName: string): Promise<AxiosResponse>;
|
|
10
|
+
/**
|
|
11
|
+
* Get ABAP program source code
|
|
12
|
+
*/
|
|
13
|
+
export declare function getProgramSource(connection: AbapConnection, programName: string): Promise<AxiosResponse>;
|
|
14
|
+
/**
|
|
15
|
+
* Get ABAP program (source code by default for backward compatibility)
|
|
16
|
+
* @deprecated Use getProgramSource() or getProgramMetadata() instead
|
|
17
|
+
*/
|
|
18
|
+
export declare function getProgram(connection: AbapConnection, programName: string): Promise<AxiosResponse>;
|
|
19
|
+
/**
|
|
20
|
+
* Get transport request for ABAP program
|
|
21
|
+
* @param connection - SAP connection
|
|
22
|
+
* @param programName - Program name
|
|
23
|
+
* @returns Transport request information
|
|
24
|
+
*/
|
|
25
|
+
export declare function getProgramTransport(connection: AbapConnection, programName: string): Promise<AxiosResponse>;
|
|
26
|
+
//# sourceMappingURL=read.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/core/program/read.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAc,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKtC;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,cAAc,EAC1B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC,CAExB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,cAAc,EAC1B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC,CAExB;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,UAAU,EAAE,cAAc,EAC1B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC,CAExB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,cAAc,EAC1B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC,CAaxB"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Program read operations
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getProgramMetadata = getProgramMetadata;
|
|
7
|
+
exports.getProgramSource = getProgramSource;
|
|
8
|
+
exports.getProgram = getProgram;
|
|
9
|
+
exports.getProgramTransport = getProgramTransport;
|
|
10
|
+
const connection_1 = require("@mcp-abap-adt/connection");
|
|
11
|
+
const internalUtils_1 = require("../../utils/internalUtils");
|
|
12
|
+
const readMetadata_1 = require("../shared/readMetadata");
|
|
13
|
+
const readSource_1 = require("../shared/readSource");
|
|
14
|
+
/**
|
|
15
|
+
* Get ABAP program metadata (without source code)
|
|
16
|
+
*/
|
|
17
|
+
async function getProgramMetadata(connection, programName) {
|
|
18
|
+
return (0, readMetadata_1.readObjectMetadata)(connection, 'program', programName);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Get ABAP program source code
|
|
22
|
+
*/
|
|
23
|
+
async function getProgramSource(connection, programName) {
|
|
24
|
+
return (0, readSource_1.readObjectSource)(connection, 'program', programName);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get ABAP program (source code by default for backward compatibility)
|
|
28
|
+
* @deprecated Use getProgramSource() or getProgramMetadata() instead
|
|
29
|
+
*/
|
|
30
|
+
async function getProgram(connection, programName) {
|
|
31
|
+
return getProgramSource(connection, programName);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get transport request for ABAP program
|
|
35
|
+
* @param connection - SAP connection
|
|
36
|
+
* @param programName - Program name
|
|
37
|
+
* @returns Transport request information
|
|
38
|
+
*/
|
|
39
|
+
async function getProgramTransport(connection, programName) {
|
|
40
|
+
const baseUrl = await connection.getBaseUrl();
|
|
41
|
+
const encodedName = (0, internalUtils_1.encodeSapObjectName)(programName);
|
|
42
|
+
const url = `${baseUrl}/sap/bc/adt/programs/programs/${encodedName}/transport`;
|
|
43
|
+
return connection.makeAdtRequest({
|
|
44
|
+
url,
|
|
45
|
+
method: 'GET',
|
|
46
|
+
timeout: (0, connection_1.getTimeout)('default'),
|
|
47
|
+
headers: {
|
|
48
|
+
'Accept': 'application/vnd.sap.adt.transportorganizer.v1+xml'
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Program unlock operations
|
|
3
|
+
*/
|
|
4
|
+
import { AbapConnection } from '@mcp-abap-adt/connection';
|
|
5
|
+
import { AxiosResponse } from 'axios';
|
|
6
|
+
/**
|
|
7
|
+
* Unlock program
|
|
8
|
+
* Must use same session and lock handle from lock operation
|
|
9
|
+
*/
|
|
10
|
+
export declare function unlockProgram(connection: AbapConnection, programName: string, lockHandle: string, sessionId: string): Promise<AxiosResponse>;
|
|
11
|
+
//# sourceMappingURL=unlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unlock.d.ts","sourceRoot":"","sources":["../../../src/core/program/unlock.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAItC;;;GAGG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,cAAc,EAC1B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,CAAC,CAIxB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Program unlock operations
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.unlockProgram = unlockProgram;
|
|
7
|
+
const internalUtils_1 = require("../../utils/internalUtils");
|
|
8
|
+
const sessionUtils_1 = require("../../utils/sessionUtils");
|
|
9
|
+
/**
|
|
10
|
+
* Unlock program
|
|
11
|
+
* Must use same session and lock handle from lock operation
|
|
12
|
+
*/
|
|
13
|
+
async function unlockProgram(connection, programName, lockHandle, sessionId) {
|
|
14
|
+
const url = `/sap/bc/adt/programs/programs/${(0, internalUtils_1.encodeSapObjectName)(programName).toLowerCase()}?_action=UNLOCK&lockHandle=${lockHandle}`;
|
|
15
|
+
return (0, sessionUtils_1.makeAdtRequestWithSession)(connection, url, 'POST', sessionId, null);
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Program update operations
|
|
3
|
+
*/
|
|
4
|
+
import { AbapConnection } from '@mcp-abap-adt/connection';
|
|
5
|
+
import { AxiosResponse } from 'axios';
|
|
6
|
+
export interface UpdateProgramSourceParams {
|
|
7
|
+
program_name: string;
|
|
8
|
+
source_code: string;
|
|
9
|
+
activate?: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Update program source code
|
|
13
|
+
* Full workflow: lock -> upload source -> unlock -> activate (optional)
|
|
14
|
+
*/
|
|
15
|
+
export declare function updateProgramSource(connection: AbapConnection, params: UpdateProgramSourceParams): Promise<AxiosResponse>;
|
|
16
|
+
//# sourceMappingURL=update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/core/program/update.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAOtC,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA0BD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,aAAa,CAAC,CA2DxB"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Program update operations
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.updateProgramSource = updateProgramSource;
|
|
7
|
+
const internalUtils_1 = require("../../utils/internalUtils");
|
|
8
|
+
const sessionUtils_1 = require("../../utils/sessionUtils");
|
|
9
|
+
const lock_1 = require("./lock");
|
|
10
|
+
const unlock_1 = require("./unlock");
|
|
11
|
+
const activation_1 = require("./activation");
|
|
12
|
+
/**
|
|
13
|
+
* Upload program source code (for update)
|
|
14
|
+
*/
|
|
15
|
+
async function uploadProgramSourceForUpdate(connection, programName, sourceCode, lockHandle, sessionId, corrNr) {
|
|
16
|
+
let url = `/sap/bc/adt/programs/programs/${(0, internalUtils_1.encodeSapObjectName)(programName).toLowerCase()}/source/main?lockHandle=${lockHandle}`;
|
|
17
|
+
if (corrNr) {
|
|
18
|
+
url += `&corrNr=${corrNr}`;
|
|
19
|
+
}
|
|
20
|
+
const headers = {
|
|
21
|
+
'Content-Type': 'text/plain; charset=utf-8',
|
|
22
|
+
'Accept': 'text/plain'
|
|
23
|
+
};
|
|
24
|
+
return await (0, sessionUtils_1.makeAdtRequestWithSession)(connection, url, 'PUT', sessionId, sourceCode, headers);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Update program source code
|
|
28
|
+
* Full workflow: lock -> upload source -> unlock -> activate (optional)
|
|
29
|
+
*/
|
|
30
|
+
async function updateProgramSource(connection, params) {
|
|
31
|
+
const programName = params.program_name.toUpperCase();
|
|
32
|
+
const sessionId = (0, sessionUtils_1.generateSessionId)();
|
|
33
|
+
let lockHandle = null;
|
|
34
|
+
try {
|
|
35
|
+
// Step 1: Lock the program
|
|
36
|
+
const lockResult = await (0, lock_1.lockProgramForUpdate)(connection, programName, sessionId);
|
|
37
|
+
lockHandle = lockResult.lockHandle;
|
|
38
|
+
const corrNr = lockResult.corrNr;
|
|
39
|
+
// Step 2: Upload new source code
|
|
40
|
+
await uploadProgramSourceForUpdate(connection, programName, params.source_code, lockHandle, sessionId, corrNr);
|
|
41
|
+
// Step 3: Unlock the program
|
|
42
|
+
await (0, unlock_1.unlockProgram)(connection, programName, lockHandle, sessionId);
|
|
43
|
+
lockHandle = null;
|
|
44
|
+
// Step 4: Activate the program (optional)
|
|
45
|
+
const shouldActivate = params.activate === true;
|
|
46
|
+
if (shouldActivate) {
|
|
47
|
+
await (0, activation_1.activateProgram)(connection, programName, sessionId);
|
|
48
|
+
}
|
|
49
|
+
// Return success response
|
|
50
|
+
return {
|
|
51
|
+
data: {
|
|
52
|
+
success: true,
|
|
53
|
+
program_name: programName,
|
|
54
|
+
type: 'PROG/P',
|
|
55
|
+
message: shouldActivate
|
|
56
|
+
? `Program ${programName} source updated and activated successfully`
|
|
57
|
+
: `Program ${programName} source updated successfully (not activated)`,
|
|
58
|
+
uri: `/sap/bc/adt/programs/programs/${(0, internalUtils_1.encodeSapObjectName)(programName).toLowerCase()}`,
|
|
59
|
+
source_size_bytes: params.source_code.length
|
|
60
|
+
},
|
|
61
|
+
status: 200,
|
|
62
|
+
statusText: 'OK',
|
|
63
|
+
headers: {},
|
|
64
|
+
config: {}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
// CRITICAL: Always try to unlock on error to prevent locked objects
|
|
69
|
+
if (lockHandle) {
|
|
70
|
+
try {
|
|
71
|
+
await (0, unlock_1.unlockProgram)(connection, programName, lockHandle, sessionId);
|
|
72
|
+
}
|
|
73
|
+
catch (unlockError) {
|
|
74
|
+
// Ignore unlock errors
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const errorMessage = error.response?.data
|
|
78
|
+
? (typeof error.response.data === 'string' ? error.response.data : JSON.stringify(error.response.data))
|
|
79
|
+
: error.message;
|
|
80
|
+
throw new Error(`Failed to update program ${programName}: ${errorMessage}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Program validation
|
|
3
|
+
*/
|
|
4
|
+
import { AbapConnection } from '@mcp-abap-adt/connection';
|
|
5
|
+
import { ValidationResult } from '../shared/validation';
|
|
6
|
+
/**
|
|
7
|
+
* Validate program name
|
|
8
|
+
*/
|
|
9
|
+
export declare function validateProgramName(connection: AbapConnection, programName: string, description?: string): Promise<ValidationResult>;
|
|
10
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/core/program/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAsB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE5E;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,cAAc,EAC1B,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC,CAQ3B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Program validation
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.validateProgramName = validateProgramName;
|
|
7
|
+
const validation_1 = require("../shared/validation");
|
|
8
|
+
/**
|
|
9
|
+
* Validate program name
|
|
10
|
+
*/
|
|
11
|
+
async function validateProgramName(connection, programName, description) {
|
|
12
|
+
const params = {};
|
|
13
|
+
if (description) {
|
|
14
|
+
params.description = description;
|
|
15
|
+
}
|
|
16
|
+
return (0, validation_1.validateObjectName)(connection, 'PROG/P', programName, params);
|
|
17
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core read operations - private implementations
|
|
3
|
+
* All read-only methods are implemented here once and reused by clients
|
|
4
|
+
*/
|
|
5
|
+
import { AbapConnection } from '@mcp-abap-adt/connection';
|
|
6
|
+
import { AxiosResponse } from 'axios';
|
|
7
|
+
/**
|
|
8
|
+
* Get ABAP program source code
|
|
9
|
+
*/
|
|
10
|
+
export declare function getProgram(connection: AbapConnection, programName: string): Promise<AxiosResponse>;
|
|
11
|
+
/**
|
|
12
|
+
* Get ABAP class source code
|
|
13
|
+
*/
|
|
14
|
+
export declare function getClass(connection: AbapConnection, className: string): Promise<AxiosResponse>;
|
|
15
|
+
/**
|
|
16
|
+
* Get ABAP table structure
|
|
17
|
+
*/
|
|
18
|
+
export declare function getTable(connection: AbapConnection, tableName: string): Promise<AxiosResponse>;
|
|
19
|
+
/**
|
|
20
|
+
* Get ABAP structure
|
|
21
|
+
*/
|
|
22
|
+
export declare function getStructure(connection: AbapConnection, structureName: string): Promise<AxiosResponse>;
|
|
23
|
+
/**
|
|
24
|
+
* Get ABAP domain
|
|
25
|
+
*/
|
|
26
|
+
export declare function getDomain(connection: AbapConnection, domainName: string): Promise<AxiosResponse>;
|
|
27
|
+
/**
|
|
28
|
+
* Get ABAP data element
|
|
29
|
+
*/
|
|
30
|
+
export declare function getDataElement(connection: AbapConnection, dataElementName: string): Promise<AxiosResponse>;
|
|
31
|
+
/**
|
|
32
|
+
* Get ABAP interface
|
|
33
|
+
*/
|
|
34
|
+
export declare function getInterface(connection: AbapConnection, interfaceName: string): Promise<AxiosResponse>;
|
|
35
|
+
/**
|
|
36
|
+
* Get ABAP function group
|
|
37
|
+
*/
|
|
38
|
+
export declare function getFunctionGroup(connection: AbapConnection, functionGroupName: string): Promise<AxiosResponse>;
|
|
39
|
+
/**
|
|
40
|
+
* Get ABAP function module
|
|
41
|
+
*/
|
|
42
|
+
export declare function getFunction(connection: AbapConnection, functionName: string, functionGroup: string): Promise<AxiosResponse>;
|
|
43
|
+
/**
|
|
44
|
+
* Get ABAP package
|
|
45
|
+
*/
|
|
46
|
+
export declare function getPackage(connection: AbapConnection, packageName: string): Promise<AxiosResponse>;
|
|
47
|
+
/**
|
|
48
|
+
* Get ABAP view (CDS or Classic)
|
|
49
|
+
*/
|
|
50
|
+
export declare function getView(connection: AbapConnection, viewName: string): Promise<AxiosResponse>;
|
|
51
|
+
/**
|
|
52
|
+
* Fetches node structure from SAP ADT repository
|
|
53
|
+
*/
|
|
54
|
+
export declare function fetchNodeStructure(connection: AbapConnection, parentName: string, parentTechName: string, parentType: string, nodeKey: string, withShortDescriptions?: boolean): Promise<AxiosResponse>;
|
|
55
|
+
/**
|
|
56
|
+
* Get system information from SAP ADT (for cloud systems)
|
|
57
|
+
* Returns systemID and userName if available
|
|
58
|
+
*/
|
|
59
|
+
export declare function getSystemInformation(connection: AbapConnection): Promise<{
|
|
60
|
+
systemID?: string;
|
|
61
|
+
userName?: string;
|
|
62
|
+
} | null>;
|
|
63
|
+
//# sourceMappingURL=readOperations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readOperations.d.ts","sourceRoot":"","sources":["../../src/core/readOperations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAkCtC;;GAEG;AACH,wBAAsB,UAAU,CAAC,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAKxG;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAKpG;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAKpG;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAK5G;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAKtG;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAKhH;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAK5G;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAKpH;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,cAAc,EAC1B,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,CAAC,CAMxB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAKxG;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAKlG;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,cAAc,EAC1B,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,qBAAqB,GAAE,OAAc,GACpC,OAAO,CAAC,aAAa,CAAC,CAoBxB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,cAAc,GACzB,OAAO,CAAC;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAuB1D"}
|