@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,12 @@
1
+ /**
2
+ * FunctionGroup create operations
3
+ */
4
+ import { AbapConnection } from '@mcp-abap-adt/connection';
5
+ import { AxiosResponse } from 'axios';
6
+ import { CreateFunctionGroupParams } from './types';
7
+ /**
8
+ * Create ABAP function group
9
+ * Full workflow: create -> activate (optional)
10
+ */
11
+ export declare function createFunctionGroup(connection: AbapConnection, params: CreateFunctionGroupParams): Promise<AxiosResponse>;
12
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/core/functionGroup/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,yBAAyB,EAAE,MAAM,SAAS,CAAC;AA4CpD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,aAAa,CAAC,CAuDxB"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ /**
3
+ * FunctionGroup create operations
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createFunctionGroup = createFunctionGroup;
7
+ const connection_1 = require("@mcp-abap-adt/connection");
8
+ const fast_xml_parser_1 = require("fast-xml-parser");
9
+ const systemInfo_1 = require("../shared/systemInfo");
10
+ const activation_1 = require("./activation");
11
+ /**
12
+ * Create function group metadata via POST
13
+ */
14
+ async function createFunctionGroupObject(connection, functionGroupName, description, packageName, transportRequest) {
15
+ const baseUrl = await connection.getBaseUrl();
16
+ const url = `${baseUrl}/sap/bc/adt/functions/groups${transportRequest ? `?corrNr=${transportRequest}` : ''}`;
17
+ // Get masterSystem and responsible (only for cloud systems)
18
+ // On cloud, getSystemInformation returns systemID and userName
19
+ // On on-premise, it returns null, so we don't add these attributes
20
+ const systemInfo = await (0, systemInfo_1.getSystemInformation)(connection);
21
+ const masterSystem = systemInfo?.systemID;
22
+ const username = systemInfo?.userName || process.env.SAP_USERNAME || process.env.SAP_USER || '';
23
+ const masterSystemAttr = masterSystem ? ` adtcore:masterSystem="${masterSystem}"` : '';
24
+ const responsibleAttr = username ? ` adtcore:responsible="${username}"` : '';
25
+ const xmlPayload = `<?xml version="1.0" encoding="UTF-8"?>
26
+ <group:abapFunctionGroup xmlns:group="http://www.sap.com/adt/functions/groups" xmlns:adtcore="http://www.sap.com/adt/core" adtcore:description="${description}" adtcore:language="EN" adtcore:name="${functionGroupName}" adtcore:type="FUGR/F" adtcore:masterLanguage="EN"${masterSystemAttr}${responsibleAttr}>
27
+ <adtcore:packageRef adtcore:name="${packageName}"/>
28
+ </group:abapFunctionGroup>`;
29
+ const headers = {
30
+ 'Content-Type': 'application/vnd.sap.adt.functions.groups.v3+xml',
31
+ 'Accept': 'application/vnd.sap.adt.functions.groups.v3+xml'
32
+ };
33
+ return connection.makeAdtRequest({
34
+ url,
35
+ method: 'POST',
36
+ timeout: (0, connection_1.getTimeout)('default'),
37
+ data: xmlPayload,
38
+ headers
39
+ });
40
+ }
41
+ /**
42
+ * Create ABAP function group
43
+ * Full workflow: create -> activate (optional)
44
+ */
45
+ async function createFunctionGroup(connection, params) {
46
+ if (!params.function_group_name || !params.package_name) {
47
+ throw new Error('function_group_name and package_name are required');
48
+ }
49
+ if (params.function_group_name.length > 26) {
50
+ throw new Error('Function group name must not exceed 26 characters');
51
+ }
52
+ if (!/^[ZY]/i.test(params.function_group_name)) {
53
+ throw new Error('Function group name must start with Z or Y (customer namespace)');
54
+ }
55
+ try {
56
+ const createResponse = await createFunctionGroupObject(connection, params.function_group_name, params.description || params.function_group_name, params.package_name, params.transport_request);
57
+ const shouldActivate = params.activate !== false;
58
+ if (shouldActivate) {
59
+ await (0, activation_1.activateFunctionGroup)(connection, params.function_group_name);
60
+ }
61
+ // Return the real response from SAP (from initial POST)
62
+ return createResponse;
63
+ }
64
+ catch (error) {
65
+ let errorMessage = `Failed to create function group: ${error}`;
66
+ if (error.response?.status === 400) {
67
+ errorMessage = `Bad request. Check if function group name is valid and package exists.`;
68
+ }
69
+ else if (error.response?.status === 409) {
70
+ errorMessage = `Function group ${params.function_group_name} already exists.`;
71
+ }
72
+ else if (error.response?.data && typeof error.response.data === 'string') {
73
+ try {
74
+ const parser = new fast_xml_parser_1.XMLParser({
75
+ ignoreAttributes: false,
76
+ attributeNamePrefix: '@_'
77
+ });
78
+ const errorData = parser.parse(error.response.data);
79
+ const errorMsg = errorData['exc:exception']?.message?.['#text'] || errorData['exc:exception']?.message;
80
+ if (errorMsg) {
81
+ errorMessage = `SAP Error: ${errorMsg}`;
82
+ }
83
+ }
84
+ catch (parseError) {
85
+ // Ignore parse errors, use default message
86
+ }
87
+ }
88
+ throw new Error(errorMessage);
89
+ }
90
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * FunctionGroup delete operations
3
+ */
4
+ import { AbapConnection } from '@mcp-abap-adt/connection';
5
+ import { AxiosResponse } from 'axios';
6
+ export interface DeleteFunctionGroupParams {
7
+ function_group_name: string;
8
+ transport_request?: string;
9
+ }
10
+ /**
11
+ * Delete ABAP function group
12
+ */
13
+ export declare function deleteFunctionGroup(connection: AbapConnection, params: DeleteFunctionGroupParams): Promise<AxiosResponse>;
14
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/core/functionGroup/delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,MAAM,WAAW,yBAAyB;IACxC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,aAAa,CAAC,CAYxB"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * FunctionGroup delete operations
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.deleteFunctionGroup = deleteFunctionGroup;
7
+ const delete_1 = require("../delete");
8
+ /**
9
+ * Delete ABAP function group
10
+ */
11
+ async function deleteFunctionGroup(connection, params) {
12
+ if (!params.function_group_name) {
13
+ throw new Error('function_group_name is required');
14
+ }
15
+ const deleteParams = {
16
+ object_name: params.function_group_name,
17
+ object_type: 'FUGR/F',
18
+ transport_request: params.transport_request
19
+ };
20
+ return await (0, delete_1.deleteObject)(connection, deleteParams);
21
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * FunctionGroup operations - exports
3
+ */
4
+ export * from './types';
5
+ export * from './create';
6
+ export * from './read';
7
+ export * from './activation';
8
+ export * from './check';
9
+ export * from './lock';
10
+ export * from './unlock';
11
+ export * from './update';
12
+ export * from './delete';
13
+ export * from './validation';
14
+ export { FunctionGroupBuilder, type FunctionGroupBuilderConfig, type FunctionGroupBuilderLogger, type FunctionGroupBuilderState } from './FunctionGroupBuilder';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/functionGroup/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,KAAK,0BAA0B,EAAE,KAAK,0BAA0B,EAAE,KAAK,yBAAyB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ /**
3
+ * FunctionGroup operations - exports
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.FunctionGroupBuilder = void 0;
21
+ __exportStar(require("./types"), exports);
22
+ __exportStar(require("./create"), exports);
23
+ __exportStar(require("./read"), exports);
24
+ __exportStar(require("./activation"), exports);
25
+ __exportStar(require("./check"), exports);
26
+ __exportStar(require("./lock"), exports);
27
+ __exportStar(require("./unlock"), exports);
28
+ __exportStar(require("./update"), exports);
29
+ __exportStar(require("./delete"), exports);
30
+ __exportStar(require("./validation"), exports);
31
+ var FunctionGroupBuilder_1 = require("./FunctionGroupBuilder");
32
+ Object.defineProperty(exports, "FunctionGroupBuilder", { enumerable: true, get: function () { return FunctionGroupBuilder_1.FunctionGroupBuilder; } });
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Lock Function Group operations
3
+ */
4
+ import type { AbapConnection } from '@mcp-abap-adt/connection';
5
+ import { AxiosResponse } from 'axios';
6
+ /**
7
+ * Lock a function group for editing
8
+ *
9
+ * @param connection - ABAP connection
10
+ * @param functionGroupName - Name of the function group (e.g., 'Z_FUGR_TEST_0001')
11
+ * @param sessionId - Optional session ID for tracking
12
+ * @returns Lock handle string
13
+ */
14
+ export declare function lockFunctionGroup(connection: AbapConnection, functionGroupName: string, sessionId?: string): Promise<string>;
15
+ /**
16
+ * Unlock a function group
17
+ *
18
+ * @param connection - ABAP connection
19
+ * @param functionGroupName - Name of the function group
20
+ * @param lockHandle - Lock handle from lockFunctionGroup
21
+ * @param sessionId - Optional session ID for tracking
22
+ * @returns AxiosResponse from unlock request
23
+ */
24
+ export declare function unlockFunctionGroup(connection: AbapConnection, functionGroupName: string, lockHandle: string, sessionId?: string): Promise<AxiosResponse>;
25
+ //# sourceMappingURL=lock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../../src/core/functionGroup/lock.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAItC;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,cAAc,EAC1B,iBAAiB,EAAE,MAAM,EACzB,SAAS,GAAE,MAAW,GACrB,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,cAAc,EAC1B,iBAAiB,EAAE,MAAM,EACzB,UAAU,EAAE,MAAM,EAClB,SAAS,GAAE,MAAW,GACrB,OAAO,CAAC,aAAa,CAAC,CAIxB"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /**
3
+ * Lock Function Group operations
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.lockFunctionGroup = lockFunctionGroup;
7
+ exports.unlockFunctionGroup = unlockFunctionGroup;
8
+ const sessionUtils_1 = require("../../utils/sessionUtils");
9
+ const fast_xml_parser_1 = require("fast-xml-parser");
10
+ /**
11
+ * Lock a function group for editing
12
+ *
13
+ * @param connection - ABAP connection
14
+ * @param functionGroupName - Name of the function group (e.g., 'Z_FUGR_TEST_0001')
15
+ * @param sessionId - Optional session ID for tracking
16
+ * @returns Lock handle string
17
+ */
18
+ async function lockFunctionGroup(connection, functionGroupName, sessionId = '') {
19
+ const url = `/sap/bc/adt/functions/groups/${functionGroupName.toLowerCase()}?_action=LOCK&accessMode=MODIFY`;
20
+ const headers = {
21
+ 'Accept': 'application/vnd.sap.as+xml;charset=UTF-8;dataname=com.sap.adt.lock.result;q=0.8, application/vnd.sap.as+xml;charset=UTF-8;dataname=com.sap.adt.lock.result2;q=0.9',
22
+ };
23
+ const response = await (0, sessionUtils_1.makeAdtRequestWithSession)(connection, url, 'POST', sessionId, null, headers);
24
+ // Extract lock handle from response header
25
+ const lockHandle = response.headers['sap-adt-lm-handle'];
26
+ if (!lockHandle) {
27
+ // Try parsing from XML body if header not present
28
+ const parser = new fast_xml_parser_1.XMLParser({ ignoreAttributes: false, attributeNamePrefix: '' });
29
+ const result = parser.parse(response.data);
30
+ const xmlLockHandle = result?.['asx:abap']?.['asx:values']?.['DATA']?.['LOCK_HANDLE'];
31
+ if (!xmlLockHandle) {
32
+ throw new Error('Failed to acquire lock: no lock handle in response');
33
+ }
34
+ return xmlLockHandle;
35
+ }
36
+ return lockHandle;
37
+ }
38
+ /**
39
+ * Unlock a function group
40
+ *
41
+ * @param connection - ABAP connection
42
+ * @param functionGroupName - Name of the function group
43
+ * @param lockHandle - Lock handle from lockFunctionGroup
44
+ * @param sessionId - Optional session ID for tracking
45
+ * @returns AxiosResponse from unlock request
46
+ */
47
+ async function unlockFunctionGroup(connection, functionGroupName, lockHandle, sessionId = '') {
48
+ const url = `/sap/bc/adt/functions/groups/${functionGroupName.toLowerCase()}?_action=UNLOCK&lockHandle=${lockHandle}`;
49
+ return (0, sessionUtils_1.makeAdtRequestWithSession)(connection, url, 'POST', sessionId, null);
50
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * FunctionGroup read operations
3
+ */
4
+ import { AbapConnection } from '@mcp-abap-adt/connection';
5
+ import { AxiosResponse } from 'axios';
6
+ /**
7
+ * Get ABAP function group
8
+ */
9
+ export declare function getFunctionGroup(connection: AbapConnection, functionGroupName: string): Promise<AxiosResponse>;
10
+ /**
11
+ * Get transport request for ABAP function group
12
+ * @param connection - SAP connection
13
+ * @param functionGroupName - Function group name
14
+ * @returns Transport request information
15
+ */
16
+ export declare function getFunctionGroupTransport(connection: AbapConnection, functionGroupName: string): Promise<AxiosResponse>;
17
+ //# sourceMappingURL=read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/core/functionGroup/read.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAc,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAWpH;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,cAAc,EAC1B,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,aAAa,CAAC,CAaxB"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ /**
3
+ * FunctionGroup read operations
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getFunctionGroup = getFunctionGroup;
7
+ exports.getFunctionGroupTransport = getFunctionGroupTransport;
8
+ const connection_1 = require("@mcp-abap-adt/connection");
9
+ const internalUtils_1 = require("../../utils/internalUtils");
10
+ /**
11
+ * Get ABAP function group
12
+ */
13
+ async function getFunctionGroup(connection, functionGroupName) {
14
+ const baseUrl = await connection.getBaseUrl();
15
+ const encodedName = (0, internalUtils_1.encodeSapObjectName)(functionGroupName);
16
+ const url = `${baseUrl}/sap/bc/adt/functions/groups/${encodedName}`;
17
+ return connection.makeAdtRequest({
18
+ url,
19
+ method: 'GET',
20
+ timeout: (0, connection_1.getTimeout)('default'),
21
+ headers: {}
22
+ });
23
+ }
24
+ /**
25
+ * Get transport request for ABAP function group
26
+ * @param connection - SAP connection
27
+ * @param functionGroupName - Function group name
28
+ * @returns Transport request information
29
+ */
30
+ async function getFunctionGroupTransport(connection, functionGroupName) {
31
+ const baseUrl = await connection.getBaseUrl();
32
+ const encodedName = (0, internalUtils_1.encodeSapObjectName)(functionGroupName);
33
+ const url = `${baseUrl}/sap/bc/adt/functions/groups/${encodedName}/transport`;
34
+ return connection.makeAdtRequest({
35
+ url,
36
+ method: 'GET',
37
+ timeout: (0, connection_1.getTimeout)('default'),
38
+ headers: {
39
+ 'Accept': 'application/vnd.sap.adt.transportorganizer.v1+xml'
40
+ }
41
+ });
42
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * FunctionGroup types
3
+ */
4
+ export interface CreateFunctionGroupParams {
5
+ function_group_name: string;
6
+ description?: string;
7
+ package_name: string;
8
+ transport_request?: string;
9
+ activate?: boolean;
10
+ }
11
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/functionGroup/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,yBAAyB;IACxC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /**
3
+ * FunctionGroup types
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,5 @@
1
+ /**
2
+ * FunctionGroup unlock operations
3
+ */
4
+ export { unlockFunctionGroup } from './lock';
5
+ //# sourceMappingURL=unlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unlock.d.ts","sourceRoot":"","sources":["../../../src/core/functionGroup/unlock.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * FunctionGroup unlock operations
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.unlockFunctionGroup = void 0;
7
+ var lock_1 = require("./lock");
8
+ Object.defineProperty(exports, "unlockFunctionGroup", { enumerable: true, get: function () { return lock_1.unlockFunctionGroup; } });
@@ -0,0 +1,20 @@
1
+ /**
2
+ * FunctionGroup update operations
3
+ *
4
+ * Note: Function groups are containers for function modules.
5
+ * They don't have source code to update directly, but metadata can be updated.
6
+ */
7
+ import { AbapConnection } from '@mcp-abap-adt/connection';
8
+ import { AxiosResponse } from 'axios';
9
+ export interface UpdateFunctionGroupParams {
10
+ function_group_name: string;
11
+ description?: string;
12
+ transport_request?: string;
13
+ lock_handle?: string;
14
+ }
15
+ /**
16
+ * Update function group metadata (description)
17
+ * Full workflow: lock -> get current -> update -> unlock
18
+ */
19
+ export declare function updateFunctionGroup(connection: AbapConnection, params: UpdateFunctionGroupParams): Promise<AxiosResponse>;
20
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/core/functionGroup/update.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAc,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAOtC,MAAM,WAAW,yBAAyB;IACxC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAqDD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,aAAa,CAAC,CA+ExB"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ /**
3
+ * FunctionGroup update operations
4
+ *
5
+ * Note: Function groups are containers for function modules.
6
+ * They don't have source code to update directly, but metadata can be updated.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.updateFunctionGroup = updateFunctionGroup;
10
+ const connection_1 = require("@mcp-abap-adt/connection");
11
+ const fast_xml_parser_1 = require("fast-xml-parser");
12
+ const internalUtils_1 = require("../../utils/internalUtils");
13
+ const read_1 = require("./read");
14
+ const lock_1 = require("./lock");
15
+ const unlock_1 = require("./unlock");
16
+ /**
17
+ * Update function group metadata via PUT
18
+ */
19
+ async function updateFunctionGroupMetadata(connection, functionGroupName, currentXml, newDescription, lockHandle, transportRequest) {
20
+ const baseUrl = await connection.getBaseUrl();
21
+ const encodedName = (0, internalUtils_1.encodeSapObjectName)(functionGroupName);
22
+ const url = `${baseUrl}/sap/bc/adt/functions/groups/${encodedName}${lockHandle ? `?lockHandle=${lockHandle}` : ''}${transportRequest ? `${lockHandle ? '&' : '?'}corrNr=${transportRequest}` : ''}`;
23
+ // Parse current XML to update description
24
+ const parser = new fast_xml_parser_1.XMLParser({
25
+ ignoreAttributes: false,
26
+ attributeNamePrefix: '@_',
27
+ parseAttributeValue: false
28
+ });
29
+ const parsedXml = parser.parse(currentXml);
30
+ const functionGroup = parsedXml['group:abapFunctionGroup'];
31
+ // Update description
32
+ if (functionGroup) {
33
+ functionGroup['@_adtcore:description'] = newDescription;
34
+ }
35
+ // Rebuild XML (simplified - use original XML with replaced description)
36
+ const updatedXml = currentXml.replace(/adtcore:description="[^"]*"/, `adtcore:description="${newDescription}"`);
37
+ const headers = {
38
+ 'Content-Type': 'application/vnd.sap.adt.functions.groups.v3+xml; charset=utf-8',
39
+ 'Accept': 'application/vnd.sap.adt.functions.groups.v3+xml'
40
+ };
41
+ return connection.makeAdtRequest({
42
+ url,
43
+ method: 'PUT',
44
+ timeout: (0, connection_1.getTimeout)('default'),
45
+ data: updatedXml,
46
+ headers
47
+ });
48
+ }
49
+ /**
50
+ * Update function group metadata (description)
51
+ * Full workflow: lock -> get current -> update -> unlock
52
+ */
53
+ async function updateFunctionGroup(connection, params) {
54
+ if (!params.function_group_name) {
55
+ throw new Error('function_group_name is required');
56
+ }
57
+ if (!params.description) {
58
+ throw new Error('description is required for update');
59
+ }
60
+ let lockHandle = params.lock_handle;
61
+ let shouldUnlock = false;
62
+ try {
63
+ // Lock if not already locked
64
+ if (!lockHandle) {
65
+ lockHandle = await (0, lock_1.lockFunctionGroup)(connection, params.function_group_name);
66
+ shouldUnlock = true;
67
+ }
68
+ if (!lockHandle) {
69
+ throw new Error('Failed to acquire lock handle');
70
+ }
71
+ // Get current XML
72
+ const currentResponse = await (0, read_1.getFunctionGroup)(connection, params.function_group_name);
73
+ const currentXml = typeof currentResponse.data === 'string'
74
+ ? currentResponse.data
75
+ : JSON.stringify(currentResponse.data);
76
+ // Update metadata
77
+ const updateResponse = await updateFunctionGroupMetadata(connection, params.function_group_name, currentXml, params.description, lockHandle, params.transport_request);
78
+ // Unlock if we locked it
79
+ if (shouldUnlock && lockHandle) {
80
+ await (0, unlock_1.unlockFunctionGroup)(connection, params.function_group_name, lockHandle);
81
+ }
82
+ return updateResponse;
83
+ }
84
+ catch (error) {
85
+ // Unlock on error if we locked it
86
+ if (shouldUnlock && lockHandle) {
87
+ try {
88
+ await (0, unlock_1.unlockFunctionGroup)(connection, params.function_group_name, lockHandle);
89
+ }
90
+ catch (unlockError) {
91
+ // Ignore unlock errors
92
+ }
93
+ }
94
+ let errorMessage = `Failed to update function group: ${error}`;
95
+ if (error.response?.status === 400) {
96
+ errorMessage = `Bad request. Check parameters.`;
97
+ }
98
+ else if (error.response?.status === 404) {
99
+ errorMessage = `Function group ${params.function_group_name} not found.`;
100
+ }
101
+ else if (error.response?.data && typeof error.response.data === 'string') {
102
+ try {
103
+ const parser = new fast_xml_parser_1.XMLParser({
104
+ ignoreAttributes: false,
105
+ attributeNamePrefix: '@_'
106
+ });
107
+ const errorData = parser.parse(error.response.data);
108
+ const errorMsg = errorData['exc:exception']?.message?.['#text'] || errorData['exc:exception']?.message;
109
+ if (errorMsg) {
110
+ errorMessage = `SAP Error: ${errorMsg}`;
111
+ }
112
+ }
113
+ catch (parseError) {
114
+ // Keep original error message
115
+ }
116
+ }
117
+ throw new Error(errorMessage);
118
+ }
119
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Function Group validation
3
+ */
4
+ import { AbapConnection } from '@mcp-abap-adt/connection';
5
+ import { ValidationResult } from '../shared/validation';
6
+ /**
7
+ * Validate function group name
8
+ */
9
+ export declare function validateFunctionGroupName(connection: AbapConnection, functionGroupName: string, description?: string): Promise<ValidationResult>;
10
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/core/functionGroup/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAsB,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE5E;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,cAAc,EAC1B,iBAAiB,EAAE,MAAM,EACzB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC,CAQ3B"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ * Function Group validation
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.validateFunctionGroupName = validateFunctionGroupName;
7
+ const validation_1 = require("../shared/validation");
8
+ /**
9
+ * Validate function group name
10
+ */
11
+ async function validateFunctionGroupName(connection, functionGroupName, description) {
12
+ const params = {};
13
+ if (description) {
14
+ params.description = description;
15
+ }
16
+ return (0, validation_1.validateObjectName)(connection, 'FUGR/F', functionGroupName, params);
17
+ }