trm-core 9.10.6 → 10.0.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 (384) hide show
  1. package/README.md +20 -0
  2. package/changelog.txt +3 -6
  3. package/dist/actions/cg3y/download.js +34 -4
  4. package/dist/actions/cg3y/index.d.ts +23 -0
  5. package/dist/actions/cg3y/index.js +13 -10
  6. package/dist/actions/cg3z/index.d.ts +67 -3
  7. package/dist/actions/cg3z/index.js +25 -14
  8. package/dist/actions/cg3z/upload.d.ts +20 -0
  9. package/dist/actions/cg3z/upload.js +165 -36
  10. package/dist/actions/checkEngines/analyze.d.ts +11 -0
  11. package/dist/actions/checkEngines/analyze.js +294 -0
  12. package/dist/actions/checkEngines/index.d.ts +87 -0
  13. package/dist/actions/checkEngines/index.js +38 -0
  14. package/dist/actions/checkEngines/init.d.ts +11 -0
  15. package/dist/actions/checkEngines/init.js +45 -0
  16. package/dist/actions/checkPackageDependencies/analyze.d.ts +10 -0
  17. package/dist/actions/checkPackageDependencies/analyze.js +37 -39
  18. package/dist/actions/checkPackageDependencies/index.d.ts +56 -0
  19. package/dist/actions/checkPackageDependencies/index.js +13 -10
  20. package/dist/actions/checkPackageDependencies/init.d.ts +8 -0
  21. package/dist/actions/checkPackageDependencies/init.js +24 -2
  22. package/dist/actions/checkSapEntries/analyze.d.ts +12 -0
  23. package/dist/actions/checkSapEntries/analyze.js +63 -47
  24. package/dist/actions/checkSapEntries/index.d.ts +35 -0
  25. package/dist/actions/checkSapEntries/index.js +12 -10
  26. package/dist/actions/checkSapEntries/init.d.ts +8 -0
  27. package/dist/actions/checkSapEntries/init.js +10 -2
  28. package/dist/actions/commons/IActionContext.d.ts +10 -0
  29. package/dist/actions/commons/checkServerAuth.d.ts +7 -0
  30. package/dist/actions/commons/checkServerAuth.js +10 -5
  31. package/dist/actions/commons/index.d.ts +1 -1
  32. package/dist/actions/commons/index.js +1 -1
  33. package/dist/actions/commons/prompts/index.d.ts +1 -0
  34. package/dist/actions/commons/prompts/index.js +1 -0
  35. package/dist/actions/commons/prompts/setLandscapeTarget.d.ts +14 -0
  36. package/dist/actions/commons/prompts/setLandscapeTarget.js +40 -0
  37. package/dist/actions/commons/prompts/setTransportTarget.d.ts +15 -0
  38. package/dist/actions/commons/prompts/setTransportTarget.js +20 -2
  39. package/dist/actions/commons/setSystemPackages.d.ts +7 -0
  40. package/dist/actions/commons/setSystemPackages.js +12 -2
  41. package/dist/actions/commons/utils/actionLocks.d.ts +32 -0
  42. package/dist/actions/commons/utils/actionLocks.js +135 -0
  43. package/dist/actions/commons/utils/dirtyEntries.d.ts +12 -0
  44. package/dist/actions/commons/utils/dirtyEntries.js +54 -0
  45. package/dist/actions/commons/utils/index.d.ts +10 -0
  46. package/dist/actions/commons/utils/index.js +26 -0
  47. package/dist/actions/commons/utils/installRegistry.d.ts +18 -0
  48. package/dist/actions/commons/utils/installRegistry.js +46 -0
  49. package/dist/actions/commons/utils/installedDependency.d.ts +15 -0
  50. package/dist/actions/commons/utils/installedDependency.js +30 -0
  51. package/dist/actions/commons/utils/owningInstallation.d.ts +6 -0
  52. package/dist/actions/commons/utils/owningInstallation.js +47 -0
  53. package/dist/actions/commons/utils/packageCleanup.d.ts +168 -0
  54. package/dist/actions/commons/utils/packageCleanup.js +1017 -0
  55. package/dist/actions/commons/utils/releaseDeletionTransport.d.ts +5 -0
  56. package/dist/actions/commons/utils/releaseDeletionTransport.js +67 -0
  57. package/dist/actions/commons/utils/restoreTransport.d.ts +6 -0
  58. package/dist/actions/commons/utils/restoreTransport.js +50 -0
  59. package/dist/actions/commons/utils/retainedWorkflow.d.ts +6 -0
  60. package/dist/actions/commons/utils/retainedWorkflow.js +49 -0
  61. package/dist/actions/commons/utils/withScopedPrefix.d.ts +5 -0
  62. package/dist/actions/commons/utils/withScopedPrefix.js +32 -0
  63. package/dist/actions/commons/workflowCallbacks.d.ts +21 -0
  64. package/dist/actions/commons/workflowCallbacks.js +157 -0
  65. package/dist/actions/index.d.ts +3 -0
  66. package/dist/actions/index.js +5 -0
  67. package/dist/actions/install/addNamespace.d.ts +18 -0
  68. package/dist/actions/install/addNamespace.js +121 -51
  69. package/dist/actions/install/checkDependants.d.ts +15 -0
  70. package/dist/actions/install/checkDependants.js +74 -0
  71. package/dist/actions/install/checkDependencies.d.ts +11 -0
  72. package/dist/actions/install/checkDependencies.js +32 -13
  73. package/dist/actions/install/checkDependencyCycles.d.ts +17 -0
  74. package/dist/actions/install/checkDependencyCycles.js +105 -0
  75. package/dist/actions/install/checkEngines.d.ts +11 -0
  76. package/dist/actions/install/checkEngines.js +100 -0
  77. package/dist/actions/install/checkInstallDevclass.d.ts +24 -0
  78. package/dist/actions/install/checkInstallDevclass.js +110 -0
  79. package/dist/actions/install/checkSapEntries.d.ts +9 -0
  80. package/dist/actions/install/checkSapEntries.js +20 -12
  81. package/dist/actions/install/checkTransports.d.ts +34 -0
  82. package/dist/actions/install/checkTransports.js +329 -170
  83. package/dist/actions/install/cleanupCheckpoint.d.ts +11 -0
  84. package/dist/actions/install/cleanupCheckpoint.js +62 -0
  85. package/dist/actions/install/defaultTransportLayer.d.ts +5 -0
  86. package/dist/actions/install/defaultTransportLayer.js +36 -0
  87. package/dist/actions/install/executePostActivities.d.ts +6 -0
  88. package/dist/actions/install/executePostActivities.js +28 -38
  89. package/dist/actions/install/generateDevclass.d.ts +10 -0
  90. package/dist/actions/install/generateDevclass.js +66 -20
  91. package/dist/actions/install/generateLandscapeTransport.d.ts +23 -0
  92. package/dist/actions/install/generateLandscapeTransport.js +136 -0
  93. package/dist/actions/install/generateUpdateTransport.d.ts +20 -0
  94. package/dist/actions/install/generateUpdateTransport.js +122 -0
  95. package/dist/actions/install/importBatch.d.ts +22 -0
  96. package/dist/actions/install/importBatch.js +0 -0
  97. package/dist/actions/install/index.d.ts +273 -44
  98. package/dist/actions/install/index.js +139 -59
  99. package/dist/actions/install/init.d.ts +14 -0
  100. package/dist/actions/install/init.js +215 -108
  101. package/dist/actions/install/installDependencies.d.ts +14 -0
  102. package/dist/actions/install/installDependencies.js +122 -45
  103. package/dist/actions/install/lockResources.d.ts +8 -0
  104. package/dist/actions/install/lockResources.js +100 -0
  105. package/dist/actions/install/prepareCust.d.ts +13 -0
  106. package/dist/actions/install/prepareCust.js +138 -0
  107. package/dist/actions/install/prepareDevc.d.ts +15 -0
  108. package/dist/actions/install/prepareDevc.js +113 -0
  109. package/dist/actions/install/prepareLang.d.ts +13 -0
  110. package/dist/actions/install/prepareLang.js +110 -0
  111. package/dist/actions/install/prepareTadir.d.ts +13 -0
  112. package/dist/actions/install/prepareTadir.js +95 -0
  113. package/dist/actions/install/releaseLandscapeTransport.d.ts +11 -0
  114. package/dist/actions/install/releaseLandscapeTransport.js +79 -0
  115. package/dist/actions/install/setInstallDevclass.d.ts +10 -0
  116. package/dist/actions/install/setInstallDevclass.js +140 -54
  117. package/dist/actions/install/updatePackageData.d.ts +9 -0
  118. package/dist/actions/install/updatePackageData.js +117 -13
  119. package/dist/actions/installDependency/checkInstalledRelease.d.ts +13 -0
  120. package/dist/actions/installDependency/checkInstalledRelease.js +50 -0
  121. package/dist/actions/installDependency/confirmDowngrade.d.ts +11 -0
  122. package/dist/actions/installDependency/confirmDowngrade.js +53 -0
  123. package/dist/actions/installDependency/findInstallRelease.d.ts +24 -0
  124. package/dist/actions/installDependency/findInstallRelease.js +42 -19
  125. package/dist/actions/installDependency/index.d.ts +64 -3
  126. package/dist/actions/installDependency/index.js +30 -13
  127. package/dist/actions/installDependency/init.d.ts +14 -0
  128. package/dist/actions/installDependency/init.js +24 -3
  129. package/dist/actions/installDependency/installRelease.d.ts +6 -0
  130. package/dist/actions/installDependency/installRelease.js +22 -12
  131. package/dist/actions/publish/enginesUi.d.ts +53 -0
  132. package/dist/actions/publish/enginesUi.js +289 -0
  133. package/dist/actions/publish/findDependencies.d.ts +19 -0
  134. package/dist/actions/publish/findDependencies.js +72 -37
  135. package/dist/actions/publish/generateCustTransport.d.ts +6 -0
  136. package/dist/actions/publish/generateCustTransport.js +42 -19
  137. package/dist/actions/publish/generateDevcTransport.d.ts +6 -0
  138. package/dist/actions/publish/generateDevcTransport.js +16 -18
  139. package/dist/actions/publish/generateLangTransport.d.ts +6 -0
  140. package/dist/actions/publish/generateLangTransport.js +20 -23
  141. package/dist/actions/publish/generateTadirTransport.d.ts +6 -0
  142. package/dist/actions/publish/generateTadirTransport.js +18 -17
  143. package/dist/actions/publish/getSystemEngines.d.ts +27 -0
  144. package/dist/actions/publish/getSystemEngines.js +112 -0
  145. package/dist/actions/publish/index.d.ts +162 -37
  146. package/dist/actions/publish/index.js +51 -34
  147. package/dist/actions/publish/init.d.ts +28 -0
  148. package/dist/actions/publish/init.js +304 -120
  149. package/dist/actions/publish/lockResources.d.ts +4 -0
  150. package/dist/actions/{install/refreshTmsTxt.js → publish/lockResources.js} +14 -17
  151. package/dist/actions/publish/publishToRegistry.d.ts +8 -0
  152. package/dist/actions/publish/publishToRegistry.js +18 -8
  153. package/dist/actions/publish/releaseTransports.d.ts +6 -0
  154. package/dist/actions/publish/releaseTransports.js +48 -20
  155. package/dist/actions/publish/setCustomizingTransports.d.ts +6 -0
  156. package/dist/actions/publish/setCustomizingTransports.js +227 -101
  157. package/dist/actions/publish/setManifestValues.d.ts +22 -0
  158. package/dist/actions/publish/setManifestValues.js +455 -119
  159. package/dist/actions/publish/setOptionalPublishData.d.ts +11 -0
  160. package/dist/actions/publish/setOptionalPublishData.js +133 -0
  161. package/dist/actions/publish/updatePackageData.d.ts +8 -0
  162. package/dist/actions/publish/updatePackageData.js +20 -7
  163. package/dist/actions/stopWarning.d.ts +5 -0
  164. package/dist/actions/stopWarning.js +5 -0
  165. package/dist/actions/uninstall/checkDependants.d.ts +7 -0
  166. package/dist/actions/uninstall/checkDependants.js +55 -0
  167. package/dist/actions/uninstall/forwardDeletionTransport.d.ts +10 -0
  168. package/dist/actions/uninstall/forwardDeletionTransport.js +51 -0
  169. package/dist/actions/uninstall/generateDeletionTransport.d.ts +10 -0
  170. package/dist/actions/uninstall/generateDeletionTransport.js +45 -0
  171. package/dist/actions/uninstall/index.d.ts +153 -0
  172. package/dist/actions/uninstall/index.js +141 -0
  173. package/dist/actions/uninstall/init.d.ts +17 -0
  174. package/dist/actions/uninstall/init.js +146 -0
  175. package/dist/actions/uninstall/lockResources.d.ts +4 -0
  176. package/dist/actions/{publish/setTransportTarget.js → uninstall/lockResources.js} +16 -7
  177. package/dist/actions/uninstall/removePackageData.d.ts +9 -0
  178. package/dist/actions/uninstall/removePackageData.js +64 -0
  179. package/dist/actions/uninstall/uninstallNestedPackages.d.ts +26 -0
  180. package/dist/actions/uninstall/uninstallNestedPackages.js +174 -0
  181. package/dist/client/ClientError.d.ts +3 -1
  182. package/dist/client/ClientError.js +2 -1
  183. package/dist/client/RESTClient.d.ts +18 -5
  184. package/dist/client/RESTClient.js +194 -56
  185. package/dist/client/RESTClientError.d.ts +1 -2
  186. package/dist/client/RESTClientError.js +3 -2
  187. package/dist/client/RFCClient.d.ts +28 -7
  188. package/dist/client/RFCClient.js +325 -77
  189. package/dist/client/RFCClientError.d.ts +1 -1
  190. package/dist/client/RFCClientError.js +2 -2
  191. package/dist/client/TransportEntries.d.ts +8 -0
  192. package/dist/client/TransportEntries.js +2 -0
  193. package/dist/client/components/BORM_ID.d.ts +1 -0
  194. package/dist/client/components/BORM_ID.js +2 -0
  195. package/dist/client/components/BORM_NAME.d.ts +1 -0
  196. package/dist/client/components/BORM_NAME.js +2 -0
  197. package/dist/client/components/BORM_NAMEL.d.ts +1 -0
  198. package/dist/client/components/BORM_NAMEL.js +2 -0
  199. package/dist/client/components/BORM_VEND.d.ts +1 -0
  200. package/dist/client/components/BORM_VEND.js +2 -0
  201. package/dist/client/components/BORM_VERS.d.ts +1 -0
  202. package/dist/client/components/BORM_VERS.js +2 -0
  203. package/dist/client/components/CWBNTNUMM.d.ts +1 -0
  204. package/dist/client/components/CWBNTNUMM.js +2 -0
  205. package/dist/client/components/CWBNTSTAT.d.ts +1 -0
  206. package/dist/client/components/CWBNTSTAT.js +2 -0
  207. package/dist/client/components/CWBNTVERS.d.ts +1 -0
  208. package/dist/client/components/CWBNTVERS.js +2 -0
  209. package/dist/client/components/CWBPRSTAT.d.ts +1 -0
  210. package/dist/client/components/CWBPRSTAT.js +2 -0
  211. package/dist/client/components/INSTSTATE.d.ts +1 -0
  212. package/dist/client/components/INSTSTATE.js +2 -0
  213. package/dist/client/components/RELC_TYPE.d.ts +1 -0
  214. package/dist/client/components/RELC_TYPE.js +2 -0
  215. package/dist/client/components/SAPPATCHLV.d.ts +1 -0
  216. package/dist/client/components/SAPPATCHLV.js +2 -0
  217. package/dist/client/components/SAPRELEASE.d.ts +1 -0
  218. package/dist/client/components/SAPRELEASE.js +2 -0
  219. package/dist/client/components/SYSYSID.d.ts +1 -0
  220. package/dist/client/components/SYSYSID.js +2 -0
  221. package/dist/client/components/ZTRM_INSTALLTR_TYPE.d.ts +1 -0
  222. package/dist/client/components/ZTRM_INSTALLTR_TYPE.js +2 -0
  223. package/dist/client/components/index.d.ts +15 -0
  224. package/dist/client/components/index.js +15 -0
  225. package/dist/client/index.d.ts +1 -0
  226. package/dist/client/index.js +1 -0
  227. package/dist/client/messageLog.d.ts +7 -0
  228. package/dist/client/messageLog.js +21 -0
  229. package/dist/client/struct/ActionLockKey.d.ts +6 -0
  230. package/dist/client/struct/ActionLockKey.js +2 -0
  231. package/dist/client/struct/CVERS.d.ts +7 -0
  232. package/dist/client/struct/CVERS.js +2 -0
  233. package/dist/client/struct/CWBNTCUST.d.ts +6 -0
  234. package/dist/client/struct/CWBNTCUST.js +2 -0
  235. package/dist/client/struct/CWBNTHEAD.d.ts +5 -0
  236. package/dist/client/struct/CWBNTHEAD.js +2 -0
  237. package/dist/client/struct/E070.d.ts +2 -1
  238. package/dist/client/struct/E071K.d.ts +9 -0
  239. package/dist/client/struct/E071K.js +2 -0
  240. package/dist/client/struct/PRDVERS.d.ts +9 -0
  241. package/dist/client/struct/PRDVERS.js +2 -0
  242. package/dist/client/struct/SCOMPKDTLN.d.ts +21 -0
  243. package/dist/client/struct/STMSCALERT.d.ts +21 -0
  244. package/dist/client/struct/STMSCALERT.js +2 -0
  245. package/dist/client/struct/STMS_TP_IMPORT.d.ts +14 -0
  246. package/dist/client/struct/STMS_TP_IMPORT.js +2 -0
  247. package/dist/client/struct/STMS_TR_REQUEST.d.ts +8 -0
  248. package/dist/client/struct/STMS_TR_REQUEST.js +2 -0
  249. package/dist/client/struct/TDEVC.d.ts +38 -0
  250. package/dist/client/struct/TPLOGPTR.d.ts +13 -0
  251. package/dist/client/struct/TPLOGPTR.js +2 -0
  252. package/dist/client/struct/TPSTDOUT.d.ts +3 -0
  253. package/dist/client/struct/TPSTDOUT.js +2 -0
  254. package/dist/client/struct/ZTRM_INSTALLTR.d.ts +8 -0
  255. package/dist/client/struct/ZTRM_INSTALLTR.js +2 -0
  256. package/dist/client/struct/index.d.ts +12 -0
  257. package/dist/client/struct/index.js +12 -0
  258. package/dist/commons/checkCoreTrmDependencies.js +1 -1
  259. package/dist/commons/getAxiosInstance.js +8 -17
  260. package/dist/commons/getNodePackage.js +7 -0
  261. package/dist/commons/getPackageHierarchy.js +2 -0
  262. package/dist/commons/getPackagesNamespace.d.ts +9 -0
  263. package/dist/commons/getPackagesNamespace.js +19 -0
  264. package/dist/commons/index.d.ts +4 -0
  265. package/dist/commons/index.js +4 -0
  266. package/dist/commons/packageDataFromTdevc.d.ts +12 -0
  267. package/dist/commons/packageDataFromTdevc.js +25 -0
  268. package/dist/commons/resolveCoreVersion.d.ts +10 -0
  269. package/dist/commons/resolveCoreVersion.js +24 -0
  270. package/dist/commons/summarizeForLog.d.ts +22 -0
  271. package/dist/commons/summarizeForLog.js +120 -0
  272. package/dist/connection/OpenRFCConnect.d.ts +13 -0
  273. package/dist/connection/OpenRFCConnect.js +23 -0
  274. package/dist/connection/index.d.ts +1 -0
  275. package/dist/connection/index.js +17 -0
  276. package/dist/dependencies/PackageDependencies.d.ts +2 -0
  277. package/dist/dependencies/PackageDependencies.js +24 -0
  278. package/dist/index.d.ts +1 -0
  279. package/dist/index.js +1 -0
  280. package/dist/lockfile/Lockfile.d.ts +23 -1
  281. package/dist/lockfile/Lockfile.js +45 -9
  282. package/dist/manifest/Manifest.d.ts +9 -5
  283. package/dist/manifest/Manifest.js +82 -29
  284. package/dist/manifest/PostActivity.js +3 -3
  285. package/dist/manifest/TrmManifest.d.ts +0 -2
  286. package/dist/manifest/TrmManifestBase.d.ts +2 -0
  287. package/dist/manifest/TrmManifestEngines.d.ts +64 -0
  288. package/dist/manifest/TrmManifestEngines.js +2 -0
  289. package/dist/manifest/engines/index.d.ts +2 -0
  290. package/dist/manifest/engines/index.js +18 -0
  291. package/dist/manifest/engines/sapRange.d.ts +38 -0
  292. package/dist/manifest/engines/sapRange.js +135 -0
  293. package/dist/manifest/engines/validateEngines.d.ts +44 -0
  294. package/dist/manifest/engines/validateEngines.js +282 -0
  295. package/dist/manifest/index.d.ts +3 -0
  296. package/dist/manifest/index.js +3 -0
  297. package/dist/manifest/sapEntries.d.ts +14 -0
  298. package/dist/manifest/sapEntries.js +63 -0
  299. package/dist/protocol/Protocol.js +7 -0
  300. package/dist/registry/AbstractRegistry.d.ts +18 -3
  301. package/dist/registry/FileSystem.d.ts +22 -13
  302. package/dist/registry/FileSystem.js +69 -18
  303. package/dist/registry/RegistryDeletionTransportUnauthorizedError.d.ts +4 -0
  304. package/dist/registry/RegistryDeletionTransportUnauthorizedError.js +12 -0
  305. package/dist/registry/RegistryDeletionTransportUnavailableError.d.ts +9 -0
  306. package/dist/registry/RegistryDeletionTransportUnavailableError.js +17 -0
  307. package/dist/registry/RegistryPackageNotFoundError.d.ts +7 -0
  308. package/dist/registry/RegistryPackageNotFoundError.js +14 -0
  309. package/dist/registry/RegistryV2.d.ts +15 -5
  310. package/dist/registry/RegistryV2.js +308 -48
  311. package/dist/registry/index.d.ts +4 -0
  312. package/dist/registry/index.js +4 -0
  313. package/dist/registry/registryKey.d.ts +7 -0
  314. package/dist/registry/registryKey.js +21 -0
  315. package/dist/systemConnector/ActionLock.d.ts +1 -0
  316. package/dist/systemConnector/ActionLock.js +2 -0
  317. package/dist/systemConnector/ISystemConnector.d.ts +21 -4
  318. package/dist/systemConnector/ISystemConnectorBase.d.ts +16 -0
  319. package/dist/systemConnector/InstallTransport.d.ts +6 -0
  320. package/dist/systemConnector/InstallTransport.js +2 -0
  321. package/dist/systemConnector/OpenRFCSystemConnector.d.ts +12 -0
  322. package/dist/systemConnector/OpenRFCSystemConnector.js +51 -0
  323. package/dist/systemConnector/RESTSystemConnector.d.ts +22 -7
  324. package/dist/systemConnector/RESTSystemConnector.js +95 -23
  325. package/dist/systemConnector/RFCConnection.d.ts +0 -1
  326. package/dist/systemConnector/RFCSystemConnector.d.ts +25 -7
  327. package/dist/systemConnector/RFCSystemConnector.js +75 -16
  328. package/dist/systemConnector/SystemConnector.d.ts +38 -6
  329. package/dist/systemConnector/SystemConnector.js +138 -12
  330. package/dist/systemConnector/SystemConnectorBase.d.ts +24 -1
  331. package/dist/systemConnector/SystemConnectorBase.js +174 -22
  332. package/dist/systemConnector/index.d.ts +3 -0
  333. package/dist/systemConnector/index.js +3 -0
  334. package/dist/transport/E071KOwner.d.ts +10 -0
  335. package/dist/transport/E071KOwner.js +15 -0
  336. package/dist/transport/R3transLogParser.d.ts +19 -0
  337. package/dist/transport/R3transLogParser.js +148 -0
  338. package/dist/transport/Transport.d.ts +36 -3
  339. package/dist/transport/Transport.js +304 -138
  340. package/dist/transport/index.d.ts +2 -0
  341. package/dist/transport/index.js +2 -0
  342. package/dist/trmPackage/TransportBinary.d.ts +4 -1
  343. package/dist/trmPackage/TrmArtifact.d.ts +12 -8
  344. package/dist/trmPackage/TrmArtifact.js +93 -74
  345. package/dist/trmPackage/TrmPackage.d.ts +20 -6
  346. package/dist/trmPackage/TrmPackage.js +27 -1
  347. package/dist/validators/validateDevclass.js +4 -0
  348. package/package.json +15 -7
  349. package/dist/actions/commons/trmServerPa.d.ts +0 -3
  350. package/dist/actions/commons/trmServerPa.js +0 -40
  351. package/dist/actions/install/checkAlreadyInstalled.d.ts +0 -3
  352. package/dist/actions/install/checkAlreadyInstalled.js +0 -71
  353. package/dist/actions/install/checkObjectTypes.d.ts +0 -3
  354. package/dist/actions/install/checkObjectTypes.js +0 -50
  355. package/dist/actions/install/checkObjectsLock.d.ts +0 -3
  356. package/dist/actions/install/checkObjectsLock.js +0 -52
  357. package/dist/actions/install/generateInstallTransports.d.ts +0 -3
  358. package/dist/actions/install/generateInstallTransports.js +0 -128
  359. package/dist/actions/install/importCustTransport.d.ts +0 -3
  360. package/dist/actions/install/importCustTransport.js +0 -73
  361. package/dist/actions/install/importDevcTransport.d.ts +0 -3
  362. package/dist/actions/install/importDevcTransport.js +0 -93
  363. package/dist/actions/install/importLangTransport.d.ts +0 -3
  364. package/dist/actions/install/importLangTransport.js +0 -72
  365. package/dist/actions/install/importTadirTransport.d.ts +0 -3
  366. package/dist/actions/install/importTadirTransport.js +0 -83
  367. package/dist/actions/install/readDevc.d.ts +0 -3
  368. package/dist/actions/install/readDevc.js +0 -33
  369. package/dist/actions/install/readTadir.d.ts +0 -3
  370. package/dist/actions/install/readTadir.js +0 -101
  371. package/dist/actions/install/refreshTmsTxt.d.ts +0 -3
  372. package/dist/actions/install/releaseInstallTransport.d.ts +0 -3
  373. package/dist/actions/install/releaseInstallTransport.js +0 -80
  374. package/dist/actions/publish/checkAllObjectsReleased.d.ts +0 -3
  375. package/dist/actions/publish/checkAllObjectsReleased.js +0 -46
  376. package/dist/actions/publish/getSourceCode.d.ts +0 -3
  377. package/dist/actions/publish/getSourceCode.js +0 -49
  378. package/dist/actions/publish/setChangelog.d.ts +0 -3
  379. package/dist/actions/publish/setChangelog.js +0 -69
  380. package/dist/actions/publish/setDevclass.d.ts +0 -3
  381. package/dist/actions/publish/setDevclass.js +0 -74
  382. package/dist/actions/publish/setReadme.d.ts +0 -3
  383. package/dist/actions/publish/setReadme.js +0 -52
  384. package/dist/actions/publish/setTransportTarget.d.ts +0 -3
