@rockcarver/frodo-cli 2.0.0-57 → 2.0.0-59

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 (398) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/esm/cli/FrodoCommand.js +9 -1
  3. package/esm/cli/FrodoCommand.js.map +1 -1
  4. package/esm/cli/_template/something-delete.js +14 -12
  5. package/esm/cli/_template/something-delete.js.map +1 -1
  6. package/esm/cli/_template/something-describe.js +14 -12
  7. package/esm/cli/_template/something-describe.js.map +1 -1
  8. package/esm/cli/_template/something-else-delete.js +14 -12
  9. package/esm/cli/_template/something-else-delete.js.map +1 -1
  10. package/esm/cli/_template/something-else-describe.js +14 -12
  11. package/esm/cli/_template/something-else-describe.js.map +1 -1
  12. package/esm/cli/_template/something-else-export.js +14 -12
  13. package/esm/cli/_template/something-else-export.js.map +1 -1
  14. package/esm/cli/_template/something-else-import.js +14 -12
  15. package/esm/cli/_template/something-else-import.js.map +1 -1
  16. package/esm/cli/_template/something-else-list.js +14 -12
  17. package/esm/cli/_template/something-else-list.js.map +1 -1
  18. package/esm/cli/_template/something-else.js +15 -8
  19. package/esm/cli/_template/something-else.js.map +1 -1
  20. package/esm/cli/_template/something-export.js +14 -12
  21. package/esm/cli/_template/something-export.js.map +1 -1
  22. package/esm/cli/_template/something-import.js +14 -12
  23. package/esm/cli/_template/something-import.js.map +1 -1
  24. package/esm/cli/_template/something-list.js +14 -12
  25. package/esm/cli/_template/something-list.js.map +1 -1
  26. package/esm/cli/_template/something-other-delete.js +14 -12
  27. package/esm/cli/_template/something-other-delete.js.map +1 -1
  28. package/esm/cli/_template/something-other-describe.js +14 -12
  29. package/esm/cli/_template/something-other-describe.js.map +1 -1
  30. package/esm/cli/_template/something-other-export.js +14 -12
  31. package/esm/cli/_template/something-other-export.js.map +1 -1
  32. package/esm/cli/_template/something-other-import.js +14 -12
  33. package/esm/cli/_template/something-other-import.js.map +1 -1
  34. package/esm/cli/_template/something-other-list.js +14 -12
  35. package/esm/cli/_template/something-other-list.js.map +1 -1
  36. package/esm/cli/_template/something-other.js +15 -8
  37. package/esm/cli/_template/something-other.js.map +1 -1
  38. package/esm/cli/_template/something.js +15 -11
  39. package/esm/cli/_template/something.js.map +1 -1
  40. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +16 -14
  41. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
  42. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +62 -60
  43. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
  44. package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js +27 -25
  45. package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js.map +1 -1
  46. package/esm/cli/admin/admin-federation-export.js +34 -32
  47. package/esm/cli/admin/admin-federation-export.js.map +1 -1
  48. package/esm/cli/admin/admin-federation-import.js +39 -37
  49. package/esm/cli/admin/admin-federation-import.js.map +1 -1
  50. package/esm/cli/admin/admin-federation-list.js +20 -18
  51. package/esm/cli/admin/admin-federation-list.js.map +1 -1
  52. package/esm/cli/admin/admin-federation.js +16 -8
  53. package/esm/cli/admin/admin-federation.js.map +1 -1
  54. package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js +29 -27
  55. package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js.map +1 -1
  56. package/esm/cli/admin/admin-get-access-token.js +16 -14
  57. package/esm/cli/admin/admin-get-access-token.js.map +1 -1
  58. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +16 -14
  59. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
  60. package/esm/cli/admin/admin-hide-generic-extension-attributes.js +16 -14
  61. package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
  62. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +16 -14
  63. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
  64. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +16 -14
  65. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
  66. package/esm/cli/admin/admin-list-static-user-mappings.js +16 -14
  67. package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
  68. package/esm/cli/admin/admin-remove-static-user-mapping.js +16 -14
  69. package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
  70. package/esm/cli/admin/admin-repair-org-model.js +16 -14
  71. package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
  72. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +16 -14
  73. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
  74. package/esm/cli/admin/admin-show-generic-extension-attributes.js +16 -14
  75. package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
  76. package/esm/cli/admin/admin-train-auto-access-model.js +19 -17
  77. package/esm/cli/admin/admin-train-auto-access-model.js.map +1 -1
  78. package/esm/cli/admin/admin.js +34 -20
  79. package/esm/cli/admin/admin.js.map +1 -1
  80. package/esm/cli/agent/agent-delete.js +28 -26
  81. package/esm/cli/agent/agent-delete.js.map +1 -1
  82. package/esm/cli/agent/agent-describe.js +14 -12
  83. package/esm/cli/agent/agent-describe.js.map +1 -1
  84. package/esm/cli/agent/agent-export.js +34 -32
  85. package/esm/cli/agent/agent-export.js.map +1 -1
  86. package/esm/cli/agent/agent-gateway-delete.js +28 -26
  87. package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
  88. package/esm/cli/agent/agent-gateway-describe.js +14 -12
  89. package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
  90. package/esm/cli/agent/agent-gateway-export.js +34 -32
  91. package/esm/cli/agent/agent-gateway-export.js.map +1 -1
  92. package/esm/cli/agent/agent-gateway-import.js +40 -38
  93. package/esm/cli/agent/agent-gateway-import.js.map +1 -1
  94. package/esm/cli/agent/agent-gateway-list.js +15 -13
  95. package/esm/cli/agent/agent-gateway-list.js.map +1 -1
  96. package/esm/cli/agent/agent-gateway.js +15 -8
  97. package/esm/cli/agent/agent-gateway.js.map +1 -1
  98. package/esm/cli/agent/agent-import.js +40 -38
  99. package/esm/cli/agent/agent-import.js.map +1 -1
  100. package/esm/cli/agent/agent-java-delete.js +28 -26
  101. package/esm/cli/agent/agent-java-delete.js.map +1 -1
  102. package/esm/cli/agent/agent-java-describe.js +14 -12
  103. package/esm/cli/agent/agent-java-describe.js.map +1 -1
  104. package/esm/cli/agent/agent-java-export.js +34 -32
  105. package/esm/cli/agent/agent-java-export.js.map +1 -1
  106. package/esm/cli/agent/agent-java-import.js +40 -38
  107. package/esm/cli/agent/agent-java-import.js.map +1 -1
  108. package/esm/cli/agent/agent-java-list.js +15 -13
  109. package/esm/cli/agent/agent-java-list.js.map +1 -1
  110. package/esm/cli/agent/agent-java.js +15 -8
  111. package/esm/cli/agent/agent-java.js.map +1 -1
  112. package/esm/cli/agent/agent-list.js +15 -13
  113. package/esm/cli/agent/agent-list.js.map +1 -1
  114. package/esm/cli/agent/agent-web-delete.js +28 -26
  115. package/esm/cli/agent/agent-web-delete.js.map +1 -1
  116. package/esm/cli/agent/agent-web-describe.js +14 -12
  117. package/esm/cli/agent/agent-web-describe.js.map +1 -1
  118. package/esm/cli/agent/agent-web-export.js +34 -32
  119. package/esm/cli/agent/agent-web-export.js.map +1 -1
  120. package/esm/cli/agent/agent-web-import.js +40 -38
  121. package/esm/cli/agent/agent-web-import.js.map +1 -1
  122. package/esm/cli/agent/agent-web-list.js +15 -13
  123. package/esm/cli/agent/agent-web-list.js.map +1 -1
  124. package/esm/cli/agent/agent-web.js +15 -8
  125. package/esm/cli/agent/agent-web.js.map +1 -1
  126. package/esm/cli/agent/agent.js +17 -12
  127. package/esm/cli/agent/agent.js.map +1 -1
  128. package/esm/cli/app/app-delete.js +27 -25
  129. package/esm/cli/app/app-delete.js.map +1 -1
  130. package/esm/cli/app/app-describe.js +14 -12
  131. package/esm/cli/app/app-describe.js.map +1 -1
  132. package/esm/cli/app/app-export.js +42 -40
  133. package/esm/cli/app/app-export.js.map +1 -1
  134. package/esm/cli/app/app-import.js +47 -45
  135. package/esm/cli/app/app-import.js.map +1 -1
  136. package/esm/cli/app/app-list.js +16 -14
  137. package/esm/cli/app/app-list.js.map +1 -1
  138. package/esm/cli/app/app.js +11 -10
  139. package/esm/cli/app/app.js.map +1 -1
  140. package/esm/cli/authn/authn-describe.js +20 -18
  141. package/esm/cli/authn/authn-describe.js.map +1 -1
  142. package/esm/cli/authn/authn-export.js +16 -14
  143. package/esm/cli/authn/authn-export.js.map +1 -1
  144. package/esm/cli/authn/authn-import.js +16 -14
  145. package/esm/cli/authn/authn-import.js.map +1 -1
  146. package/esm/cli/authn/authn.js +7 -7
  147. package/esm/cli/authn/authn.js.map +1 -1
  148. package/esm/cli/authz/authz-policy-delete.js +33 -31
  149. package/esm/cli/authz/authz-policy-delete.js.map +1 -1
  150. package/esm/cli/authz/authz-policy-describe.js +20 -18
  151. package/esm/cli/authz/authz-policy-describe.js.map +1 -1
  152. package/esm/cli/authz/authz-policy-export.js +65 -63
  153. package/esm/cli/authz/authz-policy-export.js.map +1 -1
  154. package/esm/cli/authz/authz-policy-import.js +55 -53
  155. package/esm/cli/authz/authz-policy-import.js.map +1 -1
  156. package/esm/cli/authz/authz-policy-list.js +27 -25
  157. package/esm/cli/authz/authz-policy-list.js.map +1 -1
  158. package/esm/cli/authz/authz-policy.js +15 -8
  159. package/esm/cli/authz/authz-policy.js.map +1 -1
  160. package/esm/cli/authz/authz-set-delete.js +27 -25
  161. package/esm/cli/authz/authz-set-delete.js.map +1 -1
  162. package/esm/cli/authz/authz-set-describe.js +20 -18
  163. package/esm/cli/authz/authz-set-describe.js.map +1 -1
  164. package/esm/cli/authz/authz-set-export.js +45 -43
  165. package/esm/cli/authz/authz-set-export.js.map +1 -1
  166. package/esm/cli/authz/authz-set-import.js +51 -49
  167. package/esm/cli/authz/authz-set-import.js.map +1 -1
  168. package/esm/cli/authz/authz-set-list.js +16 -14
  169. package/esm/cli/authz/authz-set-list.js.map +1 -1
  170. package/esm/cli/authz/authz-set.js +15 -8
  171. package/esm/cli/authz/authz-set.js.map +1 -1
  172. package/esm/cli/authz/authz-type-delete.js +33 -31
  173. package/esm/cli/authz/authz-type-delete.js.map +1 -1
  174. package/esm/cli/authz/authz-type-describe.js +24 -22
  175. package/esm/cli/authz/authz-type-describe.js.map +1 -1
  176. package/esm/cli/authz/authz-type-export.js +39 -37
  177. package/esm/cli/authz/authz-type-export.js.map +1 -1
  178. package/esm/cli/authz/authz-type-import.js +45 -43
  179. package/esm/cli/authz/authz-type-import.js.map +1 -1
  180. package/esm/cli/authz/authz-type-list.js +16 -14
  181. package/esm/cli/authz/authz-type-list.js.map +1 -1
  182. package/esm/cli/authz/authz-type.js +15 -8
  183. package/esm/cli/authz/authz-type.js.map +1 -1
  184. package/esm/cli/authz/authz.js +7 -7
  185. package/esm/cli/authz/authz.js.map +1 -1
  186. package/esm/cli/config/config-delete.js +14 -12
  187. package/esm/cli/config/config-delete.js.map +1 -1
  188. package/esm/cli/config/config-describe.js +14 -12
  189. package/esm/cli/config/config-describe.js.map +1 -1
  190. package/esm/cli/config/config-export.js +43 -41
  191. package/esm/cli/config/config-export.js.map +1 -1
  192. package/esm/cli/config/config-import.js +53 -51
  193. package/esm/cli/config/config-import.js.map +1 -1
  194. package/esm/cli/config/config-list.js +14 -12
  195. package/esm/cli/config/config-list.js.map +1 -1
  196. package/esm/cli/config/config.js +12 -9
  197. package/esm/cli/config/config.js.map +1 -1
  198. package/esm/cli/conn/conn-delete.js +15 -13
  199. package/esm/cli/conn/conn-delete.js.map +1 -1
  200. package/esm/cli/conn/conn-describe.js +11 -9
  201. package/esm/cli/conn/conn-describe.js.map +1 -1
  202. package/esm/cli/conn/conn-list.js +11 -9
  203. package/esm/cli/conn/conn-list.js.map +1 -1
  204. package/esm/cli/conn/conn-save.js +77 -75
  205. package/esm/cli/conn/conn-save.js.map +1 -1
  206. package/esm/cli/conn/conn.js +9 -8
  207. package/esm/cli/conn/conn.js.map +1 -1
  208. package/esm/cli/email/email-template-export.js +33 -31
  209. package/esm/cli/email/email-template-export.js.map +1 -1
  210. package/esm/cli/email/email-template-import.js +39 -37
  211. package/esm/cli/email/email-template-import.js.map +1 -1
  212. package/esm/cli/email/email-template-list.js +16 -14
  213. package/esm/cli/email/email-template-list.js.map +1 -1
  214. package/esm/cli/email/email-template.js +11 -6
  215. package/esm/cli/email/email-template.js.map +1 -1
  216. package/esm/cli/email/email.js +3 -5
  217. package/esm/cli/email/email.js.map +1 -1
  218. package/esm/cli/esv/esv-apply.js +39 -37
  219. package/esm/cli/esv/esv-apply.js.map +1 -1
  220. package/esm/cli/esv/esv-secret-create.js +19 -17
  221. package/esm/cli/esv/esv-secret-create.js.map +1 -1
  222. package/esm/cli/esv/esv-secret-delete.js +26 -24
  223. package/esm/cli/esv/esv-secret-delete.js.map +1 -1
  224. package/esm/cli/esv/esv-secret-describe.js +16 -14
  225. package/esm/cli/esv/esv-secret-describe.js.map +1 -1
  226. package/esm/cli/esv/esv-secret-export.js +25 -23
  227. package/esm/cli/esv/esv-secret-export.js.map +1 -1
  228. package/esm/cli/esv/esv-secret-import.js +14 -12
  229. package/esm/cli/esv/esv-secret-import.js.map +1 -1
  230. package/esm/cli/esv/esv-secret-list.js +16 -14
  231. package/esm/cli/esv/esv-secret-list.js.map +1 -1
  232. package/esm/cli/esv/esv-secret-set.js +16 -14
  233. package/esm/cli/esv/esv-secret-set.js.map +1 -1
  234. package/esm/cli/esv/esv-secret-version-activate.js +20 -18
  235. package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
  236. package/esm/cli/esv/esv-secret-version-create.js +19 -17
  237. package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
  238. package/esm/cli/esv/esv-secret-version-deactivate.js +20 -18
  239. package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
  240. package/esm/cli/esv/esv-secret-version-delete.js +26 -24
  241. package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
  242. package/esm/cli/esv/esv-secret-version-list.js +16 -14
  243. package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
  244. package/esm/cli/esv/esv-secret-version.js +15 -8
  245. package/esm/cli/esv/esv-secret-version.js.map +1 -1
  246. package/esm/cli/esv/esv-secret.js +21 -11
  247. package/esm/cli/esv/esv-secret.js.map +1 -1
  248. package/esm/cli/esv/esv-variable-create.js +16 -14
  249. package/esm/cli/esv/esv-variable-create.js.map +1 -1
  250. package/esm/cli/esv/esv-variable-delete.js +27 -25
  251. package/esm/cli/esv/esv-variable-delete.js.map +1 -1
  252. package/esm/cli/esv/esv-variable-describe.js +16 -14
  253. package/esm/cli/esv/esv-variable-describe.js.map +1 -1
  254. package/esm/cli/esv/esv-variable-export.js +26 -24
  255. package/esm/cli/esv/esv-variable-export.js.map +1 -1
  256. package/esm/cli/esv/esv-variable-import.js +14 -12
  257. package/esm/cli/esv/esv-variable-import.js.map +1 -1
  258. package/esm/cli/esv/esv-variable-list.js +16 -14
  259. package/esm/cli/esv/esv-variable-list.js.map +1 -1
  260. package/esm/cli/esv/esv-variable-set.js +24 -22
  261. package/esm/cli/esv/esv-variable-set.js.map +1 -1
  262. package/esm/cli/esv/esv-variable.js +19 -10
  263. package/esm/cli/esv/esv-variable.js.map +1 -1
  264. package/esm/cli/esv/esv.js +7 -7
  265. package/esm/cli/esv/esv.js.map +1 -1
  266. package/esm/cli/idm/idm-count.js +16 -14
  267. package/esm/cli/idm/idm-count.js.map +1 -1
  268. package/esm/cli/idm/idm-export.js +41 -39
  269. package/esm/cli/idm/idm-export.js.map +1 -1
  270. package/esm/cli/idm/idm-import.js +45 -43
  271. package/esm/cli/idm/idm-import.js.map +1 -1
  272. package/esm/cli/idm/idm-list.js +21 -19
  273. package/esm/cli/idm/idm-list.js.map +1 -1
  274. package/esm/cli/idm/idm.js +9 -8
  275. package/esm/cli/idm/idm.js.map +1 -1
  276. package/esm/cli/idp/idp-export.js +34 -32
  277. package/esm/cli/idp/idp-export.js.map +1 -1
  278. package/esm/cli/idp/idp-import.js +47 -45
  279. package/esm/cli/idp/idp-import.js.map +1 -1
  280. package/esm/cli/idp/idp-list.js +20 -18
  281. package/esm/cli/idp/idp-list.js.map +1 -1
  282. package/esm/cli/idp/idp.js +7 -7
  283. package/esm/cli/idp/idp.js.map +1 -1
  284. package/esm/cli/journey/journey-delete.js +27 -25
  285. package/esm/cli/journey/journey-delete.js.map +1 -1
  286. package/esm/cli/journey/journey-describe.js +92 -90
  287. package/esm/cli/journey/journey-describe.js.map +1 -1
  288. package/esm/cli/journey/journey-disable.js +27 -25
  289. package/esm/cli/journey/journey-disable.js.map +1 -1
  290. package/esm/cli/journey/journey-enable.js +27 -25
  291. package/esm/cli/journey/journey-enable.js.map +1 -1
  292. package/esm/cli/journey/journey-export.js +55 -53
  293. package/esm/cli/journey/journey-export.js.map +1 -1
  294. package/esm/cli/journey/journey-import.js +51 -49
  295. package/esm/cli/journey/journey-import.js.map +1 -1
  296. package/esm/cli/journey/journey-list.js +16 -14
  297. package/esm/cli/journey/journey-list.js.map +1 -1
  298. package/esm/cli/journey/journey-prune.js +26 -24
  299. package/esm/cli/journey/journey-prune.js.map +1 -1
  300. package/esm/cli/journey/journey.js +17 -12
  301. package/esm/cli/journey/journey.js.map +1 -1
  302. package/esm/cli/log/log-fetch.js +98 -96
  303. package/esm/cli/log/log-fetch.js.map +1 -1
  304. package/esm/cli/log/log-key-delete.js +25 -23
  305. package/esm/cli/log/log-key-delete.js.map +1 -1
  306. package/esm/cli/log/log-key-describe.js +14 -12
  307. package/esm/cli/log/log-key-describe.js.map +1 -1
  308. package/esm/cli/log/log-key-list.js +16 -14
  309. package/esm/cli/log/log-key-list.js.map +1 -1
  310. package/esm/cli/log/log-key.js +11 -6
  311. package/esm/cli/log/log-key.js.map +1 -1
  312. package/esm/cli/log/log-list.js +70 -68
  313. package/esm/cli/log/log-list.js.map +1 -1
  314. package/esm/cli/log/log-tail.js +60 -58
  315. package/esm/cli/log/log-tail.js.map +1 -1
  316. package/esm/cli/log/log.js +9 -8
  317. package/esm/cli/log/log.js.map +1 -1
  318. package/esm/cli/oauth/oauth-client-delete.js +14 -12
  319. package/esm/cli/oauth/oauth-client-delete.js.map +1 -1
  320. package/esm/cli/oauth/oauth-client-describe.js +14 -12
  321. package/esm/cli/oauth/oauth-client-describe.js.map +1 -1
  322. package/esm/cli/oauth/oauth-client-export.js +42 -40
  323. package/esm/cli/oauth/oauth-client-export.js.map +1 -1
  324. package/esm/cli/oauth/oauth-client-import.js +47 -45
  325. package/esm/cli/oauth/oauth-client-import.js.map +1 -1
  326. package/esm/cli/oauth/oauth-client-list.js +16 -14
  327. package/esm/cli/oauth/oauth-client-list.js.map +1 -1
  328. package/esm/cli/oauth/oauth-client.js +16 -8
  329. package/esm/cli/oauth/oauth-client.js.map +1 -1
  330. package/esm/cli/oauth/oauth.js +4 -6
  331. package/esm/cli/oauth/oauth.js.map +1 -1
  332. package/esm/cli/realm/realm-add-custom-domain.js +15 -13
  333. package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
  334. package/esm/cli/realm/realm-describe.js +15 -13
  335. package/esm/cli/realm/realm-describe.js.map +1 -1
  336. package/esm/cli/realm/realm-list.js +15 -13
  337. package/esm/cli/realm/realm-list.js.map +1 -1
  338. package/esm/cli/realm/realm-remove-custom-domain.js +15 -13
  339. package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
  340. package/esm/cli/realm/realm.js +13 -10
  341. package/esm/cli/realm/realm.js.map +1 -1
  342. package/esm/cli/saml/saml-cot-export.js +33 -31
  343. package/esm/cli/saml/saml-cot-export.js.map +1 -1
  344. package/esm/cli/saml/saml-cot-import.js +39 -37
  345. package/esm/cli/saml/saml-cot-import.js.map +1 -1
  346. package/esm/cli/saml/saml-cot-list.js +16 -14
  347. package/esm/cli/saml/saml-cot-list.js.map +1 -1
  348. package/esm/cli/saml/saml-cot.js +11 -6
  349. package/esm/cli/saml/saml-cot.js.map +1 -1
  350. package/esm/cli/saml/saml-delete.js +25 -23
  351. package/esm/cli/saml/saml-delete.js.map +1 -1
  352. package/esm/cli/saml/saml-describe.js +16 -14
  353. package/esm/cli/saml/saml-describe.js.map +1 -1
  354. package/esm/cli/saml/saml-export.js +39 -37
  355. package/esm/cli/saml/saml-export.js.map +1 -1
  356. package/esm/cli/saml/saml-import.js +47 -45
  357. package/esm/cli/saml/saml-import.js.map +1 -1
  358. package/esm/cli/saml/saml-list.js +16 -14
  359. package/esm/cli/saml/saml-list.js.map +1 -1
  360. package/esm/cli/saml/saml-metadata-export.js +33 -31
  361. package/esm/cli/saml/saml-metadata-export.js.map +1 -1
  362. package/esm/cli/saml/saml-metadata.js +7 -4
  363. package/esm/cli/saml/saml-metadata.js.map +1 -1
  364. package/esm/cli/saml/saml.js +15 -11
  365. package/esm/cli/saml/saml.js.map +1 -1
  366. package/esm/cli/script/script-delete.js +28 -27
  367. package/esm/cli/script/script-delete.js.map +1 -1
  368. package/esm/cli/script/script-describe.js +14 -12
  369. package/esm/cli/script/script-describe.js.map +1 -1
  370. package/esm/cli/script/script-export.js +43 -41
  371. package/esm/cli/script/script-export.js.map +1 -1
  372. package/esm/cli/script/script-import.js +32 -30
  373. package/esm/cli/script/script-import.js.map +1 -1
  374. package/esm/cli/script/script-list.js +16 -14
  375. package/esm/cli/script/script-list.js.map +1 -1
  376. package/esm/cli/script/script.js +11 -9
  377. package/esm/cli/script/script.js.map +1 -1
  378. package/esm/cli/service/service-delete.js +18 -16
  379. package/esm/cli/service/service-delete.js.map +1 -1
  380. package/esm/cli/service/service-export.js +32 -30
  381. package/esm/cli/service/service-export.js.map +1 -1
  382. package/esm/cli/service/service-import.js +56 -54
  383. package/esm/cli/service/service-import.js.map +1 -1
  384. package/esm/cli/service/service-list.js +14 -12
  385. package/esm/cli/service/service-list.js.map +1 -1
  386. package/esm/cli/service/service.js +9 -8
  387. package/esm/cli/service/service.js.map +1 -1
  388. package/esm/cli/theme/theme-delete.js +33 -31
  389. package/esm/cli/theme/theme-delete.js.map +1 -1
  390. package/esm/cli/theme/theme-export.js +39 -37
  391. package/esm/cli/theme/theme-export.js.map +1 -1
  392. package/esm/cli/theme/theme-import.js +45 -43
  393. package/esm/cli/theme/theme-import.js.map +1 -1
  394. package/esm/cli/theme/theme-list.js +16 -14
  395. package/esm/cli/theme/theme-list.js.map +1 -1
  396. package/esm/cli/theme/theme.js +9 -8
  397. package/esm/cli/theme/theme.js.map +1 -1
  398. package/package.json +2 -2
