@rockcarver/frodo-cli 2.0.0-50 → 2.0.0-52

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 (386) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/esm/app.js +7 -2
  3. package/esm/app.js.map +1 -1
  4. package/esm/cli/_template/something-delete.js +1 -4
  5. package/esm/cli/_template/something-delete.js.map +1 -1
  6. package/esm/cli/_template/something-describe.js +1 -4
  7. package/esm/cli/_template/something-describe.js.map +1 -1
  8. package/esm/cli/_template/something-else-delete.js +1 -4
  9. package/esm/cli/_template/something-else-delete.js.map +1 -1
  10. package/esm/cli/_template/something-else-describe.js +1 -4
  11. package/esm/cli/_template/something-else-describe.js.map +1 -1
  12. package/esm/cli/_template/something-else-export.js +1 -4
  13. package/esm/cli/_template/something-else-export.js.map +1 -1
  14. package/esm/cli/_template/something-else-import.js +1 -4
  15. package/esm/cli/_template/something-else-import.js.map +1 -1
  16. package/esm/cli/_template/something-else-list.js +1 -4
  17. package/esm/cli/_template/something-else-list.js.map +1 -1
  18. package/esm/cli/_template/something-export.js +1 -4
  19. package/esm/cli/_template/something-export.js.map +1 -1
  20. package/esm/cli/_template/something-import.js +1 -4
  21. package/esm/cli/_template/something-import.js.map +1 -1
  22. package/esm/cli/_template/something-list.js +1 -4
  23. package/esm/cli/_template/something-list.js.map +1 -1
  24. package/esm/cli/_template/something-other-delete.js +1 -4
  25. package/esm/cli/_template/something-other-delete.js.map +1 -1
  26. package/esm/cli/_template/something-other-describe.js +1 -4
  27. package/esm/cli/_template/something-other-describe.js.map +1 -1
  28. package/esm/cli/_template/something-other-export.js +1 -4
  29. package/esm/cli/_template/something-other-export.js.map +1 -1
  30. package/esm/cli/_template/something-other-import.js +1 -4
  31. package/esm/cli/_template/something-other-import.js.map +1 -1
  32. package/esm/cli/_template/something-other-list.js +1 -4
  33. package/esm/cli/_template/something-other-list.js.map +1 -1
  34. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +4 -9
  35. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
  36. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +47 -54
  37. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
  38. package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js +1 -4
  39. package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js.map +1 -1
  40. package/esm/cli/admin/admin-federation-export.js +2 -5
  41. package/esm/cli/admin/admin-federation-export.js.map +1 -1
  42. package/esm/cli/admin/admin-federation-import.js +2 -5
  43. package/esm/cli/admin/admin-federation-import.js.map +1 -1
  44. package/esm/cli/admin/admin-federation-list.js +2 -5
  45. package/esm/cli/admin/admin-federation-list.js.map +1 -1
  46. package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js +2 -4
  47. package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js.map +1 -1
  48. package/esm/cli/admin/admin-get-access-token.js +1 -3
  49. package/esm/cli/admin/admin-get-access-token.js.map +1 -1
  50. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +5 -9
  51. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
  52. package/esm/cli/admin/admin-hide-generic-extension-attributes.js +5 -9
  53. package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
  54. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +5 -12
  55. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
  56. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +5 -12
  57. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
  58. package/esm/cli/admin/admin-list-static-user-mappings.js +4 -12
  59. package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
  60. package/esm/cli/admin/admin-remove-static-user-mapping.js +4 -9
  61. package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
  62. package/esm/cli/admin/admin-repair-org-model.js +5 -9
  63. package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
  64. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +5 -9
  65. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
  66. package/esm/cli/admin/admin-show-generic-extension-attributes.js +5 -9
  67. package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
  68. package/esm/cli/admin/admin-train-auto-access-model.js +1 -3
  69. package/esm/cli/admin/admin-train-auto-access-model.js.map +1 -1
  70. package/esm/cli/agent/agent-delete.js +9 -24
  71. package/esm/cli/agent/agent-delete.js.map +1 -1
  72. package/esm/cli/agent/agent-describe.js +1 -4
  73. package/esm/cli/agent/agent-describe.js.map +1 -1
  74. package/esm/cli/agent/agent-export.js +7 -7
  75. package/esm/cli/agent/agent-export.js.map +1 -1
  76. package/esm/cli/agent/agent-gateway-delete.js +8 -23
  77. package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
  78. package/esm/cli/agent/agent-gateway-describe.js +1 -4
  79. package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
  80. package/esm/cli/agent/agent-gateway-export.js +7 -7
  81. package/esm/cli/agent/agent-gateway-export.js.map +1 -1
  82. package/esm/cli/agent/agent-gateway-import.js +9 -8
  83. package/esm/cli/agent/agent-gateway-import.js.map +1 -1
  84. package/esm/cli/agent/agent-gateway-list.js +3 -5
  85. package/esm/cli/agent/agent-gateway-list.js.map +1 -1
  86. package/esm/cli/agent/agent-import.js +9 -8
  87. package/esm/cli/agent/agent-import.js.map +1 -1
  88. package/esm/cli/agent/agent-java-delete.js +8 -23
  89. package/esm/cli/agent/agent-java-delete.js.map +1 -1
  90. package/esm/cli/agent/agent-java-describe.js +1 -4
  91. package/esm/cli/agent/agent-java-describe.js.map +1 -1
  92. package/esm/cli/agent/agent-java-export.js +7 -7
  93. package/esm/cli/agent/agent-java-export.js.map +1 -1
  94. package/esm/cli/agent/agent-java-import.js +9 -8
  95. package/esm/cli/agent/agent-java-import.js.map +1 -1
  96. package/esm/cli/agent/agent-java-list.js +3 -5
  97. package/esm/cli/agent/agent-java-list.js.map +1 -1
  98. package/esm/cli/agent/agent-list.js +3 -5
  99. package/esm/cli/agent/agent-list.js.map +1 -1
  100. package/esm/cli/agent/agent-web-delete.js +8 -23
  101. package/esm/cli/agent/agent-web-delete.js.map +1 -1
  102. package/esm/cli/agent/agent-web-describe.js +1 -4
  103. package/esm/cli/agent/agent-web-describe.js.map +1 -1
  104. package/esm/cli/agent/agent-web-export.js +7 -7
  105. package/esm/cli/agent/agent-web-export.js.map +1 -1
  106. package/esm/cli/agent/agent-web-import.js +9 -8
  107. package/esm/cli/agent/agent-web-import.js.map +1 -1
  108. package/esm/cli/agent/agent-web-list.js +3 -5
  109. package/esm/cli/agent/agent-web-list.js.map +1 -1
  110. package/esm/cli/app/app-delete.js +5 -8
  111. package/esm/cli/app/app-delete.js.map +1 -1
  112. package/esm/cli/app/app-describe.js +1 -4
  113. package/esm/cli/app/app-describe.js.map +1 -1
  114. package/esm/cli/app/app-export.js +7 -10
  115. package/esm/cli/app/app-export.js.map +1 -1
  116. package/esm/cli/app/app-import.js +9 -12
  117. package/esm/cli/app/app-import.js.map +1 -1
  118. package/esm/cli/app/app-list.js +3 -5
  119. package/esm/cli/app/app-list.js.map +1 -1
  120. package/esm/cli/authn/authn-describe.js +1 -4
  121. package/esm/cli/authn/authn-describe.js.map +1 -1
  122. package/esm/cli/authn/authn-export.js +1 -4
  123. package/esm/cli/authn/authn-export.js.map +1 -1
  124. package/esm/cli/authn/authn-import.js +1 -4
  125. package/esm/cli/authn/authn-import.js.map +1 -1
  126. package/esm/cli/authz/authz-policy-delete.js +1 -4
  127. package/esm/cli/authz/authz-policy-delete.js.map +1 -1
  128. package/esm/cli/authz/authz-policy-describe.js +1 -4
  129. package/esm/cli/authz/authz-policy-describe.js.map +1 -1
  130. package/esm/cli/authz/authz-policy-export.js +1 -4
  131. package/esm/cli/authz/authz-policy-export.js.map +1 -1
  132. package/esm/cli/authz/authz-policy-import.js +1 -4
  133. package/esm/cli/authz/authz-policy-import.js.map +1 -1
  134. package/esm/cli/authz/authz-policy-list.js +1 -4
  135. package/esm/cli/authz/authz-policy-list.js.map +1 -1
  136. package/esm/cli/authz/authz-set-delete.js +1 -4
  137. package/esm/cli/authz/authz-set-delete.js.map +1 -1
  138. package/esm/cli/authz/authz-set-describe.js +1 -4
  139. package/esm/cli/authz/authz-set-describe.js.map +1 -1
  140. package/esm/cli/authz/authz-set-export.js +1 -4
  141. package/esm/cli/authz/authz-set-export.js.map +1 -1
  142. package/esm/cli/authz/authz-set-import.js +1 -4
  143. package/esm/cli/authz/authz-set-import.js.map +1 -1
  144. package/esm/cli/authz/authz-set-list.js +1 -4
  145. package/esm/cli/authz/authz-set-list.js.map +1 -1
  146. package/esm/cli/authz/authz-type-delete.js +1 -4
  147. package/esm/cli/authz/authz-type-delete.js.map +1 -1
  148. package/esm/cli/authz/authz-type-describe.js +1 -4
  149. package/esm/cli/authz/authz-type-describe.js.map +1 -1
  150. package/esm/cli/authz/authz-type-export.js +1 -4
  151. package/esm/cli/authz/authz-type-export.js.map +1 -1
  152. package/esm/cli/authz/authz-type-import.js +1 -4
  153. package/esm/cli/authz/authz-type-import.js.map +1 -1
  154. package/esm/cli/authz/authz-type-list.js +1 -4
  155. package/esm/cli/authz/authz-type-list.js.map +1 -1
  156. package/esm/cli/config/config-delete.js +1 -4
  157. package/esm/cli/config/config-delete.js.map +1 -1
  158. package/esm/cli/config/config-describe.js +1 -4
  159. package/esm/cli/config/config-describe.js.map +1 -1
  160. package/esm/cli/config/config-export.js +2 -4
  161. package/esm/cli/config/config-export.js.map +1 -1
  162. package/esm/cli/config/config-import.js +2 -4
  163. package/esm/cli/config/config-import.js.map +1 -1
  164. package/esm/cli/config/config-list.js +1 -4
  165. package/esm/cli/config/config-list.js.map +1 -1
  166. package/esm/cli/conn/conn-delete.js +7 -1
  167. package/esm/cli/conn/conn-delete.js.map +1 -1
  168. package/esm/cli/conn/conn-save.js +10 -12
  169. package/esm/cli/conn/conn-save.js.map +1 -1
  170. package/esm/cli/email/email-template-export.js +8 -7
  171. package/esm/cli/email/email-template-export.js.map +1 -1
  172. package/esm/cli/email/email-template-import.js +9 -8
  173. package/esm/cli/email/email-template-import.js.map +1 -1
  174. package/esm/cli/email/email-template-list.js +3 -5
  175. package/esm/cli/email/email-template-list.js.map +1 -1
  176. package/esm/cli/esv/esv-apply.js +1 -3
  177. package/esm/cli/esv/esv-apply.js.map +1 -1
  178. package/esm/cli/esv/esv-secret-create.js +2 -5
  179. package/esm/cli/esv/esv-secret-create.js.map +1 -1
  180. package/esm/cli/esv/esv-secret-delete.js +2 -5
  181. package/esm/cli/esv/esv-secret-delete.js.map +1 -1
  182. package/esm/cli/esv/esv-secret-describe.js +2 -5
  183. package/esm/cli/esv/esv-secret-describe.js.map +1 -1
  184. package/esm/cli/esv/esv-secret-export.js +3 -5
  185. package/esm/cli/esv/esv-secret-export.js.map +1 -1
  186. package/esm/cli/esv/esv-secret-import.js +1 -4
  187. package/esm/cli/esv/esv-secret-import.js.map +1 -1
  188. package/esm/cli/esv/esv-secret-list.js +2 -5
  189. package/esm/cli/esv/esv-secret-list.js.map +1 -1
  190. package/esm/cli/esv/esv-secret-set.js +2 -5
  191. package/esm/cli/esv/esv-secret-set.js.map +1 -1
  192. package/esm/cli/esv/esv-secret-version-activate.js +2 -5
  193. package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
  194. package/esm/cli/esv/esv-secret-version-create.js +2 -5
  195. package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
  196. package/esm/cli/esv/esv-secret-version-deactivate.js +2 -5
  197. package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
  198. package/esm/cli/esv/esv-secret-version-delete.js +2 -5
  199. package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
  200. package/esm/cli/esv/esv-secret-version-list.js +2 -5
  201. package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
  202. package/esm/cli/esv/esv-variable-create.js +2 -5
  203. package/esm/cli/esv/esv-variable-create.js.map +1 -1
  204. package/esm/cli/esv/esv-variable-delete.js +2 -5
  205. package/esm/cli/esv/esv-variable-delete.js.map +1 -1
  206. package/esm/cli/esv/esv-variable-describe.js +2 -5
  207. package/esm/cli/esv/esv-variable-describe.js.map +1 -1
  208. package/esm/cli/esv/esv-variable-export.js +3 -5
  209. package/esm/cli/esv/esv-variable-export.js.map +1 -1
  210. package/esm/cli/esv/esv-variable-import.js +1 -4
  211. package/esm/cli/esv/esv-variable-import.js.map +1 -1
  212. package/esm/cli/esv/esv-variable-list.js +2 -5
  213. package/esm/cli/esv/esv-variable-list.js.map +1 -1
  214. package/esm/cli/esv/esv-variable-set.js +2 -5
  215. package/esm/cli/esv/esv-variable-set.js.map +1 -1
  216. package/esm/cli/idm/idm-count.js +3 -5
  217. package/esm/cli/idm/idm-count.js.map +1 -1
  218. package/esm/cli/idm/idm-export.js +8 -7
  219. package/esm/cli/idm/idm-export.js.map +1 -1
  220. package/esm/cli/idm/idm-import.js +10 -8
  221. package/esm/cli/idm/idm-import.js.map +1 -1
  222. package/esm/cli/idm/idm-list.js +3 -5
  223. package/esm/cli/idm/idm-list.js.map +1 -1
  224. package/esm/cli/idp/idp-export.js +8 -7
  225. package/esm/cli/idp/idp-export.js.map +1 -1
  226. package/esm/cli/idp/idp-import.js +10 -8
  227. package/esm/cli/idp/idp-import.js.map +1 -1
  228. package/esm/cli/idp/idp-list.js +4 -5
  229. package/esm/cli/idp/idp-list.js.map +1 -1
  230. package/esm/cli/info/info.js +1 -3
  231. package/esm/cli/info/info.js.map +1 -1
  232. package/esm/cli/journey/journey-delete.js +7 -10
  233. package/esm/cli/journey/journey-delete.js.map +1 -1
  234. package/esm/cli/journey/journey-describe.js +16 -12
  235. package/esm/cli/journey/journey-describe.js.map +1 -1
  236. package/esm/cli/journey/journey-disable.js +1 -4
  237. package/esm/cli/journey/journey-disable.js.map +1 -1
  238. package/esm/cli/journey/journey-enable.js +1 -4
  239. package/esm/cli/journey/journey-enable.js.map +1 -1
  240. package/esm/cli/journey/journey-export.js +7 -7
  241. package/esm/cli/journey/journey-export.js.map +1 -1
  242. package/esm/cli/journey/journey-import.js +9 -8
  243. package/esm/cli/journey/journey-import.js.map +1 -1
  244. package/esm/cli/journey/journey-list.js +4 -5
  245. package/esm/cli/journey/journey-list.js.map +1 -1
  246. package/esm/cli/journey/journey-prune.js +4 -5
  247. package/esm/cli/journey/journey-prune.js.map +1 -1
  248. package/esm/cli/log/log-fetch.js +7 -5
  249. package/esm/cli/log/log-fetch.js.map +1 -1
  250. package/esm/cli/log/log-key-delete.js +1 -4
  251. package/esm/cli/log/log-key-delete.js.map +1 -1
  252. package/esm/cli/log/log-key-describe.js +1 -4
  253. package/esm/cli/log/log-key-describe.js.map +1 -1
  254. package/esm/cli/log/log-key-list.js +1 -4
  255. package/esm/cli/log/log-key-list.js.map +1 -1
  256. package/esm/cli/log/log-list.js +13 -6
  257. package/esm/cli/log/log-list.js.map +1 -1
  258. package/esm/cli/log/log-tail.js +7 -5
  259. package/esm/cli/log/log-tail.js.map +1 -1
  260. package/esm/cli/oauth/oauth-client-delete.js +1 -4
  261. package/esm/cli/oauth/oauth-client-delete.js.map +1 -1
  262. package/esm/cli/oauth/oauth-client-describe.js +1 -4
  263. package/esm/cli/oauth/oauth-client-describe.js.map +1 -1
  264. package/esm/cli/oauth/oauth-client-export.js +7 -10
  265. package/esm/cli/oauth/oauth-client-export.js.map +1 -1
  266. package/esm/cli/oauth/oauth-client-import.js +9 -12
  267. package/esm/cli/oauth/oauth-client-import.js.map +1 -1
  268. package/esm/cli/oauth/oauth-client-list.js +3 -5
  269. package/esm/cli/oauth/oauth-client-list.js.map +1 -1
  270. package/esm/cli/realm/realm-add-custom-domain.js +2 -4
  271. package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
  272. package/esm/cli/realm/realm-describe.js +1 -3
  273. package/esm/cli/realm/realm-describe.js.map +1 -1
  274. package/esm/cli/realm/realm-list.js +1 -4
  275. package/esm/cli/realm/realm-list.js.map +1 -1
  276. package/esm/cli/realm/realm-remove-custom-domain.js +1 -3
  277. package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
  278. package/esm/cli/saml/saml-cot-export.js +2 -4
  279. package/esm/cli/saml/saml-cot-export.js.map +1 -1
  280. package/esm/cli/saml/saml-cot-import.js +2 -4
  281. package/esm/cli/saml/saml-cot-import.js.map +1 -1
  282. package/esm/cli/saml/saml-cot-list.js +2 -4
  283. package/esm/cli/saml/saml-cot-list.js.map +1 -1
  284. package/esm/cli/saml/saml-delete.js +1 -3
  285. package/esm/cli/saml/saml-delete.js.map +1 -1
  286. package/esm/cli/saml/saml-describe.js +4 -5
  287. package/esm/cli/saml/saml-describe.js.map +1 -1
  288. package/esm/cli/saml/saml-export.js +8 -7
  289. package/esm/cli/saml/saml-export.js.map +1 -1
  290. package/esm/cli/saml/saml-import.js +10 -8
  291. package/esm/cli/saml/saml-import.js.map +1 -1
  292. package/esm/cli/saml/saml-list.js +4 -5
  293. package/esm/cli/saml/saml-list.js.map +1 -1
  294. package/esm/cli/saml/saml-metadata-export.js +12 -6
  295. package/esm/cli/saml/saml-metadata-export.js.map +1 -1
  296. package/esm/cli/script/script-delete.js +12 -8
  297. package/esm/cli/script/script-delete.js.map +1 -1
  298. package/esm/cli/script/script-describe.js +1 -4
  299. package/esm/cli/script/script-describe.js.map +1 -1
  300. package/esm/cli/script/script-export.js +10 -17
  301. package/esm/cli/script/script-export.js.map +1 -1
  302. package/esm/cli/script/script-import.js +21 -18
  303. package/esm/cli/script/script-import.js.map +1 -1
  304. package/esm/cli/script/script-list.js +2 -4
  305. package/esm/cli/script/script-list.js.map +1 -1
  306. package/esm/cli/service/service-delete.js +5 -6
  307. package/esm/cli/service/service-delete.js.map +1 -1
  308. package/esm/cli/service/service-export.js +7 -7
  309. package/esm/cli/service/service-export.js.map +1 -1
  310. package/esm/cli/service/service-import.js +9 -8
  311. package/esm/cli/service/service-import.js.map +1 -1
  312. package/esm/cli/service/service-list.js +3 -5
  313. package/esm/cli/service/service-list.js.map +1 -1
  314. package/esm/cli/shell/shell.js +3 -7
  315. package/esm/cli/shell/shell.js.map +1 -1
  316. package/esm/cli/theme/theme-delete.js +9 -8
  317. package/esm/cli/theme/theme-delete.js.map +1 -1
  318. package/esm/cli/theme/theme-export.js +10 -8
  319. package/esm/cli/theme/theme-export.js.map +1 -1
  320. package/esm/cli/theme/theme-import.js +12 -9
  321. package/esm/cli/theme/theme-import.js.map +1 -1
  322. package/esm/cli/theme/theme-list.js +4 -5
  323. package/esm/cli/theme/theme-list.js.map +1 -1
  324. package/esm/ops/AdminOps.js +790 -3
  325. package/esm/ops/AdminOps.js.map +1 -1
  326. package/esm/ops/AgentOps.js +638 -305
  327. package/esm/ops/AgentOps.js.map +1 -1
  328. package/esm/ops/ApplicationOps.js +91 -79
  329. package/esm/ops/ApplicationOps.js.map +1 -1
  330. package/esm/ops/AuthenticateOps.js +23 -0
  331. package/esm/ops/AuthenticateOps.js.map +1 -0
  332. package/esm/ops/AuthenticationSettingsOps.js +22 -23
  333. package/esm/ops/AuthenticationSettingsOps.js.map +1 -1
  334. package/esm/ops/CirclesOfTrustOps.js +52 -55
  335. package/esm/ops/CirclesOfTrustOps.js.map +1 -1
  336. package/esm/ops/ConfigOps.js +100 -84
  337. package/esm/ops/ConfigOps.js.map +1 -1
  338. package/esm/ops/ConnectionProfileOps.js +9 -7
  339. package/esm/ops/ConnectionProfileOps.js.map +1 -1
  340. package/esm/ops/EmailTemplateOps.js +64 -47
  341. package/esm/ops/EmailTemplateOps.js.map +1 -1
  342. package/esm/ops/IdmOps.js +149 -117
  343. package/esm/ops/IdmOps.js.map +1 -1
  344. package/esm/ops/IdpOps.js +76 -46
  345. package/esm/ops/IdpOps.js.map +1 -1
  346. package/esm/ops/JourneyOps.js +333 -238
  347. package/esm/ops/JourneyOps.js.map +1 -1
  348. package/esm/ops/LogOps.js +15 -23
  349. package/esm/ops/LogOps.js.map +1 -1
  350. package/esm/ops/OAuth2ClientOps.js +43 -36
  351. package/esm/ops/OAuth2ClientOps.js.map +1 -1
  352. package/esm/ops/PolicyOps.js +104 -108
  353. package/esm/ops/PolicyOps.js.map +1 -1
  354. package/esm/ops/PolicySetOps.js +72 -78
  355. package/esm/ops/PolicySetOps.js.map +1 -1
  356. package/esm/ops/ResourceTypeOps.js +84 -99
  357. package/esm/ops/ResourceTypeOps.js.map +1 -1
  358. package/esm/ops/Saml2Ops.js +132 -88
  359. package/esm/ops/Saml2Ops.js.map +1 -1
  360. package/esm/ops/ScriptOps.js +90 -80
  361. package/esm/ops/ScriptOps.js.map +1 -1
  362. package/esm/ops/ServiceOps.js +125 -87
  363. package/esm/ops/ServiceOps.js.map +1 -1
  364. package/esm/ops/ThemeOps.js +170 -139
  365. package/esm/ops/ThemeOps.js.map +1 -1
  366. package/esm/ops/{AdminFederationOps.js → cloud/AdminFederationOps.js} +10 -16
  367. package/esm/ops/cloud/AdminFederationOps.js.map +1 -0
  368. package/esm/ops/{SecretsOps.js → cloud/SecretsOps.js} +123 -129
  369. package/esm/ops/cloud/SecretsOps.js.map +1 -0
  370. package/esm/ops/{VariablesOps.js → cloud/VariablesOps.js} +48 -52
  371. package/esm/ops/cloud/VariablesOps.js.map +1 -0
  372. package/esm/ops/templates/OAuth2ClientTemplate.json +270 -0
  373. package/esm/ops/templates/OAuth2TrustedJwtIssuerTemplate.json +38 -0
  374. package/esm/ops/templates/OrgModelUserAttributesTemplate.json +149 -0
  375. package/esm/ops/templates/autoaccess/IPAddresses.json +202 -0
  376. package/esm/ops/templates/autoaccess/UserAgents.json +35 -0
  377. package/esm/ops/templates/autoaccess/Usernames.json +203 -0
  378. package/esm/ops/templates/cloud/GenericExtensionAttributesTemplate.json +392 -0
  379. package/esm/ops/templates/cloud/managed.json +4119 -0
  380. package/esm/ops/utils/OpsUtils.js.map +1 -1
  381. package/esm/utils/Console.js +31 -0
  382. package/esm/utils/Console.js.map +1 -1
  383. package/package.json +11 -6
  384. package/esm/ops/AdminFederationOps.js.map +0 -1
  385. package/esm/ops/SecretsOps.js.map +0 -1
  386. package/esm/ops/VariablesOps.js.map +0 -1