@@ -3,19 +3,26 @@ import * as struct from "./struct";
3
3
  import { IClient } from "./IClient";
4
4
  import { AxiosInstance } from "axios";
5
5
  import { Login, RESTClientError, SapMessage } from ".";
6
- import { TrmPackageUpdateData } from "../systemConnector";
6
+ import { TrmPackageMetadataRestoreData, TrmPackageUpdateData } from "../systemConnector";
7
+ import { TransportEntries } from "./TransportEntries";
8
+ import { ActionLockKey } from "./struct/ActionLockKey";
7
9
  export declare class RESTClient implements IClient {
8
10
  endpoint: string;
9
11
  rfcdest: components.RFCDEST;
10
12
  private _login;
11
13
  private _cLangu;
14
+ acquireActionLocks(keys: ActionLockKey[], ownerToken: string, actionName: string): Promise<void>;
15
+ releaseActionLocks(keys: ActionLockKey[], ownerToken: string): Promise<void>;
12
16
  protected _axiosInstance: AxiosInstance;
13
17
  private _connected;
14
18
  constructor(endpoint: string, rfcdest: components.RFCDEST, _login: Login, _cLangu: string);
15
19
  open(): Promise<void>;
16
20
  checkConnection(): Promise<boolean>;
17
21
  getMessage(data: SapMessage): Promise<string>;
18
- readTable(tableName: components.TABNAME, fields: struct.RFC_DB_FLD[], options?: string): Promise<any[]>;
22
+ readTable(tableName: components.TABNAME, fields: struct.RFC_DB_FLD[], options?: string, paging?: {
23
+ offset: number;
24
+ limit: number;
25
+ }): Promise<any[]>;
19
26
  getFileSystem(): Promise<struct.FILESYS>;
20
27
  getDirTrans(): Promise<components.PFEVALUE>;
21
28
  getBinaryFile(filePath: string): Promise<Buffer>;
@@ -27,18 +34,23 @@ export declare class RESTClient implements IClient {
27
34
  getDevclassObjects(devclass: components.DEVCLASS): Promise<struct.TADIR[]>;
28
35
  removeComments(trkorr: components.TRKORR, object: components.TROBJTYPE): Promise<void>;
29
36
  addToTransportRequest(trkorr: components.TRKORR, content: struct.E071[], lock: boolean): Promise<void>;
37
+ lockTransportObjs(trkorr: components.TRKORR): Promise<void>;
30
38
  repositoryEnvironment(objectType: components.SEU_OBJ, objectName: components.SOBJ_NAME): Promise<struct.SENVI[]>;
31
39
  deleteTrkorr(trkorr: components.TRKORR): Promise<void>;
32
40
  releaseTrkorr(trkorr: components.TRKORR, lock: boolean, timeout?: number): Promise<void>;
33
41
  readTmsQueue(target: components.TMSSYSNAM): Promise<struct.STMSIQREQ[]>;
42
+ deleteTemporaryPackage(devclass: components.DEVCLASS): Promise<void>;
34
43
  createPackage(scompkdtln: struct.SCOMPKDTLN): Promise<void>;
35
44
  tdevcInterface(devclass: components.DEVCLASS, parentcl?: components.DEVCLASS, rmParentCl?: boolean, devlayer?: components.DEVLAYER): Promise<void>;
36
45
  getDefaultTransportLayer(): Promise<components.DEVLAYER>;
37
46
  tadirInterface(tadir: struct.TADIR): Promise<void>;
38
- dequeueTransport(trkorr: components.TRKORR): Promise<void>;
39
47
  forwardTransport(trkorr: components.TRKORR, target: components.TMSSYSNAM, source: components.TMSSYSNAM, importAgain?: boolean): Promise<void>;
40
- importTransport(trkorr: components.TRKORR, system: components.TMSSYSNAM): Promise<void>;
48
+ importTransport(trkorr: components.TRKORR, system: components.TMSSYSNAM, test: boolean): Promise<struct.STMS_TP_IMPORT | void>;
49
+ importTransportMultiple(trkorr: components.TRKORR[], system: components.TMSSYSNAM, test: boolean): Promise<struct.STMS_TP_IMPORT | void>;
41
50
  setInstallDevc(installDevc: struct.ZTRM_INSTALLDEVC[]): Promise<void>;
51
+ deleteInstallDevc(installDevc: struct.ZTRM_INSTALLDEVC[]): Promise<void>;
52
+ restoreInstallMetadata(data: TrmPackageMetadataRestoreData): Promise<void>;
53
+ setInstallTransports(packageName: components.ZTRM_PACKAGE_NAME, packageRegistry: components.ZTRM_PACKAGE_REGISTRY, installTr: struct.ZTRM_INSTALLTR[]): Promise<void>;
42
54
  getObjectsList(): Promise<struct.KO100[]>;
43
55
  getTrmServerVersion(): Promise<string>;
44
56
  getTrmRestVersion(): Promise<string>;
@@ -46,7 +58,7 @@ export declare class RESTClient implements IClient {
46
58
  renameTransportRequest(trkorr: components.TRKORR, as4text: components.AS4TEXT): Promise<void>;
47
59
  addTranslationToTr(trkorr: components.TRKORR, devclassFilter: struct.LXE_TT_PACKG_LINE[]): Promise<void>;
48
60
  trCopy(from: components.TRKORR, to: components.TRKORR, doc?: boolean): Promise<void>;
49
- getDest(): Promise<string>;
61
+ getDest(): Promise<components.SYSYSID>;
50
62
  getTransportObjectsBulk(trkorr: components.TRKORR): Promise<struct.TADIR[]>;
51
63
  getExistingObjectsBulk(objects: struct.TADIR[]): Promise<struct.TADIR[]>;
52
64
  addNamespace(namespace: components.NAMESPACE, replicense: components.TRNLICENSE, texts: struct.TRNSPACETT[]): Promise<void>;
@@ -58,6 +70,7 @@ export declare class RESTClient implements IClient {
58
70
  zip: Buffer;
59
71
  objects: struct.ZTY_SER_OBJ[];
60
72
  }>;
73
+ getTransportEntries(trkorr: components.TRKORR): Promise<TransportEntries>;
61
74
  executePostActivity(data: Buffer, pre?: boolean): Promise<{
62
75
  messages: struct.SYMSG[];
63
76
  execute?: boolean;
@@ -48,9 +48,37 @@ const FormData = __importStar(require("form-data"));
48
48
  const trm_commons_1 = require("trm-commons");
49
49
  const _1 = require(".");
50
50
  const parse_multipart_data_1 = require("parse-multipart-data");
51
- const https_1 = require("https");
51
+ const messageLog_1 = require("./messageLog");
52
52
  const AXIOS_CTX = "RestServer";
53
+ function getErrorMessage(error) {
54
+ return error instanceof Error ? error.message : String(error);
55
+ }
53
56
  class RESTClient {
57
+ acquireActionLocks(keys, ownerToken, actionName) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ yield this._axiosInstance.post('/acquire_act_locks', {
60
+ owner_token: ownerToken,
61
+ action_name: actionName,
62
+ keys: keys.map(key => ({
63
+ resource_type: key.resourceType,
64
+ resource_hash: key.resourceHash,
65
+ resource_name: key.resourceName
66
+ }))
67
+ });
68
+ });
69
+ }
70
+ releaseActionLocks(keys, ownerToken) {
71
+ return __awaiter(this, void 0, void 0, function* () {
72
+ yield this._axiosInstance.post('/release_act_locks', {
73
+ owner_token: ownerToken,
74
+ keys: keys.map(key => ({
75
+ resource_type: key.resourceType,
76
+ resource_hash: key.resourceHash,
77
+ resource_name: key.resourceName
78
+ }))
79
+ });
80
+ });
81
+ }
54
82
  constructor(endpoint, rfcdest, _login, _cLangu) {
55
83
  this.endpoint = endpoint;
56
84
  this.rfcdest = rfcdest;
@@ -67,10 +95,7 @@ class RESTClient {
67
95
  username: this._login.user,
68
96
  password: this._login.passwd
69
97
  },
70
- timeout: 30000,
71
- httpsAgent: new https_1.Agent({
72
- rejectUnauthorized: false
73
- })
98
+ timeout: 30000, //default timeout
74
99
  }, AXIOS_CTX);
75
100
  }
