@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,144 @@
1
+ "use strict";
2
+ /**
3
+ * Domain update operations
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.updateDomain = updateDomain;
7
+ const fast_xml_parser_1 = require("fast-xml-parser");
8
+ const internalUtils_1 = require("../../utils/internalUtils");
9
+ const sessionUtils_1 = require("../../utils/sessionUtils");
10
+ const systemInfo_1 = require("../shared/systemInfo");
11
+ const lock_1 = require("./lock");
12
+ const unlock_1 = require("./unlock");
13
+ const activation_1 = require("./activation");
14
+ const check_1 = require("./check");
15
+ /**
16
+ * Update domain with new data
17
+ */
18
+ async function updateDomainInternal(connection, args, lockHandle, sessionId, username, masterSystem) {
19
+ const domainNameEncoded = (0, internalUtils_1.encodeSapObjectName)(args.domain_name.toLowerCase());
20
+ const corrNrParam = args.transport_request ? `&corrNr=${args.transport_request}` : '';
21
+ const url = `/sap/bc/adt/ddic/domains/${domainNameEncoded}?lockHandle=${lockHandle}${corrNrParam}`;
22
+ const datatype = args.datatype || 'CHAR';
23
+ const length = args.length || 100;
24
+ const decimals = args.decimals || 0;
25
+ let fixValuesXml = '';
26
+ if (args.fixed_values && args.fixed_values.length > 0) {
27
+ const fixValueItems = args.fixed_values.map(fv => ` <doma:fixValue>\n <doma:low>${fv.low}</doma:low>\n <doma:text>${fv.text}</doma:text>\n </doma:fixValue>`).join('\n');
28
+ fixValuesXml = ` <doma:fixValues>\n${fixValueItems}\n </doma:fixValues>`;
29
+ }
30
+ else {
31
+ fixValuesXml = ' <doma:fixValues/>';
32
+ }
33
+ const masterSystemAttr = masterSystem ? ` adtcore:masterSystem="${masterSystem}"` : '';
34
+ const xmlBody = `<?xml version="1.0" encoding="UTF-8"?>
35
+ <doma:domain xmlns:doma="http://www.sap.com/dictionary/domain"
36
+ xmlns:adtcore="http://www.sap.com/adt/core"
37
+ adtcore:description="${args.description || args.domain_name}"
38
+ adtcore:language="EN"
39
+ adtcore:name="${args.domain_name.toUpperCase()}"
40
+ adtcore:type="DOMA/DD"
41
+ adtcore:masterLanguage="EN"${masterSystemAttr}
42
+ adtcore:responsible="${username}">
43
+ <adtcore:packageRef adtcore:name="${args.package_name.toUpperCase()}"/>
44
+ <doma:content>
45
+ <doma:typeInformation>
46
+ <doma:datatype>${datatype}</doma:datatype>
47
+ <doma:length>${length}</doma:length>
48
+ <doma:decimals>${decimals}</doma:decimals>
49
+ </doma:typeInformation>
50
+ <doma:outputInformation>
51
+ <doma:length>${length}</doma:length>
52
+ <doma:conversionExit>${args.conversion_exit || ''}</doma:conversionExit>
53
+ <doma:signExists>${args.sign_exists || false}</doma:signExists>
54
+ <doma:lowercase>${args.lowercase || false}</doma:lowercase>
55
+ </doma:outputInformation>
56
+ <doma:valueInformation>
57
+ <doma:valueTableRef adtcore:name="${args.value_table || ''}"/>
58
+ <doma:appendExists>false</doma:appendExists>
59
+ ${fixValuesXml}
60
+ </doma:valueInformation>
61
+ </doma:content>
62
+ </doma:domain>`;
63
+ const headers = {
64
+ 'Accept': 'application/vnd.sap.adt.domains.v1+xml, application/vnd.sap.adt.domains.v2+xml',
65
+ 'Content-Type': 'application/vnd.sap.adt.domains.v2+xml; charset=utf-8'
66
+ };
67
+ return (0, sessionUtils_1.makeAdtRequestWithSession)(connection, url, 'PUT', sessionId, xmlBody, headers);
68
+ }
69
+ /**
70
+ * Get domain to verify update
71
+ */
72
+ async function getDomainForVerification(connection, domainName, sessionId) {
73
+ const domainNameEncoded = (0, internalUtils_1.encodeSapObjectName)(domainName.toLowerCase());
74
+ const url = `/sap/bc/adt/ddic/domains/${domainNameEncoded}?version=workingArea`;
75
+ const headers = {
76
+ 'Accept': 'application/vnd.sap.adt.domains.v1+xml, application/vnd.sap.adt.domains.v2+xml'
77
+ };
78
+ const response = await (0, sessionUtils_1.makeAdtRequestWithSession)(connection, url, 'GET', sessionId, undefined, headers);
79
+ const parser = new fast_xml_parser_1.XMLParser({
80
+ ignoreAttributes: false,
81
+ attributeNamePrefix: '',
82
+ });
83
+ const result = parser.parse(response.data);
84
+ return result['doma:domain'];
85
+ }
86
+ /**
87
+ * Update ABAP domain
88
+ * Full workflow: lock -> update -> check -> unlock -> activate
89
+ */
90
+ async function updateDomain(connection, params) {
91
+ if (!params.domain_name) {
92
+ throw new Error('Domain name is required');
93
+ }
94
+ if (!params.package_name) {
95
+ throw new Error('Package name is required');
96
+ }
97
+ const sessionId = (0, sessionUtils_1.generateSessionId)();
98
+ // Get masterSystem and responsible (only for cloud systems)
99
+ // On cloud, getSystemInformation returns systemID and userName
100
+ // On on-premise, it returns null, so we don't add these attributes
101
+ const systemInfo = await (0, systemInfo_1.getSystemInformation)(connection);
102
+ const masterSystem = systemInfo?.systemID;
103
+ const username = systemInfo?.userName || process.env.SAP_USER || process.env.SAP_USERNAME || 'MPCUSER';
104
+ let lockHandle = '';
105
+ try {
106
+ lockHandle = await (0, lock_1.lockDomain)(connection, params.domain_name, sessionId);
107
+ await new Promise(resolve => setTimeout(resolve, 500));
108
+ await updateDomainInternal(connection, params, lockHandle, sessionId, username, masterSystem);
109
+ await (0, check_1.checkDomainSyntax)(connection, params.domain_name, 'inactive', sessionId);
110
+ await (0, unlock_1.unlockDomain)(connection, params.domain_name, lockHandle, sessionId);
111
+ const shouldActivate = params.activate !== false;
112
+ if (shouldActivate) {
113
+ await (0, activation_1.activateDomain)(connection, params.domain_name, sessionId);
114
+ }
115
+ const updatedDomain = await getDomainForVerification(connection, params.domain_name, sessionId);
116
+ return {
117
+ data: {
118
+ success: true,
119
+ domain_name: params.domain_name,
120
+ package: params.package_name,
121
+ transport_request: params.transport_request,
122
+ status: shouldActivate ? 'active' : 'inactive',
123
+ session_id: sessionId,
124
+ message: `Domain ${params.domain_name} updated${shouldActivate ? ' and activated' : ''} successfully`,
125
+ domain_details: updatedDomain
126
+ },
127
+ status: 200,
128
+ statusText: 'OK',
129
+ headers: {},
130
+ config: {}
131
+ };
132
+ }
133
+ catch (error) {
134
+ if (lockHandle) {
135
+ try {
136
+ await (0, unlock_1.unlockDomain)(connection, params.domain_name, lockHandle, sessionId);
137
+ }
138
+ catch (unlockError) {
139
+ // Ignore unlock errors
140
+ }
141
+ }
142
+ throw error;
143
+ }
144
+ }
@@ -0,0 +1,91 @@
1
+ /**
2
+ * FunctionGroupBuilder - Fluent API for function group operations with Promise chaining
3
+ *
4
+ * Supports:
5
+ * - Method chaining: builder.validate().then(b => b.create()).then(b => b.lock())...
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
+ import { AbapConnection } from '@mcp-abap-adt/connection';
12
+ import { AxiosResponse } from 'axios';
13
+ import { ValidationResult } from '../shared/validation';
14
+ export interface FunctionGroupBuilderLogger {
15
+ debug?: (message: string, ...args: any[]) => void;
16
+ info?: (message: string, ...args: any[]) => void;
17
+ warn?: (message: string, ...args: any[]) => void;
18
+ error?: (message: string, ...args: any[]) => void;
19
+ }
20
+ export interface FunctionGroupBuilderConfig {
21
+ functionGroupName: string;
22
+ packageName?: string;
23
+ transportRequest?: string;
24
+ description?: string;
25
+ sessionId?: string;
26
+ onLock?: (lockHandle: string, sessionId: string) => void;
27
+ }
28
+ export interface FunctionGroupBuilderState {
29
+ validationResult?: ValidationResult;
30
+ createResult?: AxiosResponse;
31
+ lockHandle?: string;
32
+ checkResult?: AxiosResponse;
33
+ unlockResult?: AxiosResponse;
34
+ activateResult?: AxiosResponse;
35
+ readResult?: AxiosResponse;
36
+ errors: Array<{
37
+ method: string;
38
+ error: Error;
39
+ timestamp: Date;
40
+ }>;
41
+ }
42
+ export declare class FunctionGroupBuilder {
43
+ private connection;
44
+ private logger;
45
+ private config;
46
+ private lockHandle?;
47
+ private sessionId;
48
+ private state;
49
+ constructor(connection: AbapConnection, logger: FunctionGroupBuilderLogger, config: FunctionGroupBuilderConfig);
50
+ setPackage(packageName: string): this;
51
+ setRequest(transportRequest: string): this;
52
+ setName(functionGroupName: string): this;
53
+ setDescription(description: string): this;
54
+ validate(): Promise<this>;
55
+ create(): Promise<this>;
56
+ lock(): Promise<this>;
57
+ check(version?: 'active' | 'inactive', sourceCode?: string): Promise<this>;
58
+ unlock(): Promise<this>;
59
+ activate(): Promise<this>;
60
+ read(): Promise<this>;
61
+ forceUnlock(): Promise<void>;
62
+ getState(): Readonly<FunctionGroupBuilderState>;
63
+ getFunctionGroupName(): string;
64
+ getLockHandle(): string | undefined;
65
+ getSessionId(): string;
66
+ getValidationResult(): ValidationResult | undefined;
67
+ getCreateResult(): AxiosResponse | undefined;
68
+ getCheckResult(): AxiosResponse | undefined;
69
+ getUnlockResult(): AxiosResponse | undefined;
70
+ getActivateResult(): AxiosResponse | undefined;
71
+ getReadResult(): AxiosResponse | undefined;
72
+ getErrors(): ReadonlyArray<{
73
+ method: string;
74
+ error: Error;
75
+ timestamp: Date;
76
+ }>;
77
+ getResults(): {
78
+ validation?: ValidationResult;
79
+ create?: AxiosResponse;
80
+ check?: AxiosResponse;
81
+ unlock?: AxiosResponse;
82
+ activate?: AxiosResponse;
83
+ lockHandle?: string;
84
+ errors: Array<{
85
+ method: string;
86
+ error: Error;
87
+ timestamp: Date;
88
+ }>;
89
+ };
90
+ }
91
+ //# sourceMappingURL=FunctionGroupBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FunctionGroupBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/functionGroup/FunctionGroupBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,268 @@
1
+ "use strict";
2
+ /**
3
+ * FunctionGroupBuilder - Fluent API for function group operations with Promise chaining
4
+ *
5
+ * Supports:
6
+ * - Method chaining: builder.validate().then(b => b.create()).then(b => b.lock())...
7
+ * - Error handling: .catch() for error callbacks
8
+ * - Cleanup: .finally() for guaranteed execution
9
+ * - Result storage: all results stored in logger/state
10
+ * - Chain interruption: chain stops on first error (standard Promise behavior)
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.FunctionGroupBuilder = void 0;
14
+ const sessionUtils_1 = require("../../utils/sessionUtils");
15
+ const validation_1 = require("./validation");
16
+ const create_1 = require("./create");
17
+ const lock_1 = require("./lock");
18
+ const unlock_1 = require("./unlock");
19
+ const activation_1 = require("./activation");
20
+ const check_1 = require("./check");
21
+ const read_1 = require("./read");
22
+ class FunctionGroupBuilder {
23
+ connection;
24
+ logger;
25
+ config;
26
+ lockHandle;
27
+ sessionId;
28
+ state;
29
+ constructor(connection, logger, config) {
30
+ this.connection = connection;
31
+ this.logger = logger;
32
+ this.config = { ...config };
33
+ this.sessionId = config.sessionId || (0, sessionUtils_1.generateSessionId)();
34
+ this.state = {
35
+ errors: []
36
+ };
37
+ }
38
+ // Builder methods - return this for chaining
39
+ setPackage(packageName) {
40
+ this.config.packageName = packageName;
41
+ this.logger.debug?.('Package set:', packageName);
42
+ return this;
43
+ }
44
+ setRequest(transportRequest) {
45
+ this.config.transportRequest = transportRequest;
46
+ this.logger.debug?.('Transport request set:', transportRequest);
47
+ return this;
48
+ }
49
+ setName(functionGroupName) {
50
+ this.config.functionGroupName = functionGroupName;
51
+ this.logger.debug?.('Function group name set:', functionGroupName);
52
+ return this;
53
+ }
54
+ setDescription(description) {
55
+ this.config.description = description;
56
+ return this;
57
+ }
58
+ // Operation methods - return Promise<this> for Promise chaining
59
+ async validate() {
60
+ try {
61
+ this.logger.info?.('Validating function group:', this.config.functionGroupName);
62
+ const result = await (0, validation_1.validateFunctionGroupName)(this.connection, this.config.functionGroupName, this.config.description);
63
+ this.state.validationResult = result;
64
+ this.logger.info?.('Validation successful:', result.valid);
65
+ return this;
66
+ }
67
+ catch (error) {
68
+ this.state.errors.push({
69
+ method: 'validate',
70
+ error: error instanceof Error ? error : new Error(String(error)),
71
+ timestamp: new Date()
72
+ });
73
+ this.logger.error?.('Validation failed:', error);
74
+ throw error; // Interrupts chain
75
+ }
76
+ }
77
+ async create() {
78
+ try {
79
+ if (!this.config.packageName) {
80
+ throw new Error('Package name is required');
81
+ }
82
+ this.logger.info?.('Creating function group:', this.config.functionGroupName);
83
+ const params = {
84
+ function_group_name: this.config.functionGroupName,
85
+ package_name: this.config.packageName,
86
+ transport_request: this.config.transportRequest,
87
+ description: this.config.description,
88
+ activate: false // Don't activate in low-level function
89
+ };
90
+ const result = await (0, create_1.createFunctionGroup)(this.connection, params);
91
+ this.state.createResult = result;
92
+ this.logger.info?.('Function group created successfully:', result.status);
93
+ return this;
94
+ }
95
+ catch (error) {
96
+ this.state.errors.push({
97
+ method: 'create',
98
+ error: error instanceof Error ? error : new Error(String(error)),
99
+ timestamp: new Date()
100
+ });
101
+ this.logger.error?.('Create failed:', error);
102
+ throw error; // Interrupts chain
103
+ }
104
+ }
105
+ async lock() {
106
+ try {
107
+ this.logger.info?.('Locking function group:', this.config.functionGroupName);
108
+ const lockHandle = await (0, lock_1.lockFunctionGroup)(this.connection, this.config.functionGroupName, this.sessionId);
109
+ this.lockHandle = lockHandle;
110
+ this.state.lockHandle = lockHandle;
111
+ // Register lock in persistent storage if callback provided
112
+ if (this.config.onLock) {
113
+ this.config.onLock(lockHandle, this.sessionId);
114
+ }
115
+ this.logger.info?.('Function group locked, handle:', lockHandle.substring(0, 10) + '...');
116
+ return this;
117
+ }
118
+ catch (error) {
119
+ this.state.errors.push({
120
+ method: 'lock',
121
+ error: error instanceof Error ? error : new Error(String(error)),
122
+ timestamp: new Date()
123
+ });
124
+ this.logger.error?.('Lock failed:', error);
125
+ throw error; // Interrupts chain
126
+ }
127
+ }
128
+ async check(version = 'inactive', sourceCode) {
129
+ try {
130
+ this.logger.info?.('Checking function group:', this.config.functionGroupName, 'version:', version);
131
+ const result = await (0, check_1.checkFunctionGroup)(this.connection, this.config.functionGroupName, version, sourceCode, this.sessionId);
132
+ this.state.checkResult = result;
133
+ this.logger.info?.('Function group check successful:', result.status);
134
+ return this;
135
+ }
136
+ catch (error) {
137
+ this.state.errors.push({
138
+ method: 'check',
139
+ error: error instanceof Error ? error : new Error(String(error)),
140
+ timestamp: new Date()
141
+ });
142
+ this.logger.error?.('Check failed:', error);
143
+ throw error; // Interrupts chain
144
+ }
145
+ }
146
+ async unlock() {
147
+ try {
148
+ if (!this.lockHandle) {
149
+ throw new Error('Function group is not locked. Call lock() first.');
150
+ }
151
+ this.logger.info?.('Unlocking function group:', this.config.functionGroupName);
152
+ const result = await (0, unlock_1.unlockFunctionGroup)(this.connection, this.config.functionGroupName, this.lockHandle, this.sessionId);
153
+ this.state.unlockResult = result;
154
+ this.lockHandle = undefined;
155
+ this.state.lockHandle = undefined;
156
+ this.logger.info?.('Function group unlocked successfully:', result.status);
157
+ return this;
158
+ }
159
+ catch (error) {
160
+ this.state.errors.push({
161
+ method: 'unlock',
162
+ error: error instanceof Error ? error : new Error(String(error)),
163
+ timestamp: new Date()
164
+ });
165
+ this.logger.error?.('Unlock failed:', error);
166
+ throw error; // Interrupts chain
167
+ }
168
+ }
169
+ async activate() {
170
+ try {
171
+ this.logger.info?.('Activating function group:', this.config.functionGroupName);
172
+ const result = await (0, activation_1.activateFunctionGroup)(this.connection, this.config.functionGroupName);
173
+ this.state.activateResult = result;
174
+ this.logger.info?.('Function group activated successfully:', result.status);
175
+ return this;
176
+ }
177
+ catch (error) {
178
+ this.state.errors.push({
179
+ method: 'activate',
180
+ error: error instanceof Error ? error : new Error(String(error)),
181
+ timestamp: new Date()
182
+ });
183
+ this.logger.error?.('Activate failed:', error);
184
+ throw error; // Interrupts chain
185
+ }
186
+ }
187
+ async read() {
188
+ try {
189
+ this.logger.info?.('Reading function group:', this.config.functionGroupName);
190
+ const result = await (0, read_1.getFunctionGroup)(this.connection, this.config.functionGroupName);
191
+ this.state.readResult = result;
192
+ this.logger.info?.('Function group read successfully:', result.status);
193
+ return this;
194
+ }
195
+ catch (error) {
196
+ this.state.errors.push({
197
+ method: 'read',
198
+ error: error instanceof Error ? error : new Error(String(error)),
199
+ timestamp: new Date()
200
+ });
201
+ this.logger.error?.('Read failed:', error);
202
+ throw error; // Interrupts chain
203
+ }
204
+ }
205
+ async forceUnlock() {
206
+ if (!this.lockHandle) {
207
+ return;
208
+ }
209
+ try {
210
+ await (0, unlock_1.unlockFunctionGroup)(this.connection, this.config.functionGroupName, this.lockHandle, this.sessionId);
211
+ this.logger.info?.('Force unlock successful for', this.config.functionGroupName);
212
+ }
213
+ catch (error) {
214
+ this.logger.warn?.('Force unlock failed:', error);
215
+ }
216
+ finally {
217
+ this.lockHandle = undefined;
218
+ this.state.lockHandle = undefined;
219
+ }
220
+ }
221
+ // Getters for accessing results
222
+ getState() {
223
+ return { ...this.state };
224
+ }
225
+ getFunctionGroupName() {
226
+ return this.config.functionGroupName;
227
+ }
228
+ getLockHandle() {
229
+ return this.lockHandle;
230
+ }
231
+ getSessionId() {
232
+ return this.sessionId;
233
+ }
234
+ getValidationResult() {
235
+ return this.state.validationResult;
236
+ }
237
+ getCreateResult() {
238
+ return this.state.createResult;
239
+ }
240
+ getCheckResult() {
241
+ return this.state.checkResult;
242
+ }
243
+ getUnlockResult() {
244
+ return this.state.unlockResult;
245
+ }
246
+ getActivateResult() {
247
+ return this.state.activateResult;
248
+ }
249
+ getReadResult() {
250
+ return this.state.readResult;
251
+ }
252
+ getErrors() {
253
+ return [...this.state.errors];
254
+ }
255
+ // Helper method to get all results
256
+ getResults() {
257
+ return {
258
+ validation: this.state.validationResult,
259
+ create: this.state.createResult,
260
+ check: this.state.checkResult,
261
+ unlock: this.state.unlockResult,
262
+ activate: this.state.activateResult,
263
+ lockHandle: this.lockHandle,
264
+ errors: [...this.state.errors]
265
+ };
266
+ }
267
+ }
268
+ exports.FunctionGroupBuilder = FunctionGroupBuilder;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * FunctionGroup activation operations
3
+ */
4
+ import { AbapConnection } from '@mcp-abap-adt/connection';
5
+ import { AxiosResponse } from 'axios';
6
+ /**
7
+ * Activate function group
8
+ */
9
+ export declare function activateFunctionGroup(connection: AbapConnection, functionGroupName: string): Promise<AxiosResponse>;
10
+ //# sourceMappingURL=activation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activation.d.ts","sourceRoot":"","sources":["../../../src/core/functionGroup/activation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,cAAc,EAC1B,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,aAAa,CAAC,CAsBxB"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ /**
3
+ * FunctionGroup activation operations
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.activateFunctionGroup = activateFunctionGroup;
7
+ const internalUtils_1 = require("../../utils/internalUtils");
8
+ /**
9
+ * Activate function group
10
+ */
11
+ async function activateFunctionGroup(connection, functionGroupName) {
12
+ const encodedName = (0, internalUtils_1.encodeSapObjectName)(functionGroupName).toLowerCase();
13
+ const objectUri = `/sap/bc/adt/functions/groups/${encodedName}`;
14
+ const xmlPayload = `<?xml version="1.0" encoding="UTF-8"?>
15
+ <adtcore:objectReferences xmlns:adtcore="http://www.sap.com/adt/core">
16
+ <adtcore:objectReference adtcore:uri="${objectUri}" adtcore:name="${functionGroupName}"/>
17
+ </adtcore:objectReferences>`;
18
+ const baseUrl = await connection.getBaseUrl();
19
+ const url = `${baseUrl}/sap/bc/adt/activation?method=activate&preauditRequested=true`;
20
+ return connection.makeAdtRequest({
21
+ url,
22
+ method: 'POST',
23
+ timeout: 30000, // 30 seconds for activation
24
+ data: xmlPayload,
25
+ headers: {
26
+ 'Content-Type': 'application/xml',
27
+ 'Accept': 'application/xml'
28
+ }
29
+ });
30
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * FunctionGroup check operations
3
+ */
4
+ import { AbapConnection } from '@mcp-abap-adt/connection';
5
+ import { AxiosResponse } from 'axios';
6
+ /**
7
+ * Check function group code (syntax, compilation, rules)
8
+ *
9
+ * CheckRun validates everything: syntax, compilation errors, warnings, code quality rules.
10
+ *
11
+ * Can check:
12
+ * - Existing active function group: provide functionGroupName, version='active', omit sourceCode
13
+ * - Existing inactive function group: provide functionGroupName, version='inactive', omit sourceCode
14
+ * - Hypothetical code: provide functionGroupName, sourceCode, version (object doesn't need to exist)
15
+ *
16
+ * @param connection - SAP connection
17
+ * @param functionGroupName - Function group name
18
+ * @param version - 'active' (activated version) or 'inactive' (saved but not activated)
19
+ * @param sourceCode - Optional: source code to validate. If provided, validates hypothetical code without creating object
20
+ * @param sessionId - Optional session ID
21
+ * @returns Check result with errors/warnings
22
+ */
23
+ export declare function checkFunctionGroup(connection: AbapConnection, functionGroupName: string, version: 'active' | 'inactive', sourceCode?: string, sessionId?: string): Promise<AxiosResponse>;
24
+ //# sourceMappingURL=check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/core/functionGroup/check.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,cAAc,EAC1B,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,QAAQ,GAAG,UAAU,EAC9B,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CA2CxB"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ /**
3
+ * FunctionGroup check operations
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.checkFunctionGroup = checkFunctionGroup;
40
+ /**
41
+ * Check function group code (syntax, compilation, rules)
42
+ *
43
+ * CheckRun validates everything: syntax, compilation errors, warnings, code quality rules.
44
+ *
45
+ * Can check:
46
+ * - Existing active function group: provide functionGroupName, version='active', omit sourceCode
47
+ * - Existing inactive function group: provide functionGroupName, version='inactive', omit sourceCode
48
+ * - Hypothetical code: provide functionGroupName, sourceCode, version (object doesn't need to exist)
49
+ *
50
+ * @param connection - SAP connection
51
+ * @param functionGroupName - Function group name
52
+ * @param version - 'active' (activated version) or 'inactive' (saved but not activated)
53
+ * @param sourceCode - Optional: source code to validate. If provided, validates hypothetical code without creating object
54
+ * @param sessionId - Optional session ID
55
+ * @returns Check result with errors/warnings
56
+ */
57
+ async function checkFunctionGroup(connection, functionGroupName, version, sourceCode, sessionId) {
58
+ const { runCheckRun, runCheckRunWithSource, parseCheckRunResponse } = await Promise.resolve().then(() => __importStar(require('../shared/checkRun')));
59
+ let response;
60
+ if (sourceCode) {
61
+ // Validate hypothetical code (object doesn't need to exist)
62
+ response = await runCheckRunWithSource(connection, 'function_group', functionGroupName, sourceCode, version, 'abapCheckRun', sessionId);
63
+ }
64
+ else {
65
+ // Validate existing object in SAP (reads from system)
66
+ response = await runCheckRun(connection, 'function_group', functionGroupName, version, 'abapCheckRun', sessionId);
67
+ }
68
+ const checkResult = parseCheckRunResponse(response);
69
+ // Check result is OK if:
70
+ // 1. Message says "has been checked" or "was checked" - object was already checked, this is OK
71
+ // Problems are: ERROR and WARNING
72
+ // Only throw error if there are actual ERROR or WARNING messages
73
+ // If message indicates object was already checked, it's OK (even if has errors/warnings)
74
+ const isAlreadyChecked = checkResult.message?.toLowerCase().includes('has been checked') ||
75
+ checkResult.message?.toLowerCase().includes('was checked');
76
+ if (isAlreadyChecked) {
77
+ return response; // Object was already checked - this is OK
78
+ }
79
+ // Problems: ERROR (errors) and WARNING (warnings)
80
+ if (checkResult.errors.length > 0) {
81
+ throw new Error(`Function group check failed: ${checkResult.message || 'Unknown error'}`);
82
+ }
83
+ if (checkResult.warnings.length > 0) {
84
+ throw new Error(`Function group check failed: ${checkResult.message || 'Warnings found'}`);
85
+ }
86
+ // If status is 'notProcessed', it's an error
87
+ if (checkResult.status === 'notProcessed') {
88
+ throw new Error(`Function group check failed: ${checkResult.message || 'Object could not be processed'}`);
89
+ }
90
+ return response;
91
+ }