@@ -1 +1 @@
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":"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"}
1
+ {"version":3,"file":"AgentOps.js","names":["frodo","FrodoError","state","fs","createProgressIndicator","createTable","debugMessage","printError","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","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","data","readFileSync","importData","JSON","parse","spinnerId","importIdentityGatewayAgentFromFile","importJavaAgentFromFile","importWebAgentFromFile","importFirstAgentFromFile","Object","keys","values","importFirstIdentityGatewayAgentFromFile","importFirstJavaAgentFromFile","importError","importFirstWebAgentFromFile","importAgentsFromFile","importIdentityGatewayAgentsFromFile","importJavaAgentsFromFile","importWebAgentsFromFile","importAgentsFromFiles","errors","names","readdirSync","agentFiles","filter","toLowerCase","endsWith","importIdentityGatewayAgentsFromFiles","importJavaAgentsFromFiles","importWebAgentsFromFiles","deleteAgent","deleteIdentityGatewayAgent","deleteJavaAgent","deleteWebAgent","deleteAgents","deleteIdentityGatewayAgents","deleteJavaAgents","deleteWebAgents"],"sources":["../../src/ops/AgentOps.ts"],"sourcesContent":["import { frodo, FrodoError, 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 printError,\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 * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listAgents(long: boolean = false): Promise<boolean> {\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 return true;\n } catch (error) {\n printError(error, `Error listing agents`);\n }\n return false;\n}\n\n/**\n * List identity gateway agents\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listIdentityGatewayAgents(\n long: boolean = false\n): Promise<boolean> {\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 return true;\n } catch (error) {\n printError(error, `Error listing gateway agents`);\n }\n return false;\n}\n\n/**\n * List java agents\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listJavaAgents(long: boolean = false): Promise<boolean> {\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 return true;\n } catch (error) {\n printError(error, `Error listing java agents`);\n }\n return false;\n}\n\n/**\n * List web agents\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listWebAgents(long: boolean = false): Promise<boolean> {\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 return true;\n } catch (error) {\n printError(error, `Error listing web agents`);\n }\n return false;\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 * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportAgentsToFile(\n file: string,\n includeMeta: boolean = true\n): Promise<boolean> {\n try {\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 return true;\n } catch (error) {\n printError(error, `Error exporting agents to file`);\n }\n return false;\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 * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportIdentityGatewayAgentsToFile(\n file: string,\n includeMeta: boolean = true\n): Promise<boolean> {\n try {\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 return true;\n } catch (error) {\n printError(error, `Error exporting identity gateway agents to file`);\n }\n return false;\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 * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportJavaAgentsToFile(\n file: string,\n includeMeta: boolean = true\n): Promise<boolean> {\n try {\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 return true;\n } catch (error) {\n printError(error, `Error exporting java agents to file`);\n }\n return false;\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 * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportWebAgentsToFile(\n file: string,\n includeMeta: boolean = true\n): Promise<boolean> {\n try {\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 return true;\n } catch (error) {\n printError(error, `Error exporting web agents to file`);\n }\n return false;\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 * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportAgentToFile(\n agentId: string,\n file: string,\n includeMeta: boolean = true\n): Promise<boolean> {\n try {\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 return true;\n } catch (error) {\n printError(error, `Error exporting agent ${agentId} to file`);\n }\n return false;\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 * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportIdentityGatewayAgentToFile(\n agentId: string,\n file: string,\n includeMeta: boolean = true\n): Promise<boolean> {\n try {\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 return true;\n } catch (error) {\n printError(\n error,\n `Error exporting identity gateway agent ${agentId} to file`\n );\n }\n return false;\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 * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportJavaAgentToFile(\n agentId: string,\n file: string,\n includeMeta: boolean = true\n): Promise<boolean> {\n try {\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 return true;\n } catch (error) {\n printError(error, `Error exporting java agent ${agentId} to file`);\n }\n return false;\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 * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportWebAgentToFile(\n agentId: string,\n file: string,\n includeMeta: boolean = true\n): Promise<boolean> {\n try {\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 return true;\n } catch (error) {\n printError(error, `Error exporting web agent ${agentId} to file`);\n }\n return false;\n}\n\n/**\n * Export all agents to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportAgentsToFiles(\n includeMeta: boolean = true\n): Promise<boolean> {\n try {\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(\n `exportAgentsToFiles: exporting ${agent._id} to ${filePath}`\n );\n saveJsonToFile(exportData, filePath, includeMeta);\n }\n debugMessage(`exportAgentsToFiles: done.`);\n return true;\n } catch (error) {\n printError(error, `Error exporting agents to files`);\n }\n return false;\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 * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportIdentityGatewayAgentsToFiles(\n includeMeta = true\n): Promise<boolean> {\n try {\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 return true;\n } catch (error) {\n printError(error, `Error exporting identity gateway agents to files`);\n }\n return false;\n}\n\n/**\n * Export all java agents to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportJavaAgentsToFiles(\n includeMeta = true\n): Promise<boolean> {\n try {\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 return true;\n } catch (error) {\n printError(error, `Error exporting java agents to files`);\n }\n return false;\n}\n\n/**\n * Export all web agents to separate files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportWebAgentsToFiles(\n includeMeta = true\n): Promise<boolean> {\n try {\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 return true;\n } catch (error) {\n printError(error, `Error exporting web agents to files`);\n }\n return false;\n}\n\n/**\n * Import an agent from file\n * @param {string} agentId agent id/name\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importAgentFromFile(\n agentId: string,\n file: string\n): Promise<boolean> {\n try {\n const verbose = state.getVerbose();\n const data = fs.readFileSync(getFilePath(file), 'utf8');\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 return true;\n } catch (error) {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(\n spinnerId,\n `Error importing agent ${agentId}`,\n 'fail'\n );\n printError(error, `Error importing agent ${agentId}`);\n }\n } else {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agentId}...`\n );\n stopProgressIndicator(spinnerId, `${agentId} not found!`, 'fail');\n }\n } catch (error) {\n printError(error, `Error importing agent ${agentId} from file`);\n }\n return false;\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 * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importIdentityGatewayAgentFromFile(\n agentId: string,\n file: string\n): Promise<boolean> {\n try {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentFromFile: start`);\n const verbose = state.getVerbose();\n const data = fs.readFileSync(getFilePath(file), 'utf8');\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 return true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error importing identity gateway agent ${agentId}`,\n 'fail'\n );\n printError(error, `Error importing identity gateway agent ${agentId}`);\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 } catch (error) {\n printError(\n error,\n `Error importing identity gateway agent ${agentId} from file`\n );\n }\n return false;\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 * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importJavaAgentFromFile(\n agentId: string,\n file: string\n): Promise<boolean> {\n try {\n debugMessage(`cli.AgentOps.importJavaAgentFromFile: start`);\n const verbose = state.getVerbose();\n const data = fs.readFileSync(getFilePath(file), 'utf8');\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 return true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error importing java agent ${agentId}`,\n 'fail'\n );\n printError(error, `Error importing java agent ${agentId}`);\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 } catch (error) {\n printError(error, `Error importing java agent ${agentId} from file`);\n }\n return false;\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 * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importWebAgentFromFile(\n agentId: string,\n file: string\n): Promise<boolean> {\n try {\n debugMessage(`cli.AgentOps.importWebAgentFromFile: start`);\n const verbose = state.getVerbose();\n const data = fs.readFileSync(getFilePath(file), 'utf8');\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 return true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error importing web agent ${agentId}`,\n 'fail'\n );\n printError(error, `Error importing web agent ${agentId}`);\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 } catch (error) {\n printError(error, `Error importing web agent ${agentId} from file`);\n }\n return false;\n}\n\n/**\n * Import first agent from file\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstAgentFromFile(file: string): Promise<boolean> {\n try {\n const verbose = state.getVerbose();\n const data = fs.readFileSync(getFilePath(file), 'utf8');\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 return true;\n } catch (error) {\n if (verbose)\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing ${agent['_id']}...`\n );\n stopProgressIndicator(spinnerId, `${error}`, 'fail');\n printError(error, `Error importing first agent`);\n }\n return;\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n } catch (error) {\n printError(error, `Error importing first agent from file`);\n }\n return false;\n}\n\n/**\n * Import first identity gateway agent from file\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstIdentityGatewayAgentFromFile(\n file: string\n): Promise<boolean> {\n try {\n debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: start`);\n const verbose = state.getVerbose();\n const data = fs.readFileSync(getFilePath(file), 'utf8');\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 return true;\n } catch (error) {\n stopProgressIndicator(spinnerId, `${error}`, 'fail');\n printError(\n error,\n `Error importing first identity gateway agent from file`\n );\n }\n }\n } else {\n spinnerId = createProgressIndicator('indeterminate', 0, `Importing...`);\n stopProgressIndicator(spinnerId, `No agents found!`, 'fail');\n }\n debugMessage(`cli.AgentOps.importFirstIdentityGatewayAgentFromFile: end`);\n } catch (error) {\n printError(error, `Error importing first identity gateway agent from file`);\n }\n return false;\n}\n\n/**\n * Import first java agent from file\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstJavaAgentFromFile(\n file: string\n): Promise<boolean> {\n try {\n debugMessage(`cli.AgentOps.importFirstJavaAgentFromFile: start`);\n const verbose = state.getVerbose();\n const data = fs.readFileSync(getFilePath(file), 'utf8');\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 return true;\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 } catch (error) {\n printError(error, `Error importing first java agent from file`);\n }\n return false;\n}\n\n/**\n * Import web gateway agent from file\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstWebAgentFromFile(\n file: string\n): Promise<boolean> {\n try {\n debugMessage(`cli.AgentOps.importFirstWebAgentFromFile: start`);\n const verbose = state.getVerbose();\n const data = fs.readFileSync(getFilePath(file), 'utf8');\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 return true;\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 } catch (error) {\n printError(error, `Error importing first java agent from file`);\n }\n return false;\n}\n\n/**\n * Import agents from file\n * @param {String} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importAgentsFromFile(file: string): Promise<boolean> {\n try {\n debugMessage(`importAgentsFromFile: start`);\n const filePath = getFilePath(file);\n const data = fs.readFileSync(filePath, 'utf8');\n debugMessage(`importAgentsFromFile: importing ${filePath}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n await importAgents(importData);\n debugMessage(`importAgentsFromFile: end`);\n return true;\n } catch (error) {\n printError(error, `Error importing agents from file`);\n }\n return false;\n}\n\n/**\n * Import identity gateway agents from file\n * @param {String} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importIdentityGatewayAgentsFromFile(\n file: string\n): Promise<boolean> {\n try {\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: start`);\n const filePath = getFilePath(file);\n const data = fs.readFileSync(filePath, 'utf8');\n debugMessage(\n `cli.AgentOps.importIdentityGatewayAgentsFromFile: importing ${filePath}`\n );\n const importData = JSON.parse(data) as AgentExportInterface;\n await importIdentityGatewayAgents(importData);\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFile: end`);\n return true;\n } catch (error) {\n printError(error, `Error importing identity gateway agents from file`);\n }\n return false;\n}\n\n/**\n * Import java agents from file\n * @param {String} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importJavaAgentsFromFile(file: string): Promise<boolean> {\n try {\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: start`);\n const filePath = getFilePath(file);\n const data = fs.readFileSync(filePath, 'utf8');\n debugMessage(\n `cli.AgentOps.importJavaAgentsFromFile: importing ${filePath}`\n );\n const importData = JSON.parse(data) as AgentExportInterface;\n await importJavaAgents(importData);\n debugMessage(`cli.AgentOps.importJavaAgentsFromFile: end`);\n return true;\n } catch (error) {\n printError(error, `Error importing java agents from file`);\n }\n return false;\n}\n\n/**\n * Import web agents from file\n * @param {String} file file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importWebAgentsFromFile(file: string): Promise<boolean> {\n try {\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: start`);\n const filePath = getFilePath(file);\n const data = fs.readFileSync(filePath, 'utf8');\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: importing ${filePath}`);\n const importData = JSON.parse(data) as AgentExportInterface;\n await importWebAgents(importData);\n debugMessage(`cli.AgentOps.importWebAgentsFromFile: end`);\n return true;\n } catch (error) {\n printError(error, `Error importing web agents from file`);\n }\n return false;\n}\n\n/**\n * Import all agents from separate files\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importAgentsFromFiles(): Promise<boolean> {\n const errors: Error[] = [];\n try {\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 try {\n await importAgentsFromFile(file);\n } catch (error) {\n errors.push(\n new FrodoError(`Error importing agents from ${file}`, error)\n );\n }\n }\n if (errors.length > 0) {\n throw new FrodoError(`One or more errors importing agents`, errors);\n }\n return true;\n } catch (error) {\n if (errors.length > 0) {\n printError(error);\n } else {\n printError(error, `Error importing agents from files`);\n }\n }\n return false;\n}\n\n/**\n * Import all identity gateway agents from separate files\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importIdentityGatewayAgentsFromFiles(): Promise<boolean> {\n const errors: Error[] = [];\n try {\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 try {\n await importIdentityGatewayAgentsFromFile(file);\n } catch (error) {\n errors.push(\n new FrodoError(\n `Error importing identity gateway agents from ${file}`,\n error\n )\n );\n }\n }\n if (errors.length > 0) {\n throw new FrodoError(\n `One or more errors importing identity gateway agents`,\n errors\n );\n }\n debugMessage(`cli.AgentOps.importIdentityGatewayAgentsFromFiles: end`);\n return true;\n } catch (error) {\n if (errors.length > 0) {\n printError(error);\n } else {\n printError(error, `Error importing identity gateway agents from files`);\n }\n }\n return false;\n}\n\n/**\n * Import all java agents from separate files\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importJavaAgentsFromFiles(): Promise<boolean> {\n const errors: Error[] = [];\n try {\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 try {\n await importJavaAgentsFromFile(file);\n } catch (error) {\n errors.push(\n new FrodoError(`Error importing java agents from ${file}`, error)\n );\n }\n }\n if (errors.length > 0) {\n throw new FrodoError(`One or more errors importing java agents`, errors);\n }\n debugMessage(`cli.AgentOps.importJavaAgentsFromFiles: end`);\n return true;\n } catch (error) {\n if (errors.length > 0) {\n printError(error);\n } else {\n printError(error, `Error importing java agents from files`);\n }\n }\n return false;\n}\n\n/**\n * Import all web agents from separate files\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importWebAgentsFromFiles(): Promise<boolean> {\n const errors: Error[] = [];\n try {\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 try {\n await importWebAgentsFromFile(file);\n } catch (error) {\n errors.push(\n new FrodoError(`Error importing web agents from ${file}`, error)\n );\n }\n }\n if (errors.length > 0) {\n throw new FrodoError(`One or more errors importing web agents`, errors);\n }\n debugMessage(`cli.AgentOps.importWebAgentsFromFiles: end`);\n return true;\n } catch (error) {\n if (errors.length > 0) {\n printError(error);\n } else {\n printError(error, `Error importing web agents from files`);\n }\n }\n return false;\n}\n\n/**\n * Delete agent\n * @param {string} agentId agent id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteAgent(agentId: string): Promise<boolean> {\n try {\n await frodo.agent.deleteAgent(agentId);\n return true;\n } catch (error) {\n printError(error);\n }\n return false;\n}\n\n/**\n * Delete identity gateway agent\n * @param {string} agentId agent id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteIdentityGatewayAgent(\n agentId: string\n): Promise<boolean> {\n try {\n await frodo.agent.deleteIdentityGatewayAgent(agentId);\n return true;\n } catch (error) {\n printError(error);\n }\n return false;\n}\n\n/**\n * Delete java agent\n * @param {string} agentId agent id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteJavaAgent(agentId: string): Promise<boolean> {\n try {\n await frodo.agent.deleteJavaAgent(agentId);\n return true;\n } catch (error) {\n printError(error);\n }\n return false;\n}\n\n/**\n * Delete web agent\n * @param {string} agentId agent id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteWebAgent(agentId: string): Promise<boolean> {\n try {\n await frodo.agent.deleteWebAgent(agentId);\n return true;\n } catch (error) {\n printError(error);\n }\n return false;\n}\n\n/**\n * Delete agents\n * @param {string} agentId agent id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteAgents(): Promise<boolean> {\n try {\n await frodo.agent.deleteAgents();\n return true;\n } catch (error) {\n printError(error);\n }\n return false;\n}\n\n/**\n * Delete identity gateway agents\n * @param {string} agentId agent id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteIdentityGatewayAgents(): Promise<boolean> {\n try {\n await frodo.agent.deleteIdentityGatewayAgents();\n return true;\n } catch (error) {\n printError(error);\n }\n return false;\n}\n\n/**\n * Delete java agents\n * @param {string} agentId agent id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteJavaAgents(): Promise<boolean> {\n try {\n await frodo.agent.deleteJavaAgents();\n return true;\n } catch (error) {\n printError(error);\n }\n return false;\n}\n\n/**\n * Delete web agents\n * @param {string} agentId agent id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteWebAgents(): Promise<boolean> {\n try {\n await frodo.agent.deleteWebAgents();\n return true;\n } catch (error) {\n printError(error);\n }\n return false;\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { frodo, state } from '@rockcarver/frodo-lib';
1
+ import { frodo, FrodoError, state } from '@rockcarver/frodo-lib';
2
2
  import fs from 'fs';
3
- import { createProgressIndicator, createTable, debugMessage, failSpinner, printMessage, showSpinner, stopProgressIndicator, succeedSpinner, updateProgressIndicator } from '../utils/Console';
3
+ import { createProgressIndicator, createTable, debugMessage, printError, printMessage, stopProgressIndicator, updateProgressIndicator } from '../utils/Console';
4
4
  import wordwrap from './utils/Wordwrap';
5
5
  const {
6
6
  getTypedFilename,
@@ -51,9 +51,11 @@ export async function listApplications(long = false) {
51
51
  printMessage(`${app.name}`, 'data');
52
52
  });
53
53
  }
54
+ return true;
54
55
  } catch (error) {
55
- printMessage(`Error listing applications - ${error}`, 'error');
56
+ printError(error);
56
57
  }