@@ -6,73 +6,75 @@ import { createLongLivedToken, createOAuth2ClientWithAdminPrivileges } from '../
6
6
  import { getTokens } from '../../ops/AuthenticateOps';
7
7
  import { printError, printMessage } from '../../utils/Console.js';
8
8
  import { FrodoCommand } from '../FrodoCommand';
9
- const program = new FrodoCommand('frodo admin create-oauth2-client-with-admin-privileges');
10
- program.description('Create an oauth2 client with admin privileges.').addOption(new Option('--client-id [id]', 'Client id.')).addOption(new Option('--client-secret [secret]', 'Client secret.')).addOption(new Option('--llt', 'Create a long-lived token and store it in a secret. The default secret name is esv-admin-token and the default token lifetime is 315,360,000 seconds (10 years). Both can be overwritten with the --llt-esv and --llt-ttl options.')).addOption(new Option('--llt-scope [scope]', 'Request the following scope(s). This option only applies if used with the --llt option.').default('fr:idm:*', 'fr:idm:*')).addOption(new Option('--llt-esv [esv]', 'Name of the secret to store the token in. This option only applies if used with the --llt option.').default('esv-admin-token', 'esv-admin-token')).addOption(new Option('--no-llt-esv', "Don't store the token in a secret and output to console instead. This option only applies if used with the --llt option.")).addOption(new Option('--llt-ttl [ttl]', 'Token lifetime (seconds). This option only applies if used with the --llt option.').default(315360000, '315,360,000 seconds (10 years)')).action(
11
- // implement command logic inside action handler
12
- async (host, realm, user, password, options, command) => {
13
- command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
14
- if (await getTokens()) {
15
- printMessage(`Creating oauth2 client with admin privileges in realm "${state.getRealm()}"...`);
16
- let clientId = uuidv4();
17
- let clientSecret = uuidv4();
18
- if (options.clientId) {
19
- clientId = options.clientId;
20
- }
21
- if (options.clientSecret) {
22
- clientSecret = options.clientSecret;
23
- }
24
- if (await createOAuth2ClientWithAdminPrivileges(clientId, clientSecret)) {
25
- const table = new Table({
26
- chars: {
27
- top: '',
28
- 'top-mid': '',
29
- 'top-left': '',
30
- 'top-right': '',
31
- bottom: '',
32
- 'bottom-mid': '',
33
- 'bottom-left': '',
34
- 'bottom-right': '',
35
- left: '',
36
- 'left-mid': '',
37
- mid: '',
38
- 'mid-mid': '',
39
- right: '',
40
- 'right-mid': ''
41
- },
42
- style: {
43
- 'padding-left': 0,
44
- 'padding-right': 0
45
- },
46
- wordWrap: true
47
- });
48
- table.push(['Client ID'['brightCyan'], clientId]);
49
- table.push(['Client Secret'['brightCyan'], clientSecret]);
50
- if (options.llt) {
51
- try {
52
- const response = await createLongLivedToken(clientId, clientSecret, options.lltScope, options.lltEsv, options.lltTtl);
53
- if (options.lltEsv) table.push(['Secret Name'['brightCyan'], response.secret]);
54
- table.push(['Scope'['brightCyan'], response.scope]);
55
- table.push(['Expires'['brightCyan'], response.expires_on]);
56
- printMessage(table.toString());
57
- if (options.lltEsv === false) {
58
- printMessage(`\nBearer token:`, 'info');
59
- printMessage(`${response.access_token}`, 'data');
9
+ export default function setup() {
10
+ const program = new FrodoCommand('frodo admin create-oauth2-client-with-admin-privileges');
11
+ program.description('Create an oauth2 client with admin privileges.').addOption(new Option('--client-id [id]', 'Client id.')).addOption(new Option('--client-secret [secret]', 'Client secret.')).addOption(new Option('--llt', 'Create a long-lived token and store it in a secret. The default secret name is esv-admin-token and the default token lifetime is 315,360,000 seconds (10 years). Both can be overwritten with the --llt-esv and --llt-ttl options.')).addOption(new Option('--llt-scope [scope]', 'Request the following scope(s). This option only applies if used with the --llt option.').default('fr:idm:*', 'fr:idm:*')).addOption(new Option('--llt-esv [esv]', 'Name of the secret to store the token in. This option only applies if used with the --llt option.').default('esv-admin-token', 'esv-admin-token')).addOption(new Option('--no-llt-esv', "Don't store the token in a secret and output to console instead. This option only applies if used with the --llt option.")).addOption(new Option('--llt-ttl [ttl]', 'Token lifetime (seconds). This option only applies if used with the --llt option.').default(315360000, '315,360,000 seconds (10 years)')).action(
12
+ // implement command logic inside action handler
13
+ async (host, realm, user, password, options, command) => {
14
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
15
+ if (await getTokens()) {
16
+ printMessage(`Creating oauth2 client with admin privileges in realm "${state.getRealm()}"...`);
17
+ let clientId = uuidv4();
18
+ let clientSecret = uuidv4();
19
+ if (options.clientId) {
20
+ clientId = options.clientId;
21
+ }
22
+ if (options.clientSecret) {
23
+ clientSecret = options.clientSecret;
24
+ }
25
+ if (await createOAuth2ClientWithAdminPrivileges(clientId, clientSecret)) {
26
+ const table = new Table({
27
+ chars: {
28
+ top: '',
29
+ 'top-mid': '',
30
+ 'top-left': '',
31
+ 'top-right': '',
32
+ bottom: '',
33
+ 'bottom-mid': '',
34
+ 'bottom-left': '',
35
+ 'bottom-right': '',
36
+ left: '',
37
+ 'left-mid': '',
38
+ mid: '',
39
+ 'mid-mid': '',
40
+ right: '',
41
+ 'right-mid': ''
42
+ },
43
+ style: {
44
+ 'padding-left': 0,
45
+ 'padding-right': 0
46
+ },
47
+ wordWrap: true
48
+ });
49
+ table.push(['Client ID'['brightCyan'], clientId]);
50
+ table.push(['Client Secret'['brightCyan'], clientSecret]);
51
+ if (options.llt) {
52
+ try {
53
+ const response = await createLongLivedToken(clientId, clientSecret, options.lltScope, options.lltEsv, options.lltTtl);
54
+ if (options.lltEsv) table.push(['Secret Name'['brightCyan'], response.secret]);
55
+ table.push(['Scope'['brightCyan'], response.scope]);
56
+ table.push(['Expires'['brightCyan'], response.expires_on]);
57
+ printMessage(table.toString());
58
+ if (options.lltEsv === false) {
59
+ printMessage(`\nBearer token:`, 'info');
60
+ printMessage(`${response.access_token}`, 'data');
61
+ }
62
+ } catch (error) {
63
+ printError(error);
64
+ process.exitCode = 1;
60
65
  }
61
- } catch (error) {
62
- printError(error);
63
- process.exitCode = 1;
66
+ } else {
67
+ printMessage(table.toString());
64
68
  }
65
69
  } else {
66
- printMessage(table.toString());
70
+ process.exitCode = 1;
67
71
  }
68
72
  } else {
69
73
  process.exitCode = 1;
70
74
  }
71
- } else {
72
- process.exitCode = 1;
73
75
  }
76
+ // end command logic inside action handler
77
+ );
78
+ return program;
74
79
  }
75
- // end command logic inside action handler
76
- );
77
- program.parse();
78
80
  //# sourceMappingURL=admin-create-oauth2-client-with-admin-privileges.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin-create-oauth2-client-with-admin-privileges.js","names":["state","Table","Option","v4","uuidv4","createLongLivedToken","createOAuth2ClientWithAdminPrivileges","getTokens","printError","printMessage","FrodoCommand","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","clientId","clientSecret","table","chars","top","bottom","left","mid","right","style","wordWrap","push","llt","response","lltScope","lltEsv","lltTtl","secret","scope","expires_on","toString","access_token","error","process","exitCode","parse"],"sources":["../../../src/cli/admin/admin-create-oauth2-client-with-admin-privileges.ts"],"sourcesContent":["import { state } from '@rockcarver/frodo-lib';\nimport Table from 'cli-table3';\nimport { Option } from 'commander';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n createLongLivedToken,\n createOAuth2ClientWithAdminPrivileges,\n} from '../../ops/AdminOps';\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { printError, printMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand(\n 'frodo admin create-oauth2-client-with-admin-privileges'\n);\n\nprogram\n .description('Create an oauth2 client with admin privileges.')\n .addOption(new Option('--client-id [id]', 'Client id.'))\n .addOption(new Option('--client-secret [secret]', 'Client secret.'))\n .addOption(\n new Option(\n '--llt',\n 'Create a long-lived token and store it in a secret. The default secret name is esv-admin-token and the default token lifetime is 315,360,000 seconds (10 years). Both can be overwritten with the --llt-esv and --llt-ttl options.'\n )\n )\n .addOption(\n new Option(\n '--llt-scope [scope]',\n 'Request the following scope(s). This option only applies if used with the --llt option.'\n ).default('fr:idm:*', 'fr:idm:*')\n )\n .addOption(\n new Option(\n '--llt-esv [esv]',\n 'Name of the secret to store the token in. This option only applies if used with the --llt option.'\n ).default('esv-admin-token', 'esv-admin-token')\n )\n .addOption(\n new Option(\n '--no-llt-esv',\n \"Don't store the token in a secret and output to console instead. This option only applies if used with the --llt option.\"\n )\n )\n .addOption(\n new Option(\n '--llt-ttl [ttl]',\n 'Token lifetime (seconds). This option only applies if used with the --llt option.'\n ).default(315360000, '315,360,000 seconds (10 years)')\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 printMessage(\n `Creating oauth2 client with admin privileges in realm \"${state.getRealm()}\"...`\n );\n let clientId = uuidv4();\n let clientSecret = uuidv4();\n if (options.clientId) {\n clientId = options.clientId;\n }\n if (options.clientSecret) {\n clientSecret = options.clientSecret;\n }\n if (\n await createOAuth2ClientWithAdminPrivileges(clientId, clientSecret)\n ) {\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n wordWrap: true,\n });\n table.push(['Client ID'['brightCyan'], clientId]);\n table.push(['Client Secret'['brightCyan'], clientSecret]);\n if (options.llt) {\n try {\n const response = await createLongLivedToken(\n clientId,\n clientSecret,\n options.lltScope,\n options.lltEsv,\n options.lltTtl\n );\n if (options.lltEsv)\n table.push(['Secret Name'['brightCyan'], response.secret]);\n table.push(['Scope'['brightCyan'], response.scope]);\n table.push(['Expires'['brightCyan'], response.expires_on]);\n printMessage(table.toString());\n if (options.lltEsv === false) {\n printMessage(`\\nBearer token:`, 'info');\n printMessage(`${response.access_token}`, 'data');\n }\n } catch (error) {\n printError(error);\n process.exitCode = 1;\n }\n } else {\n printMessage(table.toString());\n }\n } else {\n process.exitCode = 1;\n }\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,OAAOC,KAAK,MAAM,YAAY;AAC9B,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,EAAE,IAAIC,MAAM,QAAQ,MAAM;AAEnC,SACEC,oBAAoB,EACpBC,qCAAqC,QAChC,oBAAoB;AAC3B,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,UAAU,EAAEC,YAAY,QAAQ,wBAAwB;AACjE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAC9B,wDACF,CAAC;AAEDC,OAAO,CACJC,WAAW,CAAC,gDAAgD,CAAC,CAC7DC,SAAS,CAAC,IAAIX,MAAM,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,CACvDW,SAAS,CAAC,IAAIX,MAAM,CAAC,0BAA0B,EAAE,gBAAgB,CAAC,CAAC,CACnEW,SAAS,CACR,IAAIX,MAAM,CACR,OAAO,EACP,oOACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,qBAAqB,EACrB,yFACF,CAAC,CAACY,OAAO,CAAC,UAAU,EAAE,UAAU,CAClC,CAAC,CACAD,SAAS,CACR,IAAIX,MAAM,CACR,iBAAiB,EACjB,mGACF,CAAC,CAACY,OAAO,CAAC,iBAAiB,EAAE,iBAAiB,CAChD,CAAC,CACAD,SAAS,CACR,IAAIX,MAAM,CACR,cAAc,EACd,0HACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,iBAAiB,EACjB,mFACF,CAAC,CAACY,OAAO,CAAC,SAAS,EAAE,gCAAgC,CACvD,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMd,SAAS,CAAC,CAAC,EAAE;IACrBE,YAAY,CACT,0DAAyDT,KAAK,CAACuB,QAAQ,CAAC,CAAE,MAC7E,CAAC;IACD,IAAIC,QAAQ,GAAGpB,MAAM,CAAC,CAAC;IACvB,IAAIqB,YAAY,GAAGrB,MAAM,CAAC,CAAC;IAC3B,IAAIgB,OAAO,CAACI,QAAQ,EAAE;MACpBA,QAAQ,GAAGJ,OAAO,CAACI,QAAQ;IAC7B;IACA,IAAIJ,OAAO,CAACK,YAAY,EAAE;MACxBA,YAAY,GAAGL,OAAO,CAACK,YAAY;IACrC;IACA,IACE,MAAMnB,qCAAqC,CAACkB,QAAQ,EAAEC,YAAY,CAAC,EACnE;MACA,MAAMC,KAAK,GAAG,IAAIzB,KAAK,CAAC;QACtB0B,KAAK,EAAE;UACLC,GAAG,EAAE,EAAE;UACP,SAAS,EAAE,EAAE;UACb,UAAU,EAAE,EAAE;UACd,WAAW,EAAE,EAAE;UACfC,MAAM,EAAE,EAAE;UACV,YAAY,EAAE,EAAE;UAChB,aAAa,EAAE,EAAE;UACjB,cAAc,EAAE,EAAE;UAClBC,IAAI,EAAE,EAAE;UACR,UAAU,EAAE,EAAE;UACdC,GAAG,EAAE,EAAE;UACP,SAAS,EAAE,EAAE;UACbC,KAAK,EAAE,EAAE;UACT,WAAW,EAAE;QACf,CAAC;QACDC,KAAK,EAAE;UAAE,cAAc,EAAE,CAAC;UAAE,eAAe,EAAE;QAAE,CAAC;QAChDC,QAAQ,EAAE;MACZ,CAAC,CAAC;MACFR,KAAK,CAACS,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,EAAEX,QAAQ,CAAC,CAAC;MACjDE,KAAK,CAACS,IAAI,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,EAAEV,YAAY,CAAC,CAAC;MACzD,IAAIL,OAAO,CAACgB,GAAG,EAAE;QACf,IAAI;UACF,MAAMC,QAAQ,GAAG,MAAMhC,oBAAoB,CACzCmB,QAAQ,EACRC,YAAY,EACZL,OAAO,CAACkB,QAAQ,EAChBlB,OAAO,CAACmB,MAAM,EACdnB,OAAO,CAACoB,MACV,CAAC;UACD,IAAIpB,OAAO,CAACmB,MAAM,EAChBb,KAAK,CAACS,IAAI,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,EAAEE,QAAQ,CAACI,MAAM,CAAC,CAAC;UAC5Df,KAAK,CAACS,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAEE,QAAQ,CAACK,KAAK,CAAC,CAAC;UACnDhB,KAAK,CAACS,IAAI,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,EAAEE,QAAQ,CAACM,UAAU,CAAC,CAAC;UAC1DlC,YAAY,CAACiB,KAAK,CAACkB,QAAQ,CAAC,CAAC,CAAC;UAC9B,IAAIxB,OAAO,CAACmB,MAAM,KAAK,KAAK,EAAE;YAC5B9B,YAAY,CAAE,iBAAgB,EAAE,MAAM,CAAC;YACvCA,YAAY,CAAE,GAAE4B,QAAQ,CAACQ,YAAa,EAAC,EAAE,MAAM,CAAC;UAClD;QACF,CAAC,CAAC,OAAOC,KAAK,EAAE;UACdtC,UAAU,CAACsC,KAAK,CAAC;UACjBC,OAAO,CAACC,QAAQ,GAAG,CAAC;QACtB;MACF,CAAC,MAAM;QACLvC,YAAY,CAACiB,KAAK,CAACkB,QAAQ,CAAC,CAAC,CAAC;MAChC;IACF,CAAC,MAAM;MACLG,OAAO,CAACC,QAAQ,GAAG,CAAC;IACtB;EACF,CAAC,MAAM;IACLD,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHrC,OAAO,CAACsC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"admin-create-oauth2-client-with-admin-privileges.js","names":["state","Table","Option","v4","uuidv4","createLongLivedToken","createOAuth2ClientWithAdminPrivileges","getTokens","printError","printMessage","FrodoCommand","setup","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","clientId","clientSecret","table","chars","top","bottom","left","mid","right","style","wordWrap","push","llt","response","lltScope","lltEsv","lltTtl","secret","scope","expires_on","toString","access_token","error","process","exitCode"],"sources":["../../../src/cli/admin/admin-create-oauth2-client-with-admin-privileges.ts"],"sourcesContent":["import { state } from '@rockcarver/frodo-lib';\nimport Table from 'cli-table3';\nimport { Option } from 'commander';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport {\n createLongLivedToken,\n createOAuth2ClientWithAdminPrivileges,\n} from '../../ops/AdminOps';\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { printError, printMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nexport default function setup() {\n const program = new FrodoCommand(\n 'frodo admin create-oauth2-client-with-admin-privileges'\n );\n\n program\n .description('Create an oauth2 client with admin privileges.')\n .addOption(new Option('--client-id [id]', 'Client id.'))\n .addOption(new Option('--client-secret [secret]', 'Client secret.'))\n .addOption(\n new Option(\n '--llt',\n 'Create a long-lived token and store it in a secret. The default secret name is esv-admin-token and the default token lifetime is 315,360,000 seconds (10 years). Both can be overwritten with the --llt-esv and --llt-ttl options.'\n )\n )\n .addOption(\n new Option(\n '--llt-scope [scope]',\n 'Request the following scope(s). This option only applies if used with the --llt option.'\n ).default('fr:idm:*', 'fr:idm:*')\n )\n .addOption(\n new Option(\n '--llt-esv [esv]',\n 'Name of the secret to store the token in. This option only applies if used with the --llt option.'\n ).default('esv-admin-token', 'esv-admin-token')\n )\n .addOption(\n new Option(\n '--no-llt-esv',\n \"Don't store the token in a secret and output to console instead. This option only applies if used with the --llt option.\"\n )\n )\n .addOption(\n new Option(\n '--llt-ttl [ttl]',\n 'Token lifetime (seconds). This option only applies if used with the --llt option.'\n ).default(315360000, '315,360,000 seconds (10 years)')\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 printMessage(\n `Creating oauth2 client with admin privileges in realm \"${state.getRealm()}\"...`\n );\n let clientId = uuidv4();\n let clientSecret = uuidv4();\n if (options.clientId) {\n clientId = options.clientId;\n }\n if (options.clientSecret) {\n clientSecret = options.clientSecret;\n }\n if (\n await createOAuth2ClientWithAdminPrivileges(clientId, clientSecret)\n ) {\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n wordWrap: true,\n });\n table.push(['Client ID'['brightCyan'], clientId]);\n table.push(['Client Secret'['brightCyan'], clientSecret]);\n if (options.llt) {\n try {\n const response = await createLongLivedToken(\n clientId,\n clientSecret,\n options.lltScope,\n options.lltEsv,\n options.lltTtl\n );\n if (options.lltEsv)\n table.push(['Secret Name'['brightCyan'], response.secret]);\n table.push(['Scope'['brightCyan'], response.scope]);\n table.push(['Expires'['brightCyan'], response.expires_on]);\n printMessage(table.toString());\n if (options.lltEsv === false) {\n printMessage(`\\nBearer token:`, 'info');\n printMessage(`${response.access_token}`, 'data');\n }\n } catch (error) {\n printError(error);\n process.exitCode = 1;\n }\n } else {\n printMessage(table.toString());\n }\n } else {\n process.exitCode = 1;\n }\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\n return program;\n}\n"],"mappings":"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"}
@@ -6,33 +6,35 @@ import { executeRfc7523AuthZGrantFlow } from '../../ops/AdminOps.js';
6
6
  import { getTokens } from '../../ops/AuthenticateOps';
7
7
  import { printMessage } from '../../utils/Console.js';
8
8
  import { FrodoCommand } from '../FrodoCommand.js';
9
- const program = new FrodoCommand('frodo admin execute-rfc7523-authz-grant-flow');
10
- program.description('Execute RFC7523 authorization grant flow.').addOption(new Option('--client-id [id]', 'Client id.')).addOption(new Option('--jwk-file [file]', 'Path to JSON Web Key (JWK) file containing private key.')).addOption(new Option('--sub [subject]', 'Subject identifier, typically a UUID. Must resolve to a valid user in the realm.')).addOption(new Option('--iss [issuer]', 'Trusted issuer, typically a URL.')).addOption(new Option('--scope [scope]', 'Space-delimited list of scopes.').default('openid fr:am:* fr:idm:*')).addOption(new Option('--json', 'Output in JSON format.')).addHelpText('after', `Usage Examples:\n` + ` If you used frodo to create the RFC7523 configuration (see 'Related Commands' below), then you can test your configuration with minimal input and frodo will locate the missing parameters. The command below returns access token and identity token:\n` + ` $ frodo admin execute-rfc7523-authz-grant-flow --client-id rfc7523-client1 ${s.amBaseUrl}\n`['brightCyan'] + ` Same as above but output raw json:\n` + ` $ frodo admin execute-rfc7523-authz-grant-flow --client-id rfc7523-client1 --json ${s.amBaseUrl}'\n`['brightCyan'] + ` Same as first command above but explicitly provide all parameters:\n` + ` $ frodo admin execute-rfc7523-authz-grant-flow --client-id rfc7523-client1 --iss https://my-issuer.com/issuer --sub 146c2230-9448-4442-b86d-eb4a81a0121d --jwk-file rfc7523-client1_private.jwk.json ${s.amBaseUrl}'\n`['brightCyan'] + `\nRelated Commands:\n` + ` Run ${'frodo admin generate-rfc7523-authz-grant-artefacts --help'['brightCyan']} to see how to create the required configuration artefacts for ${'frodo admin execute-rfc7523-authz-grant-flow'['brightCyan']}:\n`).action(
11
- // implement command logic inside action handler
12
- async (host, realm, user, password, options, command) => {
13
- command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
14
- if (await getTokens()) {
15
- printMessage(`Executing RFC7523 authorization grant flow...`);
16
- let clientId = uuidv4();
17
- if (options.clientId) {
18
- clientId = options.clientId;
19
- }
20
- let jwk = undefined;
21
- if (options.jwkFile) {
22
- try {
23
- const data = fs.readFileSync(options.jwkFile);
24
- jwk = JSON.parse(data.toString());
25
- } catch (error) {
26
- printMessage(`Error parsing JWK from file ${options.jwkFile}: ${error.message}`, 'error');
9
+ export default function setup() {
10
+ const program = new FrodoCommand('frodo admin execute-rfc7523-authz-grant-flow');
11
+ program.description('Execute RFC7523 authorization grant flow.').addOption(new Option('--client-id [id]', 'Client id.')).addOption(new Option('--jwk-file [file]', 'Path to JSON Web Key (JWK) file containing private key.')).addOption(new Option('--sub [subject]', 'Subject identifier, typically a UUID. Must resolve to a valid user in the realm.')).addOption(new Option('--iss [issuer]', 'Trusted issuer, typically a URL.')).addOption(new Option('--scope [scope]', 'Space-delimited list of scopes.').default('openid fr:am:* fr:idm:*')).addOption(new Option('--json', 'Output in JSON format.')).addHelpText('after', `Usage Examples:\n` + ` If you used frodo to create the RFC7523 configuration (see 'Related Commands' below), then you can test your configuration with minimal input and frodo will locate the missing parameters. The command below returns access token and identity token:\n` + ` $ frodo admin execute-rfc7523-authz-grant-flow --client-id rfc7523-client1 ${s.amBaseUrl}\n`['brightCyan'] + ` Same as above but output raw json:\n` + ` $ frodo admin execute-rfc7523-authz-grant-flow --client-id rfc7523-client1 --json ${s.amBaseUrl}'\n`['brightCyan'] + ` Same as first command above but explicitly provide all parameters:\n` + ` $ frodo admin execute-rfc7523-authz-grant-flow --client-id rfc7523-client1 --iss https://my-issuer.com/issuer --sub 146c2230-9448-4442-b86d-eb4a81a0121d --jwk-file rfc7523-client1_private.jwk.json ${s.amBaseUrl}'\n`['brightCyan'] + `\nRelated Commands:\n` + ` Run ${'frodo admin generate-rfc7523-authz-grant-artefacts --help'['brightCyan']} to see how to create the required configuration artefacts for ${'frodo admin execute-rfc7523-authz-grant-flow'['brightCyan']}:\n`).action(
12
+ // implement command logic inside action handler
13
+ async (host, realm, user, password, options, command) => {
14
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
15
+ if (await getTokens()) {
16
+ printMessage(`Executing RFC7523 authorization grant flow...`);
17
+ let clientId = uuidv4();
18
+ if (options.clientId) {
19
+ clientId = options.clientId;
20
+ }
21
+ let jwk = undefined;
22
+ if (options.jwkFile) {
23
+ try {
24
+ const data = fs.readFileSync(options.jwkFile);
25
+ jwk = JSON.parse(data.toString());
26
+ } catch (error) {
27
+ printMessage(`Error parsing JWK from file ${options.jwkFile}: ${error.message}`, 'error');
28
+ }
27
29
  }
30
+ const outcome = await executeRfc7523AuthZGrantFlow(clientId, options.iss, jwk, options.sub, options.scope.split(' '), options.json);
31
+ if (!outcome) process.exitCode = 1;
32
+ } else {
33
+ process.exitCode = 1;
28
34
  }
29
- const outcome = await executeRfc7523AuthZGrantFlow(clientId, options.iss, jwk, options.sub, options.scope.split(' '), options.json);
30
- if (!outcome) process.exitCode = 1;
31
- } else {
32
- process.exitCode = 1;
33
35
  }
36
+ // end command logic inside action handler
37
+ );
38
+ return program;
34
39
  }
35
- // end command logic inside action handler
36
- );
37
- program.parse();
38
40
  //# sourceMappingURL=admin-execute-rfc7523-authz-grant-flow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin-execute-rfc7523-authz-grant-flow.js","names":["Option","fs","v4","uuidv4","s","executeRfc7523AuthZGrantFlow","getTokens","printMessage","FrodoCommand","program","description","addOption","default","addHelpText","amBaseUrl","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","clientId","jwk","undefined","jwkFile","data","readFileSync","JSON","parse","toString","error","message","outcome","iss","sub","scope","split","json","process","exitCode"],"sources":["../../../src/cli/admin/admin-execute-rfc7523-authz-grant-flow.ts"],"sourcesContent":["import { JwkRsa } from '@rockcarver/frodo-lib/types/ops/JoseOps.js';\nimport { Option } from 'commander';\nimport fs from 'fs';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport * as s from '../../help/SampleData';\nimport { executeRfc7523AuthZGrantFlow } from '../../ops/AdminOps.js';\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { printMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand.js';\n\nconst program = new FrodoCommand(\n 'frodo admin execute-rfc7523-authz-grant-flow'\n);\n\nprogram\n .description('Execute RFC7523 authorization grant flow.')\n .addOption(new Option('--client-id [id]', 'Client id.'))\n .addOption(\n new Option(\n '--jwk-file [file]',\n 'Path to JSON Web Key (JWK) file containing private key.'\n )\n )\n .addOption(\n new Option(\n '--sub [subject]',\n 'Subject identifier, typically a UUID. Must resolve to a valid user in the realm.'\n )\n )\n .addOption(new Option('--iss [issuer]', 'Trusted issuer, typically a URL.'))\n .addOption(\n new Option('--scope [scope]', 'Space-delimited list of scopes.').default(\n 'openid fr:am:* fr:idm:*'\n )\n )\n .addOption(new Option('--json', 'Output in JSON format.'))\n .addHelpText(\n 'after',\n `Usage Examples:\\n` +\n ` If you used frodo to create the RFC7523 configuration (see 'Related Commands' below), then you can test your configuration with minimal input and frodo will locate the missing parameters. The command below returns access token and identity token:\\n` +\n ` $ frodo admin execute-rfc7523-authz-grant-flow --client-id rfc7523-client1 ${s.amBaseUrl}\\n`[\n 'brightCyan'\n ] +\n ` Same as above but output raw json:\\n` +\n ` $ frodo admin execute-rfc7523-authz-grant-flow --client-id rfc7523-client1 --json ${s.amBaseUrl}'\\n`[\n 'brightCyan'\n ] +\n ` Same as first command above but explicitly provide all parameters:\\n` +\n ` $ frodo admin execute-rfc7523-authz-grant-flow --client-id rfc7523-client1 --iss https://my-issuer.com/issuer --sub 146c2230-9448-4442-b86d-eb4a81a0121d --jwk-file rfc7523-client1_private.jwk.json ${s.amBaseUrl}'\\n`[\n 'brightCyan'\n ] +\n `\\nRelated Commands:\\n` +\n ` Run ${'frodo admin generate-rfc7523-authz-grant-artefacts --help'['brightCyan']} to see how to create the required configuration artefacts for ${'frodo admin execute-rfc7523-authz-grant-flow'['brightCyan']}:\\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 printMessage(`Executing RFC7523 authorization grant flow...`);\n let clientId = uuidv4();\n if (options.clientId) {\n clientId = options.clientId;\n }\n let jwk: JwkRsa = undefined;\n if (options.jwkFile) {\n try {\n const data = fs.readFileSync(options.jwkFile);\n jwk = JSON.parse(data.toString());\n } catch (error) {\n printMessage(\n `Error parsing JWK from file ${options.jwkFile}: ${error.message}`,\n 'error'\n );\n }\n }\n const outcome = await executeRfc7523AuthZGrantFlow(\n clientId,\n options.iss,\n jwk,\n options.sub,\n options.scope.split(' '),\n options.json\n );\n if (!outcome) process.exitCode = 1;\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"admin-execute-rfc7523-authz-grant-flow.js","names":["Option","fs","v4","uuidv4","s","executeRfc7523AuthZGrantFlow","getTokens","printMessage","FrodoCommand","setup","program","description","addOption","default","addHelpText","amBaseUrl","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","clientId","jwk","undefined","jwkFile","data","readFileSync","JSON","parse","toString","error","message","outcome","iss","sub","scope","split","json","process","exitCode"],"sources":["../../../src/cli/admin/admin-execute-rfc7523-authz-grant-flow.ts"],"sourcesContent":["import { JwkRsa } from '@rockcarver/frodo-lib/types/ops/JoseOps.js';\nimport { Option } from 'commander';\nimport fs from 'fs';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport * as s from '../../help/SampleData';\nimport { executeRfc7523AuthZGrantFlow } from '../../ops/AdminOps.js';\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { printMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand.js';\n\nexport default function setup() {\n const program = new FrodoCommand(\n 'frodo admin execute-rfc7523-authz-grant-flow'\n );\n\n program\n .description('Execute RFC7523 authorization grant flow.')\n .addOption(new Option('--client-id [id]', 'Client id.'))\n .addOption(\n new Option(\n '--jwk-file [file]',\n 'Path to JSON Web Key (JWK) file containing private key.'\n )\n )\n .addOption(\n new Option(\n '--sub [subject]',\n 'Subject identifier, typically a UUID. Must resolve to a valid user in the realm.'\n )\n )\n .addOption(new Option('--iss [issuer]', 'Trusted issuer, typically a URL.'))\n .addOption(\n new Option('--scope [scope]', 'Space-delimited list of scopes.').default(\n 'openid fr:am:* fr:idm:*'\n )\n )\n .addOption(new Option('--json', 'Output in JSON format.'))\n .addHelpText(\n 'after',\n `Usage Examples:\\n` +\n ` If you used frodo to create the RFC7523 configuration (see 'Related Commands' below), then you can test your configuration with minimal input and frodo will locate the missing parameters. The command below returns access token and identity token:\\n` +\n ` $ frodo admin execute-rfc7523-authz-grant-flow --client-id rfc7523-client1 ${s.amBaseUrl}\\n`[\n 'brightCyan'\n ] +\n ` Same as above but output raw json:\\n` +\n ` $ frodo admin execute-rfc7523-authz-grant-flow --client-id rfc7523-client1 --json ${s.amBaseUrl}'\\n`[\n 'brightCyan'\n ] +\n ` Same as first command above but explicitly provide all parameters:\\n` +\n ` $ frodo admin execute-rfc7523-authz-grant-flow --client-id rfc7523-client1 --iss https://my-issuer.com/issuer --sub 146c2230-9448-4442-b86d-eb4a81a0121d --jwk-file rfc7523-client1_private.jwk.json ${s.amBaseUrl}'\\n`[\n 'brightCyan'\n ] +\n `\\nRelated Commands:\\n` +\n ` Run ${'frodo admin generate-rfc7523-authz-grant-artefacts --help'['brightCyan']} to see how to create the required configuration artefacts for ${'frodo admin execute-rfc7523-authz-grant-flow'['brightCyan']}:\\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 printMessage(`Executing RFC7523 authorization grant flow...`);\n let clientId = uuidv4();\n if (options.clientId) {\n clientId = options.clientId;\n }\n let jwk: JwkRsa = undefined;\n if (options.jwkFile) {\n try {\n const data = fs.readFileSync(options.jwkFile);\n jwk = JSON.parse(data.toString());\n } catch (error) {\n printMessage(\n `Error parsing JWK from file ${options.jwkFile}: ${error.message}`,\n 'error'\n );\n }\n }\n const outcome = await executeRfc7523AuthZGrantFlow(\n clientId,\n options.iss,\n jwk,\n options.sub,\n options.scope.split(' '),\n options.json\n );\n if (!outcome) process.exitCode = 1;\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\n return program;\n}\n"],"mappings":"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"}
@@ -3,39 +3,41 @@ import { getTokens } from '../../ops/AuthenticateOps';
3
3
  import { exportAdminFederationProvidersToFile, exportAdminFederationProvidersToFiles, exportAdminFederationProviderToFile } from '../../ops/cloud/AdminFederationOps';
4
4
  import { printMessage, verboseMessage } from '../../utils/Console';
5
5
  import { FrodoCommand } from '../FrodoCommand';
6
- const program = new FrodoCommand('frodo admin federation export', ['realm']);
7
- program.description('Export admin federation 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 to a single file. Ignored with -t and -i.')).addOption(new Option('-A, --all-separate', 'Export all the providers as separate files <provider name>.admin.federation.json. Ignored with -t, -i, and -a.')).addOption(new Option('-N, --no-metadata', 'Does not include metadata in the export file.')).action(
8
- // implement command logic inside action handler
9
- async (host, user, password, options, command) => {
10
- command.handleDefaultArgsAndOpts(host, user, password, options, command);
11
- if (await getTokens(true)) {
12
- // export by id/name
13
- if (options.idpId) {
14
- verboseMessage(`Exporting provider "${options.idpId}...`);
15
- const outcome = await exportAdminFederationProviderToFile(options.idpId, options.file, options.metadata);
16
- if (!outcome) process.exitCode = 1;
17
- }
18
- // --all -a
19
- else if (options.all) {
20
- verboseMessage('Exporting all providers to a single file...');
21
- const outcome = await exportAdminFederationProvidersToFile(options.file, options.metadata);
22
- if (!outcome) process.exitCode = 1;
23
- }
24
- // --all-separate -A
25
- else if (options.allSeparate) {
26
- verboseMessage('Exporting all providers to separate files...');
27
- const outcome = await exportAdminFederationProvidersToFiles(options.metadata);
28
- if (!outcome) process.exitCode = 1;
29
- }
30
- // unrecognized combination of options or no options
31
- else {
32
- printMessage('Unrecognized combination of options or no options...', 'error');
33
- program.help();
34
- process.exitCode = 1;
6
+ export default function setup() {
7
+ const program = new FrodoCommand('frodo admin federation export', ['realm']);
8
+ program.description('Export admin federation 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 to a single file. Ignored with -t and -i.')).addOption(new Option('-A, --all-separate', 'Export all the providers as separate files <provider name>.admin.federation.json. Ignored with -t, -i, and -a.')).addOption(new Option('-N, --no-metadata', 'Does not include metadata in the export file.')).action(
9
+ // implement command logic inside action handler
10
+ async (host, user, password, options, command) => {
11
+ command.handleDefaultArgsAndOpts(host, user, password, options, command);
12
+ if (await getTokens(true)) {
13
+ // export by id/name
14
+ if (options.idpId) {
15
+ verboseMessage(`Exporting provider "${options.idpId}...`);
16
+ const outcome = await exportAdminFederationProviderToFile(options.idpId, options.file, options.metadata);
17
+ if (!outcome) process.exitCode = 1;
18
+ }
19
+ // --all -a
20
+ else if (options.all) {
21
+ verboseMessage('Exporting all providers to a single file...');
22
+ const outcome = await exportAdminFederationProvidersToFile(options.file, options.metadata);
23
+ if (!outcome) process.exitCode = 1;
24
+ }
25
+ // --all-separate -A
26
+ else if (options.allSeparate) {
27
+ verboseMessage('Exporting all providers to separate files...');
28
+ const outcome = await exportAdminFederationProvidersToFiles(options.metadata);
29
+ if (!outcome) process.exitCode = 1;
30
+ }
31
+ // unrecognized combination of options or no options
32
+ else {
33
+ printMessage('Unrecognized combination of options or no options...', 'error');
34
+ program.help();
35
+ process.exitCode = 1;
36
+ }
35
37
  }
36
38
  }
39
+ // end command logic inside action handler
40
+ );
41
+ return program;
37
42
  }
38
- // end command logic inside action handler
39
- );
40
- program.parse();
41
43
  //# sourceMappingURL=admin-federation-export.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin-federation-export.js","names":["Option","getTokens","exportAdminFederationProvidersToFile","exportAdminFederationProvidersToFiles","exportAdminFederationProviderToFile","printMessage","verboseMessage","FrodoCommand","program","description","addOption","action","host","user","password","options","command","handleDefaultArgsAndOpts","idpId","outcome","file","metadata","process","exitCode","all","allSeparate","help","parse"],"sources":["../../../src/cli/admin/admin-federation-export.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport {\n exportAdminFederationProvidersToFile,\n exportAdminFederationProvidersToFiles,\n exportAdminFederationProviderToFile,\n} from '../../ops/cloud/AdminFederationOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo admin federation export', ['realm']);\n\nprogram\n .description('Export admin federation 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 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 as separate files <provider name>.admin.federation.json. Ignored with -t, -i, and -a.'\n )\n )\n .addOption(\n new Option(\n '-N, --no-metadata',\n 'Does not include metadata in the export file.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(host, user, password, options, command);\n if (await getTokens(true)) {\n // export by id/name\n if (options.idpId) {\n verboseMessage(`Exporting provider \"${options.idpId}...`);\n const outcome = await exportAdminFederationProviderToFile(\n options.idpId,\n options.file,\n options.metadata\n );\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n else if (options.all) {\n verboseMessage('Exporting all providers to a single file...');\n const outcome = await exportAdminFederationProvidersToFile(\n options.file,\n options.metadata\n );\n if (!outcome) process.exitCode = 1;\n }\n // --all-separate -A\n else if (options.allSeparate) {\n verboseMessage('Exporting all providers to separate files...');\n const outcome = await exportAdminFederationProvidersToFiles(\n options.metadata\n );\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SACEC,oCAAoC,EACpCC,qCAAqC,EACrCC,mCAAmC,QAC9B,oCAAoC;AAC3C,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,+BAA+B,EAAE,CAAC,OAAO,CAAC,CAAC;AAE5EC,OAAO,CACJC,WAAW,CAAC,oCAAoC,CAAC,CACjDC,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,oEACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,oBAAoB,EACpB,gHACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,mBAAmB,EACnB,+CACF,CACF,CAAC,CACAW,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EAChDA,OAAO,CAACC,wBAAwB,CAACL,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,CAAC;EACxE,IAAI,MAAMf,SAAS,CAAC,IAAI,CAAC,EAAE;IACzB;IACA,IAAIc,OAAO,CAACG,KAAK,EAAE;MACjBZ,cAAc,CAAE,uBAAsBS,OAAO,CAACG,KAAM,KAAI,CAAC;MACzD,MAAMC,OAAO,GAAG,MAAMf,mCAAmC,CACvDW,OAAO,CAACG,KAAK,EACbH,OAAO,CAACK,IAAI,EACZL,OAAO,CAACM,QACV,CAAC;MACD,IAAI,CAACF,OAAO,EAAEG,OAAO,CAACC,QAAQ,GAAG,CAAC;IACpC;IACA;IAAA,KACK,IAAIR,OAAO,CAACS,GAAG,EAAE;MACpBlB,cAAc,CAAC,6CAA6C,CAAC;MAC7D,MAAMa,OAAO,GAAG,MAAMjB,oCAAoC,CACxDa,OAAO,CAACK,IAAI,EACZL,OAAO,CAACM,QACV,CAAC;MACD,IAAI,CAACF,OAAO,EAAEG,OAAO,CAACC,QAAQ,GAAG,CAAC;IACpC;IACA;IAAA,KACK,IAAIR,OAAO,CAACU,WAAW,EAAE;MAC5BnB,cAAc,CAAC,8CAA8C,CAAC;MAC9D,MAAMa,OAAO,GAAG,MAAMhB,qCAAqC,CACzDY,OAAO,CAACM,QACV,CAAC;MACD,IAAI,CAACF,OAAO,EAAEG,OAAO,CAACC,QAAQ,GAAG,CAAC;IACpC;IACA;IAAA,KACK;MACHlB,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;MACDG,OAAO,CAACkB,IAAI,CAAC,CAAC;MACdJ,OAAO,CAACC,QAAQ,GAAG,CAAC;IACtB;EACF;AACF;AACA;AACF,CAAC;AAEHf,OAAO,CAACmB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"admin-federation-export.js","names":["Option","getTokens","exportAdminFederationProvidersToFile","exportAdminFederationProvidersToFiles","exportAdminFederationProviderToFile","printMessage","verboseMessage","FrodoCommand","setup","program","description","addOption","action","host","user","password","options","command","handleDefaultArgsAndOpts","idpId","outcome","file","metadata","process","exitCode","all","allSeparate","help"],"sources":["../../../src/cli/admin/admin-federation-export.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport {\n exportAdminFederationProvidersToFile,\n exportAdminFederationProvidersToFiles,\n exportAdminFederationProviderToFile,\n} from '../../ops/cloud/AdminFederationOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nexport default function setup() {\n const program = new FrodoCommand('frodo admin federation export', ['realm']);\n\n program\n .description('Export admin federation 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 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 as separate files <provider name>.admin.federation.json. Ignored with -t, -i, and -a.'\n )\n )\n .addOption(\n new Option(\n '-N, --no-metadata',\n 'Does not include metadata in the export file.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n user,\n password,\n options,\n command\n );\n if (await getTokens(true)) {\n // export by id/name\n if (options.idpId) {\n verboseMessage(`Exporting provider \"${options.idpId}...`);\n const outcome = await exportAdminFederationProviderToFile(\n options.idpId,\n options.file,\n options.metadata\n );\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n else if (options.all) {\n verboseMessage('Exporting all providers to a single file...');\n const outcome = await exportAdminFederationProvidersToFile(\n options.file,\n options.metadata\n );\n if (!outcome) process.exitCode = 1;\n }\n // --all-separate -A\n else if (options.allSeparate) {\n verboseMessage('Exporting all providers to separate files...');\n const outcome = await exportAdminFederationProvidersToFiles(\n options.metadata\n );\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n }\n // end command logic inside action handler\n );\n\n return program;\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SACEC,oCAAoC,EACpCC,qCAAqC,EACrCC,mCAAmC,QAC9B,oCAAoC;AAC3C,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,eAAe,SAASC,KAAKA,CAAA,EAAG;EAC9B,MAAMC,OAAO,GAAG,IAAIF,YAAY,CAAC,+BAA+B,EAAE,CAAC,OAAO,CAAC,CAAC;EAE5EE,OAAO,CACJC,WAAW,CAAC,oCAAoC,CAAC,CACjDC,SAAS,CACR,IAAIX,MAAM,CACR,uBAAuB,EACvB,6DACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,mBAAmB,EACnB,yEACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,WAAW,EACX,oEACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,oBAAoB,EACpB,gHACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,mBAAmB,EACnB,+CACF,CACF,CAAC,CACAY,MAAM;EACL;EACA,OAAOC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;IAChDA,OAAO,CAACC,wBAAwB,CAC9BL,IAAI,EACJC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;IACD,IAAI,MAAMhB,SAAS,CAAC,IAAI,CAAC,EAAE;MACzB;MACA,IAAIe,OAAO,CAACG,KAAK,EAAE;QACjBb,cAAc,CAAE,uBAAsBU,OAAO,CAACG,KAAM,KAAI,CAAC;QACzD,MAAMC,OAAO,GAAG,MAAMhB,mCAAmC,CACvDY,OAAO,CAACG,KAAK,EACbH,OAAO,CAACK,IAAI,EACZL,OAAO,CAACM,QACV,CAAC;QACD,IAAI,CAACF,OAAO,EAAEG,OAAO,CAACC,QAAQ,GAAG,CAAC;MACpC;MACA;MAAA,KACK,IAAIR,OAAO,CAACS,GAAG,EAAE;QACpBnB,cAAc,CAAC,6CAA6C,CAAC;QAC7D,MAAMc,OAAO,GAAG,MAAMlB,oCAAoC,CACxDc,OAAO,CAACK,IAAI,EACZL,OAAO,CAACM,QACV,CAAC;QACD,IAAI,CAACF,OAAO,EAAEG,OAAO,CAACC,QAAQ,GAAG,CAAC;MACpC;MACA;MAAA,KACK,IAAIR,OAAO,CAACU,WAAW,EAAE;QAC5BpB,cAAc,CAAC,8CAA8C,CAAC;QAC9D,MAAMc,OAAO,GAAG,MAAMjB,qCAAqC,CACzDa,OAAO,CAACM,QACV,CAAC;QACD,IAAI,CAACF,OAAO,EAAEG,OAAO,CAACC,QAAQ,GAAG,CAAC;MACpC;MACA;MAAA,KACK;QACHnB,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;QACDI,OAAO,CAACkB,IAAI,CAAC,CAAC;QACdJ,OAAO,CAACC,QAAQ,GAAG,CAAC;MACtB;IACF;EACF;EACA;EACF,CAAC;EAEH,OAAOf,OAAO;AAChB"}
@@ -3,43 +3,45 @@ import { getTokens } from '../../ops/AuthenticateOps';
3
3
  import { importAdminFederationProviderFromFile, importAdminFederationProvidersFromFile, importAdminFederationProvidersFromFiles, importFirstAdminFederationProviderFromFile } from '../../ops/cloud/AdminFederationOps';
4
4
  import { printMessage, verboseMessage } from '../../utils/Console';
5
5
  import { FrodoCommand } from '../FrodoCommand';
6
- const program = new FrodoCommand('frodo admin federation import', ['realm']);
7
- program.description('Import admin federation 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 (*.admin.federation.json) in the current directory. Ignored with -t or -i or -a.')).action(
8
- // implement command logic inside action handler
9
- async (host, user, password, options, command) => {
10
- command.handleDefaultArgsAndOpts(host, user, password, options, command);
11
- // import by id
12
- if (options.file && options.idpId && (await getTokens(true))) {
13
- verboseMessage(`Importing provider "${options.idpId}"...`);
14
- const outcome = await importAdminFederationProviderFromFile(options.idpId, options.file);
15
- if (!outcome) process.exitCode = 1;
16
- }
17
- // --all -a
18
- else if (options.all && options.file && (await getTokens(true))) {
19
- verboseMessage(`Importing all providers from a single file (${options.file})...`);
20
- const outcome = await importAdminFederationProvidersFromFile(options.file);
21
- if (!outcome) process.exitCode = 1;
22
- }
23
- // --all-separate -A
24
- else if (options.allSeparate && !options.file && (await getTokens(true))) {
25
- verboseMessage('Importing all providers from separate files in current directory...');
26
- const outcome = await importAdminFederationProvidersFromFiles();
27
- if (!outcome) process.exitCode = 1;
28
- }
29
- // import first provider from file
30
- else if (options.file && (await getTokens(true))) {
31
- verboseMessage(`Importing first provider from file "${options.file}"...`);
32
- const outcome = await importFirstAdminFederationProviderFromFile(options.file);
33
- if (!outcome) process.exitCode = 1;
34
- }
35
- // unrecognized combination of options or no options
36
- else {
37
- printMessage('Unrecognized combination of options or no options...');
38
- program.help();
39
- process.exitCode = 1;
6
+ export default function setup() {
7
+ const program = new FrodoCommand('frodo admin federation import', ['realm']);
8
+ program.description('Import admin federation 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 (*.admin.federation.json) in the current directory. Ignored with -t or -i or -a.')).action(
9
+ // implement command logic inside action handler
10
+ async (host, user, password, options, command) => {
11
+ command.handleDefaultArgsAndOpts(host, user, password, options, command);
12
+ // import by id
13
+ if (options.file && options.idpId && (await getTokens(true))) {
14
+ verboseMessage(`Importing provider "${options.idpId}"...`);
15
+ const outcome = await importAdminFederationProviderFromFile(options.idpId, options.file);
16
+ if (!outcome) process.exitCode = 1;
17
+ }
18
+ // --all -a
19
+ else if (options.all && options.file && (await getTokens(true))) {
20
+ verboseMessage(`Importing all providers from a single file (${options.file})...`);
21
+ const outcome = await importAdminFederationProvidersFromFile(options.file);
22
+ if (!outcome) process.exitCode = 1;
23
+ }
24
+ // --all-separate -A
25
+ else if (options.allSeparate && !options.file && (await getTokens(true))) {
26
+ verboseMessage('Importing all providers from separate files in current directory...');
27
+ const outcome = await importAdminFederationProvidersFromFiles();
28
+ if (!outcome) process.exitCode = 1;
29
+ }
30
+ // import first provider from file
31
+ else if (options.file && (await getTokens(true))) {
32
+ verboseMessage(`Importing first provider from file "${options.file}"...`);
33
+ const outcome = await importFirstAdminFederationProviderFromFile(options.file);
34
+ if (!outcome) process.exitCode = 1;
35
+ }
36
+ // unrecognized combination of options or no options
37
+ else {
38
+ printMessage('Unrecognized combination of options or no options...');
39
+ program.help();
40
+ process.exitCode = 1;
41
+ }
40
42
  }
43
+ // end command logic inside action handler
44
+ );
45
+ return program;
41
46
  }
42
- // end command logic inside action handler
43
- );
44
- program.parse();
45
47
  //# sourceMappingURL=admin-federation-import.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin-federation-import.js","names":["Option","getTokens","importAdminFederationProviderFromFile","importAdminFederationProvidersFromFile","importAdminFederationProvidersFromFiles","importFirstAdminFederationProviderFromFile","printMessage","verboseMessage","FrodoCommand","program","description","addOption","action","host","user","password","options","command","handleDefaultArgsAndOpts","file","idpId","outcome","process","exitCode","all","allSeparate","help","parse"],"sources":["../../../src/cli/admin/admin-federation-import.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport {\n importAdminFederationProviderFromFile,\n importAdminFederationProvidersFromFile,\n importAdminFederationProvidersFromFiles,\n importFirstAdminFederationProviderFromFile,\n} from '../../ops/cloud/AdminFederationOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo admin federation import', ['realm']);\n\nprogram\n .description('Import admin federation 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 (*.admin.federation.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, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(host, user, password, options, command);\n // import by id\n if (options.file && options.idpId && (await getTokens(true))) {\n verboseMessage(`Importing provider \"${options.idpId}\"...`);\n const outcome = await importAdminFederationProviderFromFile(\n options.idpId,\n options.file\n );\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n else if (options.all && options.file && (await getTokens(true))) {\n verboseMessage(\n `Importing all providers from a single file (${options.file})...`\n );\n const outcome = await importAdminFederationProvidersFromFile(\n options.file\n );\n if (!outcome) process.exitCode = 1;\n }\n // --all-separate -A\n else if (\n options.allSeparate &&\n !options.file &&\n (await getTokens(true))\n ) {\n verboseMessage(\n 'Importing all providers from separate files in current directory...'\n );\n const outcome = await importAdminFederationProvidersFromFiles();\n if (!outcome) process.exitCode = 1;\n }\n // import first provider from file\n else if (options.file && (await getTokens(true))) {\n verboseMessage(\n `Importing first provider from file \"${options.file}\"...`\n );\n const outcome = await importFirstAdminFederationProviderFromFile(\n options.file\n );\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SACEC,qCAAqC,EACrCC,sCAAsC,EACtCC,uCAAuC,EACvCC,0CAA0C,QACrC,oCAAoC;AAC3C,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,+BAA+B,EAAE,CAAC,OAAO,CAAC,CAAC;AAE5EC,OAAO,CACJC,WAAW,CAAC,oCAAoC,CAAC,CACjDC,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,+HACF,CACF,CAAC,CACAY,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EAChDA,OAAO,CAACC,wBAAwB,CAACL,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,CAAC;EACxE;EACA,IAAID,OAAO,CAACG,IAAI,IAAIH,OAAO,CAACI,KAAK,KAAK,MAAMnB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;IAC5DM,cAAc,CAAE,uBAAsBS,OAAO,CAACI,KAAM,MAAK,CAAC;IAC1D,MAAMC,OAAO,GAAG,MAAMnB,qCAAqC,CACzDc,OAAO,CAACI,KAAK,EACbJ,OAAO,CAACG,IACV,CAAC;IACD,IAAI,CAACE,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIP,OAAO,CAACQ,GAAG,IAAIR,OAAO,CAACG,IAAI,KAAK,MAAMlB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;IAC/DM,cAAc,CACX,+CAA8CS,OAAO,CAACG,IAAK,MAC9D,CAAC;IACD,MAAME,OAAO,GAAG,MAAMlB,sCAAsC,CAC1Da,OAAO,CAACG,IACV,CAAC;IACD,IAAI,CAACE,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IACHP,OAAO,CAACS,WAAW,IACnB,CAACT,OAAO,CAACG,IAAI,KACZ,MAAMlB,SAAS,CAAC,IAAI,CAAC,CAAC,EACvB;IACAM,cAAc,CACZ,qEACF,CAAC;IACD,MAAMc,OAAO,GAAG,MAAMjB,uCAAuC,CAAC,CAAC;IAC/D,IAAI,CAACiB,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIP,OAAO,CAACG,IAAI,KAAK,MAAMlB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;IAChDM,cAAc,CACX,uCAAsCS,OAAO,CAACG,IAAK,MACtD,CAAC;IACD,MAAME,OAAO,GAAG,MAAMhB,0CAA0C,CAC9DW,OAAO,CAACG,IACV,CAAC;IACD,IAAI,CAACE,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHjB,YAAY,CAAC,sDAAsD,CAAC;IACpEG,OAAO,CAACiB,IAAI,CAAC,CAAC;IACdJ,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHd,OAAO,CAACkB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"admin-federation-import.js","names":["Option","getTokens","importAdminFederationProviderFromFile","importAdminFederationProvidersFromFile","importAdminFederationProvidersFromFiles","importFirstAdminFederationProviderFromFile","printMessage","verboseMessage","FrodoCommand","setup","program","description","addOption","action","host","user","password","options","command","handleDefaultArgsAndOpts","file","idpId","outcome","process","exitCode","all","allSeparate","help"],"sources":["../../../src/cli/admin/admin-federation-import.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport {\n importAdminFederationProviderFromFile,\n importAdminFederationProvidersFromFile,\n importAdminFederationProvidersFromFiles,\n importFirstAdminFederationProviderFromFile,\n} from '../../ops/cloud/AdminFederationOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nexport default function setup() {\n const program = new FrodoCommand('frodo admin federation import', ['realm']);\n\n program\n .description('Import admin federation 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 (*.admin.federation.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, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n user,\n password,\n options,\n command\n );\n // import by id\n if (options.file && options.idpId && (await getTokens(true))) {\n verboseMessage(`Importing provider \"${options.idpId}\"...`);\n const outcome = await importAdminFederationProviderFromFile(\n options.idpId,\n options.file\n );\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n else if (options.all && options.file && (await getTokens(true))) {\n verboseMessage(\n `Importing all providers from a single file (${options.file})...`\n );\n const outcome = await importAdminFederationProvidersFromFile(\n options.file\n );\n if (!outcome) process.exitCode = 1;\n }\n // --all-separate -A\n else if (\n options.allSeparate &&\n !options.file &&\n (await getTokens(true))\n ) {\n verboseMessage(\n 'Importing all providers from separate files in current directory...'\n );\n const outcome = await importAdminFederationProvidersFromFiles();\n if (!outcome) process.exitCode = 1;\n }\n // import first provider from file\n else if (options.file && (await getTokens(true))) {\n verboseMessage(\n `Importing first provider from file \"${options.file}\"...`\n );\n const outcome = await importFirstAdminFederationProviderFromFile(\n options.file\n );\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\n return program;\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SACEC,qCAAqC,EACrCC,sCAAsC,EACtCC,uCAAuC,EACvCC,0CAA0C,QACrC,oCAAoC;AAC3C,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,eAAe,SAASC,KAAKA,CAAA,EAAG;EAC9B,MAAMC,OAAO,GAAG,IAAIF,YAAY,CAAC,+BAA+B,EAAE,CAAC,OAAO,CAAC,CAAC;EAE5EE,OAAO,CACJC,WAAW,CAAC,oCAAoC,CAAC,CACjDC,SAAS,CACR,IAAIZ,MAAM,CACR,mBAAmB,EACnB,mDACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,mBAAmB,EACnB,kDACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,WAAW,EACX,mEACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,oBAAoB,EACpB,+HACF,CACF,CAAC,CACAa,MAAM;EACL;EACA,OAAOC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;IAChDA,OAAO,CAACC,wBAAwB,CAC9BL,IAAI,EACJC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;IACD;IACA,IAAID,OAAO,CAACG,IAAI,IAAIH,OAAO,CAACI,KAAK,KAAK,MAAMpB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;MAC5DM,cAAc,CAAE,uBAAsBU,OAAO,CAACI,KAAM,MAAK,CAAC;MAC1D,MAAMC,OAAO,GAAG,MAAMpB,qCAAqC,CACzDe,OAAO,CAACI,KAAK,EACbJ,OAAO,CAACG,IACV,CAAC;MACD,IAAI,CAACE,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;IACpC;IACA;IAAA,KACK,IAAIP,OAAO,CAACQ,GAAG,IAAIR,OAAO,CAACG,IAAI,KAAK,MAAMnB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;MAC/DM,cAAc,CACX,+CAA8CU,OAAO,CAACG,IAAK,MAC9D,CAAC;MACD,MAAME,OAAO,GAAG,MAAMnB,sCAAsC,CAC1Dc,OAAO,CAACG,IACV,CAAC;MACD,IAAI,CAACE,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;IACpC;IACA;IAAA,KACK,IACHP,OAAO,CAACS,WAAW,IACnB,CAACT,OAAO,CAACG,IAAI,KACZ,MAAMnB,SAAS,CAAC,IAAI,CAAC,CAAC,EACvB;MACAM,cAAc,CACZ,qEACF,CAAC;MACD,MAAMe,OAAO,GAAG,MAAMlB,uCAAuC,CAAC,CAAC;MAC/D,IAAI,CAACkB,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;IACpC;IACA;IAAA,KACK,IAAIP,OAAO,CAACG,IAAI,KAAK,MAAMnB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;MAChDM,cAAc,CACX,uCAAsCU,OAAO,CAACG,IAAK,MACtD,CAAC;MACD,MAAME,OAAO,GAAG,MAAMjB,0CAA0C,CAC9DY,OAAO,CAACG,IACV,CAAC;MACD,IAAI,CAACE,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;IACpC;IACA;IAAA,KACK;MACHlB,YAAY,CAAC,sDAAsD,CAAC;MACpEI,OAAO,CAACiB,IAAI,CAAC,CAAC;MACdJ,OAAO,CAACC,QAAQ,GAAG,CAAC;IACtB;EACF;EACA;EACF,CAAC;EAEH,OAAOd,OAAO;AAChB"}