@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,119 @@
1
+ "use strict";
2
+ /**
3
+ * Interface create operations
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createInterface = createInterface;
7
+ const internalUtils_1 = require("../../utils/internalUtils");
8
+ const sessionUtils_1 = require("../../utils/sessionUtils");
9
+ const lock_1 = require("./lock");
10
+ const unlock_1 = require("./unlock");
11
+ const activation_1 = require("./activation");
12
+ const systemInfo_1 = require("../shared/systemInfo");
13
+ /**
14
+ * Generate minimal interface source code if not provided
15
+ */
16
+ function generateInterfaceTemplate(interfaceName, description) {
17
+ return `INTERFACE ${interfaceName}
18
+ PUBLIC.
19
+
20
+ " ${description}
21
+
22
+ METHODS: get_value
23
+ RETURNING VALUE(rv_result) TYPE string.
24
+
25
+ ENDINTERFACE.`;
26
+ }
27
+ /**
28
+ * Create interface object with metadata
29
+ */
30
+ async function createInterfaceObject(connection, interfaceName, description, packageName, transportRequest, sessionId, masterSystem, responsible) {
31
+ // Get masterSystem and responsible (only for cloud systems)
32
+ // On cloud, getSystemInformation returns systemID and userName
33
+ // On on-premise, it returns null, so we don't add these attributes
34
+ let finalMasterSystem = masterSystem;
35
+ let finalResponsible = responsible;
36
+ const systemInfo = await (0, systemInfo_1.getSystemInformation)(connection);
37
+ if (systemInfo) {
38
+ finalMasterSystem = finalMasterSystem || systemInfo.systemID;
39
+ finalResponsible = finalResponsible || systemInfo.userName;
40
+ }
41
+ // Only use masterSystem from getSystemInformation (cloud), not from env
42
+ // username can fallback to env if not provided
43
+ finalResponsible = finalResponsible || process.env.SAP_USERNAME || process.env.SAP_USER || '';
44
+ const masterSystemAttr = finalMasterSystem ? ` adtcore:masterSystem="${finalMasterSystem}"` : '';
45
+ const responsibleAttr = finalResponsible ? ` adtcore:responsible="${finalResponsible}"` : '';
46
+ const payload = `<?xml version="1.0" encoding="UTF-8"?><intf:abapInterface xmlns:intf="http://www.sap.com/adt/oo/interfaces" xmlns:adtcore="http://www.sap.com/adt/core" adtcore:description="${description}" adtcore:language="EN" adtcore:name="${interfaceName}" adtcore:type="INTF/OI" adtcore:masterLanguage="EN"${masterSystemAttr}${responsibleAttr}>
47
+
48
+
49
+
50
+ <adtcore:packageRef adtcore:name="${packageName}"/>
51
+
52
+
53
+
54
+ </intf:abapInterface>`;
55
+ const url = `/sap/bc/adt/oo/interfaces`;
56
+ const params = transportRequest ? `?corrNr=${transportRequest}` : '';
57
+ return (0, sessionUtils_1.makeAdtRequestWithSession)(connection, url + params, 'POST', sessionId, payload, {
58
+ 'Content-Type': 'application/vnd.sap.adt.oo.interfaces.v5+xml',
59
+ 'Accept': 'application/vnd.sap.adt.oo.interfaces.v5+xml'
60
+ });
61
+ }
62
+ /**
63
+ * Upload interface source code
64
+ */
65
+ async function uploadInterfaceSource(connection, interfaceName, sourceCode, lockHandle, corrNr, sessionId) {
66
+ let url = `/sap/bc/adt/oo/interfaces/${(0, internalUtils_1.encodeSapObjectName)(interfaceName)}/source/main?lockHandle=${lockHandle}`;
67
+ if (corrNr) {
68
+ url += `&corrNr=${corrNr}`;
69
+ }
70
+ await (0, sessionUtils_1.makeAdtRequestWithSession)(connection, url, 'PUT', sessionId, sourceCode, { 'Content-Type': 'text/plain; charset=utf-8' });
71
+ }
72
+ /**
73
+ * Create ABAP interface
74
+ * Full workflow: create object -> lock -> upload source -> unlock -> activate
75
+ */
76
+ async function createInterface(connection, params) {
77
+ if (!params.interface_name || !params.package_name) {
78
+ throw new Error('interface_name and package_name are required');
79
+ }
80
+ const finalDescription = params.description || params.interface_name;
81
+ const finalSourceCode = params.source_code || generateInterfaceTemplate(params.interface_name, finalDescription);
82
+ const sessionId = (0, sessionUtils_1.generateSessionId)();
83
+ let lockHandle;
84
+ try {
85
+ // Step 1: Create interface object with metadata
86
+ const createResponse = await createInterfaceObject(connection, params.interface_name, finalDescription, params.package_name, params.transport_request, sessionId, params.master_system, params.responsible);
87
+ // Step 2: Lock interface
88
+ const lockData = await (0, lock_1.lockInterface)(connection, params.interface_name, sessionId);
89
+ lockHandle = lockData.lockHandle;
90
+ const corrNr = lockData.corrNr;
91
+ // Step 3: Upload source code
92
+ await uploadInterfaceSource(connection, params.interface_name, finalSourceCode, lockHandle, corrNr, sessionId);
93
+ // Step 4: Unlock interface
94
+ await (0, unlock_1.unlockInterface)(connection, params.interface_name, lockHandle, sessionId);
95
+ lockHandle = undefined;
96
+ // Step 5: Activate interface (optional)
97
+ const shouldActivate = params.activate !== false;
98
+ if (shouldActivate) {
99
+ await (0, activation_1.activateInterface)(connection, params.interface_name, sessionId);
100
+ }
101
+ // Return the real response from SAP (from initial POST)
102
+ return createResponse;
103
+ }
104
+ catch (error) {
105
+ // Attempt to unlock if we have a lock handle
106
+ if (lockHandle) {
107
+ try {
108
+ await (0, unlock_1.unlockInterface)(connection, params.interface_name, lockHandle, sessionId);
109
+ }
110
+ catch (unlockError) {
111
+ // Ignore unlock errors
112
+ }
113
+ }
114
+ const errorMessage = error.response?.data
115
+ ? (typeof error.response.data === 'string' ? error.response.data : JSON.stringify(error.response.data))
116
+ : error.message;
117
+ throw new Error(`Failed to create interface ${params.interface_name}: ${errorMessage}`);
118
+ }
119
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Interface delete operations
3
+ */
4
+ import { AbapConnection } from '@mcp-abap-adt/connection';
5
+ import { AxiosResponse } from 'axios';
6
+ export interface DeleteInterfaceParams {
7
+ interface_name: string;
8
+ transport_request?: string;
9
+ check_before_delete?: boolean;
10
+ }
11
+ /**
12
+ * Check if interface can be deleted
13
+ */
14
+ export declare function checkInterfaceDeletion(connection: AbapConnection, interfaceName: string): Promise<AxiosResponse>;
15
+ /**
16
+ * Delete ABAP interface
17
+ * Optionally checks deletion before deleting (like Eclipse ADT)
18
+ */
19
+ export declare function deleteInterface(connection: AbapConnection, params: DeleteInterfaceParams): Promise<AxiosResponse>;
20
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/core/interface/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,qBAAqB;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,cAAc,EAC1B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,CAAC,CAWxB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,aAAa,CAAC,CAuBxB"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ /**
3
+ * Interface delete operations
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.checkInterfaceDeletion = checkInterfaceDeletion;
7
+ exports.deleteInterface = deleteInterface;
8
+ const delete_1 = require("../delete");
9
+ /**
10
+ * Check if interface can be deleted
11
+ */
12
+ async function checkInterfaceDeletion(connection, interfaceName) {
13
+ if (!interfaceName) {
14
+ throw new Error('interface_name is required');
15
+ }
16
+ const checkParams = {
17
+ object_name: interfaceName,
18
+ object_type: 'INTF/OI'
19
+ };
20
+ return await (0, delete_1.checkDeletion)(connection, checkParams);
21
+ }
22
+ /**
23
+ * Delete ABAP interface
24
+ * Optionally checks deletion before deleting (like Eclipse ADT)
25
+ */
26
+ async function deleteInterface(connection, params) {
27
+ if (!params.interface_name) {
28
+ throw new Error('interface_name is required');
29
+ }
30
+ // Optional: Check deletion before deleting (like Eclipse ADT)
31
+ // This can be useful to verify object is deletable and get dependencies
32
+ if (params.check_before_delete !== false) {
33
+ try {
34
+ await checkInterfaceDeletion(connection, params.interface_name);
35
+ }
36
+ catch (error) {
37
+ // If check fails, still attempt deletion (check is optional)
38
+ // Log warning but continue
39
+ }
40
+ }
41
+ const deleteParams = {
42
+ object_name: params.interface_name,
43
+ object_type: 'INTF/OI',
44
+ transport_request: params.transport_request
45
+ };
46
+ return await (0, delete_1.deleteObject)(connection, deleteParams);
47
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Interface operations - exports
3
+ */
4
+ export * from './types';
5
+ export * from './create';
6
+ export * from './update';
7
+ export * from './read';
8
+ export * from './lock';
9
+ export * from './unlock';
10
+ export * from './activation';
11
+ export * from './check';
12
+ export * from './validation';
13
+ export * from './delete';
14
+ export { InterfaceBuilder, type InterfaceBuilderConfig, type InterfaceBuilderLogger, type InterfaceBuilderState } from './InterfaceBuilder';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/interface/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,KAAK,sBAAsB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ /**
3
+ * Interface 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.InterfaceBuilder = void 0;
21
+ __exportStar(require("./types"), exports);
22
+ __exportStar(require("./create"), exports);
23
+ __exportStar(require("./update"), exports);
24
+ __exportStar(require("./read"), exports);
25
+ __exportStar(require("./lock"), exports);
26
+ __exportStar(require("./unlock"), exports);
27
+ __exportStar(require("./activation"), exports);
28
+ __exportStar(require("./check"), exports);
29
+ __exportStar(require("./validation"), exports);
30
+ __exportStar(require("./delete"), exports);
31
+ var InterfaceBuilder_1 = require("./InterfaceBuilder");
32
+ Object.defineProperty(exports, "InterfaceBuilder", { enumerable: true, get: function () { return InterfaceBuilder_1.InterfaceBuilder; } });
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Interface lock operations
3
+ */
4
+ import { AbapConnection } from '@mcp-abap-adt/connection';
5
+ import { AxiosResponse } from 'axios';
6
+ /**
7
+ * Lock interface for modification
8
+ * Returns lock handle and transport number
9
+ */
10
+ export declare function lockInterface(connection: AbapConnection, interfaceName: string, sessionId: string): Promise<{
11
+ lockHandle: string;
12
+ corrNr?: string;
13
+ }>;
14
+ /**
15
+ * Lock interface for editing (for update)
16
+ * Returns lock handle and transport number
17
+ */
18
+ export declare function lockInterfaceForUpdate(connection: AbapConnection, interfaceName: string, sessionId: string): Promise<{
19
+ response: AxiosResponse;
20
+ lockHandle: string;
21
+ corrNr?: string;
22
+ }>;
23
+ //# sourceMappingURL=lock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../../src/core/interface/lock.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKtC;;;GAGG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,cAAc,EAC1B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAuBlD;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,cAAc,EAC1B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAmB3E"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ /**
3
+ * Interface lock operations
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.lockInterface = lockInterface;
7
+ exports.lockInterfaceForUpdate = lockInterfaceForUpdate;
8
+ const fast_xml_parser_1 = require("fast-xml-parser");
9
+ const internalUtils_1 = require("../../utils/internalUtils");
10
+ const sessionUtils_1 = require("../../utils/sessionUtils");
11
+ /**
12
+ * Lock interface for modification
13
+ * Returns lock handle and transport number
14
+ */
15
+ async function lockInterface(connection, interfaceName, sessionId) {
16
+ const url = `/sap/bc/adt/oo/interfaces/${(0, internalUtils_1.encodeSapObjectName)(interfaceName).toLowerCase()}?_action=LOCK&accessMode=MODIFY`;
17
+ const headers = {
18
+ 'Accept': 'application/vnd.sap.as+xml;charset=UTF-8;dataname=com.sap.adt.lock.result;q=0.8, application/vnd.sap.as+xml;charset=UTF-8;dataname=com.sap.adt.lock.result2;q=0.9'
19
+ };
20
+ const response = await (0, sessionUtils_1.makeAdtRequestWithSession)(connection, url, 'POST', sessionId, null, headers);
21
+ const parser = new fast_xml_parser_1.XMLParser({
22
+ ignoreAttributes: false,
23
+ attributeNamePrefix: ''
24
+ });
25
+ const lockData = parser.parse(response.data);
26
+ const lockHandle = lockData['asx:abap']?.['asx:values']?.['DATA']?.['LOCK_HANDLE'];
27
+ const corrNr = lockData['asx:abap']?.['asx:values']?.['DATA']?.['CORRNR'];
28
+ if (!lockHandle) {
29
+ throw new Error('Failed to acquire lock handle from response');
30
+ }
31
+ return { lockHandle, corrNr };
32
+ }
33
+ /**
34
+ * Lock interface for editing (for update)
35
+ * Returns lock handle and transport number
36
+ */
37
+ async function lockInterfaceForUpdate(connection, interfaceName, sessionId) {
38
+ const url = `/sap/bc/adt/oo/interfaces/${(0, internalUtils_1.encodeSapObjectName)(interfaceName).toLowerCase()}?_action=LOCK&accessMode=MODIFY`;
39
+ const headers = {
40
+ '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'
41
+ };
42
+ const response = await (0, sessionUtils_1.makeAdtRequestWithSession)(connection, url, 'POST', sessionId, null, headers);
43
+ const parser = new fast_xml_parser_1.XMLParser({ ignoreAttributes: false, attributeNamePrefix: '@_' });
44
+ const result = parser.parse(response.data);
45
+ const lockHandle = result?.['asx:abap']?.['asx:values']?.['DATA']?.['LOCK_HANDLE'];
46
+ const corrNr = result?.['asx:abap']?.['asx:values']?.['DATA']?.['CORRNR'];
47
+ if (!lockHandle) {
48
+ throw new Error('Failed to obtain lock handle from SAP. Interface may be locked by another user.');
49
+ }
50
+ return { response, lockHandle, corrNr };
51
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Interface read operations
3
+ */
4
+ import { AbapConnection } from '@mcp-abap-adt/connection';
5
+ import { AxiosResponse } from 'axios';
6
+ /**
7
+ * Get ABAP interface metadata (without source code)
8
+ */
9
+ export declare function getInterfaceMetadata(connection: AbapConnection, interfaceName: string): Promise<AxiosResponse>;
10
+ /**
11
+ * Get ABAP interface source code
12
+ */
13
+ export declare function getInterfaceSource(connection: AbapConnection, interfaceName: string): Promise<AxiosResponse>;
14
+ /**
15
+ * Get ABAP interface (source code by default for backward compatibility)
16
+ * @deprecated Use getInterfaceSource() or getInterfaceMetadata() instead
17
+ */
18
+ export declare function getInterface(connection: AbapConnection, interfaceName: string): Promise<AxiosResponse>;
19
+ /**
20
+ * Get transport request for ABAP interface
21
+ * @param connection - SAP connection
22
+ * @param interfaceName - Interface name
23
+ * @returns Transport request information
24
+ */
25
+ export declare function getInterfaceTransport(connection: AbapConnection, interfaceName: string): Promise<AxiosResponse>;
26
+ //# sourceMappingURL=read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../src/core/interface/read.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAc,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKtC;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,cAAc,EAC1B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,CAAC,CAExB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,cAAc,EAC1B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,CAAC,CAExB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,cAAc,EAC1B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,CAAC,CAExB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,cAAc,EAC1B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,CAAC,CAaxB"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ /**
3
+ * Interface read operations
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getInterfaceMetadata = getInterfaceMetadata;
7
+ exports.getInterfaceSource = getInterfaceSource;
8
+ exports.getInterface = getInterface;
9
+ exports.getInterfaceTransport = getInterfaceTransport;
10
+ const connection_1 = require("@mcp-abap-adt/connection");
11
+ const internalUtils_1 = require("../../utils/internalUtils");
12
+ const readMetadata_1 = require("../shared/readMetadata");
13
+ const readSource_1 = require("../shared/readSource");
14
+ /**
15
+ * Get ABAP interface metadata (without source code)
16
+ */
17
+ async function getInterfaceMetadata(connection, interfaceName) {
18
+ return (0, readMetadata_1.readObjectMetadata)(connection, 'interface', interfaceName);
19
+ }
20
+ /**
21
+ * Get ABAP interface source code
22
+ */
23
+ async function getInterfaceSource(connection, interfaceName) {
24
+ return (0, readSource_1.readObjectSource)(connection, 'interface', interfaceName);
25
+ }
26
+ /**
27
+ * Get ABAP interface (source code by default for backward compatibility)
28
+ * @deprecated Use getInterfaceSource() or getInterfaceMetadata() instead
29
+ */
30
+ async function getInterface(connection, interfaceName) {
31
+ return getInterfaceSource(connection, interfaceName);
32
+ }
33
+ /**
34
+ * Get transport request for ABAP interface
35
+ * @param connection - SAP connection
36
+ * @param interfaceName - Interface name
37
+ * @returns Transport request information
38
+ */
39
+ async function getInterfaceTransport(connection, interfaceName) {
40
+ const baseUrl = await connection.getBaseUrl();
41
+ const encodedName = (0, internalUtils_1.encodeSapObjectName)(interfaceName);
42
+ const url = `${baseUrl}/sap/bc/adt/oo/interfaces/${encodedName}/transport`;
43
+ return connection.makeAdtRequest({
44
+ url,
45
+ method: 'GET',
46
+ timeout: (0, connection_1.getTimeout)('default'),
47
+ headers: {
48
+ 'Accept': 'application/vnd.sap.adt.transportorganizer.v1+xml'
49
+ }
50
+ });
51
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Interface types
3
+ */
4
+ export interface CreateInterfaceParams {
5
+ interface_name: string;
6
+ description?: string;
7
+ package_name: string;
8
+ transport_request?: string;
9
+ master_system?: string;
10
+ responsible?: string;
11
+ source_code?: string;
12
+ activate?: boolean;
13
+ }
14
+ export interface UpdateInterfaceSourceParams {
15
+ interface_name: string;
16
+ source_code: string;
17
+ activate?: boolean;
18
+ }
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/interface/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,2BAA2B;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /**
3
+ * Interface types
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Interface unlock operations
3
+ */
4
+ import { AbapConnection } from '@mcp-abap-adt/connection';
5
+ import { AxiosResponse } from 'axios';
6
+ /**
7
+ * Unlock interface
8
+ * Must use same session and lock handle from lock operation
9
+ */
10
+ export declare function unlockInterface(connection: AbapConnection, interfaceName: string, lockHandle: string, sessionId: string): Promise<AxiosResponse>;
11
+ //# sourceMappingURL=unlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unlock.d.ts","sourceRoot":"","sources":["../../../src/core/interface/unlock.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAItC;;;GAGG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,cAAc,EAC1B,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,CAAC,CAkCxB"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /**
3
+ * Interface unlock operations
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.unlockInterface = unlockInterface;
7
+ const internalUtils_1 = require("../../utils/internalUtils");
8
+ const sessionUtils_1 = require("../../utils/sessionUtils");
9
+ /**
10
+ * Unlock interface
11
+ * Must use same session and lock handle from lock operation
12
+ */
13
+ async function unlockInterface(connection, interfaceName, lockHandle, sessionId) {
14
+ const url = `/sap/bc/adt/oo/interfaces/${(0, internalUtils_1.encodeSapObjectName)(interfaceName)}?_action=UNLOCK&lockHandle=${lockHandle}`;
15
+ try {
16
+ const response = await (0, sessionUtils_1.makeAdtRequestWithSession)(connection, url, 'POST', sessionId, '', { 'Content-Type': 'application/x-www-form-urlencoded' });
17
+ return response;
18
+ }
19
+ catch (error) {
20
+ // If response is not returned (e.g., object locked by another user, network error),
21
+ // provide more context in the error message
22
+ if (!error.response) {
23
+ throw new Error(`Failed to unlock interface ${interfaceName}: No response from server. ` +
24
+ `Lock handle: ${lockHandle.substring(0, 10)}..., Session: ${sessionId.substring(0, 10)}... ` +
25
+ `The interface may be locked by another user or session may be invalid.`);
26
+ }
27
+ // If we have a response, include its status and data in the error
28
+ const status = error.response?.status;
29
+ const statusText = status ? `HTTP ${status}` : 'HTTP ?';
30
+ const errorData = error.response?.data
31
+ ? (typeof error.response.data === 'string' ? error.response.data : JSON.stringify(error.response.data))
32
+ : error.message;
33
+ throw new Error(`Failed to unlock interface ${interfaceName} (${statusText}): ${errorData}`);
34
+ }
35
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Interface update operations
3
+ */
4
+ import { AbapConnection } from '@mcp-abap-adt/connection';
5
+ import { AxiosResponse } from 'axios';
6
+ import { UpdateInterfaceSourceParams } from './types';
7
+ /**
8
+ * Update interface source code
9
+ * Full workflow: lock -> upload source -> unlock -> activate (optional)
10
+ */
11
+ export declare function updateInterfaceSource(connection: AbapConnection, params: UpdateInterfaceSourceParams): Promise<AxiosResponse>;
12
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/core/interface/update.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAOtC,OAAO,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AA0BtD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,aAAa,CAAC,CA2DxB"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ /**
3
+ * Interface update operations
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.updateInterfaceSource = updateInterfaceSource;
7
+ const internalUtils_1 = require("../../utils/internalUtils");
8
+ const sessionUtils_1 = require("../../utils/sessionUtils");
9
+ const lock_1 = require("./lock");
10
+ const unlock_1 = require("./unlock");
11
+ const activation_1 = require("./activation");
12
+ /**
13
+ * Upload interface source code (for update)
14
+ */
15
+ async function uploadInterfaceSourceForUpdate(connection, interfaceName, sourceCode, lockHandle, sessionId, corrNr) {
16
+ let url = `/sap/bc/adt/oo/interfaces/${(0, internalUtils_1.encodeSapObjectName)(interfaceName).toLowerCase()}/source/main?lockHandle=${lockHandle}`;
17
+ if (corrNr) {
18
+ url += `&corrNr=${corrNr}`;
19
+ }
20
+ const headers = {
21
+ 'Content-Type': 'text/plain; charset=utf-8',
22
+ 'Accept': 'text/plain'
23
+ };
24
+ return await (0, sessionUtils_1.makeAdtRequestWithSession)(connection, url, 'PUT', sessionId, sourceCode, headers);
25
+ }
26
+ /**
27
+ * Update interface source code
28
+ * Full workflow: lock -> upload source -> unlock -> activate (optional)
29
+ */
30
+ async function updateInterfaceSource(connection, params) {
31
+ const interfaceName = params.interface_name.toUpperCase();
32
+ const sessionId = (0, sessionUtils_1.generateSessionId)();
33
+ let lockHandle = null;
34
+ try {
35
+ // Step 1: Lock the interface
36
+ const lockResult = await (0, lock_1.lockInterfaceForUpdate)(connection, interfaceName, sessionId);
37
+ lockHandle = lockResult.lockHandle;
38
+ const corrNr = lockResult.corrNr;
39
+ // Step 2: Upload new source code
40
+ await uploadInterfaceSourceForUpdate(connection, interfaceName, params.source_code, lockHandle, sessionId, corrNr);
41
+ // Step 3: Unlock the interface
42
+ await (0, unlock_1.unlockInterface)(connection, interfaceName, lockHandle, sessionId);
43
+ lockHandle = null;
44
+ // Step 4: Activate the interface (optional)
45
+ const shouldActivate = params.activate === true;
46
+ if (shouldActivate) {
47
+ await (0, activation_1.activateInterface)(connection, interfaceName, sessionId);
48
+ }
49
+ // Return success response
50
+ return {
51
+ data: {
52
+ success: true,
53
+ interface_name: interfaceName,
54
+ type: 'INTF/OI',
55
+ message: shouldActivate
56
+ ? `Interface ${interfaceName} source updated and activated successfully`
57
+ : `Interface ${interfaceName} source updated successfully (not activated)`,
58
+ uri: `/sap/bc/adt/oo/interfaces/${(0, internalUtils_1.encodeSapObjectName)(interfaceName).toLowerCase()}`,
59
+ source_size_bytes: params.source_code.length
60
+ },
61
+ status: 200,
62
+ statusText: 'OK',
63
+ headers: {},
64
+ config: {}
65
+ };
66
+ }
67
+ catch (error) {
68
+ // CRITICAL: Always try to unlock on error to prevent locked objects
69
+ if (lockHandle) {
70
+ try {
71
+ await (0, unlock_1.unlockInterface)(connection, interfaceName, lockHandle, sessionId);
72
+ }
73
+ catch (unlockError) {
74
+ // Ignore unlock errors
75
+ }
76
+ }
77
+ const errorMessage = error.response?.data
78
+ ? (typeof error.response.data === 'string' ? error.response.data : JSON.stringify(error.response.data))
79
+ : error.message;
80
+ throw new Error(`Failed to update interface ${interfaceName}: ${errorMessage}`);
81
+ }
82
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Interface validation
3
+ */
4
+ import { AbapConnection } from '@mcp-abap-adt/connection';
5
+ import { ValidationResult } from '../shared/validation';
6
+ /**
7
+ * Validate interface name
8
+ */
9
+ export declare function validateInterfaceName(connection: AbapConnection, interfaceName: 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/interface/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,qBAAqB,CACzC,UAAU,EAAE,cAAc,EAC1B,aAAa,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC,CAQ3B"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ * Interface validation
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.validateInterfaceName = validateInterfaceName;
7
+ const validation_1 = require("../shared/validation");
8
+ /**
9
+ * Validate interface name
10
+ */
11
+ async function validateInterfaceName(connection, interfaceName, description) {
12
+ const params = {};
13
+ if (description) {
14
+ params.description = description;
15
+ }
16
+ return (0, validation_1.validateObjectName)(connection, 'INTF/OI', interfaceName, params);
17
+ }