58
+ return false;
57
59
  }
58
60
 
59
61
  /**
@@ -63,18 +65,19 @@ export async function listApplications(long = false) {
63
65
  * @returns {Promise<boolean>} true if successful, false otherwise
64
66
  */
65
67
  export async function deleteApplication(applicationName, deep) {
66
- let outcome = false;
67
- debugMessage(`cli.ApplicationOps.deleteApplication: begin`);
68
- showSpinner(`Deleting ${applicationName}...`);
68
+ let spinnerId;
69
69
  try {
70
+ debugMessage(`cli.ApplicationOps.deleteApplication: begin`);
71
+ spinnerId = createProgressIndicator('indeterminate', 0, `Deleting ${applicationName}...`);
70
72
  await _deleteApplicationByName(applicationName, deep);
71
- outcome = true;
72
- succeedSpinner(`Deleted ${applicationName}`);
73
+ stopProgressIndicator(spinnerId, `Deleted ${applicationName}`, 'success');
74
+ debugMessage(`cli.ApplicationOps.deleteApplication: end`);
75
+ return true;
73
76
  } catch (error) {
74
- failSpinner(`Error deleting ${applicationName}: ${error.message}`);
77
+ stopProgressIndicator(spinnerId, `Error deleting ${applicationName}`, 'fail');
78
+ printError(error);
75
79
  }
76
- debugMessage(`cli.ApplicationOps.deleteApplication: end`);
77
- return outcome;
80
+ return false;
78
81
  }
