@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":"journey-describe.js","names":["frodo","state","Option","fs","describeJourney","describeJourneyMd","printMessage","verboseMessage","FrodoCommand","saveTextToFile","utils","getTokens","login","createFileParamTreeExportResolver","readJourneys","exportJourney","authn","journey","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getHost","outputFile","setOutputFile","file","process","exitCode","_fileData$tree","_fileData$tree2","overrideVersion","setAmVersion","fileData","JSON","parse","readFileSync","journeyData","journeyId","trees","Object","values","tree","_id","Error","markdown","error","message","getRealm","journeys","treeData"],"sources":["../../../src/cli/journey/journey-describe.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\nimport fs from 'fs';\n\nimport { describeJourney, describeJourneyMd } from '../../ops/JourneyOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { saveTextToFile } = frodo.utils;\nconst { getTokens } = frodo.login;\nconst { createFileParamTreeExportResolver, readJourneys, exportJourney } =\n frodo.authn.journey;\n\nconst program = new FrodoCommand('frodo journey describe');\n\nprogram\n .description(\n 'If -h is supplied, describe the journey/tree indicated by -i, or all journeys/trees in the realm if no -i is supplied, otherwise describe the journey/tree export file indicated by -f.'\n )\n .addOption(\n new Option(\n '-i, --journey-id <journey>',\n 'Name of a journey/tree. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file <file>',\n 'Name of the journey export file to describe. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-F, --output-file <file>',\n 'Name of the file to write the output to.'\n )\n )\n .addOption(new Option('--markdown', 'Output in markdown.'))\n .addOption(\n new Option(\n '-o, --override-version <version>',\n \"Override version. Notation: '<major>.<minor>.<patch>' e.g. '7.2.0'. Override detected version with any version. This is helpful in order to check if journeys in one environment would be compatible running in another environment (e.g. in preparation of migrating from on-prem to ForgeRock Identity Cloud.\"\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n host = host ? host : state.getHost();\n if (options.outputFile) state.setOutputFile(options.outputFile);\n // TODO: review checks for arguments\n if (typeof host === 'undefined' || typeof options.file !== 'undefined') {\n if (\n typeof host === 'undefined' &&\n typeof options.file === 'undefined'\n ) {\n printMessage('Need either [host] or -f.', 'error');\n process.exitCode = 1;\n return;\n }\n verboseMessage(`Describing local journey file ${options.file}...`);\n try {\n // override version\n if (typeof options.overrideVersion !== 'undefined') {\n state.setAmVersion(options.overrideVersion);\n }\n const fileData = JSON.parse(fs.readFileSync(options.file, 'utf8'));\n let journeyData;\n // single or multi tree export?\n // multi - by id\n if (\n typeof options.journeyId !== 'undefined' &&\n fileData.trees &&\n fileData.trees[options.journeyId]\n ) {\n journeyData = fileData.trees[options.journeyId];\n }\n // multi - first\n else if (typeof options.journeyId === 'undefined' && fileData.trees) {\n [journeyData] = Object.values(fileData.trees);\n }\n // single - by id\n else if (\n typeof options.journeyId !== 'undefined' &&\n options.journeyId === fileData.tree?._id\n ) {\n journeyData = fileData;\n }\n // single\n else if (\n typeof options.journeyId === 'undefined' &&\n fileData.tree?._id\n ) {\n journeyData = fileData;\n }\n // no journey/tree found\n else {\n throw new Error(\n typeof options.journeyId === 'undefined'\n ? `No journey found in ${options.file}`\n : `Journey '${options.journeyId}' not found in ${options.file}`\n );\n }\n // ANSI text output\n if (!options.markdown) {\n await describeJourney(\n journeyData,\n createFileParamTreeExportResolver(options.file)\n );\n }\n // Markdown output\n else {\n // reset output file\n if (options.outputFile) saveTextToFile('', options.outputFile);\n await describeJourneyMd(\n journeyData,\n createFileParamTreeExportResolver(options.file)\n );\n }\n } catch (error) {\n printMessage(error.message, 'error');\n process.exitCode = 1;\n }\n } else if (await getTokens()) {\n verboseMessage(\n `Describing journey(s) in realm \"${state.getRealm()}\"...`\n );\n // override version\n if (typeof options.overrideVersion !== 'undefined') {\n state.setAmVersion(options.overrideVersion);\n }\n if (typeof options.journeyId === 'undefined') {\n let journeys = [];\n journeys = await readJourneys();\n for (const journey of journeys) {\n try {\n // eslint-disable-next-line no-await-in-loop, dot-notation\n const treeData = await exportJourney(journey['_id']);\n // ANSI text output\n if (!options.markdown) {\n await describeJourney(treeData);\n }\n // Markdown output\n else {\n // reset output file\n if (options.outputFile) saveTextToFile('', options.outputFile);\n await describeJourneyMd(treeData);\n }\n } catch (error) {\n printMessage(error.message, 'error');\n process.exitCode = 1;\n }\n }\n } else {\n try {\n const treeData = await exportJourney(options.journeyId);\n // ANSI text output\n if (!options.markdown) {\n await describeJourney(treeData);\n }\n // Markdown output\n else {\n // reset output file\n if (options.outputFile) saveTextToFile('', options.outputFile);\n await describeJourneyMd(treeData);\n }\n } catch (error) {\n printMessage(error.message, 'error');\n process.exitCode = 1;\n }\n }\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"journey-describe.js","names":["frodo","state","Option","fs","getTokens","describeJourney","describeJourneyMd","printError","printMessage","verboseMessage","FrodoCommand","saveTextToFile","utils","createFileParamTreeExportResolver","readJourneys","exportJourney","authn","journey","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getHost","outputFile","setOutputFile","file","process","exitCode","_fileData$tree","_fileData$tree2","overrideVersion","setAmVersion","fileData","JSON","parse","readFileSync","journeyData","journeyId","trees","Object","values","tree","_id","Error","markdown","outcome","error","message","getRealm","journeys","treeData"],"sources":["../../../src/cli/journey/journey-describe.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\nimport fs from 'fs';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { describeJourney, describeJourneyMd } from '../../ops/JourneyOps';\nimport { printError, printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { saveTextToFile } = frodo.utils;\nconst { createFileParamTreeExportResolver, readJourneys, exportJourney } =\n frodo.authn.journey;\n\nconst program = new FrodoCommand('frodo journey describe');\n\nprogram\n .description(\n 'If -h is supplied, describe the journey/tree indicated by -i, or all journeys/trees in the realm if no -i is supplied, otherwise describe the journey/tree export file indicated by -f.'\n )\n .addOption(\n new Option(\n '-i, --journey-id <journey>',\n 'Name of a journey/tree. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file <file>',\n 'Name of the journey export file to describe. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-F, --output-file <file>',\n 'Name of the file to write the output to.'\n )\n )\n .addOption(new Option('--markdown', 'Output in markdown.'))\n .addOption(\n new Option(\n '-o, --override-version <version>',\n \"Override version. Notation: '<major>.<minor>.<patch>' e.g. '7.2.0'. Override detected version with any version. This is helpful in order to check if journeys in one environment would be compatible running in another environment (e.g. in preparation of migrating from on-prem to ForgeRock Identity Cloud.\"\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n host = host ? host : state.getHost();\n if (options.outputFile) state.setOutputFile(options.outputFile);\n // TODO: review checks for arguments\n if (typeof host === 'undefined' || typeof options.file !== 'undefined') {\n if (\n typeof host === 'undefined' &&\n typeof options.file === 'undefined'\n ) {\n printMessage('Need either [host] or -f.', 'error');\n process.exitCode = 1;\n return;\n }\n verboseMessage(`Describing local journey file ${options.file}...`);\n try {\n // override version\n if (typeof options.overrideVersion !== 'undefined') {\n state.setAmVersion(options.overrideVersion);\n }\n const fileData = JSON.parse(fs.readFileSync(options.file, 'utf8'));\n let journeyData;\n // single or multi tree export?\n // multi - by id\n if (\n typeof options.journeyId !== 'undefined' &&\n fileData.trees &&\n fileData.trees[options.journeyId]\n ) {\n journeyData = fileData.trees[options.journeyId];\n }\n // multi - first\n else if (typeof options.journeyId === 'undefined' && fileData.trees) {\n [journeyData] = Object.values(fileData.trees);\n }\n // single - by id\n else if (\n typeof options.journeyId !== 'undefined' &&\n options.journeyId === fileData.tree?._id\n ) {\n journeyData = fileData;\n }\n // single\n else if (\n typeof options.journeyId === 'undefined' &&\n fileData.tree?._id\n ) {\n journeyData = fileData;\n }\n // no journey/tree found\n else {\n throw new Error(\n typeof options.journeyId === 'undefined'\n ? `No journey found in ${options.file}`\n : `Journey '${options.journeyId}' not found in ${options.file}`\n );\n }\n // ANSI text output\n if (!options.markdown) {\n const outcome = await describeJourney(\n journeyData,\n createFileParamTreeExportResolver(options.file)\n );\n if (!outcome) process.exitCode = 1;\n }\n // Markdown output\n else {\n // reset output file\n if (options.outputFile) saveTextToFile('', options.outputFile);\n const outcome = await describeJourneyMd(\n journeyData,\n createFileParamTreeExportResolver(options.file)\n );\n if (!outcome) process.exitCode = 1;\n }\n } catch (error) {\n printMessage(error.message, 'error');\n process.exitCode = 1;\n }\n } else if (await getTokens()) {\n verboseMessage(\n `Describing journey(s) in realm \"${state.getRealm()}\"...`\n );\n // override version\n if (typeof options.overrideVersion !== 'undefined') {\n state.setAmVersion(options.overrideVersion);\n }\n if (typeof options.journeyId === 'undefined') {\n let journeys = [];\n journeys = await readJourneys();\n for (const journey of journeys) {\n try {\n // eslint-disable-next-line no-await-in-loop, dot-notation\n const treeData = await exportJourney(journey['_id']);\n // ANSI text output\n if (!options.markdown) {\n const outcome = await describeJourney(treeData);\n if (!outcome) process.exitCode = 1;\n }\n // Markdown output\n else {\n // reset output file\n if (options.outputFile) saveTextToFile('', options.outputFile);\n const outcome = await describeJourneyMd(treeData);\n if (!outcome) process.exitCode = 1;\n }\n } catch (error) {\n printError(error);\n process.exitCode = 1;\n }\n }\n } else {\n try {\n const treeData = await exportJourney(options.journeyId);\n // ANSI text output\n if (!options.markdown) {\n const outcome = await describeJourney(treeData);\n if (!outcome) process.exitCode = 1;\n }\n // Markdown output\n else {\n // reset output file\n if (options.outputFile) saveTextToFile('', options.outputFile);\n const outcome = await describeJourneyMd(treeData);\n if (!outcome) process.exitCode = 1;\n }\n } catch (error) {\n printError(error);\n process.exitCode = 1;\n }\n }\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
@@ -1,11 +1,8 @@
1
- import { frodo } from '@rockcarver/frodo-lib';
2
1
  import { Option } from 'commander';