76
101
  open() {
@@ -83,10 +108,10 @@ class RESTClient {
83
108
  });
84
109
  }
85
110
  catch (e) {
86
- throw new _1.RESTClientError("ZNO_CONN", null, e, e.message);
111
+ throw new _1.RESTClientError("ZNO_CONN", null, e, getErrorMessage(e), "/");
87
112
  }
88
113
  if (response.status !== 200) {
89
- throw new _1.RESTClientError("ZNO_CONN", null, null, `Couldn't reach ${this.endpoint}!`);
114
+ throw new _1.RESTClientError("ZNO_CONN", null, null, `Couldn't reach ${this.endpoint}!`, "/");
90
115
  }
91
116
  else {
92
117
  this._connected = true;
@@ -100,45 +125,55 @@ class RESTClient {
100
125
  class: undefined,
101
126
  no: undefined
102
127
  };
103
- if (error.name === `Trm${AXIOS_CTX}Error`) {
128
+ if (error && error.name === `Trm${AXIOS_CTX}Error`) {
104
129
  axiosError = error.axiosError;
105
130
  }
106
131
  else {
107
132
  axiosError = error;
108
133
  }
109
- if (axiosError.config.url === '/read_table') {
110
- if (JSON.parse(axiosError.config.data).query_table === 'T100') {
134
+ if (axiosError && axiosError.config && axiosError.config.url === '/read_table') {
135
+ var requestData;
136
+ try {
137
+ requestData = typeof axiosError.config.data === 'string' ? JSON.parse(axiosError.config.data) : axiosError.config.data;
138
+ }
139
+ catch (parseError) {
140
+ requestData = undefined;
141
+ }
142
+ if (requestData && requestData.query_table === 'T100') {
111
143
  throw error;
112
144
  }
113
145
  }
114
- if (axiosError.response.data.message) {
146
+ const responseData = axiosError && axiosError.response && axiosError.response.data;
147
+ if (responseData && responseData.message) {
115
148
  sapMessage = {
116
- no: `${axiosError.response.data.message.msgno}`,
117
- class: axiosError.response.data.message.msgid,
118
- v1: axiosError.response.data.message.msgv1,
119
- v2: axiosError.response.data.message.msgv2,
120
- v3: axiosError.response.data.message.msgv3,
121
- v4: axiosError.response.data.message.msgv4
149
+ no: `${responseData.message.msgno}`,
150
+ class: responseData.message.msgid,
151
+ v1: responseData.message.msgv1,
152
+ v2: responseData.message.msgv2,
153
+ v3: responseData.message.msgv3,
154
+ v4: responseData.message.msgv4
122
155
  };
123
156
  try {
124
- message = yield this.getMessage(sapMessage);
157
+ // An exception raised without a message: its reason is the response status text.
158
+ message = `${responseData.message.msgid || ''}`.trim()
159
+ ? yield this.getMessage(sapMessage)
160
+ : `SAP error ${axiosError.response.statusText || axiosError.response.status} (no message)`;
125
161
  }
126
162
  catch (k) {
127
163
  messageError = k;
128
- message = `Couldn't read error message ${axiosError.response.data.message.msgid} ${axiosError.response.data.message.msgno} ${axiosError.response.data.message.msgv1} ${axiosError.response.data.message.msgv2} ${axiosError.response.data.message.msgv3} ${axiosError.response.data.message.msgv4}`;
164
+ message = `Couldn't read error message ${responseData.message.msgid} ${responseData.message.msgno} ${responseData.message.msgv1} ${responseData.message.msgv2} ${responseData.message.msgv3} ${responseData.message.msgv4}`;
129
165
  }
130
166
  }
131
167
  else {
132
168
  throw error;
133
169
  }
134
- var rfcClientError = new _1.RESTClientError(error.message, sapMessage, axiosError, message);
170
+ var rfcClientError = new _1.RESTClientError(getErrorMessage(error), sapMessage, axiosError, message);
135
171
  if (messageError) {
136
172
  rfcClientError.messageError = messageError.toString();
137
173
  }
138
- if (axiosError.response.data.log) {
139
- rfcClientError.messageLog = axiosError.response.data.log;
140
- }
141
- trm_commons_1.Logger.error(rfcClientError.toString(), true);
174
+ rfcClientError.messageLog = (0, messageLog_1.parseMessageLog)(responseData.log);
175
+ trm_commons_1.Logger.log(rfcClientError.toString(), true);
176
+ (0, messageLog_1.logMessageLog)(rfcClientError);
142
177
  throw rfcClientError;
143
178
  }));
144
179
  }
@@ -179,13 +214,15 @@ class RESTClient {
179
214
  }
180
215
  });