79
82
 
80
83
  /**
@@ -83,18 +86,19 @@ export async function deleteApplication(applicationName, deep) {
83
86
  * @returns {Promise<boolean>} true if successful, false otherwise
84
87
  */
85
88
  export async function deleteApplications(deep) {
86
- let outcome = false;
87
- debugMessage(`cli.ApplicationOps.deleteApplications: begin`);
88
- showSpinner(`Deleting all applications...`);
89
+ let spinnerId;
89
90
  try {
91
+ debugMessage(`cli.ApplicationOps.deleteApplications: begin`);
92
+ spinnerId = createProgressIndicator('indeterminate', 0, `Deleting applications...`);
90
93
  const deleted = await _deleteApplications(deep);
91
- outcome = true;
92
- succeedSpinner(`Deleted ${deleted.length} applications`);
94
+ stopProgressIndicator(spinnerId, `Deleted ${deleted.length} applications`, 'success');
95
+ debugMessage(`cli.ApplicationOps.deleteApplications: end`);
96
+ return true;
93
97
  } catch (error) {
94
- failSpinner(`Error deleting applications: ${error.message}`);
98
+ stopProgressIndicator(spinnerId, `Error deleting applications`, 'fail');
99
+ printError(error);
95
100
  }
96
- debugMessage(`cli.ApplicationOps.deleteApplications: end`);
97
- return outcome;
101
+ return false;
98
102
  }
