@rockcarver/frodo-cli 2.0.0-4 → 2.0.0-41

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 (486) hide show
  1. package/CHANGELOG.md +312 -5
  2. package/esm/app.js +22 -5
  3. package/esm/app.js.map +1 -1
  4. package/esm/cli/FrodoCommand.js +33 -7
  5. package/esm/cli/FrodoCommand.js.map +1 -1
  6. package/esm/cli/_template/something-delete.js +7 -5
  7. package/esm/cli/_template/something-delete.js.map +1 -1
  8. package/esm/cli/_template/something-describe.js +7 -5
  9. package/esm/cli/_template/something-describe.js.map +1 -1
  10. package/esm/cli/_template/something-else-delete.js +7 -5
  11. package/esm/cli/_template/something-else-delete.js.map +1 -1
  12. package/esm/cli/_template/something-else-describe.js +7 -5
  13. package/esm/cli/_template/something-else-describe.js.map +1 -1
  14. package/esm/cli/_template/something-else-export.js +8 -6
  15. package/esm/cli/_template/something-else-export.js.map +1 -1
  16. package/esm/cli/_template/something-else-import.js +7 -5
  17. package/esm/cli/_template/something-else-import.js.map +1 -1
  18. package/esm/cli/_template/something-else-list.js +7 -5
  19. package/esm/cli/_template/something-else-list.js.map +1 -1
  20. package/esm/cli/_template/something-else.js +1 -1
  21. package/esm/cli/_template/something-else.js.map +1 -1
  22. package/esm/cli/_template/something-export.js +8 -6
  23. package/esm/cli/_template/something-export.js.map +1 -1
  24. package/esm/cli/_template/something-import.js +7 -5
  25. package/esm/cli/_template/something-import.js.map +1 -1
  26. package/esm/cli/_template/something-list.js +7 -5
  27. package/esm/cli/_template/something-list.js.map +1 -1
  28. package/esm/cli/_template/something-other-delete.js +7 -5
  29. package/esm/cli/_template/something-other-delete.js.map +1 -1
  30. package/esm/cli/_template/something-other-describe.js +7 -5
  31. package/esm/cli/_template/something-other-describe.js.map +1 -1
  32. package/esm/cli/_template/something-other-export.js +8 -6
  33. package/esm/cli/_template/something-other-export.js.map +1 -1
  34. package/esm/cli/_template/something-other-import.js +7 -5
  35. package/esm/cli/_template/something-other-import.js.map +1 -1
  36. package/esm/cli/_template/something-other-list.js +7 -5
  37. package/esm/cli/_template/something-other-list.js.map +1 -1
  38. package/esm/cli/_template/something-other.js +1 -1
  39. package/esm/cli/_template/something-other.js.map +1 -1
  40. package/esm/cli/_template/something.js +2 -2
  41. package/esm/cli/_template/something.js.map +1 -1
  42. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +10 -5
  43. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
  44. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +14 -8
  45. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
  46. package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js +41 -0
  47. package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js.map +1 -0
  48. package/esm/cli/admin/admin-federation-export.js +44 -0
  49. package/esm/cli/admin/admin-federation-export.js.map +1 -0
  50. package/esm/cli/admin/admin-federation-import.js +48 -0
  51. package/esm/cli/admin/admin-federation-import.js.map +1 -0
  52. package/esm/cli/admin/admin-federation-list.js +28 -0
  53. package/esm/cli/admin/admin-federation-list.js.map +1 -0
  54. package/esm/cli/admin/admin-federation.js +13 -0
  55. package/esm/cli/admin/admin-federation.js.map +1 -0
  56. package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js +43 -0
  57. package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js.map +1 -0
  58. package/esm/cli/admin/admin-get-access-token.js +12 -7
  59. package/esm/cli/admin/admin-get-access-token.js.map +1 -1
  60. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +13 -8
  61. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
  62. package/esm/cli/admin/admin-hide-generic-extension-attributes.js +11 -6
  63. package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
  64. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +11 -6
  65. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
  66. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +11 -6
  67. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
  68. package/esm/cli/admin/admin-list-static-user-mappings.js +12 -7
  69. package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
  70. package/esm/cli/admin/admin-remove-static-user-mapping.js +12 -6
  71. package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
  72. package/esm/cli/admin/admin-repair-org-model.js +11 -6
  73. package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
  74. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +12 -7
  75. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
  76. package/esm/cli/admin/admin-show-generic-extension-attributes.js +11 -6
  77. package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
  78. package/esm/cli/admin/admin-train-auto-access-model.js +32 -0
  79. package/esm/cli/admin/admin-train-auto-access-model.js.map +1 -0
  80. package/esm/cli/admin/admin.js +8 -2
  81. package/esm/cli/admin/admin.js.map +1 -1
  82. package/esm/cli/agent/agent-delete.js +13 -7
  83. package/esm/cli/agent/agent-delete.js.map +1 -1
  84. package/esm/cli/agent/agent-describe.js +7 -5
  85. package/esm/cli/agent/agent-describe.js.map +1 -1
  86. package/esm/cli/agent/agent-export.js +12 -10
  87. package/esm/cli/agent/agent-export.js.map +1 -1
  88. package/esm/cli/agent/agent-gateway-delete.js +13 -7
  89. package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
  90. package/esm/cli/agent/agent-gateway-describe.js +7 -5
  91. package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
  92. package/esm/cli/agent/agent-gateway-export.js +12 -10
  93. package/esm/cli/agent/agent-gateway-export.js.map +1 -1
  94. package/esm/cli/agent/agent-gateway-import.js +8 -6
  95. package/esm/cli/agent/agent-gateway-import.js.map +1 -1
  96. package/esm/cli/agent/agent-gateway-list.js +7 -5
  97. package/esm/cli/agent/agent-gateway-list.js.map +1 -1
  98. package/esm/cli/agent/agent-gateway.js +1 -1
  99. package/esm/cli/agent/agent-gateway.js.map +1 -1
  100. package/esm/cli/agent/agent-import.js +8 -6
  101. package/esm/cli/agent/agent-import.js.map +1 -1
  102. package/esm/cli/agent/agent-java-delete.js +13 -7
  103. package/esm/cli/agent/agent-java-delete.js.map +1 -1
  104. package/esm/cli/agent/agent-java-describe.js +7 -5
  105. package/esm/cli/agent/agent-java-describe.js.map +1 -1
  106. package/esm/cli/agent/agent-java-export.js +12 -10
  107. package/esm/cli/agent/agent-java-export.js.map +1 -1
  108. package/esm/cli/agent/agent-java-import.js +8 -6
  109. package/esm/cli/agent/agent-java-import.js.map +1 -1
  110. package/esm/cli/agent/agent-java-list.js +7 -5
  111. package/esm/cli/agent/agent-java-list.js.map +1 -1
  112. package/esm/cli/agent/agent-java.js +1 -1
  113. package/esm/cli/agent/agent-java.js.map +1 -1
  114. package/esm/cli/agent/agent-list.js +7 -5
  115. package/esm/cli/agent/agent-list.js.map +1 -1
  116. package/esm/cli/agent/agent-web-delete.js +13 -7
  117. package/esm/cli/agent/agent-web-delete.js.map +1 -1
  118. package/esm/cli/agent/agent-web-describe.js +7 -5
  119. package/esm/cli/agent/agent-web-describe.js.map +1 -1
  120. package/esm/cli/agent/agent-web-export.js +12 -10
  121. package/esm/cli/agent/agent-web-export.js.map +1 -1
  122. package/esm/cli/agent/agent-web-import.js +8 -6
  123. package/esm/cli/agent/agent-web-import.js.map +1 -1
  124. package/esm/cli/agent/agent-web-list.js +7 -5
  125. package/esm/cli/agent/agent-web-list.js.map +1 -1
  126. package/esm/cli/agent/agent-web.js +3 -3
  127. package/esm/cli/agent/agent-web.js.map +1 -1
  128. package/esm/cli/agent/agent.js +2 -2
  129. package/esm/cli/agent/agent.js.map +1 -1
  130. package/esm/cli/app/app-delete.js +27 -9
  131. package/esm/cli/app/app-delete.js.map +1 -1
  132. package/esm/cli/app/app-describe.js +9 -6
  133. package/esm/cli/app/app-describe.js.map +1 -1
  134. package/esm/cli/app/app-export.js +17 -14
  135. package/esm/cli/app/app-export.js.map +1 -1
  136. package/esm/cli/app/app-import.js +21 -18
  137. package/esm/cli/app/app-import.js.map +1 -1
  138. package/esm/cli/app/app-list.js +12 -9
  139. package/esm/cli/app/app-list.js.map +1 -1
  140. package/esm/cli/app/app.js +8 -12
  141. package/esm/cli/app/app.js.map +1 -1
  142. package/esm/cli/authn/authn-describe.js +29 -0
  143. package/esm/cli/authn/authn-describe.js.map +1 -0
  144. package/esm/cli/authn/authn-export.js +25 -0
  145. package/esm/cli/authn/authn-export.js.map +1 -0
  146. package/esm/cli/authn/authn-import.js +25 -0
  147. package/esm/cli/authn/authn-import.js.map +1 -0
  148. package/esm/cli/authn/authn.js +12 -0
  149. package/esm/cli/authn/authn.js.map +1 -0
  150. package/esm/cli/authz/authz-policy-delete.js +11 -9
  151. package/esm/cli/authz/authz-policy-delete.js.map +1 -1
  152. package/esm/cli/authz/authz-policy-describe.js +8 -6
  153. package/esm/cli/authz/authz-policy-describe.js.map +1 -1
  154. package/esm/cli/authz/authz-policy-export.js +18 -16
  155. package/esm/cli/authz/authz-policy-export.js.map +1 -1
  156. package/esm/cli/authz/authz-policy-import.js +11 -9
  157. package/esm/cli/authz/authz-policy-import.js.map +1 -1
  158. package/esm/cli/authz/authz-policy-list.js +11 -9
  159. package/esm/cli/authz/authz-policy-list.js.map +1 -1
  160. package/esm/cli/authz/authz-policy.js +1 -1
  161. package/esm/cli/authz/authz-policy.js.map +1 -1
  162. package/esm/cli/authz/authz-set-delete.js +11 -9
  163. package/esm/cli/authz/authz-set-delete.js.map +1 -1
  164. package/esm/cli/authz/authz-set-describe.js +8 -6
  165. package/esm/cli/authz/authz-set-describe.js.map +1 -1
  166. package/esm/cli/authz/authz-set-export.js +14 -12
  167. package/esm/cli/authz/authz-set-export.js.map +1 -1
  168. package/esm/cli/authz/authz-set-import.js +11 -9
  169. package/esm/cli/authz/authz-set-import.js.map +1 -1
  170. package/esm/cli/authz/authz-set-list.js +8 -6
  171. package/esm/cli/authz/authz-set-list.js.map +1 -1
  172. package/esm/cli/authz/authz-set.js +1 -1
  173. package/esm/cli/authz/authz-set.js.map +1 -1
  174. package/esm/cli/authz/authz-type-delete.js +13 -11
  175. package/esm/cli/authz/authz-type-delete.js.map +1 -1
  176. package/esm/cli/authz/authz-type-describe.js +9 -7
  177. package/esm/cli/authz/authz-type-describe.js.map +1 -1
  178. package/esm/cli/authz/authz-type-export.js +16 -14
  179. package/esm/cli/authz/authz-type-export.js.map +1 -1
  180. package/esm/cli/authz/authz-type-import.js +14 -12
  181. package/esm/cli/authz/authz-type-import.js.map +1 -1
  182. package/esm/cli/authz/authz-type-list.js +9 -7
  183. package/esm/cli/authz/authz-type-list.js.map +1 -1
  184. package/esm/cli/authz/authz-type.js +1 -1
  185. package/esm/cli/authz/authz-type.js.map +1 -1
  186. package/esm/cli/authz/authz.js +2 -2
  187. package/esm/cli/authz/authz.js.map +1 -1
  188. package/esm/cli/config/config-delete.js +21 -0
  189. package/esm/cli/config/config-delete.js.map +1 -0
  190. package/esm/cli/config/config-describe.js +21 -0
  191. package/esm/cli/config/config-describe.js.map +1 -0
  192. package/esm/cli/config/config-export.js +43 -0
  193. package/esm/cli/config/config-export.js.map +1 -0
  194. package/esm/cli/config/config-import.js +54 -0
  195. package/esm/cli/config/config-import.js.map +1 -0
  196. package/esm/cli/config/config-list.js +21 -0
  197. package/esm/cli/config/config-list.js.map +1 -0
  198. package/esm/cli/config/config.js +19 -0
  199. package/esm/cli/config/config.js.map +1 -0
  200. package/esm/cli/conn/conn-delete.js +2 -3
  201. package/esm/cli/conn/conn-delete.js.map +1 -1
  202. package/esm/cli/conn/conn-describe.js +2 -3
  203. package/esm/cli/conn/conn-describe.js.map +1 -1
  204. package/esm/cli/conn/conn-list.js +2 -3
  205. package/esm/cli/conn/conn-list.js.map +1 -1
  206. package/esm/cli/conn/conn-save.js +31 -16
  207. package/esm/cli/conn/conn-save.js.map +1 -1
  208. package/esm/cli/conn/conn.js +2 -2
  209. package/esm/cli/conn/conn.js.map +1 -1
  210. package/esm/cli/email/email-template-export.js +14 -12
  211. package/esm/cli/email/email-template-export.js.map +1 -1
  212. package/esm/cli/email/email-template-import.js +15 -13
  213. package/esm/cli/email/email-template-import.js.map +1 -1
  214. package/esm/cli/email/email-template-list.js +9 -7
  215. package/esm/cli/email/email-template-list.js.map +1 -1
  216. package/esm/cli/email/email-template.js +1 -1
  217. package/esm/cli/email/email-template.js.map +1 -1
  218. package/esm/cli/email/email.js +2 -2
  219. package/esm/cli/email/email.js.map +1 -1
  220. package/esm/cli/esv/esv-apply.js +18 -9
  221. package/esm/cli/esv/esv-apply.js.map +1 -1
  222. package/esm/cli/esv/esv-secret-create.js +10 -7
  223. package/esm/cli/esv/esv-secret-create.js.map +1 -1
  224. package/esm/cli/esv/esv-secret-delete.js +13 -10
  225. package/esm/cli/esv/esv-secret-delete.js.map +1 -1
  226. package/esm/cli/esv/esv-secret-describe.js +10 -7
  227. package/esm/cli/esv/esv-secret-describe.js.map +1 -1
  228. package/esm/cli/esv/esv-secret-export.js +22 -7
  229. package/esm/cli/esv/esv-secret-export.js.map +1 -1
  230. package/esm/cli/esv/esv-secret-import.js +7 -5
  231. package/esm/cli/esv/esv-secret-import.js.map +1 -1
  232. package/esm/cli/esv/esv-secret-list.js +11 -8
  233. package/esm/cli/esv/esv-secret-list.js.map +1 -1
  234. package/esm/cli/esv/esv-secret-set.js +10 -7
  235. package/esm/cli/esv/esv-secret-set.js.map +1 -1
  236. package/esm/cli/esv/esv-secret-version-activate.js +10 -8
  237. package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
  238. package/esm/cli/esv/esv-secret-version-create.js +10 -7
  239. package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
  240. package/esm/cli/esv/esv-secret-version-deactivate.js +10 -8
  241. package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
  242. package/esm/cli/esv/esv-secret-version-delete.js +13 -10
  243. package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
  244. package/esm/cli/esv/esv-secret-version-list.js +10 -7
  245. package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
  246. package/esm/cli/esv/esv-secret-version.js +1 -1
  247. package/esm/cli/esv/esv-secret-version.js.map +1 -1
  248. package/esm/cli/esv/esv-secret.js +2 -3
  249. package/esm/cli/esv/esv-secret.js.map +1 -1
  250. package/esm/cli/esv/esv-variable-create.js +11 -7
  251. package/esm/cli/esv/esv-variable-create.js.map +1 -1
  252. package/esm/cli/esv/esv-variable-delete.js +13 -9
  253. package/esm/cli/esv/esv-variable-delete.js.map +1 -1
  254. package/esm/cli/esv/esv-variable-describe.js +11 -8
  255. package/esm/cli/esv/esv-variable-describe.js.map +1 -1
  256. package/esm/cli/esv/esv-variable-export.js +23 -7
  257. package/esm/cli/esv/esv-variable-export.js.map +1 -1
  258. package/esm/cli/esv/esv-variable-import.js +7 -5
  259. package/esm/cli/esv/esv-variable-import.js.map +1 -1
  260. package/esm/cli/esv/esv-variable-list.js +11 -8
  261. package/esm/cli/esv/esv-variable-list.js.map +1 -1
  262. package/esm/cli/esv/esv-variable-set.js +12 -8
  263. package/esm/cli/esv/esv-variable-set.js.map +1 -1
  264. package/esm/cli/esv/esv-variable.js +2 -3
  265. package/esm/cli/esv/esv-variable.js.map +1 -1
  266. package/esm/cli/esv/esv.js +2 -2
  267. package/esm/cli/esv/esv.js.map +1 -1
  268. package/esm/cli/idm/idm-count.js +10 -8
  269. package/esm/cli/idm/idm-count.js.map +1 -1
  270. package/esm/cli/idm/idm-export.js +24 -16
  271. package/esm/cli/idm/idm-export.js.map +1 -1
  272. package/esm/cli/idm/idm-import.js +22 -14
  273. package/esm/cli/idm/idm-import.js.map +1 -1
  274. package/esm/cli/idm/idm-list.js +9 -7
  275. package/esm/cli/idm/idm-list.js.map +1 -1
  276. package/esm/cli/idm/idm.js +2 -2
  277. package/esm/cli/idm/idm.js.map +1 -1
  278. package/esm/cli/idp/idp-export.js +12 -10
  279. package/esm/cli/idp/idp-export.js.map +1 -1
  280. package/esm/cli/idp/idp-import.js +24 -14
  281. package/esm/cli/idp/idp-import.js.map +1 -1
  282. package/esm/cli/idp/idp-list.js +8 -6
  283. package/esm/cli/idp/idp-list.js.map +1 -1
  284. package/esm/cli/idp/idp.js +2 -2
  285. package/esm/cli/idp/idp.js.map +1 -1
  286. package/esm/cli/info/info.js +13 -8
  287. package/esm/cli/info/info.js.map +1 -1
  288. package/esm/cli/journey/journey-delete.js +14 -8
  289. package/esm/cli/journey/journey-delete.js.map +1 -1
  290. package/esm/cli/journey/journey-describe.js +22 -12
  291. package/esm/cli/journey/journey-describe.js.map +1 -1
  292. package/esm/cli/journey/journey-disable.js +11 -12
  293. package/esm/cli/journey/journey-disable.js.map +1 -1
  294. package/esm/cli/journey/journey-enable.js +11 -12
  295. package/esm/cli/journey/journey-enable.js.map +1 -1
  296. package/esm/cli/journey/journey-export.js +24 -13
  297. package/esm/cli/journey/journey-export.js.map +1 -1
  298. package/esm/cli/journey/journey-import.js +15 -13
  299. package/esm/cli/journey/journey-import.js.map +1 -1
  300. package/esm/cli/journey/journey-list.js +7 -5
  301. package/esm/cli/journey/journey-list.js.map +1 -1
  302. package/esm/cli/journey/journey-prune.js +23 -13
  303. package/esm/cli/journey/journey-prune.js.map +1 -1
  304. package/esm/cli/journey/journey.js +2 -2
  305. package/esm/cli/journey/journey.js.map +1 -1
  306. package/esm/cli/{logging/logs-fetch.js → log/log-fetch.js} +68 -36
  307. package/esm/cli/log/log-fetch.js.map +1 -0
  308. package/esm/cli/log/log-key-delete.js +34 -0
  309. package/esm/cli/log/log-key-delete.js.map +1 -0
  310. package/esm/cli/log/log-key-describe.js +21 -0
  311. package/esm/cli/log/log-key-describe.js.map +1 -0
  312. package/esm/cli/log/log-key-list.js +25 -0
  313. package/esm/cli/log/log-key-list.js.map +1 -0
  314. package/esm/cli/log/log-key.js +8 -0
  315. package/esm/cli/log/log-key.js.map +1 -0
  316. package/esm/cli/log/log-list.js +80 -0
  317. package/esm/cli/log/log-list.js.map +1 -0
  318. package/esm/cli/log/log-tail.js +77 -0
  319. package/esm/cli/log/log-tail.js.map +1 -0
  320. package/esm/cli/{logging/logs.js → log/log.js} +6 -3
  321. package/esm/cli/log/log.js.map +1 -0
  322. package/esm/cli/oauth/oauth-client-delete.js +21 -0
  323. package/esm/cli/oauth/oauth-client-delete.js.map +1 -0
  324. package/esm/cli/oauth/oauth-client-describe.js +21 -0
  325. package/esm/cli/oauth/oauth-client-describe.js.map +1 -0
  326. package/esm/cli/oauth/oauth-client-export.js +51 -0
  327. package/esm/cli/oauth/oauth-client-export.js.map +1 -0
  328. package/esm/cli/oauth/oauth-client-import.js +56 -0
  329. package/esm/cli/oauth/oauth-client-import.js.map +1 -0
  330. package/esm/cli/oauth/oauth-client-list.js +24 -0
  331. package/esm/cli/oauth/oauth-client-list.js.map +1 -0
  332. package/esm/cli/oauth/oauth-client.js +14 -0
  333. package/esm/cli/oauth/oauth-client.js.map +1 -0
  334. package/esm/cli/oauth/oauth.js +13 -0
  335. package/esm/cli/oauth/oauth.js.map +1 -0
  336. package/esm/cli/realm/realm-add-custom-domain.js +8 -6
  337. package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
  338. package/esm/cli/realm/realm-describe.js +8 -6
  339. package/esm/cli/realm/realm-describe.js.map +1 -1
  340. package/esm/cli/realm/realm-list.js +8 -6
  341. package/esm/cli/realm/realm-list.js.map +1 -1
  342. package/esm/cli/realm/realm-remove-custom-domain.js +11 -6
  343. package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
  344. package/esm/cli/realm/realm.js +2 -2
  345. package/esm/cli/realm/realm.js.map +1 -1
  346. package/esm/cli/saml/saml-cot-export.js +14 -12
  347. package/esm/cli/saml/saml-cot-export.js.map +1 -1
  348. package/esm/cli/saml/saml-cot-import.js +15 -13
  349. package/esm/cli/saml/saml-cot-import.js.map +1 -1
  350. package/esm/cli/saml/saml-cot-list.js +9 -7
  351. package/esm/cli/saml/saml-cot-list.js.map +1 -1
  352. package/esm/cli/saml/saml-cot.js +1 -1
  353. package/esm/cli/saml/saml-cot.js.map +1 -1
  354. package/esm/cli/saml/saml-delete.js +14 -8
  355. package/esm/cli/saml/saml-delete.js.map +1 -1
  356. package/esm/cli/saml/saml-describe.js +9 -7
  357. package/esm/cli/saml/saml-describe.js.map +1 -1
  358. package/esm/cli/saml/saml-export.js +14 -12
  359. package/esm/cli/saml/saml-export.js.map +1 -1
  360. package/esm/cli/saml/saml-import.js +24 -14
  361. package/esm/cli/saml/saml-import.js.map +1 -1
  362. package/esm/cli/saml/saml-list.js +9 -7
  363. package/esm/cli/saml/saml-list.js.map +1 -1
  364. package/esm/cli/saml/saml-metadata-export.js +10 -8
  365. package/esm/cli/saml/saml-metadata-export.js.map +1 -1
  366. package/esm/cli/saml/saml-metadata.js +1 -1
  367. package/esm/cli/saml/saml-metadata.js.map +1 -1
  368. package/esm/cli/saml/saml.js +2 -2
  369. package/esm/cli/saml/saml.js.map +1 -1
  370. package/esm/cli/script/script-delete.js +21 -8
  371. package/esm/cli/script/script-delete.js.map +1 -1
  372. package/esm/cli/script/script-describe.js +7 -5
  373. package/esm/cli/script/script-describe.js.map +1 -1
  374. package/esm/cli/script/script-export.js +12 -14
  375. package/esm/cli/script/script-export.js.map +1 -1
  376. package/esm/cli/script/script-import.js +9 -7
  377. package/esm/cli/script/script-import.js.map +1 -1
  378. package/esm/cli/script/script-list.js +10 -8
  379. package/esm/cli/script/script-list.js.map +1 -1
  380. package/esm/cli/script/script.js +3 -5
  381. package/esm/cli/script/script.js.map +1 -1
  382. package/esm/cli/service/service-delete.js +8 -5
  383. package/esm/cli/service/service-delete.js.map +1 -1
  384. package/esm/cli/service/service-export.js +13 -11
  385. package/esm/cli/service/service-export.js.map +1 -1
  386. package/esm/cli/service/service-import.js +32 -14
  387. package/esm/cli/service/service-import.js.map +1 -1
  388. package/esm/cli/service/service-list.js +7 -4
  389. package/esm/cli/service/service-list.js.map +1 -1
  390. package/esm/cli/service/service.js +2 -2
  391. package/esm/cli/service/service.js.map +1 -1
  392. package/esm/cli/shell/shell.js +57 -0
  393. package/esm/cli/shell/shell.js.map +1 -0
  394. package/esm/cli/theme/theme-delete.js +13 -11
  395. package/esm/cli/theme/theme-delete.js.map +1 -1
  396. package/esm/cli/theme/theme-export.js +16 -14
  397. package/esm/cli/theme/theme-export.js.map +1 -1
  398. package/esm/cli/theme/theme-import.js +16 -14
  399. package/esm/cli/theme/theme-import.js.map +1 -1
  400. package/esm/cli/theme/theme-list.js +8 -6
  401. package/esm/cli/theme/theme-list.js.map +1 -1
  402. package/esm/cli/theme/theme.js +2 -2
  403. package/esm/cli/theme/theme.js.map +1 -1
  404. package/esm/help/SampleData.js +7 -0
  405. package/esm/help/SampleData.js.map +1 -0
  406. package/esm/launch.js +1 -1
  407. package/esm/launch.js.map +1 -1
  408. package/esm/loader.js +2 -2
  409. package/esm/loader.js.map +1 -1
  410. package/esm/ops/AdminFederationOps.js +231 -0
  411. package/esm/ops/AdminFederationOps.js.map +1 -0
  412. package/esm/ops/AdminOps.js +151 -0
  413. package/esm/ops/AdminOps.js.map +1 -0
  414. package/esm/ops/AgentOps.js +213 -150
  415. package/esm/ops/AgentOps.js.map +1 -1
  416. package/esm/ops/ApplicationOps.js +324 -0
  417. package/esm/ops/ApplicationOps.js.map +1 -0
  418. package/esm/ops/AuthenticationSettingsOps.js +90 -0
  419. package/esm/ops/AuthenticationSettingsOps.js.map +1 -0
  420. package/esm/ops/CirclesOfTrustOps.js +98 -78
  421. package/esm/ops/CirclesOfTrustOps.js.map +1 -1
  422. package/esm/ops/ConfigOps.js +162 -0
  423. package/esm/ops/ConfigOps.js.map +1 -0
  424. package/esm/ops/ConnectionProfileOps.js +12 -6
  425. package/esm/ops/ConnectionProfileOps.js.map +1 -1
  426. package/esm/ops/EmailTemplateOps.js +122 -127
  427. package/esm/ops/EmailTemplateOps.js.map +1 -1
  428. package/esm/ops/IdmOps.js +101 -182
  429. package/esm/ops/IdmOps.js.map +1 -1
  430. package/esm/ops/IdpOps.js +118 -73
  431. package/esm/ops/IdpOps.js.map +1 -1
  432. package/esm/ops/JourneyOps.js +176 -114
  433. package/esm/ops/JourneyOps.js.map +1 -1
  434. package/esm/ops/LogOps.js +92 -30
  435. package/esm/ops/LogOps.js.map +1 -1
  436. package/esm/ops/NodeOps.js +6 -3
  437. package/esm/ops/NodeOps.js.map +1 -1
  438. package/esm/ops/OAuth2ClientOps.js +71 -49
  439. package/esm/ops/OAuth2ClientOps.js.map +1 -1
  440. package/esm/ops/OrganizationOps.js +14 -22
  441. package/esm/ops/OrganizationOps.js.map +1 -1
  442. package/esm/ops/PolicyOps.js +127 -86
  443. package/esm/ops/PolicyOps.js.map +1 -1
  444. package/esm/ops/PolicySetOps.js +108 -76
  445. package/esm/ops/PolicySetOps.js.map +1 -1
  446. package/esm/ops/RealmOps.js +18 -11
  447. package/esm/ops/RealmOps.js.map +1 -1
  448. package/esm/ops/ResourceTypeOps.js +105 -87
  449. package/esm/ops/ResourceTypeOps.js.map +1 -1
  450. package/esm/ops/Saml2Ops.js +132 -91
  451. package/esm/ops/Saml2Ops.js.map +1 -1
  452. package/esm/ops/Saml2Ops.test_.js.map +1 -1
  453. package/esm/ops/ScriptOps.js +205 -82
  454. package/esm/ops/ScriptOps.js.map +1 -1
  455. package/esm/ops/SecretsOps.js +289 -79
  456. package/esm/ops/SecretsOps.js.map +1 -1
  457. package/esm/ops/ServiceOps.js +97 -54
  458. package/esm/ops/ServiceOps.js.map +1 -1
  459. package/esm/ops/ThemeOps.js +164 -158
  460. package/esm/ops/ThemeOps.js.map +1 -1
  461. package/esm/ops/VariablesOps.js +252 -65
  462. package/esm/ops/VariablesOps.js.map +1 -1
  463. package/esm/ops/utils/OpsUtils.js +1 -1
  464. package/esm/ops/utils/OpsUtils.js.map +1 -1
  465. package/esm/ops/utils/Wordwrap.js +1 -1
  466. package/esm/ops/utils/Wordwrap.js.map +1 -1
  467. package/esm/storage/StaticStorage.js +1 -1
  468. package/esm/storage/StaticStorage.js.map +1 -1
  469. package/esm/utils/Config.js +162 -4
  470. package/esm/utils/Config.js.map +1 -1
  471. package/esm/utils/Console.js +78 -35
  472. package/esm/utils/Console.js.map +1 -1
  473. package/esm/utils/Version.js +19 -16
  474. package/esm/utils/Version.js.map +1 -1
  475. package/global-jest-setup.js +4 -0
  476. package/package.json +55 -37
  477. package/esm/cli/logging/logs-fetch.js.map +0 -1
  478. package/esm/cli/logging/logs-list.js +0 -49
  479. package/esm/cli/logging/logs-list.js.map +0 -1
  480. package/esm/cli/logging/logs-tail.js +0 -46
  481. package/esm/cli/logging/logs-tail.js.map +0 -1
  482. package/esm/cli/logging/logs.js.map +0 -1
  483. package/esm/cli/theme/theme-delete.e2e.test_.js.map +0 -1
  484. package/esm/cli/theme/theme-list.e2e.test_.js.map +0 -1
  485. package/esm/utils/ExportImportUtils.js +0 -90
  486. package/esm/utils/ExportImportUtils.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AgentOps.js","names":["frodo","state","fs","printMessage","createTable","debugMessage","showSpinner","succeedSpinner","failSpinner","getTypedFilename","saveJsonToFile","titleCase","agentTypeToFileIdMap","IdentityGatewayAgent","J2EEAgent","WebAgent","listAgents","long","agents","agent","getAgents","table","status","_type","_id","push","name","toString","forEach","error","stack","listIdentityGatewayAgents","getIdentityGatewayAgents","listJavaAgents","getJavaAgents","listWebAgents","getWebAgents","exportAgentsToFile","file","exportData","exportAgents","fileName","helper","utils","getRealmName","getRealm","exportIdentityGatewayAgentsToFile","exportIdentityGatewayAgents","exportJavaAgentsToFile","exportJavaAgents","exportWebAgentsToFile","exportWebAgents","exportAgentToFile","agentId","exportAgent","exportIdentityGatewayAgentToFile","exportIdentityGatewayAgent","exportJavaAgentToFile","exportJavaAgent","exportWebAgentToFile","exportWebAgent","exportAgentsToFiles","length","createAgentExportTemplate","exportIdentityGatewayAgentsToFiles","exportJavaAgentsToFiles","exportWebAgentsToFiles","importAgentFromFile","verbose","getVerbose","readFile","err","data","importData","JSON","parse","importAgent","importError","importFirstAgentFromFile","Object","keys","values","importAgentsFromFile","importAgents","message","response","importAgentsFromFiles","names","readdirSync","agentFiles","filter","toLowerCase","endsWith","importIdentityGatewayAgentFromFile","importIdentityGatewayAgent","importFirstIdentityGatewayAgentFromFile","importIdentityGatewayAgentsFromFile","importIdentityGatewayAgents","importIdentityGatewayAgentsFromFiles","importJavaAgentFromFile","importJavaAgent","importFirstJavaAgentFromFile","importJavaAgentsFromFile","importJavaAgents","importJavaAgentsFromFiles","importWebAgentFromFile","importWebAgent","importFirstWebAgentFromFile","importWebAgentsFromFile","importWebAgents","importWebAgentsFromFiles"],"sources":["ops/AgentOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport {\n printMessage,\n createTable,\n debugMessage,\n showSpinner,\n succeedSpinner,\n failSpinner,\n} from '../utils/Console';\nimport type { AgentExportInterface } from '@rockcarver/frodo-lib/types/ops/OpsTypes';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\n\nconst agentTypeToFileIdMap = {\n IdentityGatewayAgent: 'gateway.agent',\n J2EEAgent: 'java.agent',\n WebAgent: 'web.agent',\n};\n\n/**\n * List agents\n */\nexport async function listAgents(long = false) {\n try {\n const agents = await frodo.agent.getAgents();\n if (long) {\n const table = createTable(['Agent Id', 'Status', 'Agent Type']);\n for (const agent of agents) {\n let status = 'Unknown';\n switch (agent._type._id) {\n case 'J2EEAgent':\n status = agent['globalJ2EEAgentConfig']['status'];\n break;\n case 'WebAgent':\n status = agent['globalWebAgentConfig']['status'];\n break;\n default:\n status = agent.status as string;\n break;\n }\n table.push([\n agent._id,\n status === 'Active' ? 'Active'['brightGreen'] : status['brightRed'],\n agent._type.name,\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List identity gateway agents\n */\nexport async function listIdentityGatewayAgents(long = false) {\n try {\n const agents = await frodo.agent.getIdentityGatewayAgents();\n if (long) {\n const table = createTable(['Gateway Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent.status === 'Active'\n ? 'Active'['brightGreen']\n : agent.status['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing gateway agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List java agents\n */\nexport async function listJavaAgents(long = false) {\n try {\n const agents = await frodo.agent.getJavaAgents();\n if (long) {\n const table = createTable(['Java Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent['globalJ2EEAgentConfig']['status'] === 'Active'\n ? 'Active'['brightGreen']\n : agent['globalJ2EEAgentConfig']['status']['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing java agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List web agents\n */\nexport async function listWebAgents(long = false) {\n try {\n const agents = await frodo.agent.getWebAgents();\n if (long) {\n const table = createTable(['Web Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent['globalWebAgentConfig']['status'] === 'Active'\n ? 'Active'['brightGreen']\n : agent['globalWebAgentConfig']['status']['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing web agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * Export all agents to file\n * @param {string} file file name\n */\nexport async function exportAgentsToFile(file) {\n const exportData = await frodo.agent.exportAgents();\n let fileName = getTypedFilename(\n `all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}Agents`,\n 'agent'\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\n}\n\n/**\n * Export all identity gateway agents to file\n * @param {string} file file name\n */\nexport async function exportIdentityGatewayAgentsToFile(file) {\n const exportData = await frodo.agent.exportIdentityGatewayAgents();\n let fileName = getTypedFilename(\n `all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['IdentityGatewayAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\n}\n\n/**\n * Export all java agents to file\n * @param {string} file file name\n */\nexport async function exportJavaAgentsToFile(file) {\n const exportData = await frodo.agent.exportJavaAgents();\n let fileName = getTypedFilename(\n `all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['J2EEAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\n}\n\n/**\n * Export all web agents to file\n * @param {string} file file name\n */\nexport async function exportWebAgentsToFile(file) {\n const exportData = await frodo.agent.exportWebAgents();\n let fileName = getTypedFilename(\n `all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['WebAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\n}\n\n/**\n * Export agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportAgentToFile(agentId, file) {\n const exportData = await frodo.agent.exportAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\n}\n\n/**\n * Export identity gateway agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportIdentityGatewayAgentToFile(agentId, file) {\n const exportData = await frodo.agent.exportIdentityGatewayAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\n}\n\n/**\n * Export java agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportJavaAgentToFile(agentId, file) {\n const exportData = await frodo.agent.exportJavaAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\n}\n\n/**\n * Export web agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n */\nexport async function exportWebAgentToFile(agentId, file) {\n const exportData = await frodo.agent.exportWebAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\n}\n\n/**\n * Export all agents to separate files\n */\nexport async function exportAgentsToFiles() {\n const agents = await frodo.agent.getAgents();\n debugMessage(`exportAgentsToFiles: ${agents.length} agents`);\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = frodo.agent.createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n debugMessage(`exportAgentsToFiles: exporting ${agent._id} to ${fileName}`);\n saveJsonToFile(exportData, fileName);\n }\n debugMessage(`exportAgentsToFiles: done.`);\n}\n\n/**\n * Export all identity gateway agents to separate files\n */\nexport async function exportIdentityGatewayAgentsToFiles() {\n const agents = await frodo.agent.getIdentityGatewayAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = frodo.agent.createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, fileName);\n }\n}\n\n/**\n * Export all java agents to separate files\n */\nexport async function exportJavaAgentsToFiles() {\n const agents = await frodo.agent.getJavaAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = frodo.agent.createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, fileName);\n }\n}\n\n/**\n * Export all web agents to separate files\n */\nexport async function exportWebAgentsToFiles() {\n const agents = await frodo.agent.getWebAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = frodo.agent.createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, fileName);\n }\n}\n\n/**\n * Import an agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importAgentFromFile(agentId: string, file: string) {\n const verbose = state.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await frodo.agent.importAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\n }\n });\n}\n\n/**\n * Import first agent from file\n * @param {string} file import file name\n */\nexport async function importFirstAgentFromFile(file: string) {\n const verbose = state.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await frodo.agent.importAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n failSpinner(`${importError}`);\n }\n return;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\n }\n });\n}\n\n/**\n * Import agents from file\n * @param {String} file file name\n */\nexport async function importAgentsFromFile(file) {\n debugMessage(`importAgentsFromFile: start`);\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`importAgentsFromFile: importing ${file}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await frodo.agent.importAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`importAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all agents from separate files\n */\nexport async function importAgentsFromFiles() {\n const names = fs.readdirSync('.');\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importAgentsFromFile(file);\n }\n}\n\n/**\n * Import an identity gateway agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importIdentityGatewayAgentFromFile(\n agentId: string,\n file: string\n) {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await frodo.agent.importIdentityGatewayAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: end`);\n });\n}\n\n/**\n * Import first identity gateway agent from file\n * @param {string} file import file name\n */\nexport async function importFirstIdentityGatewayAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await frodo.agent.importIdentityGatewayAgent(\n agent['_id'],\n importData\n );\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n return;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\n }\n debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: end`);\n });\n}\n\n/**\n * Import identity gateway agents from file\n * @param {String} file file name\n */\nexport async function importIdentityGatewayAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: start`);\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(\n `cli.AgentOps.importIdentityGatewayAgentsFromFile: importing ${file}`\n );\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await frodo.agent.importIdentityGatewayAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all identity gateway agents from separate files\n */\nexport async function importIdentityGatewayAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFiles: start`);\n const names = fs.readdirSync('.');\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importIdentityGatewayAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFiles: end`);\n}\n\n/**\n * Import an java agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importJavaAgentFromFile(agentId: string, file: string) {\n debugMessage(`cli.AgentOps.importJavaAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await frodo.agent.importJavaAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\n }\n debugMessage(`cli.AgentOps.importJavaAgentFromFile: end`);\n });\n}\n\n/**\n * Import first java agent from file\n * @param {string} file import file name\n */\nexport async function importFirstJavaAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await frodo.agent.importJavaAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n return;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\n }\n debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: end`);\n });\n}\n\n/**\n * Import java agents from file\n * @param {String} file file name\n */\nexport async function importJavaAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: start`);\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: importing ${file}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await frodo.agent.importJavaAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all java agents from separate files\n */\nexport async function importJavaAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importJavaAgentsFromFiles: start`);\n const names = fs.readdirSync('.');\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importJavaAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importJavaAgentsFromFiles: end`);\n}\n\n/**\n * Import an web agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importWebAgentFromFile(agentId: string, file: string) {\n debugMessage(`cli.AgentOps.importWebAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n let importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n importData = importData.agents[agentId];\n } else if (importData.agents) {\n importData = null;\n }\n // if an agentId was specified, only import the matching agent\n if (importData && agentId === importData.agents._id) {\n if (!verbose) showSpinner(`Importing ${agentId}...`);\n try {\n if (verbose) showSpinner(`Importing ${agentId}...`);\n await frodo.agent.importWebAgent(agentId, importData);\n succeedSpinner(`Imported ${agentId}.`);\n } catch (importError) {\n failSpinner(`${importError}`);\n }\n } else {\n showSpinner(`Importing ${agentId}...`);\n failSpinner(`${agentId} not found!`);\n }\n debugMessage(`cli.AgentOps.importWebAgentFromFile: end`);\n });\n}\n\n/**\n * Import web gateway agent from file\n * @param {string} file import file name\n */\nexport async function importFirstWebAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose) showSpinner(`Importing ${agent['_id']}...`);\n try {\n if (verbose) showSpinner(`Importing ${agent['_id']}...`);\n await frodo.agent.importWebAgent(agent['_id'], importData);\n succeedSpinner(`Imported ${agent['_id']}.`);\n } catch (importError) {\n failSpinner(`caught it here ${importError}`);\n }\n break;\n }\n } else {\n showSpinner(`Importing...`);\n failSpinner(`No agents found!`);\n }\n debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: end`);\n });\n}\n\n/**\n * Import web agents from file\n * @param {String} file file name\n */\nexport async function importWebAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: start`);\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: importing ${file}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await frodo.agent.importWebAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all web agents from separate files\n */\nexport async function importWebAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importWebAgentsFromFiles: start`);\n const names = fs.readdirSync('.');\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importWebAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importWebAgentsFromFiles: end`);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"AgentOps.js","names":["frodo","state","fs","createProgressIndicator","createTable","debugMessage","printMessage","stopProgressIndicator","getRealmName","getTypedFilename","saveJsonToFile","titleCase","getFilePath","getWorkingDirectory","utils","createAgentExportTemplate","readAgents","readIdentityGatewayAgents","readJavaAgents","readWebAgents","exportAgents","exportIdentityGatewayAgents","exportJavaAgents","exportWebAgents","exportAgent","exportIdentityGatewayAgent","exportJavaAgent","exportWebAgent","importAgent","importIdentityGatewayAgent","importJavaAgent","importWebAgent","importAgents","importIdentityGatewayAgents","importJavaAgents","importWebAgents","agent","agentTypeToFileIdMap","IdentityGatewayAgent","J2EEAgent","WebAgent","listAgents","long","agents","table","status","_type","_id","push","name","toString","forEach","error","stack","listIdentityGatewayAgents","listJavaAgents","listWebAgents","exportAgentsToFile","file","includeMeta","exportData","fileName","getRealm","exportIdentityGatewayAgentsToFile","exportJavaAgentsToFile","exportWebAgentsToFile","exportAgentToFile","agentId","exportIdentityGatewayAgentToFile","exportJavaAgentToFile","exportWebAgentToFile","exportAgentsToFiles","length","filePath","exportIdentityGatewayAgentsToFiles","exportJavaAgentsToFiles","exportWebAgentsToFiles","importAgentFromFile","verbose","getVerbose","readFile","err","data","importData","JSON","parse","spinnerId","importError","importFirstAgentFromFile","Object","keys","values","importAgentsFromFile","message","response","importAgentsFromFiles","names","readdirSync","agentFiles","filter","toLowerCase","endsWith","importIdentityGatewayAgentFromFile","importFirstIdentityGatewayAgentFromFile","importIdentityGatewayAgentsFromFile","importIdentityGatewayAgentsFromFiles","importJavaAgentFromFile","importFirstJavaAgentFromFile","importJavaAgentsFromFile","importJavaAgentsFromFiles","importWebAgentFromFile","importFirstWebAgentFromFile","importWebAgentsFromFile","importWebAgentsFromFiles"],"sources":["../../src/ops/AgentOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { type AgentExportInterface } from '@rockcarver/frodo-lib/types/ops/AgentOps';\nimport fs from 'fs';\n\nimport {\n createProgressIndicator,\n createTable,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n} from '../utils/Console';\n\nconst {\n getRealmName,\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n getFilePath,\n getWorkingDirectory,\n} = frodo.utils;\nconst {\n createAgentExportTemplate,\n readAgents,\n readIdentityGatewayAgents,\n readJavaAgents,\n readWebAgents,\n exportAgents,\n exportIdentityGatewayAgents,\n exportJavaAgents,\n exportWebAgents,\n exportAgent,\n exportIdentityGatewayAgent,\n exportJavaAgent,\n exportWebAgent,\n importAgent,\n importIdentityGatewayAgent,\n importJavaAgent,\n importWebAgent,\n importAgents,\n importIdentityGatewayAgents,\n importJavaAgents,\n importWebAgents,\n} = frodo.agent;\n\nconst agentTypeToFileIdMap = {\n IdentityGatewayAgent: 'gateway.agent',\n J2EEAgent: 'java.agent',\n WebAgent: 'web.agent',\n};\n\n/**\n * List agents\n */\nexport async function listAgents(long = false) {\n try {\n const agents = await readAgents();\n if (long) {\n const table = createTable(['Agent Id', 'Status', 'Agent Type']);\n for (const agent of agents) {\n let status = 'Unknown';\n switch (agent._type._id) {\n case 'J2EEAgent':\n status = agent['globalJ2EEAgentConfig']['status'];\n break;\n case 'WebAgent':\n status = agent['globalWebAgentConfig']['status'];\n break;\n default:\n status = agent.status as string;\n break;\n }\n table.push([\n agent._id,\n status === 'Active' ? 'Active'['brightGreen'] : status['brightRed'],\n agent._type.name,\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List identity gateway agents\n */\nexport async function listIdentityGatewayAgents(long = false) {\n try {\n const agents = await readIdentityGatewayAgents();\n if (long) {\n const table = createTable(['Gateway Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent.status === 'Active'\n ? 'Active'['brightGreen']\n : agent.status['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing gateway agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List java agents\n */\nexport async function listJavaAgents(long = false) {\n try {\n const agents = await readJavaAgents();\n if (long) {\n const table = createTable(['Java Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent['globalJ2EEAgentConfig']['status'] === 'Active'\n ? 'Active'['brightGreen']\n : agent['globalJ2EEAgentConfig']['status']['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing java agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * List web agents\n */\nexport async function listWebAgents(long = false) {\n try {\n const agents = await readWebAgents();\n if (long) {\n const table = createTable(['Web Agent Id', 'Status']);\n for (const agent of agents) {\n table.push([\n agent._id,\n agent['globalWebAgentConfig']['status'] === 'Active'\n ? 'Active'['brightGreen']\n : agent['globalWebAgentConfig']['status']['brightRed'],\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n agents.forEach((agent) => {\n printMessage(`${agent._id}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing web agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * Export all agents to file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportAgentsToFile(file, includeMeta = true) {\n const exportData = await exportAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n 'agent'\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export all identity gateway agents to file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportIdentityGatewayAgentsToFile(\n file,\n includeMeta = true\n) {\n const exportData = await exportIdentityGatewayAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['IdentityGatewayAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export all java agents to file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportJavaAgentsToFile(file, includeMeta = true) {\n const exportData = await exportJavaAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['J2EEAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export all web agents to file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportWebAgentsToFile(file, includeMeta = true) {\n const exportData = await exportWebAgents();\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Agents`,\n agentTypeToFileIdMap['WebAgent']\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportAgentToFile(agentId, file, includeMeta = true) {\n const exportData = await exportAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export identity gateway agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportIdentityGatewayAgentToFile(\n agentId,\n file,\n includeMeta = true\n) {\n const exportData = await exportIdentityGatewayAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export java agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportJavaAgentToFile(agentId, file, includeMeta = true) {\n const exportData = await exportJavaAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export web agent to file\n * @param {string} agentId agent id\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportWebAgentToFile(agentId, file, includeMeta = true) {\n const exportData = await exportWebAgent(agentId);\n let fileName = getTypedFilename(\n agentId,\n agentTypeToFileIdMap[exportData.agents[agentId]._type._id]\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export all agents to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportAgentsToFiles(includeMeta = true) {\n const agents = await readAgents();\n debugMessage(`exportAgentsToFiles: ${agents.length} agents`);\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const filePath = getFilePath(fileName, true);\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n debugMessage(`exportAgentsToFiles: exporting ${agent._id} to ${filePath}`);\n saveJsonToFile(exportData, filePath, includeMeta);\n }\n debugMessage(`exportAgentsToFiles: done.`);\n}\n\n/**\n * Export all identity gateway agents to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportIdentityGatewayAgentsToFiles(includeMeta = true) {\n const agents = await readIdentityGatewayAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n }\n}\n\n/**\n * Export all java agents to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportJavaAgentsToFiles(includeMeta = true) {\n const agents = await readJavaAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n }\n}\n\n/**\n * Export all web agents to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportWebAgentsToFiles(includeMeta = true) {\n const agents = await readWebAgents();\n for (const agent of agents) {\n const fileName = getTypedFilename(\n agent._id,\n agentTypeToFileIdMap[agent._type._id]\n );\n const exportData = createAgentExportTemplate();\n exportData.agents[agent._id] = agent;\n saveJsonToFile(exportData, getFilePath(fileName, true), includeMeta);\n }\n}\n\n/**\n * Import an agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importAgentFromFile(agentId: string, file: string) {\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n } catch (importError) {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n });\n}\n\n/**\n * Import first agent from file\n * @param {string} file import file name\n */\nexport async function importFirstAgentFromFile(file: string) {\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n } catch (importError) {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n return;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n });\n}\n\n/**\n * Import agents from file\n * @param {String} file file name\n */\nexport async function importAgentsFromFile(file) {\n debugMessage(`importAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`importAgentsFromFile: importing ${filePath}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`importAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all agents from separate files\n */\nexport async function importAgentsFromFiles() {\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importAgentsFromFile(file);\n }\n}\n\n/**\n * Import an identity gateway agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importIdentityGatewayAgentFromFile(\n agentId: string,\n file: string\n) {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importIdentityGatewayAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: end`);\n });\n}\n\n/**\n * Import first identity gateway agent from file\n * @param {string} file import file name\n */\nexport async function importFirstIdentityGatewayAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importIdentityGatewayAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n return;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: end`);\n });\n}\n\n/**\n * Import identity gateway agents from file\n * @param {String} file file name\n */\nexport async function importIdentityGatewayAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(\n `cli.AgentOps.importIdentityGatewayAgentsFromFile: importing ${filePath}`\n );\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importIdentityGatewayAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all identity gateway agents from separate files\n */\nexport async function importIdentityGatewayAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importIdentityGatewayAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFiles: end`);\n}\n\n/**\n * Import an java agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importJavaAgentFromFile(agentId: string, file: string) {\n debugMessage(`cli.AgentOps.importJavaAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importJavaAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importJavaAgentFromFile: end`);\n });\n}\n\n/**\n * Import first java agent from file\n * @param {string} file import file name\n */\nexport async function importFirstJavaAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importJavaAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n return;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: end`);\n });\n}\n\n/**\n * Import java agents from file\n * @param {String} file file name\n */\nexport async function importJavaAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(\n `cli.AgentOps.importJavaAgentsFromFile: importing ${filePath}`\n );\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importJavaAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all java agents from separate files\n */\nexport async function importJavaAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importJavaAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importJavaAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importJavaAgentsFromFiles: end`);\n}\n\n/**\n * Import an web agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n */\nexport async function importWebAgentFromFile(agentId: string, file: string) {\n debugMessage(`cli.AgentOps.importWebAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n // check if this is a file with multiple agents and get agent by id\n if (importData.agents && importData.agents[agentId]) {\n const agent = importData.agents[agentId];\n importData.agents = {};\n importData.agents[agentId] = agent;\n } else if (importData.agents) {\n importData.agents = null;\n }\n // if an agentId was specified, only import the matching agent\n let spinnerId: string;\n if (importData.agents) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n await importWebAgent(agentId, importData);\n stopProgressIndicator(spinnerId, `Imported ${agentId}.`, 'success');\n } catch (importError) {\n stopProgressIndicator(spinnerId, `${importError}`, 'fail');\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importWebAgentFromFile: end`);\n });\n}\n\n/**\n * Import web gateway agent from file\n * @param {string} file import file name\n */\nexport async function importFirstWebAgentFromFile(file: string) {\n debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: start`);\n const verbose = state.getVerbose();\n fs.readFile(getFilePath(file), 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n let spinnerId: string;\n if (Object.keys(importData.agents).length > 0) {\n for (const agent of Object.values(importData.agents)) {\n if (!verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n try {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n await importWebAgent(agent['_id'], importData);\n stopProgressIndicator(\n spinnerId,\n `Imported ${agent['_id']}.`,\n 'success'\n );\n } catch (importError) {\n stopProgressIndicator(\n spinnerId,\n `caught it here ${importError}`,\n 'fail'\n );\n }\n break;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: end`);\n });\n}\n\n/**\n * Import web agents from file\n * @param {String} file file name\n */\nexport async function importWebAgentsFromFile(file) {\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: start`);\n const filePath = getFilePath(file);\n fs.readFile(filePath, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: importing ${filePath}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n try {\n await importWebAgents(importData);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: end`);\n });\n}\n\n/**\n * Import all web agents from separate files\n */\nexport async function importWebAgentsFromFiles() {\n debugMessage(`cli.AgentOps.importWebAgentsFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.agent.json')\n );\n for (const file of agentFiles) {\n await importWebAgentsFromFile(file);\n }\n debugMessage(`cli.AgentOps.importWebAgentsFromFiles: end`);\n}\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAEpD,OAAOC,EAAE,MAAM,IAAI;AAEnB,SACEC,uBAAuB,EACvBC,WAAW,EACXC,YAAY,EACZC,YAAY,EACZC,qBAAqB,QAChB,kBAAkB;AAEzB,MAAM;EACJC,YAAY;EACZC,gBAAgB;EAChBC,cAAc;EACdC,SAAS;EACTC,WAAW;EACXC;AACF,CAAC,GAAGb,KAAK,CAACc,KAAK;AACf,MAAM;EACJC,yBAAyB;EACzBC,UAAU;EACVC,yBAAyB;EACzBC,cAAc;EACdC,aAAa;EACbC,YAAY;EACZC,2BAA2B;EAC3BC,gBAAgB;EAChBC,eAAe;EACfC,WAAW;EACXC,0BAA0B;EAC1BC,eAAe;EACfC,cAAc;EACdC,WAAW;EACXC,0BAA0B;EAC1BC,eAAe;EACfC,cAAc;EACdC,YAAY;EACZC,2BAA2B;EAC3BC,gBAAgB;EAChBC;AACF,CAAC,GAAGnC,KAAK,CAACoC,KAAK;AAEf,MAAMC,oBAAoB,GAAG;EAC3BC,oBAAoB,EAAE,eAAe;EACrCC,SAAS,EAAE,YAAY;EACvBC,QAAQ,EAAE;AACZ,CAAC;;AAED;AACA;AACA;AACA,OAAO,eAAeC,UAAUA,CAACC,IAAI,GAAG,KAAK,EAAE;EAC7C,IAAI;IACF,MAAMC,MAAM,GAAG,MAAM3B,UAAU,CAAC,CAAC;IACjC,IAAI0B,IAAI,EAAE;MACR,MAAME,KAAK,GAAGxC,WAAW,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;MAC/D,KAAK,MAAMgC,KAAK,IAAIO,MAAM,EAAE;QAC1B,IAAIE,MAAM,GAAG,SAAS;QACtB,QAAQT,KAAK,CAACU,KAAK,CAACC,GAAG;UACrB,KAAK,WAAW;YACdF,MAAM,GAAGT,KAAK,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC;YACjD;UACF,KAAK,UAAU;YACbS,MAAM,GAAGT,KAAK,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC;YAChD;UACF;YACES,MAAM,GAAGT,KAAK,CAACS,MAAgB;YAC/B;QACJ;QACAD,KAAK,CAACI,IAAI,CAAC,CACTZ,KAAK,CAACW,GAAG,EACTF,MAAM,KAAK,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAGA,MAAM,CAAC,WAAW,CAAC,EACnET,KAAK,CAACU,KAAK,CAACG,IAAI,CACjB,CAAC;MACJ;MACA3C,YAAY,CAACsC,KAAK,CAACM,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACxC,CAAC,MAAM;MACLP,MAAM,CAACQ,OAAO,CAAEf,KAAK,IAAK;QACxB9B,YAAY,CAAE,GAAE8B,KAAK,CAACW,GAAI,EAAC,EAAE,MAAM,CAAC;MACtC,CAAC,CAAC;IACJ;EACF,CAAC,CAAC,OAAOK,KAAK,EAAE;IACd9C,YAAY,CAAE,0BAAyB8C,KAAM,EAAC,EAAE,OAAO,CAAC;IACxD9C,YAAY,CAAC8C,KAAK,CAACC,KAAK,EAAE,OAAO,CAAC;EACpC;AACF;;AAEA;AACA;AACA;AACA,OAAO,eAAeC,yBAAyBA,CAACZ,IAAI,GAAG,KAAK,EAAE;EAC5D,IAAI;IACF,MAAMC,MAAM,GAAG,MAAM1B,yBAAyB,CAAC,CAAC;IAChD,IAAIyB,IAAI,EAAE;MACR,MAAME,KAAK,GAAGxC,WAAW,CAAC,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;MACzD,KAAK,MAAMgC,KAAK,IAAIO,MAAM,EAAE;QAC1BC,KAAK,CAACI,IAAI,CAAC,CACTZ,KAAK,CAACW,GAAG,EACTX,KAAK,CAACS,MAAM,KAAK,QAAQ,GACrB,QAAQ,CAAC,aAAa,CAAC,GACvBT,KAAK,CAACS,MAAM,CAAC,WAAW,CAAC,CAC9B,CAAC;MACJ;MACAvC,YAAY,CAACsC,KAAK,CAACM,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACxC,CAAC,MAAM;MACLP,MAAM,CAACQ,OAAO,CAAEf,KAAK,IAAK;QACxB9B,YAAY,CAAE,GAAE8B,KAAK,CAACW,GAAI,EAAC,EAAE,MAAM,CAAC;MACtC,CAAC,CAAC;IACJ;EACF,CAAC,CAAC,OAAOK,KAAK,EAAE;IACd9C,YAAY,CAAE,kCAAiC8C,KAAM,EAAC,EAAE,OAAO,CAAC;IAChE9C,YAAY,CAAC8C,KAAK,CAACC,KAAK,EAAE,OAAO,CAAC;EACpC;AACF;;AAEA;AACA;AACA;AACA,OAAO,eAAeE,cAAcA,CAACb,IAAI,GAAG,KAAK,EAAE;EACjD,IAAI;IACF,MAAMC,MAAM,GAAG,MAAMzB,cAAc,CAAC,CAAC;IACrC,IAAIwB,IAAI,EAAE;MACR,MAAME,KAAK,GAAGxC,WAAW,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;MACtD,KAAK,MAAMgC,KAAK,IAAIO,MAAM,EAAE;QAC1BC,KAAK,CAACI,IAAI,CAAC,CACTZ,KAAK,CAACW,GAAG,EACTX,KAAK,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,KAAK,QAAQ,GACjD,QAAQ,CAAC,aAAa,CAAC,GACvBA,KAAK,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAC1D,CAAC;MACJ;MACA9B,YAAY,CAACsC,KAAK,CAACM,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACxC,CAAC,MAAM;MACLP,MAAM,CAACQ,OAAO,CAAEf,KAAK,IAAK;QACxB9B,YAAY,CAAE,GAAE8B,KAAK,CAACW,GAAI,EAAC,EAAE,MAAM,CAAC;MACtC,CAAC,CAAC;IACJ;EACF,CAAC,CAAC,OAAOK,KAAK,EAAE;IACd9C,YAAY,CAAE,+BAA8B8C,KAAM,EAAC,EAAE,OAAO,CAAC;IAC7D9C,YAAY,CAAC8C,KAAK,CAACC,KAAK,EAAE,OAAO,CAAC;EACpC;AACF;;AAEA;AACA;AACA;AACA,OAAO,eAAeG,aAAaA,CAACd,IAAI,GAAG,KAAK,EAAE;EAChD,IAAI;IACF,MAAMC,MAAM,GAAG,MAAMxB,aAAa,CAAC,CAAC;IACpC,IAAIuB,IAAI,EAAE;MACR,MAAME,KAAK,GAAGxC,WAAW,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;MACrD,KAAK,MAAMgC,KAAK,IAAIO,MAAM,EAAE;QAC1BC,KAAK,CAACI,IAAI,CAAC,CACTZ,KAAK,CAACW,GAAG,EACTX,KAAK,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,KAAK,QAAQ,GAChD,QAAQ,CAAC,aAAa,CAAC,GACvBA,KAAK,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CACzD,CAAC;MACJ;MACA9B,YAAY,CAACsC,KAAK,CAACM,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACxC,CAAC,MAAM;MACLP,MAAM,CAACQ,OAAO,CAAEf,KAAK,IAAK;QACxB9B,YAAY,CAAE,GAAE8B,KAAK,CAACW,GAAI,EAAC,EAAE,MAAM,CAAC;MACtC,CAAC,CAAC;IACJ;EACF,CAAC,CAAC,OAAOK,KAAK,EAAE;IACd9C,YAAY,CAAE,8BAA6B8C,KAAM,EAAC,EAAE,OAAO,CAAC;IAC5D9C,YAAY,CAAC8C,KAAK,CAACC,KAAK,EAAE,OAAO,CAAC;EACpC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeI,kBAAkBA,CAACC,IAAI,EAAEC,WAAW,GAAG,IAAI,EAAE;EACjE,MAAMC,UAAU,GAAG,MAAMxC,YAAY,CAAC,CAAC;EACvC,IAAIyC,QAAQ,GAAGpD,gBAAgB,CAC5B,MAAKE,SAAS,CAACH,YAAY,CAACP,KAAK,CAAC6D,QAAQ,CAAC,CAAC,CAAC,CAAE,QAAO,EACvD,OACF,CAAC;EACD,IAAIJ,IAAI,EAAE;IACRG,QAAQ,GAAGH,IAAI;EACjB;EACAhD,cAAc,CAACkD,UAAU,EAAEhD,WAAW,CAACiD,QAAQ,EAAE,IAAI,CAAC,EAAEF,WAAW,CAAC;AACtE;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeI,iCAAiCA,CACrDL,IAAI,EACJC,WAAW,GAAG,IAAI,EAClB;EACA,MAAMC,UAAU,GAAG,MAAMvC,2BAA2B,CAAC,CAAC;EACtD,IAAIwC,QAAQ,GAAGpD,gBAAgB,CAC5B,MAAKE,SAAS,CAACH,YAAY,CAACP,KAAK,CAAC6D,QAAQ,CAAC,CAAC,CAAC,CAAE,QAAO,EACvDzB,oBAAoB,CAAC,sBAAsB,CAC7C,CAAC;EACD,IAAIqB,IAAI,EAAE;IACRG,QAAQ,GAAGH,IAAI;EACjB;EACAhD,cAAc,CAACkD,UAAU,EAAEhD,WAAW,CAACiD,QAAQ,EAAE,IAAI,CAAC,EAAEF,WAAW,CAAC;AACtE;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeK,sBAAsBA,CAACN,IAAI,EAAEC,WAAW,GAAG,IAAI,EAAE;EACrE,MAAMC,UAAU,GAAG,MAAMtC,gBAAgB,CAAC,CAAC;EAC3C,IAAIuC,QAAQ,GAAGpD,gBAAgB,CAC5B,MAAKE,SAAS,CAACH,YAAY,CAACP,KAAK,CAAC6D,QAAQ,CAAC,CAAC,CAAC,CAAE,QAAO,EACvDzB,oBAAoB,CAAC,WAAW,CAClC,CAAC;EACD,IAAIqB,IAAI,EAAE;IACRG,QAAQ,GAAGH,IAAI;EACjB;EACAhD,cAAc,CAACkD,UAAU,EAAEhD,WAAW,CAACiD,QAAQ,EAAE,IAAI,CAAC,EAAEF,WAAW,CAAC;AACtE;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeM,qBAAqBA,CAACP,IAAI,EAAEC,WAAW,GAAG,IAAI,EAAE;EACpE,MAAMC,UAAU,GAAG,MAAMrC,eAAe,CAAC,CAAC;EAC1C,IAAIsC,QAAQ,GAAGpD,gBAAgB,CAC5B,MAAKE,SAAS,CAACH,YAAY,CAACP,KAAK,CAAC6D,QAAQ,CAAC,CAAC,CAAC,CAAE,QAAO,EACvDzB,oBAAoB,CAAC,UAAU,CACjC,CAAC;EACD,IAAIqB,IAAI,EAAE;IACRG,QAAQ,GAAGH,IAAI;EACjB;EACAhD,cAAc,CAACkD,UAAU,EAAEhD,WAAW,CAACiD,QAAQ,EAAE,IAAI,CAAC,EAAEF,WAAW,CAAC;AACtE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeO,iBAAiBA,CAACC,OAAO,EAAET,IAAI,EAAEC,WAAW,GAAG,IAAI,EAAE;EACzE,MAAMC,UAAU,GAAG,MAAMpC,WAAW,CAAC2C,OAAO,CAAC;EAC7C,IAAIN,QAAQ,GAAGpD,gBAAgB,CAC7B0D,OAAO,EACP9B,oBAAoB,CAACuB,UAAU,CAACjB,MAAM,CAACwB,OAAO,CAAC,CAACrB,KAAK,CAACC,GAAG,CAC3D,CAAC;EACD,IAAIW,IAAI,EAAE;IACRG,QAAQ,GAAGH,IAAI;EACjB;EACAhD,cAAc,CAACkD,UAAU,EAAEhD,WAAW,CAACiD,QAAQ,EAAE,IAAI,CAAC,EAAEF,WAAW,CAAC;AACtE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeS,gCAAgCA,CACpDD,OAAO,EACPT,IAAI,EACJC,WAAW,GAAG,IAAI,EAClB;EACA,MAAMC,UAAU,GAAG,MAAMnC,0BAA0B,CAAC0C,OAAO,CAAC;EAC5D,IAAIN,QAAQ,GAAGpD,gBAAgB,CAC7B0D,OAAO,EACP9B,oBAAoB,CAACuB,UAAU,CAACjB,MAAM,CAACwB,OAAO,CAAC,CAACrB,KAAK,CAACC,GAAG,CAC3D,CAAC;EACD,IAAIW,IAAI,EAAE;IACRG,QAAQ,GAAGH,IAAI;EACjB;EACAhD,cAAc,CAACkD,UAAU,EAAEhD,WAAW,CAACiD,QAAQ,EAAE,IAAI,CAAC,EAAEF,WAAW,CAAC;AACtE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeU,qBAAqBA,CAACF,OAAO,EAAET,IAAI,EAAEC,WAAW,GAAG,IAAI,EAAE;EAC7E,MAAMC,UAAU,GAAG,MAAMlC,eAAe,CAACyC,OAAO,CAAC;EACjD,IAAIN,QAAQ,GAAGpD,gBAAgB,CAC7B0D,OAAO,EACP9B,oBAAoB,CAACuB,UAAU,CAACjB,MAAM,CAACwB,OAAO,CAAC,CAACrB,KAAK,CAACC,GAAG,CAC3D,CAAC;EACD,IAAIW,IAAI,EAAE;IACRG,QAAQ,GAAGH,IAAI;EACjB;EACAhD,cAAc,CAACkD,UAAU,EAAEhD,WAAW,CAACiD,QAAQ,EAAE,IAAI,CAAC,EAAEF,WAAW,CAAC;AACtE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeW,oBAAoBA,CAACH,OAAO,EAAET,IAAI,EAAEC,WAAW,GAAG,IAAI,EAAE;EAC5E,MAAMC,UAAU,GAAG,MAAMjC,cAAc,CAACwC,OAAO,CAAC;EAChD,IAAIN,QAAQ,GAAGpD,gBAAgB,CAC7B0D,OAAO,EACP9B,oBAAoB,CAACuB,UAAU,CAACjB,MAAM,CAACwB,OAAO,CAAC,CAACrB,KAAK,CAACC,GAAG,CAC3D,CAAC;EACD,IAAIW,IAAI,EAAE;IACRG,QAAQ,GAAGH,IAAI;EACjB;EACAhD,cAAc,CAACkD,UAAU,EAAEhD,WAAW,CAACiD,QAAQ,EAAE,IAAI,CAAC,EAAEF,WAAW,CAAC;AACtE;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAeY,mBAAmBA,CAACZ,WAAW,GAAG,IAAI,EAAE;EAC5D,MAAMhB,MAAM,GAAG,MAAM3B,UAAU,CAAC,CAAC;EACjCX,YAAY,CAAE,wBAAuBsC,MAAM,CAAC6B,MAAO,SAAQ,CAAC;EAC5D,KAAK,MAAMpC,KAAK,IAAIO,MAAM,EAAE;IAC1B,MAAMkB,QAAQ,GAAGpD,gBAAgB,CAC/B2B,KAAK,CAACW,GAAG,EACTV,oBAAoB,CAACD,KAAK,CAACU,KAAK,CAACC,GAAG,CACtC,CAAC;IACD,MAAM0B,QAAQ,GAAG7D,WAAW,CAACiD,QAAQ,EAAE,IAAI,CAAC;IAC5C,MAAMD,UAAU,GAAG7C,yBAAyB,CAAC,CAAC;IAC9C6C,UAAU,CAACjB,MAAM,CAACP,KAAK,CAACW,GAAG,CAAC,GAAGX,KAAK;IACpC/B,YAAY,CAAE,kCAAiC+B,KAAK,CAACW,GAAI,OAAM0B,QAAS,EAAC,CAAC;IAC1E/D,cAAc,CAACkD,UAAU,EAAEa,QAAQ,EAAEd,WAAW,CAAC;EACnD;EACAtD,YAAY,CAAE,4BAA2B,CAAC;AAC5C;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAeqE,kCAAkCA,CAACf,WAAW,GAAG,IAAI,EAAE;EAC3E,MAAMhB,MAAM,GAAG,MAAM1B,yBAAyB,CAAC,CAAC;EAChD,KAAK,MAAMmB,KAAK,IAAIO,MAAM,EAAE;IAC1B,MAAMkB,QAAQ,GAAGpD,gBAAgB,CAC/B2B,KAAK,CAACW,GAAG,EACTV,oBAAoB,CAACD,KAAK,CAACU,KAAK,CAACC,GAAG,CACtC,CAAC;IACD,MAAMa,UAAU,GAAG7C,yBAAyB,CAAC,CAAC;IAC9C6C,UAAU,CAACjB,MAAM,CAACP,KAAK,CAACW,GAAG,CAAC,GAAGX,KAAK;IACpC1B,cAAc,CAACkD,UAAU,EAAEhD,WAAW,CAACiD,QAAQ,EAAE,IAAI,CAAC,EAAEF,WAAW,CAAC;EACtE;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAegB,uBAAuBA,CAAChB,WAAW,GAAG,IAAI,EAAE;EAChE,MAAMhB,MAAM,GAAG,MAAMzB,cAAc,CAAC,CAAC;EACrC,KAAK,MAAMkB,KAAK,IAAIO,MAAM,EAAE;IAC1B,MAAMkB,QAAQ,GAAGpD,gBAAgB,CAC/B2B,KAAK,CAACW,GAAG,EACTV,oBAAoB,CAACD,KAAK,CAACU,KAAK,CAACC,GAAG,CACtC,CAAC;IACD,MAAMa,UAAU,GAAG7C,yBAAyB,CAAC,CAAC;IAC9C6C,UAAU,CAACjB,MAAM,CAACP,KAAK,CAACW,GAAG,CAAC,GAAGX,KAAK;IACpC1B,cAAc,CAACkD,UAAU,EAAEhD,WAAW,CAACiD,QAAQ,EAAE,IAAI,CAAC,EAAEF,WAAW,CAAC;EACtE;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAeiB,sBAAsBA,CAACjB,WAAW,GAAG,IAAI,EAAE;EAC/D,MAAMhB,MAAM,GAAG,MAAMxB,aAAa,CAAC,CAAC;EACpC,KAAK,MAAMiB,KAAK,IAAIO,MAAM,EAAE;IAC1B,MAAMkB,QAAQ,GAAGpD,gBAAgB,CAC/B2B,KAAK,CAACW,GAAG,EACTV,oBAAoB,CAACD,KAAK,CAACU,KAAK,CAACC,GAAG,CACtC,CAAC;IACD,MAAMa,UAAU,GAAG7C,yBAAyB,CAAC,CAAC;IAC9C6C,UAAU,CAACjB,MAAM,CAACP,KAAK,CAACW,GAAG,CAAC,GAAGX,KAAK;IACpC1B,cAAc,CAACkD,UAAU,EAAEhD,WAAW,CAACiD,QAAQ,EAAE,IAAI,CAAC,EAAEF,WAAW,CAAC;EACtE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAekB,mBAAmBA,CAACV,OAAe,EAAET,IAAY,EAAE;EACvE,MAAMoB,OAAO,GAAG7E,KAAK,CAAC8E,UAAU,CAAC,CAAC;EAClC7E,EAAE,CAAC8E,QAAQ,CAACpE,WAAW,CAAC8C,IAAI,CAAC,EAAE,MAAM,EAAE,OAAOuB,GAAG,EAAEC,IAAI,KAAK;IAC1D,IAAID,GAAG,EAAE,MAAMA,GAAG;IAClB,MAAME,UAAU,GAAGC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAC;IACnC;IACA,IAAIC,UAAU,CAACxC,MAAM,IAAIwC,UAAU,CAACxC,MAAM,CAACwB,OAAO,CAAC,EAAE;MACnD,MAAM/B,KAAK,GAAG+C,UAAU,CAACxC,MAAM,CAACwB,OAAO,CAAC;MACxCgB,UAAU,CAACxC,MAAM,GAAG,CAAC,CAAC;MACtBwC,UAAU,CAACxC,MAAM,CAACwB,OAAO,CAAC,GAAG/B,KAAK;IACpC,CAAC,MAAM,IAAI+C,UAAU,CAACxC,MAAM,EAAE;MAC5BwC,UAAU,CAACxC,MAAM,GAAG,IAAI;IAC1B;IACA;IACA,IAAI2C,SAAiB;IACrB,IAAIH,UAAU,CAACxC,MAAM,EAAE;MACrB,IAAI,CAACmC,OAAO,EACVQ,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYgE,OAAQ,KACvB,CAAC;MACH,IAAI;QACF,IAAIW,OAAO,EACTQ,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYgE,OAAQ,KACvB,CAAC;QACH,MAAMvC,WAAW,CAACuC,OAAO,EAAEgB,UAAU,CAAC;QACtC5E,qBAAqB,CAAC+E,SAAS,EAAG,YAAWnB,OAAQ,GAAE,EAAE,SAAS,CAAC;MACrE,CAAC,CAAC,OAAOoB,WAAW,EAAE;QACpB,IAAIT,OAAO,EACTQ,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYgE,OAAQ,KACvB,CAAC;QACH5D,qBAAqB,CAAC+E,SAAS,EAAG,GAAEC,WAAY,EAAC,EAAE,MAAM,CAAC;MAC5D;IACF,CAAC,MAAM;MACLD,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYgE,OAAQ,KACvB,CAAC;MACD5D,qBAAqB,CAAC+E,SAAS,EAAG,GAAEnB,OAAQ,aAAY,EAAE,MAAM,CAAC;IACnE;EACF,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAeqB,wBAAwBA,CAAC9B,IAAY,EAAE;EAC3D,MAAMoB,OAAO,GAAG7E,KAAK,CAAC8E,UAAU,CAAC,CAAC;EAClC7E,EAAE,CAAC8E,QAAQ,CAACpE,WAAW,CAAC8C,IAAI,CAAC,EAAE,MAAM,EAAE,OAAOuB,GAAG,EAAEC,IAAI,KAAK;IAC1D,IAAID,GAAG,EAAE,MAAMA,GAAG;IAClB,MAAME,UAAU,GAAGC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAC;IACnC,IAAII,SAAiB;IACrB,IAAIG,MAAM,CAACC,IAAI,CAACP,UAAU,CAACxC,MAAM,CAAC,CAAC6B,MAAM,GAAG,CAAC,EAAE;MAC7C,KAAK,MAAMpC,KAAK,IAAIqD,MAAM,CAACE,MAAM,CAACR,UAAU,CAACxC,MAAM,CAAC,EAAE;QACpD,IAAI,CAACmC,OAAO,EACVQ,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYiC,KAAK,CAAC,KAAK,CAAE,KAC5B,CAAC;QACH,IAAI;UACF,IAAI0C,OAAO,EACTQ,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYiC,KAAK,CAAC,KAAK,CAAE,KAC5B,CAAC;UACH,MAAMR,WAAW,CAACQ,KAAK,CAAC,KAAK,CAAC,EAAE+C,UAAU,CAAC;UAC3C5E,qBAAqB,CACnB+E,SAAS,EACR,YAAWlD,KAAK,CAAC,KAAK,CAAE,GAAE,EAC3B,SACF,CAAC;QACH,CAAC,CAAC,OAAOmD,WAAW,EAAE;UACpB,IAAIT,OAAO,EACTQ,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYiC,KAAK,CAAC,KAAK,CAAE,KAC5B,CAAC;UACH7B,qBAAqB,CAAC+E,SAAS,EAAG,GAAEC,WAAY,EAAC,EAAE,MAAM,CAAC;QAC5D;QACA;MACF;IACF,CAAC,MAAM;MACLD,SAAS,GAAGnF,uBAAuB,CAAC,eAAe,EAAE,CAAC,EAAG,cAAa,CAAC;MACvEI,qBAAqB,CAAC+E,SAAS,EAAG,kBAAiB,EAAE,MAAM,CAAC;IAC9D;EACF,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAeM,oBAAoBA,CAAClC,IAAI,EAAE;EAC/CrD,YAAY,CAAE,6BAA4B,CAAC;EAC3C,MAAMoE,QAAQ,GAAG7D,WAAW,CAAC8C,IAAI,CAAC;EAClCxD,EAAE,CAAC8E,QAAQ,CAACP,QAAQ,EAAE,MAAM,EAAE,OAAOQ,GAAG,EAAEC,IAAI,KAAK;IACjD,IAAID,GAAG,EAAE,MAAMA,GAAG;IAClB5E,YAAY,CAAE,mCAAkCoE,QAAS,EAAC,CAAC;IAC3D,MAAMU,UAAU,GAAGC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAyB;IAC3D,IAAI;MACF,MAAMlD,YAAY,CAACmD,UAAU,CAAC;IAChC,CAAC,CAAC,OAAO/B,KAAK,EAAE;MACd9C,YAAY,CAAE,GAAE8C,KAAK,CAACyC,OAAQ,EAAC,EAAE,OAAO,CAAC;MACzCvF,YAAY,CAAC8C,KAAK,CAAC0C,QAAQ,CAACjD,MAAM,EAAE,OAAO,CAAC;IAC9C;IACAxC,YAAY,CAAE,2BAA0B,CAAC;EAC3C,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA,OAAO,eAAe0F,qBAAqBA,CAAA,EAAG;EAC5C,MAAMC,KAAK,GAAG9F,EAAE,CAAC+F,WAAW,CAACpF,mBAAmB,CAAC,CAAC,CAAC;EACnD,MAAMqF,UAAU,GAAGF,KAAK,CAACG,MAAM,CAAElD,IAAI,IACnCA,IAAI,CAACmD,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC,aAAa,CAC3C,CAAC;EACD,KAAK,MAAM3C,IAAI,IAAIwC,UAAU,EAAE;IAC7B,MAAMN,oBAAoB,CAAClC,IAAI,CAAC;EAClC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAe4C,kCAAkCA,CACtDnC,OAAe,EACfT,IAAY,EACZ;EACArD,YAAY,CAAE,wDAAuD,CAAC;EACtE,MAAMyE,OAAO,GAAG7E,KAAK,CAAC8E,UAAU,CAAC,CAAC;EAClC7E,EAAE,CAAC8E,QAAQ,CAACpE,WAAW,CAAC8C,IAAI,CAAC,EAAE,MAAM,EAAE,OAAOuB,GAAG,EAAEC,IAAI,KAAK;IAC1D,IAAID,GAAG,EAAE,MAAMA,GAAG;IAClB,MAAME,UAAU,GAAGC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAC;IACnC;IACA,IAAIC,UAAU,CAACxC,MAAM,IAAIwC,UAAU,CAACxC,MAAM,CAACwB,OAAO,CAAC,EAAE;MACnD,MAAM/B,KAAK,GAAG+C,UAAU,CAACxC,MAAM,CAACwB,OAAO,CAAC;MACxCgB,UAAU,CAACxC,MAAM,GAAG,CAAC,CAAC;MACtBwC,UAAU,CAACxC,MAAM,CAACwB,OAAO,CAAC,GAAG/B,KAAK;IACpC,CAAC,MAAM,IAAI+C,UAAU,CAACxC,MAAM,EAAE;MAC5BwC,UAAU,CAACxC,MAAM,GAAG,IAAI;IAC1B;IACA;IACA,IAAI2C,SAAiB;IACrB,IAAIH,UAAU,CAACxC,MAAM,EAAE;MACrB,IAAI,CAACmC,OAAO,EACVQ,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYgE,OAAQ,KACvB,CAAC;MACH,IAAI;QACF,IAAIW,OAAO,EACTQ,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYgE,OAAQ,KACvB,CAAC;QACH,MAAMtC,0BAA0B,CAACsC,OAAO,EAAEgB,UAAU,CAAC;QACrD5E,qBAAqB,CAAC+E,SAAS,EAAG,YAAWnB,OAAQ,GAAE,EAAE,SAAS,CAAC;MACrE,CAAC,CAAC,OAAOoB,WAAW,EAAE;QACpBhF,qBAAqB,CAAC+E,SAAS,EAAG,GAAEC,WAAY,EAAC,EAAE,MAAM,CAAC;MAC5D;IACF,CAAC,MAAM;MACLD,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYgE,OAAQ,KACvB,CAAC;MACD5D,qBAAqB,CAAC+E,SAAS,EAAG,GAAEnB,OAAQ,aAAY,EAAE,MAAM,CAAC;IACnE;IACA9D,YAAY,CAAE,sDAAqD,CAAC;EACtE,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAekG,uCAAuCA,CAAC7C,IAAY,EAAE;EAC1ErD,YAAY,CAAE,6DAA4D,CAAC;EAC3E,MAAMyE,OAAO,GAAG7E,KAAK,CAAC8E,UAAU,CAAC,CAAC;EAClC7E,EAAE,CAAC8E,QAAQ,CAACpE,WAAW,CAAC8C,IAAI,CAAC,EAAE,MAAM,EAAE,OAAOuB,GAAG,EAAEC,IAAI,KAAK;IAC1D,IAAID,GAAG,EAAE,MAAMA,GAAG;IAClB,MAAME,UAAU,GAAGC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAC;IACnC,IAAII,SAAiB;IACrB,IAAIG,MAAM,CAACC,IAAI,CAACP,UAAU,CAACxC,MAAM,CAAC,CAAC6B,MAAM,GAAG,CAAC,EAAE;MAC7C,KAAK,MAAMpC,KAAK,IAAIqD,MAAM,CAACE,MAAM,CAACR,UAAU,CAACxC,MAAM,CAAC,EAAE;QACpD,IAAI,CAACmC,OAAO,EACVQ,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYiC,KAAK,CAAC,KAAK,CAAE,KAC5B,CAAC;QACH,IAAI;UACF,IAAI0C,OAAO,EACTQ,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYiC,KAAK,CAAC,KAAK,CAAE,KAC5B,CAAC;UACH,MAAMP,0BAA0B,CAACO,KAAK,CAAC,KAAK,CAAC,EAAE+C,UAAU,CAAC;UAC1D5E,qBAAqB,CACnB+E,SAAS,EACR,YAAWlD,KAAK,CAAC,KAAK,CAAE,GAAE,EAC3B,SACF,CAAC;QACH,CAAC,CAAC,OAAOmD,WAAW,EAAE;UACpBhF,qBAAqB,CAAC+E,SAAS,EAAG,GAAEC,WAAY,EAAC,EAAE,MAAM,CAAC;QAC5D;QACA;MACF;IACF,CAAC,MAAM;MACLD,SAAS,GAAGnF,uBAAuB,CAAC,eAAe,EAAE,CAAC,EAAG,cAAa,CAAC;MACvEI,qBAAqB,CAAC+E,SAAS,EAAG,kBAAiB,EAAE,MAAM,CAAC;IAC9D;IACAjF,YAAY,CAAE,2DAA0D,CAAC;EAC3E,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAemG,mCAAmCA,CAAC9C,IAAI,EAAE;EAC9DrD,YAAY,CAAE,yDAAwD,CAAC;EACvE,MAAMoE,QAAQ,GAAG7D,WAAW,CAAC8C,IAAI,CAAC;EAClCxD,EAAE,CAAC8E,QAAQ,CAACP,QAAQ,EAAE,MAAM,EAAE,OAAOQ,GAAG,EAAEC,IAAI,KAAK;IACjD,IAAID,GAAG,EAAE,MAAMA,GAAG;IAClB5E,YAAY,CACT,+DAA8DoE,QAAS,EAC1E,CAAC;IACD,MAAMU,UAAU,GAAGC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAyB;IAC3D,IAAI;MACF,MAAMjD,2BAA2B,CAACkD,UAAU,CAAC;IAC/C,CAAC,CAAC,OAAO/B,KAAK,EAAE;MACd9C,YAAY,CAAE,GAAE8C,KAAK,CAACyC,OAAQ,EAAC,EAAE,OAAO,CAAC;MACzCvF,YAAY,CAAC8C,KAAK,CAAC0C,QAAQ,CAACjD,MAAM,EAAE,OAAO,CAAC;IAC9C;IACAxC,YAAY,CAAE,uDAAsD,CAAC;EACvE,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA,OAAO,eAAeoG,oCAAoCA,CAAA,EAAG;EAC3DpG,YAAY,CAAE,0DAAyD,CAAC;EACxE,MAAM2F,KAAK,GAAG9F,EAAE,CAAC+F,WAAW,CAACpF,mBAAmB,CAAC,CAAC,CAAC;EACnD,MAAMqF,UAAU,GAAGF,KAAK,CAACG,MAAM,CAAElD,IAAI,IACnCA,IAAI,CAACmD,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC,aAAa,CAC3C,CAAC;EACD,KAAK,MAAM3C,IAAI,IAAIwC,UAAU,EAAE;IAC7B,MAAMM,mCAAmC,CAAC9C,IAAI,CAAC;EACjD;EACArD,YAAY,CAAE,wDAAuD,CAAC;AACxE;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeqG,uBAAuBA,CAACvC,OAAe,EAAET,IAAY,EAAE;EAC3ErD,YAAY,CAAE,6CAA4C,CAAC;EAC3D,MAAMyE,OAAO,GAAG7E,KAAK,CAAC8E,UAAU,CAAC,CAAC;EAClC7E,EAAE,CAAC8E,QAAQ,CAACpE,WAAW,CAAC8C,IAAI,CAAC,EAAE,MAAM,EAAE,OAAOuB,GAAG,EAAEC,IAAI,KAAK;IAC1D,IAAID,GAAG,EAAE,MAAMA,GAAG;IAClB,MAAME,UAAU,GAAGC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAC;IACnC;IACA,IAAIC,UAAU,CAACxC,MAAM,IAAIwC,UAAU,CAACxC,MAAM,CAACwB,OAAO,CAAC,EAAE;MACnD,MAAM/B,KAAK,GAAG+C,UAAU,CAACxC,MAAM,CAACwB,OAAO,CAAC;MACxCgB,UAAU,CAACxC,MAAM,GAAG,CAAC,CAAC;MACtBwC,UAAU,CAACxC,MAAM,CAACwB,OAAO,CAAC,GAAG/B,KAAK;IACpC,CAAC,MAAM,IAAI+C,UAAU,CAACxC,MAAM,EAAE;MAC5BwC,UAAU,CAACxC,MAAM,GAAG,IAAI;IAC1B;IACA;IACA,IAAI2C,SAAiB;IACrB,IAAIH,UAAU,CAACxC,MAAM,EAAE;MACrB,IAAI,CAACmC,OAAO,EACVQ,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYgE,OAAQ,KACvB,CAAC;MACH,IAAI;QACF,IAAIW,OAAO,EACTQ,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYgE,OAAQ,KACvB,CAAC;QACH,MAAMrC,eAAe,CAACqC,OAAO,EAAEgB,UAAU,CAAC;QAC1C5E,qBAAqB,CAAC+E,SAAS,EAAG,YAAWnB,OAAQ,GAAE,EAAE,SAAS,CAAC;MACrE,CAAC,CAAC,OAAOoB,WAAW,EAAE;QACpBhF,qBAAqB,CAAC+E,SAAS,EAAG,GAAEC,WAAY,EAAC,EAAE,MAAM,CAAC;MAC5D;IACF,CAAC,MAAM;MACLD,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYgE,OAAQ,KACvB,CAAC;MACD5D,qBAAqB,CAAC+E,SAAS,EAAG,GAAEnB,OAAQ,aAAY,EAAE,MAAM,CAAC;IACnE;IACA9D,YAAY,CAAE,2CAA0C,CAAC;EAC3D,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAesG,4BAA4BA,CAACjD,IAAY,EAAE;EAC/DrD,YAAY,CAAE,kDAAiD,CAAC;EAChE,MAAMyE,OAAO,GAAG7E,KAAK,CAAC8E,UAAU,CAAC,CAAC;EAClC7E,EAAE,CAAC8E,QAAQ,CAACpE,WAAW,CAAC8C,IAAI,CAAC,EAAE,MAAM,EAAE,OAAOuB,GAAG,EAAEC,IAAI,KAAK;IAC1D,IAAID,GAAG,EAAE,MAAMA,GAAG;IAClB,MAAME,UAAU,GAAGC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAC;IACnC,IAAII,SAAiB;IACrB,IAAIG,MAAM,CAACC,IAAI,CAACP,UAAU,CAACxC,MAAM,CAAC,CAAC6B,MAAM,GAAG,CAAC,EAAE;MAC7C,KAAK,MAAMpC,KAAK,IAAIqD,MAAM,CAACE,MAAM,CAACR,UAAU,CAACxC,MAAM,CAAC,EAAE;QACpD,IAAI,CAACmC,OAAO,EACVQ,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYiC,KAAK,CAAC,KAAK,CAAE,KAC5B,CAAC;QACH,IAAI;UACF,IAAI0C,OAAO,EACTQ,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYiC,KAAK,CAAC,KAAK,CAAE,KAC5B,CAAC;UACH,MAAMN,eAAe,CAACM,KAAK,CAAC,KAAK,CAAC,EAAE+C,UAAU,CAAC;UAC/C5E,qBAAqB,CACnB+E,SAAS,EACR,YAAWlD,KAAK,CAAC,KAAK,CAAE,GAAE,EAC3B,SACF,CAAC;QACH,CAAC,CAAC,OAAOmD,WAAW,EAAE;UACpBhF,qBAAqB,CAAC+E,SAAS,EAAG,GAAEC,WAAY,EAAC,EAAE,MAAM,CAAC;QAC5D;QACA;MACF;IACF,CAAC,MAAM;MACLD,SAAS,GAAGnF,uBAAuB,CAAC,eAAe,EAAE,CAAC,EAAG,cAAa,CAAC;MACvEI,qBAAqB,CAAC+E,SAAS,EAAG,kBAAiB,EAAE,MAAM,CAAC;IAC9D;IACAjF,YAAY,CAAE,gDAA+C,CAAC;EAChE,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAeuG,wBAAwBA,CAAClD,IAAI,EAAE;EACnDrD,YAAY,CAAE,8CAA6C,CAAC;EAC5D,MAAMoE,QAAQ,GAAG7D,WAAW,CAAC8C,IAAI,CAAC;EAClCxD,EAAE,CAAC8E,QAAQ,CAACP,QAAQ,EAAE,MAAM,EAAE,OAAOQ,GAAG,EAAEC,IAAI,KAAK;IACjD,IAAID,GAAG,EAAE,MAAMA,GAAG;IAClB5E,YAAY,CACT,oDAAmDoE,QAAS,EAC/D,CAAC;IACD,MAAMU,UAAU,GAAGC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAyB;IAC3D,IAAI;MACF,MAAMhD,gBAAgB,CAACiD,UAAU,CAAC;IACpC,CAAC,CAAC,OAAO/B,KAAK,EAAE;MACd9C,YAAY,CAAE,GAAE8C,KAAK,CAACyC,OAAQ,EAAC,EAAE,OAAO,CAAC;MACzCvF,YAAY,CAAC8C,KAAK,CAAC0C,QAAQ,CAACjD,MAAM,EAAE,OAAO,CAAC;IAC9C;IACAxC,YAAY,CAAE,4CAA2C,CAAC;EAC5D,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA,OAAO,eAAewG,yBAAyBA,CAAA,EAAG;EAChDxG,YAAY,CAAE,+CAA8C,CAAC;EAC7D,MAAM2F,KAAK,GAAG9F,EAAE,CAAC+F,WAAW,CAACpF,mBAAmB,CAAC,CAAC,CAAC;EACnD,MAAMqF,UAAU,GAAGF,KAAK,CAACG,MAAM,CAAElD,IAAI,IACnCA,IAAI,CAACmD,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC,aAAa,CAC3C,CAAC;EACD,KAAK,MAAM3C,IAAI,IAAIwC,UAAU,EAAE;IAC7B,MAAMU,wBAAwB,CAAClD,IAAI,CAAC;EACtC;EACArD,YAAY,CAAE,6CAA4C,CAAC;AAC7D;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeyG,sBAAsBA,CAAC3C,OAAe,EAAET,IAAY,EAAE;EAC1ErD,YAAY,CAAE,4CAA2C,CAAC;EAC1D,MAAMyE,OAAO,GAAG7E,KAAK,CAAC8E,UAAU,CAAC,CAAC;EAClC7E,EAAE,CAAC8E,QAAQ,CAACpE,WAAW,CAAC8C,IAAI,CAAC,EAAE,MAAM,EAAE,OAAOuB,GAAG,EAAEC,IAAI,KAAK;IAC1D,IAAID,GAAG,EAAE,MAAMA,GAAG;IAClB,MAAME,UAAU,GAAGC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAC;IACnC;IACA,IAAIC,UAAU,CAACxC,MAAM,IAAIwC,UAAU,CAACxC,MAAM,CAACwB,OAAO,CAAC,EAAE;MACnD,MAAM/B,KAAK,GAAG+C,UAAU,CAACxC,MAAM,CAACwB,OAAO,CAAC;MACxCgB,UAAU,CAACxC,MAAM,GAAG,CAAC,CAAC;MACtBwC,UAAU,CAACxC,MAAM,CAACwB,OAAO,CAAC,GAAG/B,KAAK;IACpC,CAAC,MAAM,IAAI+C,UAAU,CAACxC,MAAM,EAAE;MAC5BwC,UAAU,CAACxC,MAAM,GAAG,IAAI;IAC1B;IACA;IACA,IAAI2C,SAAiB;IACrB,IAAIH,UAAU,CAACxC,MAAM,EAAE;MACrB,IAAI,CAACmC,OAAO,EACVQ,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYgE,OAAQ,KACvB,CAAC;MACH,IAAI;QACF,IAAIW,OAAO,EACTQ,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYgE,OAAQ,KACvB,CAAC;QACH,MAAMpC,cAAc,CAACoC,OAAO,EAAEgB,UAAU,CAAC;QACzC5E,qBAAqB,CAAC+E,SAAS,EAAG,YAAWnB,OAAQ,GAAE,EAAE,SAAS,CAAC;MACrE,CAAC,CAAC,OAAOoB,WAAW,EAAE;QACpBhF,qBAAqB,CAAC+E,SAAS,EAAG,GAAEC,WAAY,EAAC,EAAE,MAAM,CAAC;MAC5D;IACF,CAAC,MAAM;MACLD,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYgE,OAAQ,KACvB,CAAC;MACD5D,qBAAqB,CAAC+E,SAAS,EAAG,GAAEnB,OAAQ,aAAY,EAAE,MAAM,CAAC;IACnE;IACA9D,YAAY,CAAE,0CAAyC,CAAC;EAC1D,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAe0G,2BAA2BA,CAACrD,IAAY,EAAE;EAC9DrD,YAAY,CAAE,iDAAgD,CAAC;EAC/D,MAAMyE,OAAO,GAAG7E,KAAK,CAAC8E,UAAU,CAAC,CAAC;EAClC7E,EAAE,CAAC8E,QAAQ,CAACpE,WAAW,CAAC8C,IAAI,CAAC,EAAE,MAAM,EAAE,OAAOuB,GAAG,EAAEC,IAAI,KAAK;IAC1D,IAAID,GAAG,EAAE,MAAMA,GAAG;IAClB,MAAME,UAAU,GAAGC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAC;IACnC,IAAII,SAAiB;IACrB,IAAIG,MAAM,CAACC,IAAI,CAACP,UAAU,CAACxC,MAAM,CAAC,CAAC6B,MAAM,GAAG,CAAC,EAAE;MAC7C,KAAK,MAAMpC,KAAK,IAAIqD,MAAM,CAACE,MAAM,CAACR,UAAU,CAACxC,MAAM,CAAC,EAAE;QACpD,IAAI,CAACmC,OAAO,EACVQ,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYiC,KAAK,CAAC,KAAK,CAAE,KAC5B,CAAC;QACH,IAAI;UACF,IAAI0C,OAAO,EACTQ,SAAS,GAAGnF,uBAAuB,CACjC,eAAe,EACf,CAAC,EACA,aAAYiC,KAAK,CAAC,KAAK,CAAE,KAC5B,CAAC;UACH,MAAML,cAAc,CAACK,KAAK,CAAC,KAAK,CAAC,EAAE+C,UAAU,CAAC;UAC9C5E,qBAAqB,CACnB+E,SAAS,EACR,YAAWlD,KAAK,CAAC,KAAK,CAAE,GAAE,EAC3B,SACF,CAAC;QACH,CAAC,CAAC,OAAOmD,WAAW,EAAE;UACpBhF,qBAAqB,CACnB+E,SAAS,EACR,kBAAiBC,WAAY,EAAC,EAC/B,MACF,CAAC;QACH;QACA;MACF;IACF,CAAC,MAAM;MACLD,SAAS,GAAGnF,uBAAuB,CAAC,eAAe,EAAE,CAAC,EAAG,cAAa,CAAC;MACvEI,qBAAqB,CAAC+E,SAAS,EAAG,kBAAiB,EAAE,MAAM,CAAC;IAC9D;IACAjF,YAAY,CAAE,+CAA8C,CAAC;EAC/D,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAe2G,uBAAuBA,CAACtD,IAAI,EAAE;EAClDrD,YAAY,CAAE,6CAA4C,CAAC;EAC3D,MAAMoE,QAAQ,GAAG7D,WAAW,CAAC8C,IAAI,CAAC;EAClCxD,EAAE,CAAC8E,QAAQ,CAACP,QAAQ,EAAE,MAAM,EAAE,OAAOQ,GAAG,EAAEC,IAAI,KAAK;IACjD,IAAID,GAAG,EAAE,MAAMA,GAAG;IAClB5E,YAAY,CAAE,mDAAkDoE,QAAS,EAAC,CAAC;IAC3E,MAAMU,UAAU,GAAGC,IAAI,CAACC,KAAK,CAACH,IAAI,CAAyB;IAC3D,IAAI;MACF,MAAM/C,eAAe,CAACgD,UAAU,CAAC;IACnC,CAAC,CAAC,OAAO/B,KAAK,EAAE;MACd9C,YAAY,CAAE,GAAE8C,KAAK,CAACyC,OAAQ,EAAC,EAAE,OAAO,CAAC;MACzCvF,YAAY,CAAC8C,KAAK,CAAC0C,QAAQ,CAACjD,MAAM,EAAE,OAAO,CAAC;IAC9C;IACAxC,YAAY,CAAE,2CAA0C,CAAC;EAC3D,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA,OAAO,eAAe4G,wBAAwBA,CAAA,EAAG;EAC/C5G,YAAY,CAAE,8CAA6C,CAAC;EAC5D,MAAM2F,KAAK,GAAG9F,EAAE,CAAC+F,WAAW,CAACpF,mBAAmB,CAAC,CAAC,CAAC;EACnD,MAAMqF,UAAU,GAAGF,KAAK,CAACG,MAAM,CAAElD,IAAI,IACnCA,IAAI,CAACmD,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC,aAAa,CAC3C,CAAC;EACD,KAAK,MAAM3C,IAAI,IAAIwC,UAAU,EAAE;IAC7B,MAAMc,uBAAuB,CAACtD,IAAI,CAAC;EACrC;EACArD,YAAY,CAAE,4CAA2C,CAAC;AAC5D"}
