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