99
103
 
100
104
  /**
@@ -109,10 +113,10 @@ export async function exportApplicationToFile(applicationName, file, includeMeta
109
113
  useStringArrays: true,
110
114
  deps: true
111
115
  }) {
112
- let outcome = false;
113
- debugMessage(`cli.ApplicationOps.exportApplicationToFile: begin`);
114
- showSpinner(`Exporting ${applicationName}...`);
116
+ let spinnerId;
115
117
  try {
118
+ debugMessage(`cli.ApplicationOps.exportApplicationToFile: begin`);
119
+ spinnerId = createProgressIndicator('indeterminate', 0, `Exporting ${applicationName}...`);
116
120
  let fileName = getTypedFilename(applicationName, 'application');
117
121
  if (file) {
118
122
  fileName = file;
@@ -120,13 +124,14 @@ export async function exportApplicationToFile(applicationName, file, includeMeta
120
124
  const filePath = getFilePath(fileName, true);
121
125
  const exportData = await _exportApplicationByName(applicationName, options);
122
126
  saveJsonToFile(exportData, filePath, includeMeta);
123
- succeedSpinner(`Exported ${applicationName} to ${filePath}.`);
124
- outcome = true;
127
+ stopProgressIndicator(spinnerId, `Exported ${applicationName} to ${filePath}.`, 'success');
128
+ debugMessage(`cli.ApplicationOps.exportApplicationToFile: end`);
129
+ return true;
125
130
  } catch (error) {
126
- failSpinner(`Error exporting ${applicationName}: ${error.message}`);
131
+ stopProgressIndicator(spinnerId, `Error exporting ${applicationName}`, 'fail');
132
+ printError(error);
127
133
  }
128
- debugMessage(`cli.ApplicationOps.exportApplicationToFile: end`);
129
- return outcome;
134
+ return false;
130
135
  }
131
136
 
132
137
  /**
@@ -140,10 +145,10 @@ export async function exportApplicationsToFile(file, includeMeta, options = {
140
145
  useStringArrays: true,
141
146
  deps: true
142
147
  }) {
143
- let outcome = false;
144
- debugMessage(`cli.ApplicationOps.exportApplicationsToFile: begin`);
145
- showSpinner(`Exporting all applications...`);
148
+ let spinnerId;
146
149
  try {
150
+ debugMessage(`cli.ApplicationOps.exportApplicationsToFile: begin`);
151
+ spinnerId = createProgressIndicator('indeterminate', 0, `Exporting applications...`);
147
152
  let fileName = getTypedFilename(`all${titleCase(frodo.utils.getRealmName(state.getRealm()))}Applications`, 'application');
148
153
  if (file) {
149
154
  fileName = file;
@@ -151,14 +156,14 @@ export async function exportApplicationsToFile(file, includeMeta, options = {
151
156
  const filePath = getFilePath(fileName, true);
152
157
  const exportData = await _exportApplications(options);
153
158
  saveJsonToFile(exportData, filePath, includeMeta);
154
- succeedSpinner(`Exported all applications to ${filePath}.`);
155
- outcome = true;
159
+ stopProgressIndicator(spinnerId, `Exported applications to ${filePath}.`, 'success');
160
+ debugMessage(`cli.ApplicationOps.exportApplicationsToFile: end`);
161
+ return true;
156
162
  } catch (error) {
157
- failSpinner(`Error exporting all applications`);
158
- printMessage(`${error.message}`, 'error');
163
+ stopProgressIndicator(spinnerId, `Error exporting applications`, 'fail');
164
+ printError(error);
159
165
  }
160
- debugMessage(`cli.ApplicationOps.exportApplicationsToFile: end [${outcome}]`);
161
- return outcome;
166
+ return false;
162
167
  }
163
168
 
164
169
  /**
@@ -173,32 +178,36 @@ export async function exportApplicationsToFiles(includeMeta, options = {
173
178
  }) {
174
179
  debugMessage(`cli.ApplicationOps.exportApplicationsToFiles: begin`);
175
180
  const errors = [];
176
- let barId;
181
+ let totalBarId;
177
182
  try {
178
183
  const applications = await _readApplications();
179
- barId = createProgressIndicator('determinate', applications.length, 'Exporting applications...');
184
+ totalBarId = createProgressIndicator('determinate', applications.length, 'Exporting applications...');
180
185
  for (const application of applications) {
181
186
  const fileBarId = createProgressIndicator('determinate', 1, `Exporting application ${application.name}...`);
182
187
  const file = getFilePath(getTypedFilename(application.name, 'application'), true);
183
188
  try {
184
- updateProgressIndicator(barId, `Exporting ${application.name}.`);
189
+ updateProgressIndicator(totalBarId, `Exporting ${application.name}.`);
185
190
  const exportData = await _exportApplication(application._id, options);
186
191
  saveJsonToFile(exportData, file, includeMeta);
187
192
  updateProgressIndicator(fileBarId, `Saving ${application.name} to ${file}.`);
188
193
  stopProgressIndicator(fileBarId, `${application.name} saved to ${file}.`);
189
194
  } catch (error) {
190
195
  errors.push(error);
191
- updateProgressIndicator(barId, `Error exporting ${application.name}.`);
192
- stopProgressIndicator(fileBarId, `Error saving ${application.name} to ${file}.`);
196
+ updateProgressIndicator(totalBarId, `Error exporting ${application.name}.`);
197
+ stopProgressIndicator(fileBarId, `Error saving ${application.name} to ${file}.`, 'fail');
193
198
  }
194
199
  }
195
- stopProgressIndicator(barId, `Export complete.`);
200
+ stopProgressIndicator(totalBarId, `Export complete.`);
201
+ if (errors.length > 0) {
202
+ throw new FrodoError(`Error exporting applications(s) to file(s)`, errors);
203
+ }
204
+ debugMessage(`cli.ApplicationOps.exportApplicationsToFiles: end`);
205
+ return true;
196
206
  } catch (error) {
197
- errors.push(error);
198
- stopProgressIndicator(barId, `Error exporting applications(s) to file(s)`);
207
+ stopProgressIndicator(totalBarId, `Error exporting applications(s) to file(s)`, 'fail');
208
+ printError(error);
199
209
  }
200
- debugMessage(`cli.ApplicationOps.exportApplicationsToFiles: end`);
201
- return 0 === errors.length;
210
+ return false;
202
211
  }
203
212
 
204
213
  /**
@@ -211,21 +220,21 @@ export async function exportApplicationsToFiles(includeMeta, options = {
211
220
  export async function importApplicationFromFile(applicationName, file, options = {
212
221
  deps: true
213
222
  }) {
214
- let outcome = false;
215
- debugMessage(`cli.ApplicationOps.importApplicationFromFile: begin`);
216
- showSpinner(`Importing ${applicationName}...`);
223
+ let spinnerId;
217
224
  try {
225
+ debugMessage(`cli.ApplicationOps.importApplicationFromFile: begin`);
226
+ spinnerId = createProgressIndicator('indeterminate', 0, `Exporting applications...`);
218
227
  const data = fs.readFileSync(getFilePath(file), 'utf8');
219
228
  const fileData = JSON.parse(data);
220
229
  await _importApplicationByName(applicationName, fileData, options);
221
- outcome = true;
222
- succeedSpinner(`Imported ${applicationName}.`);
230
+ stopProgressIndicator(spinnerId, `Imported ${applicationName}`, 'success');
231
+ debugMessage(`cli.ApplicationOps.importApplicationFromFile: end`);
232
+ return true;
223
233
  } catch (error) {
224
- failSpinner(`Error importing ${applicationName}.`);
225
- printMessage(error, 'error');
234
+ stopProgressIndicator(spinnerId, `Error importing ${applicationName}`, 'fail');
235
+ printError(error);
226
236
  }
227
- debugMessage(`cli.ApplicationOps.importApplicationFromFile: end`);
228
- return outcome;
237
+ return false;
229
238
  }
230
239
 
231
240
  /**
@@ -237,22 +246,22 @@ export async function importApplicationFromFile(applicationName, file, options =
237
246
  export async function importFirstApplicationFromFile(file, options = {
238
247
  deps: true
239
248
  }) {
240
- let outcome = false;
241
- debugMessage(`cli.ApplicationOps.importFirstApplicationFromFile: begin`);
242
- const filePath = getFilePath(file);
243
- showSpinner(`Importing ${filePath}...`);
249
+ let spinnerId;
244
250
  try {
251
+ debugMessage(`cli.ApplicationOps.importFirstApplicationFromFile: begin`);
252
+ const filePath = getFilePath(file);
253
+ spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${filePath}...`);
245
254
  const data = fs.readFileSync(filePath, 'utf8');
246
255
  const fileData = JSON.parse(data);
247
256
  await _importFirstApplication(fileData, options);
248
- outcome = true;
249
- succeedSpinner(`Imported ${filePath}.`);
257
+ stopProgressIndicator(spinnerId, `Imported ${filePath}`, 'success');
258
+ debugMessage(`cli.ApplicationOps.importFirstApplicationFromFile: end`);
259
+ return true;
250
260
  } catch (error) {
251
- failSpinner(`Error importing ${filePath}.`);
252
- printMessage(error, 'error');
261
+ stopProgressIndicator(spinnerId, `Error importing first application`, 'fail');
262
+ printError(error);
253
263
  }
254
- debugMessage(`cli.ApplicationOps.importFirstApplicationFromFile: end`);
255
- return outcome;
264
+ return false;
256
265
  }
257
266
 
258
267
  /**
@@ -264,22 +273,22 @@ export async function importFirstApplicationFromFile(file, options = {
264
273
  export async function importApplicationsFromFile(file, options = {
265
274
  deps: true
266
275
  }) {
267
- let outcome = false;
268
- debugMessage(`cli.ApplicationOps.importApplicationsFromFile: begin`);
269
- const filePath = getFilePath(file);
270
- showSpinner(`Importing ${filePath}...`);
276
+ let spinnerId;
271
277
  try {
278
+ debugMessage(`cli.ApplicationOps.importApplicationsFromFile: begin`);
279
+ const filePath = getFilePath(file);
280
+ spinnerId = createProgressIndicator('indeterminate', 0, `Importing ${filePath}...`);
272
281
  const data = fs.readFileSync(filePath, 'utf8');
273
282
  const applicationData = JSON.parse(data);
274
283
  await _importApplications(applicationData, options);
275
- outcome = true;
276
- succeedSpinner(`Imported ${filePath}.`);
284
+ stopProgressIndicator(spinnerId, `Imported ${filePath}`, 'success');
285
+ debugMessage(`cli.ApplicationOps.importApplicationsFromFile: end`);
286
+ return true;
277
287
  } catch (error) {
278
- failSpinner(`Error importing ${filePath}.`);
279
- printMessage(error, 'error');
288
+ stopProgressIndicator(spinnerId, `Error importing first application`, 'fail');
289
+ printError(error);
280
290
  }
281
- debugMessage(`cli.ApplicationOps.importApplicationsFromFile: end`);
282
- return outcome;
291
+ return false;
283
292
  }
284
293
 
285
294
  /**
@@ -312,13 +321,16 @@ export async function importApplicationsFromFiles(options = {
312
321
  printMessage(error, 'error');
313
322
  }
314
323
  }
324
+ if (errors.length > 0) {
325
+ throw new FrodoError(`Error importing applications`, errors);
326
+ }
315
327
  stopProgressIndicator(barId, `Finished importing ${total} application(s) from ${files.length} file(s).`);
328
+ debugMessage(`cli.ApplicationOps.importApplicationsFromFiles: end`);
329
+ return true;
316
330
  } catch (error) {
317
- errors.push(error);
318
- stopProgressIndicator(barId, `Error importing application(s) from file(s).`);
331
+ stopProgressIndicator(barId, `Error importing applications`);
319
332
  printMessage(error, 'error');
320
333
  }
321
- debugMessage(`cli.ApplicationOps.importApplicationsFromFiles: end`);
322
- return 0 === errors.length;
334
+ return false;
323
335
  }
324
336
  //# sourceMappingURL=ApplicationOps.js.map