@@ -0,0 +1,324 @@
1
+ import { frodo, state } from '@rockcarver/frodo-lib';
2
+ import fs from 'fs';
3
+ import { createProgressIndicator, createTable, debugMessage, failSpinner, printMessage, showSpinner, stopProgressIndicator, succeedSpinner, updateProgressIndicator } from '../utils/Console';
4
+ import wordwrap from './utils/Wordwrap';
5
+ const {
6
+ getTypedFilename,
7
+ titleCase,
8
+ getFilePath,
9
+ getWorkingDirectory,
10
+ saveJsonToFile
11
+ } = frodo.utils;
12
+ const {
13
+ readApplications: _readApplications,
14
+ deleteApplicationByName: _deleteApplicationByName,
15
+ deleteApplications: _deleteApplications,
16
+ exportApplication: _exportApplication,
17
+ exportApplicationByName: _exportApplicationByName,
18
+ exportApplications: _exportApplications,
19
+ importApplicationByName: _importApplicationByName,
20
+ importFirstApplication: _importFirstApplication,
21
+ importApplications: _importApplications
22
+ } = frodo.app;
23
+
24
+ /**
25
+ * List applications
26
+ */
27
+ export async function listApplications(long = false) {
28
+ try {
29
+ const applications = await _readApplications();
30
+ applications.sort((a, b) => a.name.localeCompare(b.name));
31
+ if (long) {
32
+ const table = createTable(['Name', 'Id', 'Template', {
33
+ hAlign: 'right',
34
+ content: 'Version'
35
+ }, {
36
+ hAlign: 'right',
37
+ content: 'Authoritative'
38
+ }, 'Description']);
39
+ applications.forEach(app => {
40
+ table.push([app.name, app._id, app.templateName, {
41
+ hAlign: 'right',
42
+ content: app.templateVersion
43
+ }, {
44
+ hAlign: 'right',
45
+ content: app.authoritative
46
+ }, wordwrap(app.description, 30)]);
47
+ });
48
+ printMessage(table.toString(), 'data');
49
+ } else {
50
+ applications.forEach(app => {
51
+ printMessage(`${app.name}`, 'data');
52
+ });
53
+ }
54
+ } catch (error) {
55
+ printMessage(`Error listing applications - ${error}`, 'error');
56
+ }
57
+ }
58
+
59
+ /**
60
+ * Delete application
61
+ * @param {string} applicationName application name
62
+ * @param {boolean} deep deep delete (include dependencies)
63
+ * @returns {Promise<boolean>} true if successful, false otherwise
64
+ */
65
+ export async function deleteApplication(applicationName, deep) {
66
+ let outcome = false;
67
+ debugMessage(`cli.ApplicationOps.deleteApplication: begin`);
68
+ showSpinner(`Deleting ${applicationName}...`);
69
+ try {
70
+ await _deleteApplicationByName(applicationName, deep);
71
+ outcome = true;
72
+ succeedSpinner(`Deleted ${applicationName}`);
73
+ } catch (error) {
74
+ failSpinner(`Error deleting ${applicationName}: ${error.message}`);
75
+ }
76
+ debugMessage(`cli.ApplicationOps.deleteApplication: end`);
77
+ return outcome;
78
+ }
79
+
80
+ /**
81
+ * Delete all applications
82
+ * @param {boolean} deep deep delete (include dependencies)
83
+ * @returns {Promise<boolean>} true if successful, false otherwise
84
+ */
85
+ export async function deleteApplications(deep) {
86
+ let outcome = false;
87
+ debugMessage(`cli.ApplicationOps.deleteApplications: begin`);
88
+ showSpinner(`Deleting all applications...`);
89
+ try {
90
+ const deleted = await _deleteApplications(deep);
91
+ outcome = true;
92
+ succeedSpinner(`Deleted ${deleted.length} applications`);
93
+ } catch (error) {
94
+ failSpinner(`Error deleting applications: ${error.message}`);
95
+ }
96
+ debugMessage(`cli.ApplicationOps.deleteApplications: end`);
97
+ return outcome;
98
+ }
99
+
100
+ /**
101
+ * Export application to file
102
+ * @param {string} applicationName application name
103
+ * @param {string} file file name
104
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
105
+ * @param {ApplicationExportOptions} options export options
106
+ * @returns {Promise<boolean>} true if successful, false otherwise
107
+ */
108
+ export async function exportApplicationToFile(applicationName, file, includeMeta, options = {
109
+ useStringArrays: true,
110
+ deps: true
111
+ }) {
112
+ let outcome = false;
113
+ debugMessage(`cli.ApplicationOps.exportApplicationToFile: begin`);
114
+ showSpinner(`Exporting ${applicationName}...`);
115
+ try {
116
+ let fileName = getTypedFilename(applicationName, 'application');
117
+ if (file) {
118
+ fileName = file;
119
+ }
120
+ const filePath = getFilePath(fileName, true);
121
+ const exportData = await _exportApplicationByName(applicationName, options);
122
+ saveJsonToFile(exportData, filePath, includeMeta);
123
+ succeedSpinner(`Exported ${applicationName} to ${filePath}.`);
124
+ outcome = true;
125
+ } catch (error) {
126
+ failSpinner(`Error exporting ${applicationName}: ${error.message}`);
127
+ }
128
+ debugMessage(`cli.ApplicationOps.exportApplicationToFile: end`);
129
+ return outcome;
130
+ }
131
+
132
+ /**
133
+ * Export all applications to file
134
+ * @param {string} file file name
135
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
136
+ * @param {ApplicationExportOptions} options export options
137
+ * @returns {Promise<boolean>} true if successful, false otherwise
138
+ */
139
+ export async function exportApplicationsToFile(file, includeMeta, options = {
140
+ useStringArrays: true,
141
+ deps: true
142
+ }) {
143
+ let outcome = false;
144
+ debugMessage(`cli.ApplicationOps.exportApplicationsToFile: begin`);
145
+ showSpinner(`Exporting all applications...`);
146
+ try {
147
+ let fileName = getTypedFilename(`all${titleCase(frodo.utils.getRealmName(state.getRealm()))}Applications`, 'application');
148
+ if (file) {
149
+ fileName = file;
150
+ }
151
+ const filePath = getFilePath(fileName, true);
152
+ const exportData = await _exportApplications(options);
153
+ saveJsonToFile(exportData, filePath, includeMeta);
154
+ succeedSpinner(`Exported all applications to ${filePath}.`);
155
+ outcome = true;
156
+ } catch (error) {
157
+ failSpinner(`Error exporting all applications`);
158
+ printMessage(`${error.message}`, 'error');
159
+ }
160
+ debugMessage(`cli.ApplicationOps.exportApplicationsToFile: end [${outcome}]`);
161
+ return outcome;
162
+ }
163
+
164
+ /**
165
+ * Export all applications to separate files
166
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
167
+ * @param {ApplicationExportOptions} options export options
168
+ * @returns {Promise<boolean>} true if successful, false otherwise
169
+ */
170
+ export async function exportApplicationsToFiles(includeMeta, options = {
171
+ useStringArrays: true,
172
+ deps: true
173
+ }) {
174
+ debugMessage(`cli.ApplicationOps.exportApplicationsToFiles: begin`);
175
+ const errors = [];
176
+ let barId;
177
+ try {
178
+ const applications = await _readApplications();
179
+ barId = createProgressIndicator('determinate', applications.length, 'Exporting applications...');
180
+ for (const application of applications) {
181
+ const fileBarId = createProgressIndicator('determinate', 1, `Exporting application ${application.name}...`);
182
+ const file = getFilePath(getTypedFilename(application.name, 'application'), true);
183
+ try {
184
+ updateProgressIndicator(barId, `Exporting ${application.name}.`);
185
+ const exportData = await _exportApplication(application._id, options);
186
+ saveJsonToFile(exportData, file, includeMeta);
187
+ updateProgressIndicator(fileBarId, `Saving ${application.name} to ${file}.`);
188
+ stopProgressIndicator(fileBarId, `${application.name} saved to ${file}.`);
189
+ } catch (error) {
190
+ errors.push(error);
191
+ updateProgressIndicator(barId, `Error exporting ${application.name}.`);
192
+ stopProgressIndicator(fileBarId, `Error saving ${application.name} to ${file}.`);
193
+ }
194
+ }
195
+ stopProgressIndicator(barId, `Export complete.`);
196
+ } catch (error) {
197
+ errors.push(error);
198
+ stopProgressIndicator(barId, `Error exporting applications(s) to file(s)`);
199
+ }
200
+ debugMessage(`cli.ApplicationOps.exportApplicationsToFiles: end`);
201
+ return 0 === errors.length;
202
+ }
203
+
204
+ /**
205
+ * Import application from file
206
+ * @param {string} applicationName client id
207
+ * @param {string} file file name
208
+ * @param {ApplicationImportOptions} options import options
209
+ * @returns {Promise<boolean>} true if successful, false otherwise
210
+ */
211
+ export async function importApplicationFromFile(applicationName, file, options = {
212
+ deps: true
213
+ }) {
214
+ let outcome = false;
215
+ debugMessage(`cli.ApplicationOps.importApplicationFromFile: begin`);
216
+ showSpinner(`Importing ${applicationName}...`);
217
+ try {
218
+ const data = fs.readFileSync(getFilePath(file), 'utf8');
219
+ const fileData = JSON.parse(data);
220
+ await _importApplicationByName(applicationName, fileData, options);
221
+ outcome = true;
222
+ succeedSpinner(`Imported ${applicationName}.`);
223
+ } catch (error) {
224
+ failSpinner(`Error importing ${applicationName}.`);
225
+ printMessage(error, 'error');
226
+ }
227
+ debugMessage(`cli.ApplicationOps.importApplicationFromFile: end`);
228
+ return outcome;
229
+ }
230
+
231
+ /**
232
+ * Import first application from file
233
+ * @param {string} file file name
234
+ * @param {ApplicationImportOptions} options import options
235
+ * @returns {Promise<boolean>} true if successful, false otherwise
236
+ */
237
+ export async function importFirstApplicationFromFile(file, options = {
238
+ deps: true
239
+ }) {
240
+ let outcome = false;
241
+ debugMessage(`cli.ApplicationOps.importFirstApplicationFromFile: begin`);
242
+ const filePath = getFilePath(file);
243
+ showSpinner(`Importing ${filePath}...`);
244
+ try {
245
+ const data = fs.readFileSync(filePath, 'utf8');
246
+ const fileData = JSON.parse(data);
247
+ await _importFirstApplication(fileData, options);
248
+ outcome = true;
249
+ succeedSpinner(`Imported ${filePath}.`);
250
+ } catch (error) {
251
+ failSpinner(`Error importing ${filePath}.`);
252
+ printMessage(error, 'error');
253
+ }
254
+ debugMessage(`cli.ApplicationOps.importFirstApplicationFromFile: end`);
255
+ return outcome;
256
+ }
257
+
258
+ /**
259
+ * Import applications from file
260
+ * @param {string} file file name
261
+ * @param {ApplicationImportOptions} options import options
262
+ * @returns {Promise<boolean>} true if successful, false otherwise
263
+ */
264
+ export async function importApplicationsFromFile(file, options = {
265
+ deps: true
266
+ }) {
267
+ let outcome = false;
268
+ debugMessage(`cli.ApplicationOps.importApplicationsFromFile: begin`);
269
+ const filePath = getFilePath(file);
270
+ showSpinner(`Importing ${filePath}...`);
271
+ try {
272
+ const data = fs.readFileSync(filePath, 'utf8');
273
+ const applicationData = JSON.parse(data);
274
+ await _importApplications(applicationData, options);
275
+ outcome = true;
276
+ succeedSpinner(`Imported ${filePath}.`);
277
+ } catch (error) {
278
+ failSpinner(`Error importing ${filePath}.`);
279
+ printMessage(error, 'error');
280
+ }
281
+ debugMessage(`cli.ApplicationOps.importApplicationsFromFile: end`);
282
+ return outcome;
283
+ }
284
+
285
+ /**
286
+ * Import applications from files
287
+ * @param {ApplicationImportOptions} options import options
288
+ * @returns {Promise<boolean>} true if successful, false otherwise
289
+ */
290
+ export async function importApplicationsFromFiles(options = {
291
+ deps: true
292
+ }) {
293
+ const errors = [];
294
+ let barId;
295
+ try {
296
+ debugMessage(`cli.ApplicationOps.importApplicationsFromFiles: begin`);
297
+ const names = fs.readdirSync(getWorkingDirectory());
298
+ const files = names.filter(name => name.toLowerCase().endsWith('.application.json')).map(name => getFilePath(name));
299
+ barId = createProgressIndicator('determinate', files.length, 'Importing applications...');
300
+ let total = 0;
301
+ for (const file of files) {
302
+ try {
303
+ const data = fs.readFileSync(file, 'utf8');
304
+ const fileData = JSON.parse(data);
305
+ const count = Object.keys(fileData.managedApplication).length;
306
+ total += count;
307
+ await _importApplications(fileData, options);
308
+ updateProgressIndicator(barId, `Imported ${count} application(s) from ${file}`);
309
+ } catch (error) {
310
+ errors.push(error);
311
+ updateProgressIndicator(barId, `Error importing application(s) from ${file}`);
312
+ printMessage(error, 'error');
313
+ }
314
+ }
315
+ stopProgressIndicator(barId, `Finished importing ${total} application(s) from ${files.length} file(s).`);
316
+ } catch (error) {
317
+ errors.push(error);
318
+ stopProgressIndicator(barId, `Error importing application(s) from file(s).`);
319
+ printMessage(error, 'error');
320
+ }
321
+ debugMessage(`cli.ApplicationOps.importApplicationsFromFiles: end`);
322
+ return 0 === errors.length;
323
+ }
324
+ //# sourceMappingURL=ApplicationOps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplicationOps.js","names":["frodo","state","fs","createProgressIndicator","createTable","debugMessage","failSpinner","printMessage","showSpinner","stopProgressIndicator","succeedSpinner","updateProgressIndicator","wordwrap","getTypedFilename","titleCase","getFilePath","getWorkingDirectory","saveJsonToFile","utils","readApplications","_readApplications","deleteApplicationByName","_deleteApplicationByName","deleteApplications","_deleteApplications","exportApplication","_exportApplication","exportApplicationByName","_exportApplicationByName","exportApplications","_exportApplications","importApplicationByName","_importApplicationByName","importFirstApplication","_importFirstApplication","importApplications","_importApplications","app","listApplications","long","applications","sort","a","b","name","localeCompare","table","hAlign","content","forEach","push","_id","templateName","templateVersion","authoritative","description","toString","error","deleteApplication","applicationName","deep","outcome","message","deleted","length","exportApplicationToFile","file","includeMeta","options","useStringArrays","deps","fileName","filePath","exportData","exportApplicationsToFile","getRealmName","getRealm","exportApplicationsToFiles","errors","barId","application","fileBarId","importApplicationFromFile","data","readFileSync","fileData","JSON","parse","importFirstApplicationFromFile","importApplicationsFromFile","applicationData","importApplicationsFromFiles","names","readdirSync","files","filter","toLowerCase","endsWith","map","total","count","Object","keys","managedApplication"],"sources":["../../src/ops/ApplicationOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport type {\n ApplicationExportInterface,\n ApplicationExportOptions,\n ApplicationImportOptions,\n} from '@rockcarver/frodo-lib/types/ops/ApplicationOps';\nimport fs from 'fs';\n\nimport {\n createProgressIndicator,\n createTable,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressIndicator,\n succeedSpinner,\n updateProgressIndicator,\n} from '../utils/Console';\nimport wordwrap from './utils/Wordwrap';\n\nconst {\n getTypedFilename,\n titleCase,\n getFilePath,\n getWorkingDirectory,\n saveJsonToFile,\n} = frodo.utils;\nconst {\n readApplications: _readApplications,\n deleteApplicationByName: _deleteApplicationByName,\n deleteApplications: _deleteApplications,\n exportApplication: _exportApplication,\n exportApplicationByName: _exportApplicationByName,\n exportApplications: _exportApplications,\n importApplicationByName: _importApplicationByName,\n importFirstApplication: _importFirstApplication,\n importApplications: _importApplications,\n} = frodo.app;\n\n/**\n * List applications\n */\nexport async function listApplications(long = false) {\n try {\n const applications = await _readApplications();\n applications.sort((a, b) => a.name.localeCompare(b.name));\n if (long) {\n const table = createTable([\n 'Name',\n 'Id',\n 'Template',\n {\n hAlign: 'right',\n content: 'Version',\n },\n {\n hAlign: 'right',\n content: 'Authoritative',\n },\n 'Description',\n ]);\n applications.forEach((app) => {\n table.push([\n app.name,\n app._id,\n app.templateName,\n {\n hAlign: 'right',\n content: app.templateVersion,\n },\n {\n hAlign: 'right',\n content: app.authoritative,\n },\n wordwrap(app.description, 30),\n ]);\n });\n printMessage(table.toString(), 'data');\n } else {\n applications.forEach((app) => {\n printMessage(`${app.name}`, 'data');\n });\n }\n } catch (error) {\n printMessage(`Error listing applications - ${error}`, 'error');\n }\n}\n\n/**\n * Delete application\n * @param {string} applicationName application name\n * @param {boolean} deep deep delete (include dependencies)\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteApplication(\n applicationName: string,\n deep: boolean\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.ApplicationOps.deleteApplication: begin`);\n showSpinner(`Deleting ${applicationName}...`);\n try {\n await _deleteApplicationByName(applicationName, deep);\n outcome = true;\n succeedSpinner(`Deleted ${applicationName}`);\n } catch (error) {\n failSpinner(`Error deleting ${applicationName}: ${error.message}`);\n }\n debugMessage(`cli.ApplicationOps.deleteApplication: end`);\n return outcome;\n}\n\n/**\n * Delete all applications\n * @param {boolean} deep deep delete (include dependencies)\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteApplications(deep: boolean): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.ApplicationOps.deleteApplications: begin`);\n showSpinner(`Deleting all applications...`);\n try {\n const deleted = await _deleteApplications(deep);\n outcome = true;\n succeedSpinner(`Deleted ${deleted.length} applications`);\n } catch (error) {\n failSpinner(`Error deleting applications: ${error.message}`);\n }\n debugMessage(`cli.ApplicationOps.deleteApplications: end`);\n return outcome;\n}\n\n/**\n * Export application to file\n * @param {string} applicationName application name\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @param {ApplicationExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportApplicationToFile(\n applicationName: string,\n file: string,\n includeMeta: boolean,\n options: ApplicationExportOptions = { useStringArrays: true, deps: true }\n) {\n let outcome = false;\n debugMessage(`cli.ApplicationOps.exportApplicationToFile: begin`);\n showSpinner(`Exporting ${applicationName}...`);\n try {\n let fileName = getTypedFilename(applicationName, 'application');\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n const exportData = await _exportApplicationByName(applicationName, options);\n saveJsonToFile(exportData, filePath, includeMeta);\n succeedSpinner(`Exported ${applicationName} to ${filePath}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting ${applicationName}: ${error.message}`);\n }\n debugMessage(`cli.ApplicationOps.exportApplicationToFile: end`);\n return outcome;\n}\n\n/**\n * Export all applications to file\n * @param {string} file file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @param {ApplicationExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportApplicationsToFile(\n file: string,\n includeMeta: boolean,\n options: ApplicationExportOptions = { useStringArrays: true, deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.ApplicationOps.exportApplicationsToFile: begin`);\n showSpinner(`Exporting all applications...`);\n try {\n let fileName = getTypedFilename(\n `all${titleCase(frodo.utils.getRealmName(state.getRealm()))}Applications`,\n 'application'\n );\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n const exportData = await _exportApplications(options);\n saveJsonToFile(exportData, filePath, includeMeta);\n succeedSpinner(`Exported all applications to ${filePath}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting all applications`);\n printMessage(`${error.message}`, 'error');\n }\n debugMessage(`cli.ApplicationOps.exportApplicationsToFile: end [${outcome}]`);\n return outcome;\n}\n\n/**\n * Export all applications to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @param {ApplicationExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportApplicationsToFiles(\n includeMeta: boolean,\n options: ApplicationExportOptions = { useStringArrays: true, deps: true }\n) {\n debugMessage(`cli.ApplicationOps.exportApplicationsToFiles: begin`);\n const errors = [];\n let barId: string;\n try {\n const applications = await _readApplications();\n barId = createProgressIndicator(\n 'determinate',\n applications.length,\n 'Exporting applications...'\n );\n for (const application of applications) {\n const fileBarId = createProgressIndicator(\n 'determinate',\n 1,\n `Exporting application ${application.name}...`\n );\n const file = getFilePath(\n getTypedFilename(application.name, 'application'),\n true\n );\n try {\n updateProgressIndicator(barId, `Exporting ${application.name}.`);\n const exportData = await _exportApplication(application._id, options);\n saveJsonToFile(exportData, file, includeMeta);\n updateProgressIndicator(\n fileBarId,\n `Saving ${application.name} to ${file}.`\n );\n stopProgressIndicator(\n fileBarId,\n `${application.name} saved to ${file}.`\n );\n } catch (error) {\n errors.push(error);\n updateProgressIndicator(barId, `Error exporting ${application.name}.`);\n stopProgressIndicator(\n fileBarId,\n `Error saving ${application.name} to ${file}.`\n );\n }\n }\n stopProgressIndicator(barId, `Export complete.`);\n } catch (error) {\n errors.push(error);\n stopProgressIndicator(barId, `Error exporting applications(s) to file(s)`);\n }\n debugMessage(`cli.ApplicationOps.exportApplicationsToFiles: end`);\n return 0 === errors.length;\n}\n\n/**\n * Import application from file\n * @param {string} applicationName client id\n * @param {string} file file name\n * @param {ApplicationImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importApplicationFromFile(\n applicationName: string,\n file: string,\n options: ApplicationImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.ApplicationOps.importApplicationFromFile: begin`);\n showSpinner(`Importing ${applicationName}...`);\n try {\n const data = fs.readFileSync(getFilePath(file), 'utf8');\n const fileData = JSON.parse(data);\n await _importApplicationByName(applicationName, fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${applicationName}.`);\n } catch (error) {\n failSpinner(`Error importing ${applicationName}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.ApplicationOps.importApplicationFromFile: end`);\n return outcome;\n}\n\n/**\n * Import first application from file\n * @param {string} file file name\n * @param {ApplicationImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstApplicationFromFile(\n file: string,\n options: ApplicationImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.ApplicationOps.importFirstApplicationFromFile: begin`);\n const filePath = getFilePath(file);\n showSpinner(`Importing ${filePath}...`);\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await _importFirstApplication(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${filePath}.`);\n } catch (error) {\n failSpinner(`Error importing ${filePath}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.ApplicationOps.importFirstApplicationFromFile: end`);\n return outcome;\n}\n\n/**\n * Import applications from file\n * @param {string} file file name\n * @param {ApplicationImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importApplicationsFromFile(\n file: string,\n options: ApplicationImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.ApplicationOps.importApplicationsFromFile: begin`);\n const filePath = getFilePath(file);\n showSpinner(`Importing ${filePath}...`);\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const applicationData = JSON.parse(data);\n await _importApplications(applicationData, options);\n outcome = true;\n succeedSpinner(`Imported ${filePath}.`);\n } catch (error) {\n failSpinner(`Error importing ${filePath}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.ApplicationOps.importApplicationsFromFile: end`);\n return outcome;\n}\n\n/**\n * Import applications from files\n * @param {ApplicationImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importApplicationsFromFiles(\n options: ApplicationImportOptions = { deps: true }\n): Promise<boolean> {\n const errors = [];\n let barId: string;\n try {\n debugMessage(`cli.ApplicationOps.importApplicationsFromFiles: begin`);\n const names = fs.readdirSync(getWorkingDirectory());\n const files = names\n .filter((name) => name.toLowerCase().endsWith('.application.json'))\n .map((name) => getFilePath(name));\n barId = createProgressIndicator(\n 'determinate',\n files.length,\n 'Importing applications...'\n );\n let total = 0;\n for (const file of files) {\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData: ApplicationExportInterface = JSON.parse(data);\n const count = Object.keys(fileData.managedApplication).length;\n total += count;\n await _importApplications(fileData, options);\n updateProgressIndicator(\n barId,\n `Imported ${count} application(s) from ${file}`\n );\n } catch (error) {\n errors.push(error);\n updateProgressIndicator(\n barId,\n `Error importing application(s) from ${file}`\n );\n printMessage(error, 'error');\n }\n }\n stopProgressIndicator(\n barId,\n `Finished importing ${total} application(s) from ${files.length} file(s).`\n );\n } catch (error) {\n errors.push(error);\n stopProgressIndicator(\n barId,\n `Error importing application(s) from file(s).`\n );\n printMessage(error, 'error');\n }\n debugMessage(`cli.ApplicationOps.importApplicationsFromFiles: end`);\n return 0 === errors.length;\n}\n"],"mappings":"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"}