2
+ import { getTokens } from '../../ops/AuthenticateOps';
3
3
  import { disableJourney } from '../../ops/JourneyOps';
4
4
  import { printMessage } from '../../utils/Console';
5
5
  import { FrodoCommand } from '../FrodoCommand';
6
- const {
7
- getTokens
8
- } = frodo.login;
9
6
  const program = new FrodoCommand('frodo journey disable');
10
7
  program.description('Disable journeys/trees.').addOption(new Option('-i, --journey-id <journey>', 'Name of a journey/tree.'))
11
8
  // .addOption(
@@ -1 +1 @@
1
- {"version":3,"file":"journey-disable.js","names":["frodo","Option","disableJourney","printMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","journeyId","outcome","process","exitCode","help","parse"],"sources":["../../../src/cli/journey/journey-disable.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { disableJourney } from '../../ops/JourneyOps';\nimport { printMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo journey disable');\n\nprogram\n .description('Disable journeys/trees.')\n .addOption(\n new Option('-i, --journey-id <journey>', 'Name of a journey/tree.')\n )\n // .addOption(\n // new Option(\n // '-a, --all',\n // 'Disable all the journeys/trees in a realm. Ignored with -i.'\n // )\n // )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // disable\n if (options.journeyId && (await getTokens())) {\n const outcome = await disableJourney(options.journeyId);\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,uBAAuB,CAAC;AAEzDG,OAAO,CACJC,WAAW,CAAC,yBAAyB,CAAC,CACtCC,SAAS,CACR,IAAIR,MAAM,CAAC,4BAA4B,EAAE,yBAAyB,CACpE;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,CACCS,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,SAAS,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IAC5C,MAAMc,OAAO,GAAG,MAAMjB,cAAc,CAACa,OAAO,CAACG,SAAS,CAAC;IACvD,IAAI,CAACC,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHlB,YAAY,CAAC,sDAAsD,CAAC;IACpEI,OAAO,CAACe,IAAI,CAAC,CAAC;IACdF,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHd,OAAO,CAACgB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"journey-disable.js","names":["Option","getTokens","disableJourney","printMessage","FrodoCommand","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","journeyId","outcome","process","exitCode","help","parse"],"sources":["../../../src/cli/journey/journey-disable.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { disableJourney } from '../../ops/JourneyOps';\nimport { printMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo journey disable');\n\nprogram\n .description('Disable journeys/trees.')\n .addOption(\n new Option('-i, --journey-id <journey>', 'Name of a journey/tree.')\n )\n // .addOption(\n // new Option(\n // '-a, --all',\n // 'Disable all the journeys/trees in a realm. Ignored with -i.'\n // )\n // )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // disable\n if (options.journeyId && (await getTokens())) {\n const outcome = await disableJourney(options.journeyId);\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,uBAAuB,CAAC;AAEzDC,OAAO,CACJC,WAAW,CAAC,yBAAyB,CAAC,CACtCC,SAAS,CACR,IAAIP,MAAM,CAAC,4BAA4B,EAAE,yBAAyB,CACpE;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,CACCQ,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,SAAS,KAAK,MAAMf,SAAS,CAAC,CAAC,CAAC,EAAE;IAC5C,MAAMgB,OAAO,GAAG,MAAMf,cAAc,CAACW,OAAO,CAACG,SAAS,CAAC;IACvD,IAAI,CAACC,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHhB,YAAY,CAAC,sDAAsD,CAAC;IACpEE,OAAO,CAACe,IAAI,CAAC,CAAC;IACdF,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHd,OAAO,CAACgB,KAAK,CAAC,CAAC"}
@@ -1,11 +1,8 @@
1
- import { frodo } from '@rockcarver/frodo-lib';
2
1
  import { Option } from 'commander';
2
+ import { getTokens } from '../../ops/AuthenticateOps';
3
3
  import { enableJourney } from '../../ops/JourneyOps';
4
4
  import { printMessage } from '../../utils/Console';
5
5
  import { FrodoCommand } from '../FrodoCommand';
6
- const {
7
- getTokens
8
- } = frodo.login;
9
6
  const program = new FrodoCommand('frodo journey enable');
10
7
  program.description('Enable journeys/trees.').addOption(new Option('-i, --journey-id <journey>', 'Name of a journey/tree.'))
11
8
  // .addOption(
@@ -1 +1 @@
1
- {"version":3,"file":"journey-enable.js","names":["frodo","Option","enableJourney","printMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","journeyId","outcome","process","exitCode","help","parse"],"sources":["../../../src/cli/journey/journey-enable.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { enableJourney } from '../../ops/JourneyOps';\nimport { printMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo journey enable');\n\nprogram\n .description('Enable journeys/trees.')\n .addOption(\n new Option('-i, --journey-id <journey>', 'Name of a journey/tree.')\n )\n // .addOption(\n // new Option(\n // '-a, --all',\n // 'Enable all the journeys/trees in a realm. Ignored with -i.'\n // )\n // )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // enable\n if (options.journeyId && (await getTokens())) {\n const outcome = await enableJourney(options.journeyId);\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,aAAa,QAAQ,sBAAsB;AACpD,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,sBAAsB,CAAC;AAExDG,OAAO,CACJC,WAAW,CAAC,wBAAwB,CAAC,CACrCC,SAAS,CACR,IAAIR,MAAM,CAAC,4BAA4B,EAAE,yBAAyB,CACpE;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,CACCS,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,SAAS,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IAC5C,MAAMc,OAAO,GAAG,MAAMjB,aAAa,CAACa,OAAO,CAACG,SAAS,CAAC;IACtD,IAAI,CAACC,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHlB,YAAY,CAAC,sDAAsD,CAAC;IACpEI,OAAO,CAACe,IAAI,CAAC,CAAC;IACdF,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHd,OAAO,CAACgB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"journey-enable.js","names":["Option","getTokens","enableJourney","printMessage","FrodoCommand","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","journeyId","outcome","process","exitCode","help","parse"],"sources":["../../../src/cli/journey/journey-enable.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { enableJourney } from '../../ops/JourneyOps';\nimport { printMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo journey enable');\n\nprogram\n .description('Enable journeys/trees.')\n .addOption(\n new Option('-i, --journey-id <journey>', 'Name of a journey/tree.')\n )\n // .addOption(\n // new Option(\n // '-a, --all',\n // 'Enable all the journeys/trees in a realm. Ignored with -i.'\n // )\n // )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // enable\n if (options.journeyId && (await getTokens())) {\n const outcome = await enableJourney(options.journeyId);\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,aAAa,QAAQ,sBAAsB;AACpD,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,sBAAsB,CAAC;AAExDC,OAAO,CACJC,WAAW,CAAC,wBAAwB,CAAC,CACrCC,SAAS,CACR,IAAIP,MAAM,CAAC,4BAA4B,EAAE,yBAAyB,CACpE;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,CACCQ,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,SAAS,KAAK,MAAMf,SAAS,CAAC,CAAC,CAAC,EAAE;IAC5C,MAAMgB,OAAO,GAAG,MAAMf,aAAa,CAACW,OAAO,CAACG,SAAS,CAAC;IACtD,IAAI,CAACC,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHhB,YAAY,CAAC,sDAAsD,CAAC;IACpEE,OAAO,CAACe,IAAI,CAAC,CAAC;IACdF,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHd,OAAO,CAACgB,KAAK,CAAC,CAAC"}
@@ -1,11 +1,8 @@
1
- import { frodo } from '@rockcarver/frodo-lib';
2
1
  import { Option } from 'commander';
2
+ import { getTokens } from '../../ops/AuthenticateOps';
3
3
  import { exportJourneysToFile, exportJourneysToFiles, exportJourneyToFile } from '../../ops/JourneyOps';
4
4
  import { printMessage, verboseMessage } from '../../utils/Console';
5
5
  import { FrodoCommand } from '../FrodoCommand';
6
- const {
7
- getTokens
8
- } = frodo.login;
9
6
  const program = new FrodoCommand('frodo journey export');
10
7
  program.description('Export journeys/trees.').addOption(new Option('-i, --journey-id <journey>', 'Name of a journey/tree. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file <file>', 'Name of the file to write the exported journey(s) to. Ignored with -A.')).addOption(new Option('-a, --all', 'Export all the journeys/trees in a realm. Ignored with -i.')).addOption(new Option('-A, --all-separate', 'Export all the journeys/trees in a realm as separate files <journey/tree name>.json. Ignored with -i or -a.')).addOption(new Option('-N, --no-metadata', 'Does not include metadata in the export file.')).addOption(new Option('--use-string-arrays', 'Where applicable, use string arrays to store multi-line text (e.g. scripts).').default(false, 'off')).addOption(new Option('--no-deps', 'Do not include any dependencies (scripts, email templates, SAML entity providers and circles of trust, social identity providers, themes).')).addOption(new Option('--no-coords', 'Do not include the x and y coordinate positions of the journey/tree nodes.'))
11
8
  // .addOption(
@@ -24,29 +21,32 @@ async (host, realm, user, password, options, command) => {
24
21
  // export
25
22
  if (options.journeyId && (await getTokens())) {
26
23
  verboseMessage('Exporting journey...');
27
- await exportJourneyToFile(options.journeyId, options.file, options.metadata, {
24
+ const outcome = await exportJourneyToFile(options.journeyId, options.file, options.metadata, {
28
25
  useStringArrays: options.useStringArrays,
29
26
  deps: options.deps,
30
27
  coords: options.coords
31
28
  });
29
+ if (!outcome) process.exitCode = 1;
32
30
  }
33
31
  // --all -a
34
32
  else if (options.all && (await getTokens())) {
35
33
  verboseMessage('Exporting all journeys to a single file...');
36
- await exportJourneysToFile(options.file, options.metadata, {
34
+ const outcome = await exportJourneysToFile(options.file, options.metadata, {
37
35
  useStringArrays: options.useStringArrays,
38
36
  deps: options.deps,
39
37
  coords: options.coords
40
38
  });
39
+ if (!outcome) process.exitCode = 1;
41
40
  }
42
41
  // --all-separate -A
43
42
  else if (options.allSeparate && (await getTokens())) {
44
43
  verboseMessage('Exporting all journeys to separate files...');
45
- await exportJourneysToFiles(options.metadata, {
44
+ const outcome = await exportJourneysToFiles(options.metadata, {
46
45
  useStringArrays: options.useStringArrays,
47
46
  deps: options.deps,
48
47
  coords: options.coords
49
48
  });
49
+ if (!outcome) process.exitCode = 1;
50
50
  }
51
51
  // unrecognized combination of options or no options
52
52
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"journey-export.js","names":["frodo","Option","exportJourneysToFile","exportJourneysToFiles","exportJourneyToFile","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","journeyId","file","metadata","useStringArrays","deps","coords","all","allSeparate","help","process","exitCode","parse"],"sources":["../../../src/cli/journey/journey-export.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport {\n exportJourneysToFile,\n exportJourneysToFiles,\n exportJourneyToFile,\n} from '../../ops/JourneyOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo journey export');\n\nprogram\n .description('Export journeys/trees.')\n .addOption(\n new Option(\n '-i, --journey-id <journey>',\n 'Name of a journey/tree. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file <file>',\n 'Name of the file to write the exported journey(s) to. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Export all the journeys/trees in a realm. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all the journeys/trees in a realm as separate files <journey/tree name>.json. Ignored with -i or -a.'\n )\n )\n .addOption(\n new Option(\n '-N, --no-metadata',\n 'Does not include metadata in the export file.'\n )\n )\n .addOption(\n new Option(\n '--use-string-arrays',\n 'Where applicable, use string arrays to store multi-line text (e.g. scripts).'\n ).default(false, 'off')\n )\n .addOption(\n new Option(\n '--no-deps',\n 'Do not include any dependencies (scripts, email templates, SAML entity providers and circles of trust, social identity providers, themes).'\n )\n )\n .addOption(\n new Option(\n '--no-coords',\n 'Do not include the x and y coordinate positions of the journey/tree nodes.'\n )\n )\n // .addOption(\n // new Option(\n // '-O, --organize <method>',\n // 'Organize exports into folders using the indicated method. Valid values for method:\\n' +\n // 'id: folders named by id of exported object\\n' +\n // 'type: folders named by type (e.g. script, journey, idp)\\n' +\n // 'type/id: folders named by type with sub-folders named by id'\n // )\n // )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // export\n if (options.journeyId && (await getTokens())) {\n verboseMessage('Exporting journey...');\n await exportJourneyToFile(\n options.journeyId,\n options.file,\n options.metadata,\n {\n useStringArrays: options.useStringArrays,\n deps: options.deps,\n coords: options.coords,\n }\n );\n }\n // --all -a\n else if (options.all && (await getTokens())) {\n verboseMessage('Exporting all journeys to a single file...');\n await exportJourneysToFile(options.file, options.metadata, {\n useStringArrays: options.useStringArrays,\n deps: options.deps,\n coords: options.coords,\n });\n }\n // --all-separate -A\n else if (options.allSeparate && (await getTokens())) {\n verboseMessage('Exporting all journeys to separate files...');\n await exportJourneysToFiles(options.metadata, {\n useStringArrays: options.useStringArrays,\n deps: options.deps,\n coords: options.coords,\n });\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"journey-export.js","names":["Option","getTokens","exportJourneysToFile","exportJourneysToFiles","exportJourneyToFile","printMessage","verboseMessage","FrodoCommand","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","journeyId","outcome","file","metadata","useStringArrays","deps","coords","process","exitCode","all","allSeparate","help","parse"],"sources":["../../../src/cli/journey/journey-export.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport {\n exportJourneysToFile,\n exportJourneysToFiles,\n exportJourneyToFile,\n} from '../../ops/JourneyOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo journey export');\n\nprogram\n .description('Export journeys/trees.')\n .addOption(\n new Option(\n '-i, --journey-id <journey>',\n 'Name of a journey/tree. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file <file>',\n 'Name of the file to write the exported journey(s) to. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Export all the journeys/trees in a realm. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all the journeys/trees in a realm as separate files <journey/tree name>.json. Ignored with -i or -a.'\n )\n )\n .addOption(\n new Option(\n '-N, --no-metadata',\n 'Does not include metadata in the export file.'\n )\n )\n .addOption(\n new Option(\n '--use-string-arrays',\n 'Where applicable, use string arrays to store multi-line text (e.g. scripts).'\n ).default(false, 'off')\n )\n .addOption(\n new Option(\n '--no-deps',\n 'Do not include any dependencies (scripts, email templates, SAML entity providers and circles of trust, social identity providers, themes).'\n )\n )\n .addOption(\n new Option(\n '--no-coords',\n 'Do not include the x and y coordinate positions of the journey/tree nodes.'\n )\n )\n // .addOption(\n // new Option(\n // '-O, --organize <method>',\n // 'Organize exports into folders using the indicated method. Valid values for method:\\n' +\n // 'id: folders named by id of exported object\\n' +\n // 'type: folders named by type (e.g. script, journey, idp)\\n' +\n // 'type/id: folders named by type with sub-folders named by id'\n // )\n // )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // export\n if (options.journeyId && (await getTokens())) {\n verboseMessage('Exporting journey...');\n const outcome = await exportJourneyToFile(\n options.journeyId,\n options.file,\n options.metadata,\n {\n useStringArrays: options.useStringArrays,\n deps: options.deps,\n coords: options.coords,\n }\n );\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n else if (options.all && (await getTokens())) {\n verboseMessage('Exporting all journeys to a single file...');\n const outcome = await exportJourneysToFile(\n options.file,\n options.metadata,\n {\n useStringArrays: options.useStringArrays,\n deps: options.deps,\n coords: options.coords,\n }\n );\n if (!outcome) process.exitCode = 1;\n }\n // --all-separate -A\n else if (options.allSeparate && (await getTokens())) {\n verboseMessage('Exporting all journeys to separate files...');\n const outcome = await exportJourneysToFiles(options.metadata, {\n useStringArrays: options.useStringArrays,\n deps: options.deps,\n coords: options.coords,\n });\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
@@ -1,11 +1,8 @@
1
- import { frodo } from '@rockcarver/frodo-lib';
2
1
  import { Option } from 'commander';
2
+ import { getTokens } from '../../ops/AuthenticateOps';
3
3
  import { importFirstJourneyFromFile, importJourneyFromFile, importJourneysFromFile, importJourneysFromFiles } from '../../ops/JourneyOps';
4
4
  import { printMessage } from '../../utils/Console';
5
5
  import { FrodoCommand } from '../FrodoCommand';
6
- const {
7
- getTokens
8
- } = frodo.login;
9
6
  const program = new FrodoCommand('frodo journey import');
10
7
  program.description('Import journey/tree.').addOption(new Option('-i, --journey-id <journey>', 'Name of a journey/tree. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file <file>', 'Name of the file to import the journey(s) from. Ignored with -A.')).addOption(new Option('-a, --all', 'Import all the journeys/trees from single file. Ignored with -i.')).addOption(new Option('-A, --all-separate', 'Import all the journeys/trees from separate files (*.json) in the current directory. Ignored with -i or -a.')).addOption(new Option('--re-uuid', 'Generate new UUIDs for all nodes during import.').default(false, 'off')).addOption(new Option('--no-deps', 'Do not include any dependencies (scripts, email templates, SAML entity providers and circles of trust, social identity providers, themes).')).action(
11
8
  // implement command logic inside action handler
@@ -14,34 +11,38 @@ async (host, realm, user, password, options, command) => {
14
11
  // import
15
12
  if (options.journeyId && (await getTokens())) {
16
13
  printMessage(`Importing journey ${options.journeyId}...`);
17
- await importJourneyFromFile(options.journeyId, options.file, {
14
+ const outcome = await importJourneyFromFile(options.journeyId, options.file, {
18
15
  reUuid: options.reUuid,
19
16
  deps: options.deps
20
17
  });
18
+ if (!outcome) process.exitCode = 1;
21
19
  }
22
20
  // --all -a
23
21
  else if (options.all && options.file && (await getTokens())) {
24
22
  printMessage(`Importing all journeys from a single file (${options.file})...`);
25
- await importJourneysFromFile(options.file, {
23
+ const outcome = await importJourneysFromFile(options.file, {
26
24
  reUuid: options.reUuid,
27
25
  deps: options.deps
28
26
  });
27
+ if (!outcome) process.exitCode = 1;
29
28
  }
30
29
  // --all-separate -A
31
30
  else if (options.allSeparate && !options.file && (await getTokens())) {
32
31
  printMessage('Importing all journeys from separate files in current directory...');
33
- await importJourneysFromFiles({
32
+ const outcome = await importJourneysFromFiles({
34
33
  reUuid: options.reUuid,
35
34
  deps: options.deps
36
35
  });
36
+ if (!outcome) process.exitCode = 1;
37
37
  }
38
38
  // import first journey in file
39
39
  else if (options.file && (await getTokens())) {
40
40
  printMessage('Importing first journey in file...');
41
- await importFirstJourneyFromFile(options.file, {
41
+ const outcome = await importFirstJourneyFromFile(options.file, {
42
42
  reUuid: options.reUuid,
43
43
  deps: options.deps
44
44
  });
45
+ if (!outcome) process.exitCode = 1;
45
46
  }
46
47
  // unrecognized combination of options or no options
47
48
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"journey-import.js","names":["frodo","Option","importFirstJourneyFromFile","importJourneyFromFile","importJourneysFromFile","importJourneysFromFiles","printMessage","FrodoCommand","getTokens","login","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","journeyId","file","reUuid","deps","all","allSeparate","help","process","exitCode","parse"],"sources":["../../../src/cli/journey/journey-import.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport {\n importFirstJourneyFromFile,\n importJourneyFromFile,\n importJourneysFromFile,\n importJourneysFromFiles,\n} from '../../ops/JourneyOps';\nimport { printMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo journey import');\n\nprogram\n .description('Import journey/tree.')\n .addOption(\n new Option(\n '-i, --journey-id <journey>',\n 'Name of a journey/tree. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file <file>',\n 'Name of the file to import the journey(s) from. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Import all the journeys/trees from single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all the journeys/trees from separate files (*.json) in the current directory. Ignored with -i or -a.'\n )\n )\n .addOption(\n new Option(\n '--re-uuid',\n 'Generate new UUIDs for all nodes during import.'\n ).default(false, 'off')\n )\n .addOption(\n new Option(\n '--no-deps',\n 'Do not include any dependencies (scripts, email templates, SAML entity providers and circles of trust, social identity providers, themes).'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // import\n if (options.journeyId && (await getTokens())) {\n printMessage(`Importing journey ${options.journeyId}...`);\n await importJourneyFromFile(options.journeyId, options.file, {\n reUuid: options.reUuid,\n deps: options.deps,\n });\n }\n // --all -a\n else if (options.all && options.file && (await getTokens())) {\n printMessage(\n `Importing all journeys from a single file (${options.file})...`\n );\n await importJourneysFromFile(options.file, {\n reUuid: options.reUuid,\n deps: options.deps,\n });\n }\n // --all-separate -A\n else if (options.allSeparate && !options.file && (await getTokens())) {\n printMessage(\n 'Importing all journeys from separate files in current directory...'\n );\n await importJourneysFromFiles({\n reUuid: options.reUuid,\n deps: options.deps,\n });\n }\n // import first journey in file\n else if (options.file && (await getTokens())) {\n printMessage('Importing first journey in file...');\n await importFirstJourneyFromFile(options.file, {\n reUuid: options.reUuid,\n deps: options.deps,\n });\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"journey-import.js","names":["Option","getTokens","importFirstJourneyFromFile","importJourneyFromFile","importJourneysFromFile","importJourneysFromFiles","printMessage","FrodoCommand","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","journeyId","outcome","file","reUuid","deps","process","exitCode","all","allSeparate","help","parse"],"sources":["../../../src/cli/journey/journey-import.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport {\n importFirstJourneyFromFile,\n importJourneyFromFile,\n importJourneysFromFile,\n importJourneysFromFiles,\n} from '../../ops/JourneyOps';\nimport { printMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo journey import');\n\nprogram\n .description('Import journey/tree.')\n .addOption(\n new Option(\n '-i, --journey-id <journey>',\n 'Name of a journey/tree. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file <file>',\n 'Name of the file to import the journey(s) from. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Import all the journeys/trees from single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all the journeys/trees from separate files (*.json) in the current directory. Ignored with -i or -a.'\n )\n )\n .addOption(\n new Option(\n '--re-uuid',\n 'Generate new UUIDs for all nodes during import.'\n ).default(false, 'off')\n )\n .addOption(\n new Option(\n '--no-deps',\n 'Do not include any dependencies (scripts, email templates, SAML entity providers and circles of trust, social identity providers, themes).'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // import\n if (options.journeyId && (await getTokens())) {\n printMessage(`Importing journey ${options.journeyId}...`);\n const outcome = await importJourneyFromFile(\n options.journeyId,\n options.file,\n {\n reUuid: options.reUuid,\n deps: options.deps,\n }\n );\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n else if (options.all && options.file && (await getTokens())) {\n printMessage(\n `Importing all journeys from a single file (${options.file})...`\n );\n const outcome = await importJourneysFromFile(options.file, {\n reUuid: options.reUuid,\n deps: options.deps,\n });\n if (!outcome) process.exitCode = 1;\n }\n // --all-separate -A\n else if (options.allSeparate && !options.file && (await getTokens())) {\n printMessage(\n 'Importing all journeys from separate files in current directory...'\n );\n const outcome = await importJourneysFromFiles({\n reUuid: options.reUuid,\n deps: options.deps,\n });\n if (!outcome) process.exitCode = 1;\n }\n // import first journey in file\n else if (options.file && (await getTokens())) {\n printMessage('Importing first journey in file...');\n const outcome = await importFirstJourneyFromFile(options.file, {\n reUuid: options.reUuid,\n deps: options.deps,\n });\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
@@ -1,11 +1,9 @@
1
- import { frodo, state } from '@rockcarver/frodo-lib';
1
+ import { state } from '@rockcarver/frodo-lib';
2
2
  import { Option } from 'commander';
3
+ import { getTokens } from '../../ops/AuthenticateOps';
3
4
  import { listJourneys } from '../../ops/JourneyOps';
4
5
  import { verboseMessage } from '../../utils/Console';
5
6
  import { FrodoCommand } from '../FrodoCommand';
6
- const {
7
- getTokens
8
- } = frodo.login;
9
7
  const program = new FrodoCommand('frodo journey list');
10
8
  program.description('List journeys/trees.').addOption(new Option('-l, --long', 'Long with all fields.').default(false, 'false')).addOption(new Option('-a, --analyze', 'Analyze journeys for custom nodes.')).action(
11
9
  // implement command logic inside action handler
@@ -13,7 +11,8 @@ async (host, realm, user, password, options, command) => {
13
11
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
14
12
  if (await getTokens()) {
15
13
  verboseMessage(`Listing journeys in realm "${state.getRealm()}"...`);
16
- await listJourneys(options.long, options.analyze);
14
+ const outcome = await listJourneys(options.long, options.analyze);
15
+ if (!outcome) process.exitCode = 1;
17
16
  } else {
18
17
  process.exitCode = 1;
19
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"journey-list.js","names":["frodo","state","Option","listJourneys","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","long","analyze","process","exitCode","parse"],"sources":["../../../src/cli/journey/journey-list.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { listJourneys } from '../../ops/JourneyOps';\nimport { verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo journey list');\n\nprogram\n .description('List journeys/trees.')\n .addOption(\n new Option('-l, --long', 'Long with all fields.').default(false, 'false')\n )\n .addOption(new Option('-a, --analyze', 'Analyze journeys for custom nodes.'))\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage(`Listing journeys in realm \"${state.getRealm()}\"...`);\n await listJourneys(options.long, options.analyze);\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGN,KAAK,CAACO,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,oBAAoB,CAAC;AAEtDG,OAAO,CACJC,WAAW,CAAC,sBAAsB,CAAC,CACnCC,SAAS,CACR,IAAIR,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAACS,OAAO,CAAC,KAAK,EAAE,OAAO,CAC1E,CAAC,CACAD,SAAS,CAAC,IAAIR,MAAM,CAAC,eAAe,EAAE,oCAAoC,CAAC,CAAC,CAC5EU,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMZ,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CAAE,8BAA6BH,KAAK,CAACmB,QAAQ,CAAC,CAAE,MAAK,CAAC;IACpE,MAAMjB,YAAY,CAACc,OAAO,CAACI,IAAI,EAAEJ,OAAO,CAACK,OAAO,CAAC;EACnD,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHhB,OAAO,CAACiB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"journey-list.js","names":["state","Option","getTokens","listJourneys","verboseMessage","FrodoCommand","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","outcome","long","analyze","process","exitCode","parse"],"sources":["../../../src/cli/journey/journey-list.ts"],"sourcesContent":["import { state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { listJourneys } from '../../ops/JourneyOps';\nimport { verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo journey list');\n\nprogram\n .description('List journeys/trees.')\n .addOption(\n new Option('-l, --long', 'Long with all fields.').default(false, 'false')\n )\n .addOption(new Option('-a, --analyze', 'Analyze journeys for custom nodes.'))\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage(`Listing journeys in realm \"${state.getRealm()}\"...`);\n const outcome = await listJourneys(options.long, options.analyze);\n if (!outcome) process.exitCode = 1;\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,oBAAoB,CAAC;AAEtDC,OAAO,CACJC,WAAW,CAAC,sBAAsB,CAAC,CACnCC,SAAS,CACR,IAAIP,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAACQ,OAAO,CAAC,KAAK,EAAE,OAAO,CAC1E,CAAC,CACAD,SAAS,CAAC,IAAIP,MAAM,CAAC,eAAe,EAAE,oCAAoC,CAAC,CAAC,CAC5ES,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMd,SAAS,CAAC,CAAC,EAAE;IACrBE,cAAc,CAAE,8BAA6BJ,KAAK,CAACkB,QAAQ,CAAC,CAAE,MAAK,CAAC;IACpE,MAAMC,OAAO,GAAG,MAAMhB,YAAY,CAACY,OAAO,CAACK,IAAI,EAAEL,OAAO,CAACM,OAAO,CAAC;IACjE,IAAI,CAACF,OAAO,EAAEG,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM;IACLD,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHjB,OAAO,CAACkB,KAAK,CAAC,CAAC"}
@@ -1,10 +1,8 @@
1
1
  import { frodo, state } from '@rockcarver/frodo-lib';
2
2
  import yesno from 'yesno';
3
- import { printMessage, verboseMessage } from '../../utils/Console';
3
+ import { getTokens } from '../../ops/AuthenticateOps';
4
+ import { printError, printMessage, verboseMessage } from '../../utils/Console';
4
5
  import { FrodoCommand } from '../FrodoCommand';
5
- const {
6
- getTokens
7
- } = frodo.login;
8
6
  const {
9
7
  findOrphanedNodes,
10
8
  removeOrphanedNodes
@@ -29,7 +27,8 @@ async (host, realm, user, password, options, command) => {
29
27
  printMessage('No orphaned nodes found.');
30
28
  }
31
29
  } catch (error) {
32
- printMessage(`Error pruning orphaned nodes: ${error.message}`, 'error');
30
+ printError(error);
31
+ process.exitCode = 1;
33
32
  }
34
33
  } else {
35
34
  process.exitCode = 1;
@@ -1 +1 @@
1
- {"version":3,"file":"journey-prune.js","names":["frodo","state","yesno","printMessage","verboseMessage","FrodoCommand","getTokens","login","findOrphanedNodes","removeOrphanedNodes","authn","node","program","description","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","orphanedNodes","length","ok","question","error","message","process","exitCode","parse"],"sources":["../../../src/cli/journey/journey-prune.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport yesno from 'yesno';\n\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\nconst { findOrphanedNodes, removeOrphanedNodes } = frodo.authn.node;\n\nconst program = new FrodoCommand('frodo journey prune');\n\nprogram\n .description(\n 'Prune orphaned configuration artifacts left behind after deleting authentication trees. You will be prompted before any destructive operations are performed.'\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage(\n `Pruning orphaned configuration artifacts in realm \"${state.getRealm()}\"...`\n );\n try {\n const orphanedNodes = await findOrphanedNodes();\n if (orphanedNodes.length > 0) {\n const ok = await yesno({\n question: 'Prune (permanently delete) orphaned nodes? (y|n):',\n });\n if (ok) {\n await removeOrphanedNodes(orphanedNodes);\n }\n } else {\n printMessage('No orphaned nodes found.');\n }\n } catch (error) {\n printMessage(\n `Error pruning orphaned nodes: ${error.message}`,\n 'error'\n );\n }\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGN,KAAK,CAACO,KAAK;AACjC,MAAM;EAAEC,iBAAiB;EAAEC;AAAoB,CAAC,GAAGT,KAAK,CAACU,KAAK,CAACC,IAAI;AAEnE,MAAMC,OAAO,GAAG,IAAIP,YAAY,CAAC,qBAAqB,CAAC;AAEvDO,OAAO,CACJC,WAAW,CACV,+JACF,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMd,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CACX,sDAAqDH,KAAK,CAACqB,QAAQ,CAAC,CAAE,MACzE,CAAC;IACD,IAAI;MACF,MAAMC,aAAa,GAAG,MAAMf,iBAAiB,CAAC,CAAC;MAC/C,IAAIe,aAAa,CAACC,MAAM,GAAG,CAAC,EAAE;QAC5B,MAAMC,EAAE,GAAG,MAAMvB,KAAK,CAAC;UACrBwB,QAAQ,EAAE;QACZ,CAAC,CAAC;QACF,IAAID,EAAE,EAAE;UACN,MAAMhB,mBAAmB,CAACc,aAAa,CAAC;QAC1C;MACF,CAAC,MAAM;QACLpB,YAAY,CAAC,0BAA0B,CAAC;MAC1C;IACF,CAAC,CAAC,OAAOwB,KAAK,EAAE;MACdxB,YAAY,CACT,iCAAgCwB,KAAK,CAACC,OAAQ,EAAC,EAChD,OACF,CAAC;IACH;EACF,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHlB,OAAO,CAACmB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"journey-prune.js","names":["frodo","state","yesno","getTokens","printError","printMessage","verboseMessage","FrodoCommand","findOrphanedNodes","removeOrphanedNodes","authn","node","program","description","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","orphanedNodes","length","ok","question","error","process","exitCode","parse"],"sources":["../../../src/cli/journey/journey-prune.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport yesno from 'yesno';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { printError, printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { findOrphanedNodes, removeOrphanedNodes } = frodo.authn.node;\n\nconst program = new FrodoCommand('frodo journey prune');\n\nprogram\n .description(\n 'Prune orphaned configuration artifacts left behind after deleting authentication trees. You will be prompted before any destructive operations are performed.'\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage(\n `Pruning orphaned configuration artifacts in realm \"${state.getRealm()}\"...`\n );\n try {\n const orphanedNodes = await findOrphanedNodes();\n if (orphanedNodes.length > 0) {\n const ok = await yesno({\n question: 'Prune (permanently delete) orphaned nodes? (y|n):',\n });\n if (ok) {\n await removeOrphanedNodes(orphanedNodes);\n }\n } else {\n printMessage('No orphaned nodes found.');\n }\n } catch (error) {\n printError(error);\n process.exitCode = 1;\n }\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,UAAU,EAAEC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAC9E,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC,iBAAiB;EAAEC;AAAoB,CAAC,GAAGT,KAAK,CAACU,KAAK,CAACC,IAAI;AAEnE,MAAMC,OAAO,GAAG,IAAIL,YAAY,CAAC,qBAAqB,CAAC;AAEvDK,OAAO,CACJC,WAAW,CACV,+JACF,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMjB,SAAS,CAAC,CAAC,EAAE;IACrBG,cAAc,CACX,sDAAqDL,KAAK,CAACqB,QAAQ,CAAC,CAAE,MACzE,CAAC;IACD,IAAI;MACF,MAAMC,aAAa,GAAG,MAAMf,iBAAiB,CAAC,CAAC;MAC/C,IAAIe,aAAa,CAACC,MAAM,GAAG,CAAC,EAAE;QAC5B,MAAMC,EAAE,GAAG,MAAMvB,KAAK,CAAC;UACrBwB,QAAQ,EAAE;QACZ,CAAC,CAAC;QACF,IAAID,EAAE,EAAE;UACN,MAAMhB,mBAAmB,CAACc,aAAa,CAAC;QAC1C;MACF,CAAC,MAAM;QACLlB,YAAY,CAAC,0BAA0B,CAAC;MAC1C;IACF,CAAC,CAAC,OAAOsB,KAAK,EAAE;MACdvB,UAAU,CAACuB,KAAK,CAAC;MACjBC,OAAO,CAACC,QAAQ,GAAG,CAAC;IACtB;EACF,CAAC,MAAM;IACLD,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHjB,OAAO,CAACkB,KAAK,CAAC,CAAC"}
@@ -1,13 +1,11 @@
1
1
  import { frodo, state } from '@rockcarver/frodo-lib';
2
2
  import { Option } from 'commander';
3
+ import { getTokens } from '../../ops/AuthenticateOps';
3
4
  import { fetchLogs, provisionCreds } from '../../ops/LogOps';
4
5
  import * as config from '../../utils/Config';
5
- import { printMessage, verboseMessage } from '../../utils/Console';
6
+ import { printError, printMessage, verboseMessage } from '../../utils/Console';
6
7
  import { FrodoCommand } from '../FrodoCommand';
7
8
  import { sourcesOptionM } from './log';
8
- const {
9
- getTokens
10
- } = frodo.login;
11
9
  const {
12
10
  resolveLevel
13
11
  } = frodo.cloud.log;
@@ -61,7 +59,11 @@ Cannot be more than 30 days in the past. If not specified, logs from one hour ag
61
59
  const creds = await provisionCreds();
62
60
  state.setLogApiKey(creds.api_key_id);
63
61
  state.setLogApiSecret(creds.api_key_secret);
64
- await saveConnectionProfile(state.getHost());
62
+ try {
63
+ await saveConnectionProfile(state.getHost());
64
+ } catch (error) {
65
+ printError(error);
66
+ }
65
67
  foundCredentials = true;
66
68
  }
67
69
  // unable to create credentials
@@ -1 +1 @@
1
- {"version":3,"file":"log-fetch.js","names":["frodo","state","Option","fetchLogs","provisionCreds","config","printMessage","verboseMessage","FrodoCommand","sourcesOptionM","getTokens","login","resolveLevel","cloud","log","getConnectionProfile","saveConnectionProfile","conn","SECONDS_IN_30_DAYS","SECONDS_IN_1_HOUR","LOG_TIME_WINDOW_MAX","LOG_TIME_WINDOW_INCREMENT","program","description","addOption","default","FRODO_LOG_NOISEFILTER_FILENAME","action","host","user","password","options","command","handleDefaultArgsAndOpts","foundCredentials","setHost","tenant","getUsername","getPassword","setLogApiKey","setLogApiSecret","logApiKey","logApiSecret","getLogApiKey","getLogApiSecret","username","setUsername","setPassword","creds","api_key_id","api_key_secret","getHost","now","Date","nowString","toISOString","beginTimestamp","tempStartDate","setTime","tempEndDate","endTimestamp","beginTs","parse","endTs","process","exitCode","intermediateEndTs","opts","sources","level","timeIncrement","transactionId","searchString","getNoiseFilters","defaults","help"],"sources":["../../../src/cli/log/log-fetch.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { fetchLogs, provisionCreds } from '../../ops/LogOps';\nimport * as config from '../../utils/Config';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\nimport { sourcesOptionM } from './log';\n\nconst { getTokens } = frodo.login;\nconst { resolveLevel } = frodo.cloud.log;\nconst { getConnectionProfile, saveConnectionProfile } = frodo.conn;\n\nconst SECONDS_IN_30_DAYS = 2592000;\nconst SECONDS_IN_1_HOUR = 3600;\nconst LOG_TIME_WINDOW_MAX = SECONDS_IN_30_DAYS;\nconst LOG_TIME_WINDOW_INCREMENT = 1;\n\nconst program = new FrodoCommand('frodo log fetch', ['realm', 'type']);\nprogram\n .description(\n 'Fetch Identity Cloud logs between a specified begin and end time period.\\\n WARNING: depending on filters and time period specified, this could take substantial time to complete.'\n )\n .addOption(sourcesOptionM)\n .addOption(\n new Option(\n '-l, --level <level>',\n 'Set log level filter. You can specify the level as a number or a string. \\\nFollowing values are possible (values on the same line are equivalent): \\\n\\n0, SEVERE, FATAL, or ERROR\\n1, WARNING, WARN or CONFIG\\\n\\n2, INFO or INFORMATION\\n3, DEBUG, FINE, FINER or FINEST\\\n\\n4 or ALL'\n ).default('ERROR', `${resolveLevel('ERROR')}`)\n )\n .addOption(\n new Option('-t, --transaction-id <txid>', 'Filter by transactionId')\n )\n .addOption(\n new Option(\n '-b, --begin-timestamp <beginTs>',\n 'Begin timestamp for period (in ISO8601, example: \"2022-10-13T19:06:28Z\", or \"2022-09.30\". \\\nCannot be more than 30 days in the past. If not specified, logs from one hour ago are fetched \\\n(-e is ignored)'\n )\n )\n .addOption(\n new Option(\n '-e, --end-timestamp <endTs>',\n 'End timestamp for period. Default: \"now\"'\n )\n )\n .addOption(\n new Option(\n '-s, --search-string <ss>',\n 'Filter by a specific string (ANDed with transactionID filter)'\n )\n )\n .addOption(\n new Option('-d, --defaults', 'Use default logging noise filters').default(\n false,\n `Use custom logging noise filters defined in $HOME/${config.FRODO_LOG_NOISEFILTER_FILENAME}`\n )\n )\n .action(async (host, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(host, user, password, options, command);\n\n let foundCredentials = false;\n\n const conn = await getConnectionProfile();\n if (conn) state.setHost(conn.tenant);\n\n // log api creds have been supplied as username and password arguments\n if (state.getUsername() && state.getPassword()) {\n verboseMessage(`Using log api credentials from command line.`);\n state.setLogApiKey(state.getUsername());\n state.setLogApiSecret(state.getPassword());\n foundCredentials = true;\n }\n // log api creds from connection profile\n else if (conn && conn.logApiKey != null && conn.logApiSecret != null) {\n verboseMessage(`Using log api credentials from connection profile.`);\n state.setLogApiKey(conn.logApiKey);\n state.setLogApiSecret(conn.logApiSecret);\n foundCredentials = true;\n }\n // log api creds have been supplied via env variables\n else if (state.getLogApiKey() && state.getLogApiSecret()) {\n verboseMessage(`Using log api credentials from environment variables.`);\n foundCredentials = true;\n }\n // no log api creds but got username and password, so can try to create them\n else if (conn && conn.username && conn.password) {\n printMessage(\n `Found admin credentials in connection profile, attempting to create log api credentials...`\n );\n state.setUsername(conn.username);\n state.setPassword(conn.password);\n if (await getTokens(true)) {\n const creds = await provisionCreds();\n state.setLogApiKey(creds.api_key_id as string);\n state.setLogApiSecret(creds.api_key_secret as string);\n await saveConnectionProfile(state.getHost());\n foundCredentials = true;\n }\n // unable to create credentials\n else {\n printMessage(`Unable to create log api credentials.`);\n }\n }\n\n if (foundCredentials) {\n const now = Date.now() / 1000;\n const nowString = new Date(now * 1000).toISOString();\n if (\n typeof options.beginTimestamp === 'undefined' ||\n !options.beginTimestamp\n ) {\n // no beginTimestamp value specified, default is 1 hour ago\n const tempStartDate = new Date();\n tempStartDate.setTime((now - SECONDS_IN_1_HOUR) * 1000);\n options.beginTimestamp = tempStartDate.toISOString();\n // also override endTimestamp to now\n const tempEndDate = new Date();\n tempEndDate.setTime(now * 1000);\n options.endTimestamp = tempEndDate;\n printMessage(\n 'No timestamps specified, defaulting to logs from 1 hour ago',\n 'info'\n );\n }\n if (\n typeof options.endTimestamp === 'undefined' ||\n !options.endTimestamp\n ) {\n // no endTimestamp value specified, default is now\n options.endTimestamp = nowString;\n printMessage(\n 'No end timestamp specified, defaulting end timestamp to \"now\"',\n 'info'\n );\n }\n let beginTs = Date.parse(options.beginTimestamp) / 1000;\n const endTs = Date.parse(options.endTimestamp) / 1000;\n if (endTs < beginTs) {\n printMessage(\n 'End timestamp can not be before begin timestamp',\n 'error'\n );\n process.exitCode = 1;\n return;\n }\n if (now - beginTs > LOG_TIME_WINDOW_MAX) {\n printMessage(\n 'Begin timestamp can not be more than 30 days in the past',\n 'error'\n );\n process.exitCode = 1;\n return;\n }\n let intermediateEndTs = 0;\n printMessage(\n `Fetching ID Cloud logs from the following sources: ${\n command.opts().sources\n } and levels [${resolveLevel(command.opts().level)}] of ${\n conn.tenant\n }...`\n );\n\n let timeIncrement = LOG_TIME_WINDOW_INCREMENT;\n if (endTs - beginTs > 30) {\n timeIncrement = timeIncrement * 30;\n }\n do {\n intermediateEndTs = beginTs + timeIncrement;\n await fetchLogs(\n command.opts().sources,\n new Date(beginTs * 1000).toISOString(),\n new Date(intermediateEndTs * 1000).toISOString(),\n resolveLevel(command.opts().level),\n command.opts().transactionId,\n command.opts().searchString,\n null,\n config.getNoiseFilters(options.defaults)\n );\n beginTs = intermediateEndTs;\n } while (intermediateEndTs < endTs);\n }\n // no log api credentials\n else {\n printMessage('No log api credentials found!');\n program.help();\n process.exitCode = 1;\n }\n });\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"log-fetch.js","names":["frodo","state","Option","getTokens","fetchLogs","provisionCreds","config","printError","printMessage","verboseMessage","FrodoCommand","sourcesOptionM","resolveLevel","cloud","log","getConnectionProfile","saveConnectionProfile","conn","SECONDS_IN_30_DAYS","SECONDS_IN_1_HOUR","LOG_TIME_WINDOW_MAX","LOG_TIME_WINDOW_INCREMENT","program","description","addOption","default","FRODO_LOG_NOISEFILTER_FILENAME","action","host","user","password","options","command","handleDefaultArgsAndOpts","foundCredentials","setHost","tenant","getUsername","getPassword","setLogApiKey","setLogApiSecret","logApiKey","logApiSecret","getLogApiKey","getLogApiSecret","username","setUsername","setPassword","creds","api_key_id","api_key_secret","getHost","error","now","Date","nowString","toISOString","beginTimestamp","tempStartDate","setTime","tempEndDate","endTimestamp","beginTs","parse","endTs","process","exitCode","intermediateEndTs","opts","sources","level","timeIncrement","transactionId","searchString","getNoiseFilters","defaults","help"],"sources":["../../../src/cli/log/log-fetch.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { fetchLogs, provisionCreds } from '../../ops/LogOps';\nimport * as config from '../../utils/Config';\nimport { printError, printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\nimport { sourcesOptionM } from './log';\n\nconst { resolveLevel } = frodo.cloud.log;\nconst { getConnectionProfile, saveConnectionProfile } = frodo.conn;\n\nconst SECONDS_IN_30_DAYS = 2592000;\nconst SECONDS_IN_1_HOUR = 3600;\nconst LOG_TIME_WINDOW_MAX = SECONDS_IN_30_DAYS;\nconst LOG_TIME_WINDOW_INCREMENT = 1;\n\nconst program = new FrodoCommand('frodo log fetch', ['realm', 'type']);\nprogram\n .description(\n 'Fetch Identity Cloud logs between a specified begin and end time period.\\\n WARNING: depending on filters and time period specified, this could take substantial time to complete.'\n )\n .addOption(sourcesOptionM)\n .addOption(\n new Option(\n '-l, --level <level>',\n 'Set log level filter. You can specify the level as a number or a string. \\\nFollowing values are possible (values on the same line are equivalent): \\\n\\n0, SEVERE, FATAL, or ERROR\\n1, WARNING, WARN or CONFIG\\\n\\n2, INFO or INFORMATION\\n3, DEBUG, FINE, FINER or FINEST\\\n\\n4 or ALL'\n ).default('ERROR', `${resolveLevel('ERROR')}`)\n )\n .addOption(\n new Option('-t, --transaction-id <txid>', 'Filter by transactionId')\n )\n .addOption(\n new Option(\n '-b, --begin-timestamp <beginTs>',\n 'Begin timestamp for period (in ISO8601, example: \"2022-10-13T19:06:28Z\", or \"2022-09.30\". \\\nCannot be more than 30 days in the past. If not specified, logs from one hour ago are fetched \\\n(-e is ignored)'\n )\n )\n .addOption(\n new Option(\n '-e, --end-timestamp <endTs>',\n 'End timestamp for period. Default: \"now\"'\n )\n )\n .addOption(\n new Option(\n '-s, --search-string <ss>',\n 'Filter by a specific string (ANDed with transactionID filter)'\n )\n )\n .addOption(\n new Option('-d, --defaults', 'Use default logging noise filters').default(\n false,\n `Use custom logging noise filters defined in $HOME/${config.FRODO_LOG_NOISEFILTER_FILENAME}`\n )\n )\n .action(async (host, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(host, user, password, options, command);\n\n let foundCredentials = false;\n\n const conn = await getConnectionProfile();\n if (conn) state.setHost(conn.tenant);\n\n // log api creds have been supplied as username and password arguments\n if (state.getUsername() && state.getPassword()) {\n verboseMessage(`Using log api credentials from command line.`);\n state.setLogApiKey(state.getUsername());\n state.setLogApiSecret(state.getPassword());\n foundCredentials = true;\n }\n // log api creds from connection profile\n else if (conn && conn.logApiKey != null && conn.logApiSecret != null) {\n verboseMessage(`Using log api credentials from connection profile.`);\n state.setLogApiKey(conn.logApiKey);\n state.setLogApiSecret(conn.logApiSecret);\n foundCredentials = true;\n }\n // log api creds have been supplied via env variables\n else if (state.getLogApiKey() && state.getLogApiSecret()) {\n verboseMessage(`Using log api credentials from environment variables.`);\n foundCredentials = true;\n }\n // no log api creds but got username and password, so can try to create them\n else if (conn && conn.username && conn.password) {\n printMessage(\n `Found admin credentials in connection profile, attempting to create log api credentials...`\n );\n state.setUsername(conn.username);\n state.setPassword(conn.password);\n if (await getTokens(true)) {\n const creds = await provisionCreds();\n state.setLogApiKey(creds.api_key_id as string);\n state.setLogApiSecret(creds.api_key_secret as string);\n try {\n await saveConnectionProfile(state.getHost());\n } catch (error) {\n printError(error);\n }\n foundCredentials = true;\n }\n // unable to create credentials\n else {\n printMessage(`Unable to create log api credentials.`);\n }\n }\n\n if (foundCredentials) {\n const now = Date.now() / 1000;\n const nowString = new Date(now * 1000).toISOString();\n if (\n typeof options.beginTimestamp === 'undefined' ||\n !options.beginTimestamp\n ) {\n // no beginTimestamp value specified, default is 1 hour ago\n const tempStartDate = new Date();\n tempStartDate.setTime((now - SECONDS_IN_1_HOUR) * 1000);\n options.beginTimestamp = tempStartDate.toISOString();\n // also override endTimestamp to now\n const tempEndDate = new Date();\n tempEndDate.setTime(now * 1000);\n options.endTimestamp = tempEndDate;\n printMessage(\n 'No timestamps specified, defaulting to logs from 1 hour ago',\n 'info'\n );\n }\n if (\n typeof options.endTimestamp === 'undefined' ||\n !options.endTimestamp\n ) {\n // no endTimestamp value specified, default is now\n options.endTimestamp = nowString;\n printMessage(\n 'No end timestamp specified, defaulting end timestamp to \"now\"',\n 'info'\n );\n }\n let beginTs = Date.parse(options.beginTimestamp) / 1000;\n const endTs = Date.parse(options.endTimestamp) / 1000;\n if (endTs < beginTs) {\n printMessage(\n 'End timestamp can not be before begin timestamp',\n 'error'\n );\n process.exitCode = 1;\n return;\n }\n if (now - beginTs > LOG_TIME_WINDOW_MAX) {\n printMessage(\n 'Begin timestamp can not be more than 30 days in the past',\n 'error'\n );\n process.exitCode = 1;\n return;\n }\n let intermediateEndTs = 0;\n printMessage(\n `Fetching ID Cloud logs from the following sources: ${\n command.opts().sources\n } and levels [${resolveLevel(command.opts().level)}] of ${\n conn.tenant\n }...`\n );\n\n let timeIncrement = LOG_TIME_WINDOW_INCREMENT;\n if (endTs - beginTs > 30) {\n timeIncrement = timeIncrement * 30;\n }\n do {\n intermediateEndTs = beginTs + timeIncrement;\n await fetchLogs(\n command.opts().sources,\n new Date(beginTs * 1000).toISOString(),\n new Date(intermediateEndTs * 1000).toISOString(),\n resolveLevel(command.opts().level),\n command.opts().transactionId,\n command.opts().searchString,\n null,\n config.getNoiseFilters(options.defaults)\n );\n beginTs = intermediateEndTs;\n } while (intermediateEndTs < endTs);\n }\n // no log api credentials\n else {\n printMessage('No log api credentials found!');\n program.help();\n process.exitCode = 1;\n }\n });\n\nprogram.parse();\n"],"mappings":"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"}
@@ -1,11 +1,8 @@
1
- import { frodo } from '@rockcarver/frodo-lib';
2
1
  import { Option } from 'commander';
2
+ import { getTokens } from '../../ops/AuthenticateOps';
3
3
  import { deleteLogApiKey, deleteLogApiKeys } from '../../ops/LogOps';
4
4
  import { printMessage, verboseMessage } from '../../utils/Console';
5
5
  import { FrodoCommand } from '../FrodoCommand';
6
- const {
7
- getTokens
8
- } = frodo.login;
9
6
  const program = new FrodoCommand('frodo log key delete');
10
7
  program.description('Delete log API keys.').addOption(new Option('-i, --key-id <key-id>', 'Key id. Regex if specified with -a.')).addOption(new Option('-a, --all', 'Delete all keys. Optionally specify regex filter -i.')).action(
11
8
  // implement command logic inside action handler
@@ -1 +1 @@
1
- {"version":3,"file":"log-key-delete.js","names":["frodo","Option","deleteLogApiKey","deleteLogApiKeys","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","keyId","all","help","process","exitCode","parse"],"sources":["../../../src/cli/log/log-key-delete.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { deleteLogApiKey, deleteLogApiKeys } from '../../ops/LogOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo log key delete');\n\nprogram\n .description('Delete log API keys.')\n .addOption(\n new Option('-i, --key-id <key-id>', 'Key id. Regex if specified with -a.')\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Delete all keys. Optionally specify regex filter -i.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // delete by id\n if (options.keyId && (await getTokens(true))) {\n verboseMessage(`Deleting key ${options.keyId}`);\n deleteLogApiKey(options.keyId);\n }\n // --all -a\n else if (options.all && (await getTokens(true))) {\n verboseMessage('Deleting keys...');\n deleteLogApiKeys();\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,eAAe,EAAEC,gBAAgB,QAAQ,kBAAkB;AACpE,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGP,KAAK,CAACQ,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,sBAAsB,CAAC;AAExDG,OAAO,CACJC,WAAW,CAAC,sBAAsB,CAAC,CACnCC,SAAS,CACR,IAAIV,MAAM,CAAC,uBAAuB,EAAE,qCAAqC,CAC3E,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,WAAW,EACX,sDACF,CACF,CAAC,CACAW,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,KAAK,KAAK,MAAMb,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;IAC5CF,cAAc,CAAE,gBAAeY,OAAO,CAACG,KAAM,EAAC,CAAC;IAC/ClB,eAAe,CAACe,OAAO,CAACG,KAAK,CAAC;EAChC;EACA;EAAA,KACK,IAAIH,OAAO,CAACI,GAAG,KAAK,MAAMd,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;IAC/CF,cAAc,CAAC,kBAAkB,CAAC;IAClCF,gBAAgB,CAAC,CAAC;EACpB;EACA;EAAA,KACK;IACHC,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;IACDK,OAAO,CAACa,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHf,OAAO,CAACgB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"log-key-delete.js","names":["Option","getTokens","deleteLogApiKey","deleteLogApiKeys","printMessage","verboseMessage","FrodoCommand","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","keyId","all","help","process","exitCode","parse"],"sources":["../../../src/cli/log/log-key-delete.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { deleteLogApiKey, deleteLogApiKeys } from '../../ops/LogOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo log key delete');\n\nprogram\n .description('Delete log API keys.')\n .addOption(\n new Option('-i, --key-id <key-id>', 'Key id. Regex if specified with -a.')\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Delete all keys. Optionally specify regex filter -i.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // delete by id\n if (options.keyId && (await getTokens(true))) {\n verboseMessage(`Deleting key ${options.keyId}`);\n deleteLogApiKey(options.keyId);\n }\n // --all -a\n else if (options.all && (await getTokens(true))) {\n verboseMessage('Deleting keys...');\n deleteLogApiKeys();\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,eAAe,EAAEC,gBAAgB,QAAQ,kBAAkB;AACpE,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,sBAAsB,CAAC;AAExDC,OAAO,CACJC,WAAW,CAAC,sBAAsB,CAAC,CACnCC,SAAS,CACR,IAAIT,MAAM,CAAC,uBAAuB,EAAE,qCAAqC,CAC3E,CAAC,CACAS,SAAS,CACR,IAAIT,MAAM,CACR,WAAW,EACX,sDACF,CACF,CAAC,CACAU,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,KAAK,KAAK,MAAMjB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;IAC5CI,cAAc,CAAE,gBAAeU,OAAO,CAACG,KAAM,EAAC,CAAC;IAC/ChB,eAAe,CAACa,OAAO,CAACG,KAAK,CAAC;EAChC;EACA;EAAA,KACK,IAAIH,OAAO,CAACI,GAAG,KAAK,MAAMlB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;IAC/CI,cAAc,CAAC,kBAAkB,CAAC;IAClCF,gBAAgB,CAAC,CAAC;EACpB;EACA;EAAA,KACK;IACHC,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;IACDG,OAAO,CAACa,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHf,OAAO,CAACgB,KAAK,CAAC,CAAC"}
@@ -1,9 +1,6 @@
1
- import { frodo } from '@rockcarver/frodo-lib';
2
1
  import { Option } from 'commander';
2
+ import { getTokens } from '../../ops/AuthenticateOps';
3
3
  import { FrodoCommand } from '../FrodoCommand';
4
- const {
5
- getTokens
6
- } = frodo.login;
7
4
  const program = new FrodoCommand('frodo log key describe');
8
5
  program.description('Describe log API keys.').addOption(new Option('-i, --key-id <key-id>', 'Key id. If specified, -a and -A are ignored.')).action(
9
6
  // implement command logic inside action handler
@@ -1 +1 @@
1
- {"version":3,"file":"log-key-describe.js","names":["frodo","Option","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","process","exitCode","parse"],"sources":["../../../src/cli/log/log-key-describe.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo log key describe');\n\nprogram\n .description('Describe log API keys.')\n .addOption(\n new Option(\n '-i, --key-id <key-id>',\n 'Key id. If specified, -a and -A are ignored.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n // code goes here\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGH,KAAK,CAACI,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,wBAAwB,CAAC;AAE1DG,OAAO,CACJC,WAAW,CAAC,wBAAwB,CAAC,CACrCC,SAAS,CACR,IAAIN,MAAM,CACR,uBAAuB,EACvB,8CACF,CACF,CAAC,CACAO,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMX,SAAS,CAAC,CAAC,EAAE;IACrB;EAAA,CACD,MAAM;IACLa,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHZ,OAAO,CAACa,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"log-key-describe.js","names":["Option","getTokens","FrodoCommand","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","process","exitCode","parse"],"sources":["../../../src/cli/log/log-key-describe.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo log key describe');\n\nprogram\n .description('Describe log API keys.')\n .addOption(\n new Option(\n '-i, --key-id <key-id>',\n 'Key id. If specified, -a and -A are ignored.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n // code goes here\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,wBAAwB,CAAC;AAE1DC,OAAO,CACJC,WAAW,CAAC,wBAAwB,CAAC,CACrCC,SAAS,CACR,IAAIL,MAAM,CACR,uBAAuB,EACvB,8CACF,CACF,CAAC,CACAM,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMX,SAAS,CAAC,CAAC,EAAE;IACrB;EAAA,CACD,MAAM;IACLa,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHZ,OAAO,CAACa,KAAK,CAAC,CAAC"}
@@ -1,11 +1,8 @@
1
- import { frodo } from '@rockcarver/frodo-lib';
2
1
  import { Option } from 'commander';
2
+ import { getTokens } from '../../ops/AuthenticateOps';
3
3
  import { listLogApiKeys } from '../../ops/LogOps';
4
4
  import { verboseMessage } from '../../utils/Console';
5
5
  import { FrodoCommand } from '../FrodoCommand';
6
- const {
7
- getTokens
8
- } = frodo.login;
9
6
  const program = new FrodoCommand('frodo log key list');
10
7
  program.description('List log API keys.').addOption(new Option('-l, --long', 'Long with all fields.').default(false, 'false')).action(
11
8
  // implement command logic inside action handler