@mcp-abap-adt/adt-backup 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 (345) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +64 -0
  3. package/dist/bin/adt-backup.d.ts +3 -0
  4. package/dist/bin/adt-backup.d.ts.map +1 -0
  5. package/dist/bin/adt-backup.js +8 -0
  6. package/dist/lib/auth/NoopTokenProvider.d.ts +5 -0
  7. package/dist/lib/auth/NoopTokenProvider.d.ts.map +1 -0
  8. package/dist/lib/auth/NoopTokenProvider.js +9 -0
  9. package/dist/lib/auth/createTokenProvider.d.ts +4 -0
  10. package/dist/lib/auth/createTokenProvider.d.ts.map +1 -0
  11. package/dist/lib/auth/createTokenProvider.js +22 -0
  12. package/dist/lib/auth/getSapConfigFromBroker.d.ts +13 -0
  13. package/dist/lib/auth/getSapConfigFromBroker.d.ts.map +1 -0
  14. package/dist/lib/auth/getSapConfigFromBroker.js +184 -0
  15. package/dist/lib/auth/index.d.ts +4 -0
  16. package/dist/lib/auth/index.d.ts.map +1 -0
  17. package/dist/lib/auth/index.js +19 -0
  18. package/dist/lib/backup/backupObject.d.ts +4 -0
  19. package/dist/lib/backup/backupObject.d.ts.map +1 -0
  20. package/dist/lib/backup/backupObject.js +166 -0
  21. package/dist/lib/backup/index.d.ts +5 -0
  22. package/dist/lib/backup/index.d.ts.map +1 -0
  23. package/dist/lib/backup/index.js +20 -0
  24. package/dist/lib/backup/readBasicMetadata.d.ts +7 -0
  25. package/dist/lib/backup/readBasicMetadata.d.ts.map +1 -0
  26. package/dist/lib/backup/readBasicMetadata.js +64 -0
  27. package/dist/lib/backup/readMetadataXmlForType.d.ts +4 -0
  28. package/dist/lib/backup/readMetadataXmlForType.d.ts.map +1 -0
  29. package/dist/lib/backup/readMetadataXmlForType.js +100 -0
  30. package/dist/lib/backup/readSourceText.d.ts +4 -0
  31. package/dist/lib/backup/readSourceText.d.ts.map +1 -0
  32. package/dist/lib/backup/readSourceText.js +96 -0
  33. package/dist/lib/cli/applyLogEnv.d.ts +2 -0
  34. package/dist/lib/cli/applyLogEnv.d.ts.map +1 -0
  35. package/dist/lib/cli/applyLogEnv.js +50 -0
  36. package/dist/lib/cli/createLogger.d.ts +7 -0
  37. package/dist/lib/cli/createLogger.d.ts.map +1 -0
  38. package/dist/lib/cli/createLogger.js +30 -0
  39. package/dist/lib/cli/getVerbosity.d.ts +2 -0
  40. package/dist/lib/cli/getVerbosity.d.ts.map +1 -0
  41. package/dist/lib/cli/getVerbosity.js +27 -0
  42. package/dist/lib/cli/index.d.ts +13 -0
  43. package/dist/lib/cli/index.d.ts.map +1 -0
  44. package/dist/lib/cli/index.js +28 -0
  45. package/dist/lib/cli/isEnvEnabled.d.ts +2 -0
  46. package/dist/lib/cli/isEnvEnabled.d.ts.map +1 -0
  47. package/dist/lib/cli/isEnvEnabled.js +10 -0
  48. package/dist/lib/cli/logVerbose.d.ts +2 -0
  49. package/dist/lib/cli/logVerbose.d.ts.map +1 -0
  50. package/dist/lib/cli/logVerbose.js +9 -0
  51. package/dist/lib/cli/parseArgs.d.ts +2 -0
  52. package/dist/lib/cli/parseArgs.d.ts.map +1 -0
  53. package/dist/lib/cli/parseArgs.js +22 -0
  54. package/dist/lib/cli/redact.d.ts +4 -0
  55. package/dist/lib/cli/redact.d.ts.map +1 -0
  56. package/dist/lib/cli/redact.js +75 -0
  57. package/dist/lib/cli/shouldEnableAdtLogger.d.ts +2 -0
  58. package/dist/lib/cli/shouldEnableAdtLogger.d.ts.map +1 -0
  59. package/dist/lib/cli/shouldEnableAdtLogger.js +10 -0
  60. package/dist/lib/cli/shouldEnableBrokerLogger.d.ts +2 -0
  61. package/dist/lib/cli/shouldEnableBrokerLogger.d.ts.map +1 -0
  62. package/dist/lib/cli/shouldEnableBrokerLogger.js +9 -0
  63. package/dist/lib/cli/shouldEnableConnectionLogger.d.ts +2 -0
  64. package/dist/lib/cli/shouldEnableConnectionLogger.d.ts.map +1 -0
  65. package/dist/lib/cli/shouldEnableConnectionLogger.js +7 -0
  66. package/dist/lib/cli/shouldEnableProviderLogger.d.ts +2 -0
  67. package/dist/lib/cli/shouldEnableProviderLogger.d.ts.map +1 -0
  68. package/dist/lib/cli/shouldEnableProviderLogger.js +9 -0
  69. package/dist/lib/cli/shouldEnableStoreLogger.d.ts +2 -0
  70. package/dist/lib/cli/shouldEnableStoreLogger.d.ts.map +1 -0
  71. package/dist/lib/cli/shouldEnableStoreLogger.js +9 -0
  72. package/dist/lib/cli/usage.d.ts +2 -0
  73. package/dist/lib/cli/usage.d.ts.map +1 -0
  74. package/dist/lib/cli/usage.js +187 -0
  75. package/dist/lib/constants/index.d.ts +3 -0
  76. package/dist/lib/constants/index.d.ts.map +1 -0
  77. package/dist/lib/constants/index.js +18 -0
  78. package/dist/lib/constants/typeOrder.d.ts +3 -0
  79. package/dist/lib/constants/typeOrder.d.ts.map +1 -0
  80. package/dist/lib/constants/typeOrder.js +22 -0
  81. package/dist/lib/constants/xmlParser.d.ts +3 -0
  82. package/dist/lib/constants/xmlParser.d.ts.map +1 -0
  83. package/dist/lib/constants/xmlParser.js +8 -0
  84. package/dist/lib/crypto/computeBackupChecksum.d.ts +3 -0
  85. package/dist/lib/crypto/computeBackupChecksum.d.ts.map +1 -0
  86. package/dist/lib/crypto/computeBackupChecksum.js +14 -0
  87. package/dist/lib/crypto/computeCodeChecksum.d.ts +2 -0
  88. package/dist/lib/crypto/computeCodeChecksum.d.ts.map +1 -0
  89. package/dist/lib/crypto/computeCodeChecksum.js +8 -0
  90. package/dist/lib/crypto/decodeBase64.d.ts +2 -0
  91. package/dist/lib/crypto/decodeBase64.d.ts.map +1 -0
  92. package/dist/lib/crypto/decodeBase64.js +6 -0
  93. package/dist/lib/crypto/encodeBase64.d.ts +2 -0
  94. package/dist/lib/crypto/encodeBase64.d.ts.map +1 -0
  95. package/dist/lib/crypto/encodeBase64.js +6 -0
  96. package/dist/lib/crypto/hashText.d.ts +2 -0
  97. package/dist/lib/crypto/hashText.d.ts.map +1 -0
  98. package/dist/lib/crypto/hashText.js +7 -0
  99. package/dist/lib/crypto/index.d.ts +10 -0
  100. package/dist/lib/crypto/index.d.ts.map +1 -0
  101. package/dist/lib/crypto/index.js +25 -0
  102. package/dist/lib/crypto/stripBackupChecksum.d.ts +3 -0
  103. package/dist/lib/crypto/stripBackupChecksum.d.ts.map +1 -0
  104. package/dist/lib/crypto/stripBackupChecksum.js +8 -0
  105. package/dist/lib/crypto/updateTreeChecksums.d.ts +3 -0
  106. package/dist/lib/crypto/updateTreeChecksums.d.ts.map +1 -0
  107. package/dist/lib/crypto/updateTreeChecksums.js +17 -0
  108. package/dist/lib/crypto/verifyBackupChecksum.d.ts +3 -0
  109. package/dist/lib/crypto/verifyBackupChecksum.d.ts.map +1 -0
  110. package/dist/lib/crypto/verifyBackupChecksum.js +13 -0
  111. package/dist/lib/crypto/verifyTreeChecksums.d.ts +3 -0
  112. package/dist/lib/crypto/verifyTreeChecksums.d.ts.map +1 -0
  113. package/dist/lib/crypto/verifyTreeChecksums.js +22 -0
  114. package/dist/lib/dependencies/collectTreeDependencies.d.ts +4 -0
  115. package/dist/lib/dependencies/collectTreeDependencies.d.ts.map +1 -0
  116. package/dist/lib/dependencies/collectTreeDependencies.js +99 -0
  117. package/dist/lib/index.d.ts +14 -0
  118. package/dist/lib/index.d.ts.map +1 -0
  119. package/dist/lib/index.js +29 -0
  120. package/dist/lib/restore/applyTransportRequest.d.ts +2 -0
  121. package/dist/lib/restore/applyTransportRequest.d.ts.map +1 -0
  122. package/dist/lib/restore/applyTransportRequest.js +12 -0
  123. package/dist/lib/restore/buildRestorePlan.d.ts +12 -0
  124. package/dist/lib/restore/buildRestorePlan.d.ts.map +1 -0
  125. package/dist/lib/restore/buildRestorePlan.js +46 -0
  126. package/dist/lib/restore/collectDeletionTargets.d.ts +7 -0
  127. package/dist/lib/restore/collectDeletionTargets.d.ts.map +1 -0
  128. package/dist/lib/restore/collectDeletionTargets.js +23 -0
  129. package/dist/lib/restore/deleteBackupObjects.d.ts +4 -0
  130. package/dist/lib/restore/deleteBackupObjects.d.ts.map +1 -0
  131. package/dist/lib/restore/deleteBackupObjects.js +22 -0
  132. package/dist/lib/restore/index.d.ts +9 -0
  133. package/dist/lib/restore/index.d.ts.map +1 -0
  134. package/dist/lib/restore/index.js +24 -0
  135. package/dist/lib/restore/restoreObject.d.ts +4 -0
  136. package/dist/lib/restore/restoreObject.d.ts.map +1 -0
  137. package/dist/lib/restore/restoreObject.js +242 -0
  138. package/dist/lib/restore/restoreObjects.d.ts +4 -0
  139. package/dist/lib/restore/restoreObjects.d.ts.map +1 -0
  140. package/dist/lib/restore/restoreObjects.js +28 -0
  141. package/dist/lib/restore/restoreTreeBackup.d.ts +4 -0
  142. package/dist/lib/restore/restoreTreeBackup.d.ts.map +1 -0
  143. package/dist/lib/restore/restoreTreeBackup.js +69 -0
  144. package/dist/lib/restore/restoreTreeNode.d.ts +4 -0
  145. package/dist/lib/restore/restoreTreeNode.d.ts.map +1 -0
  146. package/dist/lib/restore/restoreTreeNode.js +276 -0
  147. package/dist/lib/restore/sortByDependencies.d.ts +3 -0
  148. package/dist/lib/restore/sortByDependencies.d.ts.map +1 -0
  149. package/dist/lib/restore/sortByDependencies.js +65 -0
  150. package/dist/lib/restore/sortTreeNodesByDependencies.d.ts +3 -0
  151. package/dist/lib/restore/sortTreeNodesByDependencies.d.ts.map +1 -0
  152. package/dist/lib/restore/sortTreeNodesByDependencies.js +101 -0
  153. package/dist/lib/run.d.ts +2 -0
  154. package/dist/lib/run.d.ts.map +1 -0
  155. package/dist/lib/run.js +748 -0
  156. package/dist/lib/state/index.d.ts +2 -0
  157. package/dist/lib/state/index.d.ts.map +1 -0
  158. package/dist/lib/state/index.js +17 -0
  159. package/dist/lib/state/verbosity.d.ts +4 -0
  160. package/dist/lib/state/verbosity.d.ts.map +1 -0
  161. package/dist/lib/state/verbosity.js +6 -0
  162. package/dist/lib/tree/buildConfigForNode.d.ts +3 -0
  163. package/dist/lib/tree/buildConfigForNode.d.ts.map +1 -0
  164. package/dist/lib/tree/buildConfigForNode.js +116 -0
  165. package/dist/lib/tree/buildPackageBackupTree.d.ts +4 -0
  166. package/dist/lib/tree/buildPackageBackupTree.d.ts.map +1 -0
  167. package/dist/lib/tree/buildPackageBackupTree.js +27 -0
  168. package/dist/lib/tree/buildTreeList.d.ts +13 -0
  169. package/dist/lib/tree/buildTreeList.d.ts.map +1 -0
  170. package/dist/lib/tree/buildTreeList.js +19 -0
  171. package/dist/lib/tree/collectTreeObjects.d.ts +3 -0
  172. package/dist/lib/tree/collectTreeObjects.d.ts.map +1 -0
  173. package/dist/lib/tree/collectTreeObjects.js +18 -0
  174. package/dist/lib/tree/enrichTreeNode.d.ts +4 -0
  175. package/dist/lib/tree/enrichTreeNode.d.ts.map +1 -0
  176. package/dist/lib/tree/enrichTreeNode.js +69 -0
  177. package/dist/lib/tree/findNodeInTree.d.ts +3 -0
  178. package/dist/lib/tree/findNodeInTree.d.ts.map +1 -0
  179. package/dist/lib/tree/findNodeInTree.js +30 -0
  180. package/dist/lib/tree/flattenTree.d.ts +3 -0
  181. package/dist/lib/tree/flattenTree.d.ts.map +1 -0
  182. package/dist/lib/tree/flattenTree.js +12 -0
  183. package/dist/lib/tree/formatTreeListText.d.ts +5 -0
  184. package/dist/lib/tree/formatTreeListText.d.ts.map +1 -0
  185. package/dist/lib/tree/formatTreeListText.js +26 -0
  186. package/dist/lib/tree/getNodeFunctionGroupName.d.ts +3 -0
  187. package/dist/lib/tree/getNodeFunctionGroupName.d.ts.map +1 -0
  188. package/dist/lib/tree/getNodeFunctionGroupName.js +12 -0
  189. package/dist/lib/tree/getNodeObjectId.d.ts +3 -0
  190. package/dist/lib/tree/getNodeObjectId.d.ts.map +1 -0
  191. package/dist/lib/tree/getNodeObjectId.js +9 -0
  192. package/dist/lib/tree/getNodeObjectSpec.d.ts +3 -0
  193. package/dist/lib/tree/getNodeObjectSpec.d.ts.map +1 -0
  194. package/dist/lib/tree/getNodeObjectSpec.js +21 -0
  195. package/dist/lib/tree/index.d.ts +13 -0
  196. package/dist/lib/tree/index.d.ts.map +1 -0
  197. package/dist/lib/tree/index.js +28 -0
  198. package/dist/lib/tree/isRestoreImplemented.d.ts +3 -0
  199. package/dist/lib/tree/isRestoreImplemented.d.ts.map +1 -0
  200. package/dist/lib/tree/isRestoreImplemented.js +27 -0
  201. package/dist/lib/tree/mapAdtTypeToSupported.d.ts +3 -0
  202. package/dist/lib/tree/mapAdtTypeToSupported.d.ts.map +1 -0
  203. package/dist/lib/tree/mapAdtTypeToSupported.js +75 -0
  204. package/dist/lib/tree/readPayloadForType.d.ts +7 -0
  205. package/dist/lib/tree/readPayloadForType.d.ts.map +1 -0
  206. package/dist/lib/tree/readPayloadForType.js +38 -0
  207. package/dist/lib/types.d.ts +60 -0
  208. package/dist/lib/types.d.ts.map +1 -0
  209. package/dist/lib/types.js +2 -0
  210. package/dist/lib/utils/applyConfigName.d.ts +3 -0
  211. package/dist/lib/utils/applyConfigName.d.ts.map +1 -0
  212. package/dist/lib/utils/applyConfigName.js +67 -0
  213. package/dist/lib/utils/asArray.d.ts +2 -0
  214. package/dist/lib/utils/asArray.d.ts.map +1 -0
  215. package/dist/lib/utils/asArray.js +9 -0
  216. package/dist/lib/utils/asConfig.d.ts +3 -0
  217. package/dist/lib/utils/asConfig.d.ts.map +1 -0
  218. package/dist/lib/utils/asConfig.js +6 -0
  219. package/dist/lib/utils/diffAttributes.d.ts +17 -0
  220. package/dist/lib/utils/diffAttributes.d.ts.map +1 -0
  221. package/dist/lib/utils/diffAttributes.js +27 -0
  222. package/dist/lib/utils/diffUnified.d.ts +4 -0
  223. package/dist/lib/utils/diffUnified.d.ts.map +1 -0
  224. package/dist/lib/utils/diffUnified.js +142 -0
  225. package/dist/lib/utils/ensureDescription.d.ts +3 -0
  226. package/dist/lib/utils/ensureDescription.d.ts.map +1 -0
  227. package/dist/lib/utils/ensureDescription.js +9 -0
  228. package/dist/lib/utils/formatObjectSpec.d.ts +3 -0
  229. package/dist/lib/utils/formatObjectSpec.d.ts.map +1 -0
  230. package/dist/lib/utils/formatObjectSpec.js +9 -0
  231. package/dist/lib/utils/index.d.ts +12 -0
  232. package/dist/lib/utils/index.d.ts.map +1 -0
  233. package/dist/lib/utils/index.js +27 -0
  234. package/dist/lib/utils/normalizeType.d.ts +3 -0
  235. package/dist/lib/utils/normalizeType.d.ts.map +1 -0
  236. package/dist/lib/utils/normalizeType.js +43 -0
  237. package/dist/lib/utils/objectId.d.ts +3 -0
  238. package/dist/lib/utils/objectId.d.ts.map +1 -0
  239. package/dist/lib/utils/objectId.js +9 -0
  240. package/dist/lib/utils/parseBehaviorDefinitionFromClass.d.ts +2 -0
  241. package/dist/lib/utils/parseBehaviorDefinitionFromClass.d.ts.map +1 -0
  242. package/dist/lib/utils/parseBehaviorDefinitionFromClass.js +10 -0
  243. package/dist/lib/utils/parseObjectSpec.d.ts +3 -0
  244. package/dist/lib/utils/parseObjectSpec.d.ts.map +1 -0
  245. package/dist/lib/utils/parseObjectSpec.js +27 -0
  246. package/dist/lib/utils/responseToText.d.ts +4 -0
  247. package/dist/lib/utils/responseToText.d.ts.map +1 -0
  248. package/dist/lib/utils/responseToText.js +11 -0
  249. package/dist/lib/utils/toBackupConfig.d.ts +3 -0
  250. package/dist/lib/utils/toBackupConfig.d.ts.map +1 -0
  251. package/dist/lib/utils/toBackupConfig.js +6 -0
  252. package/dist/lib/verify/collectBackupNodes.d.ts +3 -0
  253. package/dist/lib/verify/collectBackupNodes.d.ts.map +1 -0
  254. package/dist/lib/verify/collectBackupNodes.js +13 -0
  255. package/dist/lib/verify/findOtherType.d.ts +4 -0
  256. package/dist/lib/verify/findOtherType.d.ts.map +1 -0
  257. package/dist/lib/verify/findOtherType.js +41 -0
  258. package/dist/lib/verify/formatVerifyResultsText.d.ts +3 -0
  259. package/dist/lib/verify/formatVerifyResultsText.d.ts.map +1 -0
  260. package/dist/lib/verify/formatVerifyResultsText.js +30 -0
  261. package/dist/lib/verify/getExpectedPackage.d.ts +3 -0
  262. package/dist/lib/verify/getExpectedPackage.d.ts.map +1 -0
  263. package/dist/lib/verify/getExpectedPackage.js +14 -0
  264. package/dist/lib/verify/index.d.ts +8 -0
  265. package/dist/lib/verify/index.d.ts.map +1 -0
  266. package/dist/lib/verify/index.js +23 -0
  267. package/dist/lib/verify/types.d.ts +23 -0
  268. package/dist/lib/verify/types.d.ts.map +1 -0
  269. package/dist/lib/verify/types.js +2 -0
  270. package/dist/lib/verify/verifyBackup.d.ts +10 -0
  271. package/dist/lib/verify/verifyBackup.d.ts.map +1 -0
  272. package/dist/lib/verify/verifyBackup.js +54 -0
  273. package/dist/lib/verify/verifyObjectInSystem.d.ts +5 -0
  274. package/dist/lib/verify/verifyObjectInSystem.d.ts.map +1 -0
  275. package/dist/lib/verify/verifyObjectInSystem.js +136 -0
  276. package/dist/lib/xml/extractMetadata.d.ts +5 -0
  277. package/dist/lib/xml/extractMetadata.d.ts.map +1 -0
  278. package/dist/lib/xml/extractMetadata.js +13 -0
  279. package/dist/lib/xml/findAttribute.d.ts +3 -0
  280. package/dist/lib/xml/findAttribute.d.ts.map +1 -0
  281. package/dist/lib/xml/findAttribute.js +29 -0
  282. package/dist/lib/xml/findNode.d.ts +3 -0
  283. package/dist/lib/xml/findNode.d.ts.map +1 -0
  284. package/dist/lib/xml/findNode.js +30 -0
  285. package/dist/lib/xml/findNodeValue.d.ts +3 -0
  286. package/dist/lib/xml/findNodeValue.d.ts.map +1 -0
  287. package/dist/lib/xml/findNodeValue.js +11 -0
  288. package/dist/lib/xml/findPackageName.d.ts +3 -0
  289. package/dist/lib/xml/findPackageName.d.ts.map +1 -0
  290. package/dist/lib/xml/findPackageName.js +35 -0
  291. package/dist/lib/xml/flattenXmlAttributes.d.ts +2 -0
  292. package/dist/lib/xml/flattenXmlAttributes.d.ts.map +1 -0
  293. package/dist/lib/xml/flattenXmlAttributes.js +82 -0
  294. package/dist/lib/xml/getAttribute.d.ts +3 -0
  295. package/dist/lib/xml/getAttribute.d.ts.map +1 -0
  296. package/dist/lib/xml/getAttribute.js +12 -0
  297. package/dist/lib/xml/getNodeAttribute.d.ts +3 -0
  298. package/dist/lib/xml/getNodeAttribute.d.ts.map +1 -0
  299. package/dist/lib/xml/getNodeAttribute.js +11 -0
  300. package/dist/lib/xml/getNodeDescription.d.ts +3 -0
  301. package/dist/lib/xml/getNodeDescription.d.ts.map +1 -0
  302. package/dist/lib/xml/getNodeDescription.js +12 -0
  303. package/dist/lib/xml/getNodeName.d.ts +3 -0
  304. package/dist/lib/xml/getNodeName.d.ts.map +1 -0
  305. package/dist/lib/xml/getNodeName.js +12 -0
  306. package/dist/lib/xml/getNodeType.d.ts +3 -0
  307. package/dist/lib/xml/getNodeType.d.ts.map +1 -0
  308. package/dist/lib/xml/getNodeType.js +12 -0
  309. package/dist/lib/xml/index.d.ts +19 -0
  310. package/dist/lib/xml/index.d.ts.map +1 -0
  311. package/dist/lib/xml/index.js +34 -0
  312. package/dist/lib/xml/isNodeObject.d.ts +3 -0
  313. package/dist/lib/xml/isNodeObject.d.ts.map +1 -0
  314. package/dist/lib/xml/isNodeObject.js +12 -0
  315. package/dist/lib/xml/parseBehaviorDefinitionConfig.d.ts +3 -0
  316. package/dist/lib/xml/parseBehaviorDefinitionConfig.d.ts.map +1 -0
  317. package/dist/lib/xml/parseBehaviorDefinitionConfig.js +40 -0
  318. package/dist/lib/xml/parseClassConfig.d.ts +3 -0
  319. package/dist/lib/xml/parseClassConfig.d.ts.map +1 -0
  320. package/dist/lib/xml/parseClassConfig.js +59 -0
  321. package/dist/lib/xml/parseDataElementConfig.d.ts +3 -0
  322. package/dist/lib/xml/parseDataElementConfig.d.ts.map +1 -0
  323. package/dist/lib/xml/parseDataElementConfig.js +67 -0
  324. package/dist/lib/xml/parseDomainConfig.d.ts +3 -0
  325. package/dist/lib/xml/parseDomainConfig.d.ts.map +1 -0
  326. package/dist/lib/xml/parseDomainConfig.js +66 -0
  327. package/dist/lib/xml/parseEnhancementConfig.d.ts +3 -0
  328. package/dist/lib/xml/parseEnhancementConfig.d.ts.map +1 -0
  329. package/dist/lib/xml/parseEnhancementConfig.js +73 -0
  330. package/dist/lib/xml/parsePackageConfig.d.ts +3 -0
  331. package/dist/lib/xml/parsePackageConfig.d.ts.map +1 -0
  332. package/dist/lib/xml/parsePackageConfig.js +48 -0
  333. package/dist/lib/xml/parseTableTypeConfig.d.ts +3 -0
  334. package/dist/lib/xml/parseTableTypeConfig.d.ts.map +1 -0
  335. package/dist/lib/xml/parseTableTypeConfig.js +64 -0
  336. package/dist/lib/xml/readAttr.d.ts +3 -0
  337. package/dist/lib/xml/readAttr.d.ts.map +1 -0
  338. package/dist/lib/xml/readAttr.js +16 -0
  339. package/dist/lib/xml/toBoolean.d.ts +2 -0
  340. package/dist/lib/xml/toBoolean.d.ts.map +1 -0
  341. package/dist/lib/xml/toBoolean.js +15 -0
  342. package/dist/lib/xml/toNumber.d.ts +2 -0
  343. package/dist/lib/xml/toNumber.d.ts.map +1 -0
  344. package/dist/lib/xml/toNumber.js +10 -0
  345. package/package.json +64 -0
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.restoreTreeBackup = restoreTreeBackup;
4
+ const logVerbose_1 = require("../cli/logVerbose");
5
+ const typeOrder_1 = require("../constants/typeOrder");
6
+ const flattenTree_1 = require("../tree/flattenTree");
7
+ const getNodeObjectId_1 = require("../tree/getNodeObjectId");
8
+ const restoreTreeNode_1 = require("./restoreTreeNode");
9
+ const sortTreeNodesByDependencies_1 = require("./sortTreeNodesByDependencies");
10
+ async function restoreTreeBackup(client, root, mode, activate, transportRequest, restoreIds, restoreActions, activateOnCreate = true, softwareComponent) {
11
+ const allNodes = (0, flattenTree_1.flattenTree)(root).filter((node) => node.type && node.restoreStatus === 'ok');
12
+ const nodes = restoreIds
13
+ ? allNodes.filter((node) => {
14
+ const id = (0, getNodeObjectId_1.getNodeObjectId)(node);
15
+ return id ? restoreIds.has(id) : false;
16
+ })
17
+ : allNodes;
18
+ // Separate packages from non-packages
19
+ // Packages keep their tree order (parent before children)
20
+ const packageNodes = nodes.filter((node) => node.type === 'package');
21
+ const nonPackageNodes = nodes.filter((node) => node.type !== 'package');
22
+ // Sort non-packages by dependencies or typeOrder
23
+ const priority = new Map(typeOrder_1.typeOrder.map((type, index) => [type, index]));
24
+ const hasDependencies = nonPackageNodes.some((node) => Array.isArray(node.usedBy) && node.usedBy.length > 0);
25
+ const sortedNonPackages = hasDependencies
26
+ ? (0, sortTreeNodesByDependencies_1.sortTreeNodesByDependencies)(nonPackageNodes)
27
+ : nonPackageNodes.sort((a, b) => {
28
+ const aOrder = a.type ? (priority.get(a.type) ?? 999) : 999;
29
+ const bOrder = b.type ? (priority.get(b.type) ?? 999) : 999;
30
+ return aOrder - bOrder || a.name.localeCompare(b.name);
31
+ });
32
+ // Packages first (in tree order), then sorted non-packages
33
+ const orderedNodes = [...packageNodes, ...sortedNonPackages];
34
+ // Collect package names from backup tree for inheritance logic
35
+ const backupPackageNames = new Set(packageNodes.map((node) => node.name));
36
+ (0, logVerbose_1.logVerbose)(2, `Restoring ${orderedNodes.length} node(s) from tree (mode=${mode}, activate=${activate})`);
37
+ (0, logVerbose_1.logVerbose)(2, ` Packages: ${packageNodes.length}, Other objects: ${sortedNonPackages.length}`);
38
+ const activationList = [];
39
+ for (const node of orderedNodes) {
40
+ (0, logVerbose_1.logVerbose)(3, `Restore ${node.type}:${node.name}`);
41
+ const nodeId = (0, getNodeObjectId_1.getNodeObjectId)(node);
42
+ const nodeMode = mode === 'upsert' && nodeId && restoreActions?.has(nodeId)
43
+ ? restoreActions.get(nodeId)
44
+ : mode;
45
+ const shouldActivate = nodeMode === 'create' ? activateOnCreate : activate;
46
+ const isPackage = node.type === 'package';
47
+ // Defer activation for non-package objects if activation is requested
48
+ const effectiveActivate = isPackage ? shouldActivate : false;
49
+ if (nodeMode === 'upsert') {
50
+ try {
51
+ await (0, restoreTreeNode_1.restoreTreeNode)(client, node, 'create', effectiveActivate, transportRequest, softwareComponent, backupPackageNames);
52
+ }
53
+ catch (_error) {
54
+ await (0, restoreTreeNode_1.restoreTreeNode)(client, node, 'update', effectiveActivate, transportRequest, softwareComponent, backupPackageNames);
55
+ }
56
+ }
57
+ else {
58
+ await (0, restoreTreeNode_1.restoreTreeNode)(client, node, nodeMode || mode, effectiveActivate, transportRequest, softwareComponent, backupPackageNames);
59
+ }
60
+ if (!isPackage && shouldActivate && node.adtType) {
61
+ activationList.push({ name: node.name, type: node.adtType });
62
+ }
63
+ }
64
+ if (activationList.length > 0) {
65
+ (0, logVerbose_1.logVerbose)(2, `Activating ${activationList.length} object(s)...`);
66
+ // Pass true for preauditRequested to check before activating
67
+ await client.getUtils().activateObjectsGroup(activationList, true);
68
+ }
69
+ }
@@ -0,0 +1,4 @@
1
+ import type { AdtClient } from '@mcp-abap-adt/adt-clients';
2
+ import type { BackupTreeNode, RestoreMode } from '../types';
3
+ export declare function restoreTreeNode(client: AdtClient, node: BackupTreeNode, mode: RestoreMode, activate: boolean, transportRequest?: string, softwareComponentOverride?: string, backupPackageNames?: Set<string>): Promise<void>;
4
+ //# sourceMappingURL=restoreTreeNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restoreTreeNode.d.ts","sourceRoot":"","sources":["../../../src/lib/restore/restoreTreeNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAkBV,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAK5D,wBAAsB,eAAe,CACnC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,OAAO,EACjB,gBAAgB,CAAC,EAAE,MAAM,EACzB,yBAAyB,CAAC,EAAE,MAAM,EAClC,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC,CAiUf"}
@@ -0,0 +1,276 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.restoreTreeNode = restoreTreeNode;
4
+ const logVerbose_1 = require("../cli/logVerbose");
5
+ const decodeBase64_1 = require("../crypto/decodeBase64");
6
+ const asConfig_1 = require("../utils/asConfig");
7
+ const ensureDescription_1 = require("../utils/ensureDescription");
8
+ const applyTransportRequest_1 = require("./applyTransportRequest");
9
+ async function restoreTreeNode(client, node, mode, activate, transportRequest, softwareComponentOverride, backupPackageNames) {
10
+ if (!node.type || node.restoreStatus !== 'ok') {
11
+ return;
12
+ }
13
+ const config = (0, applyTransportRequest_1.applyTransportRequest)((0, ensureDescription_1.ensureDescription)(node.config || {}, node.name), transportRequest);
14
+ const payload = node.codeBase64 ? (0, decodeBase64_1.decodeBase64)(node.codeBase64) : undefined;
15
+ const options = {
16
+ activateOnCreate: activate,
17
+ activateOnUpdate: activate,
18
+ };
19
+ try {
20
+ switch (node.type) {
21
+ case 'package': {
22
+ const pkgConfig = (0, asConfig_1.asConfig)(config);
23
+ // Remove responsible field - let system use current user
24
+ // (backup might have user that doesn't exist in target system)
25
+ if (pkgConfig.responsible) {
26
+ delete pkgConfig.responsible;
27
+ }
28
+ // Check if this package's superPackage is within our backup tree
29
+ const superPackageInBackup = pkgConfig.superPackage &&
30
+ backupPackageNames?.has(pkgConfig.superPackage);
31
+ (0, logVerbose_1.logVerbose)(3, `Package ${node.name}: superPackage=${pkgConfig.superPackage}, softwareComponent=${pkgConfig.softwareComponent}, superPackageInBackup=${superPackageInBackup}`);
32
+ // Set softwareComponent for all packages
33
+ // Priority: CLI override > config value > default 'ZLOCAL'
34
+ // For sub-packages, use CLI override to ensure consistency with parent
35
+ if (softwareComponentOverride) {
36
+ pkgConfig.softwareComponent = softwareComponentOverride;
37
+ }
38
+ else if (!pkgConfig.softwareComponent) {
39
+ pkgConfig.softwareComponent = 'ZLOCAL';
40
+ }
41
+ (0, logVerbose_1.logVerbose)(3, `Package ${node.name}: final softwareComponent=${pkgConfig.softwareComponent}`);
42
+ if (mode !== 'update') {
43
+ await client.getPackage().create(pkgConfig, options);
44
+ }
45
+ if (mode !== 'create') {
46
+ await client.getPackage().update(pkgConfig, options);
47
+ }
48
+ return;
49
+ }
50
+ case 'domain': {
51
+ if (mode !== 'update') {
52
+ await client
53
+ .getDomain()
54
+ .create((0, asConfig_1.asConfig)(config), options);
55
+ }
56
+ if (mode !== 'create') {
57
+ await client
58
+ .getDomain()
59
+ .update((0, asConfig_1.asConfig)(config), options);
60
+ }
61
+ return;
62
+ }
63
+ case 'dataElement': {
64
+ if (mode !== 'update') {
65
+ await client
66
+ .getDataElement()
67
+ .create((0, asConfig_1.asConfig)(config), options);
68
+ }
69
+ if (mode !== 'create') {
70
+ await client
71
+ .getDataElement()
72
+ .update((0, asConfig_1.asConfig)(config), options);
73
+ }
74
+ return;
75
+ }
76
+ case 'structure': {
77
+ if (mode !== 'update') {
78
+ await client
79
+ .getStructure()
80
+ .create((0, asConfig_1.asConfig)(config), options);
81
+ }
82
+ if (payload) {
83
+ await client.getStructure().update((0, asConfig_1.asConfig)({
84
+ ...config,
85
+ ddlCode: payload,
86
+ }), options);
87
+ }
88
+ return;
89
+ }
90
+ case 'table': {
91
+ if (mode !== 'update') {
92
+ await client
93
+ .getTable()
94
+ .create((0, asConfig_1.asConfig)(config), options);
95
+ }
96
+ if (payload) {
97
+ await client
98
+ .getTable()
99
+ .update((0, asConfig_1.asConfig)({ ...config, ddlCode: payload }), options);
100
+ }
101
+ return;
102
+ }
103
+ case 'view': {
104
+ if (mode !== 'update') {
105
+ await client.getView().create((0, asConfig_1.asConfig)(config), options);
106
+ }
107
+ if (payload) {
108
+ await client
109
+ .getView()
110
+ .update((0, asConfig_1.asConfig)({ ...config, ddlSource: payload }), options);
111
+ }
112
+ return;
113
+ }
114
+ case 'class': {
115
+ if (mode !== 'update') {
116
+ await client
117
+ .getClass()
118
+ .create((0, asConfig_1.asConfig)(config), options);
119
+ }
120
+ if (payload) {
121
+ await client.getClass().update((0, asConfig_1.asConfig)({
122
+ ...config,
123
+ sourceCode: payload,
124
+ }), options);
125
+ }
126
+ return;
127
+ }
128
+ case 'interface': {
129
+ if (mode !== 'update') {
130
+ await client
131
+ .getInterface()
132
+ .create((0, asConfig_1.asConfig)(config), options);
133
+ }
134
+ if (payload) {
135
+ await client.getInterface().update((0, asConfig_1.asConfig)({
136
+ ...config,
137
+ sourceCode: payload,
138
+ }), options);
139
+ }
140
+ return;
141
+ }
142
+ case 'program': {
143
+ if (mode !== 'update') {
144
+ await client
145
+ .getProgram()
146
+ .create((0, asConfig_1.asConfig)(config), options);
147
+ }
148
+ if (payload) {
149
+ await client.getProgram().update((0, asConfig_1.asConfig)({
150
+ ...config,
151
+ sourceCode: payload,
152
+ }), options);
153
+ }
154
+ return;
155
+ }
156
+ case 'functionGroup': {
157
+ if (mode !== 'update') {
158
+ await client
159
+ .getFunctionGroup()
160
+ .create((0, asConfig_1.asConfig)(config), options);
161
+ }
162
+ if (mode !== 'create') {
163
+ await client
164
+ .getFunctionGroup()
165
+ .update((0, asConfig_1.asConfig)(config), options);
166
+ }
167
+ return;
168
+ }
169
+ case 'functionModule': {
170
+ if (mode !== 'update') {
171
+ await client
172
+ .getFunctionModule()
173
+ .create((0, asConfig_1.asConfig)(config), options);
174
+ }
175
+ if (payload) {
176
+ await client.getFunctionModule().update((0, asConfig_1.asConfig)({
177
+ ...config,
178
+ sourceCode: payload,
179
+ }), options);
180
+ }
181
+ return;
182
+ }
183
+ case 'serviceDefinition': {
184
+ if (mode !== 'update') {
185
+ await client
186
+ .getServiceDefinition()
187
+ .create((0, asConfig_1.asConfig)(config), options);
188
+ }
189
+ if (payload) {
190
+ await client.getServiceDefinition().update((0, asConfig_1.asConfig)({
191
+ ...config,
192
+ sourceCode: payload,
193
+ }), options);
194
+ }
195
+ return;
196
+ }
197
+ case 'metadataExtension': {
198
+ if (mode !== 'update') {
199
+ await client
200
+ .getMetadataExtension()
201
+ .create((0, asConfig_1.asConfig)(config), options);
202
+ }
203
+ if (payload) {
204
+ await client.getMetadataExtension().update((0, asConfig_1.asConfig)({
205
+ ...config,
206
+ sourceCode: payload,
207
+ }), options);
208
+ }
209
+ return;
210
+ }
211
+ case 'behaviorDefinition': {
212
+ if (mode !== 'update') {
213
+ await client
214
+ .getBehaviorDefinition()
215
+ .create((0, asConfig_1.asConfig)(config), options);
216
+ }
217
+ if (payload) {
218
+ await client.getBehaviorDefinition().update((0, asConfig_1.asConfig)({
219
+ ...config,
220
+ sourceCode: payload,
221
+ }), options);
222
+ }
223
+ return;
224
+ }
225
+ case 'behaviorImplementation': {
226
+ if (mode !== 'update') {
227
+ await client
228
+ .getBehaviorImplementation()
229
+ .create((0, asConfig_1.asConfig)(config), options);
230
+ }
231
+ if (payload) {
232
+ await client.getBehaviorImplementation().update((0, asConfig_1.asConfig)({
233
+ ...config,
234
+ sourceCode: payload,
235
+ }), options);
236
+ }
237
+ return;
238
+ }
239
+ case 'enhancement': {
240
+ if (mode !== 'update') {
241
+ await client
242
+ .getEnhancement()
243
+ .create((0, asConfig_1.asConfig)(config), options);
244
+ }
245
+ if (payload) {
246
+ await client.getEnhancement().update((0, asConfig_1.asConfig)({
247
+ ...config,
248
+ sourceCode: payload,
249
+ }), options);
250
+ }
251
+ return;
252
+ }
253
+ case 'tableType': {
254
+ if (mode !== 'update') {
255
+ await client
256
+ .getTableType()
257
+ .create((0, asConfig_1.asConfig)(config), options);
258
+ }
259
+ if (mode !== 'create') {
260
+ await client
261
+ .getTableType()
262
+ .update((0, asConfig_1.asConfig)(config), options);
263
+ }
264
+ return;
265
+ }
266
+ }
267
+ }
268
+ catch (error) {
269
+ if (error.response?.data) {
270
+ console.error(`Error restoring ${node.type}:${node.name}:`, typeof error.response.data === 'string'
271
+ ? error.response.data
272
+ : JSON.stringify(error.response.data, null, 2));
273
+ }
274
+ throw error;
275
+ }
276
+ }
@@ -0,0 +1,3 @@
1
+ import type { BackupObject } from '../types';
2
+ export declare function sortByDependencies(objects: BackupObject[]): BackupObject[];
3
+ //# sourceMappingURL=sortByDependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sortByDependencies.d.ts","sourceRoot":"","sources":["../../../src/lib/restore/sortByDependencies.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAsE1E"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sortByDependencies = sortByDependencies;
4
+ const typeOrder_1 = require("../constants/typeOrder");
5
+ function sortByDependencies(objects) {
6
+ const idToObject = new Map(objects.map((obj) => [obj.id, obj]));
7
+ const dependencies = new Map();
8
+ const indegree = new Map();
9
+ for (const obj of objects) {
10
+ const deps = new Set((obj.dependsOn || []).filter((dep) => idToObject.has(dep)));
11
+ dependencies.set(obj.id, deps);
12
+ indegree.set(obj.id, deps.size);
13
+ }
14
+ const priority = new Map(typeOrder_1.typeOrder.map((type, index) => [type, index]));
15
+ const queue = objects
16
+ .filter((obj) => (indegree.get(obj.id) || 0) === 0)
17
+ .sort((a, b) => {
18
+ const aOrder = priority.get(a.type) ?? 999;
19
+ const bOrder = priority.get(b.type) ?? 999;
20
+ return aOrder - bOrder || a.id.localeCompare(b.id);
21
+ })
22
+ .map((obj) => obj.id);
23
+ const result = [];
24
+ const visited = new Set();
25
+ while (queue.length > 0) {
26
+ const id = queue.shift();
27
+ if (!id) {
28
+ continue;
29
+ }
30
+ const obj = idToObject.get(id);
31
+ if (!obj || visited.has(id)) {
32
+ continue;
33
+ }
34
+ visited.add(id);
35
+ result.push(obj);
36
+ for (const [otherId, deps] of dependencies.entries()) {
37
+ if (!deps.has(id)) {
38
+ continue;
39
+ }
40
+ deps.delete(id);
41
+ const nextIndegree = (indegree.get(otherId) || 0) - 1;
42
+ indegree.set(otherId, nextIndegree);
43
+ if (nextIndegree === 0) {
44
+ queue.push(otherId);
45
+ queue.sort((aId, bId) => {
46
+ const aObj = idToObject.get(aId);
47
+ const bObj = idToObject.get(bId);
48
+ const aOrder = aObj ? (priority.get(aObj.type) ?? 999) : 999;
49
+ const bOrder = bObj ? (priority.get(bObj.type) ?? 999) : 999;
50
+ return aOrder - bOrder || aId.localeCompare(bId);
51
+ });
52
+ }
53
+ }
54
+ }
55
+ if (result.length !== objects.length) {
56
+ const remaining = objects.filter((obj) => !visited.has(obj.id));
57
+ remaining.sort((a, b) => {
58
+ const aOrder = priority.get(a.type) ?? 999;
59
+ const bOrder = priority.get(b.type) ?? 999;
60
+ return aOrder - bOrder || a.id.localeCompare(b.id);
61
+ });
62
+ result.push(...remaining);
63
+ }
64
+ return result;
65
+ }
@@ -0,0 +1,3 @@
1
+ import type { BackupTreeNode } from '../types';
2
+ export declare function sortTreeNodesByDependencies(nodes: BackupTreeNode[]): BackupTreeNode[];
3
+ //# sourceMappingURL=sortTreeNodesByDependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sortTreeNodesByDependencies.d.ts","sourceRoot":"","sources":["../../../src/lib/restore/sortTreeNodesByDependencies.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI/C,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,cAAc,EAAE,GACtB,cAAc,EAAE,CAqGlB"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sortTreeNodesByDependencies = sortTreeNodesByDependencies;
4
+ const typeOrder_1 = require("../constants/typeOrder");
5
+ const getNodeObjectId_1 = require("../tree/getNodeObjectId");
6
+ const objectId_1 = require("../utils/objectId");
7
+ const parseObjectSpec_1 = require("../utils/parseObjectSpec");
8
+ function sortTreeNodesByDependencies(nodes) {
9
+ const idToNode = new Map();
10
+ for (const node of nodes) {
11
+ const id = (0, getNodeObjectId_1.getNodeObjectId)(node);
12
+ if (id) {
13
+ idToNode.set(id, node);
14
+ }
15
+ }
16
+ const dependencies = new Map();
17
+ for (const id of idToNode.keys()) {
18
+ dependencies.set(id, new Set());
19
+ }
20
+ for (const node of nodes) {
21
+ const currentId = (0, getNodeObjectId_1.getNodeObjectId)(node);
22
+ if (!currentId || !node.usedBy) {
23
+ continue;
24
+ }
25
+ for (const usedBySpec of node.usedBy) {
26
+ let usedById;
27
+ try {
28
+ const spec = (0, parseObjectSpec_1.parseObjectSpec)(usedBySpec);
29
+ usedById = (0, objectId_1.objectId)(spec);
30
+ }
31
+ catch {
32
+ continue;
33
+ }
34
+ if (!idToNode.has(usedById) || usedById === currentId) {
35
+ continue;
36
+ }
37
+ const deps = dependencies.get(usedById);
38
+ if (deps) {
39
+ deps.add(currentId);
40
+ }
41
+ }
42
+ }
43
+ const indegree = new Map();
44
+ for (const [id, deps] of dependencies.entries()) {
45
+ indegree.set(id, deps.size);
46
+ }
47
+ const priority = new Map(typeOrder_1.typeOrder.map((type, index) => [type, index]));
48
+ const queue = Array.from(idToNode.entries())
49
+ .filter(([id]) => (indegree.get(id) || 0) === 0)
50
+ .sort(([, a], [, b]) => {
51
+ const aOrder = a.type ? (priority.get(a.type) ?? 999) : 999;
52
+ const bOrder = b.type ? (priority.get(b.type) ?? 999) : 999;
53
+ return aOrder - bOrder || a.name.localeCompare(b.name);
54
+ })
55
+ .map(([id]) => id);
56
+ const result = [];
57
+ const visited = new Set();
58
+ while (queue.length > 0) {
59
+ const id = queue.shift();
60
+ if (!id) {
61
+ continue;
62
+ }
63
+ const node = idToNode.get(id);
64
+ if (!node || visited.has(id)) {
65
+ continue;
66
+ }
67
+ visited.add(id);
68
+ result.push(node);
69
+ for (const [otherId, deps] of dependencies.entries()) {
70
+ if (!deps.has(id)) {
71
+ continue;
72
+ }
73
+ deps.delete(id);
74
+ const nextIndegree = (indegree.get(otherId) || 0) - 1;
75
+ indegree.set(otherId, nextIndegree);
76
+ if (nextIndegree === 0) {
77
+ queue.push(otherId);
78
+ queue.sort((aId, bId) => {
79
+ const aNode = idToNode.get(aId);
80
+ const bNode = idToNode.get(bId);
81
+ const aOrder = aNode?.type ? (priority.get(aNode.type) ?? 999) : 999;
82
+ const bOrder = bNode?.type ? (priority.get(bNode.type) ?? 999) : 999;
83
+ return aOrder - bOrder || aId.localeCompare(bId);
84
+ });
85
+ }
86
+ }
87
+ }
88
+ if (result.length !== nodes.length) {
89
+ const remaining = nodes.filter((node) => {
90
+ const id = (0, getNodeObjectId_1.getNodeObjectId)(node);
91
+ return id ? !visited.has(id) : true;
92
+ });
93
+ remaining.sort((a, b) => {
94
+ const aOrder = a.type ? (priority.get(a.type) ?? 999) : 999;
95
+ const bOrder = b.type ? (priority.get(b.type) ?? 999) : 999;
96
+ return aOrder - bOrder || a.name.localeCompare(b.name);
97
+ });
98
+ result.push(...remaining);
99
+ }
100
+ return result;
101
+ }
@@ -0,0 +1,2 @@
1
+ export declare function run(): Promise<void>;
2
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/lib/run.ts"],"names":[],"mappings":"AAqDA,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CA4wBzC"}