@rockcarver/frodo-cli 2.0.0-5 → 2.0.0-7

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 (344) hide show
  1. package/CHANGELOG.md +39 -1
  2. package/esm/app.js +4 -1
  3. package/esm/app.js.map +1 -1
  4. package/esm/cli/_template/something-delete.js +4 -1
  5. package/esm/cli/_template/something-delete.js.map +1 -1
  6. package/esm/cli/_template/something-describe.js +4 -1
  7. package/esm/cli/_template/something-describe.js.map +1 -1
  8. package/esm/cli/_template/something-else-delete.js +4 -1
  9. package/esm/cli/_template/something-else-delete.js.map +1 -1
  10. package/esm/cli/_template/something-else-describe.js +4 -1
  11. package/esm/cli/_template/something-else-describe.js.map +1 -1
  12. package/esm/cli/_template/something-else-export.js +4 -1
  13. package/esm/cli/_template/something-else-export.js.map +1 -1
  14. package/esm/cli/_template/something-else-import.js +4 -1
  15. package/esm/cli/_template/something-else-import.js.map +1 -1
  16. package/esm/cli/_template/something-else-list.js +4 -1
  17. package/esm/cli/_template/something-else-list.js.map +1 -1
  18. package/esm/cli/_template/something-export.js +4 -1
  19. package/esm/cli/_template/something-export.js.map +1 -1
  20. package/esm/cli/_template/something-import.js +4 -1
  21. package/esm/cli/_template/something-import.js.map +1 -1
  22. package/esm/cli/_template/something-list.js +4 -1
  23. package/esm/cli/_template/something-list.js.map +1 -1
  24. package/esm/cli/_template/something-other-delete.js +4 -1
  25. package/esm/cli/_template/something-other-delete.js.map +1 -1
  26. package/esm/cli/_template/something-other-describe.js +4 -1
  27. package/esm/cli/_template/something-other-describe.js.map +1 -1
  28. package/esm/cli/_template/something-other-export.js +4 -1
  29. package/esm/cli/_template/something-other-export.js.map +1 -1
  30. package/esm/cli/_template/something-other-import.js +4 -1
  31. package/esm/cli/_template/something-other-import.js.map +1 -1
  32. package/esm/cli/_template/something-other-list.js +4 -1
  33. package/esm/cli/_template/something-other-list.js.map +1 -1
  34. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +8 -2
  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 +10 -3
  37. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
  38. package/esm/cli/admin/admin-federation-export.js +45 -0
  39. package/esm/cli/admin/admin-federation-export.js.map +1 -0
  40. package/esm/cli/admin/admin-federation-import.js +49 -0
  41. package/esm/cli/admin/admin-federation-import.js.map +1 -0
  42. package/esm/cli/admin/admin-federation-list.js +29 -0
  43. package/esm/cli/admin/admin-federation-list.js.map +1 -0
  44. package/esm/cli/admin/admin-federation.js +13 -0
  45. package/esm/cli/admin/admin-federation.js.map +1 -0
  46. package/esm/cli/admin/admin-get-access-token.js +8 -2
  47. package/esm/cli/admin/admin-get-access-token.js.map +1 -1
  48. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +8 -2
  49. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
  50. package/esm/cli/admin/admin-hide-generic-extension-attributes.js +8 -2
  51. package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
  52. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +8 -2
  53. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
  54. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +8 -2
  55. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
  56. package/esm/cli/admin/admin-list-static-user-mappings.js +8 -2
  57. package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
  58. package/esm/cli/admin/admin-remove-static-user-mapping.js +8 -2
  59. package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
  60. package/esm/cli/admin/admin-repair-org-model.js +8 -2
  61. package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
  62. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +8 -2
  63. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
  64. package/esm/cli/admin/admin-show-generic-extension-attributes.js +8 -2
  65. package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
  66. package/esm/cli/admin/admin.js +1 -0
  67. package/esm/cli/admin/admin.js.map +1 -1
  68. package/esm/cli/agent/agent-delete.js +10 -3
  69. package/esm/cli/agent/agent-delete.js.map +1 -1
  70. package/esm/cli/agent/agent-describe.js +4 -1
  71. package/esm/cli/agent/agent-describe.js.map +1 -1
  72. package/esm/cli/agent/agent-export.js +4 -1
  73. package/esm/cli/agent/agent-export.js.map +1 -1
  74. package/esm/cli/agent/agent-gateway-delete.js +10 -3
  75. package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
  76. package/esm/cli/agent/agent-gateway-describe.js +4 -1
  77. package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
  78. package/esm/cli/agent/agent-gateway-export.js +4 -1
  79. package/esm/cli/agent/agent-gateway-export.js.map +1 -1
  80. package/esm/cli/agent/agent-gateway-import.js +4 -1
  81. package/esm/cli/agent/agent-gateway-import.js.map +1 -1
  82. package/esm/cli/agent/agent-gateway-list.js +4 -1
  83. package/esm/cli/agent/agent-gateway-list.js.map +1 -1
  84. package/esm/cli/agent/agent-import.js +4 -1
  85. package/esm/cli/agent/agent-import.js.map +1 -1
  86. package/esm/cli/agent/agent-java-delete.js +10 -3
  87. package/esm/cli/agent/agent-java-delete.js.map +1 -1
  88. package/esm/cli/agent/agent-java-describe.js +4 -1
  89. package/esm/cli/agent/agent-java-describe.js.map +1 -1
  90. package/esm/cli/agent/agent-java-export.js +4 -1
  91. package/esm/cli/agent/agent-java-export.js.map +1 -1
  92. package/esm/cli/agent/agent-java-import.js +4 -1
  93. package/esm/cli/agent/agent-java-import.js.map +1 -1
  94. package/esm/cli/agent/agent-java-list.js +4 -1
  95. package/esm/cli/agent/agent-java-list.js.map +1 -1
  96. package/esm/cli/agent/agent-list.js +4 -1
  97. package/esm/cli/agent/agent-list.js.map +1 -1
  98. package/esm/cli/agent/agent-web-delete.js +10 -3
  99. package/esm/cli/agent/agent-web-delete.js.map +1 -1
  100. package/esm/cli/agent/agent-web-describe.js +4 -1
  101. package/esm/cli/agent/agent-web-describe.js.map +1 -1
  102. package/esm/cli/agent/agent-web-export.js +4 -1
  103. package/esm/cli/agent/agent-web-export.js.map +1 -1
  104. package/esm/cli/agent/agent-web-import.js +4 -1
  105. package/esm/cli/agent/agent-web-import.js.map +1 -1
  106. package/esm/cli/agent/agent-web-list.js +4 -1
  107. package/esm/cli/agent/agent-web-list.js.map +1 -1
  108. package/esm/cli/app/app-delete.js +4 -1
  109. package/esm/cli/app/app-delete.js.map +1 -1
  110. package/esm/cli/app/app-describe.js +4 -1
  111. package/esm/cli/app/app-describe.js.map +1 -1
  112. package/esm/cli/app/app-export.js +6 -3
  113. package/esm/cli/app/app-export.js.map +1 -1
  114. package/esm/cli/app/app-import.js +7 -4
  115. package/esm/cli/app/app-import.js.map +1 -1
  116. package/esm/cli/app/app-list.js +4 -1
  117. package/esm/cli/app/app-list.js.map +1 -1
  118. package/esm/cli/authz/authz-policy-delete.js +6 -3
  119. package/esm/cli/authz/authz-policy-delete.js.map +1 -1
  120. package/esm/cli/authz/authz-policy-describe.js +4 -1
  121. package/esm/cli/authz/authz-policy-describe.js.map +1 -1
  122. package/esm/cli/authz/authz-policy-export.js +8 -5
  123. package/esm/cli/authz/authz-policy-export.js.map +1 -1
  124. package/esm/cli/authz/authz-policy-import.js +7 -4
  125. package/esm/cli/authz/authz-policy-import.js.map +1 -1
  126. package/esm/cli/authz/authz-policy-list.js +5 -2
  127. package/esm/cli/authz/authz-policy-list.js.map +1 -1
  128. package/esm/cli/authz/authz-set-delete.js +5 -2
  129. package/esm/cli/authz/authz-set-delete.js.map +1 -1
  130. package/esm/cli/authz/authz-set-describe.js +4 -1
  131. package/esm/cli/authz/authz-set-describe.js.map +1 -1
  132. package/esm/cli/authz/authz-set-export.js +6 -3
  133. package/esm/cli/authz/authz-set-export.js.map +1 -1
  134. package/esm/cli/authz/authz-set-import.js +7 -4
  135. package/esm/cli/authz/authz-set-import.js.map +1 -1
  136. package/esm/cli/authz/authz-set-list.js +4 -1
  137. package/esm/cli/authz/authz-set-list.js.map +1 -1
  138. package/esm/cli/authz/authz-type-delete.js +6 -3
  139. package/esm/cli/authz/authz-type-delete.js.map +1 -1
  140. package/esm/cli/authz/authz-type-describe.js +5 -2
  141. package/esm/cli/authz/authz-type-describe.js.map +1 -1
  142. package/esm/cli/authz/authz-type-export.js +7 -4
  143. package/esm/cli/authz/authz-type-export.js.map +1 -1
  144. package/esm/cli/authz/authz-type-import.js +8 -5
  145. package/esm/cli/authz/authz-type-import.js.map +1 -1
  146. package/esm/cli/authz/authz-type-list.js +4 -1
  147. package/esm/cli/authz/authz-type-list.js.map +1 -1
  148. package/esm/cli/conn/conn-save.js +18 -5
  149. package/esm/cli/conn/conn-save.js.map +1 -1
  150. package/esm/cli/email/email-template-export.js +6 -3
  151. package/esm/cli/email/email-template-export.js.map +1 -1
  152. package/esm/cli/email/email-template-import.js +7 -4
  153. package/esm/cli/email/email-template-import.js.map +1 -1
  154. package/esm/cli/email/email-template-list.js +4 -1
  155. package/esm/cli/email/email-template-list.js.map +1 -1
  156. package/esm/cli/esv/esv-apply.js +15 -5
  157. package/esm/cli/esv/esv-apply.js.map +1 -1
  158. package/esm/cli/esv/esv-secret-create.js +4 -1
  159. package/esm/cli/esv/esv-secret-create.js.map +1 -1
  160. package/esm/cli/esv/esv-secret-delete.js +5 -2
  161. package/esm/cli/esv/esv-secret-delete.js.map +1 -1
  162. package/esm/cli/esv/esv-secret-describe.js +4 -1
  163. package/esm/cli/esv/esv-secret-describe.js.map +1 -1
  164. package/esm/cli/esv/esv-secret-export.js +4 -1
  165. package/esm/cli/esv/esv-secret-export.js.map +1 -1
  166. package/esm/cli/esv/esv-secret-import.js +4 -1
  167. package/esm/cli/esv/esv-secret-import.js.map +1 -1
  168. package/esm/cli/esv/esv-secret-list.js +4 -1
  169. package/esm/cli/esv/esv-secret-list.js.map +1 -1
  170. package/esm/cli/esv/esv-secret-set.js +4 -1
  171. package/esm/cli/esv/esv-secret-set.js.map +1 -1
  172. package/esm/cli/esv/esv-secret-version-activate.js +4 -1
  173. package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
  174. package/esm/cli/esv/esv-secret-version-create.js +4 -1
  175. package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
  176. package/esm/cli/esv/esv-secret-version-deactivate.js +4 -1
  177. package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
  178. package/esm/cli/esv/esv-secret-version-delete.js +5 -2
  179. package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
  180. package/esm/cli/esv/esv-secret-version-list.js +4 -1
  181. package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
  182. package/esm/cli/esv/esv-variable-create.js +4 -1
  183. package/esm/cli/esv/esv-variable-create.js.map +1 -1
  184. package/esm/cli/esv/esv-variable-delete.js +5 -2
  185. package/esm/cli/esv/esv-variable-delete.js.map +1 -1
  186. package/esm/cli/esv/esv-variable-describe.js +4 -1
  187. package/esm/cli/esv/esv-variable-describe.js.map +1 -1
  188. package/esm/cli/esv/esv-variable-export.js +4 -1
  189. package/esm/cli/esv/esv-variable-export.js.map +1 -1
  190. package/esm/cli/esv/esv-variable-import.js +4 -1
  191. package/esm/cli/esv/esv-variable-import.js.map +1 -1
  192. package/esm/cli/esv/esv-variable-list.js +4 -1
  193. package/esm/cli/esv/esv-variable-list.js.map +1 -1
  194. package/esm/cli/esv/esv-variable-set.js +5 -2
  195. package/esm/cli/esv/esv-variable-set.js.map +1 -1
  196. package/esm/cli/idm/idm-count.js +4 -1
  197. package/esm/cli/idm/idm-count.js.map +1 -1
  198. package/esm/cli/idm/idm-export.js +6 -3
  199. package/esm/cli/idm/idm-export.js.map +1 -1
  200. package/esm/cli/idm/idm-import.js +7 -4
  201. package/esm/cli/idm/idm-import.js.map +1 -1
  202. package/esm/cli/idm/idm-list.js +4 -1
  203. package/esm/cli/idm/idm-list.js.map +1 -1
  204. package/esm/cli/idp/idp-export.js +4 -1
  205. package/esm/cli/idp/idp-export.js.map +1 -1
  206. package/esm/cli/idp/idp-import.js +7 -4
  207. package/esm/cli/idp/idp-import.js.map +1 -1
  208. package/esm/cli/idp/idp-list.js +4 -1
  209. package/esm/cli/idp/idp-list.js.map +1 -1
  210. package/esm/cli/info/info.js +8 -2
  211. package/esm/cli/info/info.js.map +1 -1
  212. package/esm/cli/journey/journey-delete.js +5 -2
  213. package/esm/cli/journey/journey-delete.js.map +1 -1
  214. package/esm/cli/journey/journey-describe.js +14 -6
  215. package/esm/cli/journey/journey-describe.js.map +1 -1
  216. package/esm/cli/journey/journey-disable.js +8 -2
  217. package/esm/cli/journey/journey-disable.js.map +1 -1
  218. package/esm/cli/journey/journey-enable.js +8 -2
  219. package/esm/cli/journey/journey-enable.js.map +1 -1
  220. package/esm/cli/journey/journey-export.js +6 -3
  221. package/esm/cli/journey/journey-export.js.map +1 -1
  222. package/esm/cli/journey/journey-import.js +7 -4
  223. package/esm/cli/journey/journey-import.js.map +1 -1
  224. package/esm/cli/journey/journey-list.js +4 -1
  225. package/esm/cli/journey/journey-list.js.map +1 -1
  226. package/esm/cli/journey/journey-prune.js +10 -3
  227. package/esm/cli/journey/journey-prune.js.map +1 -1
  228. package/esm/cli/log/log-fetch.js +16 -6
  229. package/esm/cli/log/log-fetch.js.map +1 -1
  230. package/esm/cli/log/log-key-delete.js +5 -2
  231. package/esm/cli/log/log-key-delete.js.map +1 -1
  232. package/esm/cli/log/log-key-describe.js +4 -1
  233. package/esm/cli/log/log-key-describe.js.map +1 -1
  234. package/esm/cli/log/log-key-list.js +4 -1
  235. package/esm/cli/log/log-key-list.js.map +1 -1
  236. package/esm/cli/log/log-list.js +14 -4
  237. package/esm/cli/log/log-list.js.map +1 -1
  238. package/esm/cli/log/log-tail.js +16 -6
  239. package/esm/cli/log/log-tail.js.map +1 -1
  240. package/esm/cli/realm/realm-add-custom-domain.js +4 -1
  241. package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
  242. package/esm/cli/realm/realm-describe.js +4 -1
  243. package/esm/cli/realm/realm-describe.js.map +1 -1
  244. package/esm/cli/realm/realm-list.js +4 -1
  245. package/esm/cli/realm/realm-list.js.map +1 -1
  246. package/esm/cli/realm/realm-remove-custom-domain.js +8 -2
  247. package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
  248. package/esm/cli/saml/saml-cot-export.js +6 -3
  249. package/esm/cli/saml/saml-cot-export.js.map +1 -1
  250. package/esm/cli/saml/saml-cot-import.js +7 -4
  251. package/esm/cli/saml/saml-cot-import.js.map +1 -1
  252. package/esm/cli/saml/saml-cot-list.js +4 -1
  253. package/esm/cli/saml/saml-cot-list.js.map +1 -1
  254. package/esm/cli/saml/saml-delete.js +11 -4
  255. package/esm/cli/saml/saml-delete.js.map +1 -1
  256. package/esm/cli/saml/saml-describe.js +4 -1
  257. package/esm/cli/saml/saml-describe.js.map +1 -1
  258. package/esm/cli/saml/saml-export.js +6 -3
  259. package/esm/cli/saml/saml-export.js.map +1 -1
  260. package/esm/cli/saml/saml-import.js +7 -4
  261. package/esm/cli/saml/saml-import.js.map +1 -1
  262. package/esm/cli/saml/saml-list.js +4 -1
  263. package/esm/cli/saml/saml-list.js.map +1 -1
  264. package/esm/cli/saml/saml-metadata-export.js +5 -2
  265. package/esm/cli/saml/saml-metadata-export.js.map +1 -1
  266. package/esm/cli/script/script-delete.js +4 -1
  267. package/esm/cli/script/script-delete.js.map +1 -1
  268. package/esm/cli/script/script-describe.js +4 -1
  269. package/esm/cli/script/script-describe.js.map +1 -1
  270. package/esm/cli/script/script-export.js +4 -1
  271. package/esm/cli/script/script-export.js.map +1 -1
  272. package/esm/cli/script/script-import.js +4 -1
  273. package/esm/cli/script/script-import.js.map +1 -1
  274. package/esm/cli/script/script-list.js +4 -1
  275. package/esm/cli/script/script-list.js.map +1 -1
  276. package/esm/cli/service/service-delete.js +5 -2
  277. package/esm/cli/service/service-delete.js.map +1 -1
  278. package/esm/cli/service/service-export.js +6 -3
  279. package/esm/cli/service/service-export.js.map +1 -1
  280. package/esm/cli/service/service-import.js +7 -4
  281. package/esm/cli/service/service-import.js.map +1 -1
  282. package/esm/cli/service/service-list.js +4 -1
  283. package/esm/cli/service/service-list.js.map +1 -1
  284. package/esm/cli/theme/theme-delete.js +6 -3
  285. package/esm/cli/theme/theme-delete.js.map +1 -1
  286. package/esm/cli/theme/theme-export.js +7 -4
  287. package/esm/cli/theme/theme-export.js.map +1 -1
  288. package/esm/cli/theme/theme-import.js +8 -5
  289. package/esm/cli/theme/theme-import.js.map +1 -1
  290. package/esm/cli/theme/theme-list.js +4 -1
  291. package/esm/cli/theme/theme-list.js.map +1 -1
  292. package/esm/ops/AdminFederationOps.js +216 -0
  293. package/esm/ops/AdminFederationOps.js.map +1 -0
  294. package/esm/ops/AgentOps.js +62 -36
  295. package/esm/ops/AgentOps.js.map +1 -1
  296. package/esm/ops/CirclesOfTrustOps.js +22 -10
  297. package/esm/ops/CirclesOfTrustOps.js.map +1 -1
  298. package/esm/ops/ConnectionProfileOps.js +10 -3
  299. package/esm/ops/ConnectionProfileOps.js.map +1 -1
  300. package/esm/ops/EmailTemplateOps.js +23 -15
  301. package/esm/ops/EmailTemplateOps.js.map +1 -1
  302. package/esm/ops/IdmOps.js +34 -21
  303. package/esm/ops/IdmOps.js.map +1 -1
  304. package/esm/ops/IdpOps.js +17 -9
  305. package/esm/ops/IdpOps.js.map +1 -1
  306. package/esm/ops/JourneyOps.js +46 -30
  307. package/esm/ops/JourneyOps.js.map +1 -1
  308. package/esm/ops/LogOps.js +21 -11
  309. package/esm/ops/LogOps.js.map +1 -1
  310. package/esm/ops/NodeOps.js +5 -2
  311. package/esm/ops/NodeOps.js.map +1 -1
  312. package/esm/ops/OAuth2ClientOps.js +26 -13
  313. package/esm/ops/OAuth2ClientOps.js.map +1 -1
  314. package/esm/ops/OrganizationOps.js +8 -2
  315. package/esm/ops/OrganizationOps.js.map +1 -1
  316. package/esm/ops/PolicyOps.js +36 -21
  317. package/esm/ops/PolicyOps.js.map +1 -1
  318. package/esm/ops/PolicySetOps.js +35 -18
  319. package/esm/ops/PolicySetOps.js.map +1 -1
  320. package/esm/ops/RealmOps.js +11 -6
  321. package/esm/ops/RealmOps.js.map +1 -1
  322. package/esm/ops/ResourceTypeOps.js +34 -18
  323. package/esm/ops/ResourceTypeOps.js.map +1 -1
  324. package/esm/ops/Saml2Ops.js +43 -23
  325. package/esm/ops/Saml2Ops.js.map +1 -1
  326. package/esm/ops/ScriptOps.js +18 -10
  327. package/esm/ops/ScriptOps.js.map +1 -1
  328. package/esm/ops/SecretsOps.js +28 -14
  329. package/esm/ops/SecretsOps.js.map +1 -1
  330. package/esm/ops/ServiceOps.js +38 -17
  331. package/esm/ops/ServiceOps.js.map +1 -1
  332. package/esm/ops/ThemeOps.js +35 -19
  333. package/esm/ops/ThemeOps.js.map +1 -1
  334. package/esm/ops/VariablesOps.js +23 -12
  335. package/esm/ops/VariablesOps.js.map +1 -1
  336. package/esm/utils/Config.js +6 -3
  337. package/esm/utils/Config.js.map +1 -1
  338. package/esm/utils/Console.js +5 -2
  339. package/esm/utils/Console.js.map +1 -1
  340. package/esm/utils/ExportImportUtils.js +6 -3
  341. package/esm/utils/ExportImportUtils.js.map +1 -1
  342. package/esm/utils/Version.js +7 -3
  343. package/esm/utils/Version.js.map +1 -1
  344. package/package.json +2 -2