181
216
  }
182
- readTable(tableName, fields, options) {
217
+ readTable(tableName, fields, options, paging) {
183
218
  return __awaiter(this, void 0, void 0, function* () {
184
219
  try {
185
220
  var sqlOutput = [];
186
221
  const delimiter = '|';
187
222
  var aOptions = [];
188
223
  if (options) {
224
+ //line must not exceede 72 chars length
225
+ //it must not break on an operator
189
226
  const aSplit = options.split(/\s+AND\s+/);
190
227
  if (aSplit.length > 1) {
191
228
  aSplit.forEach((s, i) => {
@@ -203,12 +240,34 @@ class RESTClient {
203
240
  };
204
241
  });
205
242
  }
243
+ //lines exceeding 72 chars are split on OR operator
244
+ aOptions = aOptions.reduce((acc, o) => {
245
+ if (o.text.length > 72) {
246
+ o.text.split(/\s+OR\s+/).forEach((s, i) => acc.push({ text: i === 0 ? s.trim() : `OR ${s.trim()}` }));
247
+ }
248
+ else {
249
+ acc.push(o);
250
+ }
251
+ return acc;
252
+ }, []);
253
+ /*aOptions = (options.match(/.{1,72}/g)).map(s => {
254
+ return {
255
+ text: s
256
+ }
257
+ }) || [];*/
206
258
  }
207
259
  const result = yield this._axiosInstance.get('/read_table', {
208
260
  params: {
209
261
  rfcdest: this.rfcdest
210
262
  },
211
- data: {
263
+ data: paging ? {
264
+ query_table: tableName.toUpperCase(),
265
+ delimiter,
266
+ options: aOptions,
267
+ fields: fields,
268
+ rowskips: paging.offset,
269
+ rowcount: paging.limit
270
+ } : {
212
271
  query_table: tableName.toUpperCase(),
213
272
  delimiter,
214
273
  options: aOptions,
@@ -219,7 +278,7 @@ class RESTClient {
219
278
  var sqlLine = {};
220
279
  const waSplit = tab512.wa.split(delimiter);
221
280
  result.data.fields.forEach((field, index) => {
222
- sqlLine[field.fieldname] = waSplit[index].trim();
281
+ sqlLine[field.fieldname] = (waSplit[index] || '').trim();
223
282
  });
224
283
  sqlOutput.push(sqlLine);
225
284
  });
@@ -264,13 +323,8 @@ class RESTClient {
264
323
  writeBinaryFile(filePath, binary) {
265
324
  return __awaiter(this, void 0, void 0, function* () {
266
325
  const formData = new FormData.default();
267
- var filename;
268
- try {
269
- filename = /[^\\\/]+$/gmi.exec(filePath)[0];
270
- }
271
- catch (e) {
272
- filename = 'UNKNOWN_FILENAME';
273
- }
326
+ const filenameMatch = /[^\\\/]+$/gmi.exec(filePath);
327
+ const filename = filenameMatch ? filenameMatch[0] : 'UNKNOWN_FILENAME';
274
328
  formData.append('file', binary, filename);
275
329
  formData.append('file_path', filePath);
276
330
  yield this._axiosInstance.post('/write_binary_file', formData, {
@@ -291,7 +345,7 @@ class RESTClient {
291
345
  return __awaiter(this, void 0, void 0, function* () {
292
346
  const result = (yield this._axiosInstance.post('/create_import_tr', {
293
347
  text: text,
294
- target: target.trim().toUpperCase()
348
+ target: target ? target.trim().toUpperCase() : ''
295
349
  })).data;
296
350
  return result.trkorr;
297
351
  });
@@ -300,7 +354,7 @@ class RESTClient {
300
354
  return __awaiter(this, void 0, void 0, function* () {
301
355
  const result = (yield this._axiosInstance.post('/create_cust_tr', {
302
356
  text: text,
303
- target: target.trim().toUpperCase()
357
+ target: target ? target.trim().toUpperCase() : ''
304
358
  })).data;
305
359
  return result.trkorr;
306
360
  });
@@ -348,6 +402,13 @@ class RESTClient {
348
402
  });
349
403
  });
350
404
  }
405
+ lockTransportObjs(trkorr) {
406
+ return __awaiter(this, void 0, void 0, function* () {
407
+ yield this._axiosInstance.post('/lock_tr_objects', {
408
+ trkorr: trkorr.trim().toUpperCase()
409
+ });
410
+ });
411
+ }
351
412
  repositoryEnvironment(objectType, objectName) {
352
413
  return __awaiter(this, void 0, void 0, function* () {
353
414
  const result = (yield this._axiosInstance.get('/repository_environment', {
@@ -376,7 +437,7 @@ class RESTClient {
376
437
  yield this._axiosInstance.post('/release_tr', {
377
438
  trkorr: trkorr.trim().toUpperCase(),
378
439
  lock: lock ? 'X' : ' '
379
- }, {
440
+ }, timeout === undefined ? undefined : {
380
441
  timeout: timeout * 1000
381
442
  });
382
443
  });
@@ -391,6 +452,15 @@ class RESTClient {
391
452
  return result.requests;
392
453
  });
393
454
  }
455
+ deleteTemporaryPackage(devclass) {
456
+ return __awaiter(this, void 0, void 0, function* () {
457
+ yield this._axiosInstance.delete('/delete_tmp_package', {
458
+ data: {
459
+ devclass: devclass.trim().toUpperCase()
460
+ }
461
+ });
462
+ });
463
+ }
394
464
  createPackage(scompkdtln) {
395
465
  return __awaiter(this, void 0, void 0, function* () {
396
466
  yield this._axiosInstance.post('/create_package', scompkdtln);
@@ -424,13 +494,6 @@ class RESTClient {
424
494
  });
425
495
  });
426
496
  }
427
- dequeueTransport(trkorr) {
428
- return __awaiter(this, void 0, void 0, function* () {
429
- yield this._axiosInstance.post('/dequeue_tr', {
430
- trkorr: trkorr.trim().toUpperCase()
431
- });
432
- });
433
- }
434
497
  forwardTransport(trkorr_1, target_1, source_1) {
435
498
  return __awaiter(this, arguments, void 0, function* (trkorr, target, source, importAgain = true) {
436
499
  yield this._axiosInstance.post('/forward_tr', {
@@ -441,12 +504,28 @@ class RESTClient {
441
504
  });
442
505
  });
443
506
  }
444
- importTransport(trkorr, system) {
507
+ importTransport(trkorr, system, test) {
445
508
  return __awaiter(this, void 0, void 0, function* () {
446
- yield this._axiosInstance.post('/import_tr', {
509
+ const result = (yield this._axiosInstance.post('/import_tr', {
447
510
  system: system.trim().toUpperCase(),
448
- trkorr: trkorr.trim().toUpperCase()
449
- });
511
+ trkorr: trkorr.trim().toUpperCase(),
512
+ test: test ? 'X' : ' '
513
+ })).data;
514
+ if (result && result.testResult) {
515
+ return result.testResult;
516
+ }
517
+ });
518
+ }
519
+ importTransportMultiple(trkorr, system, test) {
520
+ return __awaiter(this, void 0, void 0, function* () {
521
+ const result = (yield this._axiosInstance.post('/import_tr_multiple', {
522
+ system: system.trim().toUpperCase(),
523
+ trkorr: trkorr.map(value => value.trim().toUpperCase()),
524
+ test: test ? 'X' : ' '
525
+ })).data;
526
+ if (result && result.testResult) {
527
+ return result.testResult;
528
+ }
450
529
  });
451
530
  }
452
531
  setInstallDevc(installDevc) {
@@ -456,6 +535,36 @@ class RESTClient {
456
535
  });
457
536
  });
458
537
  }
538
+ deleteInstallDevc(installDevc) {
539
+ return __awaiter(this, void 0, void 0, function* () {
540
+ yield this._axiosInstance.delete('/delete_install_devc', {
541
+ data: {
542
+ installdevc: installDevc
543
+ }
544
+ });
545
+ });
546
+ }
547
+ restoreInstallMetadata(data) {
548
+ return __awaiter(this, void 0, void 0, function* () {
549
+ var _a;
550
+ yield this._axiosInstance.put('/set_install_devc', {
551
+ // JSON carries the manifest xstring as base64: a Buffer would serialize as an object and be stored empty.
552
+ package: Object.assign(Object.assign({}, data.package), { manifest: (_a = data.package.manifest) === null || _a === void 0 ? void 0 : _a.toString('base64') }),
553
+ package_exists: data.packageExists ? 'X' : ' ',
554
+ installdevc: data.installDevc,
555
+ installtr: data.installTr || []
556
+ });
557
+ });
558
+ }
559
+ setInstallTransports(packageName, packageRegistry, installTr) {
560
+ return __awaiter(this, void 0, void 0, function* () {
561
+ yield this._axiosInstance.put('/set_install_tr', {
562
+ package_name: packageName,
563
+ package_registry: packageRegistry,
564
+ installtr: installTr
565
+ });
566
+ });
567
+ }
459
568
  getObjectsList() {
460
569
  return __awaiter(this, void 0, void 0, function* () {
461
570
  const result = (yield this._axiosInstance.get('/list_object_types')).data;
@@ -527,9 +636,14 @@ class RESTClient {
527
636
  }
528
637
  getExistingObjectsBulk(objects) {
529
638
  return __awaiter(this, void 0, void 0, function* () {
639
+ //the request is mapped onto TADIR fields: object names are matched by OBJ_NAME
530
640
  const result = (yield this._axiosInstance.get('/get_existing_objs_bulk', {
531
641
  data: {
532
- objects
642
+ objects: objects.map(o => ({
643
+ pgmid: o.pgmid,
644
+ object: o.object,
645
+ obj_name: o.objName
646
+ }))
533
647
  }
534
648
  })).data;
535
649
  return result.tadir;
@@ -554,8 +668,8 @@ class RESTClient {
554
668
  return __awaiter(this, void 0, void 0, function* () {
555
669
  yield this._axiosInstance.delete('/delete_tms_transport', {
556
670
  data: {
557
- trkorr,
558
- system
671
+ trkorr: trkorr.trim().toUpperCase(),
672
+ system: system.trim().toUpperCase()
559
673
  }
560
674
  });
561
675
  });
@@ -595,18 +709,38 @@ class RESTClient {
595
709
  }
596
710
  });
597
711
  try {
598
- const boundary = (headers['content-type']).toString().match(/boundary=([-0-9A-Za-z]+)/i)[1];
712
+ const contentType = headers && headers['content-type'];
713
+ const boundaryMatch = contentType && contentType.toString().match(/boundary=(?:"([^"]+)"|([^;\s]+))/i);
714
+ if (!boundaryMatch) {
715
+ throw new Error('Multipart boundary is missing');
716
+ }
717
+ const boundary = boundaryMatch[1] || boundaryMatch[2];
599
718
  const parsedData = (0, parse_multipart_data_1.parse)(data, boundary);
719
+ const zipPart = parsedData.find(o => o.name === 'zip');
720
+ const objectsPart = parsedData.find(o => o.name === 'objects');
721
+ if (!zipPart || !objectsPart) {
722
+ throw new Error('Multipart response is missing zip or objects');
723
+ }
724
+ const objects = JSON.parse(objectsPart.data.toString());
725
+ if (!Array.isArray(objects)) {
726
+ throw new Error('Multipart objects payload is not an array');
727
+ }
600
728
  return {
601
- zip: parsedData.find(o => o.name === 'zip').data,
602
- objects: JSON.parse(parsedData.find(o => o.name === 'objects').data.toString())
729
+ zip: zipPart.data,
730
+ objects
603
731
  };
604
732
  }
605
733
  catch (e) {
606
- throw new _1.RESTClientError("ZPARSE_API_DATA", null, null, `Can't parse api data.`);
734
+ throw new _1.RESTClientError("ZPARSE_API_DATA", null, e, `Can't parse API data: ${getErrorMessage(e)}`, "/get_abapgit_source");
607
735
  }
608
736
  });
609
737
  }
738
+ getTransportEntries(trkorr) {
739
+ return __awaiter(this, void 0, void 0, function* () {
740
+ const result = (yield this._axiosInstance.get('/get_transport_entries', { data: { trkorr } })).data;
741
+ return (0, commons_1.normalize)(result);
742
+ });
743
+ }
610
744
  executePostActivity(data, pre) {
611
745
  return __awaiter(this, void 0, void 0, function* () {
612
746
  const formData = new FormData.default();
@@ -643,7 +777,11 @@ class RESTClient {
643
777
  return true;
644
778
  }
645
779
  catch (e) {
646
- return e;
780
+ // Only a SAP error is an authorization result: anything else (e.g. a timeout) is rethrown.
781
+ if (e instanceof _1.RESTClientError) {
782
+ return e;
783
+ }
784
+ throw e;
647
785
  }
648
786
  });
649
787
  }
@@ -5,6 +5,5 @@ export declare class RESTClientError extends ClientError {
5
5
  exceptionType: string;
6
6
  sapMessage: SapMessage;
7
7
  restError: AxiosError;
8
- messageLog?: any;
9
- constructor(exceptionType: string, sapMessage: SapMessage, restError: AxiosError, message?: string);
8
+ constructor(exceptionType: string, sapMessage: SapMessage, restError: AxiosError, message?: string, resource?: string);
10
9
  }
@@ -3,8 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RESTClientError = void 0;
4
4
  const ClientError_1 = require("./ClientError");
5
5
  class RESTClientError extends ClientError_1.ClientError {
6
- constructor(exceptionType, sapMessage, restError, message) {
7
- super(exceptionType, sapMessage, message);
6
+ constructor(exceptionType, sapMessage, restError, message, resource) {
7
+ var _a;
8
+ super(exceptionType, sapMessage, message, resource !== null && resource !== void 0 ? resource : (_a = restError === null || restError === void 0 ? void 0 : restError.config) === null || _a === void 0 ? void 0 : _a.url);
8
9
  this.exceptionType = exceptionType;
9
10
  this.sapMessage = sapMessage;
10
11
  this.restError = restError;
@@ -2,24 +2,37 @@ import * as components from "./components";
2
2
  import * as struct from "./struct";
3
3
  import { IClient } from "./IClient";
4
4
  import { RFCClientError, SapMessage } from ".";
5
- import { TrmPackageUpdateData } from "../systemConnector";
5
+ import { TrmPackageMetadataRestoreData, TrmPackageUpdateData } from "../systemConnector";
6
+ import { TransportEntries } from "./TransportEntries";
7
+ import { ActionLockKey } from "./struct/ActionLockKey";
8
+ /**
9
+ * Loads a node-rfc compatible library (a module exporting the RFC `Client`).
10
+ */
11
+ export type RFCLibraryLoader = () => Promise<any>;
6
12
  export declare class RFCClient implements IClient {
7
13
  private _rfcClientArgs;
8
14
  private _cLangu;
9
15
  private _globalNodeModulesPath?;
16
+ private _rfcLibraryLoader?;
17
+ acquireActionLocks(keys: ActionLockKey[], ownerToken: string, actionName: string): Promise<void>;
18
+ releaseActionLocks(keys: ActionLockKey[], ownerToken: string): Promise<void>;
10
19
  protected _rfcClient: any;
11
- private _aliveCheck;
12
- constructor(_rfcClientArgs: any, _cLangu: string, traceDir?: string, _globalNodeModulesPath?: string);
20
+ private _connectionResponseLogged;
21
+ constructor(_rfcClientArgs: any, _cLangu: string, traceDir?: string, _globalNodeModulesPath?: string, _rfcLibraryLoader?: RFCLibraryLoader);
22
+ private getRfcLibrary;
13
23
  private getRfcClient;
14
24
  open(): Promise<void>;
15
25
  close(): Promise<void>;
16
26
  checkConnection(): Promise<boolean>;
17
- private sanitizeDebugResponse;
18
27
  private _call;
28
+ private _getExceptionLog;
19
29
  private _getMessage;
20
30
  getMessage(data: SapMessage): Promise<string>;
21
31
  private _readTable;
22
- readTable(tableName: components.TABNAME, fields: struct.RFC_DB_FLD[], options?: string): Promise<any[]>;
32
+ readTable(tableName: components.TABNAME, fields: struct.RFC_DB_FLD[], options?: string, paging?: {
33
+ offset: number;
34
+ limit: number;
35
+ }): Promise<any[]>;
23
36
  getFileSystem(): Promise<struct.FILESYS>;
24
37
  getDirTrans(): Promise<components.PFEVALUE>;
25
38
  getBinaryFile(filePath: string): Promise<Buffer>;
@@ -31,19 +44,26 @@ export declare class RFCClient implements IClient {
31
44
  getDevclassObjects(devclass: components.DEVCLASS): Promise<struct.TADIR[]>;
32
45
  removeComments(trkorr: components.TRKORR, object: components.TROBJTYPE): Promise<void>;
33
46
  addToTransportRequest(trkorr: components.TRKORR, content: struct.E071[], lock: boolean): Promise<void>;
47
+ lockTransportObjs(trkorr: components.TRKORR): Promise<void>;
34
48
  repositoryEnvironment(objectType: components.SEU_OBJ, objectName: components.SOBJ_NAME): Promise<struct.SENVI[]>;
35
49
  deleteTrkorr(trkorr: components.TRKORR): Promise<void>;
36
50
  releaseTrkorr(trkorr: components.TRKORR, lock: boolean, timeout?: number): Promise<void>;
37
51
  readTmsQueue(target: components.TMSSYSNAM): Promise<struct.STMSIQREQ[]>;
52
+ deleteTemporaryPackage(devclass: components.DEVCLASS): Promise<void>;
38
53
  createPackage(scompkdtln: struct.SCOMPKDTLN): Promise<void>;
39
54
  tdevcInterface(devclass: components.DEVCLASS, parentcl?: components.DEVCLASS, rmParentCl?: boolean, devlayer?: components.DEVLAYER): Promise<void>;
40
55
  getDefaultTransportLayer(): Promise<components.DEVLAYER>;
41
56
  tadirInterface(tadir: struct.TADIR): Promise<void>;
42
- dequeueTransport(trkorr: components.TRKORR): Promise<void>;
43
57
  forwardTransport(trkorr: components.TRKORR, target: components.TMSSYSNAM, source: components.TMSSYSNAM, importAgain?: boolean): Promise<void>;
44
- importTransport(trkorr: components.TRKORR, system: components.TMSSYSNAM): Promise<void>;
58
+ private parseImportTransportResult;
59
+ importTransport(trkorr: components.TRKORR, system: components.TMSSYSNAM, test: boolean): Promise<struct.STMS_TP_IMPORT | void>;
60
+ importTransportMultiple(trkorr: components.TRKORR[], system: components.TMSSYSNAM, test: boolean): Promise<struct.STMS_TP_IMPORT | void>;
45
61
  setInstallDevc(installDevc: struct.ZTRM_INSTALLDEVC[]): Promise<void>;
62
+ deleteInstallDevc(installDevc: struct.ZTRM_INSTALLDEVC[]): Promise<void>;
63
+ restoreInstallMetadata(data: TrmPackageMetadataRestoreData): Promise<void>;
64
+ setInstallTransports(packageName: components.ZTRM_PACKAGE_NAME, packageRegistry: components.ZTRM_PACKAGE_REGISTRY, installTr: struct.ZTRM_INSTALLTR[]): Promise<void>;
46
65
  getObjectsList(): Promise<struct.KO100[]>;
66
+ getDest(): Promise<components.SYSYSID>;
47
67
  getTrmServerVersion(): Promise<string>;
48
68
  getTrmRestVersion(): Promise<string>;
49
69
  trmServerPing(): Promise<string>;
@@ -59,6 +79,7 @@ export declare class RFCClient implements IClient {
59
79
  zip: Buffer;
60
80
  objects: struct.ZTY_SER_OBJ[];
61
81
  }>;
82
+ getTransportEntries(trkorr: components.TRKORR): Promise<TransportEntries>;
62
83
  executePostActivity(data: Buffer, pre?: boolean): Promise<{
63
84
  messages: struct.SYMSG[];
64
85
  execute?: boolean;