@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,269 @@
1
+ "use strict";
2
+ /**
3
+ * DataElement update operations
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getDomainInfo = getDomainInfo;
7
+ exports.updateDataElementInternal = updateDataElementInternal;
8
+ exports.updateDataElement = updateDataElement;
9
+ const connection_1 = require("@mcp-abap-adt/connection");
10
+ const fast_xml_parser_1 = require("fast-xml-parser");
11
+ const internalUtils_1 = require("../../utils/internalUtils");
12
+ const sessionUtils_1 = require("../../utils/sessionUtils");
13
+ const lock_1 = require("./lock");
14
+ const unlock_1 = require("./unlock");
15
+ const activation_1 = require("./activation");
16
+ /**
17
+ * Get domain info to extract dataType, length, decimals
18
+ */
19
+ async function getDomainInfo(connection, domainName) {
20
+ const baseUrl = await connection.getBaseUrl();
21
+ const domainNameEncoded = (0, internalUtils_1.encodeSapObjectName)(domainName.toLowerCase());
22
+ const url = `${baseUrl}/sap/bc/adt/ddic/domains/${domainNameEncoded}`;
23
+ const headers = {
24
+ 'Accept': 'application/vnd.sap.adt.domains.v1+xml, application/vnd.sap.adt.domains.v2+xml'
25
+ };
26
+ const response = await connection.makeAdtRequest({
27
+ url,
28
+ method: 'GET',
29
+ timeout: (0, connection_1.getTimeout)('default'),
30
+ headers
31
+ });
32
+ const parser = new fast_xml_parser_1.XMLParser({
33
+ ignoreAttributes: false,
34
+ attributeNamePrefix: ''
35
+ });
36
+ const result = parser.parse(response.data);
37
+ const domainXml = result['doma:domain'];
38
+ return {
39
+ dataType: domainXml['doma:content']?.['doma:typeInformation']?.['doma:datatype'] || 'CHAR',
40
+ length: domainXml['doma:content']?.['doma:typeInformation']?.['doma:length'] || 100,
41
+ decimals: domainXml['doma:content']?.['doma:typeInformation']?.['doma:decimals'] || 0
42
+ };
43
+ }
44
+ /**
45
+ * Get data element to verify update
46
+ */
47
+ async function getDataElementForVerification(connection, dataElementName, sessionId) {
48
+ const baseUrl = await connection.getBaseUrl();
49
+ const dataElementNameEncoded = (0, internalUtils_1.encodeSapObjectName)(dataElementName.toLowerCase());
50
+ const url = `${baseUrl}/sap/bc/adt/ddic/dataelements/${dataElementNameEncoded}`;
51
+ const headers = {
52
+ 'Accept': 'application/vnd.sap.adt.dataelements.v1+xml, application/vnd.sap.adt.dataelements.v2+xml',
53
+ };
54
+ const response = await connection.makeAdtRequest({
55
+ url,
56
+ method: 'GET',
57
+ timeout: (0, connection_1.getTimeout)('default'),
58
+ headers
59
+ });
60
+ const parser = new fast_xml_parser_1.XMLParser({
61
+ ignoreAttributes: false,
62
+ attributeNamePrefix: '',
63
+ });
64
+ const result = parser.parse(response.data);
65
+ return result['blue:wbobj'];
66
+ }
67
+ /**
68
+ * Update data element with new data
69
+ * Requires object to be locked first (lockHandle must be provided)
70
+ */
71
+ async function updateDataElementInternal(connection, args, lockHandle, sessionId, username, domainInfo) {
72
+ const dataElementNameEncoded = (0, internalUtils_1.encodeSapObjectName)(args.data_element_name.toLowerCase());
73
+ const corrNrParam = args.transport_request ? `&corrNr=${args.transport_request}` : '';
74
+ const url = `/sap/bc/adt/ddic/dataelements/${dataElementNameEncoded}?lockHandle=${lockHandle}${corrNrParam}`;
75
+ if (!args.type_kind) {
76
+ throw new Error('type_kind is required. Must be one of: domain, predefinedAbapType, refToPredefinedAbapType, refToDictionaryType, refToClifType');
77
+ }
78
+ const typeKind = args.type_kind;
79
+ // Determine typeName based on typeKind (same logic as in create.ts)
80
+ let typeName = '';
81
+ if (typeKind === 'domain') {
82
+ typeName = (args.domain_name || args.type_name || '').toUpperCase();
83
+ }
84
+ else if (typeKind === 'predefinedAbapType' || typeKind === 'refToPredefinedAbapType') {
85
+ // For predefinedAbapType and refToPredefinedAbapType, typeName is empty
86
+ typeName = '';
87
+ }
88
+ else if (typeKind === 'refToDictionaryType' || typeKind === 'refToClifType') {
89
+ // For refToDictionaryType and refToClifType, type_name is required
90
+ typeName = (args.type_name || '').toUpperCase();
91
+ }
92
+ let dataType = '';
93
+ let dataTypeLength = 0;
94
+ let dataTypeDecimals = 0;
95
+ if (typeKind === 'domain') {
96
+ dataType = domainInfo.dataType;
97
+ dataTypeLength = domainInfo.length;
98
+ dataTypeDecimals = domainInfo.decimals;
99
+ }
100
+ else if (typeKind === 'predefinedAbapType' || typeKind === 'refToPredefinedAbapType') {
101
+ // For predefinedAbapType and refToPredefinedAbapType, use provided values
102
+ dataType = args.data_type || 'CHAR';
103
+ dataTypeLength = args.length || 100;
104
+ dataTypeDecimals = args.decimals || 0;
105
+ }
106
+ else {
107
+ // For refToDictionaryType and refToClifType, dataType is empty, length/decimals are 0
108
+ dataType = '';
109
+ dataTypeLength = 0;
110
+ dataTypeDecimals = 0;
111
+ }
112
+ const shortMaxLength = 10;
113
+ const mediumMaxLength = 20;
114
+ const longMaxLength = 40;
115
+ const headingMaxLength = 55;
116
+ const shortLabel = (args.short_label || '').substring(0, shortMaxLength);
117
+ const mediumLabel = (args.medium_label || '').substring(0, mediumMaxLength);
118
+ const longLabel = (args.long_label || '').substring(0, longMaxLength);
119
+ const headingLabel = (args.heading_label || '').substring(0, headingMaxLength);
120
+ const shortLength = shortLabel.length || shortMaxLength;
121
+ const mediumLength = mediumLabel.length || mediumMaxLength;
122
+ const longLength = longLabel.length || longMaxLength;
123
+ const headingLength = headingLabel.length || headingMaxLength;
124
+ const searchHelp = args.search_help !== undefined ? args.search_help : '';
125
+ const searchHelpParameter = args.search_help_parameter !== undefined ? args.search_help_parameter : '';
126
+ const setGetParameter = args.set_get_parameter !== undefined ? args.set_get_parameter : '';
127
+ const defaultComponentName = args.default_component_name !== undefined ? args.default_component_name : '';
128
+ const deactivateInputHistory = args.deactivate_input_history !== undefined ? args.deactivate_input_history : false;
129
+ const changeDocument = args.change_document !== undefined ? args.change_document : false;
130
+ const leftToRightDirection = args.left_to_right_direction !== undefined ? args.left_to_right_direction : false;
131
+ const deactivateBIDIFiltering = args.deactivate_bidi_filtering !== undefined ? args.deactivate_bidi_filtering : false;
132
+ const xmlBody = `<?xml version="1.0" encoding="UTF-8"?>
133
+ <blue:wbobj xmlns:blue="http://www.sap.com/wbobj/dictionary/dtel"
134
+ xmlns:adtcore="http://www.sap.com/adt/core"
135
+ xmlns:atom="http://www.w3.org/2005/Atom"
136
+ xmlns:dtel="http://www.sap.com/adt/dictionary/dataelements"
137
+ adtcore:description="${args.description || args.data_element_name}"
138
+ adtcore:language="EN"
139
+ adtcore:name="${args.data_element_name.toUpperCase()}"
140
+ adtcore:type="DTEL/DE"
141
+ adtcore:masterLanguage="EN"
142
+ adtcore:responsible="${username}">
143
+ <adtcore:packageRef adtcore:name="${args.package_name.toUpperCase()}"/>
144
+ <dtel:dataElement>
145
+ <dtel:typeKind>${typeKind}</dtel:typeKind>
146
+ ${typeName ? `<dtel:typeName>${typeName}</dtel:typeName>` : '<dtel:typeName/>'}
147
+ ${dataType ? `<dtel:dataType>${dataType}</dtel:dataType>` : '<dtel:dataType/>'}
148
+ <dtel:dataTypeLength>${String(dataTypeLength).padStart(6, '0')}</dtel:dataTypeLength>
149
+ <dtel:dataTypeDecimals>${String(dataTypeDecimals).padStart(6, '0')}</dtel:dataTypeDecimals>
150
+ <dtel:shortFieldLabel>${shortLabel}</dtel:shortFieldLabel>
151
+ <dtel:shortFieldLength>${shortLength}</dtel:shortFieldLength>
152
+ <dtel:shortFieldMaxLength>${shortMaxLength}</dtel:shortFieldMaxLength>
153
+ <dtel:mediumFieldLabel>${mediumLabel}</dtel:mediumFieldLabel>
154
+ <dtel:mediumFieldLength>${mediumLength}</dtel:mediumFieldLength>
155
+ <dtel:mediumFieldMaxLength>${mediumMaxLength}</dtel:mediumFieldMaxLength>
156
+ <dtel:longFieldLabel>${longLabel}</dtel:longFieldLabel>
157
+ <dtel:longFieldLength>${longLength}</dtel:longFieldLength>
158
+ <dtel:longFieldMaxLength>${longMaxLength}</dtel:longFieldMaxLength>
159
+ <dtel:headingFieldLabel>${headingLabel}</dtel:headingFieldLabel>
160
+ <dtel:headingFieldLength>${headingLength}</dtel:headingFieldLength>
161
+ <dtel:headingFieldMaxLength>${headingMaxLength}</dtel:headingFieldMaxLength>
162
+ ${searchHelp ? `<dtel:searchHelp>${searchHelp}</dtel:searchHelp>` : '<dtel:searchHelp/>'}
163
+ ${searchHelpParameter ? `<dtel:searchHelpParameter>${searchHelpParameter}</dtel:searchHelpParameter>` : '<dtel:searchHelpParameter/>'}
164
+ ${setGetParameter ? `<dtel:setGetParameter>${setGetParameter}</dtel:setGetParameter>` : '<dtel:setGetParameter/>'}
165
+ ${defaultComponentName ? `<dtel:defaultComponentName>${defaultComponentName}</dtel:defaultComponentName>` : '<dtel:defaultComponentName/>'}
166
+ <dtel:deactivateInputHistory>${deactivateInputHistory}</dtel:deactivateInputHistory>
167
+ <dtel:changeDocument>${changeDocument}</dtel:changeDocument>
168
+ <dtel:leftToRightDirection>${leftToRightDirection}</dtel:leftToRightDirection>
169
+ <dtel:deactivateBIDIFiltering>${deactivateBIDIFiltering}</dtel:deactivateBIDIFiltering>
170
+ </dtel:dataElement>
171
+ </blue:wbobj>`;
172
+ const headers = {
173
+ 'Accept': 'application/vnd.sap.adt.dataelements.v1+xml, application/vnd.sap.adt.dataelements.v2+xml',
174
+ 'Content-Type': 'application/vnd.sap.adt.dataelements.v2+xml; charset=utf-8'
175
+ };
176
+ // Debug: log XML when DEBUG_TESTS is enabled (formatted for readability)
177
+ if (process.env.DEBUG_TESTS === 'true') {
178
+ console.log('[UPDATE XML]');
179
+ // Format XML with indentation for readability
180
+ try {
181
+ const { XMLParser, XMLBuilder } = require('fast-xml-parser');
182
+ const parser = new XMLParser({ ignoreAttributes: false, attributeNamePrefix: '' });
183
+ const builder = new XMLBuilder({
184
+ ignoreAttributes: false,
185
+ attributeNamePrefix: '',
186
+ format: true,
187
+ indentBy: ' '
188
+ });
189
+ const parsed = parser.parse(xmlBody);
190
+ const formatted = builder.build(parsed);
191
+ console.log(formatted);
192
+ }
193
+ catch {
194
+ // If formatting fails, just log as-is
195
+ console.log(xmlBody);
196
+ }
197
+ }
198
+ return (0, sessionUtils_1.makeAdtRequestWithSession)(connection, url, 'PUT', sessionId, xmlBody, headers);
199
+ }
200
+ /**
201
+ * Update ABAP data element
202
+ * Full workflow: get domain info -> lock -> update -> unlock -> activate
203
+ */
204
+ async function updateDataElement(connection, params) {
205
+ if (!params.data_element_name) {
206
+ throw new Error('Data element name is required');
207
+ }
208
+ if (!params.package_name) {
209
+ throw new Error('Package name is required');
210
+ }
211
+ const sessionId = (0, sessionUtils_1.generateSessionId)();
212
+ const username = process.env.SAP_USER || process.env.SAP_USERNAME || 'MPCUSER';
213
+ let lockHandle = '';
214
+ try {
215
+ if (!params.type_kind) {
216
+ throw new Error('type_kind is required. Must be one of: domain, predefinedAbapType, refToPredefinedAbapType, refToDictionaryType, refToClifType');
217
+ }
218
+ const typeKind = params.type_kind;
219
+ let domainInfo = { dataType: 'CHAR', length: 100, decimals: 0 };
220
+ if (typeKind === 'domain') {
221
+ const domainName = params.type_name || params.domain_name || 'CHAR100';
222
+ domainInfo = await getDomainInfo(connection, domainName);
223
+ }
224
+ else if (typeKind === 'predefinedAbapType') {
225
+ domainInfo = {
226
+ dataType: params.data_type || 'CHAR',
227
+ length: params.length || 100,
228
+ decimals: params.decimals || 0
229
+ };
230
+ }
231
+ lockHandle = await (0, lock_1.lockDataElement)(connection, params.data_element_name, sessionId);
232
+ await new Promise(resolve => setTimeout(resolve, 500));
233
+ await updateDataElementInternal(connection, params, lockHandle, sessionId, username, domainInfo);
234
+ await (0, unlock_1.unlockDataElement)(connection, params.data_element_name, lockHandle, sessionId);
235
+ const shouldActivate = params.activate !== false;
236
+ if (shouldActivate) {
237
+ await (0, activation_1.activateDataElement)(connection, params.data_element_name, sessionId);
238
+ }
239
+ const updatedDataElement = await getDataElementForVerification(connection, params.data_element_name, sessionId);
240
+ return {
241
+ data: {
242
+ success: true,
243
+ data_element_name: params.data_element_name,
244
+ package: params.package_name,
245
+ transport_request: params.transport_request,
246
+ domain_name: params.domain_name,
247
+ status: shouldActivate ? 'active' : 'inactive',
248
+ session_id: sessionId,
249
+ message: `Data element ${params.data_element_name} updated${shouldActivate ? ' and activated' : ''} successfully`,
250
+ data_element_details: updatedDataElement
251
+ },
252
+ status: 200,
253
+ statusText: 'OK',
254
+ headers: {},
255
+ config: {}
256
+ };
257
+ }
258
+ catch (error) {
259
+ if (lockHandle) {
260
+ try {
261
+ await (0, unlock_1.unlockDataElement)(connection, params.data_element_name, lockHandle, sessionId);
262
+ }
263
+ catch (unlockError) {
264
+ // Ignore unlock errors
265
+ }
266
+ }
267
+ throw error;
268
+ }
269
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Delete operations - Common deletion logic for all object types
3
+ * All functions extracted 1:1 from handlers, adapted to accept connection as parameter
4
+ */
5
+ import { AbapConnection } from '@mcp-abap-adt/connection';
6
+ import { AxiosResponse } from 'axios';
7
+ export interface DeleteObjectParams {
8
+ object_name: string;
9
+ object_type: string;
10
+ function_group_name?: string;
11
+ transport_request?: string;
12
+ }
13
+ /**
14
+ * Check if object can be deleted (deletion check)
15
+ */
16
+ export declare function checkDeletion(connection: AbapConnection, params: DeleteObjectParams): Promise<AxiosResponse>;
17
+ /**
18
+ * Delete ABAP object using ADT deletion API
19
+ * For some object types (like interfaces), empty transportNumber tag is required
20
+ */
21
+ export declare function deleteObject(connection: AbapConnection, params: DeleteObjectParams): Promise<AxiosResponse>;
22
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/core/delete.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAc,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAItC,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAyDD;;GAEG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,aAAa,CAAC,CAoCxB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,aAAa,CAAC,CAoExB"}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ /**
3
+ * Delete operations - Common deletion logic for all object types
4
+ * All functions extracted 1:1 from handlers, adapted to accept connection as parameter
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.checkDeletion = checkDeletion;
8
+ exports.deleteObject = deleteObject;
9
+ const connection_1 = require("@mcp-abap-adt/connection");
10
+ const internalUtils_1 = require("../utils/internalUtils");
11
+ /**
12
+ * Get ADT URI for object
13
+ */
14
+ function getObjectUri(objectType, objectName, functionGroupName) {
15
+ const encodedName = (0, internalUtils_1.encodeSapObjectName)(objectName);
16
+ // Normalize object type (order matters! Check longer patterns first)
17
+ const type = objectType.toLowerCase()
18
+ .replace('clas/oc', 'class')
19
+ .replace('prog/p', 'program')
20
+ .replace('intf/oi', 'interface')
21
+ .replace('fugr/ff', 'function_module') // Check this BEFORE 'fugr/f'
22
+ .replace('fugr/f', 'function_group')
23
+ .replace('tabl/dt', 'table')
24
+ .replace('stru/dt', 'structure') // STRU/DT is used for structures
25
+ .replace('ttyp/st', 'structure')
26
+ .replace('ddls/df', 'view')
27
+ .replace('dtel/de', 'data_element')
28
+ .replace('doma/dd', 'domain') // DOMA/DD is also used for domains
29
+ .replace('doma/dm', 'domain');
30
+ switch (type) {
31
+ case 'class':
32
+ return `/sap/bc/adt/oo/classes/${encodedName}`;
33
+ case 'program':
34
+ return `/sap/bc/adt/programs/programs/${encodedName}`;
35
+ case 'interface':
36
+ return `/sap/bc/adt/oo/interfaces/${encodedName}`;
37
+ case 'function_group':
38
+ return `/sap/bc/adt/functions/groups/${encodedName}`;
39
+ case 'function_module':
40
+ if (!functionGroupName) {
41
+ throw new Error('function_group_name is required for function_module deletion');
42
+ }
43
+ const encodedGroupName = (0, internalUtils_1.encodeSapObjectName)(functionGroupName);
44
+ return `/sap/bc/adt/functions/groups/${encodedGroupName}/fmodules/${encodedName}`;
45
+ case 'table':
46
+ return `/sap/bc/adt/ddic/tables/${encodedName}`;
47
+ case 'structure':
48
+ return `/sap/bc/adt/ddic/structures/${encodedName}`;
49
+ case 'view':
50
+ return `/sap/bc/adt/ddic/ddl/sources/${encodedName}`;
51
+ case 'domain':
52
+ return `/sap/bc/adt/ddic/domains/${encodedName}`;
53
+ case 'data_element':
54
+ return `/sap/bc/adt/ddic/dataelements/${encodedName}`;
55
+ default:
56
+ throw new Error(`Unsupported object type: ${objectType}`);
57
+ }
58
+ }
59
+ /**
60
+ * Check if object can be deleted (deletion check)
61
+ */
62
+ async function checkDeletion(connection, params) {
63
+ const { object_name, object_type, function_group_name } = params;
64
+ // Validation
65
+ if (!object_name || !object_type) {
66
+ throw new Error('object_name and object_type are required');
67
+ }
68
+ // Build object URI from object_name and object_type
69
+ const objectUri = getObjectUri(object_type, object_name, function_group_name);
70
+ const baseUrl = await connection.getBaseUrl();
71
+ const checkUrl = `${baseUrl}/sap/bc/adt/deletion/check`;
72
+ // Build XML check request (no transportNumber in check request)
73
+ const xmlPayload = `<?xml version="1.0" encoding="UTF-8"?>
74
+ <del:checkRequest xmlns:del="http://www.sap.com/adt/deletion" xmlns:adtcore="http://www.sap.com/adt/core">
75
+ <del:object adtcore:uri="${objectUri}"/>
76
+ </del:checkRequest>`;
77
+ const headers = {
78
+ 'Accept': 'application/vnd.sap.adt.deletion.check.response.v1+xml',
79
+ 'Content-Type': 'application/vnd.sap.adt.deletion.check.request.v1+xml'
80
+ };
81
+ return await connection.makeAdtRequest({
82
+ url: checkUrl,
83
+ method: 'POST',
84
+ timeout: (0, connection_1.getTimeout)('default'),
85
+ data: xmlPayload,
86
+ headers
87
+ });
88
+ }
89
+ /**
90
+ * Delete ABAP object using ADT deletion API
91
+ * For some object types (like interfaces), empty transportNumber tag is required
92
+ */
93
+ async function deleteObject(connection, params) {
94
+ const { object_name, object_type, function_group_name, transport_request } = params;
95
+ // Validation
96
+ if (!object_name || !object_type) {
97
+ throw new Error('object_name and object_type are required');
98
+ }
99
+ // Build object URI from object_name and object_type
100
+ const objectUri = getObjectUri(object_type, object_name, function_group_name);
101
+ const baseUrl = await connection.getBaseUrl();
102
+ const deletionUrl = `${baseUrl}/sap/bc/adt/deletion/delete`;
103
+ // Build XML deletion request
104
+ // For interfaces and some other object types, empty transportNumber tag is required
105
+ // For structures, empty tag causes failure, so we omit it entirely
106
+ const normalizedType = object_type.toLowerCase();
107
+ const requiresEmptyTransportTag = normalizedType.includes('intf') ||
108
+ normalizedType.includes('clas') ||
109
+ normalizedType.includes('prog');
110
+ let transportNumberTag = '';
111
+ if (transport_request && transport_request.trim()) {
112
+ transportNumberTag = `<del:transportNumber>${transport_request}</del:transportNumber>`;
113
+ }
114
+ else if (requiresEmptyTransportTag) {
115
+ // For interfaces, classes, programs: add empty self-closing tag
116
+ transportNumberTag = '<del:transportNumber/>';
117
+ }
118
+ // For structures and other types: omit tag entirely if no transport_request
119
+ const xmlPayload = `<?xml version="1.0" encoding="UTF-8"?>
120
+ <del:deletionRequest xmlns:del="http://www.sap.com/adt/deletion" xmlns:adtcore="http://www.sap.com/adt/core">
121
+ <del:object adtcore:uri="${objectUri}">
122
+ ${transportNumberTag}
123
+ </del:object>
124
+ </del:deletionRequest>`;
125
+ const headers = {
126
+ 'Accept': 'application/vnd.sap.adt.deletion.response.v1+xml',
127
+ 'Content-Type': 'application/vnd.sap.adt.deletion.request.v1+xml'
128
+ };
129
+ const response = await connection.makeAdtRequest({
130
+ url: deletionUrl,
131
+ method: 'POST',
132
+ timeout: (0, connection_1.getTimeout)('default'),
133
+ data: xmlPayload,
134
+ headers
135
+ });
136
+ // Return success response
137
+ return {
138
+ ...response,
139
+ data: {
140
+ success: true,
141
+ object_name,
142
+ object_type,
143
+ object_uri: objectUri,
144
+ transport_request: transport_request || 'local',
145
+ message: `Object ${object_name} deleted successfully`
146
+ }
147
+ };
148
+ }
@@ -0,0 +1,135 @@
1
+ /**
2
+ * DomainBuilder - Fluent API for domain operations with Promise chaining
3
+ *
4
+ * Supports:
5
+ * - Method chaining: builder.create().then(b => b.lock()).then(b => b.update())...
6
+ * - Error handling: .catch() for error callbacks
7
+ * - Cleanup: .finally() for guaranteed execution
8
+ * - Result storage: all results stored in logger/state
9
+ * - Chain interruption: chain stops on first error (standard Promise behavior)
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const builder = new DomainBuilder(connection, logger, {
14
+ * domainName: 'Z_TEST_DOMAIN',
15
+ * packageName: 'ZOK_TEST_PKG_01'
16
+ * });
17
+ *
18
+ * await builder
19
+ * .create()
20
+ * .then(b => b.lock())
21
+ * .then(b => b.update())
22
+ * .then(b => b.check())
23
+ * .then(b => b.unlock())
24
+ * .then(b => b.activate())
25
+ * .catch(error => {
26
+ * logger.error('Operation failed:', error);
27
+ * })
28
+ * .finally(() => {
29
+ * // Cleanup - always executes
30
+ * });
31
+ * ```
32
+ */
33
+ import { AbapConnection } from '@mcp-abap-adt/connection';
34
+ import { AxiosResponse } from 'axios';
35
+ import { FixedValue } from './types';
36
+ import { ValidationResult } from '../shared/validation';
37
+ export interface DomainBuilderLogger {
38
+ debug?: (message: string, ...args: any[]) => void;
39
+ info?: (message: string, ...args: any[]) => void;
40
+ warn?: (message: string, ...args: any[]) => void;
41
+ error?: (message: string, ...args: any[]) => void;
42
+ }
43
+ export interface DomainBuilderConfig {
44
+ domainName: string;
45
+ packageName?: string;
46
+ transportRequest?: string;
47
+ description?: string;
48
+ datatype?: string;
49
+ length?: number;
50
+ decimals?: number;
51
+ conversion_exit?: string;
52
+ lowercase?: boolean;
53
+ sign_exists?: boolean;
54
+ value_table?: string;
55
+ fixed_values?: FixedValue[];
56
+ sessionId?: string;
57
+ onLock?: (lockHandle: string, sessionId: string) => void;
58
+ }
59
+ export interface DomainBuilderState {
60
+ validationResult?: ValidationResult;
61
+ createResult?: AxiosResponse;
62
+ lockHandle?: string;
63
+ updateResult?: AxiosResponse;
64
+ checkResult?: AxiosResponse;
65
+ unlockResult?: AxiosResponse;
66
+ activateResult?: AxiosResponse;
67
+ readResult?: AxiosResponse;
68
+ transportResult?: AxiosResponse;
69
+ errors: Array<{
70
+ method: string;
71
+ error: Error;
72
+ timestamp: Date;
73
+ }>;
74
+ }
75
+ export declare class DomainBuilder {
76
+ private connection;
77
+ private logger;
78
+ private config;
79
+ private lockHandle?;
80
+ private sessionId;
81
+ private state;
82
+ constructor(connection: AbapConnection, logger: DomainBuilderLogger, config: DomainBuilderConfig);
83
+ setPackage(packageName: string): this;
84
+ setRequest(transportRequest: string): this;
85
+ setName(domainName: string): this;
86
+ setDescription(description: string): this;
87
+ setDatatype(datatype: string): this;
88
+ setLength(length: number): this;
89
+ setDecimals(decimals: number): this;
90
+ setConversionExit(conversion_exit: string): this;
91
+ setLowercase(lowercase: boolean): this;
92
+ setSignExists(sign_exists: boolean): this;
93
+ setValueTable(value_table: string): this;
94
+ setFixedValues(fixed_values: FixedValue[]): this;
95
+ validate(): Promise<this>;
96
+ create(): Promise<this>;
97
+ lock(): Promise<this>;
98
+ update(): Promise<this>;
99
+ check(version?: 'active' | 'inactive'): Promise<this>;
100
+ unlock(): Promise<this>;
101
+ activate(): Promise<this>;
102
+ read(): Promise<this>;
103
+ readTransport(): Promise<this>;
104
+ forceUnlock(): Promise<void>;
105
+ getState(): Readonly<DomainBuilderState>;
106
+ getDomainName(): string;
107
+ getLockHandle(): string | undefined;
108
+ getSessionId(): string;
109
+ getCreateResult(): AxiosResponse | undefined;
110
+ getUpdateResult(): AxiosResponse | undefined;
111
+ getCheckResult(): AxiosResponse | undefined;
112
+ getUnlockResult(): AxiosResponse | undefined;
113
+ getActivateResult(): AxiosResponse | undefined;
114
+ getReadResult(): AxiosResponse | undefined;
115
+ getTransportResult(): AxiosResponse | undefined;
116
+ getErrors(): ReadonlyArray<{
117
+ method: string;
118
+ error: Error;
119
+ timestamp: Date;
120
+ }>;
121
+ getResults(): {
122
+ create?: AxiosResponse;
123
+ update?: AxiosResponse;
124
+ check?: AxiosResponse;
125
+ unlock?: AxiosResponse;
126
+ activate?: AxiosResponse;
127
+ lockHandle?: string;
128
+ errors: Array<{
129
+ method: string;
130
+ error: Error;
131
+ timestamp: Date;
132
+ }>;
133
+ };
134
+ }
135
+ //# sourceMappingURL=DomainBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DomainBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/domain/DomainBuilder.ts"],"names":[],"mappings":"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"}