@@ -3,28 +3,31 @@ import { Option } from 'commander';
3
3
  import { frodo } from '@rockcarver/frodo-lib';
4
4
  import { printMessage, verboseMessage } from '../../utils/Console';
5
5
  import { importAllConfigEntities, importAllRawConfigEntities, importConfigEntityByIdFromFile, importConfigEntityFromFile } from '../../ops/IdmOps';
6
+ const {
7
+ getTokens
8
+ } = frodo.login;
6
9
  const program = new FrodoCommand('frodo idm import');
7
10
  program.description('Import IDM configuration objects.').addOption(new Option('-N, --name <name>', 'Config entity name. E.g. "managed", "sync", "provisioner-<connector-name>", etc.')).addOption(new Option('-f, --file [file]', 'Import file. Ignored with -A.')).addOption(new Option('-E, --entities-file [entities-file]', 'Name of the entity file. Ignored with -A.')).addOption(new Option('-e, --env-file [envfile]', 'Name of the env file. Ignored with -A.')).addOption(new Option('-A, --all-separate', 'Import all IDM configuration objects from separate files in directory -D. Ignored with -N, and -a.')).addOption(new Option('-D, --directory <directory>', 'Import directory. Required with and ignored without -a/-A.')).action(
8
11
  // implement command logic inside action handler
9
12
  async (host, realm, user, password, options, command) => {
10
13
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
11
14
  // import by id/name
12
- if (options.name && (await frodo.login.getTokens())) {
15
+ if (options.name && (await getTokens())) {
13
16
  verboseMessage(`Importing object "${options.name}"...`);
14
17
  await importConfigEntityByIdFromFile(options.name, options.file);
15
18
  }
16
19
  // import from file
17
- if (options.file && (await frodo.login.getTokens())) {
20
+ if (options.file && (await getTokens())) {
18
21
  verboseMessage(`Importing object from file...`);
19
22
  await importConfigEntityFromFile(options.file);
20
23
  }
21
24
  // --all-separate -A
22
- else if (options.allSeparate && options.directory && options.entitiesFile && options.envFile && (await frodo.login.getTokens())) {
25
+ else if (options.allSeparate && options.directory && options.entitiesFile && options.envFile && (await getTokens())) {
23
26
  verboseMessage(`Importing IDM configuration objects specified in ${options.entitiesFile} into separate files in ${options.directory} using ${options.envFile} for variable replacement...`);
24
27
  await importAllConfigEntities(options.directory, options.entitiesFile, options.envFile);
25
28
  }
26
29
  // --all-separate -A without variable replacement
27
- else if (options.allSeparate && options.directory && (await frodo.login.getTokens())) {
30
+ else if (options.allSeparate && options.directory && (await getTokens())) {
28
31
  verboseMessage(`Importing all IDM configuration objects from separate files in ${options.directory}...`);
29
32
  await importAllRawConfigEntities(options.directory);
30
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"idm-import.js","names":["FrodoCommand","Option","frodo","printMessage","verboseMessage","importAllConfigEntities","importAllRawConfigEntities","importConfigEntityByIdFromFile","importConfigEntityFromFile","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","name","login","getTokens","file","allSeparate","directory","entitiesFile","envFile","help","process","exitCode","parse"],"sources":["cli/idm/idm-import.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport {\n importAllConfigEntities,\n importAllRawConfigEntities,\n importConfigEntityByIdFromFile,\n importConfigEntityFromFile,\n} from '../../ops/IdmOps';\n\nconst program = new FrodoCommand('frodo idm import');\n\ninterface IdmImportOptions {\n type?: string;\n insecure?: boolean;\n verbose?: boolean;\n debug?: boolean;\n curlirize?: boolean;\n name?: string;\n file?: string;\n entitiesFile?: string;\n envFile?: string;\n all?: string;\n allSeparate?: string;\n directory?: string;\n}\n\nprogram\n .description('Import IDM configuration objects.')\n .addOption(\n new Option(\n '-N, --name <name>',\n 'Config entity name. E.g. \"managed\", \"sync\", \"provisioner-<connector-name>\", etc.'\n )\n )\n .addOption(new Option('-f, --file [file]', 'Import file. Ignored with -A.'))\n .addOption(\n new Option(\n '-E, --entities-file [entities-file]',\n 'Name of the entity file. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-e, --env-file [envfile]',\n 'Name of the env file. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all IDM configuration objects from separate files in directory -D. Ignored with -N, and -a.'\n )\n )\n .addOption(\n new Option(\n '-D, --directory <directory>',\n 'Import directory. Required with and ignored without -a/-A.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (\n host: string,\n realm: string,\n user: string,\n password: string,\n options: IdmImportOptions,\n command\n ) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // import by id/name\n if (options.name && (await frodo.login.getTokens())) {\n verboseMessage(`Importing object \"${options.name}\"...`);\n await importConfigEntityByIdFromFile(options.name, options.file);\n }\n // import from file\n if (options.file && (await frodo.login.getTokens())) {\n verboseMessage(`Importing object from file...`);\n await importConfigEntityFromFile(options.file);\n }\n // --all-separate -A\n else if (\n options.allSeparate &&\n options.directory &&\n options.entitiesFile &&\n options.envFile &&\n (await frodo.login.getTokens())\n ) {\n verboseMessage(\n `Importing IDM configuration objects specified in ${options.entitiesFile} into separate files in ${options.directory} using ${options.envFile} for variable replacement...`\n );\n await importAllConfigEntities(\n options.directory,\n options.entitiesFile,\n options.envFile\n );\n }\n // --all-separate -A without variable replacement\n else if (\n options.allSeparate &&\n options.directory &&\n (await frodo.login.getTokens())\n ) {\n verboseMessage(\n `Importing all IDM configuration objects from separate files in ${options.directory}...`\n );\n await importAllRawConfigEntities(options.directory);\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":"idm-import.js","names":["FrodoCommand","Option","frodo","printMessage","verboseMessage","importAllConfigEntities","importAllRawConfigEntities","importConfigEntityByIdFromFile","importConfigEntityFromFile","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","name","file","allSeparate","directory","entitiesFile","envFile","help","process","exitCode","parse"],"sources":["cli/idm/idm-import.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport {\n importAllConfigEntities,\n importAllRawConfigEntities,\n importConfigEntityByIdFromFile,\n importConfigEntityFromFile,\n} from '../../ops/IdmOps';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo idm import');\n\ninterface IdmImportOptions {\n type?: string;\n insecure?: boolean;\n verbose?: boolean;\n debug?: boolean;\n curlirize?: boolean;\n name?: string;\n file?: string;\n entitiesFile?: string;\n envFile?: string;\n all?: string;\n allSeparate?: string;\n directory?: string;\n}\n\nprogram\n .description('Import IDM configuration objects.')\n .addOption(\n new Option(\n '-N, --name <name>',\n 'Config entity name. E.g. \"managed\", \"sync\", \"provisioner-<connector-name>\", etc.'\n )\n )\n .addOption(new Option('-f, --file [file]', 'Import file. Ignored with -A.'))\n .addOption(\n new Option(\n '-E, --entities-file [entities-file]',\n 'Name of the entity file. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-e, --env-file [envfile]',\n 'Name of the env file. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all IDM configuration objects from separate files in directory -D. Ignored with -N, and -a.'\n )\n )\n .addOption(\n new Option(\n '-D, --directory <directory>',\n 'Import directory. Required with and ignored without -a/-A.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (\n host: string,\n realm: string,\n user: string,\n password: string,\n options: IdmImportOptions,\n command\n ) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // import by id/name\n if (options.name && (await getTokens())) {\n verboseMessage(`Importing object \"${options.name}\"...`);\n await importConfigEntityByIdFromFile(options.name, options.file);\n }\n // import from file\n if (options.file && (await getTokens())) {\n verboseMessage(`Importing object from file...`);\n await importConfigEntityFromFile(options.file);\n }\n // --all-separate -A\n else if (\n options.allSeparate &&\n options.directory &&\n options.entitiesFile &&\n options.envFile &&\n (await getTokens())\n ) {\n verboseMessage(\n `Importing IDM configuration objects specified in ${options.entitiesFile} into separate files in ${options.directory} using ${options.envFile} for variable replacement...`\n );\n await importAllConfigEntities(\n options.directory,\n options.entitiesFile,\n options.envFile\n );\n }\n // --all-separate -A without variable replacement\n else if (\n options.allSeparate &&\n options.directory &&\n (await getTokens())\n ) {\n verboseMessage(\n `Importing all IDM configuration objects from separate files in ${options.directory}...`\n );\n await importAllRawConfigEntities(options.directory);\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,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SACEC,uBAAuB,EACvBC,0BAA0B,EAC1BC,8BAA8B,EAC9BC,0BAA0B,QACrB,kBAAkB;AAEzB,MAAM;EAAEC;AAAU,CAAC,GAAGP,KAAK,CAACQ,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIX,YAAY,CAAC,kBAAkB,CAAC;AAiBpDW,OAAO,CACJC,WAAW,CAAC,mCAAmC,CAAC,CAChDC,SAAS,CACR,IAAIZ,MAAM,CACR,mBAAmB,EACnB,kFACF,CACF,CAAC,CACAY,SAAS,CAAC,IAAIZ,MAAM,CAAC,mBAAmB,EAAE,+BAA+B,CAAC,CAAC,CAC3EY,SAAS,CACR,IAAIZ,MAAM,CACR,qCAAqC,EACrC,2CACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,0BAA0B,EAC1B,wCACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,oBAAoB,EACpB,oGACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,6BAA6B,EAC7B,4DACF,CACF,CAAC,CACAa,MAAM;AACL;AACA,OACEC,IAAY,EACZC,KAAa,EACbC,IAAY,EACZC,QAAgB,EAChBC,OAAyB,EACzBC,OAAO,KACJ;EACHA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,IAAI,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IACvCL,cAAc,CAAE,qBAAoBe,OAAO,CAACG,IAAK,MAAK,CAAC;IACvD,MAAMf,8BAA8B,CAACY,OAAO,CAACG,IAAI,EAAEH,OAAO,CAACI,IAAI,CAAC;EAClE;EACA;EACA,IAAIJ,OAAO,CAACI,IAAI,KAAK,MAAMd,SAAS,CAAC,CAAC,CAAC,EAAE;IACvCL,cAAc,CAAE,+BAA8B,CAAC;IAC/C,MAAMI,0BAA0B,CAACW,OAAO,CAACI,IAAI,CAAC;EAChD;EACA;EAAA,KACK,IACHJ,OAAO,CAACK,WAAW,IACnBL,OAAO,CAACM,SAAS,IACjBN,OAAO,CAACO,YAAY,IACpBP,OAAO,CAACQ,OAAO,KACd,MAAMlB,SAAS,CAAC,CAAC,CAAC,EACnB;IACAL,cAAc,CACX,oDAAmDe,OAAO,CAACO,YAAa,2BAA0BP,OAAO,CAACM,SAAU,UAASN,OAAO,CAACQ,OAAQ,8BAChJ,CAAC;IACD,MAAMtB,uBAAuB,CAC3Bc,OAAO,CAACM,SAAS,EACjBN,OAAO,CAACO,YAAY,EACpBP,OAAO,CAACQ,OACV,CAAC;EACH;EACA;EAAA,KACK,IACHR,OAAO,CAACK,WAAW,IACnBL,OAAO,CAACM,SAAS,KAChB,MAAMhB,SAAS,CAAC,CAAC,CAAC,EACnB;IACAL,cAAc,CACX,kEAAiEe,OAAO,CAACM,SAAU,KACtF,CAAC;IACD,MAAMnB,0BAA0B,CAACa,OAAO,CAACM,SAAS,CAAC;EACrD;EACA;EAAA,KACK;IACHtB,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;IACDQ,OAAO,CAACiB,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHnB,OAAO,CAACoB,KAAK,CAAC,CAAC"}
@@ -2,6 +2,9 @@ import { FrodoCommand } from '../FrodoCommand';
2
2
  import { frodo } from '@rockcarver/frodo-lib';
3
3
  import { verboseMessage } from '../../utils/Console';
4
4
  import { listAllConfigEntities, warnAboutOfflineConnectorServers } from '../../ops/IdmOps';
5
+ const {
6
+ getTokens
7
+ } = frodo.login;
5
8
  const program = new FrodoCommand('frodo idm list');
6
9
  program.description('List IDM configuration objects.')
7
10
  // .addOption(
@@ -11,7 +14,7 @@ program.description('List IDM configuration objects.')
11
14
  // implement command logic inside action handler
12
15
  async (host, realm, user, password, options, command) => {
13
16
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
14
- if (await frodo.login.getTokens()) {
17
+ if (await getTokens()) {
15
18
  verboseMessage('Listing all IDM configuration objects...');
16
19
  listAllConfigEntities();
17
20
  warnAboutOfflineConnectorServers();
@@ -1 +1 @@
1
- {"version":3,"file":"idm-list.js","names":["FrodoCommand","frodo","verboseMessage","listAllConfigEntities","warnAboutOfflineConnectorServers","program","description","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","login","getTokens","process","exitCode","parse"],"sources":["cli/idm/idm-list.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { frodo } from '@rockcarver/frodo-lib';\nimport { verboseMessage } from '../../utils/Console';\nimport {\n listAllConfigEntities,\n warnAboutOfflineConnectorServers,\n} from '../../ops/IdmOps';\n\nconst program = new FrodoCommand('frodo idm list');\n\nprogram\n .description('List IDM configuration objects.')\n // .addOption(\n // new Option('-l, --long', 'Long with all fields.').default(false, 'false')\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 frodo.login.getTokens()) {\n verboseMessage('Listing all IDM configuration objects...');\n listAllConfigEntities();\n warnAboutOfflineConnectorServers();\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SACEC,qBAAqB,EACrBC,gCAAgC,QAC3B,kBAAkB;AAEzB,MAAMC,OAAO,GAAG,IAAIL,YAAY,CAAC,gBAAgB,CAAC;AAElDK,OAAO,CACJC,WAAW,CAAC,iCAAiC;AAC9C;AACA;AACA;AAAA,CACCC,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,KAAK,CAACc,KAAK,CAACC,SAAS,CAAC,CAAC,EAAE;IACjCd,cAAc,CAAC,0CAA0C,CAAC;IAC1DC,qBAAqB,CAAC,CAAC;IACvBC,gCAAgC,CAAC,CAAC;EACpC,CAAC,MAAM;IACLa,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHb,OAAO,CAACc,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"idm-list.js","names":["FrodoCommand","frodo","verboseMessage","listAllConfigEntities","warnAboutOfflineConnectorServers","getTokens","login","program","description","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","process","exitCode","parse"],"sources":["cli/idm/idm-list.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { frodo } from '@rockcarver/frodo-lib';\nimport { verboseMessage } from '../../utils/Console';\nimport {\n listAllConfigEntities,\n warnAboutOfflineConnectorServers,\n} from '../../ops/IdmOps';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo idm list');\n\nprogram\n .description('List IDM configuration objects.')\n // .addOption(\n // new Option('-l, --long', 'Long with all fields.').default(false, 'false')\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('Listing all IDM configuration objects...');\n listAllConfigEntities();\n warnAboutOfflineConnectorServers();\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SACEC,qBAAqB,EACrBC,gCAAgC,QAC3B,kBAAkB;AAEzB,MAAM;EAAEC;AAAU,CAAC,GAAGJ,KAAK,CAACK,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIP,YAAY,CAAC,gBAAgB,CAAC;AAElDO,OAAO,CACJC,WAAW,CAAC,iCAAiC;AAC9C;AACA;AACA;AAAA,CACCC,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,MAAMV,SAAS,CAAC,CAAC,EAAE;IACrBH,cAAc,CAAC,0CAA0C,CAAC;IAC1DC,qBAAqB,CAAC,CAAC;IACvBC,gCAAgC,CAAC,CAAC;EACpC,CAAC,MAAM;IACLa,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHX,OAAO,CAACY,KAAK,CAAC,CAAC"}
@@ -3,12 +3,15 @@ import { Option } from 'commander';
3
3
  import { frodo, state } from '@rockcarver/frodo-lib';
4
4
  import { printMessage, verboseMessage } from '../../utils/Console';
5
5
  import { exportSocialProvidersToFile, exportSocialProvidersToFiles, exportSocialProviderToFile } from '../../ops/IdpOps';
6
+ const {
7
+ getTokens
8
+ } = frodo.login;
6
9
  const program = new FrodoCommand('frodo idp export');
7
10
  program.description('Export (social) identity providers.').addOption(new Option('-i, --idp-id <idp-id>', 'Id/name of a provider. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file [file]', 'Name of the file to write the exported provider(s) to. Ignored with -A.')).addOption(new Option('-a, --all', 'Export all the providers in a realm to a single file. Ignored with -t and -i.')).addOption(new Option('-A, --all-separate', 'Export all the providers in a realm as separate files <provider name>.idp.json. Ignored with -t, -i, and -a.')).action(
8
11
  // implement command logic inside action handler
9
12
  async (host, realm, user, password, options, command) => {
10
13
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
11
- if (await frodo.login.getTokens()) {
14
+ if (await getTokens()) {
12
15
  // export by id/name
13
16
  if (options.idpId) {
14
17
  verboseMessage(`Exporting provider "${options.idpId}" from realm "${state.getRealm()}"...`);
@@ -1 +1 @@
1
- {"version":3,"file":"idp-export.js","names":["FrodoCommand","Option","frodo","state","printMessage","verboseMessage","exportSocialProvidersToFile","exportSocialProvidersToFiles","exportSocialProviderToFile","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","login","getTokens","idpId","getRealm","file","all","allSeparate","help","process","exitCode","parse"],"sources":["cli/idp/idp-export.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport {\n exportSocialProvidersToFile,\n exportSocialProvidersToFiles,\n exportSocialProviderToFile,\n} from '../../ops/IdpOps';\n\nconst program = new FrodoCommand('frodo idp export');\n\nprogram\n .description('Export (social) identity providers.')\n .addOption(\n new Option(\n '-i, --idp-id <idp-id>',\n 'Id/name of a provider. 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 provider(s) to. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Export all the providers in a realm to a single file. Ignored with -t and -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all the providers in a realm as separate files <provider name>.idp.json. Ignored with -t, -i, and -a.'\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 frodo.login.getTokens()) {\n // export by id/name\n if (options.idpId) {\n verboseMessage(\n `Exporting provider \"${\n options.idpId\n }\" from realm \"${state.getRealm()}\"...`\n );\n exportSocialProviderToFile(options.idpId, options.file);\n }\n // --all -a\n else if (options.all) {\n verboseMessage('Exporting all providers to a single file...');\n exportSocialProvidersToFile(options.file);\n }\n // --all-separate -A\n else if (options.allSeparate) {\n verboseMessage('Exporting all providers to separate files...');\n exportSocialProvidersToFiles();\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 }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SACEC,2BAA2B,EAC3BC,4BAA4B,EAC5BC,0BAA0B,QACrB,kBAAkB;AAEzB,MAAMC,OAAO,GAAG,IAAIT,YAAY,CAAC,kBAAkB,CAAC;AAEpDS,OAAO,CACJC,WAAW,CAAC,qCAAqC,CAAC,CAClDC,SAAS,CACR,IAAIV,MAAM,CACR,uBAAuB,EACvB,6DACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,mBAAmB,EACnB,yEACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,WAAW,EACX,+EACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,oBAAoB,EACpB,8GACF,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,IAAI,MAAMhB,KAAK,CAACkB,KAAK,CAACC,SAAS,CAAC,CAAC,EAAE;IACjC;IACA,IAAIJ,OAAO,CAACK,KAAK,EAAE;MACjBjB,cAAc,CACX,uBACCY,OAAO,CAACK,KACT,iBAAgBnB,KAAK,CAACoB,QAAQ,CAAC,CAAE,MACpC,CAAC;MACDf,0BAA0B,CAACS,OAAO,CAACK,KAAK,EAAEL,OAAO,CAACO,IAAI,CAAC;IACzD;IACA;IAAA,KACK,IAAIP,OAAO,CAACQ,GAAG,EAAE;MACpBpB,cAAc,CAAC,6CAA6C,CAAC;MAC7DC,2BAA2B,CAACW,OAAO,CAACO,IAAI,CAAC;IAC3C;IACA;IAAA,KACK,IAAIP,OAAO,CAACS,WAAW,EAAE;MAC5BrB,cAAc,CAAC,8CAA8C,CAAC;MAC9DE,4BAA4B,CAAC,CAAC;IAChC;IACA;IAAA,KACK;MACHH,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;MACDK,OAAO,CAACkB,IAAI,CAAC,CAAC;MACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;IACtB;EACF;AACF;AACA;AACF,CAAC;;AAEHpB,OAAO,CAACqB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"idp-export.js","names":["FrodoCommand","Option","frodo","state","printMessage","verboseMessage","exportSocialProvidersToFile","exportSocialProvidersToFiles","exportSocialProviderToFile","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","idpId","getRealm","file","all","allSeparate","help","process","exitCode","parse"],"sources":["cli/idp/idp-export.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport {\n exportSocialProvidersToFile,\n exportSocialProvidersToFiles,\n exportSocialProviderToFile,\n} from '../../ops/IdpOps';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo idp export');\n\nprogram\n .description('Export (social) identity providers.')\n .addOption(\n new Option(\n '-i, --idp-id <idp-id>',\n 'Id/name of a provider. 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 provider(s) to. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Export all the providers in a realm to a single file. Ignored with -t and -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all the providers in a realm as separate files <provider name>.idp.json. Ignored with -t, -i, and -a.'\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 // export by id/name\n if (options.idpId) {\n verboseMessage(\n `Exporting provider \"${\n options.idpId\n }\" from realm \"${state.getRealm()}\"...`\n );\n exportSocialProviderToFile(options.idpId, options.file);\n }\n // --all -a\n else if (options.all) {\n verboseMessage('Exporting all providers to a single file...');\n exportSocialProvidersToFile(options.file);\n }\n // --all-separate -A\n else if (options.allSeparate) {\n verboseMessage('Exporting all providers to separate files...');\n exportSocialProvidersToFiles();\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 }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SACEC,2BAA2B,EAC3BC,4BAA4B,EAC5BC,0BAA0B,QACrB,kBAAkB;AAEzB,MAAM;EAAEC;AAAU,CAAC,GAAGP,KAAK,CAACQ,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIX,YAAY,CAAC,kBAAkB,CAAC;AAEpDW,OAAO,CACJC,WAAW,CAAC,qCAAqC,CAAC,CAClDC,SAAS,CACR,IAAIZ,MAAM,CACR,uBAAuB,EACvB,6DACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,mBAAmB,EACnB,yEACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,WAAW,EACX,+EACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,oBAAoB,EACpB,8GACF,CACF,CAAC,CACAa,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;IACA,IAAIU,OAAO,CAACG,KAAK,EAAE;MACjBjB,cAAc,CACX,uBACCc,OAAO,CAACG,KACT,iBAAgBnB,KAAK,CAACoB,QAAQ,CAAC,CAAE,MACpC,CAAC;MACDf,0BAA0B,CAACW,OAAO,CAACG,KAAK,EAAEH,OAAO,CAACK,IAAI,CAAC;IACzD;IACA;IAAA,KACK,IAAIL,OAAO,CAACM,GAAG,EAAE;MACpBpB,cAAc,CAAC,6CAA6C,CAAC;MAC7DC,2BAA2B,CAACa,OAAO,CAACK,IAAI,CAAC;IAC3C;IACA;IAAA,KACK,IAAIL,OAAO,CAACO,WAAW,EAAE;MAC5BrB,cAAc,CAAC,8CAA8C,CAAC;MAC9DE,4BAA4B,CAAC,CAAC;IAChC;IACA;IAAA,KACK;MACHH,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;MACDO,OAAO,CAACgB,IAAI,CAAC,CAAC;MACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;IACtB;EACF;AACF;AACA;AACF,CAAC;;AAEHlB,OAAO,CAACmB,KAAK,CAAC,CAAC"}
@@ -3,28 +3,31 @@ import { Option } from 'commander';
3
3
  import { frodo, state } from '@rockcarver/frodo-lib';
4
4
  import { printMessage, verboseMessage } from '../../utils/Console';
5
5
  import { importFirstSocialProviderFromFile, importSocialProviderFromFile, importSocialProvidersFromFile, importSocialProvidersFromFiles } from '../../ops/IdpOps';
6
+ const {
7
+ getTokens
8
+ } = frodo.login;
6
9
  const program = new FrodoCommand('frodo idp import');
7
10
  program.description('Import (social) identity providers.').addOption(new Option('-i, --idp-id <id>', 'Provider id. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file <file>', 'Name of the file to import the provider(s) from.')).addOption(new Option('-a, --all', 'Import all the providers from single file. Ignored with -t or -i.')).addOption(new Option('-A, --all-separate', 'Import all the providers from separate files (*.json) in the current directory. Ignored with -t or -i or -a.')).action(
8
11
  // implement command logic inside action handler
9
12
  async (host, realm, user, password, options, command) => {
10
13
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
11
14
  // import by id
12
- if (options.file && options.idpId && (await frodo.login.getTokens())) {
15
+ if (options.file && options.idpId && (await getTokens())) {
13
16
  verboseMessage(`Importing provider "${options.idpId}" into realm "${state.getRealm()}"...`);
14
17
  importSocialProviderFromFile(options.idpId, options.file);
15
18
  }
16
19
  // --all -a
17
- else if (options.all && options.file && (await frodo.login.getTokens())) {
20
+ else if (options.all && options.file && (await getTokens())) {
18
21
  verboseMessage(`Importing all providers from a single file (${options.file})...`);
19
22
  importSocialProvidersFromFile(options.file);
20
23
  }
21
24
  // --all-separate -A
22
- else if (options.allSeparate && !options.file && (await frodo.login.getTokens())) {
25
+ else if (options.allSeparate && !options.file && (await getTokens())) {
23
26
  verboseMessage('Importing all providers from separate files in current directory...');
24
27
  importSocialProvidersFromFiles();
25
28
  }
26
29
  // import first provider from file
27
- else if (options.file && (await frodo.login.getTokens())) {
30
+ else if (options.file && (await getTokens())) {
28
31
  verboseMessage(`Importing first provider from file "${options.file}" into realm "${state.getRealm()}"...`);
29
32
  importFirstSocialProviderFromFile(options.file);
30
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"idp-import.js","names":["FrodoCommand","Option","frodo","state","printMessage","verboseMessage","importFirstSocialProviderFromFile","importSocialProviderFromFile","importSocialProvidersFromFile","importSocialProvidersFromFiles","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","file","idpId","login","getTokens","getRealm","all","allSeparate","help","process","exitCode","parse"],"sources":["cli/idp/idp-import.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport {\n importFirstSocialProviderFromFile,\n importSocialProviderFromFile,\n importSocialProvidersFromFile,\n importSocialProvidersFromFiles,\n} from '../../ops/IdpOps';\n\nconst program = new FrodoCommand('frodo idp import');\n\nprogram\n .description('Import (social) identity providers.')\n .addOption(\n new Option(\n '-i, --idp-id <id>',\n 'Provider id. 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 provider(s) from.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Import all the providers from single file. Ignored with -t or -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all the providers from separate files (*.json) in the current directory. Ignored with -t or -i or -a.'\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 by id\n if (options.file && options.idpId && (await frodo.login.getTokens())) {\n verboseMessage(\n `Importing provider \"${\n options.idpId\n }\" into realm \"${state.getRealm()}\"...`\n );\n importSocialProviderFromFile(options.idpId, options.file);\n }\n // --all -a\n else if (options.all && options.file && (await frodo.login.getTokens())) {\n verboseMessage(\n `Importing all providers from a single file (${options.file})...`\n );\n importSocialProvidersFromFile(options.file);\n }\n // --all-separate -A\n else if (\n options.allSeparate &&\n !options.file &&\n (await frodo.login.getTokens())\n ) {\n verboseMessage(\n 'Importing all providers from separate files in current directory...'\n );\n importSocialProvidersFromFiles();\n }\n // import first provider from file\n else if (options.file && (await frodo.login.getTokens())) {\n verboseMessage(\n `Importing first provider from file \"${\n options.file\n }\" into realm \"${state.getRealm()}\"...`\n );\n importFirstSocialProviderFromFile(options.file);\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,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SACEC,iCAAiC,EACjCC,4BAA4B,EAC5BC,6BAA6B,EAC7BC,8BAA8B,QACzB,kBAAkB;AAEzB,MAAMC,OAAO,GAAG,IAAIV,YAAY,CAAC,kBAAkB,CAAC;AAEpDU,OAAO,CACJC,WAAW,CAAC,qCAAqC,CAAC,CAClDC,SAAS,CACR,IAAIX,MAAM,CACR,mBAAmB,EACnB,mDACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,mBAAmB,EACnB,kDACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,WAAW,EACX,mEACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,oBAAoB,EACpB,8GACF,CACF,CAAC,CACAY,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,IAAI,IAAIH,OAAO,CAACI,KAAK,KAAK,MAAMpB,KAAK,CAACqB,KAAK,CAACC,SAAS,CAAC,CAAC,CAAC,EAAE;IACpEnB,cAAc,CACX,uBACCa,OAAO,CAACI,KACT,iBAAgBnB,KAAK,CAACsB,QAAQ,CAAC,CAAE,MACpC,CAAC;IACDlB,4BAA4B,CAACW,OAAO,CAACI,KAAK,EAAEJ,OAAO,CAACG,IAAI,CAAC;EAC3D;EACA;EAAA,KACK,IAAIH,OAAO,CAACQ,GAAG,IAAIR,OAAO,CAACG,IAAI,KAAK,MAAMnB,KAAK,CAACqB,KAAK,CAACC,SAAS,CAAC,CAAC,CAAC,EAAE;IACvEnB,cAAc,CACX,+CAA8Ca,OAAO,CAACG,IAAK,MAC9D,CAAC;IACDb,6BAA6B,CAACU,OAAO,CAACG,IAAI,CAAC;EAC7C;EACA;EAAA,KACK,IACHH,OAAO,CAACS,WAAW,IACnB,CAACT,OAAO,CAACG,IAAI,KACZ,MAAMnB,KAAK,CAACqB,KAAK,CAACC,SAAS,CAAC,CAAC,CAAC,EAC/B;IACAnB,cAAc,CACZ,qEACF,CAAC;IACDI,8BAA8B,CAAC,CAAC;EAClC;EACA;EAAA,KACK,IAAIS,OAAO,CAACG,IAAI,KAAK,MAAMnB,KAAK,CAACqB,KAAK,CAACC,SAAS,CAAC,CAAC,CAAC,EAAE;IACxDnB,cAAc,CACX,uCACCa,OAAO,CAACG,IACT,iBAAgBlB,KAAK,CAACsB,QAAQ,CAAC,CAAE,MACpC,CAAC;IACDnB,iCAAiC,CAACY,OAAO,CAACG,IAAI,CAAC;EACjD;EACA;EAAA,KACK;IACHjB,YAAY,CAAC,sDAAsD,CAAC;IACpEM,OAAO,CAACkB,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHpB,OAAO,CAACqB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"idp-import.js","names":["FrodoCommand","Option","frodo","state","printMessage","verboseMessage","importFirstSocialProviderFromFile","importSocialProviderFromFile","importSocialProvidersFromFile","importSocialProvidersFromFiles","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","file","idpId","getRealm","all","allSeparate","help","process","exitCode","parse"],"sources":["cli/idp/idp-import.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport {\n importFirstSocialProviderFromFile,\n importSocialProviderFromFile,\n importSocialProvidersFromFile,\n importSocialProvidersFromFiles,\n} from '../../ops/IdpOps';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo idp import');\n\nprogram\n .description('Import (social) identity providers.')\n .addOption(\n new Option(\n '-i, --idp-id <id>',\n 'Provider id. 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 provider(s) from.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Import all the providers from single file. Ignored with -t or -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all the providers from separate files (*.json) in the current directory. Ignored with -t or -i or -a.'\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 by id\n if (options.file && options.idpId && (await getTokens())) {\n verboseMessage(\n `Importing provider \"${\n options.idpId\n }\" into realm \"${state.getRealm()}\"...`\n );\n importSocialProviderFromFile(options.idpId, options.file);\n }\n // --all -a\n else if (options.all && options.file && (await getTokens())) {\n verboseMessage(\n `Importing all providers from a single file (${options.file})...`\n );\n importSocialProvidersFromFile(options.file);\n }\n // --all-separate -A\n else if (options.allSeparate && !options.file && (await getTokens())) {\n verboseMessage(\n 'Importing all providers from separate files in current directory...'\n );\n importSocialProvidersFromFiles();\n }\n // import first provider from file\n else if (options.file && (await getTokens())) {\n verboseMessage(\n `Importing first provider from file \"${\n options.file\n }\" into realm \"${state.getRealm()}\"...`\n );\n importFirstSocialProviderFromFile(options.file);\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,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SACEC,iCAAiC,EACjCC,4BAA4B,EAC5BC,6BAA6B,EAC7BC,8BAA8B,QACzB,kBAAkB;AAEzB,MAAM;EAAEC;AAAU,CAAC,GAAGR,KAAK,CAACS,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIZ,YAAY,CAAC,kBAAkB,CAAC;AAEpDY,OAAO,CACJC,WAAW,CAAC,qCAAqC,CAAC,CAClDC,SAAS,CACR,IAAIb,MAAM,CACR,mBAAmB,EACnB,mDACF,CACF,CAAC,CACAa,SAAS,CACR,IAAIb,MAAM,CACR,mBAAmB,EACnB,kDACF,CACF,CAAC,CACAa,SAAS,CACR,IAAIb,MAAM,CACR,WAAW,EACX,mEACF,CACF,CAAC,CACAa,SAAS,CACR,IAAIb,MAAM,CACR,oBAAoB,EACpB,8GACF,CACF,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;EACA,IAAID,OAAO,CAACG,IAAI,IAAIH,OAAO,CAACI,KAAK,KAAK,MAAMd,SAAS,CAAC,CAAC,CAAC,EAAE;IACxDL,cAAc,CACX,uBACCe,OAAO,CAACI,KACT,iBAAgBrB,KAAK,CAACsB,QAAQ,CAAC,CAAE,MACpC,CAAC;IACDlB,4BAA4B,CAACa,OAAO,CAACI,KAAK,EAAEJ,OAAO,CAACG,IAAI,CAAC;EAC3D;EACA;EAAA,KACK,IAAIH,OAAO,CAACM,GAAG,IAAIN,OAAO,CAACG,IAAI,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3DL,cAAc,CACX,+CAA8Ce,OAAO,CAACG,IAAK,MAC9D,CAAC;IACDf,6BAA6B,CAACY,OAAO,CAACG,IAAI,CAAC;EAC7C;EACA;EAAA,KACK,IAAIH,OAAO,CAACO,WAAW,IAAI,CAACP,OAAO,CAACG,IAAI,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IACpEL,cAAc,CACZ,qEACF,CAAC;IACDI,8BAA8B,CAAC,CAAC;EAClC;EACA;EAAA,KACK,IAAIW,OAAO,CAACG,IAAI,KAAK,MAAMb,SAAS,CAAC,CAAC,CAAC,EAAE;IAC5CL,cAAc,CACX,uCACCe,OAAO,CAACG,IACT,iBAAgBpB,KAAK,CAACsB,QAAQ,CAAC,CAAE,MACpC,CAAC;IACDnB,iCAAiC,CAACc,OAAO,CAACG,IAAI,CAAC;EACjD;EACA;EAAA,KACK;IACHnB,YAAY,CAAC,sDAAsD,CAAC;IACpEQ,OAAO,CAACgB,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHlB,OAAO,CAACmB,KAAK,CAAC,CAAC"}
@@ -2,6 +2,9 @@ import { FrodoCommand } from '../FrodoCommand';
2
2
  import { frodo, state } from '@rockcarver/frodo-lib';
3
3
  import { verboseMessage } from '../../utils/Console';
4
4
  import { listSocialProviders } from '../../ops/IdpOps';
5
+ const {
6
+ getTokens
7
+ } = frodo.login;
5
8
  const program = new FrodoCommand('frodo idp list');
6
9
  program.description('List (social) identity providers.')
7
10
  // .addOption(
@@ -11,7 +14,7 @@ program.description('List (social) identity providers.')
11
14
  // implement command logic inside action handler
12
15
  async (host, realm, user, password, options, command) => {
13
16
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
14
- if (await frodo.login.getTokens()) {
17
+ if (await getTokens()) {
15
18
  verboseMessage(`Listing providers in realm "${state.getRealm()}"...`);
16
19
  listSocialProviders();
17
20
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"idp-list.js","names":["FrodoCommand","frodo","state","verboseMessage","listSocialProviders","program","description","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","login","getTokens","getRealm","process","exitCode","parse"],"sources":["cli/idp/idp-list.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { verboseMessage } from '../../utils/Console';\nimport { listSocialProviders } from '../../ops/IdpOps';\n\nconst program = new FrodoCommand('frodo idp list');\n\nprogram\n .description('List (social) identity providers.')\n // .addOption(\n // new Option('-l, --long', 'Long with all fields.').default(false, 'false')\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 frodo.login.getTokens()) {\n verboseMessage(`Listing providers in realm \"${state.getRealm()}\"...`);\n listSocialProviders();\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,mBAAmB,QAAQ,kBAAkB;AAEtD,MAAMC,OAAO,GAAG,IAAIL,YAAY,CAAC,gBAAgB,CAAC;AAElDK,OAAO,CACJC,WAAW,CAAC,mCAAmC;AAChD;AACA;AACA;AAAA,CACCC,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,KAAK,CAACc,KAAK,CAACC,SAAS,CAAC,CAAC,EAAE;IACjCb,cAAc,CAAE,+BAA8BD,KAAK,CAACe,QAAQ,CAAC,CAAE,MAAK,CAAC;IACrEb,mBAAmB,CAAC,CAAC;EACvB,CAAC,MAAM;IACLc,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHd,OAAO,CAACe,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"idp-list.js","names":["FrodoCommand","frodo","state","verboseMessage","listSocialProviders","getTokens","login","program","description","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","process","exitCode","parse"],"sources":["cli/idp/idp-list.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { verboseMessage } from '../../utils/Console';\nimport { listSocialProviders } from '../../ops/IdpOps';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo idp list');\n\nprogram\n .description('List (social) identity providers.')\n // .addOption(\n // new Option('-l, --long', 'Long with all fields.').default(false, 'false')\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(`Listing providers in realm \"${state.getRealm()}\"...`);\n listSocialProviders();\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,mBAAmB,QAAQ,kBAAkB;AAEtD,MAAM;EAAEC;AAAU,CAAC,GAAGJ,KAAK,CAACK,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIP,YAAY,CAAC,gBAAgB,CAAC;AAElDO,OAAO,CACJC,WAAW,CAAC,mCAAmC;AAChD;AACA;AACA;AAAA,CACCC,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,MAAMV,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CAAE,+BAA8BD,KAAK,CAACe,QAAQ,CAAC,CAAE,MAAK,CAAC;IACrEb,mBAAmB,CAAC,CAAC;EACvB,CAAC,MAAM;IACLc,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHZ,OAAO,CAACa,KAAK,CAAC,CAAC"}
@@ -3,12 +3,18 @@ import { Option } from 'commander';
3
3
  import { frodo, state } from '@rockcarver/frodo-lib';
4
4
  import { createObjectTable, printMessage, verboseMessage } from '../../utils/Console';
5
5
  import * as s from '../../help/SampleData';
6
+ const {
7
+ getTokens
8
+ } = frodo.login;
9
+ const {
10
+ getInfo
11
+ } = frodo.info;
6
12
  export default function setup() {
7
13
  const program = new FrodoCommand('info', ['realm']);
8
14
  program.description('Print versions and tokens.').addOption(new Option('--json', 'Output in JSON format.')).addOption(new Option('-s, --scriptFriendly', 'Send output of operation to STDOUT in a script-friendly format (JSON) which can be piped to other commands. User messages/warnings are output to STDERR, and are not piped. For example, to only get bearer token: \n<<< frodo info my-tenant -s 2>/dev/null | jq -r .bearerToken >>>').default(false, 'Output as plain text').hideHelp()).addHelpText('after', `Usage Examples:\n` + ` Show human-readable output and login using AM base URL, username, and password (note the quotes around password to allow special characters):\n` + ` $ frodo info ${s.amBaseUrl} ${s.username} '${s.password}'\n`['brightCyan'] + ` Show human-readable output and login using a connection profile (identified by the full AM base URL):\n` + ` $ frodo info ${s.amBaseUrl}'\n`['brightCyan'] + ` Show human-readable output and login using a connection profile (identified by a unique substring of the AM base URL):\n` + ` $ frodo info ${s.connId}'\n`['brightCyan'] + ` Show JSON output and login using the AM base URL's unique substring to identify the connection profile:\n` + ` $ frodo info --json ${s.connId}'\n`['brightCyan']).action(async (host, user, password, options, command) => {
9
15
  command.handleDefaultArgsAndOpts(host, user, password, options, command);
10
- if (await frodo.login.getTokens()) {
11
- const info = await frodo.info.getInfo();
16
+ if (await getTokens()) {
17
+ const info = await getInfo();
12
18
  if (!options.scriptFriendly && !options.json) {
13
19
  verboseMessage('Printing info, versions, and tokens...');
14
20
  delete info.sessionToken;
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","names":["FrodoCommand","Option","frodo","state","createObjectTable","printMessage","verboseMessage","s","setup","program","description","addOption","default","hideHelp","addHelpText","amBaseUrl","username","password","connId","action","host","user","options","command","handleDefaultArgsAndOpts","login","getTokens","info","getInfo","scriptFriendly","json","sessionToken","bearerToken","labels","amVersion","authenticatedSubject","config_promotion_done","cookieName","deploymentType","immutable","locked","placeholder_management","region","tier","table","toString","getCookieValue","getBearerToken","JSON","stringify","process","exitCode"],"sources":["cli/info/info.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport {\n createObjectTable,\n printMessage,\n verboseMessage,\n} from '../../utils/Console';\nimport * as s from '../../help/SampleData';\n\nexport default function setup() {\n const program = new FrodoCommand('info', ['realm']);\n program\n .description('Print versions and tokens.')\n .addOption(new Option('--json', 'Output in JSON format.'))\n .addOption(\n new Option(\n '-s, --scriptFriendly',\n 'Send output of operation to STDOUT in a script-friendly format (JSON) which can be piped to other commands. User messages/warnings are output to STDERR, and are not piped. For example, to only get bearer token: \\n<<< frodo info my-tenant -s 2>/dev/null | jq -r .bearerToken >>>'\n )\n .default(false, 'Output as plain text')\n .hideHelp()\n )\n .addHelpText(\n 'after',\n `Usage Examples:\\n` +\n ` Show human-readable output and login using AM base URL, username, and password (note the quotes around password to allow special characters):\\n` +\n ` $ frodo info ${s.amBaseUrl} ${s.username} '${s.password}'\\n`[\n 'brightCyan'\n ] +\n ` Show human-readable output and login using a connection profile (identified by the full AM base URL):\\n` +\n ` $ frodo info ${s.amBaseUrl}'\\n`['brightCyan'] +\n ` Show human-readable output and login using a connection profile (identified by a unique substring of the AM base URL):\\n` +\n ` $ frodo info ${s.connId}'\\n`['brightCyan'] +\n ` Show JSON output and login using the AM base URL's unique substring to identify the connection profile:\\n` +\n ` $ frodo info --json ${s.connId}'\\n`['brightCyan']\n )\n .action(async (host, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(host, user, password, options, command);\n if (await frodo.login.getTokens()) {\n const info = await frodo.info.getInfo();\n if (!options.scriptFriendly && !options.json) {\n verboseMessage('Printing info, versions, and tokens...');\n delete info.sessionToken;\n delete info.bearerToken;\n const labels = {\n amVersion: 'AM Version',\n authenticatedSubject: 'Subject (Type)',\n config_promotion_done: 'Promotion Done',\n cookieName: 'Cookie Name',\n deploymentType: 'Deployment Type',\n host: 'Host URL',\n immutable: 'Immutable',\n locked: 'Locked',\n placeholder_management: 'Placeholder Management',\n region: 'Region',\n tier: 'Tier',\n };\n const table = createObjectTable(info, labels);\n printMessage(`\\n${table.toString()}`);\n if (state.getCookieValue()) {\n printMessage(`\\nSession token:`, 'info');\n printMessage(`${state.getCookieValue()}`);\n }\n if (state.getBearerToken()) {\n printMessage(`\\nBearer token:`, 'info');\n printMessage(`${state.getBearerToken()}`);\n }\n } else {\n printMessage(JSON.stringify(info, null, 2), 'data');\n }\n } else {\n process.exitCode = 1;\n }\n });\n return program;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"info.js","names":["FrodoCommand","Option","frodo","state","createObjectTable","printMessage","verboseMessage","s","getTokens","login","getInfo","info","setup","program","description","addOption","default","hideHelp","addHelpText","amBaseUrl","username","password","connId","action","host","user","options","command","handleDefaultArgsAndOpts","scriptFriendly","json","sessionToken","bearerToken","labels","amVersion","authenticatedSubject","config_promotion_done","cookieName","deploymentType","immutable","locked","placeholder_management","region","tier","table","toString","getCookieValue","getBearerToken","JSON","stringify","process","exitCode"],"sources":["cli/info/info.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport {\n createObjectTable,\n printMessage,\n verboseMessage,\n} from '../../utils/Console';\nimport * as s from '../../help/SampleData';\n\nconst { getTokens } = frodo.login;\nconst { getInfo } = frodo.info;\n\nexport default function setup() {\n const program = new FrodoCommand('info', ['realm']);\n program\n .description('Print versions and tokens.')\n .addOption(new Option('--json', 'Output in JSON format.'))\n .addOption(\n new Option(\n '-s, --scriptFriendly',\n 'Send output of operation to STDOUT in a script-friendly format (JSON) which can be piped to other commands. User messages/warnings are output to STDERR, and are not piped. For example, to only get bearer token: \\n<<< frodo info my-tenant -s 2>/dev/null | jq -r .bearerToken >>>'\n )\n .default(false, 'Output as plain text')\n .hideHelp()\n )\n .addHelpText(\n 'after',\n `Usage Examples:\\n` +\n ` Show human-readable output and login using AM base URL, username, and password (note the quotes around password to allow special characters):\\n` +\n ` $ frodo info ${s.amBaseUrl} ${s.username} '${s.password}'\\n`[\n 'brightCyan'\n ] +\n ` Show human-readable output and login using a connection profile (identified by the full AM base URL):\\n` +\n ` $ frodo info ${s.amBaseUrl}'\\n`['brightCyan'] +\n ` Show human-readable output and login using a connection profile (identified by a unique substring of the AM base URL):\\n` +\n ` $ frodo info ${s.connId}'\\n`['brightCyan'] +\n ` Show JSON output and login using the AM base URL's unique substring to identify the connection profile:\\n` +\n ` $ frodo info --json ${s.connId}'\\n`['brightCyan']\n )\n .action(async (host, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(host, user, password, options, command);\n if (await getTokens()) {\n const info = await getInfo();\n if (!options.scriptFriendly && !options.json) {\n verboseMessage('Printing info, versions, and tokens...');\n delete info.sessionToken;\n delete info.bearerToken;\n const labels = {\n amVersion: 'AM Version',\n authenticatedSubject: 'Subject (Type)',\n config_promotion_done: 'Promotion Done',\n cookieName: 'Cookie Name',\n deploymentType: 'Deployment Type',\n host: 'Host URL',\n immutable: 'Immutable',\n locked: 'Locked',\n placeholder_management: 'Placeholder Management',\n region: 'Region',\n tier: 'Tier',\n };\n const table = createObjectTable(info, labels);\n printMessage(`\\n${table.toString()}`);\n if (state.getCookieValue()) {\n printMessage(`\\nSession token:`, 'info');\n printMessage(`${state.getCookieValue()}`);\n }\n if (state.getBearerToken()) {\n printMessage(`\\nBearer token:`, 'info');\n printMessage(`${state.getBearerToken()}`);\n }\n } else {\n printMessage(JSON.stringify(info, null, 2), 'data');\n }\n } else {\n process.exitCode = 1;\n }\n });\n return program;\n}\n"],"mappings":"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"}
@@ -2,18 +2,21 @@ import { FrodoCommand } from '../FrodoCommand';
2
2
  import { Option } from 'commander';
3
3
  import { frodo, state } from '@rockcarver/frodo-lib';
4
4
  import { printMessage, verboseMessage } from '../../utils/Console';
5
+ const {
6
+ getTokens
7
+ } = frodo.login;
5
8
  const program = new FrodoCommand('frodo journey delete');
6
9
  program.description('Delete journeys/trees.').addOption(new Option('-i, --journey-id <journey>', 'Name of a journey/tree. If specified, -a is ignored.')).addOption(new Option('-a, --all', 'Delete all the journeys/trees in a realm. Ignored with -i.')).addOption(new Option('--no-deep', 'No deep delete. This leaves orphaned configuration artifacts behind.')).addOption(new Option('--verbose', 'Verbose output during command execution. If specified, may or may not produce additional output.').default(false, 'off')).action(
7
10
  // implement command logic inside action handler
8
11
  async (host, realm, user, password, options, command) => {
9
12
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
10
13
  // delete by id
11
- if (options.journeyId && (await frodo.login.getTokens())) {
14
+ if (options.journeyId && (await getTokens())) {
12
15
  verboseMessage(`Deleting journey ${options.journeyId} in realm "${state.getRealm()}"...`);
13
16
  frodo.authn.journey.deleteJourney(options.journeyId, options);
14
17
  }
15
18
  // --all -a
16
- else if (options.all && (await frodo.login.getTokens())) {
19
+ else if (options.all && (await getTokens())) {
17
20
  verboseMessage('Deleting all journeys...');
18
21
  frodo.authn.journey.deleteJourneys(options);
19
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"journey-delete.js","names":["FrodoCommand","Option","frodo","state","printMessage","verboseMessage","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","journeyId","login","getTokens","getRealm","authn","journey","deleteJourney","all","deleteJourneys","help","process","exitCode","parse"],"sources":["cli/journey/journey-delete.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\n\nconst program = new FrodoCommand('frodo journey delete');\n\nprogram\n .description('Delete journeys/trees.')\n .addOption(\n new Option(\n '-i, --journey-id <journey>',\n 'Name of a journey/tree. If specified, -a is ignored.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Delete all the journeys/trees in a realm. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '--no-deep',\n 'No deep delete. This leaves orphaned configuration artifacts behind.'\n )\n )\n .addOption(\n new Option(\n '--verbose',\n 'Verbose output during command execution. If specified, may or may not produce additional output.'\n ).default(false, 'off')\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.journeyId && (await frodo.login.getTokens())) {\n verboseMessage(\n `Deleting journey ${\n options.journeyId\n } in realm \"${state.getRealm()}\"...`\n );\n frodo.authn.journey.deleteJourney(options.journeyId, options);\n }\n // --all -a\n else if (options.all && (await frodo.login.getTokens())) {\n verboseMessage('Deleting all journeys...');\n frodo.authn.journey.deleteJourneys(options);\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,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAElE,MAAMC,OAAO,GAAG,IAAIN,YAAY,CAAC,sBAAsB,CAAC;AAExDM,OAAO,CACJC,WAAW,CAAC,wBAAwB,CAAC,CACrCC,SAAS,CACR,IAAIP,MAAM,CACR,4BAA4B,EAC5B,sDACF,CACF,CAAC,CACAO,SAAS,CACR,IAAIP,MAAM,CACR,WAAW,EACX,4DACF,CACF,CAAC,CACAO,SAAS,CACR,IAAIP,MAAM,CACR,WAAW,EACX,sEACF,CACF,CAAC,CACAO,SAAS,CACR,IAAIP,MAAM,CACR,WAAW,EACX,kGACF,CAAC,CAACQ,OAAO,CAAC,KAAK,EAAE,KAAK,CACxB,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;EACA,IAAID,OAAO,CAACG,SAAS,KAAK,MAAMhB,KAAK,CAACiB,KAAK,CAACC,SAAS,CAAC,CAAC,CAAC,EAAE;IACxDf,cAAc,CACX,oBACCU,OAAO,CAACG,SACT,cAAaf,KAAK,CAACkB,QAAQ,CAAC,CAAE,MACjC,CAAC;IACDnB,KAAK,CAACoB,KAAK,CAACC,OAAO,CAACC,aAAa,CAACT,OAAO,CAACG,SAAS,EAAEH,OAAO,CAAC;EAC/D;EACA;EAAA,KACK,IAAIA,OAAO,CAACU,GAAG,KAAK,MAAMvB,KAAK,CAACiB,KAAK,CAACC,SAAS,CAAC,CAAC,CAAC,EAAE;IACvDf,cAAc,CAAC,0BAA0B,CAAC;IAC1CH,KAAK,CAACoB,KAAK,CAACC,OAAO,CAACG,cAAc,CAACX,OAAO,CAAC;EAC7C;EACA;EAAA,KACK;IACHX,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;IACDE,OAAO,CAACqB,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHvB,OAAO,CAACwB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"journey-delete.js","names":["FrodoCommand","Option","frodo","state","printMessage","verboseMessage","getTokens","login","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","journeyId","getRealm","authn","journey","deleteJourney","all","deleteJourneys","help","process","exitCode","parse"],"sources":["cli/journey/journey-delete.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo journey delete');\n\nprogram\n .description('Delete journeys/trees.')\n .addOption(\n new Option(\n '-i, --journey-id <journey>',\n 'Name of a journey/tree. If specified, -a is ignored.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Delete all the journeys/trees in a realm. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '--no-deep',\n 'No deep delete. This leaves orphaned configuration artifacts behind.'\n )\n )\n .addOption(\n new Option(\n '--verbose',\n 'Verbose output during command execution. If specified, may or may not produce additional output.'\n ).default(false, 'off')\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.journeyId && (await getTokens())) {\n verboseMessage(\n `Deleting journey ${\n options.journeyId\n } in realm \"${state.getRealm()}\"...`\n );\n frodo.authn.journey.deleteJourney(options.journeyId, options);\n }\n // --all -a\n else if (options.all && (await getTokens())) {\n verboseMessage('Deleting all journeys...');\n frodo.authn.journey.deleteJourneys(options);\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,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAElE,MAAM;EAAEC;AAAU,CAAC,GAAGJ,KAAK,CAACK,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIR,YAAY,CAAC,sBAAsB,CAAC;AAExDQ,OAAO,CACJC,WAAW,CAAC,wBAAwB,CAAC,CACrCC,SAAS,CACR,IAAIT,MAAM,CACR,4BAA4B,EAC5B,sDACF,CACF,CAAC,CACAS,SAAS,CACR,IAAIT,MAAM,CACR,WAAW,EACX,4DACF,CACF,CAAC,CACAS,SAAS,CACR,IAAIT,MAAM,CACR,WAAW,EACX,sEACF,CACF,CAAC,CACAS,SAAS,CACR,IAAIT,MAAM,CACR,WAAW,EACX,kGACF,CAAC,CAACU,OAAO,CAAC,KAAK,EAAE,KAAK,CACxB,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;EACA,IAAID,OAAO,CAACG,SAAS,KAAK,MAAMd,SAAS,CAAC,CAAC,CAAC,EAAE;IAC5CD,cAAc,CACX,oBACCY,OAAO,CAACG,SACT,cAAajB,KAAK,CAACkB,QAAQ,CAAC,CAAE,MACjC,CAAC;IACDnB,KAAK,CAACoB,KAAK,CAACC,OAAO,CAACC,aAAa,CAACP,OAAO,CAACG,SAAS,EAAEH,OAAO,CAAC;EAC/D;EACA;EAAA,KACK,IAAIA,OAAO,CAACQ,GAAG,KAAK,MAAMnB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CD,cAAc,CAAC,0BAA0B,CAAC;IAC1CH,KAAK,CAACoB,KAAK,CAACC,OAAO,CAACG,cAAc,CAACT,OAAO,CAAC;EAC7C;EACA;EAAA,KACK;IACHb,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;IACDI,OAAO,CAACmB,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHrB,OAAO,CAACsB,KAAK,CAAC,CAAC"}
@@ -5,6 +5,14 @@ import { frodo, state } from '@rockcarver/frodo-lib';
5
5
  import { describeJourney, describeJourneyMd } from '../../ops/JourneyOps';
6
6
  import { printMessage, verboseMessage } from '../../utils/Console';
7
7
  import { saveTextToFile } from '../../utils/ExportImportUtils';
8
+ const {
9
+ getTokens
10
+ } = frodo.login;
11
+ const {
12
+ createFileParamTreeExportResolver,
13
+ getJourneys,
14
+ exportJourney
15
+ } = frodo.authn.journey;
8
16
  const program = new FrodoCommand('frodo journey describe');
9
17
  program.description('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.').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 journey export file to describe. Ignored with -A.')).addOption(new Option('-F, --output-file <file>', 'Name of the file to write the output to.')).addOption(new Option('--markdown', 'Output in markdown.')).addOption(new Option('-o, --override-version <version>', "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.")).action(
10
18
  // implement command logic inside action handler
@@ -50,19 +58,19 @@ async (host, realm, user, password, options, command) => {
50
58
  }
51
59
  // ANSI text output
52
60
  if (!options.markdown) {
53
- await describeJourney(journeyData, frodo.authn.journey.createFileParamTreeExportResolver(options.file));
61
+ await describeJourney(journeyData, createFileParamTreeExportResolver(options.file));
54
62
  }
55
63
  // Markdown output
56
64
  else {
57
65
  // reset output file
58
66
  if (options.outputFile) saveTextToFile('', options.outputFile);
59
- await describeJourneyMd(journeyData, frodo.authn.journey.createFileParamTreeExportResolver(options.file));
67
+ await describeJourneyMd(journeyData, createFileParamTreeExportResolver(options.file));
60
68
  }
61
69
  } catch (error) {
62
70
  printMessage(error.message, 'error');
63
71
  process.exitCode = 1;
64
72
  }
65
- } else if (await frodo.login.getTokens()) {
73
+ } else if (await getTokens()) {
66
74
  verboseMessage(`Describing journey(s) in realm "${state.getRealm()}"...`);
67
75
  // override version
68
76
  if (typeof options.overrideVersion !== 'undefined') {
@@ -70,11 +78,11 @@ async (host, realm, user, password, options, command) => {
70
78
  }
71
79
  if (typeof options.journeyId === 'undefined') {
72
80
  let journeys = [];
73
- journeys = await frodo.authn.journey.getJourneys();
81
+ journeys = await getJourneys();
74
82
  for (const journey of journeys) {
75
83
  try {
76
84
  // eslint-disable-next-line no-await-in-loop, dot-notation
77
- const treeData = await frodo.authn.journey.exportJourney(journey['_id']);
85
+ const treeData = await exportJourney(journey['_id']);
78
86
  // ANSI text output
79
87
  if (!options.markdown) {
80
88
  await describeJourney(treeData);
@@ -92,7 +100,7 @@ async (host, realm, user, password, options, command) => {
92
100
  }
93
101
  } else {
94
102
  try {
95
- const treeData = await frodo.authn.journey.exportJourney(options.journeyId);
103
+ const treeData = await exportJourney(options.journeyId);
96
104
  // ANSI text output
97
105
  if (!options.markdown) {
98
106
  await describeJourney(treeData);
@@ -1 +1 @@
1
- {"version":3,"file":"journey-describe.js","names":["fs","FrodoCommand","Option","frodo","state","describeJourney","describeJourneyMd","printMessage","verboseMessage","saveTextToFile","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","outputFile","setOutputFile","file","process","exitCode","_fileData$tree","_fileData$tree2","overrideVersion","setAmVersion","fileData","JSON","parse","readFileSync","journeyData","journeyId","trees","Object","values","tree","_id","Error","markdown","authn","journey","createFileParamTreeExportResolver","error","message","login","getTokens","getRealm","journeys","getJourneys","treeData","exportJourney"],"sources":["cli/journey/journey-describe.ts"],"sourcesContent":["import fs from 'fs';\nimport { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { describeJourney, describeJourneyMd } from '../../ops/JourneyOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { saveTextToFile } from '../../utils/ExportImportUtils';\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 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 frodo.authn.journey.createFileParamTreeExportResolver(\n options.file\n )\n );\n }\n // Markdown output\n else {\n // reset output file\n if (options.outputFile) saveTextToFile('', options.outputFile);\n await describeJourneyMd(\n journeyData,\n frodo.authn.journey.createFileParamTreeExportResolver(\n options.file\n )\n );\n }\n } catch (error) {\n printMessage(error.message, 'error');\n process.exitCode = 1;\n }\n } else if (await frodo.login.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 frodo.authn.journey.getJourneys();\n for (const journey of journeys) {\n try {\n // eslint-disable-next-line no-await-in-loop, dot-notation\n const treeData = await frodo.authn.journey.exportJourney(\n journey['_id']\n );\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 frodo.authn.journey.exportJourney(\n options.journeyId\n );\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":["fs","FrodoCommand","Option","frodo","state","describeJourney","describeJourneyMd","printMessage","verboseMessage","saveTextToFile","getTokens","login","createFileParamTreeExportResolver","getJourneys","exportJourney","authn","journey","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","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":["cli/journey/journey-describe.ts"],"sourcesContent":["import fs from 'fs';\nimport { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { describeJourney, describeJourneyMd } from '../../ops/JourneyOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { saveTextToFile } from '../../utils/ExportImportUtils';\n\nconst { getTokens } = frodo.login;\nconst { createFileParamTreeExportResolver, getJourneys, 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 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 getJourneys();\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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"}
@@ -2,6 +2,12 @@ import { FrodoCommand } from '../FrodoCommand';
2
2
  import { Option } from 'commander';
3
3
  import { frodo } from '@rockcarver/frodo-lib';
4
4
  import { showSpinner, failSpinner, succeedSpinner, printMessage } from '../../utils/Console';
5
+ const {
6
+ getTokens
7
+ } = frodo.login;
8
+ const {
9
+ disableJourney
10
+ } = frodo.authn.journey;
5
11
  const program = new FrodoCommand('frodo journey disable');
6
12
  program.description('Disable journeys/trees.').addOption(new Option('-i, --journey-id <journey>', 'Name of a journey/tree.'))
7
13
  // .addOption(
@@ -15,9 +21,9 @@ program.description('Disable journeys/trees.').addOption(new Option('-i, --journ
15
21
  async (host, realm, user, password, options, command) => {
16
22
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
17
23
  // disable
18
- if (options.journeyId && (await frodo.login.getTokens())) {
24
+ if (options.journeyId && (await getTokens())) {
19
25
  showSpinner(`Disabling journey ${options.journeyId}...`);
20
- if (await frodo.authn.journey.disableJourney(options.journeyId)) {
26
+ if (await disableJourney(options.journeyId)) {
21
27
  succeedSpinner(`Disabled journey ${options.journeyId}.`);
22
28
  } else {
23
29
  failSpinner(`Disabling journey ${options.journeyId} failed.`);
@@ -1 +1 @@
1
- {"version":3,"file":"journey-disable.js","names":["FrodoCommand","Option","frodo","showSpinner","failSpinner","succeedSpinner","printMessage","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","journeyId","login","getTokens","authn","journey","disableJourney","help","process","exitCode","parse"],"sources":["cli/journey/journey-disable.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo } from '@rockcarver/frodo-lib';\nimport {\n showSpinner,\n failSpinner,\n succeedSpinner,\n printMessage,\n} from '../../utils/Console';\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 frodo.login.getTokens())) {\n showSpinner(`Disabling journey ${options.journeyId}...`);\n if (await frodo.authn.journey.disableJourney(options.journeyId)) {\n succeedSpinner(`Disabled journey ${options.journeyId}.`);\n } else {\n failSpinner(`Disabling journey ${options.journeyId} failed.`);\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":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,KAAK,QAAQ,uBAAuB;AAC7C,SACEC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,YAAY,QACP,qBAAqB;AAE5B,MAAMC,OAAO,GAAG,IAAIP,YAAY,CAAC,uBAAuB,CAAC;AAEzDO,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,MAAMhB,KAAK,CAACiB,KAAK,CAACC,SAAS,CAAC,CAAC,CAAC,EAAE;IACxDjB,WAAW,CAAE,qBAAoBY,OAAO,CAACG,SAAU,KAAI,CAAC;IACxD,IAAI,MAAMhB,KAAK,CAACmB,KAAK,CAACC,OAAO,CAACC,cAAc,CAACR,OAAO,CAACG,SAAS,CAAC,EAAE;MAC/Db,cAAc,CAAE,oBAAmBU,OAAO,CAACG,SAAU,GAAE,CAAC;IAC1D,CAAC,MAAM;MACLd,WAAW,CAAE,qBAAoBW,OAAO,CAACG,SAAU,UAAS,CAAC;IAC/D;EACF;EACA;EAAA,KACK;IACHZ,YAAY,CAAC,sDAAsD,CAAC;IACpEC,OAAO,CAACiB,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHnB,OAAO,CAACoB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"journey-disable.js","names":["FrodoCommand","Option","frodo","showSpinner","failSpinner","succeedSpinner","printMessage","getTokens","login","disableJourney","authn","journey","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","journeyId","help","process","exitCode","parse"],"sources":["cli/journey/journey-disable.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo } from '@rockcarver/frodo-lib';\nimport {\n showSpinner,\n failSpinner,\n succeedSpinner,\n printMessage,\n} from '../../utils/Console';\n\nconst { getTokens } = frodo.login;\nconst { disableJourney } = frodo.authn.journey;\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 showSpinner(`Disabling journey ${options.journeyId}...`);\n if (await disableJourney(options.journeyId)) {\n succeedSpinner(`Disabled journey ${options.journeyId}.`);\n } else {\n failSpinner(`Disabling journey ${options.journeyId} failed.`);\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":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,KAAK,QAAQ,uBAAuB;AAC7C,SACEC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,YAAY,QACP,qBAAqB;AAE5B,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AACjC,MAAM;EAAEC;AAAe,CAAC,GAAGP,KAAK,CAACQ,KAAK,CAACC,OAAO;AAE9C,MAAMC,OAAO,GAAG,IAAIZ,YAAY,CAAC,uBAAuB,CAAC;AAEzDY,OAAO,CACJC,WAAW,CAAC,yBAAyB,CAAC,CACtCC,SAAS,CACR,IAAIb,MAAM,CAAC,4BAA4B,EAAE,yBAAyB,CACpE;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,CACCc,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,MAAMhB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC5CJ,WAAW,CAAE,qBAAoBiB,OAAO,CAACG,SAAU,KAAI,CAAC;IACxD,IAAI,MAAMd,cAAc,CAACW,OAAO,CAACG,SAAS,CAAC,EAAE;MAC3ClB,cAAc,CAAE,oBAAmBe,OAAO,CAACG,SAAU,GAAE,CAAC;IAC1D,CAAC,MAAM;MACLnB,WAAW,CAAE,qBAAoBgB,OAAO,CAACG,SAAU,UAAS,CAAC;IAC/D;EACF;EACA;EAAA,KACK;IACHjB,YAAY,CAAC,sDAAsD,CAAC;IACpEM,OAAO,CAACY,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHd,OAAO,CAACe,KAAK,CAAC,CAAC"}
@@ -2,6 +2,12 @@ import { FrodoCommand } from '../FrodoCommand';
2
2
  import { Option } from 'commander';
3
3
  import { frodo } from '@rockcarver/frodo-lib';
4
4
  import { showSpinner, failSpinner, succeedSpinner, printMessage } from '../../utils/Console';
5
+ const {
6
+ getTokens
7
+ } = frodo.login;
8
+ const {
9
+ enableJourney
10
+ } = frodo.authn.journey;
5
11
  const program = new FrodoCommand('frodo journey enable');
6
12
  program.description('Enable journeys/trees.').addOption(new Option('-i, --journey-id <journey>', 'Name of a journey/tree.'))
7
13
  // .addOption(
@@ -15,9 +21,9 @@ program.description('Enable journeys/trees.').addOption(new Option('-i, --journe
15
21
  async (host, realm, user, password, options, command) => {
16
22
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
17
23
  // enable
18
- if (options.journeyId && (await frodo.login.getTokens())) {
24
+ if (options.journeyId && (await getTokens())) {
19
25
  showSpinner(`Enabling journey ${options.journeyId}...`);
20
- if (await frodo.authn.journey.enableJourney(options.journeyId)) {
26
+ if (await enableJourney(options.journeyId)) {
21
27
  succeedSpinner(`Enabled journey ${options.journeyId}.`);
22
28
  } else {
23
29
  failSpinner(`Enabling journey ${options.journeyId} failed.`);
@@ -1 +1 @@
1
- {"version":3,"file":"journey-enable.js","names":["FrodoCommand","Option","frodo","showSpinner","failSpinner","succeedSpinner","printMessage","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","journeyId","login","getTokens","authn","journey","enableJourney","help","process","exitCode","parse"],"sources":["cli/journey/journey-enable.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo } from '@rockcarver/frodo-lib';\nimport {\n showSpinner,\n failSpinner,\n succeedSpinner,\n printMessage,\n} from '../../utils/Console';\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 frodo.login.getTokens())) {\n showSpinner(`Enabling journey ${options.journeyId}...`);\n if (await frodo.authn.journey.enableJourney(options.journeyId)) {\n succeedSpinner(`Enabled journey ${options.journeyId}.`);\n } else {\n failSpinner(`Enabling journey ${options.journeyId} failed.`);\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":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,KAAK,QAAQ,uBAAuB;AAC7C,SACEC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,YAAY,QACP,qBAAqB;AAE5B,MAAMC,OAAO,GAAG,IAAIP,YAAY,CAAC,sBAAsB,CAAC;AAExDO,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,MAAMhB,KAAK,CAACiB,KAAK,CAACC,SAAS,CAAC,CAAC,CAAC,EAAE;IACxDjB,WAAW,CAAE,oBAAmBY,OAAO,CAACG,SAAU,KAAI,CAAC;IACvD,IAAI,MAAMhB,KAAK,CAACmB,KAAK,CAACC,OAAO,CAACC,aAAa,CAACR,OAAO,CAACG,SAAS,CAAC,EAAE;MAC9Db,cAAc,CAAE,mBAAkBU,OAAO,CAACG,SAAU,GAAE,CAAC;IACzD,CAAC,MAAM;MACLd,WAAW,CAAE,oBAAmBW,OAAO,CAACG,SAAU,UAAS,CAAC;IAC9D;EACF;EACA;EAAA,KACK;IACHZ,YAAY,CAAC,sDAAsD,CAAC;IACpEC,OAAO,CAACiB,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHnB,OAAO,CAACoB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"journey-enable.js","names":["FrodoCommand","Option","frodo","showSpinner","failSpinner","succeedSpinner","printMessage","getTokens","login","enableJourney","authn","journey","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","journeyId","help","process","exitCode","parse"],"sources":["cli/journey/journey-enable.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo } from '@rockcarver/frodo-lib';\nimport {\n showSpinner,\n failSpinner,\n succeedSpinner,\n printMessage,\n} from '../../utils/Console';\n\nconst { getTokens } = frodo.login;\nconst { enableJourney } = frodo.authn.journey;\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 showSpinner(`Enabling journey ${options.journeyId}...`);\n if (await enableJourney(options.journeyId)) {\n succeedSpinner(`Enabled journey ${options.journeyId}.`);\n } else {\n failSpinner(`Enabling journey ${options.journeyId} failed.`);\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":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,KAAK,QAAQ,uBAAuB;AAC7C,SACEC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,YAAY,QACP,qBAAqB;AAE5B,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AACjC,MAAM;EAAEC;AAAc,CAAC,GAAGP,KAAK,CAACQ,KAAK,CAACC,OAAO;AAE7C,MAAMC,OAAO,GAAG,IAAIZ,YAAY,CAAC,sBAAsB,CAAC;AAExDY,OAAO,CACJC,WAAW,CAAC,wBAAwB,CAAC,CACrCC,SAAS,CACR,IAAIb,MAAM,CAAC,4BAA4B,EAAE,yBAAyB,CACpE;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,CACCc,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,MAAMhB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC5CJ,WAAW,CAAE,oBAAmBiB,OAAO,CAACG,SAAU,KAAI,CAAC;IACvD,IAAI,MAAMd,aAAa,CAACW,OAAO,CAACG,SAAS,CAAC,EAAE;MAC1ClB,cAAc,CAAE,mBAAkBe,OAAO,CAACG,SAAU,GAAE,CAAC;IACzD,CAAC,MAAM;MACLnB,WAAW,CAAE,oBAAmBgB,OAAO,CAACG,SAAU,UAAS,CAAC;IAC9D;EACF;EACA;EAAA,KACK;IACHjB,YAAY,CAAC,sDAAsD,CAAC;IACpEM,OAAO,CAACY,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHd,OAAO,CAACe,KAAK,CAAC,CAAC"}